:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--bg: #f5f7f8;--panel: #ffffff;--panel-soft: #eef3f4;--text: #172426;--muted: #637176;--line: #dbe4e6;--accent: #0f766e;--accent-strong: #0b5f59;--danger: #b42318;--warn: #b7791f;--good: #168246;--shadow: 0 20px 50px rgb(28 48 53 / 12%)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,rgb(15 118 110 / 10%),transparent 42%),linear-gradient(315deg,rgb(183 121 31 / 10%),transparent 36%),var(--bg)}.login-panel{width:min(420px,100%);display:grid;gap:18px;padding:28px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.brand-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:8px;background:var(--text);color:#fff;font-weight:800;letter-spacing:0}.brand-mark.compact{width:38px;height:38px;font-size:.85rem}.eyebrow{margin:0 0 4px;color:var(--accent);font-size:.76rem;font-weight:800;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.15}h2{margin-bottom:0;font-size:1.2rem}h3{margin-bottom:0;font-size:1rem}.login-form,.stack-form{display:grid;gap:14px}label{display:grid;gap:7px;color:var(--muted);font-size:.86rem;font-weight:700}input,select{width:100%;min-height:40px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text)}input[type=range]{padding:0}.primary-button,.secondary-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border-radius:8px;border:1px solid transparent;font-weight:800}.primary-button{padding:0 16px;background:var(--accent);color:#fff}.primary-button:hover{background:var(--accent-strong)}.secondary-button{padding:0 13px;background:#fff;border-color:var(--line);color:var(--text)}.secondary-button:hover,.icon-button:hover{border-color:#b7c7ca;background:var(--panel-soft)}.secondary-button.danger,.icon-button.danger{color:var(--danger)}.icon-button{width:40px;padding:0;background:#fff;border-color:var(--line);color:var(--text)}.form-error,.error-banner{min-height:38px;display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;background:#fff1f0;color:var(--danger);font-weight:700}.login-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:.8rem}.login-meta span,.device-row-meta span,.sidebar-user{display:inline-flex;align-items:center;gap:6px}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:grid;grid-template-rows:auto 1fr auto;gap:22px;padding:20px;border-right:1px solid var(--line);background:#fbfcfc}.sidebar-brand{display:flex;align-items:center;gap:11px}.sidebar-brand strong,.sidebar-brand span{display:block}.sidebar-brand span{margin-top:2px;color:var(--muted);font-size:.82rem}.sidebar-nav{display:grid;align-content:start;gap:6px}.sidebar-nav a{min-height:40px;display:flex;align-items:center;padding:0 11px;border-radius:8px;color:var(--text);font-weight:800;text-decoration:none}.sidebar-nav a.active{background:var(--panel-soft)}.sidebar-user{min-width:0;color:var(--muted);font-weight:700}.main-column{min-width:0;display:grid;grid-template-rows:auto 1fr}.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--line);background:#ffffffd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar h1{font-size:1.25rem}.topbar-actions,.form-footer,.modal-header,.panel-heading,.section-heading,.rename-form{display:flex;align-items:center;gap:10px}.workspace{min-width:0;display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);gap:18px;padding:18px}.device-list-panel,.device-detail,.detail-section{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.device-list-panel{min-height:calc(100vh - 112px);overflow:hidden}.panel-heading,.section-heading{justify-content:space-between;padding:14px;border-bottom:1px solid var(--line)}.device-list{max-height:calc(100vh - 183px);overflow:auto}.device-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:13px 14px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left}.device-row.selected{background:#edf8f7}.device-row-main,.device-row-meta{min-width:0;display:grid;gap:5px}.device-row-main strong,.device-row-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-row-main span,.device-row-meta{color:var(--muted);font-size:.78rem}.status-dot{width:10px;height:10px;margin-top:6px;border-radius:999px;background:var(--danger)}.status-dot.good,.status-pill.good{background:#e8f7ee;color:var(--good)}.status-dot.good{background:var(--good)}.status-dot.warn,.status-pill.warn{background:#fff7e6;color:var(--warn)}.status-dot.warn{background:var(--warn)}.status-pill.bad{background:#fff1f0;color:var(--danger)}.device-detail{min-width:0;display:grid;align-content:start;gap:14px;padding-bottom:14px}.device-detail.empty{min-height:360px;display:grid;place-items:center}.detail-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border-bottom:1px solid var(--line)}.detail-hero h2{overflow-wrap:anywhere;font-size:1.25rem}.status-pill{flex:0 0 auto;padding:7px 10px;border-radius:999px;font-size:.78rem;font-weight:900;text-transform:uppercase}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 14px}.metric{min-width:0;display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfc}.metric span,.metric small,.section-heading span,.inline-message,.empty-state{color:var(--muted)}.metric strong,.metric small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-section{margin:0 14px;overflow:hidden}.rename-form,.command-grid,.slot-list{padding:14px}.rename-form{align-items:end;flex-wrap:wrap}.rename-form label{flex:1 1 260px}.command-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.toggle-line{min-height:40px;display:flex;align-items:center;align-self:end;gap:8px;color:var(--text)}.toggle-line input{width:18px;min-height:18px}.range-value{color:var(--muted);font-weight:800}.form-footer{grid-column:1 / -1;justify-content:flex-end;flex-wrap:wrap}.day-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line)}.day-tabs button{min-height:39px;border:0;border-right:1px solid var(--line);background:#fff;color:var(--muted);font-weight:800}.day-tabs button.active{background:#edf8f7;color:var(--accent)}.slot-list{display:grid;gap:10px}.slot-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 40px;gap:10px;align-items:end}.empty-state{display:grid;place-items:center;min-height:96px;border:1px dashed var(--line);border-radius:8px;background:#fbfcfc;font-weight:800}.secret-code,.secret-output code{display:block;max-width:100%;overflow-x:auto;padding:10px;border-radius:8px;background:#152225;color:#e6fbf7}.secret-output{display:grid;gap:8px;padding:14px}.secret-output span{color:var(--muted);font-size:.8rem;font-weight:800}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:18px;background:#0f181a85;z-index:20}.modal-panel{width:min(560px,100%);max-height:min(720px,calc(100vh - 36px));overflow:auto;border-radius:8px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}.error-banner{margin:16px 18px 0}.loading-overlay{position:fixed;right:18px;bottom:18px;padding:10px 14px;border-radius:8px;background:var(--text);color:#fff;font-weight:800}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1120px){.workspace{grid-template-columns:320px minmax(0,1fr)}.metric-grid,.command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center}.sidebar-nav{grid-column:1 / -1}.workspace{grid-template-columns:1fr}.device-list-panel{min-height:auto}.device-list{max-height:360px}}@media (max-width: 620px){.topbar,.detail-hero,.modal-header{align-items:flex-start;flex-direction:column}.topbar-actions,.rename-form,.form-footer{width:100%}.secondary-button,.primary-button{flex:1 1 auto}.metric-grid,.command-grid,.slot-row{grid-template-columns:1fr}.slot-row .icon-button{width:100%}.day-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}}
