:root{color-scheme:light;--base:#F7F6FA;--surface:#FFFFFF;--surface-hover:#FAF8FD;--text:#1B1726;--text-secondary:#5E5870;--text-faint:#6F6980;--accent:#5B2E91;--btn:#4E2680;--ok:#1F9D6B;--busy:#D98A0B;--fail:#C2304D;--ok-text:#12724C;--busy-text:#8A5300;--fail-text:#A8263F;--border:#D9D4E3;--border-soft:#ECE9F2;--screen:#101014;--bezel:#2B2A33;--muted-fill:#ECE9F2;--accent-soft:#8F6BC2;--warn-bg:#FFF4E0;--warn-border:#F0C27A;--warn-text:#5C3A00;--danger:#C2304D;--danger-text:#A8263F;--danger-bg:#FDF2F4;--shadow:0 12px 32px rgba(62,32,97,.14);--radius:14px;--font-display:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;--font-body:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;--font-mono:"IBM Plex Mono","SF Mono",Consolas,monospace}:root[data-theme=dark]{color-scheme:dark;--base:#13141A;--surface:#1C1E27;--surface-hover:#23252F;--text:#E7E8EE;--text-secondary:#A3A5B6;--text-faint:#8A8C9E;--accent:#B794F6;--btn:#7445B0;--ok:#36D399;--busy:#FFB648;--fail:#FF6B81;--ok-text:#36D399;--busy-text:#FFB648;--fail-text:#FF6B81;--border:#343746;--border-soft:#262833;--screen:#0A0A0D;--bezel:#333542;--muted-fill:#2A2C37;--accent-soft:#8B74B5;--warn-bg:#33280F;--warn-border:#6B5320;--warn-text:#FFD58A;--danger:#FF6B81;--danger-text:#FF8FA0;--danger-bg:#3A1E25;--shadow:0 12px 32px rgba(0,0,0,.35)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--base);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5}.app-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;padding:8px 24px;min-height:60px;color:#fff;background:linear-gradient(90deg,#3b1c5a,#4a2470)}.brand{font-family:var(--font-display);font-size:21px;font-weight:800;letter-spacing:-.03em;margin:0}.brand span{color:#c9a6f2}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.icon-btn{width:44px;height:44px;border-radius:50%;padding:0;cursor:pointer;color:#fff;border:1px solid rgba(255,255,255,.22);background:#ffffff14;display:inline-flex;align-items:center;justify-content:center}.user-pill{display:flex;align-items:center;gap:9px;min-height:44px;padding:6px 16px 6px 6px;border:1px solid rgba(255,255,255,.22);background:#ffffff14;border-radius:999px;font-size:13.5px;font-weight:500}.user-pill .avatar{width:30px;height:30px;border-radius:50%;background:#2a1340;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.header-btn{min-height:44px;padding:0 18px;border-radius:999px;cursor:pointer;color:#fff;border:1px solid rgba(255,255,255,.3);background:none;font-family:var(--font-body);font-size:13.5px;font-weight:600}.icon-btn:hover,.header-btn:hover{background:#ffffff29}.btn{min-height:44px;padding:0 20px;border-radius:999px;border:none;cursor:pointer;background:var(--btn);color:#fff;font-family:var(--font-body);font-size:13.5px;font-weight:700}.btn:hover{filter:brightness(1.1)}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:none;border:1px solid var(--border);color:var(--text)}main.content{padding:40px 24px 64px;max-width:1100px;margin:0 auto}h2.panel-title{font-family:var(--font-display);font-size:40px;font-weight:800;letter-spacing:-.035em;line-height:1.1;margin:0}.panel-sub{color:var(--text-secondary);font-size:15px;margin:8px 0 28px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin:0 0 12px}.g-plum{background:linear-gradient(160deg,#4e2a6b,#2b1540)}.g-teal{background:linear-gradient(160deg,#1a7d6c,#0f5146)}.g-violet{background:linear-gradient(160deg,#7c48be,#552e8e)}.row-list{display:flex;flex-direction:column;border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden}.row{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;padding:14px 18px 14px 22px;background:var(--surface);border-bottom:1px solid var(--border-soft)}.row:last-child{border-bottom:none}.row:hover{background:var(--surface-hover)}.row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--rail,var(--text-faint))}.row .device-name{font-weight:600;font-size:15px;min-width:170px}.row .serial{font-family:var(--font-mono);font-size:12.5px;color:var(--text-faint);min-width:130px}.status{display:flex;align-items:center;gap:8px;font-size:13.5px;min-width:200px}.dot{width:8px;height:8px;border-radius:50%;background:var(--dotcolor,var(--ok));flex-shrink:0}.dot.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.spacer{flex:1}.mirror-frame{background:var(--screen);border:2px solid var(--bezel);border-radius:16px;padding:6px;flex-shrink:0;overflow:hidden;max-width:100%}.mirror-frame.portrait{width:200px;aspect-ratio:9/18}.mirror-frame.landscape{width:380px;aspect-ratio:18/9}.mirror-frame iframe{width:100%;height:100%;border:none;border-radius:10px;background:#fff}.mirror-stage{width:100%;height:72vh;border:1px solid var(--border-soft);border-radius:18px;background:#fff}.back-row{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-size:14.5px;color:var(--text-secondary)}.back-row button{background:none;border:none;color:var(--accent);font-family:var(--font-body);font-size:14.5px;font-weight:700;cursor:pointer;padding:0;min-height:44px}.back-row button:hover{text-decoration:underline}.mirror-stage-wrap{position:relative}.account-menu,.focus-btn,.rotate-hint{display:none}.exit-focus{position:absolute;z-index:2;top:calc(10px + env(safe-area-inset-top));left:calc(10px + env(safe-area-inset-left));display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;cursor:pointer;background:#14141ab8;border:1px solid rgba(255,255,255,.28);color:#fff;font-family:var(--font-body);font-size:13.5px;font-weight:700}.role-tag{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:#ffffff29;color:#fff}.user-pill:has(.role-tag){padding-right:8px}.access-note{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;margin:0 0 20px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text-secondary);font-size:13.5px}.access-note svg{flex-shrink:0;margin-top:2px;color:var(--accent)}.access-note b{color:var(--text)}.btn:has(svg){display:inline-flex;align-items:center;gap:7px}.btn[aria-disabled=true]{background:var(--muted-fill);color:var(--text-faint);border:1px solid var(--border);cursor:not-allowed}.btn[aria-disabled=true]:hover{filter:none}.notice{margin:12px 2px 0;font-size:13px;color:var(--text-secondary)}.view-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:var(--muted-fill);color:var(--text);font-size:12.5px;font-weight:700;white-space:nowrap}.view-chip.on-gradient{background:#00000047;color:#fff}.stream-caption{margin:10px 2px 0;font-size:13px;color:var(--text-secondary);display:flex;gap:8px;align-items:center}.empty-state{border:1.5px dashed var(--border);border-radius:var(--radius);padding:28px 20px;text-align:center;color:var(--text-secondary);font-size:14px}.runs-list{display:grid;gap:12px;min-width:0}.runs-list .eyebrow{margin:0}.runs-caption{margin:0;font-size:13px;color:var(--text-faint)}.run{display:grid;gap:8px;padding:12px 14px;background:var(--surface);border:1px solid var(--border-soft);border-left:4px solid var(--text-faint);border-radius:12px}.run.live{border-left-color:var(--busy)}.run.pass{border-left-color:var(--ok)}.run.fail{border-left-color:var(--fail)}.run-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px 10px}.run-name{font-weight:700;font-size:15px;overflow-wrap:anywhere}.run-pill{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--muted-fill);white-space:nowrap}.run-pill.live{color:var(--busy-text)}.run-pill.pass{color:var(--ok-text)}.run-pill.fail{color:var(--fail-text)}.run-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--text-faint)}.run-jobs{display:grid;gap:4px;padding-top:8px;border-top:1px solid var(--border-soft)}.run-job{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;font-size:13px}.run-job .t{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-job .dev{font-size:12px;color:var(--text-faint)}.mono{font-family:var(--font-mono)}.run .btn{min-height:40px}a.btn.secondary{display:inline-flex;color:var(--text)}.run-panel{display:grid;gap:14px;align-content:start;padding:16px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius)}.run-panel h3{margin:0;font-family:var(--font-display);font-size:18px;font-weight:800;letter-spacing:-.02em}.run-panel fieldset{display:grid;gap:14px;margin:0;padding:0;border:none;min-width:0}.run-panel fieldset:disabled{opacity:.6}.field{display:grid;gap:6px}.field>span:first-child{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.run-panel select{width:100%;min-height:44px;padding:0 10px;border:1px solid var(--text-faint);border-radius:10px;background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:14px}.run-panel select:focus{outline:2px solid var(--accent);outline-offset:1px}.opt{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;cursor:pointer;border:1px solid var(--border);border-radius:10px;font-size:13.5px}.opt.on{border-color:var(--accent);background:var(--surface-hover)}.opt small{display:block;font-size:12px;color:var(--text-faint)}.opt input{margin-top:3px;accent-color:var(--accent)}.opt:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}fieldset:disabled .opt{cursor:not-allowed}.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sub-opts{display:grid;gap:6px;margin-left:26px}.hint{font-size:12.5px;color:var(--text-secondary)}.run-panel .error-text,.run-panel .notice{margin:0}.picked{display:grid;gap:6px}.picked-empty{padding:12px;border:1px dashed var(--border);border-radius:10px;text-align:center;font-size:13px;color:var(--text-faint)}.pick{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 6px 6px 10px;border:1px solid var(--border);border-radius:10px;background:var(--base);font-size:13.5px}.pick .n{font-size:12px;color:var(--text-faint)}.pick .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick .nm small{margin-left:6px;font-size:12px;color:var(--text-faint)}.pick-actions{display:flex}.icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;cursor:pointer;border:1px solid transparent;border-radius:8px;background:none;color:var(--text-secondary);font-size:15px}.icon-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border)}.icon-btn:disabled{opacity:.3;cursor:default}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.adder{border:1px solid var(--text-faint);border-radius:10px;background:var(--surface);overflow:hidden}.adder input[type=search]{width:100%;min-height:42px;padding:0 10px;border:none;border-bottom:1px solid var(--border-soft);background:none;color:var(--text);font-family:var(--font-body);font-size:14px}.adder input[type=search]:focus{outline:2px solid var(--accent);outline-offset:-2px}.adder-list{max-height:216px;overflow-y:auto;padding:4px 0}.adder-group{padding:8px 12px 4px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.cand{display:flex;gap:10px;align-items:center;padding:6px 12px;font-size:13.5px;cursor:pointer}.cand:hover{background:var(--surface-hover)}.cand:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}.cand input{accent-color:var(--accent)}.cand .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cand small{margin-left:auto;font-size:12px;color:var(--text-faint);white-space:nowrap}fieldset:disabled .cand,fieldset:disabled .icon-btn{cursor:not-allowed}.plan-note{padding:9px 11px;border-radius:10px;background:var(--muted-fill);font-size:12.5px;color:var(--text-secondary)}.more-jobs{justify-self:start;padding:2px 0;border:none;background:none;cursor:pointer;font-family:var(--font-body);font-size:12.5px;font-weight:700;color:var(--accent)}.more-jobs:hover{text-decoration:underline}.more-jobs:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.viewer-note{padding:9px 11px;border-radius:10px;background:var(--muted-fill);font-size:12.5px;color:var(--text-secondary)}.layout{display:flex;flex-wrap:wrap;gap:28px;max-width:1240px;margin:0 auto;padding:28px 24px 64px;align-items:flex-start}.layout main.content{flex:999 1 560px;min-width:0;max-width:none;margin:0;padding:0}.side-wrap{flex:1 1 240px;max-width:290px}.side{display:flex;flex-direction:column;gap:2px}.side-item{display:flex;gap:10px;align-items:flex-start;width:100%;min-height:44px;padding:9px 12px;text-align:left;cursor:pointer;border:1px solid transparent;border-radius:12px;background:none;color:var(--text);font-family:var(--font-body)}.side-item:hover{background:var(--muted-fill)}.side-item.on{background:var(--surface);border-color:var(--border-soft);box-shadow:inset 3px 0 0 var(--accent)}.side-item:focus-visible,.side-cat-head:focus-visible,.home-item:focus-visible,.link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.side-item .t{display:flex;align-items:center;gap:6px;font-weight:700;font-size:13.5px}.side-item .d{display:block;font-size:12px;color:var(--text-secondary)}.ico{flex-shrink:0;margin-top:1px;color:var(--accent)}.side-cat-head{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:36px;margin-top:10px;padding:0 12px;border:none;background:none;cursor:pointer;font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary)}.side-cat.closed .side-item{display:none}.caret{transition:transform .12s ease;transform:rotate(-90deg)}.caret.open{transform:none}.who-line{margin:0 12px 8px;font-size:12.5px;color:var(--text-faint)}.who-line b{color:var(--text-secondary)}.hold{font-size:11px;font-weight:700;color:#fff;background:var(--btn);border-radius:999px;padding:0 7px;white-space:nowrap}.link{padding:0;border:none;background:none;cursor:pointer;font:inherit;font-weight:700;color:var(--accent);min-height:24px}.link:hover{text-decoration:underline}.legend{margin:10px 2px 0;font-size:12.5px;color:var(--text-faint)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.home-main{padding-bottom:64px}.home-main>.error-text,.home-main>.notices,.home-main>.banner{max-width:1192px;margin-left:auto;margin-right:auto}.home-main>.notices{padding:16px 24px 0;margin-bottom:0}.home-hero{color:#fff;padding:44px 24px 96px;background:linear-gradient(120deg,#3b1c5a,#5b2e91 55%,#1a7d6c)}.home-hero-in{max-width:1192px;margin:0 auto}.home-hero h2{margin:0;font-family:var(--font-display);font-size:40px;font-weight:800;letter-spacing:-.035em;line-height:1.1}.home-hero p{margin:10px 0 0;font-size:15.5px;color:#ffffffe0;max-width:640px}.home-hero .who-line{margin:12px 0 0;color:#fffc}.home-hero .who-line b{color:#fff}.home-kpis{position:relative;max-width:1192px;margin:-64px auto 0;padding:0 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.kpi{background:var(--surface);border:1px solid var(--border-soft);border-radius:16px;padding:16px 18px;box-shadow:var(--shadow)}.kpi .l{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}.kpi .n{font-family:var(--font-display);font-size:32px;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-top:6px}.kpi .n.name{font-size:20px;margin-top:10px}.kpi .f{font-size:12.5px;color:var(--text-secondary);margin-top:4px}.kpi.mine{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent),var(--shadow)}.home-panels{max-width:1192px;margin:28px auto 0;padding:0 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.home-panel{background:var(--surface);border:1px solid var(--border-soft);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:18px}.home-panel h3{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary)}.home-item{display:flex;align-items:center;gap:14px;width:100%;min-height:44px;padding:12px;text-align:left;cursor:pointer;border:none;border-radius:12px;background:none;color:var(--text);font-family:var(--font-body)}.home-item:hover{background:var(--surface-hover)}.home-item .badge{width:40px;height:40px;border-radius:12px;background:var(--muted-fill);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.home-item .it{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14.5px}.home-item .id{display:block;font-size:12.5px;color:var(--text-secondary)}.home-item .chev{margin-left:auto;color:var(--text-faint);font-size:20px}.adm{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);border:1px solid var(--border);border-radius:999px;padding:0 7px}.status small{display:block;font-size:12.5px;color:var(--text-secondary);font-weight:400}.status>span:last-child{font-weight:600}.row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row{gap:10px 16px}.row-actions .btn{padding:0 16px}.row .status{min-width:190px}.btn.danger{background:var(--surface);border:1px solid var(--danger);color:var(--danger-text)}.btn.danger-solid{background:var(--danger);color:#fff}:root[data-theme=dark] .btn.danger-solid{color:#13141a}.confirm-inline{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;padding:4px 4px 4px 12px;border-radius:999px;background:var(--danger-bg)}.confirm-inline>span{font-size:13px;font-weight:600;color:var(--danger-text)}.tm-top{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;margin-bottom:20px}.tm-top .panel-sub{margin-bottom:0}.seg-toggle{display:inline-flex;padding:4px;gap:2px;border-radius:999px;background:var(--muted-fill)}.seg-toggle button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 16px;border:none;border-radius:999px;cursor:pointer;background:none;color:var(--text-secondary);font-family:var(--font-body);font-size:13.5px;font-weight:700}.seg-toggle button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #3e20612e}.seg-toggle button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}.tm-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.tm-card-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:12px 18px;color:#fff}.tm-card-head .name{font-family:var(--font-display);font-weight:800;font-size:16.5px;letter-spacing:-.02em}.tm-card-head .serial{font-family:var(--font-mono);font-size:12px;color:#fffc}.tm-stage{height:240px;display:flex;align-items:center;justify-content:center;background:var(--surface-hover);border-bottom:1px solid var(--border-soft)}.tm-stage .mirror-frame.landscape{width:320px}.tm-stage .mirror-frame.portrait{width:auto;height:220px}.tm-card-body{padding:14px 18px 18px;display:flex;flex-direction:column;gap:12px}.tm-card-body .status{min-width:0}.tm-actions{display:flex;gap:8px;flex-wrap:wrap}.tm-actions .btn{flex:1 1 140px;justify-content:center}.resv-bar{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin-bottom:16px;padding:12px 16px 12px 20px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden}.resv-bar:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--rail)}.meter{flex:1 1 220px;min-width:180px}.meter-lbl{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:6px}.meter-lbl span:last-child{color:var(--text-secondary);font-weight:500}.track{height:8px;border-radius:999px;background:var(--muted-fill);overflow:hidden}.fill{height:100%;border-radius:999px;background:var(--accent)}.resv-bar .who{display:flex;align-items:center;gap:8px;flex:1 1 260px;font-size:13.5px;font-weight:600}.resv-bar .who small{display:block;font-size:12.5px;font-weight:400;color:var(--text-secondary)}.stream-caption .mono{font-size:12.5px}.caption-short{display:none}.notices{display:grid;gap:10px;margin-bottom:18px}.notices:empty{display:none}.banner{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:12px 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:13.5px}.banner>span{flex:1 1 280px}.banner b{color:var(--text)}.banner.warn{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn-text)}.banner.warn b{color:var(--warn-text)}.banner.warn svg{flex-shrink:0}.banner.fail{border-color:var(--danger);color:var(--danger-text)}.modal{width:calc(100% - 32px);max-width:460px;border:none;background:var(--surface);color:var(--text);border-radius:18px;padding:28px;box-shadow:0 24px 60px #00000059}.modal[open]{display:flex;flex-direction:column;gap:14px}.modal::backdrop{background:#1b17268c}.modal h2{margin:0;font-family:var(--font-display);font-size:22px;font-weight:800;letter-spacing:-.02em}.modal p{margin:0;color:var(--text-secondary);font-size:14.5px}.modal-icon{width:48px;height:48px;border-radius:14px;background:var(--warn-bg);color:var(--warn-text);display:flex;align-items:center;justify-content:center}.modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:6px}.table-box{overflow-x:auto;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface)}.resv-table{width:100%;min-width:600px;border-collapse:collapse}.resv-table th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);padding:12px 16px;border-bottom:1px solid var(--border-soft)}.resv-table td{padding:12px 16px;border-bottom:1px solid var(--border-soft);vertical-align:middle;font-size:14px}.resv-table tr:last-child td{border-bottom:none}.resv-table small{color:var(--text-secondary)}.serial-sm{font-size:12.5px;color:var(--text-faint)}.actions-cell{text-align:right}.run-form-wrap{max-width:560px}.login-page{min-height:100%;display:flex;flex-direction:column}.login-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:56px 16px}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.login-card .card-top{position:relative;overflow:hidden;color:#fff;padding:24px 26px 22px}.login-card .card-top:after{content:"";position:absolute;width:200px;height:200px;border-radius:50%;background:#ffffff14;top:-90px;right:-60px}.login-card .card-top>*{position:relative;z-index:1}.login-card .tile{width:44px;height:44px;border-radius:12px;background:#ffffff24;display:flex;align-items:center;justify-content:center;margin-bottom:28px}.login-card h2{font-family:var(--font-display);font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.15;margin:0}.login-card form{padding:22px 26px 26px;display:flex;flex-direction:column}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--text-secondary);margin-top:12px}.login-card input{background:var(--surface);border:1px solid var(--text-faint);color:var(--text);border-radius:10px;padding:0 12px;min-height:44px;font-family:var(--font-body);font-size:14px;font-weight:400}.login-card input:focus{outline:2px solid var(--accent);outline-offset:1px}.error-text{color:var(--fail);font-size:13px;margin-top:10px}.sso-body{padding:22px 26px 26px;display:flex;flex-direction:column;gap:16px}.sso-body p{margin:0;font-size:14px;line-height:1.5;color:var(--text-secondary)}a.btn{display:flex;align-items:center;justify-content:center;text-decoration:none}a.btn:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:640px),(max-height:500px){.app-header{flex-wrap:nowrap;min-height:52px;padding:4px 8px 4px 16px}.brand{font-size:17px}.header-actions{gap:6px;flex-wrap:nowrap}.user-pill,.header-btn{display:none}.account-menu{display:block;position:relative}.avatar-btn{width:44px;height:44px;border-radius:50%;padding:0;cursor:pointer;color:#fff;border:1px solid rgba(255,255,255,.22);background:#2a1340;font-family:var(--font-body);font-size:12px;font-weight:700}.account-pop{position:absolute;right:0;top:52px;z-index:20;min-width:180px;padding:8px;display:flex;flex-direction:column;gap:4px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.account-pop span{padding:8px 10px;font-size:13.5px;font-weight:600;color:var(--text-secondary)}.account-pop span.role{padding:0 10px 6px;font-size:12px;font-weight:500;color:var(--text-faint)}.account-pop button{min-height:44px;padding:0 10px;text-align:left;border:none;border-radius:8px;cursor:pointer;background:none;color:var(--text);font-family:var(--font-body);font-size:14px;font-weight:600}.account-pop button:hover{background:var(--surface-hover)}.dash.mirror-page{height:100dvh;display:flex;flex-direction:column}.dash.mirror-page main.content{flex:1 1 auto;min-height:0;width:100%;margin:0;padding:0;max-width:none;display:flex;flex-direction:column}.mirror-open{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.mirror-open .back-row{margin:0;padding:4px 8px 4px 4px;gap:8px;background:var(--surface);border-bottom:1px solid var(--border-soft)}.mirror-open .back-row>button:first-child{min-width:44px;font-size:18px;color:var(--accent)}.back-label,.crumb-sep{display:none}.crumb-name{flex:1 1 auto;font-weight:700;font-size:15px;color:var(--text)}.back-row .focus-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:none;border-radius:999px;cursor:pointer;background:var(--btn);color:#fff;font-family:var(--font-body);font-size:13.5px;font-weight:700}.mirror-stage-wrap{flex:1 1 auto;min-height:0;background:#000}.mirror-open .stream-caption{margin:0;padding:10px 16px;background:var(--surface);border-top:1px solid var(--border-soft)}.crumb-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.view-chip{padding:4px 10px;font-size:12px}.mirror-stage{height:100%;border:none;border-radius:0;background:#000}.mirror-open.focus .mirror-stage-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100}.mirror-open.focus .stream-caption{display:none}}@media (max-width:640px) and (orientation:portrait){.rotate-hint{display:block;position:absolute;left:16px;right:68px;bottom:16px;margin:0;pointer-events:none;padding:10px 14px;border-radius:12px;background:#ffffff1a;color:#e7e8ee;font-size:13px;line-height:1.45;text-align:center}}@media (max-width:640px),(max-height:500px){.layout{padding:12px 16px 48px;gap:16px}.side-wrap{flex:1 1 100%;max-width:none;min-width:0}.side{flex-direction:row;gap:6px;overflow-x:auto;padding-bottom:4px}.side-cat{display:contents}.side-cat.closed .side-item{display:flex}.side-cat-head,.side-item .d,.side .who-line{display:none}.side-item{width:auto;flex-shrink:0;align-items:center;white-space:nowrap;border-color:var(--border-soft);background:var(--surface)}.side-item.on{box-shadow:inset 0 -3px 0 var(--accent)}.home-hero{padding:28px 16px 84px}.home-hero h2{font-size:30px}.home-kpis,.home-panels{padding:0 16px}.dash.mirror-page .layout{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;flex-wrap:nowrap;gap:0;padding:0;max-width:none}.dash.mirror-page .side-wrap{display:none}.dash.mirror-page .notices{margin:0;padding:8px 8px 0}.mirror-open .resv-bar{margin:0;border-radius:0;border-width:0 0 1px;padding:8px 12px 8px 16px;gap:8px 12px}.mirror-open .resv-bar .btn{min-height:40px;padding:0 14px}.mirror-open.focus .resv-bar{display:none}.mirror-open .resv-bar .meter{flex:1 1 auto;min-width:0}.mirror-open .resv-bar .track,.mirror-open .meter-lbl span:last-child{display:none}.mirror-open .meter-lbl{margin:0}.mirror-open .resv-bar .who{flex:1 1 auto;min-width:0}.caption-long{display:none}.caption-short{display:inline}}
