:root{--bg:#f4f5f7;--surface:#fff;--text:#1f2933;--muted:#5b6672;--border:#d5dae0;--accent:#2563eb;--ok:#15803d;--alert:#b91c1c;--ok-bg:#dcfce7;--alert-bg:#fee2e2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#14181d;--surface:#1d232a;--text:#e6eaee;--muted:#9aa5b1;--border:#323b45;--accent:#60a5fa;--ok:#4ade80;--alert:#f87171;--ok-bg:#12301d;--alert-bg:#3b1818}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit;color:inherit}button{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 12px}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:1400px;margin:0 auto;padding:16px}.app-header h1{margin:0;font-size:1.4rem}.app-header p{color:var(--muted);margin:4px 0 16px}.layout{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;display:grid}.sidebar,.content>section,.scene{background:var(--surface);border:1px solid var(--border);border-radius:8px}.sidebar{padding:12px}.content{gap:12px;display:grid}.panel fieldset{border:0;margin:0 0 12px;padding:0}.panel legend{margin-bottom:6px;padding:0;font-weight:600}.field{grid-template-columns:1fr 110px;align-items:center;gap:4px 8px;margin-bottom:6px;display:grid}.field label{font-size:.9rem}.field input,.field select{background:var(--bg);border:1px solid var(--border);border-radius:4px;width:100%;padding:4px 6px}.field input[aria-invalid=true]{border-color:var(--alert)}.unit,.note{color:var(--muted)}.note{margin:0 0 8px;font-size:.85rem}.field-error{color:var(--alert);grid-column:1/-1;margin:0;font-size:.8rem}.banner{background:var(--alert-bg);color:var(--alert);border-radius:6px;margin:0;padding:8px 12px}.scene{position:relative;overflow:hidden}.scene-canvas{width:100%;height:min(60vh,560px);min-height:320px;position:relative;overflow:hidden}.scene-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex;position:absolute;top:8px;right:8px}.toggle{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;display:flex}.scene-label{color:#fff;white-space:nowrap;pointer-events:none;background:#111827d9;border-radius:4px;padding:2px 8px;font-size:.8rem;position:absolute;top:0;left:0}.scene-label-alert{background:#b91c1ceb}.tooltip{color:#fff;pointer-events:none;white-space:nowrap;background:#111827eb;border-radius:4px;padding:4px 8px;font-size:.8rem;line-height:1.35;position:absolute}.scene-hint{color:#fff;background:#0000008c;border-radius:4px;margin:0;padding:2px 8px;font-size:.8rem;position:absolute;bottom:8px;left:8px}.timeline{padding:12px}.timeline-buttons{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.speed{align-items:center;gap:6px;margin-left:8px;display:flex}.clock{font-variant-numeric:tabular-nums;color:var(--muted);margin-left:auto}.timeline input[type=range]{width:100%}.legend{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.legend-bar{background:linear-gradient(90deg,#3b82f6,#facc15,#ef4444);border-radius:4px;flex:1;height:8px}.metrics{gap:12px;padding:12px;display:grid}.metrics dl{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:0;display:grid}.metrics dt{color:var(--muted);font-size:.8rem}.metrics dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.1rem}.ppv{border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:8px 12px;display:flex}.ppv-ok{background:var(--ok-bg);color:var(--ok)}.ppv-alert{background:var(--alert-bg);color:var(--alert)}.ppv-value{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:600}@media (width<=900px){.layout{grid-template-columns:1fr}}.app-title{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.status{border-radius:999px;padding:2px 10px;font-size:.8rem}.status-online{background:var(--ok-bg);color:var(--ok)}.status-offline{background:var(--alert-bg);color:var(--alert)}.plans{border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:12px}.plans h2{margin:0 0 8px;font-size:1rem}.plan-name{grid-template-columns:1fr}.plan-actions{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.plans-error{color:var(--alert);margin:0 0 8px;font-size:.85rem}.plan-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.plan-list li{border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;padding:6px;display:flex}.plan-list li.plan-current{border-color:var(--accent)}.plan-info{flex:1;min-width:0;display:grid}.plan-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plan-meta{color:var(--muted);font-size:.75rem}.plan-list button{padding:3px 8px;font-size:.85rem}.dd-note{color:var(--muted);font-size:.8rem}.metrics .note{margin:0}.sync{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.sync button{padding:2px 10px;font-size:.8rem}.status-good{background:var(--ok-bg);color:var(--ok)}.status-bad{background:var(--alert-bg);color:var(--alert)}.status-neutral{background:var(--bg);color:var(--muted);border:1px solid var(--border)}.conflict{border:1px solid var(--alert);border-radius:6px;margin-bottom:8px;padding:8px}.conflict p{margin:0 0 6px;font-size:.85rem}.sync-settings{border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:8px}.sync-settings .note{margin:0 0 6px}button.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.auth{border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:12px}.auth-tabs{gap:4px;margin-bottom:8px;display:flex}.tab{flex:1;padding:4px 8px;font-size:.85rem}.tab-active{border-color:var(--accent);color:var(--accent);font-weight:600}.auth form button.primary{width:100%;margin-top:4px}.hints,.auth .plans-error ul{color:var(--muted);margin:0 0 8px;padding-left:18px;font-size:.8rem}.auth .plans-error ul{color:var(--alert)}
