@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--base:#090c10;--sidebar:#0c1015;--panel:#10151b;--raised:#171d24;--line:#293039;--line2:#1d242c;--text:#f2f3f2;--muted:#88949d;--dim:#697782;--lime:#c7fc83;--l-dark:#233426;--blue:#84c9ff;--gold:#ffc17e;--pink:#f69dc6;--mono:'DM Mono',ui-monospace,Consolas,monospace;--sans:Manrope,Inter,system-ui,sans-serif;--radius:12px}
*{box-sizing:border-box}html{height:100%}body{margin:0;min-height:100%;background:var(--base);color:var(--text);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--lime);outline-offset:3px}::selection{background:var(--lime);color:var(--base)}
.splash{min-height:100vh;display:grid;place-content:center;text-align:center;color:var(--lime);gap:20px}.splash-mark{border:1px solid var(--lime);font-size:68px;font-weight:800;line-height:1;padding:25px 36px}.splash-mark span{color:var(--blue)}.splash p{font:10px var(--mono);letter-spacing:4px;color:var(--muted)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:254px minmax(0,1fr)}.sidebar{background:var(--sidebar);border-right:1px solid var(--line2);padding:23px 17px 20px;display:flex;flex-direction:column;gap:25px;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:20}.brand{display:flex;align-items:center;gap:13px;padding:3px 8px 4px}.brand-mark{width:39px;height:39px;display:grid;place-items:center;border:1px solid var(--lime);border-radius:9px;color:var(--lime);font-weight:800;font-size:24px;position:relative}.brand-mark::after{content:'';position:absolute;right:-4px;bottom:-4px;background:var(--blue);width:8px;height:8px;border:2px solid var(--sidebar);border-radius:50%}.brand-name{font-size:14px;font-weight:800;letter-spacing:.8px}.brand-name small{display:block;font:10px var(--mono);color:var(--muted);letter-spacing:1.8px;margin-top:3px}.nav-group{display:flex;flex-direction:column;gap:4px}.nav-label{padding:0 13px 12px;color:var(--dim);font:10px var(--mono);letter-spacing:1.5px;margin-top:8px}.nav-item{display:flex;align-items:center;gap:13px;border:1px solid transparent;background:transparent;color:#94a0aa;padding:11px 12px;border-radius:8px;text-align:left;width:100%;font-weight:650;transition:background .15s,color .15s}.nav-item:hover{color:#e8f1ef;background:#171f25}.nav-item.active{background:#202a26;color:var(--lime);border-color:#354534}.nav-item svg{width:18px;height:18px;stroke-width:1.7;flex:none}.nav-item .short{margin-left:auto;color:var(--dim);font:10px var(--mono)}.sidebar-bottom{margin-top:auto}.fleet-mini{border:1px solid var(--line);padding:17px;border-radius:10px;background:#11181b;display:flex;flex-direction:column;gap:10px}.fleet-mini strong{font-size:13px}.mini-status{display:flex;align-items:center;gap:8px;color:var(--muted);font:11px var(--mono)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px #c7fc8312}.dot.off{background:#8d6270;box-shadow:none}.profile{display:flex;align-items:center;gap:11px;border-top:1px solid var(--line2);margin-top:17px;padding:19px 7px 0}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:#2b3330;color:var(--lime);font-weight:800}.profile-info{min-width:0;flex:1}.profile-info b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.profile-info small{display:block;font:10px var(--mono);color:var(--muted);margin-top:3px;text-transform:uppercase}.icon-button{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--muted)}.icon-button svg{width:16px}
.main-area{min-width:0;display:flex;flex-direction:column}.topbar{height:72px;padding:0 40px;display:flex;align-items:center;border-bottom:1px solid var(--line2);gap:17px;position:sticky;top:0;background:#0a0d11ef;backdrop-filter:blur(8px);z-index:10}.mobile-menu{display:none}.crumb{font:11px var(--mono);color:var(--muted);letter-spacing:.3px}.crumb span{color:var(--text);font-weight:500}.top-spacer{flex:1}.top-chip{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:99px;color:var(--muted);padding:8px 12px;font:10px var(--mono);white-space:nowrap}.top-chip b{color:var(--lime);font-weight:500}.top-user{width:34px;height:34px;border-radius:50%;background:#272f37;border:1px solid #3d454e;display:grid;place-items:center;font-size:11px;font-weight:800}.content{max-width:1500px;width:100%;padding:37px 40px 66px;margin:0 auto}.eyebrow{font:10px var(--mono);text-transform:uppercase;letter-spacing:2px;color:var(--lime);display:flex;align-items:center;gap:11px}.eyebrow:before{content:'';width:18px;height:1px;background:var(--lime)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(32px,3.2vw,52px);line-height:1.12;letter-spacing:-2.2px;font-weight:800;margin:10px 0 14px}h2{font-size:22px;letter-spacing:-.9px;line-height:1.25}h3{font-size:16px;letter-spacing:-.5px}.lead{color:var(--muted);max-width:700px;line-height:1.8}.page-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:29px}.page-intro p{color:var(--muted);margin-bottom:0;line-height:1.7}.section-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:35px 0 17px}.section-header h2{margin:0}.section-header small{color:var(--dim);font:11px var(--mono)}.link-button{border:0;background:transparent;color:var(--lime);font:11px var(--mono);padding:9px 0;display:inline-flex;align-items:center;gap:7px}.link-button:hover{text-decoration:underline}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:10px 17px;border-radius:7px;border:1px solid var(--line);background:#1a2229;color:var(--text);font-size:12px;font-weight:800;transition:transform .14s,background .14s;white-space:nowrap}.btn:hover{background:#263038;transform:translateY(-1px)}.btn svg{width:15px;height:15px}.btn.primary{background:var(--lime);color:#152016;border-color:var(--lime)}.btn.primary:hover{background:#dcffa9}.btn.ghost{background:transparent}.btn.danger{color:#ffafaf;border-color:#653b3b}.btn.small{min-height:31px;padding:6px 11px;font-size:11px}.btn:disabled{opacity:.5;pointer-events:none}
.hero{min-height:265px;border:1px solid #334238;border-radius:12px;background:radial-gradient(ellipse at 76% 60%,#20312e 0%,transparent 45%),linear-gradient(135deg,#17211e,#101816);display:grid;grid-template-columns:1.15fr 1fr;overflow:hidden;position:relative}.hero::after{content:'';position:absolute;inset:0;background-image:radial-gradient(#8baa9c33 1px,transparent 1px);background-size:20px 20px;mask-image:linear-gradient(90deg,transparent 43%,black 100%);pointer-events:none}.hero-copy{padding:36px 38px;position:relative;z-index:1}.hero-label{color:var(--lime);font:10px var(--mono);letter-spacing:2px}.hero h2{font-size:clamp(29px,3vw,43px);line-height:1.14;letter-spacing:-1.8px;margin:17px 0 13px;max-width:470px}.hero h2 em{color:var(--lime);font-style:normal}.hero p{color:#9badad;max-width:410px;line-height:1.7;font-size:12px;margin-bottom:22px}.hero-art{position:relative;z-index:1;min-height:258px;display:flex;align-items:center;padding:18px 25px}.code-window{width:100%;max-width:490px;transform:rotate(-4deg) translate(8px,25px);background:#0a0d12;border:1px solid #425447;box-shadow:20px 25px 50px #0006;border-radius:10px;overflow:hidden}.code-window-top{display:flex;gap:5px;align-items:center;height:37px;border-bottom:1px solid #2e3b37;padding:0 13px}.code-window-top i{width:7px;height:7px;background:#697981;border-radius:50%}.code-window-top span{margin-left:13px;color:#82908f;font:10px var(--mono)}.code-body{font:12px/2 var(--mono);padding:18px 21px;color:#cedddd;white-space:pre}.syntax-purple{color:#b8a2ff}.syntax-yellow{color:#f8ca87}.syntax-green{color:var(--lime)}.syntax-blue{color:var(--blue)}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.metric{border:1px solid var(--line2);background:var(--panel);padding:21px 22px;border-radius:10px;min-height:108px;display:flex;flex-direction:column;justify-content:space-between}.metric label{font:10px var(--mono);color:var(--muted);letter-spacing:.8px;text-transform:uppercase}.metric-value{font-size:30px;font-weight:800;letter-spacing:-1.5px}.metric-note{color:var(--lime);font:10px var(--mono);margin-left:9px}.courses-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.course-card{display:flex;flex-direction:column;gap:18px;min-height:230px;text-align:left;padding:21px;border:1px solid var(--line2);background:var(--panel);color:var(--text);border-radius:10px;transition:transform .2s,border-color .2s,background .2s}.course-card:hover{transform:translateY(-3px);border-color:#63776b;background:#151d22}.course-card-top{display:flex;justify-content:space-between;align-items:flex-start}.course-icon{width:48px;height:48px;border-radius:10px;border:1px solid color-mix(in srgb,var(--accent) 34%,transparent);background:color-mix(in srgb,var(--accent) 9%,transparent);display:grid;place-items:center;color:var(--accent);font:700 20px var(--mono);letter-spacing:-2px}.course-card .course-level{font:10px var(--mono);border:1px solid var(--line);padding:6px 8px;border-radius:4px;color:var(--muted)}.course-card h3{font-size:17px;margin:0 0 8px;line-height:1.35}.course-card p{font-size:11px;line-height:1.7;color:var(--muted);margin:0;flex:1}.course-card-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line2);padding-top:14px;font:10px var(--mono);color:var(--muted)}.course-card-bottom span:last-child{font-size:17px;color:var(--accent)}
.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:15px}.panel{border:1px solid var(--line2);background:var(--panel);border-radius:10px;padding:23px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.panel-head h3{margin:0}.panel-label{font:10px var(--mono);color:var(--muted);letter-spacing:1px}.list-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line2)}.list-row:last-child{border-bottom:0;padding-bottom:0}.list-row:first-child{padding-top:0}.list-glyph{width:39px;height:39px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;color:var(--lime);font:12px var(--mono);flex:none}.list-info{flex:1;min-width:0}.list-info strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-info small{display:block;color:var(--muted);font:10px var(--mono);margin-top:6px}.list-side{font:11px var(--mono);color:var(--lime);white-space:nowrap}.empty{padding:45px 15px;text-align:center;border:1px dashed #3a4249;border-radius:9px;color:var(--muted)}.empty .empty-symbol{font:40px var(--mono);color:#526452;display:block;margin-bottom:15px}.empty p{font-size:12px;line-height:1.8;max-width:300px;margin:10px auto 0}
.course-top{display:flex;align-items:center;gap:20px}.big-course-icon{width:75px;height:75px;flex:none;display:grid;place-items:center;font:30px var(--mono);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:12px}.course-banner{padding:27px;border:1px solid var(--line);border-radius:11px;background:var(--panel);margin:25px 0}.course-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px}.lesson-card{border:1px solid var(--line2);background:var(--panel);border-radius:10px;padding:25px;margin-bottom:13px}.lesson-number{font:11px var(--mono);color:var(--lime);margin-bottom:12px}.lesson-card h3{font-size:18px}.article{color:#b6c0c8;font-size:13px;line-height:1.95}.article h2,.article h3{font-size:17px;color:var(--text);margin:22px 0 8px}.article p{margin:8px 0}.article code{font:12px var(--mono);background:#252e35;color:#d2ffa7;border:1px solid #334239;padding:2px 5px;border-radius:4px}.article ol,.article ul{padding-left:22px}.lab-callout{border:1px solid #465c40;border-radius:9px;background:#1c2a21;padding:18px;margin-top:18px}.lab-callout-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.lab-callout strong{font-size:12px}.lab-callout small{font:10px var(--mono);color:var(--lime)}.lab-callout p{color:#9eb4a5;margin:9px 0 13px;font-size:11px;line-height:1.7}.outline-sidebar{border:1px solid var(--line2);background:var(--panel);border-radius:10px;padding:20px;align-self:start;position:sticky;top:96px}.outline-sidebar h3{font-size:13px;margin:0 0 19px}.outline-item{display:flex;gap:11px;align-items:center;color:#aab5bb;border-top:1px solid var(--line2);padding:13px 0;font-size:11px}.outline-num{font:10px var(--mono);color:var(--lime)}
.pill{display:inline-flex;gap:7px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:5px;color:var(--muted);font:10px var(--mono)}.pill.good{border-color:#426b48;color:var(--lime)}.pill.failed{border-color:#6c4b4a;color:#ff9f9f}.workspace-row{display:flex;align-items:center;gap:15px;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line2)}.workspace-row:last-child{border:0}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.workspace-shell{display:flex;flex-direction:column;height:calc(100vh - 72px);min-height:540px;overflow:hidden}.studio-toolbar{padding:14px 20px;border-bottom:1px solid var(--line2);display:flex;align-items:center;gap:11px;flex-wrap:wrap;background:#12171d}.studio-toolbar h3{font-size:13px;margin:0;white-space:nowrap}.studio-toolbar .toolbar-path{font:10px var(--mono);color:var(--dim)}.studio-status{font:10px var(--mono);color:var(--lime)}.studio-body{display:grid;grid-template-columns:minmax(275px,340px) minmax(0,1fr);min-height:0;flex:1}.studio-instructions{background:#131920;border-right:1px solid var(--line);overflow:auto;padding:22px 21px}.studio-instructions h2{font-size:23px;margin:10px 0}.studio-frame{min-width:0;position:relative;background:#090c10;display:flex;flex-direction:column}.studio-frame iframe{border:0;width:100%;height:100%;flex:1;background:#131920}.studio-note{position:absolute;top:18px;left:18px;right:18px;pointer-events:none;display:flex;justify-content:center}.studio-note span{background:#111b17ee;border:1px solid #395643;color:#dcffc2;padding:9px 15px;font:11px var(--mono);border-radius:5px}.studio-fullscreen .sidebar,.studio-fullscreen .topbar{display:none}.studio-fullscreen .app-shell{grid-template-columns:1fr}.studio-fullscreen .workspace-shell{height:100vh}.studio-fullscreen .studio-body{grid-template-columns:280px minmax(0,1fr)}.grader-results{border:1px solid #536c4c;background:#19241d;border-radius:8px;padding:15px;margin-top:14px}.grader-results strong{color:var(--lime)}.grader-results .test-row{font:11px var(--mono);color:#b9c8b9;padding:8px 0;border-top:1px solid #2d4132}
.table-wrap{overflow-x:auto;border:1px solid var(--line2);background:var(--panel);border-radius:10px}.data-table{width:100%;border-collapse:collapse;font-size:12px;min-width:640px}.data-table th{text-align:left;font:10px var(--mono);letter-spacing:1px;color:var(--dim);padding:15px 19px;background:#151b20}.data-table td{padding:18px 19px;border-top:1px solid var(--line2);color:#c8d0d2}.data-table td strong{color:var(--text)}.data-table td small{display:block;color:var(--dim);margin-top:6px}.data-table .mono{font:11px var(--mono)}.data-table .right{text-align:right}.status-live{color:var(--lime)}.status-dead{color:#ffaca4}.form-box{border:1px solid var(--line2);background:var(--panel);padding:25px;border-radius:10px;max-width:820px}.form-box h3{margin-bottom:8px}.form-box p{color:var(--muted);line-height:1.75;font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-field{display:flex;flex-direction:column;gap:8px}.form-field.wide{grid-column:1/-1}.form-field label{font:11px var(--mono);color:#aeb9c1}.form-field input,.form-field select,.form-field textarea{width:100%;background:#0b1116;border:1px solid #333d46;color:var(--text);border-radius:6px;padding:12px 13px;outline:0;min-height:42px}.form-field textarea{resize:vertical;min-height:100px;font:12px/1.65 var(--mono)}.form-field input:focus,.form-field textarea:focus{border-color:var(--lime)}.help{font:10px/1.7 var(--mono);color:var(--dim)}.form-actions{margin-top:18px;display:flex;gap:10px;align-items:center}.tab-row{display:flex;gap:7px;margin:24px 0;border-bottom:1px solid var(--line2)}.tab{border:0;background:transparent;color:var(--muted);padding:13px 16px;font-size:12px;font-weight:700;border-bottom:2px solid transparent}.tab.active{color:var(--lime);border-color:var(--lime)}.notice{border-left:3px solid var(--lime);background:#1a261e;padding:16px 18px;font-size:12px;color:#bfceb9;line-height:1.7}.steps{list-style:none;counter-reset:steps;padding:0;margin:22px 0}.steps li{counter-increment:steps;border-bottom:1px solid var(--line2);padding:15px 0;display:flex;gap:15px;font-size:12px;color:var(--muted)}.steps li:before{content:counter(steps,decimal-leading-zero);font:11px var(--mono);color:var(--lime)}.mono-block{border:1px solid var(--line);background:#080b0f;border-radius:7px;font:11px/2 var(--mono);padding:15px;color:#bedeb9;overflow-wrap:anywhere}
.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 500px}.auth-art{padding:55px clamp(40px,6vw,120px);background:#101b17;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid #344338}.auth-art::before{content:'{ }';font:800 clamp(240px,38vw,600px) var(--mono);position:absolute;color:#253c30;right:-170px;bottom:-200px;transform:rotate(-17deg);z-index:0}.auth-brand{position:relative;z-index:1;display:flex;align-items:center;gap:13px;color:var(--text);font-size:16px;font-weight:800;letter-spacing:1px}.auth-brand .brand-mark{background:#111e17}.auth-statement{position:relative;z-index:1}.auth-statement .eyebrow{margin-bottom:25px}.auth-statement h1{font-size:clamp(55px,6vw,95px);line-height:1.02;letter-spacing:-5px;max-width:750px}.auth-statement h1 span{color:var(--lime)}.auth-statement p{font-size:15px;color:#9ab2a3;max-width:400px;line-height:1.9;margin-top:27px}.auth-footer{position:relative;z-index:1;display:flex;gap:20px;font:10px var(--mono);letter-spacing:1px;color:#8fa69a}.auth-pane{display:flex;flex-direction:column;justify-content:center;padding:45px 60px;background:#0c1014}.auth-pane .eyebrow{margin-bottom:20px}.auth-pane h2{font-size:30px;letter-spacing:-1.3px;margin-bottom:9px}.auth-pane p{color:var(--muted);font-size:12px;line-height:1.8;margin-bottom:28px}.auth-pane .form-field{margin-bottom:15px}.auth-pane .btn{width:100%;margin-top:8px;min-height:48px}.auth-switch{text-align:center;margin-top:24px;font-size:12px;color:var(--muted)}.auth-switch button{color:var(--lime);font-weight:700;background:none;border:0}.auth-hint{font:10px/1.8 var(--mono);color:var(--dim);margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}
#toast{position:fixed;right:24px;bottom:25px;z-index:100;max-width:400px;background:#202a22;color:#e0f7d7;border:1px solid #526b45;border-radius:9px;box-shadow:0 20px 60px #000b;padding:15px 18px;font-size:12px;line-height:1.6;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translateY(0)}#toast.error{border-color:#7b4949;background:#311c1e;color:#ffc3c1}
@media(max-width:1200px){.courses-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:30px 26px}.topbar{padding:0 26px}.hero{grid-template-columns:1.2fr 1fr}}
@media(max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;transform:translateX(-101%);transition:transform .2s;box-shadow:20px 0 80px #0009}.menu-open .sidebar{transform:none}.mobile-menu{display:grid}.course-layout{grid-template-columns:1fr}.outline-sidebar{display:none}.auth-layout{grid-template-columns:1fr}.auth-art{display:none}.auth-pane{min-height:100vh;max-width:550px;margin:auto;width:100%}}
@media(max-width:680px){.content{padding:26px 15px 50px}.topbar{height:59px;padding:0 15px}.top-chip{display:none}.page-intro{display:block}.page-intro .btn{margin-top:14px}.hero{grid-template-columns:1fr}.hero-art{display:none}.hero-copy{padding:28px 24px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric{padding:15px}.courses-grid,.two-col{grid-template-columns:1fr}.studio-toolbar{padding:10px}.studio-body,.studio-fullscreen .studio-body{grid-template-columns:1fr;grid-template-rows:minmax(170px,30%) 1fr}.studio-instructions{padding:15px;border-right:0;border-bottom:1px solid var(--line)}.studio-toolbar .toolbar-path{display:none}.workspace-shell{height:calc(100vh - 59px)}.form-grid{grid-template-columns:1fr}.auth-pane{padding:35px 25px}.auth-statement h1{font-size:46px}.course-top{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.mobile-shade{display:none}
@media(max-width:960px){.mobile-shade{display:block;position:fixed;inset:0;z-index:19;background:#0009;border:0;width:100%;height:100%;}}

/* SSH worker enrollment: readable, accessible and distinct from student views */
.form-field[hidden]{display:none!important}.worker-identity{margin-top:19px;border:1px dashed #455948;background:#142119;padding:15px;border-radius:7px;font:11px/1.75 var(--mono);color:#c4d8c3}.worker-identity strong{color:var(--lime);font-size:10px;letter-spacing:1px}.worker-identity .mono-block{font-size:11px;margin:11px 0;word-break:break-all}.worker-identity p{margin:8px 0 0}.worker-progress{margin:0 0 20px}.worker-step{font:12px/1.8 var(--mono);color:var(--lime);margin:9px 0}.worker-log{background:#080e11;border:1px solid var(--line2);padding:15px;max-height:220px;overflow:auto;border-radius:6px;font:11px/1.8 var(--mono);color:#b2bdc2}.worker-log div+div{border-top:1px solid #202a2f;padding-top:4px;margin-top:4px}

/* v0.1.3 / Users & Access: operator-grade directory and creation controls. */
.account-page{max-width:1500px}
.account-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 22px}
.account-summary>div{border:1px solid #2c373d;border-top:2px solid #bce98b;background:linear-gradient(155deg,#131d20,#11171c);border-radius:8px;padding:18px 20px;display:flex;flex-direction:column;gap:7px}
.account-summary span,.account-panel-eyebrow,.account-search span{font:10px var(--mono);letter-spacing:1.3px;color:#91a6a1}
.account-summary strong{font:700 32px var(--sans);color:#eff7ef}
.account-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(285px,.85fr);gap:16px;margin-bottom:26px}
.account-provision,.account-policy{min-width:0;background:#111a20;border-color:#2a3839}
.account-provision h3,.account-policy h3,.account-directory h3{font-size:20px;margin:10px 0 6px;color:#f2f6f0}
.account-provision p,.account-directory p{color:#a0b1ae;font-size:12px;line-height:1.7;margin:0 0 20px}
.account-provision .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.account-provision .form-actions{margin-top:22px}
.account-provision input:focus-visible,.account-provision select:focus-visible,.account-search input:focus-visible,.account-role-select:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.account-policy-row{display:flex;gap:14px;align-items:flex-start;padding:18px 0;border-bottom:1px solid #28343a}
.account-policy-row strong{font-size:13px;color:#eff5f1}
.account-policy-row p{color:#9aacad;font-size:12px;line-height:1.55;margin:4px 0 0}
.access-symbol{width:38px;height:38px;border:1px solid #466456;background:#192921;color:var(--lime);border-radius:6px;flex:none;display:grid;place-items:center;font:13px var(--mono)}
.account-policy-note{font:11px/1.7 var(--mono);color:#b2c1bd;padding:16px 0 0}
.account-directory{border:1px solid #2c373d;background:#10171c;border-radius:10px;padding:22px}
.account-directory-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:18px}
.account-directory-header h3{margin-bottom:5px}
.account-directory-header p{margin:0}
.account-search{display:flex;flex-direction:column;gap:8px;width:min(320px,100%)}
.account-search input{background:#0d1419;color:#f3f7ef;border:1px solid #34454a;padding:11px 13px;border-radius:5px;width:100%;font-size:12px}
.account-table{min-width:870px}
.account-table .account-row[hidden],.account-table .account-reset-row[hidden]{display:none!important}
.account-table td{vertical-align:middle}
.account-person{display:flex;align-items:center;gap:10px;min-width:180px}
.account-person strong{display:block;font-size:12px;color:#f1f6f2}
.account-person small{display:block;font:10px/1.8 var(--mono);color:#93a3a9;overflow-wrap:anywhere}
.account-avatar{flex:none;width:38px;height:38px;border:1px solid #44604d;border-radius:7px;background:#192821;color:#caefa0;display:grid;place-items:center;font-weight:800;font-size:14px}
.account-self,.account-protected{font:9px var(--mono);letter-spacing:.6px;border:1px solid #536b54;padding:3px 5px;border-radius:3px;color:#c9ed9f;margin-left:5px}
.account-protected{display:inline-block;margin-top:8px}
.account-role-tools,.account-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.account-role-select{max-width:145px;min-width:105px;border:1px solid #34454a;border-radius:5px;background:#172129;color:#f1f7f2;padding:8px 9px;font-size:11px}
.account-table .btn.small{font-size:10px;min-height:31px;padding:7px 10px;white-space:nowrap}
.account-table button:disabled,.account-table select:disabled{opacity:.38;cursor:not-allowed}
.account-reset-row td{background:#17251f!important;border-top:1px solid #385c40;border-bottom:1px solid #385c40}
.account-reset-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px}
.account-reset-form label{font:11px var(--mono);color:#d3e6d5}
.account-reset-form input{background:#0b1612;color:#fff;border:1px solid #4a6e50;border-radius:5px;padding:10px 12px;flex:1;min-width:205px}
.account-empty{text-align:center;padding:25px;color:#94a4a9}
@media(max-width:1100px){.account-layout{grid-template-columns:1fr}}
@media(max-width:760px){.account-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.account-provision .form-grid{grid-template-columns:1fr}.account-directory{padding:13px}.account-directory-header{align-items:stretch;flex-direction:column}.account-search{width:100%}}

/* v0.1.5: editor is never exposed while code-server is still booting or its WS is disconnected. */
.studio-frame{position:relative;overflow:hidden;background:#070d11}
.studio-iframe-host,.studio-iframe-host iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.studio-loading{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:radial-gradient(ellipse at 50% 40%,#182924 0%,#0e181b 41%,#080d12 100%);padding:28px 20px;color:#e4f5e5}
.studio-loading[hidden],.studio-loading-failure[hidden]{display:none!important}
.studio-loading::after{position:absolute;content:'';inset:0;pointer-events:none;opacity:.12;background-image:linear-gradient(#a7df8a 1px,transparent 1px),linear-gradient(90deg,#a7df8a 1px,transparent 1px);background-size:45px 45px;mask-image:radial-gradient(ellipse at center,#000,transparent 80%)}
.studio-loading-art{position:relative;width:108px;height:108px;display:grid;place-items:center;margin-bottom:32px}
.studio-orbit{position:absolute;inset:0;border:2px solid #37493d;border-top-color:#c8ff9f;border-right-color:#9dceef;border-radius:50%;animation:studio-spin 1.15s linear infinite}
.studio-loading-mark{color:#d5ffa8;font:800 48px var(--sans);border:1px solid #546f52;border-radius:14px;padding:2px 15px;box-shadow:0 0 45px #baf78f1c}
.studio-loading-overline{font:10px var(--mono);letter-spacing:2.2px;color:#b4df8b;margin-bottom:18px;z-index:1}
.studio-loading h3{font-size:clamp(20px,2.2vw,30px);letter-spacing:-.6px;margin:0 0 12px;z-index:1}
.studio-loading p{max-width:420px;font:12px/1.7 var(--mono);color:#93a9aa;margin:0;z-index:1}
.studio-loading-progress{height:3px;width:min(320px,90%);border-radius:4px;background:#223530;position:relative;margin:28px 0;overflow:hidden}
.studio-loading-progress i{position:absolute;top:0;left:0;width:42%;height:100%;border-radius:4px;background:linear-gradient(90deg,#83baaf,#c4fb8d);animation:studio-progress 1.8s ease-in-out infinite}
.studio-loading-failure{z-index:1;margin-top:4px}
.studio-loading-failure p{margin-top:15px}
@keyframes studio-spin{to{transform:rotate(360deg)}}
@keyframes studio-progress{0%{transform:translateX(-100%)}100%{transform:translateX(280%)}}
@media(prefers-reduced-motion:reduce){.studio-orbit,.studio-loading-progress i{animation:none}}
