/* Disco Academy 1.1 — original, academic learning interface.
   Inspired by modern LMS content navigation; no Cisco assets or styling copied. */
:root {
  color-scheme:light;
  font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --bg:#f5f7fb;--panel:#fff;--panel2:#f8fafc;--ink:#17243b;--muted:#607087;
  --line:#e1e7f0;--blue:#0754b8;--blue-2:#126bd5;--navy:#142b4d;--cyan:#0c91bc;
  --green:#16764d;--red:#b7353b;--orange:#b76b18;--shadow:0 8px 28px rgba(29,51,79,.045);
  --radius:13px;--focus:0 0 0 3px rgba(20,107,212,.16)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:var(--blue)}a:hover{text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,3.1vw,43px);letter-spacing:-.04em;line-height:1.15;font-weight:800}h2{font-size:23px;line-height:1.25;letter-spacing:-.035em}h3{font-size:16px;line-height:1.4;letter-spacing:-.015em}p{line-height:1.65;color:var(--muted)}small,.subtle,.muted{color:var(--muted)}:focus-visible{outline:2px solid var(--blue-2);outline-offset:3px}.eyebrow{color:var(--blue);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.13em}.accent{color:#58c7ee}
.layout{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100vh}.sidebar{height:100vh;position:sticky;top:0;background:#fff;border-right:1px solid var(--line);padding:22px 14px 15px;display:flex;flex-direction:column;overflow:auto;gap:28px;z-index:15}.brand{padding:0 10px;display:flex;align-items:center;gap:11px;cursor:pointer}.logo-glyph{background:var(--blue);width:41px;height:41px;color:#fff;border-radius:10px;display:grid;place-items:center;font-weight:900;letter-spacing:-.07em;font-size:26px;flex:none;box-shadow:0 4px 11px #0754b829}.brandname{font-size:18px;font-weight:850;letter-spacing:-.055em;color:#182944;line-height:1.2}.brandname .accent{color:var(--blue)}.brand-sub{font-size:9px;color:#73839a;font-weight:750;letter-spacing:.13em;margin-top:3px}.nav-group{display:flex;flex-direction:column;gap:4px}.nav-caption{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#8b98ab;padding:10px 12px 8px;font-weight:800}.nav-btn{width:100%;text-align:left;display:flex;align-items:center;gap:12px;background:transparent;color:#52647b;border:0;border-radius:8px;padding:12px 11px;font-size:13px;font-weight:650;position:relative}.nav-btn:hover{background:#f2f6fc;color:#193d71}.nav-btn.active{background:#eaf2fd;color:#0754b8}.nav-btn.active::before{position:absolute;content:'';width:3px;top:8px;bottom:8px;left:0;background:#146bd5;border-radius:4px}.nav-ic{width:21px;height:21px;display:grid;place-items:center;flex:none}.nav-ic svg{width:19px;height:19px}.userfoot{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding:16px 5px 2px;margin-top:auto;min-width:0}.avatar{flex:none;width:37px;height:37px;border-radius:50%;background:#dfebfb;color:#1d55a0;display:grid;place-items:center;font-weight:750;font-size:13px}.user-meta{min-width:0;flex:1}.userfoot .email{font-size:11px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.userfoot .role{font-size:10px;color:#8795a8;text-transform:capitalize;margin-top:3px}.icon-btn{background:transparent;border:0;color:#77869b;font-size:18px;padding:8px;border-radius:7px}.icon-btn:hover{background:#edf3fb;color:var(--blue)}.main{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:22px}.breadcrumb{font-size:12px;color:#76849a;font-weight:600}.breadcrumb strong{color:#293d5e;font-weight:700}.top-actions{display:flex;align-items:center;gap:18px}.indicator{display:flex;gap:8px;align-items:center;font-size:11px;color:#6c7a8d;white-space:nowrap}.dot{width:7px;height:7px;background:#38a879;border-radius:50%}.global-search{display:flex;align-items:center;border:1px solid #e1e8f1;background:#f6f8fc;border-radius:8px;min-width:240px;width:min(320px,29vw);height:37px;padding:0 11px;gap:8px}.global-search svg{width:15px;height:15px;color:#75869a;flex:none}.global-search input{min-width:0;width:100%;border:0;background:transparent;outline:0;color:var(--ink);font-size:12px}.global-search input::placeholder{color:#8c9aab}.global-search button{border:0;background:transparent;padding:1px 3px;font-size:11px;color:#7e8da0}.menu-toggle{display:none;background:transparent;border:0;color:#253a58;padding:6px}.menu-toggle svg{width:21px;height:21px}
.content{width:min(1260px,100%);margin:0 auto;padding:36px 38px 76px}.layout-footer{margin-top:52px;border-top:1px solid var(--line);padding-top:22px;font-size:11px;color:#8b98aa}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;margin-bottom:29px}.page-head h1{margin:8px 0 10px}.page-head p{max-width:770px;margin:0}.breadcrumb-trail{display:flex;align-items:center;gap:8px;font-size:12px;color:#697b91;flex-wrap:wrap;margin-bottom:17px}.breadcrumb-trail button{background:transparent;border:0;color:var(--blue);font-weight:700;padding:0;font-size:inherit}
.btn{border:1px solid #d8e0ec;background:#fff;color:#2c4a70;border-radius:8px;font-size:12px;font-weight:750;padding:11px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:background .17s,box-shadow .17s,transform .17s}.btn:hover{background:#f2f7fe;border-color:#a8c4e7}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:#034794;box-shadow:0 5px 16px #0754b82b}.btn.secondary{background:#fff}.btn.danger{color:#b33341;border-color:#f0cfd1;background:#fff7f8}.btn.tiny{font-size:11px;padding:8px 11px}.action-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:5px;background:#e8f1ff;color:#1559a4;font-size:10px;font-weight:750;letter-spacing:.02em;border:1px solid #d5e6fa}.pill.slate{background:#f3f5f8;border-color:#e2e7ee;color:#64758b}.pill.green{background:#e5f6ed;border-color:#c5ead4;color:#15764c}.pill.gold{background:#fff1db;border-color:#ffe3b9;color:#a9680e}.badges{display:flex;gap:8px;flex-wrap:wrap}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:32px 0 17px}.section-heading h2{margin:0 0 4px}.section-heading p{margin:2px 0 0;font-size:13px}.panel,.course-card,.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:25px}.two{display:grid;grid-template-columns:1.45fr 1fr;gap:18px}.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.hero{min-height:264px;border-radius:14px;background:linear-gradient(110deg,#102947,#154474 75%,#13618c);padding:40px 45px;color:#fff;position:relative;overflow:hidden;display:flex;align-items:center;gap:25px}.hero::after{content:'';position:absolute;inset:0 0 0 53%;background:radial-gradient(circle at 65% 40%,#34b0ed1e 1px,transparent 1px);background-size:22px 22px;opacity:.75}.hero-text{position:relative;z-index:2;width:57%;min-width:440px}.hero h1{font-size:clamp(29px,3vw,42px);margin:13px 0 13px;max-width:650px}.hero p{color:#c2d7ee;max-width:590px;font-size:13px;line-height:1.65;margin-bottom:22px}.hero .eyebrow{color:#84cbf9}.hero .btn.primary{background:#fff;color:#103c70;border-color:white}.hero .btn.primary:hover{background:#eaf2fb}.hero .btn:not(.primary){background:#ffffff19;border-color:#ffffff4a;color:#fff}.hero-art{width:42%;min-width:225px;position:relative;z-index:1}.hero-art svg{display:block;width:100%;filter:drop-shadow(0 15px 20px #021a3a4f)}
.course-card{padding:0;display:flex;flex-direction:column;min-height:263px;overflow:hidden;cursor:pointer;transition:box-shadow .17s,transform .17s,border-color .17s}.course-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px #183f6920;border-color:#b4c9e4}.course-banner{height:78px;display:flex;align-items:center;justify-content:space-between;position:relative;padding:15px 20px;background:#174b8b;color:white;overflow:hidden}.course-banner::before{content:'';position:absolute;width:170px;height:170px;border:1px solid #ffffff30;border-radius:50%;top:-100px;right:-35px}.course-banner::after{content:'';position:absolute;width:115px;height:115px;border:1px solid #ffffff40;border-radius:50%;top:-55px;right:25px}.course-badge{font-weight:850;font-size:11px;letter-spacing:.09em}.course-pattern{font-size:34px;font-weight:900;color:#ffffff90;letter-spacing:-.06em;line-height:1}.course-content{padding:19px 20px 8px;display:flex;flex-direction:column;flex:1}.course-mark{font-size:10px;color:#6b7d90;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.course-bullet{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle;margin-right:7px}.course-card h3{font-size:17px;line-height:1.32;margin:10px 0 7px;color:#1e3452}.course-card p{font-size:12px;line-height:1.58;margin:0 0 15px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.course-card footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;border-top:1px solid #eef1f6;padding:13px 20px;color:#6b7c91;font-size:11px}.course-card footer b{color:var(--blue)}.bar{height:6px;border-radius:6px;background:#e7edf6;overflow:hidden}.bar>span{display:block;height:100%;border-radius:6px;background:#2472d4}.course-content .bar{margin-top:auto;margin-bottom:13px}.stat-card{padding:19px 21px}.stat-card .big{font-size:30px;font-weight:800;letter-spacing:-.05em;color:#233b5a}.stat-card .big small{font-size:13px;font-weight:600}.stat-card .label{margin-top:6px;font-size:12px;color:#6b7c91}.stat-icon{display:inline-flex;align-items:center;justify-content:center;background:#eaf2fc;color:#2368b3;width:31px;height:31px;border-radius:8px;margin-bottom:11px}.stat-icon svg{width:16px;height:16px}.continue-card{display:flex;gap:25px;align-items:center;justify-content:space-between;border:1px solid #cfe2f6;border-left:4px solid #1767c8;background:#f0f6ff;border-radius:11px;padding:20px 23px;margin-top:21px}.continue-card h3{margin:6px 0;font-size:18px}.continue-card p{font-size:12px;margin:0}.continue-card .eyebrow{color:#276aab}.step-number{font-size:12px;font-weight:850;color:#1b66ba;margin-bottom:10px}.how-card{box-shadow:none}.how-card p{font-size:12px;margin-bottom:0}
.course-overview{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:20px;align-items:start}.course-list{display:flex;flex-direction:column;gap:12px}.module{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.module-head{display:flex;align-items:center;width:100%;gap:14px;border:0;padding:18px 20px;background:#fff;text-align:left;color:#213552}.module-head:hover{background:#f8fafc}.mod-num{border-radius:7px;background:#ecf4ff;color:#1960b5;width:33px;height:33px;display:grid;place-items:center;font-weight:800;font-size:12px}.mod-title{font-size:14px;font-weight:800;flex:1}.mod-sub{font-size:11px;color:#7a8aa0}.chev{color:#718399}.lesson-list{border-top:1px solid var(--line);padding:6px 13px 10px}.lesson-row{width:100%;background:#fff;border:0;border-radius:7px;padding:13px 11px;display:flex;gap:13px;align-items:center;color:#344d69;text-align:left;font-size:12px}.lesson-row:hover{background:#f1f6fd}.lesson-row b{font-weight:650;flex:1}.lesson-type{font-size:10px;color:#75859c;font-weight:600;text-transform:capitalize}.done-icon{color:#148550}.course-side{position:sticky;top:96px}.course-side h3{font-size:14px}.course-side .progress-big{font-size:31px;font-weight:800;margin:12px 0 9px;color:#183c6e}.course-side p{font-size:12px}
.doc-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px;align-items:start}.doc{padding:34px 40px;max-width:980px;box-shadow:none}.doc h3{margin:27px 0 10px;color:#1b3150;font-size:18px}.doc p{font-size:14px;color:#485c76;line-height:1.82}.doc .lead{color:#243c5d;font-size:16px;line-height:1.75}.doc pre{margin:16px 0 25px;border-radius:9px;background:#101f32;border:1px solid #1d3450;padding:20px 22px;overflow:auto;color:#9ef3c4;font-size:12px;line-height:1.85}.doc .warning{padding:14px 17px;background:#fff5e7;border-left:3px solid #d49534;color:#78501c;font-size:13px}.lab-aside{position:sticky;top:98px}.lab-aside p{font-size:12px}.lab-scenario-node{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px;color:#384e69}.lab-scenario-node:last-of-type{border-bottom:none}.lab-aside h3{font-size:18px}.lab-aside .btn{width:100%;margin-top:16px}
.workspace{height:calc(100vh - 72px);min-height:690px;display:grid;grid-template-columns:minmax(260px, .85fr) minmax(370px,1.3fr) minmax(400px,1.3fr);background:#f3f6fa;overflow:hidden}.work-col{min-width:0;min-height:0;display:flex;flex-direction:column;border-right:1px solid #dbe4ee}.work-col:last-child{border-right:0}.work-header{padding:15px 18px;background:#fff;border-bottom:1px solid #dce5f0;display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none}.work-header h3{font-size:12px;font-weight:800;margin:0;letter-spacing:.025em;color:#273d5c}.work-header small{font-size:10px;color:#75869b}.work-body{padding:18px;overflow:auto;flex:1;min-height:0}.work-body p,.work-body li{font-size:12px;line-height:1.65}.task{display:flex;gap:11px;align-items:start;padding:13px 0;border-bottom:1px solid #dfe7f0}.task-num{width:25px;height:25px;display:grid;place-items:center;border-radius:6px;background:#e7f0fd;color:#145ba9;font-weight:800;font-size:10px;flex:none}.task p{color:#38506e;margin:0}.work-foot{background:#fff;border-top:1px solid #e1e7f0;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex:none}.diagram-wrap{min-height:285px;display:flex;align-items:center;justify-content:center;background-color:#f9fbff;background-image:radial-gradient(#cad8eb 1px,transparent 1px);background-size:21px 21px}.diagram{width:100%;height:auto;max-width:760px;min-height:260px}.wire{stroke:#597a9f;stroke-width:3;stroke-dasharray:6 4}.node-shape{fill:#eff6fe;stroke:#2c78c4;stroke-width:2}.node-shape.switch{fill:#e5f6f2;stroke:#3a9983}.node-group{cursor:pointer}.node-group:hover .node-shape{stroke:#0052b8;stroke-width:3}.node-group.active .node-shape{fill:#cfecff;stroke:#0050ad;stroke-width:3}.topolabel{font-size:16px;fill:#1b3a5a;font-weight:800}.toposub{font-size:10px;fill:#627992}.note{margin:15px;background:#eaf3fc;color:#47637e;padding:13px;border:1px solid #d6e5f7;border-radius:8px;font-size:11px}.work-terminal{background:#07111c;min-height:0;display:flex;flex-direction:column;flex:1}.terminal-viewport{flex:1;min-height:0;overflow:hidden;position:relative;padding:13px}.console-chooser{display:flex;flex-wrap:wrap;gap:7px}.node-tab{font-size:11px;font-weight:700;background:#eef3f8;color:#63768b;border:1px solid #dce5ee;padding:7px 13px;border-radius:7px}.node-tab.current{background:#155aa7;border-color:#155aa7;color:#fff}.grade-panel{background:#111f31;color:#d5e8f7;padding:12px 15px;max-height:260px;overflow:auto;border-top:1px solid #27405d}.grade-panel .btn{background:#1d3249;color:#b6d4ed;border-color:#395370}.console-status{font-size:11px;color:#6c8195}.grade-panel .console-status{color:#c1d1de}.result-row{display:flex;gap:9px;border-bottom:1px solid var(--line);padding:8px 0;font-size:11px}.result-row b{display:block}.result-row small{color:#60758f;display:block;margin-top:3px;word-break:break-all}.result-pass{color:#159364}.result-fail{color:#c04351}.hint-pre{white-space:pre-wrap;font-size:11px;line-height:1.7;color:#b9e6d0;background:#12243a;padding:15px;border-radius:9px}.xterm{position:relative;height:100%;user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm-viewport{position:absolute;inset:0;overflow-y:auto}.xterm-screen{position:relative}.xterm-helper-textarea{position:absolute;opacity:0;left:-9999px;top:0}.xterm .composition-view{background:black;color:white;display:none}.xterm-cursor-layer{pointer-events:none}
.form-field{display:flex;flex-direction:column;gap:7px;margin:15px 0}.form-field label{font-size:11px;font-weight:750;color:#40536c}.field{background:#fff;border:1px solid #d6dfeb;border-radius:8px;padding:12px 13px;color:#1d314f;outline:none;width:100%;font-size:13px}.field:focus{border-color:#4a92e0;box-shadow:var(--focus)}.field::placeholder{color:#9aa7b9}textarea.field{min-height:112px;resize:vertical;line-height:1.6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(430px,.9fr)}.auth-visual{padding:clamp(40px,5vw,77px);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(140deg,#112c4e,#194e82);color:#fff;position:relative;overflow:hidden}.auth-visual::after{content:'';position:absolute;width:500px;height:500px;border:1px solid #ffffff20;border-radius:50%;right:-260px;top:27%;pointer-events:none}.auth-visual .brand{padding:0}.auth-visual .brandname{color:#fff}.auth-visual .brand-sub{color:#a9c8e8}.auth-visual .logo-glyph{background:#fff;color:#12509b}.auth-visual h1{font-size:clamp(36px,4.2vw,63px);max-width:680px;margin:12px 0 20px}.auth-visual h1 em{font-style:normal;color:#94d9fe}.auth-visual p{color:#c5d9ee;max-width:600px;font-size:15px}.auth-visual .eyebrow{color:#93cfff}.auth-visual .metrics{display:flex;gap:38px;flex-wrap:wrap}.auth-visual .metrics strong{font-size:25px;font-weight:800;display:block}.auth-visual .metrics span{font-size:11px;color:#acc6de}.auth-network{max-width:580px;width:100%;max-height:210px;opacity:.95}.auth-visual .subtle{color:#afc9e2}.auth-card-wrap{background:#f6f8fc;padding:35px;display:flex;align-items:center;justify-content:center}.auth-card{background:#fff;border:1px solid #e1e7f0;border-radius:13px;box-shadow:0 15px 50px #19396312;width:100%;max-width:430px;padding:35px}.auth-card h2{font-size:27px;margin:11px 0 10px}.auth-card p{font-size:13px}.segmented{display:flex;gap:5px;background:#eef2f8;padding:4px;border-radius:8px}.segment{flex:1;padding:11px 9px;border:0;background:transparent;border-radius:6px;font-size:12px;font-weight:800;color:#77879c}.segment.selected{background:#fff;color:#135aa6;box-shadow:0 1px 6px #182f4b16}.auth-note{font-size:11px;line-height:1.7;color:#8a99a9;margin-top:16px}.error{padding:12px;border-radius:8px;background:#fff1f2;border:1px solid #f2cdd2;color:#aa3646;font-size:12px}
.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-transform:uppercase;letter-spacing:.06em;color:#788aa0;text-align:left;font-size:10px;padding:13px 10px;border-bottom:1px solid var(--line);font-weight:800}.data-table td{padding:13px 10px;border-bottom:1px solid #edf1f6;color:#435976;vertical-align:middle}.table-scroller{overflow:auto}.admin-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin:18px 0 23px;flex-wrap:wrap}.toggle{padding:11px 13px;background:transparent;color:#6c7c91;border:0;border-bottom:3px solid transparent;font-weight:750;font-size:12px}.toggle:hover{color:#245eac}.toggle.active{border-bottom-color:var(--blue);color:var(--blue)}.admin-section{margin-top:22px}.empty{padding:54px 25px;text-align:center;border:1px dashed #cbd9e8;background:#fff;border-radius:12px}.empty p{font-size:13px}.loading-app{height:100vh;display:flex;align-items:center;justify-content:center;gap:13px}.loading-app p{margin:0}#toast{position:fixed;bottom:25px;right:25px;z-index:900;max-width:390px;pointer-events:none}#toast .toast-item{background:#223d60;color:#fff;border-radius:9px;padding:13px 17px;font-size:12px;margin-top:8px;box-shadow:0 12px 35px #14284131;pointer-events:auto}#toast .toast-item.bad{background:#963b4b}
@media(max-width:1450px){.workspace{grid-template-columns:minmax(235px,.8fr) minmax(335px,1fr) minmax(350px,1.1fr)}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px){.layout{grid-template-columns:75px minmax(0,1fr)}.sidebar{padding:18px 9px}.sidebar .brand{justify-content:center;padding:0}.sidebar .brand-titles,.sidebar .nav-caption,.sidebar .nav-text,.sidebar .user-meta,.sidebar .userfoot .icon-btn{display:none}.nav-btn{justify-content:center}.userfoot{justify-content:center}.content{padding:31px 24px 65px}.doc-layout{grid-template-columns:1fr}.lab-aside{position:static}.workspace{height:auto;min-height:0;grid-template-columns:1fr 1fr}.workspace .work-col:first-child{grid-column:1/-1;max-height:380px}.workspace .work-col:nth-child(2){min-height:470px}.workspace .work-col:nth-child(3){min-height:580px}.global-search{min-width:190px}.hero-text{min-width:0;width:65%}.hero-art{width:35%;min-width:170px}}@media(max-width:720px){.layout{display:block}.sidebar{position:fixed;top:0;bottom:0;left:0;width:255px;height:100dvh;transform:translateX(-105%);transition:transform .2s;box-shadow:5px 0 25px #20365316}.layout.menu-open .sidebar{transform:translateX(0)}.sidebar .brand{justify-content:flex-start}.sidebar .brand-titles,.sidebar .nav-caption,.sidebar .nav-text,.sidebar .user-meta,.sidebar .userfoot .icon-btn{display:initial}.sidebar .nav-btn{justify-content:flex-start}.sidebar .userfoot{justify-content:flex-start}.sidebar .user-meta{display:block}.topbar{height:63px;padding:0 15px}.menu-toggle{display:inline-grid}.breadcrumb{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-actions .indicator{display:none}.global-search{min-width:0;width:36px;padding:0 8px}.global-search:focus-within{width:145px}.global-search input{width:0}.global-search:focus-within input{width:100%}.global-search button{display:none}.content{padding:23px 16px 48px}.hero{padding:27px 25px;min-height:0}.hero-text{min-width:0;width:100%}.hero-art{display:none}.hero h1{font-size:29px}.course-grid,.three,.two,.form-grid,.course-overview{grid-template-columns:1fr}.course-side{position:static}.page-head{display:block}.page-head .panel{margin-top:20px}.doc{padding:23px}.auth-page{grid-template-columns:1fr}.auth-visual{padding:30px 25px;min-height:350px}.auth-visual h1{font-size:34px}.auth-visual .auth-network,.auth-visual .metrics{display:none}.auth-card-wrap{padding:25px 16px}.auth-card{padding:26px}.workspace{display:flex;flex-direction:column;height:auto;min-height:100vh}.workspace .work-col:first-child{max-height:none}.workspace .work-col:nth-child(2){min-height:380px}.workspace .work-col:nth-child(3){min-height:600px}.section-heading{align-items:start}.continue-card{display:block}.continue-card .btn{margin-top:14px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Persist provisioning and failure state instead of letting a toast disappear. */
.lab-failure-panel {background:#fff0f0;border:1px solid #de8c8c;border-left:5px solid #b93434;color:#571e1e;border-radius:12px;padding:16px;margin:14px 0;overflow-wrap:anywhere;}
.lab-failure-panel p {margin:9px 0;line-height:1.55;color:#571e1e;}
.lab-launch-progress {background:#e9f2ff;border:1px solid #93b9ef;border-left:5px solid #2571c7;padding:15px;border-radius:12px;margin:14px 0;color:#194c85;}
.lab-launch-progress p {margin:8px 0;color:#194c85;}

/* Disco Academy 1.6 — real inline lesson + practice workspace.
   The console is a true xterm/PTY, not a faux input or a command-submission form. */
.lesson-inline-page{width:100%;max-width:none;padding:24px clamp(16px,2vw,34px) 56px}
.inline-lesson-heading{display:flex;justify-content:space-between;gap:22px;align-items:center;margin-bottom:20px}
.inline-lesson-heading h1{font-size:clamp(23px,2.15vw,32px);margin:7px 0 6px;line-height:1.2;color:#122945}
.inline-lesson-heading p{font-size:13px;margin:0;max-width:780px;color:#667c95;line-height:1.5}
.inline-lesson-status{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}
.inline-lesson-status small{font-size:11px;color:#6e8096}
.lesson-live-badge{background:#e4f8eb;color:#087346;border:1px solid #b0dfc5;border-radius:8px;font-weight:800;font-size:11px;padding:9px 12px}
.inline-lesson-grid{display:grid;grid-template-columns:minmax(280px,330px) minmax(0,1fr);gap:16px;align-items:start}
.lesson-reading{padding:22px;min-width:0;box-shadow:none}
.lesson-prose{font-size:13px;line-height:1.75;color:#435a75;overflow-wrap:anywhere}
.lesson-prose .lesson-lead{font-size:14px;color:#29415e;line-height:1.7}
.lesson-prose h3{margin:18px 0 8px;font-size:15px;color:#173554}
.lesson-code{background:#0b1a2d;color:#c6f1dc;padding:14px 15px;border-radius:9px;overflow:auto;line-height:1.65;font-size:12px}
.lesson-launch-card{background:linear-gradient(135deg,#eef6ff,#f6faff);border:1px solid #c4dbf7;border-radius:12px;margin:22px 0;padding:16px}
.lesson-launch-card h3{margin:0 0 7px;color:#123c72;font-size:15px}
.lesson-launch-card p{font-size:12px;line-height:1.55;margin:0 0 13px;color:#536d88}
.lesson-launch-card .lab-failure-panel{margin:10px 0;padding:12px}
.lesson-task-heading{border-top:1px solid #e3ebf6;padding-top:17px;margin:15px 0 12px}
.lesson-task-heading h3{font-size:15px;margin:0 0 4px;color:#162f4b}
.lesson-task-heading small{font-size:11px;color:#6e8093}
.lesson-task-list{display:grid;gap:6px}
.lesson-task{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;background:#f8fafe;border:1px solid #e7edf5;color:#294362;padding:11px;border-radius:9px;font-size:12px;line-height:1.5;cursor:pointer}
.lesson-task.selected{border-color:#83b1eb;background:#eaf4ff;box-shadow:inset 3px 0 #086bd1;color:#123e72;font-weight:750}
.lesson-task:hover,.lesson-task:focus-visible{border-color:#4a91d8;outline:0}
.lesson-task .task-num{flex:none}
.task-detail{margin-top:13px;padding:16px;border-radius:11px;border:1px solid #dce8f7;background:#fbfdff}
.task-detail-title{display:flex;justify-content:space-between;align-items:center;gap:8px}
.step-navigation{display:flex;gap:5px}
.task-detail h3{font-size:14px;color:#173b65;margin:13px 0 8px}
.task-detail p{font-size:12px;color:#375779;line-height:1.65;margin:0 0 14px;white-space:pre-wrap}
.task-detail .hint-pre{font-size:11px;overflow:auto;padding:12px;border-radius:8px;background:#0c1c30;color:#ceeedf}
.lesson-back{margin-top:19px}
.lesson-practice{min-width:0;display:grid;gap:14px;align-self:start}
.inline-topology{padding:0;min-width:0;overflow:hidden;box-shadow:none}
.practice-heading{padding:15px 18px 10px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.practice-heading h3{color:#1c3658;font-size:15px;margin:0 0 3px}
.practice-heading small{font-size:11px;color:#74849a}
.inline-diagram{background-color:#fbfdff;background-image:radial-gradient(#cdddf1 .8px, transparent .8px);background-size:19px 19px;display:flex;align-items:center;justify-content:center;min-height:145px;max-height:195px;overflow:hidden}
.inline-diagram .diagram{width:100%;height:175px;min-height:0;max-width:940px}
.inline-diagram .node-group{cursor:pointer}
.inline-console{background:#081422;border:1px solid #b8cfe9;border-radius:13px;overflow:hidden;min-width:0;box-shadow:0 5px 18px rgba(12,35,65,.12)}
.console-toolbar{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:12px 14px;background:linear-gradient(135deg,#192e49,#0e2138);border-bottom:1px solid #3b597a;color:#f3f9ff;flex-wrap:wrap}
.console-toolbar-title{display:flex;align-items:center;gap:11px;min-width:0}
.console-toolbar-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;background:#2b4969;font-family:monospace;font-weight:800;font-size:17px;flex:none}
.console-toolbar-title h3{margin:0;font-size:14px;color:#f6fbff}
.console-toolbar-title small{font-size:10px;color:#acc2da;display:block;margin-top:3px}
.console-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.console-connection{font-size:11px;font-weight:650;color:#b6eccf;white-space:nowrap;margin-right:5px}
.console-controls .btn{color:#e9f5ff;border:1px solid #476482;background:#223e5e;padding:7px 10px}
.console-controls .btn:hover{background:#33577c}
.console-controls .btn:disabled{opacity:.5}
.console-device-bar{background:#0b1c30;padding:8px 13px;display:flex;gap:7px;border-bottom:1px solid #355371}
.console-device-bar .node-tab{padding:8px 17px;background:#e8f1fb;color:#1d3f63}
.console-device-bar .node-tab.current{color:#fff;background:#086bcc;border-color:#238bf3}
.console-frame{background:#091525;border:2px solid transparent;transition:border-color .12s;min-height:460px;display:flex;flex-direction:column}
.console-frame.has-focus{border-color:#288ed5}
#terminal.terminal-viewport{height:460px;min-height:460px;min-width:0;width:100%;padding:10px 12px;overflow:auto;flex:1;box-sizing:border-box}
.terminal-instance{height:100%;width:100%;min-width:335px;position:relative}
.terminal-instance[hidden]{display:none!important}
.terminal-instance .xterm{height:100%;font-feature-settings:'liga' 0;font-variant-ligatures:none}
.terminal-instance .xterm-viewport{overflow-y:auto!important}
.terminal-instance .xterm .xterm-cursor-layer{z-index:3;opacity:1}
.console-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:38px;text-align:center;color:#d6e9fa;font-size:13px}
.console-empty b{font-size:18px}.console-empty p{color:#91adc9;line-height:1.6;max-width:390px}
.console-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:9px 15px;border-top:1px solid #254664;background:#0e233b;color:#aac6df;font-size:11px}
.inline-checks{padding:14px 17px;border-radius:11px;border:1px solid #dae6f4;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.inline-checks #lesson-grade-result{font-size:12px;color:#48637d;flex:1}
.grade-results{display:flex;flex-wrap:wrap;gap:10px;margin-top:5px;font-size:11px}
@media(max-width:1120px){.inline-lesson-grid{grid-template-columns:minmax(250px,310px) minmax(0,1fr)}.lesson-inline-page{padding:18px}.console-toolbar{align-items:start}.console-frame,#terminal.terminal-viewport{min-height:440px;height:440px}}
@media(max-width:900px){.inline-lesson-grid{grid-template-columns:minmax(0,1fr)}.lesson-reading{order:0}.lesson-practice{order:1}.lesson-prose{max-width:880px}.lesson-inline-page{padding:18px}.inline-lesson-heading{align-items:flex-start}.inline-lesson-status{align-items:flex-start}.console-frame,#terminal.terminal-viewport{min-height:420px;height:420px}}
@media(max-width:620px){.inline-lesson-heading{flex-direction:column}.inline-lesson-grid{gap:12px}.lesson-reading{padding:17px}.console-toolbar-title small{line-height:1.4}.console-toolbar{padding:11px}.console-controls{width:100%;justify-content:flex-start}.practice-heading{flex-wrap:wrap}.console-frame,#terminal.terminal-viewport{min-height:340px;height:340px}.console-footer{line-height:1.5}.inline-checks .btn{width:100%;justify-content:center}}

/* Fullscreen is optional: ordinary lesson mode stays inline at all times. */
#inline-console.expanded{position:fixed;top:77px;right:15px;bottom:15px;left:215px;z-index:60;display:flex;flex-direction:column;box-shadow:0 0 0 120vmax #071a309c,0 24px 50px #06122666}
#inline-console.expanded .console-frame{flex:1;min-height:0;height:auto}
#inline-console.expanded #terminal.terminal-viewport{height:100%;min-height:0}
#inline-console.expanded .console-toolbar,#inline-console.expanded .console-device-bar,#inline-console.expanded .console-footer{flex:none}
@media(max-width:1100px){#inline-console.expanded{left:85px}}
@media(max-width:720px){#inline-console.expanded{left:8px;top:8px;right:8px;bottom:8px}}

/* v1.7: profile/security and administrator email settings */
.account-shortcut{display:inline-grid;place-items:center;flex:0 0 30px;height:30px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--text);cursor:pointer}
.account-shortcut:hover,.account-shortcut:focus-visible{background:#eaf3ff;outline:2px solid #2471c9;outline-offset:1px}
.account-panel{max-width:700px;padding:clamp(20px,3vw,36px)}
.account-panel h3{margin:16px 0 7px}
.account-panel p,.settings-form small{color:var(--muted)}
.thin-rule{height:1px;border:0;background:var(--line);margin:25px 0}
.settings-form{display:grid;gap:15px;max-width:980px;margin-top:20px}
.settings-form .form-field{margin:0;min-width:0}
.settings-form .form-field label{display:block;margin-bottom:8px;font-weight:650}
.settings-form .form-field small{display:block;font-size:12px;margin-top:7px;line-height:1.5}
.settings-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.settings-form .action-row{display:flex;flex-wrap:wrap;gap:10px}
.setting-toggle{display:flex;gap:16px;padding:18px;border:1px solid #c7dcf5;background:#f1f7ff;border-radius:12px;align-items:flex-start;cursor:pointer}
.setting-toggle input{width:19px;height:19px;accent-color:#0862d4;flex:0 0 19px;margin-top:2px}
.setting-toggle span{display:grid;gap:6px}
.setting-toggle small{display:block;font-size:13px}
.form-feedback{color:#125c85;font-size:13px;font-weight:600;min-height:1.2em;margin:10px 0}
.account-link{margin-top:17px;width:100%;font-weight:600}
.account-link:disabled{opacity:.55;cursor:not-allowed}
.auth-card .form-feedback{margin:15px 0;padding:12px;background:#eaf4fe;border-radius:8px}
@media(max-width:850px){.settings-form .form-grid{grid-template-columns:1fr}.account-panel{padding:20px}}


/* Disco Academy 1.8: deliberately designed dark palette. Keep the dark IOS console
   independent of the page theme; do not invert terminal output or SVG colors. */
html[data-theme="dark"]{
 color-scheme:dark;
 --bg:#0b1422;--panel:#132237;--panel2:#192c45;--ink:#ebf3ff;
 --text:#eaf2ff;--muted:#abbdd4;--line:#2d435c;
 --blue:#82bdff;--blue-2:#91ccff;--navy:#edf5ff;--cyan:#65d9f3;
 --green:#79e3b5;--red:#ff8d9e;--orange:#ffc17a;
 --shadow:0 12px 33px rgba(0,0,0,.23);
 --focus:0 0 0 3px rgba(105,183,255,.34);
 --action:#1566bc;--action-hover:#257bdb;--raised:#203650;--hover:#253d5c;
}
html[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
html[data-theme="dark"] ::selection{background:#315e92;color:#fff}
html[data-theme="dark"] :focus-visible{outline-color:#9ad0ff}
html[data-theme="dark"] .sidebar,
html[data-theme="dark"] .topbar{background:#101e31;border-color:var(--line)}
html[data-theme="dark"] .brandname,
html[data-theme="dark"] .breadcrumb strong{color:#eaf3ff}
html[data-theme="dark"] .brand-sub,
html[data-theme="dark"] .nav-caption,
html[data-theme="dark"] .breadcrumb,
html[data-theme="dark"] .breadcrumb-trail,
html[data-theme="dark"] .indicator,
html[data-theme="dark"] .layout-footer{color:#a7bad1}
html[data-theme="dark"] .nav-btn{color:#bdcde2}
html[data-theme="dark"] .nav-btn:hover{background:#1b304b;color:#fff}
html[data-theme="dark"] .nav-btn.active{background:#1a3a60;color:#a9d5ff}
html[data-theme="dark"] .avatar{background:#274568;color:#d3e9ff}
html[data-theme="dark"] .userfoot .role{color:#a5b9d0}
html[data-theme="dark"] .icon-btn,
html[data-theme="dark"] .menu-toggle{color:#c1d2e7}
html[data-theme="dark"] .icon-btn:hover{background:#253f5d;color:#f5faff}
html[data-theme="dark"] .global-search{background:#1c2e46;border-color:#354d67}
html[data-theme="dark"] .global-search svg,
html[data-theme="dark"] .global-search button{color:#b4c6da}
html[data-theme="dark"] .global-search input::placeholder{color:#a3b5cc}
html[data-theme="dark"] .theme-toggle{background:#203650;color:#e6f2ff;border-color:#3a5878}
html[data-theme="dark"] .theme-toggle:hover{background:#2a486b;border-color:#6093c7}
html[data-theme="dark"] .theme-toggle-symbol{color:#ffd68e}
html[data-theme="dark"] .panel,
html[data-theme="dark"] .course-card,
html[data-theme="dark"] .stat-card,
html[data-theme="dark"] .module,
html[data-theme="dark"] .empty{background:var(--panel);border-color:var(--line);box-shadow:var(--shadow)}
html[data-theme="dark"] .panel h2,
html[data-theme="dark"] .panel h3,
html[data-theme="dark"] .course-card h3,
html[data-theme="dark"] .stat-card .big{color:#eff6ff}
html[data-theme="dark"] .btn{background:#1d324d;color:#e6f2ff;border-color:#3a5875}
html[data-theme="dark"] .btn:hover{background:#294465;border-color:#6293ca}
html[data-theme="dark"] .btn.secondary{background:#1d324d;color:#e6f2ff}
html[data-theme="dark"] .btn.primary{background:var(--action);border-color:#327dd0;color:#fff}
html[data-theme="dark"] .btn.primary:hover{background:var(--action-hover);border-color:#5ea8ed}
html[data-theme="dark"] .btn.danger{background:#412534;color:#ffb9c2;border-color:#94526a}
html[data-theme="dark"] .pill{background:#1b385c;color:#b9dcff;border-color:#365b87}
html[data-theme="dark"] .pill.slate{background:#223448;color:#c0d1e4;border-color:#39516a}
html[data-theme="dark"] .pill.green{background:#123f39;color:#a4ebc7;border-color:#357c67}
html[data-theme="dark"] .pill.gold{background:#47351f;color:#ffd79f;border-color:#80613e}
html[data-theme="dark"] .bar{background:#29415c}
html[data-theme="dark"] .bar>span{background:#61a9ef}
html[data-theme="dark"] .hero{background:linear-gradient(110deg,#142c4b 0%,#163e64 62%,#105974 100%);border:1px solid #386282}
html[data-theme="dark"] .course-card:hover{border-color:#598ec4;box-shadow:0 17px 37px rgba(0,0,0,.4)}
html[data-theme="dark"] .course-card footer{border-color:var(--line);color:#b8c9dc}
html[data-theme="dark"] .course-card footer b,
html[data-theme="dark"] .course-mark,
html[data-theme="dark"] .stat-card .label{color:#b4cae1}
html[data-theme="dark"] .stat-icon{background:#243f64;color:#a5ceff}
html[data-theme="dark"] .continue-card{background:#162f4b;border-color:#385c83}
html[data-theme="dark"] .continue-card .eyebrow,
html[data-theme="dark"] .step-number{color:#9dcaff}
html[data-theme="dark"] .module-head,
html[data-theme="dark"] .lesson-row{background:var(--panel);color:#e2edfb}
html[data-theme="dark"] .module-head:hover,
html[data-theme="dark"] .lesson-row:hover{background:#203b58}
html[data-theme="dark"] .mod-num,
html[data-theme="dark"] .task-num{background:#28466a;color:#bfddff}
html[data-theme="dark"] .mod-sub,
html[data-theme="dark"] .chev,
html[data-theme="dark"] .lesson-type{color:#a9bad0}
html[data-theme="dark"] .course-side .progress-big{color:#c5e0ff}
html[data-theme="dark"] .doc h3,
html[data-theme="dark"] .doc .lead,
html[data-theme="dark"] .doc p{color:#c8d8eb}
html[data-theme="dark"] .doc pre,
html[data-theme="dark"] .lesson-code{background:#091523;border-color:#344f70;color:#b9f5d7}
html[data-theme="dark"] .doc .warning{background:#443621;border-color:#d5a04b;color:#ffe0a9}
html[data-theme="dark"] .lab-scenario-node{color:#d0deef}
html[data-theme="dark"] .workspace{background:#0e1929}
html[data-theme="dark"] .work-col,
html[data-theme="dark"] .work-header,
html[data-theme="dark"] .work-foot{border-color:var(--line)}
html[data-theme="dark"] .work-header,
html[data-theme="dark"] .work-foot{background:#15253a}
html[data-theme="dark"] .work-header h3{color:#e8f3ff}
html[data-theme="dark"] .work-header small{color:#b1c6dc}
html[data-theme="dark"] .task{border-color:var(--line)}
html[data-theme="dark"] .task p{color:#c4d5e8}
html[data-theme="dark"] .diagram-wrap,
html[data-theme="dark"] .inline-diagram{background-color:#101f32;background-image:radial-gradient(#324f6b .85px,transparent .85px)}
html[data-theme="dark"] .node-shape{fill:#28466c}
html[data-theme="dark"] .node-shape.switch{fill:#21534e}
html[data-theme="dark"] .node-group.active .node-shape{fill:#2b6790}
html[data-theme="dark"] .topolabel{fill:#f0f7ff}
html[data-theme="dark"] .toposub{fill:#c0d5e9}
html[data-theme="dark"] .note{background:#1b3856;color:#c4dbf3;border-color:#365d85}
html[data-theme="dark"] .node-tab{background:#25425e;color:#e1efff;border-color:#3d6485}
html[data-theme="dark"] .node-tab.current{background:var(--action);border-color:#6ba7e6;color:#fff}
html[data-theme="dark"] .result-row{border-color:var(--line)}
html[data-theme="dark"] .result-row small{color:#bed1e6}
html[data-theme="dark"] .result-pass{color:#84e1b7}
html[data-theme="dark"] .result-fail{color:#ff9cab}
html[data-theme="dark"] .form-field label{color:#d5e2f2}
html[data-theme="dark"] .field,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea{background:#0e1d30;color:#ecf4ff;border-color:#405875}
html[data-theme="dark"] .field::placeholder{color:#a6b9cf}
html[data-theme="dark"] select option{background:#142438;color:#f1f7ff}
html[data-theme="dark"] input:-webkit-autofill,
html[data-theme="dark"] input:-webkit-autofill:focus{-webkit-text-fill-color:#f0f7ff;-webkit-box-shadow:0 0 0 1000px #14263a inset;caret-color:#f0f7ff}
html[data-theme="dark"] .auth-card-wrap{background:#0b1422}
html[data-theme="dark"] .auth-card{background:#14243a;border-color:#35506c;box-shadow:0 20px 48px rgba(0,0,0,.4)}
html[data-theme="dark"] .auth-card h2{color:#f3f8ff}
html[data-theme="dark"] .segmented{background:#0d1d31}
html[data-theme="dark"] .segment{color:#bed1e8}
html[data-theme="dark"] .segment.selected{background:#244565;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.25)}
html[data-theme="dark"] .auth-note{color:#aec3d9}
html[data-theme="dark"] .error{background:#402434;border-color:#88526a;color:#ffc5cd}
html[data-theme="dark"] .data-table th{color:#b4c7de;border-color:var(--line)}
html[data-theme="dark"] .data-table td{color:#d4e2f3;border-color:var(--line)}
html[data-theme="dark"] .data-table tr:hover td{background:#182d47}
html[data-theme="dark"] .toggle{color:#b6c9df}
html[data-theme="dark"] .toggle:hover,
html[data-theme="dark"] .toggle.active{color:#a7d3ff}
html[data-theme="dark"] .empty{border-style:dashed}
html[data-theme="dark"] .lab-failure-panel{background:#46242e;border-color:#bc6679;color:#ffe0e7}
html[data-theme="dark"] .lab-failure-panel p{color:#ffd7de}
html[data-theme="dark"] .lab-launch-progress{background:#153553;border-color:#5a8fc5;color:#c7e6ff}
html[data-theme="dark"] .lab-launch-progress p{color:#c7e6ff}
html[data-theme="dark"] .inline-lesson-heading h1{color:#f1f7ff}
html[data-theme="dark"] .inline-lesson-heading p,
html[data-theme="dark"] .inline-lesson-status small{color:#b5c8de}
html[data-theme="dark"] .lesson-live-badge{background:#153e3b;border-color:#407969;color:#a3ebcc}
html[data-theme="dark"] .lesson-prose,
html[data-theme="dark"] .lesson-prose .lesson-lead{color:#d0deed}
html[data-theme="dark"] .lesson-prose h3,
html[data-theme="dark"] .lesson-task-heading h3,
html[data-theme="dark"] .task-detail h3,
html[data-theme="dark"] .practice-heading h3{color:#e9f3ff}
html[data-theme="dark"] .lesson-launch-card{background:linear-gradient(145deg,#17334d,#192c46);border-color:#44688e}
html[data-theme="dark"] .lesson-launch-card h3{color:#d9ebff}
html[data-theme="dark"] .lesson-launch-card p{color:#c4d7eb}
html[data-theme="dark"] .lesson-task-heading{border-color:var(--line)}
html[data-theme="dark"] .lesson-task-heading small,
html[data-theme="dark"] .practice-heading small{color:#b6cbe1}
html[data-theme="dark"] .lesson-task{background:#172b43;border-color:#304963;color:#d0e1f3}
html[data-theme="dark"] .lesson-task:hover{background:#203e5b;border-color:#6ba1d6}
html[data-theme="dark"] .lesson-task.selected{background:#1b4368;border-color:#548fcd;color:#f0f7ff;box-shadow:inset 3px 0 #7cc2ff}
html[data-theme="dark"] .task-detail{background:#142a43;border-color:#395775}
html[data-theme="dark"] .task-detail p{color:#c9dbef}
html[data-theme="dark"] .inline-console{background:#060f1b;border-color:#42617e;box-shadow:0 13px 30px rgba(0,0,0,.35)}
html[data-theme="dark"] .console-toolbar{background:linear-gradient(135deg,#172c47,#0c1b30)}
html[data-theme="dark"] .console-device-bar .node-tab{background:#244362;color:#deefff}
html[data-theme="dark"] .console-device-bar .node-tab.current{background:#156bc5;color:#fff}
html[data-theme="dark"] .inline-checks{background:#14283d;border-color:#34516e}
html[data-theme="dark"] .inline-checks #lesson-grade-result{color:#d2e2f2}
html[data-theme="dark"] .account-shortcut{color:#d3e3f5}
html[data-theme="dark"] .account-shortcut:hover{background:#234362}
html[data-theme="dark"] .thin-rule{background:var(--line)}
html[data-theme="dark"] .setting-toggle{background:#1a3450;border-color:#466482}
html[data-theme="dark"] .form-feedback{color:#a2dbff}
html[data-theme="dark"] .auth-card .form-feedback{background:#173a58}
html[data-theme="dark"] #toast .toast-item{background:#275078;color:#fff;border:1px solid #4a78a0}
html[data-theme="dark"] #toast .toast-item.bad{background:#763844;border-color:#b85b71}

/* Theme switch is visible on both the authenticated shell and public login. */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;
 border:1px solid #d7e1ef;background:#f3f7fd;color:#274b73;border-radius:9px;
 padding:9px 12px;font-size:12px;font-weight:750;line-height:1.1;min-height:36px;
 transition:background .16s,border-color .16s;flex:none}
.theme-toggle:hover{background:#e7f1ff;border-color:#a9c9eb}
.theme-toggle:focus-visible{outline:2px solid var(--blue-2);outline-offset:2px}
.theme-toggle-symbol{font-size:18px;line-height:1}
.auth-card-wrap{position:relative}
.auth-theme-toggle{position:absolute;top:24px;right:24px;z-index:3}
@media(max-width:1040px){.theme-toggle{padding:8px 9px}.theme-toggle-label{display:none}}
@media(max-width:640px){.theme-toggle{min-width:36px}.auth-theme-toggle{top:12px;right:12px}}
@media(prefers-reduced-motion:reduce){.theme-toggle{transition:none}}

/* Disco Academy v1.9.5 — student-first lesson + console layout.
   Changes are scoped to live lessons only; dashboard, courses and admin are untouched. */
.lesson-reading{display:flex;flex-direction:column;min-width:0}
.lesson-guide-head{order:0;flex:none;margin:0 0 9px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.lesson-guide-head h3{font-size:15px;margin:3px 0 0}
.lesson-reading .lesson-theory{order:1;flex:none;margin:0 0 8px;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.lesson-theory summary{cursor:pointer;list-style:none;font-size:12px;font-weight:700;padding:11px 12px;color:var(--ink,#294362);background:var(--panel,#f7f9ff);display:flex;justify-content:space-between;gap:6px}
.lesson-theory summary::-webkit-details-marker{display:none}
.lesson-theory summary:focus-visible{outline:2px solid #58a7ed;outline-offset:-3px}
.lesson-theory[open] summary span{transform:rotate(180deg)}
.lesson-theory .lesson-prose{padding:12px;max-height:min(38vh,340px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.lesson-reading .lesson-launch-card{order:2;flex:none}
.lesson-reading .task-detail{order:3;flex:none;margin:10px 0 0}
.lesson-reading .lesson-task-heading{order:4;flex:none;margin:10px 0 8px;padding-top:10px}
.lesson-reading .lesson-task-list{order:5;min-height:0;overscroll-behavior:contain}
.lesson-reading .lesson-back{order:6;flex:none;margin-top:9px}
.lesson-step-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel,#fff);min-width:0}
.lesson-step-bar-title{display:flex;gap:10px;align-items:center;min-width:0;flex:1}
.lesson-step-bar-title .pill{flex:none;white-space:nowrap;font-size:10px}
.lesson-step-instruction{font-size:12px;font-weight:700;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;overflow:hidden;min-width:0;overflow-wrap:anywhere}
.lesson-step-actions{display:flex;gap:5px;flex:none}
.lesson-step-actions .btn{min-width:32px;padding:5px 8px}
html[data-theme="dark"] .lesson-theory summary{background:#152940;color:#dbeafb}
html[data-theme="dark"] .lesson-reading .lesson-theory{border-color:#314862}
html[data-theme="dark"] .lesson-theory .lesson-prose{background:#102239;color:#d3e2f3}
html[data-theme="dark"] .lesson-guide-head h3{color:#f1f7ff}
html[data-theme="dark"] .lesson-step-bar{background:#152b42;border-color:#3a5470;color:#e6f2ff}
html[data-theme="dark"] .lesson-step-instruction{color:#f0f7ff}
@media (min-width:901px) and (min-height:620px){
 html:has(.lesson-inline-page),body:has(.lesson-inline-page){height:100%;overflow:hidden}
 .layout:has(.lesson-inline-page){height:100dvh;min-height:0;overflow:hidden}
 .main:has(.lesson-inline-page){height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
 .main:has(.lesson-inline-page)>.topbar{flex:none;position:relative}
 .lesson-inline-page{flex:1;height:calc(100dvh - 72px);min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column;padding:12px clamp(12px,1.6vw,28px) 10px}
 .lesson-inline-page>.breadcrumb-trail{flex:none;margin-bottom:6px;font-size:11px}
 .lesson-inline-page .inline-lesson-heading{flex:none;margin:0 0 10px;gap:10px}
 .lesson-inline-page .inline-lesson-heading h1{font-size:clamp(18px,1.7vw,25px);margin:2px 0 0}
 .lesson-inline-page .inline-lesson-heading p{display:none}
 .lesson-inline-page .inline-lesson-status{gap:4px}
 .lesson-inline-page .inline-lesson-grid{flex:1;min-height:0;grid-template-columns:minmax(295px,340px) minmax(0,1fr);align-items:stretch;gap:12px}
 .lesson-inline-page .lesson-reading{height:100%;min-height:0;overflow:hidden;padding:12px 14px}
 .lesson-inline-page .lesson-theory .lesson-prose{max-height:min(30vh,220px)}
 .lesson-inline-page .lesson-launch-card{padding:9px 11px;margin:0 0 7px}
 .lesson-inline-page .lesson-launch-card > p{display:none}
 .lesson-inline-page .lesson-launch-card h3{font-size:12px;margin:0 0 8px}
 .lesson-inline-page .lesson-launch-card .btn{padding:8px 10px}
 .lesson-inline-page .lesson-launch-card .action-row{gap:8px}
 .lesson-inline-page .task-detail{padding:12px}
 .lesson-inline-page .task-detail h3{margin:8px 0 5px;font-size:13px}
 .lesson-inline-page .task-detail p{margin-bottom:7px;font-size:12px;line-height:1.5;max-height:min(18vh,120px);overflow:auto}
 .lesson-inline-page .task-detail .hint-pre{max-height:min(20vh,160px);overflow:auto}
 .lesson-inline-page .lesson-task-heading{margin:7px 0 6px}
 .lesson-inline-page .lesson-task-list{flex:1;overflow-y:auto;scrollbar-gutter:stable;min-height:0}
 .lesson-inline-page .lesson-task{padding:8px 9px;font-size:11px;line-height:1.45}
 .lesson-inline-page .lesson-practice{height:100%;min-height:0;grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px}
 .lesson-inline-page .inline-topology{min-height:0}
 .lesson-inline-page .practice-heading{padding:8px 12px 4px}
 .lesson-inline-page .practice-heading h3{font-size:12px}
 .lesson-inline-page .practice-heading small{font-size:10px}
 .lesson-inline-page .inline-diagram{min-height:80px;max-height:104px}
 .lesson-inline-page .inline-diagram .diagram{height:100px}
 .lesson-inline-page .inline-console{min-height:0;display:flex;flex-direction:column}
 .lesson-inline-page .console-toolbar{flex:none;padding:8px 10px}
 .lesson-inline-page .console-device-bar{flex:none;padding:5px 10px}
 .lesson-inline-page .console-frame{flex:1;min-height:0;height:auto}
 .lesson-inline-page #terminal.terminal-viewport{flex:1;height:100%;min-height:0;min-width:0}
 .lesson-inline-page .console-footer{flex:none;padding:6px 10px}
 .lesson-inline-page .inline-checks{flex:none;min-height:0;padding:7px 11px;gap:7px}
 .lesson-inline-page .inline-checks .btn{padding:8px 10px}
 .lesson-inline-page>.layout-footer{display:none}
 /* Keep the console full-screen button usable outside the clipped layout. */
 .lesson-inline-page #inline-console.expanded{position:fixed;top:77px;right:15px;bottom:15px;left:max(90px,215px);z-index:60}
}
@media(max-width:900px){
 .lesson-reading{height:auto;overflow:visible}
 .lesson-reading .lesson-task-list{overflow:visible}
 .lesson-step-bar{flex-wrap:wrap}
 .lesson-step-instruction{-webkit-line-clamp:unset;line-clamp:unset}
}
@media(max-height:710px) and (min-width:901px){
 .lesson-inline-page .inline-topology .practice-heading small{display:none}
 .lesson-inline-page .inline-diagram{min-height:64px;max-height:75px}
 .lesson-inline-page .inline-diagram .diagram{height:70px}
 .lesson-inline-page .lesson-guide-head{margin-bottom:4px}
 .lesson-inline-page .lesson-reading .lesson-back{padding:7px 9px}
}
@media(min-width:901px) and (min-height:620px){
 /* Keep console controls on one row: a wrapped toolbar used to waste ~90px. */
 .lesson-inline-page .console-toolbar{flex-wrap:nowrap;padding:6px 9px;gap:6px}
 .lesson-inline-page .console-toolbar-title{min-width:100px;flex:1;gap:6px}
 .lesson-inline-page .console-toolbar-title small{display:none}
 .lesson-inline-page .console-toolbar-title h3{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .lesson-inline-page .console-toolbar-icon{width:27px;height:27px;font-size:13px}
 .lesson-inline-page .console-controls{flex:none;flex-wrap:nowrap;gap:4px}
 .lesson-inline-page .console-connection{max-width:110px;overflow:hidden;text-overflow:ellipsis;margin-right:2px}
 .lesson-inline-page .console-controls .btn{padding:6px 8px;font-size:10px}
 .lesson-inline-page .console-device-bar .node-tab{padding:6px 12px}
}
@media(min-width:901px) and (max-width:1350px) and (min-height:620px){
 .lesson-inline-page .practice-heading{padding:6px 10px 3px}
 .lesson-inline-page .inline-diagram{min-height:65px;max-height:76px}
 .lesson-inline-page .inline-diagram .diagram{height:75px}
}
@media(min-width:901px) and (max-width:1100px) and (min-height:620px){
 .lesson-inline-page .console-connection{display:none}
 .lesson-inline-page .inline-lesson-grid{grid-template-columns:minmax(265px,300px) minmax(0,1fr)}
 .lesson-inline-page .inline-diagram{min-height:56px;max-height:65px}
 .lesson-inline-page .inline-diagram .diagram{height:65px}
}

