:root{font-family:Inter,Microsoft YaHei,PingFang SC,Hiragino Sans GB,Segoe UI,Arial,sans-serif;color:#14202c;background:#eef3f6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{min-width:320px;background:#eef3f6}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(24,119,242,.28);outline-offset:2px}#root{min-height:100vh}.auth-shell,.app-shell{--ink: #111827;--muted: #667085;--line: #d7e0ea;--soft-line: #e8eef5;--panel: #ffffff;--blue: #176bff;--blue-dark: #0a3e91;--cyan: #0fc6e8;--green: #12b981;--green-dark: #08785c;--amber: #f59f00;--red: #ef476f;--navy: #081a33;--violet: #7459ff;--shadow: 0 18px 45px rgba(15, 38, 74, .12);--shadow-soft: 0 10px 28px rgba(15, 38, 74, .08)}.app-shell{display:grid;grid-template-columns:276px minmax(0,1fr);min-height:100vh;color:var(--ink);background:linear-gradient(135deg,#176bff14,#12b98112 45%,#f59f0012),#f3f7fb}.auth-shell{display:grid;grid-template-columns:minmax(420px,.88fr) minmax(0,1fr);min-height:100vh;color:var(--ink);background:linear-gradient(135deg,#176bff1f,#12b9811a 48%,#f59f001a),#f3f7fb}.auth-panel{display:grid;align-content:center;gap:24px;padding:44px;background:#fff;box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:12px}.auth-brand strong,.auth-brand span{display:block}.auth-brand strong{color:var(--ink);font-size:20px;font-weight:900}.auth-brand span{margin-top:5px;color:var(--muted);font-size:13px}.auth-copy span{display:inline-flex;min-height:28px;align-items:center;padding:0 10px;color:var(--green-dark);border-radius:8px;background:#12b9811a;font-size:12px;font-weight:900}.auth-copy h1{margin:14px 0 10px;color:var(--ink);font-size:34px;line-height:1.15;font-weight:900}.auth-copy p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.auth-form{display:grid;gap:14px}.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border-radius:8px;background:#edf4fb}.auth-tabs button{min-height:38px;color:#5c6d80;border:0;border-radius:7px;background:transparent;font-size:14px;font-weight:900}.auth-tabs button.active{color:#fff;background:linear-gradient(135deg,var(--blue),var(--green));box-shadow:0 8px 18px #176bff38}.auth-form label{display:grid;gap:7px}.auth-form label span{color:#2d3a4c;font-size:13px;font-weight:900}.auth-form input{width:100%;min-height:44px;padding:0 12px;color:var(--ink);border:1px solid var(--line);border-radius:8px;outline:0;background:#f8fbff;font-size:14px}.auth-form input:focus{border-color:#176bff80;box-shadow:0 0 0 3px #176bff1f}.auth-error{margin:0;padding:10px 12px;color:#b42318;border-radius:8px;background:#ef476f1a;font-size:13px;font-weight:850}.demo-accounts{display:grid;gap:8px;padding-top:6px}.demo-accounts span{color:#667085;font-size:12px;font-weight:900}.demo-accounts button{min-height:34px;color:var(--blue-dark);text-align:left;border:1px solid rgba(23,107,255,.2);border-radius:8px;background:#176bff12;font-size:12px;font-weight:850}.auth-side{display:grid;place-items:center;padding:44px;background:radial-gradient(circle at 20% 22%,rgba(45,212,255,.26),transparent 30%),radial-gradient(circle at 82% 75%,rgba(18,185,129,.22),transparent 28%),linear-gradient(135deg,#071b38,#0b3773 58%,#083b4f)}.auth-role-grid{display:grid;width:min(620px,100%);gap:16px}.auth-role-grid article{display:grid;gap:8px;padding:20px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#ffffff17;box-shadow:0 18px 42px #0003}.auth-role-grid svg{color:#37f7ae}.auth-role-grid strong{color:#fff;font-size:18px;font-weight:900}.auth-role-grid span{color:#b8d0e5;font-size:14px;line-height:1.6}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:22px 16px;color:#e6f3ff;background:radial-gradient(circle at 32px 42px,rgba(15,198,232,.22),transparent 34%),linear-gradient(180deg,#071b38,#082653 58%,#061a32)}.brand{display:flex;align-items:center;width:100%;gap:12px;min-height:58px;padding:6px 8px 22px;text-align:left;border:0;border-bottom:1px solid rgba(255,255,255,.12);background:transparent;text-decoration:none}.brand-mark{display:grid;width:48px;height:48px;place-items:center;color:#042036;border-radius:8px;background:linear-gradient(135deg,#2dd4ff,#37f7ae 60%,#ffd166);box-shadow:0 16px 28px #00000042}.brand strong,.brand span{display:block}.brand strong{color:#fff;font-size:18px;line-height:1.2;font-weight:850}.brand span{margin-top:5px;color:#9bb6ce;font-size:12px;line-height:1.35}.nav-list{display:grid;gap:8px;padding:22px 0}.nav-item{display:flex;align-items:center;width:100%;min-height:46px;gap:11px;padding:0 12px;color:#b9d2e5;text-align:left;border:1px solid transparent;border-radius:8px;background:transparent;text-decoration:none;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.nav-item:hover,.nav-item.active{color:#fff;border-color:#2dd4ff42;background:#ffffff17}.nav-item.active{background:linear-gradient(135deg,#176bffeb,#12b981d1);box-shadow:0 14px 26px #00000038}.nav-item span{font-size:14px;font-weight:780}.nav-arrow{margin-left:auto;opacity:.68}.sidebar-footer{display:grid;gap:12px;margin-top:auto}.security-tile{display:flex;gap:10px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff14}.security-tile svg{flex:0 0 auto;margin-top:2px;color:#37f7ae}.security-tile strong,.security-tile span{display:block}.security-tile strong{color:#fff;font-size:13px;line-height:1.3}.security-tile span{margin-top:4px;color:#a9bdd2;font-size:12px;line-height:1.45}.workspace{min-width:0;padding:26px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.topbar h1{margin:0;color:var(--ink);font-size:28px;line-height:1.2;font-weight:860}.topbar p{margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.55}.db-status{display:inline-flex;min-height:24px;align-items:center;margin-top:9px;padding:0 9px;color:var(--green-dark);border:1px solid rgba(18,185,129,.24);border-radius:8px;background:#12b98114;font-size:12px;font-weight:850}.topbar-actions,.hero-actions,.panel-head,.card-head,.toolbar,.exam-item{display:flex;align-items:center}.topbar-actions{flex:0 0 auto;gap:10px}.account-chip{display:grid;gap:2px;min-height:42px;justify-content:center;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}.account-chip strong{color:var(--ink);font-size:13px;font-weight:900}.account-chip span{color:var(--green-dark);font-size:12px;font-weight:850}.primary-button,.secondary-button,.ghost-button,.icon-button{border-radius:8px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease}.primary-button,.secondary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;gap:8px;padding:0 15px;font-size:14px;font-weight:800;white-space:nowrap}.primary-button{color:#fff;border:0;background:linear-gradient(135deg,var(--blue),var(--cyan) 58%,var(--green));box-shadow:0 14px 28px #176bff38}.primary-button.dark{background:linear-gradient(135deg,#071b38,#125be3 62%,#0aa06d)}.secondary-button{color:var(--ink);border:1px solid var(--line);background:#fff}.secondary-button.small{min-height:34px;padding:0 12px;font-size:13px}.ghost-button{width:100%;color:#e6f3ff;border:0;background:#ffffff17}.icon-button{display:inline-grid;width:42px;height:42px;place-items:center;color:var(--ink);border:1px solid var(--line);background:#fff}.icon-button.compact{width:36px;height:36px}.primary-button:hover,.secondary-button:hover,.ghost-button:hover,.icon-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft)}.overview-page{display:grid;gap:20px}.overview-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.92fr);gap:22px;min-height:392px;padding:28px;overflow:hidden;border:1px solid rgba(255,255,255,.92);border-radius:8px;background:linear-gradient(135deg,#fffffffa,#e1effff0 50%,#e2fff5f0);box-shadow:var(--shadow)}.overview-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;max-width:680px}.system-state{display:inline-flex;align-items:center;width:fit-content;min-height:30px;gap:8px;padding:0 10px;color:var(--green-dark);border:1px solid rgba(18,185,129,.28);border-radius:8px;background:#12b9811a;font-size:13px;font-weight:800}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px #12b98129}.overview-copy h2{max-width:660px;margin:18px 0 12px;color:var(--ink);font-size:42px;line-height:1.16;font-weight:900;letter-spacing:0}.overview-copy p{max-width:640px;margin:0;color:#516173;font-size:15px;line-height:1.85}.hero-actions{gap:12px;margin-top:24px;flex-wrap:wrap}.command-center{display:flex;flex-direction:column;justify-content:space-between;min-width:0;min-height:330px;padding:18px;color:#e5f8ff;border-radius:8px;background:linear-gradient(135deg,#176bff52,#12b98129),linear-gradient(180deg,#071b38,#0b315a);box-shadow:inset 0 1px #ffffff24}.visual-header,.visual-metrics{display:flex;align-items:center;justify-content:space-between;gap:12px}.visual-header{color:#9ec5dd;font-size:12px;font-weight:900;letter-spacing:0;text-transform:uppercase}.visual-header span:last-child{min-width:50px;padding:5px 9px;color:#03233a;text-align:center;border-radius:8px;background:#37f7ae}.radar-board{position:relative;display:grid;min-height:178px;place-items:center;margin:18px 0}.radar-board:before,.radar-board:after{content:"";position:absolute;border:1px solid rgba(158,197,221,.24);border-radius:50%}.radar-board:before{width:238px;height:126px}.radar-board:after{width:312px;height:164px}.radar-core{z-index:1;display:grid;width:132px;height:132px;place-items:center;padding:16px;text-align:center;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#ffffff14}.radar-core svg{color:#37f7ae}.radar-core strong,.radar-core span{display:block}.radar-core strong{color:#fff;font-size:30px;line-height:1}.radar-core span{color:#9ec5dd;font-size:12px;font-weight:800}.orbit{position:absolute;z-index:1;min-width:54px;padding:7px 10px;color:#061b32;text-align:center;border-radius:8px;background:#ffd166;font-size:12px;font-weight:900}.orbit-a{left:10%;top:45%}.orbit-b{right:12%;top:24%;background:#2dd4ff}.orbit-c{right:15%;bottom:14%;background:#37f7ae}.visual-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.visual-metrics div{padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff12}.visual-metrics strong,.visual-metrics span{display:block}.visual-metrics strong{color:#fff;font-size:23px;line-height:1.1}.visual-metrics span{margin-top:6px;color:#9ec5dd;font-size:12px;line-height:1.35}.quick-stats,.work-card,.insight-panel,.module-entry-grid{border:1px solid var(--line);border-radius:8px;background:#fffffff2;box-shadow:var(--shadow-soft)}.quick-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px}.metric-card{min-width:0;padding:16px;border:1px solid var(--soft-line);border-radius:8px;background:linear-gradient(180deg,#fff,#f7fbff)}.metric-icon{display:grid;width:40px;height:40px;place-items:center;margin-bottom:14px;color:var(--blue-dark);border-radius:8px;background:linear-gradient(135deg,#176bff1f,#0fc6e829)}.metric-card span,.metric-card strong,.metric-card small{display:block}.metric-card span{color:var(--muted);font-size:13px;line-height:1.3}.metric-card strong{margin-top:6px;color:var(--ink);font-size:30px;line-height:1.1;font-weight:900}.metric-card small{margin-top:7px;color:var(--green-dark);font-size:12px;font-weight:800}.overview-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:20px}.insight-panel{min-width:0;padding:18px}.panel-head,.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head{margin-bottom:16px}.panel-head h3,.card-head h2,.exam-board h3,.skill-detail h3{margin:0;letter-spacing:0}.panel-head h3,.card-head h2{color:var(--ink);font-size:20px;line-height:1.25;font-weight:900}.panel-head p,.exam-board p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.panel-head svg{color:var(--green-dark)}.track-flow{display:grid;grid-template-columns:repeat(5,minmax(112px,1fr));gap:10px;overflow-x:auto;padding-bottom:2px}.track-step{min-height:86px;padding:14px;border:1px solid #dce9ee;border-radius:8px;background:linear-gradient(180deg,#f7fbff,#effbf6)}.track-step span{display:grid;width:28px;height:28px;place-items:center;color:#fff;border-radius:8px;background:var(--navy);font-size:13px;font-weight:900}.track-step strong{display:block;margin-top:12px;color:var(--ink);font-size:14px;line-height:1.35}.task-list{display:grid;gap:12px;padding:0;margin:0;list-style:none}.task-list li{display:flex;align-items:flex-start;gap:10px;color:#3f5167;font-size:13px;line-height:1.5}.task-list svg{flex:0 0 auto;margin-top:1px;color:var(--blue)}.module-entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px}.module-entry{display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:12px;min-height:116px;padding:14px;text-align:left;border:1px solid var(--soft-line);border-radius:8px;background:#fff;text-decoration:none}.module-entry svg:first-child{color:var(--blue)}.module-entry strong,.module-entry small{display:block}.module-entry strong{color:var(--ink);font-size:15px;line-height:1.25;font-weight:900}.module-entry small{display:-webkit-box;margin-top:6px;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.work-card{min-width:0;min-height:520px;padding:22px}.card-head{margin-bottom:18px}.card-kicker{display:inline-flex;align-items:center;min-height:24px;gap:7px;margin-bottom:7px;color:var(--blue-dark);font-size:12px;font-weight:900}.muted-icon{color:#75879c}.toolbar{gap:10px;margin-bottom:14px}.search-box,.select-box{display:flex;align-items:center;height:40px;gap:8px;padding:0 10px;color:#6d7d8f;border:1px solid var(--line);border-radius:8px;background:#f8fbff}.search-box{flex:1 1 auto;min-width:170px}.select-box{flex:0 0 146px}.search-box input,.select-box select{width:100%;min-width:0;color:var(--ink);border:0;outline:0;background:transparent;font-size:13px}.user-table{display:grid;overflow:hidden;border:1px solid var(--soft-line);border-radius:8px}.table-row{display:grid;grid-template-columns:minmax(130px,.9fr) minmax(150px,1fr) minmax(160px,1fr) minmax(120px,.8fr) 82px minmax(116px,.75fr);gap:12px;align-items:center;min-height:64px;padding:0 12px;border-top:1px solid var(--soft-line);background:#fff}.table-row:first-child{border-top:0}.table-header{min-height:40px;color:#7b8a9b;background:#f7fbff;font-size:12px;font-weight:900}.table-row span{min-width:0;color:#334255;font-size:13px;line-height:1.4}.table-row strong,.table-row small{display:block;min-width:0}.table-row strong{overflow:hidden;color:var(--ink);font-size:14px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.table-row small{margin-top:3px;color:#7b8a9b;font-size:12px}.progress-wrap{display:grid;gap:6px}.progress-track{width:100%;height:7px;overflow:hidden;border-radius:999px;background:#e8eef5}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--green))}.progress-wrap small{color:#6b7a8c;font-size:12px;line-height:1;font-weight:800}.status{display:inline-flex;align-items:center;justify-content:center;min-width:62px;min-height:28px;padding:0 8px;border-radius:8px;font-size:12px;font-style:normal;font-weight:900}.status.blue{color:var(--blue-dark);background:#176bff1a}.status.amber{color:#ad7100;background:#f59f001f}.status.green{color:var(--green-dark);background:#12b9811f}.row-actions,.course-actions{display:flex;align-items:center;gap:8px}.row-actions button,.course-actions button,.record-row button{display:inline-flex;align-items:center;justify-content:center;min-height:30px;gap:5px;padding:0 9px;color:var(--blue-dark);border:1px solid rgba(23,107,255,.2);border-radius:8px;background:#176bff14;font-size:12px;font-weight:900}.row-actions button.danger,.course-actions button.danger,.record-row button{color:#d44545;border-color:#d4454533;background:#d4454514}.courses-page{min-height:560px;padding:26px;border-radius:8px;background:#f3f4fb}.courses-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.courses-head h2{margin:0;color:#20253f;font-size:22px;line-height:1.25;font-weight:900}.view-all-link{display:inline-flex;align-items:center;gap:4px;color:#4d8dff;text-decoration:none;font-size:13px;font-weight:800}.course-tabs{display:flex;width:fit-content;max-width:100%;gap:2px;margin-bottom:26px;overflow-x:auto;padding:4px;border-radius:8px;background:#fff;box-shadow:0 4px 14px #1f294b14}.course-tabs button{flex:0 0 auto;min-width:86px;height:34px;padding:0 14px;color:#7b8294;border:0;border-radius:7px;background:transparent;font-size:13px;font-weight:800}.course-tabs button.active{color:#fff;background:#3f8cff;box-shadow:0 6px 14px #3f8cff40}.recommended-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.course-card{overflow:hidden;min-width:0;padding:0;text-align:left;border:0;border-radius:8px;background:#fff;box-shadow:0 8px 20px #1f294b1a;transition:transform .2s ease,box-shadow .2s ease}.course-card:hover{transform:translateY(-2px);box-shadow:0 14px 26px #1f294b29}.course-card-open{display:block;width:100%;padding:0;color:inherit;text-align:left;border:0;background:transparent}.add-course-card{display:grid;min-height:246px;place-items:center;border:1px dashed #a8bfda;background:linear-gradient(180deg,#fff,#f7fbff)}.add-course-card div{display:grid;place-items:center;gap:8px;text-align:center}.add-course-card svg{color:var(--blue)}.add-course-card strong{color:#20253f;font-size:16px;font-weight:900}.add-course-card span{color:#8a91a3;font-size:13px}.course-cover{position:relative;height:142px;background:#3f8cff}.course-cover span{position:absolute;top:10px;left:10px;min-height:22px;padding:4px 8px;color:#fff;border-radius:5px;background:#f39c12;font-size:11px;line-height:1.2;font-weight:900}.course-cover.purple span,.course-cover.indigo span{background:#ffffff3d}.course-cover.blue{background:linear-gradient(135deg,#3b82f6,#438eff)}.course-cover.purple{background:linear-gradient(135deg,#b84fd3,#d276df)}.course-cover.sky{background:linear-gradient(135deg,#4a95f6,#70b7f7)}.course-cover.green{background:linear-gradient(135deg,#27a86e,#4fc49c)}.course-cover.orange{background:linear-gradient(135deg,#d87910,#bd7201)}.course-cover.lime{background:linear-gradient(135deg,#9aaa00,#85b000)}.course-cover.indigo{background:linear-gradient(135deg,#8f5ee8,#4c8ef8)}.course-cover.navy{background:linear-gradient(135deg,#27205c,#34305f)}.course-card-body{padding:16px 16px 14px}.course-card-body h3{margin:0;color:#20253f;font-size:16px;line-height:1.35;font-weight:900}.course-card-body p{min-height:22px;margin:7px 0 13px;color:#8a91a3;font-size:13px;line-height:1.45}.course-meta{display:flex;align-items:center;gap:10px;padding-top:12px;border-top:1px solid #edf0f6}.course-meta span{color:#9aa1b2;font-size:12px;line-height:1.2}.course-meta i{margin-left:auto;min-width:38px;padding:4px 7px;text-align:center;border-radius:5px;font-size:11px;font-style:normal;font-weight:900}.course-meta i.base{color:#13a06d;background:#dff8ec}.course-meta i.middle{color:#9a9b00;background:#f1f3c6}.course-meta i.high{color:#c25b22;background:#fde6d7}.level{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:28px;padding:4px 9px;border-radius:6px;font-size:12px;font-style:normal;font-weight:900}.level.base{color:#13a06d;background:#dff8ec}.level.middle{color:#9a9b00;background:#f1f3c6}.level.high{color:#c25b22;background:#fde6d7}.course-actions{justify-content:space-between;min-height:48px;padding:10px 14px;border-top:1px solid #edf0f6;background:#fbfdff}.course-detail-page{display:grid;gap:18px;min-height:560px;padding:24px;border-radius:8px;background:#f3f4fb}.detail-topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow-soft)}.detail-topbar>div span{display:block;color:var(--blue-dark);font-size:12px;font-weight:900}.detail-topbar h2{margin:5px 0;color:#20253f;font-size:24px;line-height:1.25;font-weight:900}.detail-topbar p{margin:0;color:#7b8294;font-size:13px;line-height:1.5}.back-button{display:inline-flex;align-items:center;min-height:38px;gap:6px;padding:0 12px;color:#3f5167;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;font-weight:850}.back-button svg{transform:rotate(180deg)}.course-detail-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}.chapter-sidebar,.lesson-content{border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow-soft)}.chapter-sidebar{overflow:hidden}.chapter-sidebar-head{display:flex;align-items:center;gap:8px;min-height:54px;padding:0 16px;color:#20253f;border-bottom:1px solid var(--soft-line);font-size:15px;font-weight:900}.chapter-sidebar-head svg{color:var(--blue)}.chapter-list{display:grid;gap:8px;padding:12px}.chapter-list button{display:grid;gap:5px;width:100%;min-height:62px;padding:12px;text-align:left;border:1px solid transparent;border-radius:8px;background:#f8fbff}.chapter-list button.active,.chapter-list button:hover{border-color:#176bff47;background:linear-gradient(135deg,#eef5ff,#edfff8)}.chapter-list strong{color:#20253f;font-size:13px;line-height:1.35}.chapter-list small{color:#7b8294;font-size:12px}.lesson-content{display:grid;gap:18px;padding:18px}.video-panel{overflow:hidden;border-radius:8px;background:#071b38}.video-placeholder{display:grid;min-height:360px;place-items:center;align-content:center;gap:10px;padding:24px;text-align:center;color:#dff5ff;background:linear-gradient(135deg,#176bff59,#12b98138),radial-gradient(circle at center,rgba(255,255,255,.12),transparent 42%),#071b38}.video-placeholder svg{color:#37f7ae}.video-placeholder strong{color:#fff;font-size:20px;line-height:1.2}.video-placeholder span{max-width:420px;color:#9ec5dd;font-size:13px;line-height:1.55}.video-controls{display:grid;grid-template-columns:46px minmax(0,1fr) 52px;align-items:center;gap:10px;min-height:44px;padding:0 14px;color:#9ec5dd;background:#ffffff0f;font-size:12px;font-weight:800}.video-progress{height:6px;overflow:hidden;border-radius:999px;background:#ffffff24}.video-progress i{display:block;width:28%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#37f7ae,#2dd4ff)}.lesson-text{display:grid;gap:14px;padding:18px;border:1px solid var(--soft-line);border-radius:8px;background:#fff}.lesson-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.lesson-heading span{display:block;color:var(--blue-dark);font-size:12px;font-weight:900}.lesson-heading h3{margin:5px 0 0;color:#20253f;font-size:22px;line-height:1.25;font-weight:900}.lesson-heading svg{color:var(--green-dark)}.lesson-text p{margin:0;color:#596779;font-size:14px;line-height:1.8}.lesson-block{padding:14px;border-radius:8px;background:#f8fbff}.lesson-block h4{margin:0 0 8px;color:#20253f;font-size:15px}.lesson-points{display:flex;flex-wrap:wrap;gap:8px}.lesson-points span{min-height:30px;padding:7px 10px;color:var(--blue-dark);border-radius:8px;background:#176bff1a;font-size:12px;font-weight:850}.save-record-button{width:fit-content;margin-top:4px}.teacher-note{display:inline-flex;align-items:center;width:fit-content;min-height:38px;gap:8px;padding:0 12px;color:var(--blue-dark);border:1px solid rgba(23,107,255,.18);border-radius:8px;background:#176bff14;font-size:13px;font-weight:850}.records-panel{margin-top:22px;overflow:hidden;border:1px solid var(--soft-line);border-radius:8px;background:#fff;box-shadow:0 8px 20px #1f294b14}.records-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:0 16px;border-bottom:1px solid var(--soft-line)}.records-head h3{margin:0;color:#20253f;font-size:16px;font-weight:900}.records-head span{color:var(--green-dark);font-size:12px;font-weight:900}.records-list{display:grid}.empty-records{padding:18px 16px;color:#7b8294;font-size:13px;font-weight:800}.record-row{display:grid;grid-template-columns:minmax(180px,1fr) 64px minmax(138px,.7fr) 48px;align-items:center;gap:12px;min-height:62px;padding:10px 14px;border-top:1px solid var(--soft-line)}.record-row:first-child{border-top:0}.record-row span{min-width:0;color:#596779;font-size:12px;font-weight:800}.record-row strong,.record-row small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-row strong{color:#20253f;font-size:13px;font-weight:900}.record-row small{margin-top:4px;color:#7b8294;font-weight:700}.record-state{display:inline-flex;justify-content:center;min-height:28px;align-items:center;color:var(--green-dark);border-radius:8px;background:#12b9811a;font-size:12px;font-weight:900}.exam-list{display:grid;gap:9px;margin-top:14px}.exam-item{width:100%;min-height:58px;gap:10px;padding:0 12px;text-align:left;border:1px solid var(--soft-line);border-radius:8px;background:#fff}.exam-item:hover,.exam-item.active{border-color:#176bff4d;background:#f4f9ff}.exam-board{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;min-height:124px;padding:16px;border:1px solid #dce9ee;border-radius:8px;background:linear-gradient(135deg,#f8fbff,#eff8f4)}.exam-date{display:grid;place-items:center;text-align:center;border-radius:8px;color:#fff;background:linear-gradient(135deg,var(--blue-dark),var(--violet))}.exam-date span,.exam-date strong{display:block}.exam-date span{font-size:20px;line-height:1;font-weight:900}.exam-date strong{margin-top:7px;color:#d7ffe8;font-size:12px}.exam-board h3{padding-top:10px;color:var(--ink);font-size:20px;line-height:1.35;font-weight:900;overflow-wrap:anywhere}.exam-item{display:grid;grid-template-columns:20px minmax(0,1fr) 16px}.exam-item svg:first-child{color:var(--blue)}.exam-item span{overflow:hidden;color:#28384a;font-size:13px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.exam-item svg:last-child{color:#8b99aa}.skill-map{position:relative;min-height:280px;overflow:hidden;border:1px solid var(--soft-line);border-radius:8px;background:linear-gradient(90deg,rgba(23,107,255,.08) 1px,transparent 1px),linear-gradient(0deg,rgba(18,185,129,.08) 1px,transparent 1px),linear-gradient(135deg,#f8fbff,#effbf6);background-size:34px 34px}.skill-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.skill-lines path{fill:none;stroke:#0a3e914d;stroke-width:1.2;stroke-dasharray:4 4}.skill-node{position:absolute;display:inline-flex;align-items:center;min-width:104px;min-height:38px;gap:7px;padding:0 10px;color:var(--blue-dark);border:1px solid rgba(23,107,255,.24);border-radius:8px;background:#fff;box-shadow:0 8px 18px #18436a1f;transform:translate(-50%,-50%)}.skill-node span{font-size:13px;font-weight:900;white-space:nowrap}.skill-node.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--blue),var(--violet) 52%,var(--green))}.skill-detail{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1fr);gap:14px;margin-top:14px;padding:14px;border:1px solid var(--soft-line);border-radius:8px;background:#fff}.skill-detail span{display:block;color:#758598;font-size:12px;font-weight:900}.skill-detail h3{margin-top:6px;color:var(--ink);font-size:20px;line-height:1.25;font-weight:900}.skill-tags{display:flex;grid-column:1 / -1;flex-wrap:wrap;gap:8px}.skill-tags span{min-height:28px;padding:6px 10px;color:var(--blue-dark);border-radius:8px;background:#176bff1a;font-size:12px;line-height:1.35}.toast{position:fixed;right:24px;bottom:24px;z-index:20;display:inline-flex;align-items:center;max-width:min(360px,calc(100vw - 32px));min-height:46px;gap:9px;padding:0 16px;color:#fff;border-radius:8px;background:#071b38;box-shadow:var(--shadow);font-size:14px;font-weight:800}.toast svg{flex:0 0 auto;color:#37f7ae}@media(prefers-reduced-motion:no-preference){.live-dot{animation:pulse 1.8s ease-in-out infinite}}@keyframes pulse{0%,to{box-shadow:0 0 0 5px #12b98129}50%{box-shadow:0 0 0 9px #12b9810f}}@media(max-width:1180px){.auth-shell{grid-template-columns:1fr}.auth-side{display:none}.app-shell{grid-template-columns:232px minmax(0,1fr)}.overview-hero,.overview-grid{grid-template-columns:1fr}.quick-stats,.module-entry-grid,.recommended-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.auth-panel{min-height:100vh;padding:24px}.auth-copy h1{font-size:28px}.app-shell{display:block}.sidebar{position:static;height:auto;padding:16px}.brand{padding-bottom:14px}.nav-list{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px 0}.sidebar-footer{display:none}.workspace{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.topbar>div:first-child{min-width:0;width:100%}.topbar h1{font-size:24px}.topbar-actions{width:100%}.account-chip,.topbar-actions .primary-button{flex:1}.overview-hero{min-height:auto;padding:20px}.overview-copy h2{font-size:30px}.command-center{min-height:292px}.visual-metrics,.quick-stats,.module-entry-grid{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.select-box{flex-basis:auto}.table-row{grid-template-columns:minmax(120px,1fr) minmax(100px,.9fr);min-height:auto;padding:12px}.table-header{display:none}.exam-board,.skill-detail,.detail-topbar,.course-detail-layout{grid-template-columns:1fr}.video-placeholder{min-height:260px}}@media(max-width:520px){.auth-panel{padding:18px}.auth-brand{align-items:flex-start}.auth-copy h1{font-size:24px}.nav-list{grid-template-columns:1fr}.topbar-actions,.hero-actions{align-items:stretch;flex-direction:column}.topbar-actions .icon-button,.primary-button,.secondary-button,.ghost-button{width:100%}.overview-copy h2{font-size:25px;line-height:1.25}.overview-copy p,.topbar p{font-size:14px;word-break:break-all}.work-card,.insight-panel{padding:14px}.courses-page,.course-detail-page{padding:18px}.courses-head{align-items:flex-start;flex-direction:column}.recommended-grid{grid-template-columns:1fr}.lesson-content,.lesson-text{padding:14px}.video-placeholder{min-height:220px}.toast{right:16px;bottom:16px}.skill-node{min-width:88px;padding:0 8px}.skill-node span{font-size:12px}}.course-video{width:100%;height:auto;max-height:500px;background-color:#000;border-radius:8px;outline:none}.course-video:focus{outline:2px solid var(--blue);outline-offset:2px}.course-cover.red{background:linear-gradient(135deg,#ef476f,#d62951)}.course-cover.teal{background:linear-gradient(135deg,#14b8a6,#0d9488)}.course-cover.cyan{background:linear-gradient(135deg,#06b6d4,#0891b2)}@media(max-width:768px){.course-video{max-height:300px}}
