:root{--bg:#0e1013;--side:#111419;--surface:#181c22;--surface2:#20252d;--surface3:#292f38;--text:#f5f3ef;--muted:#aaadb4;--dim:#747983;--border:rgba(255,255,255,.09);--strong:rgba(255,255,255,.15);--accent:#e17857;--accent2:#ee8968;--accent-soft:rgba(225,120,87,.14);--green:#63ba8a;--green-soft:rgba(99,186,138,.13);--amber:#dba15d;--amber-soft:rgba(219,161,93,.13);--red:#e36f68;--red-soft:rgba(227,111,104,.13);--blue:#6c9fe7;--shadow:0 24px 70px rgba(0,0,0,.3);--r:14px;--sidebar:244px;--font:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"Cascadia Code",Consolas,monospace}[data-theme=light]{--bg:#f4f2ef;--side:#ebe7e2;--surface:#fff;--surface2:#f7f5f2;--surface3:#ede9e4;--text:#252321;--muted:#6e6964;--dim:#99928b;--border:rgba(37,35,33,.1);--strong:rgba(37,35,33,.17);--accent:#cf6848;--accent2:#bd593b;--accent-soft:rgba(207,104,72,.11);--green:#38835f;--green-soft:rgba(56,131,95,.11);--amber:#a96d2e;--amber-soft:rgba(169,109,46,.11);--red:#c8524d;--red-soft:rgba(200,82,77,.1);--shadow:0 22px 60px rgba(62,51,43,.11)}*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}html[data-theme=light]{color-scheme:light}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hidden{display:none!important}.mono{font-family:var(--mono)}.muted{color:var(--muted)}@keyframes enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(99,186,138,.4)}70%{box-shadow:0 0 0 7px rgba(99,186,138,0)}100%{box-shadow:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flow{from{transform:translateX(-120%)}to{transform:translateX(280%)}}.ambient{position:fixed;inset:0;overflow:hidden;pointer-events:none}.ambient:after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:54px 54px;opacity:.13;mask-image:radial-gradient(circle at 75% 12%,#000,transparent 53%)}.ambient i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.12}.ambient i:first-child{width:500px;height:500px;right:-180px;top:-180px;background:var(--accent)}.ambient i:last-child{width:420px;height:420px;left:30%;bottom:-280px;background:var(--blue)}.shell{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:20px 14px 16px;display:flex;flex-direction:column;background:rgba(14,16,19,.88);border-right:1px solid var(--border);backdrop-filter:blur(20px)}[data-theme=light] .sidebar{background:rgba(244,242,239,.9)}.brand{padding:0 8px 18px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--border)}.brand-mark{width:39px;height:39px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;color:#fff;background:linear-gradient(145deg,var(--accent2),var(--accent));box-shadow:0 10px 25px rgba(225,120,87,.22)}.brand-mark svg{width:24px;height:24px}.brand>div{display:grid}.brand strong{font-size:14px}.brand small{font-size:10px;color:var(--dim);letter-spacing:.08em;text-transform:uppercase}.nav{margin-top:19px;display:grid;gap:4px}.nav-link{width:100%;min-height:43px;padding:0 11px;border:1px solid transparent;border-radius:10px;display:flex;align-items:center;gap:11px;background:transparent;color:var(--muted);font-size:13px;font-weight:650;text-align:left;transition:.16s}.nav-link svg{width:18px;height:18px;color:var(--dim)}.nav-link:hover{color:var(--text);background:var(--surface2)}.nav-link.is-active{color:var(--text);background:var(--accent-soft);border-color:rgba(225,120,87,.18)}.nav-link.is-active svg{color:var(--accent)}.nav-link b{margin-left:auto;min-width:23px;height:20px;display:grid;place-items:center;border-radius:6px;background:var(--surface3);font-size:10px}.sidebar-foot{margin-top:auto;display:grid;gap:10px}.security-chip,.account{border:1px solid var(--border);border-radius:11px;background:var(--surface)}.security-chip{padding:10px 11px;display:flex;align-items:center;gap:10px}.security-chip>i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.security-chip div,.account div{display:grid}.security-chip strong,.account strong{font-size:11px}.security-chip small,.account small{font-size:9px;color:var(--dim)}.account{padding:7px;display:flex;align-items:center;gap:9px}.account>span{width:35px;height:35px;display:grid;place-items:center;border-radius:9px;background:var(--accent);color:#fff;font-weight:800}.account>div{min-width:0;flex:1}.account form button{width:32px;height:32px;border:0;background:transparent;color:var(--dim)}.account form svg{width:17px}.workspace{min-width:0}.topbar{position:sticky;top:0;z-index:20;min-height:82px;padding:14px clamp(20px,3vw,40px);display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--border);background:rgba(14,16,19,.76);backdrop-filter:blur(20px)}[data-theme=light] .topbar{background:rgba(244,242,239,.82)}.heading{min-width:0;flex:1}.heading>span{display:block;color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.16em}.heading h1{margin:2px 0 0;font-size:clamp(19px,2vw,24px);line-height:1.2;letter-spacing:-.035em}.top-actions{display:flex;align-items:center;gap:9px}.connection{height:35px;padding:0 11px;border:1px solid var(--border);border-radius:9px;display:flex;align-items:center;gap:8px;background:var(--surface);color:var(--muted);font-size:10px}.connection i{width:7px;height:7px;border-radius:50%;background:var(--amber)}.connection.live i{background:var(--green);animation:pulse 1.8s infinite}.connection.offline i{background:var(--red)}.icon-btn{width:40px;height:40px;padding:0;border:1px solid var(--border);border-radius:10px;display:grid;place-items:center;background:var(--surface);color:var(--muted);transition:.16s}.icon-btn:hover{color:var(--text);background:var(--surface2);border-color:var(--strong)}.icon-btn svg{width:18px;height:18px}.sun{display:none}[data-theme=light] .moon{display:none}[data-theme=light] .sun{display:block}.mobile-menu{display:none}.btn{min-height:42px;padding:0 15px;border:1px solid transparent;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:transparent;font-size:12px;font-weight:700;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn svg{width:17px;height:17px}.btn.primary{color:#fff;background:var(--accent);box-shadow:0 8px 20px rgba(225,120,87,.2)}.btn.primary:hover{background:var(--accent2)}.btn.secondary{color:var(--text);background:var(--surface2);border-color:var(--border)}.btn.ghost{color:var(--muted);border-color:var(--border)}.btn.danger{color:var(--red);background:var(--red-soft);border-color:rgba(227,111,104,.2)}.btn.success{color:var(--green);background:var(--green-soft);border-color:rgba(99,186,138,.2)}.view{max-width:1560px;margin:auto;padding:28px clamp(20px,3vw,40px) 48px}.view>*{animation:enter .32s ease both}.panel{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);box-shadow:0 8px 26px rgba(0,0,0,.12)}.panel-head{min-height:58px;padding:14px 17px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h2,.panel-head h3{margin:0;font-size:14px}.panel-head p{margin:2px 0 0;color:var(--dim);font-size:10px}.panel-body{padding:17px}.section-row{margin:26px 0 13px;display:flex;align-items:end;justify-content:space-between;gap:14px}.section-row h2{margin:0;font-size:16px;letter-spacing:-.025em}.section-row p{margin:3px 0 0;color:var(--dim);font-size:11px}.hero{position:relative;overflow:hidden;min-height:205px;padding:26px;border:1px solid var(--border);border-radius:20px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:24px;align-items:center;background:linear-gradient(135deg,var(--surface),var(--surface2));box-shadow:0 8px 26px rgba(0,0,0,.12)}.hero:after{content:"";position:absolute;width:440px;height:440px;right:-100px;top:-200px;border-radius:50%;background:radial-gradient(circle,var(--accent-soft),transparent 68%)}.hero-copy,.class-status{position:relative;z-index:1}.hero-badge{width:max-content;margin-bottom:12px;padding:5px 8px;border:1px solid rgba(99,186,138,.2);border-radius:7px;display:flex;align-items:center;gap:7px;color:var(--green);background:var(--green-soft);font-size:9px;font-weight:850;letter-spacing:.08em}.hero-badge i{width:6px;height:6px;border-radius:50%;background:currentColor}.hero h2{max-width:650px;margin:0;font-size:clamp(25px,3vw,38px);line-height:1.08;letter-spacing:-.045em}.hero p{max-width:630px;margin:11px 0 19px;color:var(--muted);font-size:13px}.hero-actions{display:flex;flex-wrap:wrap;gap:9px}.class-status{display:grid;gap:10px}.status-row{min-height:48px;padding:10px 12px;border:1px solid var(--border);border-radius:11px;display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.025)}.status-row>span{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft)}.status-row svg{width:16px}.status-row div{flex:1;display:grid}.status-row strong{font-size:11px}.status-row small{font-size:9px;color:var(--dim)}.status-row b{font-size:18px}.metrics{margin-top:14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{min-height:111px;padding:16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);transition:.16s}.metric:hover{transform:translateY(-2px);border-color:var(--strong)}.metric>div{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;font-weight:700}.metric>div span{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft)}.metric>div span.green{color:var(--green);background:var(--green-soft)}.metric>div span.amber{color:var(--amber);background:var(--amber-soft)}.metric>div span.red{color:var(--red);background:var(--red-soft)}.metric svg{width:15px}.metric b{display:block;margin-top:8px;font-size:28px;line-height:1;letter-spacing:-.05em}.metric small{display:block;margin-top:6px;color:var(--dim);font-size:9px}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.quick{min-height:68px;padding:12px;border:1px solid var(--border);border-radius:12px;display:flex;align-items:center;gap:11px;background:var(--surface);color:var(--text);text-align:left;transition:.16s}.quick:hover{transform:translateY(-2px);background:var(--surface2);border-color:var(--strong)}.quick>span{width:35px;height:35px;border-radius:9px;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft)}.quick svg{width:17px}.quick div{display:grid}.quick strong{font-size:11px}.quick small{font-size:9px;color:var(--dim)}.toolbar{margin-bottom:14px;display:flex;align-items:center;gap:10px}.search{position:relative;min-width:260px;max-width:500px;flex:1}.search svg{position:absolute;left:12px;top:13px;width:16px;color:var(--dim)}.search input{width:100%;height:42px;padding:0 12px 0 38px;border:1px solid var(--border);border-radius:10px;background:var(--surface);outline:none}.search input:focus,.field input:focus,.field textarea:focus{border-color:rgba(225,120,87,.6);box-shadow:0 0 0 4px var(--accent-soft)}.segments{padding:3px;border:1px solid var(--border);border-radius:10px;display:flex;background:var(--surface)}.segments button{height:34px;padding:0 11px;border:0;border-radius:7px;background:transparent;color:var(--dim);font-size:10px;font-weight:750}.segments button.active{background:var(--surface3);color:var(--text)}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:12px}.device-card{position:relative;overflow:hidden;min-height:173px;padding:15px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--text);text-align:left;transition:.17s}.device-card:hover{transform:translateY(-3px);background:var(--surface2);border-color:var(--strong)}.device-head{display:flex;align-items:center;gap:10px}.pc-icon,.device-icon{width:39px;height:39px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;background:var(--surface3);color:var(--muted)}.device-icon{color:var(--accent);background:var(--accent-soft)}.pc-icon svg,.device-icon svg{width:20px}.device-title{min-width:0;flex:1;display:grid}.device-title strong,.device-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-title strong{font-size:12px}.device-title small{font-size:9px;color:var(--dim)}.status{height:24px;padding:0 7px;border-radius:7px;display:inline-flex;align-items:center;gap:5px;font-size:8px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.online{color:var(--green);background:var(--green-soft)}.offline{color:var(--dim);background:var(--surface3)}.device-meta{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.device-meta span{display:grid;min-width:0}.device-meta small{font-size:8px;color:var(--dim);letter-spacing:.06em;text-transform:uppercase}.device-meta b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.flags{margin-top:13px;display:flex;flex-wrap:wrap;gap:6px}.tag{height:23px;padding:0 7px;border:1px solid var(--border);border-radius:7px;display:inline-flex;align-items:center;color:var(--dim);font-size:8px;font-weight:700}.tag.warn{color:var(--amber);background:var(--amber-soft)}.tag.danger{color:var(--red);background:var(--red-soft)}.empty{min-height:290px;padding:35px;border:1px dashed var(--strong);border-radius:var(--r);display:grid;place-items:center;background:var(--surface);text-align:center}.empty>div{max-width:400px}.empty .pc-icon{margin:0 auto 14px;width:54px;height:54px;color:var(--accent);background:var(--accent-soft)}.empty h3{margin:0;font-size:17px}.empty p{margin:7px 0 17px;color:var(--muted);font-size:11px}.deploy{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:14px}.build-card{overflow:hidden}.build-intro{padding:23px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,var(--surface),var(--surface2))}.kicker{margin-bottom:9px;color:var(--accent);font-size:9px;font-weight:850;letter-spacing:.15em}.build-intro h2{max-width:650px;margin:0;font-size:clamp(22px,3vw,32px);line-height:1.12;letter-spacing:-.04em}.build-intro p{max-width:650px;margin:10px 0 0;color:var(--muted);font-size:12px}.build-form{padding:20px;display:grid;grid-template-columns:1fr 150px;gap:13px}.field{display:grid;gap:7px}.field>span{font-size:10px;color:var(--muted);font-weight:700}.field input,.field textarea{width:100%;min-height:43px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);outline:none}.field textarea{min-height:90px;resize:vertical}.build-actions{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:9px}.build-state{margin-left:auto;display:flex;align-items:center;gap:7px;color:var(--dim);font-size:10px}.build-state i{width:7px;height:7px;border-radius:50%;background:currentColor}.build-state.ready{color:var(--green)}.progress{grid-column:1/-1}.progress-track{height:7px;overflow:hidden;border-radius:10px;background:var(--surface3)}.progress-track i{display:block;width:34%;height:100%;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:flow 1.4s infinite}.progress p{margin:7px 0 0;color:var(--dim);font:9px var(--mono)}.deploy-side{display:grid;gap:14px;align-content:start}.step{padding:13px 15px;display:grid;grid-template-columns:29px 1fr;gap:11px;border-top:1px solid var(--border)}.step:first-child{border-top:0}.step>span{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft);font-size:10px;font-weight:800}.step strong{font-size:11px}.step p{margin:3px 0 0;color:var(--dim);font-size:9px}.security-note{padding:14px;border:1px solid rgba(99,186,138,.2);border-radius:var(--r);display:flex;gap:10px;color:var(--green);background:var(--green-soft)}.security-note svg{flex:0 0 auto;width:18px}.security-note strong{font-size:10px}.security-note p{margin:2px 0 0;color:var(--muted);font-size:9px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th{height:38px;padding:0 14px;background:var(--surface2);color:var(--dim);font-size:8px;letter-spacing:.08em;text-align:left;text-transform:uppercase}.data-table td{height:47px;padding:0 14px;border-top:1px solid var(--border);color:var(--muted);font-size:10px}.data-table td strong{color:var(--text)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-stack{display:grid;gap:14px}.switch-row{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px}.switch-copy{display:grid}.switch-copy strong{font-size:11px}.switch-copy small{font-size:9px;color:var(--dim)}.switch{position:relative;width:42px;height:24px}.switch input{position:absolute;opacity:0}.switch i{position:absolute;inset:0;border:1px solid var(--border);border-radius:20px;background:var(--surface3)}.switch i:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--dim);transition:.18s}.switch input:checked+i{background:var(--accent-soft);border-color:rgba(225,120,87,.35)}.switch input:checked+i:after{left:21px;background:var(--accent)}.audit-row{min-height:58px;padding:10px 14px;border-top:1px solid var(--border);display:grid;grid-template-columns:142px 150px 1fr;align-items:center;gap:14px}.audit-row:first-child{border-top:0}.audit-row time{color:var(--dim);font:9px var(--mono)}.audit-row strong{font-size:10px}.audit-row span{overflow:hidden;color:var(--muted);font:9px var(--mono);text-overflow:ellipsis;white-space:nowrap}.modal-layer{position:fixed;inset:0;z-index:100;padding:24px;display:grid;place-items:center}.backdrop{position:absolute;inset:0;border:0;background:rgba(3,5,7,.7);backdrop-filter:blur(7px)}.device-modal{position:relative;width:min(1180px,100%);max-height:92vh;overflow:auto;border:1px solid var(--strong);border-radius:18px;background:var(--side);box-shadow:0 30px 100px rgba(0,0,0,.5);animation:enter .22s ease}.device-modal>header{position:sticky;top:0;z-index:3;min-height:70px;padding:13px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:rgba(17,20,25,.88);backdrop-filter:blur(18px)}.device-modal>header>div{display:flex;align-items:center;gap:11px}.device-modal h2{margin:0;font-size:15px}.device-modal header p{margin:2px 0 0;color:var(--dim);font-size:9px}.tabs{padding:10px 16px 0;border-bottom:1px solid var(--border);display:flex;gap:4px}.tab{height:37px;padding:0 12px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--dim);font-size:10px;font-weight:700}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.modal-content{padding:16px}.screen-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px}.screen-stage{position:relative;min-height:410px;overflow:hidden;border:1px solid var(--border);border-radius:13px;display:grid;place-items:center;background:#090b0e}.screen-stage img{display:block;max-width:100%;max-height:650px;user-select:none}.screen-empty{max-width:320px;color:#7a8089;text-align:center}.screen-empty svg{margin:0 auto 10px;width:38px;height:38px}.screen-empty strong{display:block;color:#c8cbd0;font-size:12px}.screen-empty small{font-size:9px}.live-badge{position:absolute;left:12px;top:12px;height:27px;padding:0 8px;border-radius:7px;display:flex;align-items:center;gap:6px;color:var(--green);background:rgba(9,11,14,.82);font-size:8px;font-weight:850}.live-badge i{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse 1.6s infinite}.screen-tools{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.controls{display:grid;gap:10px;align-content:start}.control-group{padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.control-group h3{margin:0 0 10px;color:var(--muted);font-size:9px;letter-spacing:.07em;text-transform:uppercase}.control-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px}.control-buttons .btn{min-height:37px;padding:0 8px;font-size:9px}.kv{display:grid}.kv div{min-height:35px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.kv div:first-child{border-top:0}.kv span{color:var(--dim);font-size:9px}.kv b{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.results{max-height:510px;overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.result-row{min-height:43px;padding:8px 11px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.result-row:first-child{border-top:0}.result-row strong{font-size:10px}.result-row small{color:var(--dim);font:8px var(--mono)}.upload-box{padding:18px;border:1px dashed var(--strong);border-radius:12px;display:grid;gap:12px;background:var(--surface)}.toasts{position:fixed;z-index:200;right:18px;bottom:18px;width:min(350px,calc(100vw - 28px));display:grid;gap:8px}.toast{min-height:52px;padding:11px 13px;border:1px solid var(--strong);border-radius:11px;display:flex;align-items:center;gap:10px;background:rgba(24,28,34,.92);box-shadow:var(--shadow);animation:enter .2s ease}.toast i{width:8px;height:8px;border-radius:50%;background:var(--blue)}.toast.success i{background:var(--green)}.toast.error i{background:var(--red)}.toast span{font-size:10px}.spinner{width:16px;height:16px;border:2px solid var(--strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.login-body{overflow:hidden}.login-bg{position:fixed;inset:0;overflow:hidden}.login-bg:after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:58px 58px;opacity:.16;mask-image:radial-gradient(circle at 28% 48%,#000,transparent 65%)}.login-bg i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.17}.login-bg i:first-child{width:520px;height:520px;left:-180px;top:-180px;background:var(--accent)}.login-bg i:last-child{width:440px;height:440px;right:-180px;bottom:-160px;background:var(--blue)}.login-shell{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(420px,.82fr)}.login-story{padding:clamp(30px,5vw,72px);display:flex;flex-direction:column;border-right:1px solid var(--border)}.login-brand{display:flex;align-items:center;gap:11px}.login-brand>div{display:grid}.login-brand strong{font-size:14px}.login-brand small{font-size:9px;color:var(--dim);letter-spacing:.08em}.story-copy{margin-top:clamp(80px,12vh,150px);max-width:700px}.story-copy>span{display:flex;align-items:center;gap:8px;color:var(--green);font-size:9px;font-weight:850;letter-spacing:.15em}.story-copy>span i{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse 1.8s infinite}.story-copy h1{margin:14px 0 0;font-size:clamp(38px,5vw,68px);line-height:.98;letter-spacing:-.06em}.story-copy p{max-width:600px;margin:20px 0 0;color:var(--muted);font-size:clamp(13px,1.2vw,16px)}.screen-mock{width:min(520px,85%);height:205px;margin-top:auto;margin-left:40px;border:1px solid var(--strong);border-radius:14px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow);transform:perspective(900px) rotateY(5deg)}.mock-top{height:36px;padding:0 10px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:5px;background:var(--surface2)}.mock-top i{width:6px;height:6px;border-radius:50%;background:var(--dim)}.mock-top b{margin-left:auto;color:var(--green);font:8px var(--mono)}.mock-grid{height:128px;padding:14px;display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:1fr 1fr;gap:9px}.mock-grid span{border:1px solid var(--border);border-radius:8px;background:var(--surface3)}.mock-grid span:first-child{grid-row:1/-1;background:linear-gradient(135deg,var(--accent-soft),var(--surface3))}.mock-foot{height:41px;padding:0 12px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.mock-foot span{color:var(--dim);font:8px var(--mono)}.mock-foot b{color:var(--green);font-size:8px}.trust{margin-top:18px;display:flex;gap:8px}.trust span{padding:5px 7px;border:1px solid var(--border);border-radius:6px;color:var(--dim);font:8px var(--mono)}.login-panel{position:relative;padding:30px;display:grid;place-items:center;background:rgba(14,16,19,.55);backdrop-filter:blur(18px)}.login-theme{position:absolute;right:28px;top:28px;width:40px;height:40px;border:1px solid var(--border);border-radius:10px;display:grid;place-items:center;background:var(--surface);color:var(--muted)}.login-theme svg{width:17px}.login-card{width:min(410px,100%);padding:30px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);animation:enter .45s ease}.login-head>span{color:var(--accent);font-size:9px;font-weight:850;letter-spacing:.14em}.login-head h2{margin:9px 0 0;font-size:25px;letter-spacing:-.04em}.login-head p{margin:5px 0 0;color:var(--muted);font-size:11px}.login-form{margin-top:23px;display:grid;gap:14px}.login-form label{display:grid;gap:7px}.login-form label>span{color:var(--muted);font-size:10px;font-weight:700}.login-form input{width:100%;height:46px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);outline:none}.login-form .btn{margin-top:3px;width:100%;min-height:47px}.login-form .btn svg{margin-left:auto}.form-alert{margin-top:16px;padding:10px;border:1px solid rgba(227,111,104,.2);border-radius:9px;color:var(--red);background:var(--red-soft);font-size:10px}.access-note{margin:18px 0 0;display:flex;justify-content:center;align-items:center;gap:7px;color:var(--dim);font-size:8px}.access-note i{width:6px;height:6px;border-radius:50%;background:var(--green)}.version{position:absolute;bottom:22px;color:var(--dim);font:8px var(--mono)}@media(max-width:1100px){:root{--sidebar:214px}.metrics{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr}.class-status{grid-template-columns:repeat(3,1fr)}.deploy{grid-template-columns:1fr}.deploy-side{grid-template-columns:1fr 1fr}.screen-layout{grid-template-columns:1fr}.controls{grid-template-columns:repeat(2,1fr)}.login-shell{grid-template-columns:1fr 420px}}@media(max-width:820px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:60;left:0;width:244px;transform:translateX(-102%);transition:.22s;box-shadow:var(--shadow)}.sidebar.open{transform:none}.mobile-menu{display:grid}.topbar{padding:12px 16px}.view{padding:20px 16px 36px}.connection{display:none}.top-actions>.btn{width:40px;padding:0}.top-actions>.btn span{display:none}.login-shell{display:block}.login-story{display:none}.login-panel{min-height:100vh}.settings-grid{grid-template-columns:1fr}}@media(max-width:600px){.metrics,.quick-grid,.class-status,.deploy-side,.controls{grid-template-columns:1fr}.hero{padding:20px}.toolbar{align-items:stretch;flex-direction:column}.search{min-width:0;max-width:none}.segments{overflow:auto}.build-form{grid-template-columns:1fr}.build-actions,.progress{grid-column:auto}.build-state{width:100%;margin-left:0}.modal-layer{padding:0}.device-modal{width:100%;height:100%;max-height:none;border:0;border-radius:0}.screen-stage{min-height:250px}.audit-row{grid-template-columns:1fr;gap:3px}.login-panel{padding:18px}.login-card{padding:24px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* Lab Control v2.1 classroom tools */
.lesson-strip {
  display: grid;
  grid-template-columns: minmax(190px, auto) 1fr auto;
  align-items: center;
  gap: 22px;
  margin-top: 14px;
  padding: 18px 20px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background:
    linear-gradient(120deg, var(--accent-soft), transparent 58%),
    var(--surface);
  box-shadow: var(--shadow-soft);
}
.timer-copy {
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  column-gap: 13px;
}
.timer-copy > span {
  grid-column: 1 / -1;
  color: var(--accent);
  font: 700 9px var(--mono);
  letter-spacing: 0.16em;
}
.timer-copy strong {
  margin-top: 4px;
  color: var(--text);
  font: 700 30px var(--mono);
  letter-spacing: -0.04em;
}
.timer-copy small {
  color: var(--muted);
  font-size: 10px;
}
.timer-presets,
.timer-actions,
.selection-actions,
.panel-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.timer-presets {
  justify-content: center;
}
.selection-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 14px 0 18px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--border));
  border-radius: 12px;
  background: var(--accent-soft);
}
.selection-bar > div:first-child {
  display: grid;
  gap: 3px;
}
.selection-bar strong {
  color: var(--text);
  font-size: 12px;
}
.selection-bar small {
  color: var(--muted);
  font-size: 9px;
}
.device-card {
  position: relative;
}
.device-card.is-picked {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px var(--accent-soft), var(--shadow-soft);
}
.pick {
  position: absolute;
  right: 13px;
  bottom: 13px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  color: transparent;
  background: var(--surface2);
  font-size: 12px;
  font-weight: 800;
  transition: 0.16s ease;
}
.pick:hover,
.pick.active {
  border-color: var(--accent);
  color: white;
  background: var(--accent);
  transform: translateY(-1px);
}
.device-card .flags {
  padding-right: 34px;
}
.tag.accent {
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
  color: var(--accent);
  background: var(--accent-soft);
}
.danger-text {
  color: var(--red);
}
.panel-actions {
  justify-content: flex-end;
}
@media (max-width: 820px) {
  .lesson-strip {
    grid-template-columns: 1fr auto;
  }
  .timer-presets {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
  }
  .selection-bar {
    align-items: flex-start;
    flex-direction: column;
  }
}
@media (max-width: 520px) {
  .lesson-strip {
    grid-template-columns: 1fr;
  }
  .timer-presets,
  .timer-actions {
    grid-column: auto;
    grid-row: auto;
    justify-content: flex-start;
  }
  .selection-actions .btn {
    flex: 1 1 140px;
  }
  .panel-actions {
    width: 100%;
    justify-content: flex-start;
  }
}
