@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_2370812d-module__2vxq1q__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_2370812d-module__2vxq1q__variable{--font-grotesk:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5901b7c6-module__ec5Qua__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_5901b7c6-module__ec5Qua__variable{--font-inter:"Inter", "Inter Fallback"}
:root{--abyss:#02070f;--deep:#04101f;--mid:#0a1c33;--surface:#0d203a99;--surface-strong:#0f2442d9;--surface-hover:#18345aa6;--cyan:#38e1ff;--cyan-soft:#38e1ff24;--teal:#2dd4bf;--blue:#4d9fff;--violet:#a78bfa;--amber:#ffb454;--red:#ff6b7a;--green:#3ddc97;--text:#e6f2ff;--text-dim:#9fb4cc;--text-faint:#64788f;--line:#78beff24;--line-strong:#78beff47;--glow-cyan:0 0 24px #38e1ff40;--glow-cyan-strong:0 0 34px #38e1ff73;--radius:14px;--radius-sm:9px;--font-display:var(--font-grotesk), "Segoe UI", sans-serif;--font-body:var(--font-inter), "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-body);background:var(--abyss);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:15px;line-height:1.6}h1,h2,h3,h4,h5{font-family:var(--font-display);letter-spacing:.01em;color:var(--text);font-weight:600}a{color:inherit;text-decoration:none}::selection{background:#38e1ff59}*{scrollbar-width:thin;scrollbar-color:#38e1ff40 transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#38e1ff2e;border-radius:99px}::-webkit-scrollbar-track{background:0 0}.ocean-bg{z-index:-1;background:radial-gradient(1200px 700px at 80% -10%,#2d82d22e,#0000 60%),radial-gradient(900px 600px at 8% 110%,#2dd4bf1f,#0000 60%),radial-gradient(700px 500px,#143c6e26,#0000 70%),linear-gradient(#030b18 0%,#04101f 45%,#062033 100%);position:fixed;inset:0;overflow:hidden}.ocean-bg:before{content:"";background-image:linear-gradient(#5db0ff0b 1px,#0000 1px),linear-gradient(90deg,#5db0ff0b 1px,#0000 1px);background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 30%,#000 0%,#0000 75%);mask-image:radial-gradient(at 50% 30%,#000 0%,#0000 75%)}.ocean-bg .glow-orb{filter:blur(90px);opacity:.5;border-radius:50%;animation:26s ease-in-out infinite alternate orb-drift;position:absolute}.ocean-bg .glow-orb.a{background:radial-gradient(circle,#38e1ff29,#0000 70%);width:480px;height:480px;top:8%;left:-140px}.ocean-bg .glow-orb.b{background:radial-gradient(circle,#2dd4bf24,#0000 70%);width:560px;height:560px;animation-delay:-12s;bottom:-10%;right:-180px}@keyframes orb-drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(60px,-40px)scale(1.15)}}.ocean-bg .waves{opacity:.9;height:26vh;min-height:170px;position:absolute;bottom:-2px;left:0;right:0}.ocean-bg .wave-band{width:200%;height:100%;position:absolute;bottom:0;left:0}.ocean-bg .wave-band svg{width:100%;height:100%;display:block}.ocean-bg .wave-band.w1{opacity:.5;animation:26s linear infinite wave-slide}.ocean-bg .wave-band.w2{opacity:.35;animation:18s linear infinite reverse wave-slide}.ocean-bg .wave-band.w3{opacity:.25;animation:12s linear infinite wave-slide}@keyframes wave-slide{0%{transform:translate(0)}to{transform:translate(-50%)}}.ocean-bg .sonar{opacity:.45;width:180px;height:180px;position:absolute;top:48px;right:56px}.ocean-bg .sonar .ring{border:1px solid #38e1ff59;border-radius:50%;animation:5s ease-out infinite sonar-ping;position:absolute;inset:0}.ocean-bg .sonar .ring:nth-child(2){animation-delay:1.6s}.ocean-bg .sonar .ring:nth-child(3){animation-delay:3.2s}.ocean-bg .sonar .sweep{background:conic-gradient(#38e1ff59,#0000 24%);border-radius:50%;animation:6s linear infinite sonar-sweep;position:absolute;inset:0}@keyframes sonar-ping{0%{opacity:.9;transform:scale(.15)}to{opacity:0;transform:scale(1)}}@keyframes sonar-sweep{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width:900px){.ocean-bg .sonar{display:none}}@media (prefers-reduced-motion:reduce){.ocean-bg .wave-band,.ocean-bg .glow-orb,.ocean-bg .sonar .ring,.ocean-bg .sonar .sweep{animation:none}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(16px);position:relative;box-shadow:0 18px 46px #01081280}.panel:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(160deg,#38e1ff47,#0000 34% 70%,#2dd4bf2e);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.panel-pad{padding:26px}.card-link{transition:transform .22s,box-shadow .22s;display:block}.card-link:hover{transform:translateY(-4px)}.card-link:hover .panel,.panel.hoverable:hover{box-shadow:0 22px 54px #01081299, var(--glow-cyan);border-color:var(--line-strong)}.divider{background:var(--line);border:0;height:1px;margin:18px 0}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--cyan);align-items:center;gap:10px;font-size:.72rem;font-weight:700;display:inline-flex}.eyebrow:before{content:"";background:linear-gradient(90deg, var(--cyan), transparent);width:26px;height:1px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:26px;display:flex}.page-title{margin-top:6px;font-size:1.7rem;line-height:1.2}.page-sub{color:var(--text-dim);max-width:68ch;margin-top:6px}.page-actions{flex-wrap:wrap;gap:10px;display:flex}.muted{color:var(--text-dim)}.faint{color:var(--text-faint);font-size:.85rem}.btn{border-radius:var(--radius-sm);min-height:42px;font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;transition:transform .16s,box-shadow .2s,background .2s,border-color .2s,color .2s;display:inline-flex}.btn:disabled{opacity:.55;cursor:wait}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{color:#eafcff;background:linear-gradient(135deg,#0aa6d6,#0e7ae0);box-shadow:0 8px 24px #0e7ae059}.btn-primary:hover:not(:disabled){box-shadow:0 10px 30px #0e7ae073, var(--glow-cyan);transform:translateY(-1px)}.btn-ghost{border-color:var(--line);color:var(--text);background:#78beff12}.btn-ghost:hover:not(:disabled){border-color:var(--line-strong);background:#78beff24}.btn-danger{color:#ffb3bc;background:#ff6b7a1a;border-color:#ff6b7a59}.btn-danger:hover:not(:disabled){background:#ff6b7a33;box-shadow:0 0 18px #ff6b7a40}.btn-success{color:#8df0c4;background:#3ddc971f;border-color:#3ddc9766}.btn-success:hover:not(:disabled){background:#3ddc9738;box-shadow:0 0 18px #3ddc9740}.btn-sm{border-radius:8px;min-height:32px;padding:0 12px;font-size:.85rem}.btn-block{width:100%}.icon-btn{border:1px solid var(--line);width:30px;height:30px;color:var(--text-dim);cursor:pointer;background:#78beff0f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .18s;display:inline-flex}.icon-btn:hover:not(:disabled){color:var(--cyan);border-color:var(--line-strong);background:#38e1ff1a}.icon-btn:disabled{opacity:.3;cursor:default}.icon-btn.danger:hover:not(:disabled){color:var(--red);background:#ff6b7a1f;border-color:#ff6b7a66}.field{margin-bottom:16px}.label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);margin-bottom:7px;font-size:.82rem;font-weight:600;display:block}.input,.select,.textarea{width:100%;font:inherit;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);background:#04101fa6;padding:11px 14px;transition:border-color .2s,box-shadow .2s,background .2s}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:focus,.select:focus,.textarea:focus{box-shadow:0 0 0 3px #38e1ff1f, var(--glow-cyan);background:#06162acc;border-color:#38e1ff8c;outline:none}.textarea{resize:vertical;min-height:96px}.select option{background:var(--mid);color:var(--text)}.input[type=file]{padding:9px 12px}.input[type=file]::file-selector-button{border:1px solid var(--line-strong);color:var(--cyan);font:inherit;cursor:pointer;background:#38e1ff1a;border-radius:7px;margin-right:12px;padding:6px 12px;font-size:.84rem}.check-row{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:#04101f73;align-items:center;gap:10px;padding:9px 12px;transition:border-color .16s,background .16s;display:flex}.check-row:hover{border-color:var(--line-strong);background:#0c1e3799}.check-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--cyan);cursor:pointer;flex-shrink:0}.check-list{gap:8px;max-height:260px;padding-right:4px;display:grid;overflow:auto}.form-msg{border-radius:var(--radius-sm);margin-bottom:14px;padding:11px 14px;font-size:.9rem;font-weight:500}.form-msg.ok{color:#8df0c4;background:#3ddc971a;border:1px solid #3ddc9759}.form-msg.err{color:#ffb3bc;background:#ff6b7a1a;border:1px solid #ff6b7a59}.badge{letter-spacing:.06em;text-transform:uppercase;border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.badge-cyan{color:var(--cyan);background:#38e1ff14;border-color:#38e1ff66}.badge-teal{color:var(--teal);background:#2dd4bf14;border-color:#2dd4bf66}.badge-violet{color:var(--violet);background:#a78bfa14;border-color:#a78bfa66}.badge-amber{color:var(--amber);background:#ffb45414;border-color:#ffb45466}.badge-red{color:#ffb3bc;background:#ff6b7a14;border-color:#ff6b7a66}.badge-green{color:#8df0c4;background:#3ddc9714;border-color:#3ddc9766}.badge-dim{color:var(--text-dim);border-color:var(--line);background:#78beff0d}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.stat{align-items:center;gap:16px;padding:20px 22px;display:flex}.stat-icon{width:48px;height:48px;color:var(--cyan);background:#38e1ff1a;border:1px solid #38e1ff40;border-radius:12px;flex-shrink:0;place-items:center;display:grid}.stat-value{font-family:var(--font-display);font-size:1.9rem;font-weight:700;line-height:1.1}.stat-label{color:var(--text-dim);font-size:.85rem}.progress{background:#78beff1a;border:1px solid #78beff14;border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--teal), var(--cyan));border-radius:999px;height:100%;transition:width .5s;box-shadow:0 0 12px #38e1ff80}.progress-row{align-items:center;gap:12px;display:flex}.progress-row .progress{flex:1}.progress-pct{font-family:var(--font-display);color:var(--cyan);text-align:right;min-width:42px;font-size:.85rem;font-weight:700}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.93rem}.table th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);border-bottom:1px solid var(--line-strong);white-space:nowrap;padding:12px 14px;font-size:.74rem;font-weight:700}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:13px 14px}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:background .15s}.table tbody tr:hover{background:#38e1ff0a}.empty{text-align:center;color:var(--text-dim);place-items:center;gap:10px;padding:44px 20px;display:grid}.empty svg{opacity:.5}.empty strong{color:var(--text);font-family:var(--font-display)}.auth-shell{grid-template-columns:minmax(0,1.15fr) minmax(400px,560px);min-height:100vh;display:grid}.auth-visual{flex-direction:column;justify-content:flex-end;padding:64px;display:flex;position:relative;overflow:hidden}.auth-brand-row{align-items:center;gap:13px;display:flex;position:absolute;top:42px;left:64px}.auth-logo{width:46px;height:46px;box-shadow:var(--glow-cyan);color:var(--cyan);background:linear-gradient(145deg,#38e1ff2e,#0e7ae033);border:1px solid #38e1ff66;border-radius:12px;place-items:center;display:grid}.auth-brand-name{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;font-size:1.12rem;font-weight:700}.auth-hero h1{letter-spacing:-.01em;max-width:13ch;font-size:clamp(2.4rem,4.4vw,4rem);line-height:1.04}.auth-hero h1 em{background:linear-gradient(90deg, var(--cyan), var(--teal));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.auth-hero p{max-width:52ch;color:var(--text-dim);margin-top:20px;font-size:1.02rem}.auth-hero-stats{flex-wrap:wrap;gap:34px;margin-top:38px;display:flex}.auth-hero-stat .n{font-family:var(--font-display);color:var(--cyan);font-size:1.5rem;font-weight:700}.auth-hero-stat .l{color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase;font-size:.82rem}.auth-form-col{border-left:1px solid var(--line);-webkit-backdrop-filter:blur(20px);background:#030a1480;place-items:center;padding:40px;display:grid}.auth-card{width:min(100%,400px)}.auth-card h2{margin:14px 0 6px;font-size:1.6rem}.auth-card>p{color:var(--text-dim);margin-bottom:26px}.auth-input-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);height:52px;color:var(--text-faint);background:#04101fa6;align-items:center;gap:11px;padding:0 15px;transition:border-color .2s,box-shadow .2s;display:flex}.auth-input-wrap:focus-within{box-shadow:0 0 0 3px #38e1ff1f, var(--glow-cyan);color:var(--cyan);border-color:#38e1ff8c}.auth-input-wrap input{min-width:0;height:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:0;flex:1}.auth-input-wrap input::placeholder{color:var(--text-faint)}.auth-hint{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--text-dim);margin-top:22px;padding:13px 15px;font-size:.84rem}.auth-hint code{color:var(--cyan);font-size:.83rem}@media (max-width:980px){.auth-shell{grid-template-columns:1fr}.auth-visual{min-height:34vh;padding:96px 28px 30px}.auth-brand-row{top:26px;left:28px}.auth-hero p,.auth-hero-stats{display:none}.auth-form-col{border-left:0;border-top:1px solid var(--line)}}.dash{grid-template-columns:250px minmax(0,1fr);min-height:100vh;display:grid}.dash-side{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(18px);background:#030a1499;flex-direction:column;align-self:start;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.dash-brand{border-bottom:1px solid var(--line);align-items:center;gap:12px;margin-bottom:18px;padding:6px 10px 20px;display:flex}.dash-brand .auth-logo{border-radius:10px;width:40px;height:40px}.dash-brand-name{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;font-size:.98rem;font-weight:700;line-height:1.2}.dash-brand-role{letter-spacing:.16em;color:var(--cyan);font-size:.7rem;font-weight:600;display:block}.dash-nav{gap:4px;display:grid}.dash-nav-label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);padding:14px 10px 6px;font-size:.68rem;font-weight:700}.dash-link{border-radius:var(--radius-sm);color:var(--text-dim);border:1px solid #0000;align-items:center;gap:11px;padding:10px 12px;font-weight:500;transition:all .16s;display:flex}.dash-link:hover{color:var(--text);background:#78beff12}.dash-link.active{color:var(--cyan);background:#38e1ff17;border-color:#38e1ff40;box-shadow:inset 0 0 18px #38e1ff0f}.dash-link svg{flex-shrink:0}.dash-side-footer{border-top:1px solid var(--line);gap:10px;margin-top:auto;padding-top:16px;display:grid}.dash-user{align-items:center;gap:11px;min-width:0;padding:4px 8px;display:flex}.dash-avatar{width:38px;height:38px;font-family:var(--font-display);color:var(--cyan);background:linear-gradient(145deg,#38e1ff33,#2dd4bf29);border:1px solid #38e1ff59;border-radius:50%;flex-shrink:0;place-items:center;font-size:.9rem;font-weight:700;display:grid}.dash-user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.dash-user-rank{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;font-size:.76rem;overflow:hidden}.dash-main{min-width:0;padding:40px 44px 80px}@media (max-width:900px){.dash{grid-template-columns:1fr}.dash-side{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;align-items:center;gap:10px;height:auto;padding:14px 16px;position:static}.dash-brand{border:0;margin:0;padding:0 8px 0 0}.dash-nav{flex-wrap:wrap;gap:6px;display:flex}.dash-nav-label{display:none}.dash-link{padding:8px 11px;font-size:.9rem}.dash-side-footer{border:0;align-items:center;margin:0 0 0 auto;padding:0;display:flex}.dash-user-rank{display:none}.dash-main{padding:26px 18px 60px}}.course-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;display:grid}.course-card{flex-direction:column;gap:14px;height:100%;padding:22px;display:flex}.course-card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.course-card h4{font-size:1.12rem;line-height:1.35}.course-card .desc{color:var(--text-dim);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.9rem;display:-webkit-box;overflow:hidden}.course-card-meta{color:var(--text-faint);flex-wrap:wrap;gap:14px;font-size:.82rem;display:flex}.course-card-meta span{align-items:center;gap:6px;display:inline-flex}.course-card-footer{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.chapter-block{margin-bottom:14px}.chapter-head{border-bottom:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;background:#0e223e80;align-items:center;gap:10px;padding:14px 16px;display:flex}.chapter-num{width:30px;height:30px;color:var(--cyan);font-family:var(--font-display);background:#38e1ff1a;border:1px solid #38e1ff4d;border-radius:9px;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:700;display:grid}.chapter-title-text{min-width:0;font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:1.02rem;font-weight:600;overflow:hidden}.chapter-tools{flex-shrink:0;gap:6px;display:flex}.section-rows{gap:6px;padding:8px 10px;display:grid}.section-row{border:1px solid var(--line);border-radius:var(--radius-sm);background:#06122380;align-items:center;gap:11px;padding:10px 12px;transition:border-color .16s,background .16s;display:flex}.section-row:hover{border-color:var(--line-strong)}.section-row .grow{flex:1;min-width:0}.section-row-title{text-overflow:ellipsis;white-space:nowrap;font-size:.94rem;font-weight:600;overflow:hidden}.section-row-sub{color:var(--text-faint);font-size:.78rem}.type-icon{border:1px solid;border-radius:9px;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.type-icon.TEXT{color:var(--teal);background:#2dd4bf14;border-color:#2dd4bf59}.type-icon.PDF{color:var(--amber);background:#ffb45414;border-color:#ffb45459}.type-icon.SLIDES{color:var(--violet);background:#a78bfa14;border-color:#a78bfa59}.type-icon.VIDEO{color:var(--cyan);background:#38e1ff14;border-color:#38e1ff59}.add-inline{gap:8px;padding:10px;display:flex}.add-inline .input{flex:1}.editor-columns{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px;display:grid}@media (max-width:1100px){.editor-columns{grid-template-columns:1fr}}.player-layout{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (max-width:1020px){.player-layout{grid-template-columns:1fr}}.outline-panel{overflow:hidden}.outline-head{border-bottom:1px solid var(--line);background:#0e223e73;padding:18px 18px 16px}.outline-list{min-height:200px;max-height:calc(100vh - 300px);padding:10px;overflow-y:auto}.outline-chapter{margin-bottom:6px}.outline-chapter summary{border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-display);color:var(--text);align-items:center;gap:10px;padding:10px;font-size:.93rem;font-weight:600;list-style:none;transition:background .15s;display:flex}.outline-chapter summary::-webkit-details-marker{display:none}.outline-chapter summary:hover{background:#78beff0f}.outline-chapter summary .chev{color:var(--text-faint);margin-left:auto;transition:transform .2s}.outline-chapter[open] summary .chev{transform:rotate(90deg)}.outline-secs{gap:4px;padding:2px 0 8px 12px;display:grid}.outline-sec{border-radius:var(--radius-sm);color:var(--text-dim);border:1px solid #0000;align-items:center;gap:10px;padding:9px 11px;font-size:.9rem;transition:all .15s;display:flex}.outline-sec:hover{color:var(--text);background:#78beff12}.outline-sec.active{color:var(--cyan);background:#38e1ff1a;border-color:#38e1ff4d;box-shadow:inset 0 0 16px #38e1ff0d}.outline-sec .t{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sec-state{border:1.5px solid var(--line-strong);color:#0000;border-radius:50%;flex-shrink:0;place-items:center;width:20px;height:20px;transition:all .2s;display:grid}.sec-state.done{border-color:var(--green);color:var(--green);background:#3ddc9726}.viewer-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.viewer-title{font-size:1.35rem}.viewer-crumb{color:var(--text-faint);margin-top:4px;font-size:.85rem}.viewer-video{border-radius:var(--radius-sm);background:#000;outline:none;width:100%;max-height:60vh}.viewer-frame{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;width:100%;height:68vh;min-height:460px}.viewer-text{color:var(--text);white-space:pre-wrap;max-width:76ch;padding:8px 4px;font-size:1rem;line-height:1.85}.viewer-download{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);text-align:center;color:var(--text-dim);place-items:center;gap:14px;padding:54px 20px;display:grid}.viewer-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;padding-top:18px;display:flex}.quiz-q{margin-bottom:14px;padding:22px 24px}.quiz-q-head{align-items:baseline;gap:12px;margin-bottom:15px;display:flex}.quiz-q-num{font-family:var(--font-display);color:var(--cyan);flex-shrink:0;font-weight:700}.quiz-q-text{font-size:1.03rem;font-weight:600}.quiz-opts{gap:8px;display:grid}.quiz-opt{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:#04101f66;align-items:center;gap:12px;padding:12px 14px;transition:all .15s;display:flex}.quiz-opt:hover{border-color:var(--line-strong);background:#0c1e378c}.quiz-opt input{accent-color:var(--cyan);flex-shrink:0;width:16px;height:16px}.quiz-opt.selected{background:#38e1ff14;border-color:#38e1ff80;box-shadow:inset 0 0 16px #38e1ff0d}.quiz-opt .k{border:1px solid var(--line-strong);width:26px;height:26px;font-family:var(--font-display);color:var(--text-dim);border-radius:7px;flex-shrink:0;place-items:center;font-size:.8rem;font-weight:700;display:grid}.quiz-opt.selected .k{color:var(--cyan);background:#38e1ff1a;border-color:#38e1ff80}.score-ring{width:150px;height:150px;margin:0 auto;position:relative}.score-ring svg{transform:rotate(-90deg)}.score-ring .val{font-family:var(--font-display);place-items:center;font-size:1.9rem;font-weight:700;display:grid;position:absolute;inset:0}.guide-steps{color:var(--text-dim);gap:12px;padding-left:22px;display:grid}.guide-steps li{padding-left:6px;line-height:1.7}.guide-steps li::marker{color:var(--cyan);font-family:var(--font-display);font-weight:700}.guide-steps strong{color:var(--text)}.guide-link{color:var(--cyan);border-bottom:1px dashed #38e1ff66;font-weight:600}.guide-link:hover{border-bottom-style:solid}.snap-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.snap-grid img{border:1px solid var(--line);background:#0006;border-radius:8px;width:100%;transition:transform .15s,border-color .15s}.snap-grid a:hover img{border-color:var(--line-strong);transform:scale(1.03)}.animate-rise{animation:.5s ease-out both rise}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;display:grid}.stack{gap:18px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}details.collapse>summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}details.collapse>summary::-webkit-details-marker{display:none}@media print{.ocean-bg,.dash-side,.no-print{display:none!important}body{color:#000;background:#fff}.dash{display:block}.dash-main{padding:0}}.cred-box{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#38e1ff0f;margin-bottom:16px;padding:12px 14px}.cred-row{justify-content:space-between;align-items:center;gap:12px;margin-top:6px;font-size:.88rem;display:flex}.cred-row span{color:var(--text-dim)}.cred-row code,.mono-chip{letter-spacing:.08em;border:1px solid var(--line);color:var(--cyan);white-space:nowrap;background:#02070f99;border-radius:6px;padding:3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.req-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:18px;display:grid}.req-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);gap:4px;padding:13px 15px;display:grid}.req-item strong{font-size:.92rem}.req-item span{color:var(--text-dim);font-size:.85rem;line-height:1.5}.exam-rules{border:1px solid var(--line);border-radius:var(--radius-sm);background:#02070f59;padding:16px 18px}.exam-rules h4{margin-bottom:8px;font-size:.95rem}.exam-rules ul{gap:6px;padding-left:18px;display:grid}.exam-rules li{color:var(--text-dim);font-size:.87rem;line-height:1.55}.proctor-bar{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.proctor-preview{object-fit:cover;border:1px solid var(--line-strong);background:#000;border-radius:8px;width:132px;height:99px;margin-left:auto;transform:scaleX(-1)}.exam-topbar{z-index:6;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:14px;padding:12px 18px;display:flex;position:sticky;top:12px}.exam-timer{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:#02070f8c;gap:2px;min-width:132px;padding:6px 14px;display:grid}.exam-timer-label{letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);font-size:.68rem}.exam-timer-value{color:var(--cyan);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.5rem;font-weight:700;line-height:1.1}.exam-timer.warn{border-color:#ffb45480}.exam-timer.warn .exam-timer-value{color:var(--amber)}.exam-timer.danger{border-color:#ff6b7a99;animation:1s ease-in-out infinite pulse-timer}.exam-timer.danger .exam-timer-value{color:var(--red)}@keyframes pulse-timer{0%,to{box-shadow:0 0 #ff6b7a00}50%{box-shadow:0 0 18px #ff6b7a59}}.exam-body{grid-template-columns:minmax(0,1fr) 220px;align-items:start;gap:16px;display:grid}@media (max-width:820px){.exam-body{grid-template-columns:1fr}}.exam-side{position:sticky;top:110px}.exam-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;display:flex}.qnav{grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px;display:grid}.qnav-btn{aspect-ratio:1;border:1px solid var(--line);color:var(--text-dim);cursor:pointer;background:#02070f73;border-radius:8px;font-size:.82rem;font-weight:600;transition:all .14s}.qnav-btn:hover{border-color:var(--line-strong);color:var(--text)}.qnav-btn.done{color:#8df0c4;background:#3ddc971f;border-color:#3ddc9773}.qnav-btn.current{border-color:var(--cyan);background:var(--cyan-soft);color:var(--cyan);box-shadow:var(--glow-cyan)}.quiz-opt.review{cursor:default}.quiz-opt.review.correct{background:#3ddc971a;border-color:#3ddc9780}.quiz-opt.review.wrong{background:#ff6b7a1a;border-color:#ff6b7a80}.quiz-opt.review.key{border-style:dashed;border-color:#3ddc9759}.grow{flex:1;min-width:0}
