:root{--bg: #0d0f17;--panel: #161924;--panel-2: #1d2030;--border: #2a2e42;--text: #e6e8ef;--muted: #7a8194;--accent: #4ade80;--warn: #facc15;--bad: #f87171;--link: #60a5fa}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.app{display:grid;grid-template-columns:220px 1fr;height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{padding:16px;border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:15px;letter-spacing:.3px}.presence{margin-top:6px;font-size:11px;color:var(--muted)}.presence.ok{color:var(--accent)}.presence.off{color:var(--bad)}.platform-nav{display:flex;flex-direction:column;padding:8px;gap:2px;overflow-y:auto}.platform-btn{display:flex;align-items:center;gap:10px;padding:8px 10px;background:transparent;color:var(--text);border:1px solid transparent;border-radius:6px;cursor:pointer;font-size:13px;text-align:left}.platform-btn:hover:not(:disabled){background:var(--panel-2);border-color:var(--border)}.platform-btn.active{background:var(--panel-2);border-color:var(--link)}.platform-btn:disabled{opacity:.5;cursor:not-allowed}.platform-btn .icon{width:20px;text-align:center;font-weight:700}.main{display:flex;flex-direction:column;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--panel)}.topbar h1{margin:0;font-size:14px;font-weight:600;color:var(--muted)}.content{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:18px}.empty{background:var(--panel);border:1px dashed var(--border);border-radius:8px;padding:40px;text-align:center;color:var(--muted)}.status-bar{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 8px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border)}.pill.ok{color:var(--accent);border-color:#4ade804d}.pill.off{color:var(--bad);border-color:#f871714d}.pill.loading{color:var(--warn);border-color:#facc154d}.pill.mute{color:var(--muted)}.live-view{display:flex;flex-direction:column;gap:8px}.live-frame{position:relative;background:#000;border:1px solid var(--border);border-radius:8px;overflow:hidden;aspect-ratio:16 / 9;min-height:360px}.live-frame video{display:block;width:100%;height:100%;object-fit:contain}.live-overlay{position:absolute;inset:0;cursor:crosshair;outline:none;background:transparent}.live-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);pointer-events:none}.live-placeholder.error{color:var(--bad)}.live-info{display:flex;gap:16px;font-size:12px;color:var(--muted)}.live-info strong{color:var(--text)}.jobs-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 12px}.jobs-panel summary{cursor:pointer;font-weight:600;padding:4px 0;color:var(--muted)}.jobs-grid{margin-top:8px;display:grid;grid-template-columns:1fr auto auto;gap:6px 12px;align-items:center}.job-row{display:contents}.job-name{font-size:13px}.jobs-grid button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:3px 10px;font-size:11px;cursor:pointer}.jobs-grid button:hover:not(:disabled){border-color:var(--link)}.jobs-grid button:disabled{opacity:.5;cursor:not-allowed}.jobs-log{margin-top:10px;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:8px;font-size:11px;color:var(--muted);white-space:pre-wrap;word-break:break-all}.auth-setup{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg)}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:32px;width:100%;max-width:440px}.auth-card h1{margin:0 0 12px;font-size:18px}.auth-hint{margin:0 0 20px;color:var(--muted);font-size:13px;line-height:1.5}.auth-card form{display:flex;gap:8px;margin-bottom:16px}.auth-card input{flex:1;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 12px;font-size:13px;font-family:ui-monospace,Cascadia Mono,SF Mono,Consolas,monospace}.auth-card input:focus{outline:none;border-color:var(--link)}.auth-card button{background:var(--link);color:#fff;border:none;border-radius:6px;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer}.auth-card button:disabled{opacity:.5;cursor:not-allowed}.auth-foot{margin:0;color:var(--muted);font-size:11px}.auth-foot code{background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-size:10px}
