:root{--brand-600: #4F46E5;--gray-50: #F8FAFC;--gray-900: #0F172A;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 4px 14px rgb(15 23 42 / 4%);color:var(--gray-900);background:var(--gray-50);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%}body{background:var(--gray-50)}.app-shell{min-height:100vh}.app-sider{position:sticky!important;top:0;height:100vh;box-shadow:4px 0 18px #0823521f;z-index:2}.brand{height:72px;display:flex;align-items:center;gap:12px;padding:0 21px;color:#fff;font-size:20px;font-weight:700;letter-spacing:.3px;overflow:hidden}.brand-mark{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:10px;background:#fff;color:#1769e0;font-weight:800}.brand-logo-image{width:34px;height:34px;object-fit:contain;border-radius:var(--radius-md);background:#fff}.app-sider .ant-menu{border-inline-end:0!important;padding:10px 9px}.app-sider .ant-menu-item{height:46px;line-height:46px;margin-block:5px}.sider-version{position:absolute;bottom:22px;width:100%;color:#ffffff7a;font-size:12px;text-align:center}.top-header{height:72px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8edf5}.collapse-button{font-size:18px}.header-identity{display:flex;flex-direction:column;text-align:right;line-height:1.35}.header-identity .ant-typography:last-child{font-size:12px}.user-avatar{background:#e7f0ff;color:#1769e0;cursor:pointer}.app-content{padding:28px;overflow-x:hidden}.page-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.page-header h1{margin:0 0 5px;font-size:26px;line-height:1.3}.page-header p{margin:0;color:#76839a}.ant-card{border-color:#e8edf5;box-shadow:0 4px 14px #1f3c680a}.stat-card{position:relative;overflow:hidden}.stat-card .ant-statistic{margin-left:58px;margin-bottom:14px}.stat-card .ant-tag{margin-left:58px}.stat-icon{position:absolute;top:25px;left:22px;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#eaf2ff;color:#1769e0;font-size:20px}.dashboard-card{min-height:340px}.progress-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:20px;padding:13px 0}.progress-row .ant-progress{margin:0}.table-toolbar{display:flex;gap:10px;width:min(480px,100%);margin-bottom:20px}.muted{max-width:320px;color:#8994a7;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.course-cover{width:64px;height:42px;display:grid;place-items:center;border-radius:7px;overflow:hidden;background:linear-gradient(135deg,#1769e0,#61a1fa);color:#fff;font-weight:700}.course-cover img,.detail-cover img{width:100%;height:100%;object-fit:cover}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(420px,.92fr);background:#fff}.login-intro{position:relative;overflow:hidden;padding:10vh 9vw;color:#fff;background:linear-gradient(145deg,#082f72,#0f5ac7 55%,#2384ef)}.login-intro:after{content:"";position:absolute;width:420px;height:420px;right:-120px;bottom:-160px;border:80px solid rgba(255,255,255,.08);border-radius:50%}.login-logo{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#fff;color:#1769e0;font-size:30px;font-weight:800}.login-intro h1.ant-typography{max-width:600px;margin-top:80px;color:#fff;font-size:clamp(34px,4vw,58px);line-height:1.24}.login-intro p.ant-typography{max-width:520px;color:#ffffffbf;font-size:17px;line-height:1.8}.login-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.09;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:48px 48px;pointer-events:none}.login-form-wrap{display:grid;place-items:center;padding:48px}.login-card{width:min(430px,100%);box-shadow:none}.login-card .ant-card-body{padding:36px}.login-card form{margin-top:32px}.login-button{height:48px;margin-top:8px;font-weight:600}.center-spin{min-height:60vh;display:grid;place-items:center}.course-summary{margin-bottom:24px}.detail-cover{width:128px;height:78px;display:grid;place-items:center;flex:0 0 auto;overflow:hidden;border-radius:9px;color:#fff;background:linear-gradient(135deg,#1769e0,#61a1fa);font-size:26px}.course-description{margin:10px 0 0!important;color:#68758b}.section-heading{display:flex;align-items:center;gap:14px;margin:24px 0 14px}.section-heading h4{margin:0}.chapter-collapse{background:#fff;border-color:#e8edf5}.chapter-collapse .ant-collapse-header{align-items:center!important;padding:17px 20px!important}.lesson-row{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:8px 14px;border-bottom:1px solid #edf0f5}.lesson-row:last-child{border-bottom:0}.lesson-index{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf4ff;color:#1769e0;font-size:12px}@media(max-width:860px){.login-page{grid-template-columns:1fr}.login-intro{display:none}.login-form-wrap{min-height:100vh;padding:24px}.app-content{padding:20px 14px}.header-identity{display:none}.page-header{align-items:flex-start}.progress-row{grid-template-columns:1fr;gap:4px}}@media(max-width:620px){.app-sider{position:fixed!important}.app-sider:not(.ant-layout-sider-collapsed){width:220px!important;min-width:220px!important}.app-shell>.ant-layout{margin-left:76px}.top-header{padding:0 14px}.page-header{flex-direction:column}.table-toolbar{flex-wrap:wrap}.lesson-row{align-items:flex-start;gap:10px}}
