:root{--bg:#0a1020;--bg2:#101a2b;--panel:#141f32;--line:#2c3a51;--line2:#27334b;--text:#e7edf6;--muted:#9eacc1;--dim:#8294af;--teal:#55d2b2;--teal2:#73e5c9;--accent:var(--teal);--green:#3ecf8e;--amber:#f5b84b;--red:#ff7b72;--grey:#6b7a90;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;line-height:1.5}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:var(--teal2)}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3{line-height:1.2}h1{font-size:clamp(28px,4vw,40px);margin:6px 0 10px}h2{font-size:22px}.app{min-height:100vh;display:flex;flex-direction:column}header.top{height:72px;border-bottom:1px solid var(--line2);display:flex;align-items:center;justify-content:space-between;padding:0 3%;background:var(--bg2);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:700;color:var(--text);text-decoration:none}.brand img{max-width:96px;max-height:44px}.brand b{color:var(--teal)}.brand small{display:block;font-size:10.5px;color:var(--muted);letter-spacing:1.2px;text-transform:uppercase;font-weight:600}.identity{display:flex;align-items:center;gap:14px;color:#b6c3d6;font-size:14px}.identity .role{font-size:11px;text-transform:uppercase;letter-spacing:1px;background:#1c3940;color:var(--teal2);padding:3px 8px;border-radius:20px}.ghost{background:transparent;color:#d7e1f0;border:1px solid #34435b;border-radius:9px;padding:8px 12px;display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:14px}.ghost:hover{border-color:var(--teal)}.primary{background:var(--accent);color:#09231f;border:0;border-radius:10px;padding:11px 18px;font-weight:800;display:inline-flex;gap:8px;align-items:center;text-decoration:none}.primary:disabled{opacity:.45;cursor:not-allowed}.danger{background:#3a1d22;color:#ffb4ad;border:1px solid #6b2d33;border-radius:9px;padding:8px 12px}.small{font-size:13px;padding:6px 10px}.layout{display:grid;grid-template-columns:250px 1fr;flex:1}aside.side{border-right:1px solid var(--line2);padding:22px 12px;background:#0c1426}.side .title{font-size:11px;color:var(--dim);letter-spacing:2px;margin:18px 12px 8px;text-transform:uppercase}.side a{display:flex;align-items:center;gap:11px;padding:10px 12px;margin:2px 0;border-radius:9px;color:#aebdd0;text-decoration:none;font-size:14.5px}.side a.active{background:#203c42;color:var(--teal2)}.side a:hover{background:#17243a}.content{padding:32px min(4vw,60px);max-width:1280px;width:100%}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:16px}.panel h2,.panel h3{margin-top:0}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.stat small{color:#93a7be;font-size:13px}.stat strong{display:block;font-size:30px;margin:8px 0 4px}.eyebrow{color:#62ddc0;font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase}.muted{color:var(--muted)}.dim{color:var(--dim)}.notice{font-size:12.5px;color:#8e9fb7;line-height:1.55}.progress{height:8px;background:#2b3a50;border-radius:20px;overflow:hidden}.progress span{display:block;background:var(--accent);height:100%}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:30px;background:#1c3940;color:#7be4c8;font-size:12.5px;font-weight:600}.pill.amber{background:#3d3220;color:#f5c97a}.pill.red{background:#3d2023;color:#ffa49c}.pill.grey{background:#253044;color:#aab6c8}.pill.green{background:#173a2e;color:#7ee2b0}.light{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle}.light.green{background:var(--green)}.light.amber{background:var(--amber)}.light.red{background:var(--red)}.light.grey{background:var(--grey)}.callout{background:#1a3440;border-left:3px solid var(--teal);padding:14px 18px;border-radius:6px;margin:16px 0;line-height:1.6}.callout.warn{background:#3a2f1c;border-color:var(--amber)}.callout.err{background:#3a1d22;border-color:var(--red)}.err{color:#ffa49c}.ok{color:#7ee2b0}label.f{display:block;margin:14px 0;color:#cbd6e6;font-size:14px}input.i,select.i,textarea.i{display:block;width:100%;margin-top:6px;padding:11px 12px;border-radius:8px;border:1px solid #3a4961;background:#0c1628;color:#fff}textarea.i{min-height:110px;resize:vertical}input.i:focus,select.i:focus,textarea.i:focus{outline:2px solid var(--teal);border-color:transparent}table.t{width:100%;border-collapse:collapse;font-size:14px}.t td,.t th{text-align:left;border-bottom:1px solid #2b3a50;padding:10px 8px;vertical-align:top}.t th{color:var(--dim);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.6px}.t tr:hover td{background:#16233a}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0 18px;border-bottom:1px solid var(--line2)}.tabs button,.tabs a{border:0;background:transparent;color:#b9c7d8;padding:10px 14px;border-bottom:2px solid transparent;text-decoration:none;display:inline-flex;gap:7px;align-items:center;font-size:14.5px}.tabs .on{color:var(--teal2);border-color:var(--teal)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;color:var(--text);text-decoration:none;display:block}.card:hover{border-color:#3d5170}.course-card{border-top:4px solid var(--c,var(--teal))}.module{margin-bottom:14px}.module h3{margin:0 0 4px}.lesson-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line);color:var(--text);text-decoration:none}.lesson-row:hover{color:var(--teal2)}.md{line-height:1.7;font-size:16.5px}.md h3{margin-top:26px;color:#d8e3f2}.md code{background:#0c1628;padding:2px 6px;border-radius:5px}.md table{border-collapse:collapse;margin:12px 0}.md td,.md th{border:1px solid #33435b;padding:8px 10px}.md blockquote{margin:12px 0;padding:10px 16px;background:#3a2f1c;border-left:3px solid var(--amber);border-radius:6px}.md li{margin:4px 0}.diagram{background:#0c1628;border:1px solid var(--line);border-radius:12px;padding:14px;overflow-x:auto}.diagram svg{max-width:100%;height:auto}dl.terms dt{font-weight:700;color:var(--teal2);margin-top:10px}dl.terms dd{margin:2px 0 0;color:#c8d4e4}.q{padding:4px 0}.opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:10px;margin:8px 0;background:#101a2b;cursor:pointer}.opt.sel{border-color:var(--teal);background:#16303a}.opt.right{border-color:var(--green);background:#143326}.opt.wrong{border-color:var(--red);background:#3a1d22}.opt input{margin-top:4px;accent-color:var(--teal);width:18px;height:18px}.navgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px}.navgrid button{border:1px solid var(--line);background:#101a2b;color:#c7d2e2;border-radius:7px;padding:6px 0;font-size:13px}.navgrid .ans{background:#1c3940;color:var(--teal2)}.navgrid .cur{outline:2px solid var(--teal)}.navgrid .flag{border-color:var(--amber)}.timer{font-variant-numeric:tabular-nums;font-weight:800;font-size:20px}.timer.low{color:var(--amber)}.order-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;margin:6px 0;background:#101a2b}.order-item .n{width:26px;height:26px;border-radius:50%;background:#1c3940;color:var(--teal2);display:grid;place-items:center;font-weight:700;font-size:13px}.match-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.bar{display:flex;align-items:center;gap:10px;margin:8px 0}.bar .lbl{width:44%;font-size:14px}.bar .progress{flex:1}.flash{min-height:240px;display:grid;place-items:center;text-align:center;font-size:24px;padding:30px;cursor:pointer;border-radius:16px;background:linear-gradient(135deg,#16303a,#141f32);border:1px solid #2f5560}.flash .def{font-size:18px;color:#d6e2f0;line-height:1.6;max-width:640px}footer.foot{text-align:center;border-top:1px solid #25334a;padding:18px;color:var(--dim);font-size:12.5px;line-height:1.7}.login{max-width:1140px;margin:7vh auto;display:grid;grid-template-columns:1.2fr .8fr;gap:56px;padding:24px;align-items:center}.hero h1{font-size:clamp(38px,5.4vw,64px);line-height:1.07;margin:14px 0}.hero p{color:#a7b6ca;font-size:18px;line-height:1.6}.toast{position:fixed;bottom:20px;right:20px;background:#1c3940;color:#d9fff3;padding:12px 16px;border-radius:10px;border:1px solid var(--teal);z-index:50;max-width:420px}.checkbox{width:20px;height:20px;accent-color:var(--teal)}.taught td{color:#8fa0b6}.taught td.title{text-decoration:line-through}.chip{display:inline-block;font-size:11.5px;padding:2px 8px;border-radius:6px;background:#22314a;color:#b5c3d6;margin-right:4px}.slide-shell{position:fixed;top:0;right:0;bottom:0;left:0;background:#07101f;z-index:100;display:flex;flex-direction:column}.slide{flex:1;display:flex;flex-direction:column;justify-content:center;padding:4vh 8vw;overflow:auto}.slide h2{font-size:clamp(28px,4vw,52px);margin:0 0 3vh;color:#fff}.slide .body{font-size:clamp(18px,2.1vw,30px);line-height:1.5;color:#dbe5f3}.slide .body svg{max-height:55vh;width:auto;max-width:100%}.slide.title-slide{background:radial-gradient(circle at 20% 20%,#16303a,#07101f 60%)}.slide.title-slide h2{font-size:clamp(34px,5vw,70px)}.slide-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;color:#7f90a8;font-size:14px;border-top:1px solid #1d2a40}.slide dl dt{font-weight:700;color:var(--teal2)}.slide dl dd{margin:0 0 10px}.cert{background:#fff;color:#14213a;max-width:1000px;margin:0 auto;padding:56px 64px;border:12px solid #0a1020;outline:3px solid #55d2b2;outline-offset:-22px;text-align:center;font-family:Georgia,Times New Roman,serif;position:relative}.cert h1{font-size:40px;letter-spacing:1px;margin:8px 0;color:#0a1020}.cert .name{font-size:44px;font-style:italic;color:#0d6b58;margin:18px 0;border-bottom:1px solid #b9c6d6;display:inline-block;padding:0 30px 6px}.cert .logo{max-height:80px}.cert .small{font-size:12.5px;color:#4b5a70;font-family:Inter,system-ui,sans-serif;line-height:1.55}.cert .code{font-family:ui-monospace,Menlo,monospace;font-size:16px;letter-spacing:1px}.cert .disclaimer{margin-top:24px;padding-top:12px;border-top:1px solid #d5dde8}.chart{display:flex;align-items:flex-end;gap:6px;height:120px}.chart div{flex:1;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px;position:relative}.chart span{position:absolute;top:-18px;width:100%;text-align:center;font-size:11px;color:#b6c3d6}@media print{header.top,aside.side,footer.foot,.no-print{display:none!important}body,.app,.content{background:#fff!important;padding:0!important}.layout{display:block}.cert{border-width:8px}}@media(max-width:980px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr 1fr}}@media(max-width:850px){.login,.layout{grid-template-columns:1fr}aside.side{display:flex;overflow:auto;padding:6px;gap:4px}.side a{white-space:nowrap}.side .title{display:none}.content{padding:20px}header.top{padding:8px 14px}.identity .nm{display:none}.g2,.g3{grid-template-columns:1fr}}@media(max-width:520px){.g4{grid-template-columns:1fr 1fr}.brand{font-size:16px}.cert{padding:24px}}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.5px}
