:root{--bg: #0f1419;--bg-elevated: #1a222c;--bg-soft: #243040;--border: #2e3d4f;--text: #e8eef4;--muted: #8b9aab;--accent: #3d9a78;--accent-hover: #4db88f;--danger: #d45c5c;--warn: #d4a017;--online: #3d9a78;--offline: #6b7a8a;--radius: 10px;--font: "DM Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);background:radial-gradient(1200px 600px at 10% -10%,#1a3a32 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#1e2a3a 0%,transparent 50%),var(--bg);color:var(--text);line-height:1.45}a{color:var(--accent-hover);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:none;border-radius:8px;padding:.55rem 1rem;background:var(--accent);color:#fff;font-weight:600}button:hover{background:var(--accent-hover)}button.secondary{background:var(--bg-soft);color:var(--text)}button.danger{background:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;padding:.6rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem}.field{margin-bottom:1rem}.shell{max-width:1180px;margin:0 auto;padding:1.25rem 1.5rem 3rem}.shell:has(.remote-page){max-width:none;width:100%;height:100vh;padding:.6rem .85rem .75rem;display:flex;flex-direction:column;box-sizing:border-box}.shell:has(.remote-page) .topbar{margin-bottom:.5rem;padding-bottom:.5rem;flex-shrink:0}.topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.75rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:1.25rem;letter-spacing:-.02em}.brand span{color:var(--accent-hover)}.panel{background:color-mix(in srgb,var(--bg-elevated) 92%,transparent);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.device-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);transition:border-color .15s}.device-row:hover{border-color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .55rem;border-radius:999px;background:var(--bg-soft)}.badge.online{color:var(--online)}.badge.offline{color:var(--offline)}.badge:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.tag-list{display:flex;flex-wrap:wrap;gap:.35rem}.tag{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;background:var(--bg-soft);color:var(--accent-hover);border:1px solid var(--border)}a.tag:hover{border-color:var(--accent-hover)}.check-list{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}.check-list label{display:inline-flex;align-items:center;gap:.45rem;margin:0;color:var(--text);font-size:.9rem;cursor:pointer}.check-list input{width:auto;margin:0;accent-color:var(--accent)}.actions a.active{color:var(--accent-hover);font-weight:700}.mono{font-family:var(--mono);font-size:.85rem}.muted{color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:.5rem}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{text-align:left;padding:.55rem .4rem;border-bottom:1px solid var(--border)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(400px,100%)}.login-card h1{margin:0 0 .35rem;font-size:1.6rem;letter-spacing:-.03em}.error{color:var(--danger);margin-bottom:.75rem;font-size:.9rem}.remote-stage{position:relative;background:#000;border-radius:var(--radius);overflow:hidden;aspect-ratio:9 / 16;max-height:70vh;margin:0 auto}.remote-page{flex:1;min-height:0;display:flex;flex-direction:column;gap:.5rem}.remote-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .85rem;flex-shrink:0}.remote-toolbar h2{margin:0;font-size:1.05rem}.remote-stage-fill{flex:1;min-height:0;width:100%;background:#000;border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center}.remote-canvas{display:block;outline:none}.remote-stage video{width:100%;height:100%;object-fit:contain;touch-action:none}.map-embed{width:100%;height:240px;border:0;border-radius:8px;background:var(--bg-soft)}.qr-box{text-align:center}.qr-box img{max-width:280px;width:100%;background:#fff;border-radius:8px;padding:.75rem}h2{margin:0 0 1rem;font-size:1.15rem}h3{margin:0 0 .75rem;font-size:.75rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.device-hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1.25rem 1.5rem}.device-hero-id{flex:1 1 240px;min-width:0}.device-hero-id .back-link{display:inline-block;margin-bottom:.65rem;font-size:.9rem}.device-hero-name{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.device-hero-name input{flex:1 1 200px;max-width:360px;font-size:1.2rem;font-weight:700;letter-spacing:-.02em;padding:.5rem .7rem}.device-hero-meta{margin:.55rem 0 0;font-size:.8rem}.device-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;flex-shrink:0}.device-hero-actions a{display:inline-flex}.kiosk-form{display:flex;flex-direction:column;gap:1.25rem}.kiosk-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.kiosk-toolbar-left{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem}.kiosk-enable{display:inline-flex;align-items:center;gap:.5rem;margin:0;font-size:.95rem;font-weight:600;color:var(--text);cursor:pointer}.kiosk-enable input{width:auto;margin:0;accent-color:var(--accent)}.kiosk-mode-tabs{display:inline-flex;padding:3px;border-radius:8px;background:var(--bg);border:1px solid var(--border)}.kiosk-mode-tabs button{padding:.4rem .85rem;border-radius:6px;background:transparent;color:var(--muted);font-weight:600;font-size:.85rem}.kiosk-mode-tabs button.active{background:var(--bg-soft);color:var(--text)}.kiosk-mode-tabs button:hover:not(.active){color:var(--text);background:transparent}.kiosk-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1.5rem}@media(max-width:800px){.kiosk-body{grid-template-columns:1fr}}.kiosk-main,.kiosk-side{display:flex;flex-direction:column;gap:.85rem;min-width:0}.kiosk-side{padding:1rem;border-radius:8px;background:var(--bg);border:1px solid var(--border)}.kiosk-checks{display:flex;flex-direction:column;gap:.65rem}.kiosk-checks label{display:flex;align-items:center;gap:.5rem;margin:0;color:var(--text);font-size:.9rem;cursor:pointer}.kiosk-checks input{width:auto;margin:0;accent-color:var(--accent)}.kiosk-shortcuts{display:flex;flex-wrap:wrap;gap:.4rem}.kiosk-shortcuts button{font-size:.8rem;padding:.35rem .65rem}.kiosk-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;border-top:1px solid var(--border);padding-top:1rem}.hint{margin:0;font-size:.8rem;color:var(--muted)}
