:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#0f172a;--surface:#1b2336;--surface-2:#272f42;--border:#334155;--border-strong:#475569;--text:#f8fafc;--text-muted:#94a3b8;--accent:#22c55e;--on-accent:#0f172a;--ok-bg:#14261c;--ok-fg:#86efac;--warn-bg:#2b2110;--warn-fg:#fcd34d;--danger-bg:#2c1618;--danger-fg:#fca5a5;--info-bg:#10222e;--info-fg:#7dd3fc;--ring:#f8fafc;--qr-bg:#fff;--font-sans:"Fira Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Fira Code", ui-monospace, "SF Mono", Menlo, monospace;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lg:18px;--text-xl:22px;--leading:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius:6px;--radius-lg:10px;--row-h:36px;--control-h:36px;--sidebar-w:224px;--topbar-h:56px;--transition:.16s ease}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (prefers-color-scheme:light){:root{--bg:#f1f5f9;--surface:#fff;--surface-2:#e9eef4;--border:#cbd5e1;--border-strong:#94a3b8;--text:#0f172a;--text-muted:#4c5a70;--accent:#15803d;--on-accent:#fff;--ok-bg:#dcfce7;--ok-fg:#14532d;--warn-bg:#fef3c7;--warn-fg:#713f12;--danger-bg:#fee2e2;--danger-fg:#7f1d1d;--info-bg:#e0f2fe;--info-fg:#0c4a6e;--ring:#0f172a}}@media (pointer:coarse){:root{--control-h:44px;--row-h:44px}}@media (prefers-reduced-motion:reduce){:root{--transition:0s}}@font-face{font-family:Fira Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/fira-sans-400.woff2)format("woff2")}@font-face{font-family:Fira Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/fira-sans-500.woff2)format("woff2")}@font-face{font-family:Fira Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fira-sans-600.woff2)format("woff2")}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/fira-code-var.woff2)format("woff2")}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:var(--text-md) / var(--leading) var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}h1,h2,h3{color:var(--text);margin:0;font-weight:600;line-height:1.25}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}p{margin:0}ul,ol{margin:0;padding:0}a{color:var(--text);-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:2px}a:hover{text-decoration-color:currentColor}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:var(--radius)}::selection{background:var(--accent);color:var(--on-accent)}.mono{font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{min-height:var(--control-h);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font-size:var(--text-md);white-space:nowrap;cursor:pointer;transition:background var(--transition), border-color var(--transition);justify-content:center;align-items:center;font-weight:500;display:inline-flex;position:relative}.btn-content{align-items:center;gap:var(--space-2);display:inline-flex}.btn:hover:not(:disabled){background:var(--surface);border-color:var(--border-strong)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn[aria-busy=true] .btn-content{opacity:.25}.btn-spinner{margin:auto;position:absolute;inset:0}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent);border-color:var(--text)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--border)}.btn-danger{background:var(--danger-bg);border-color:var(--danger-bg);color:var(--danger-fg)}.btn-danger:hover:not(:disabled){border-color:var(--danger-fg);background:var(--danger-bg)}.btn-sm{min-height:calc(var(--control-h) - 6px);padding:0 var(--space-2);font-size:var(--text-sm)}.btn-icon{width:var(--control-h);padding:0}.btn-sm.btn-icon{width:calc(var(--control-h) - 6px)}.field{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.field-label{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.02em;text-transform:uppercase;font-weight:500}.field input,.field select,.field textarea{min-height:var(--control-h);padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:var(--text-md);transition:border-color var(--transition)}.field textarea{padding:var(--space-2);resize:vertical}.field input:hover,.field select:hover{border-color:var(--border-strong)}.field-hint{color:var(--text-muted);font-size:var(--text-xs)}.field-error{align-items:center;gap:var(--space-1);color:var(--danger-fg);font-size:var(--text-xs);display:flex}.field-invalid input,.field-invalid select,.field-invalid textarea{border-color:var(--danger-fg)}.input,.select{min-height:var(--control-h);padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:var(--text-md)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);background:var(--surface-2);color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap;border-radius:999px;font-weight:500;display:inline-flex}.badge-ok{background:var(--ok-bg);color:var(--ok-fg)}.badge-warn{background:var(--warn-bg);color:var(--warn-fg)}.badge-danger{background:var(--danger-bg);color:var(--danger-fg)}.badge-info{background:var(--info-bg);color:var(--info-fg)}.card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.card-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex}.card-title{font-size:var(--text-md);font-weight:600}.card-actions{gap:var(--space-2);display:flex}.card-body{padding:var(--space-4)}.card-body:has(>.table-scroll){padding:0}.table-scroll{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{z-index:1;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.02em;text-align:left;text-transform:uppercase;white-space:nowrap;font-weight:600;position:sticky;top:0}.table td{height:var(--row-h);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--surface-2)}.table .is-numeric{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}@media (width<=1600px){.table .is-secondary{display:none}}.empty{align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);color:var(--text-muted);text-align:center;flex-direction:column;display:flex}.empty-title{color:var(--text);font-size:var(--text-md)}.empty-description{max-width:42ch;font-size:var(--text-sm)}.empty-action{margin-top:var(--space-2)}.spinner{animation:.8s linear infinite spinner-turn}@keyframes spinner-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.stack{gap:var(--space-4);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.muted{color:var(--text-muted)}.login{min-height:100dvh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.login-card{gap:var(--space-4);width:100%;max-width:380px;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;display:flex}.login-brand{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);font-weight:500;display:flex}.login-title{font-size:var(--text-xl);letter-spacing:-.02em}.login-totp{font-size:var(--text-lg);letter-spacing:.35em}.login-locked{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius);background:var(--warn-bg);color:var(--warn-fg);font-size:var(--text-sm);display:flex}.login-submit{width:100%;margin-top:var(--space-1)}.dropzone-section{gap:var(--space-3);flex-direction:column;display:flex}.dropzone{align-items:center;gap:var(--space-1);padding:var(--space-5);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);color:var(--text-muted);text-align:center;cursor:pointer;transition:border-color var(--transition), background var(--transition);flex-direction:column;display:flex}.dropzone:hover,.dropzone[data-dragging=true]{border-color:var(--accent);background:var(--surface-2)}.dropzone-title{color:var(--text);font-size:var(--text-md);font-weight:500}.dropzone-hint{font-size:var(--text-xs)}.dropzone-input{opacity:0;width:1px;height:1px;position:absolute}.uploads{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.upload{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:var(--text-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.upload-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-progress{width:100%;height:4px;accent-color:var(--accent);grid-column:1/-1}.upload-message{color:var(--danger-fg);font-size:var(--text-xs);grid-column:1/-1}.media-name{align-items:center;gap:var(--space-2);color:var(--text-muted);display:flex}.media-name>div{color:var(--text);flex-direction:column;line-height:1.3;display:flex}.media-pages{font-size:var(--text-xs)}.media-validation{align-items:flex-start;gap:var(--space-1);flex-direction:column;display:flex}.media-validation-message{max-width:34ch;color:var(--danger-fg);font-size:var(--text-xs);line-height:1.35}.media-loading{align-items:center;gap:var(--space-2);color:var(--text-muted);display:flex}.zone-editor{gap:var(--space-3);flex-direction:column;display:flex}.zone-canvas{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg);width:100%;max-width:720px;position:relative;overflow:hidden}.zone{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text);font-size:var(--text-xs);cursor:grab;transition:background var(--transition);justify-content:center;align-items:center;display:flex;position:absolute}.zone[data-content=widget]{border-style:dashed;border-color:var(--info-fg);background:color-mix(in srgb, var(--info-fg) 10%, transparent)}.zone:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.zone[data-selected=true]{box-shadow:inset 0 0 0 1px var(--bg);border-width:2px}.zone-name{padding:2px var(--space-1);border-radius:var(--radius);background:color-mix(in srgb, var(--bg) 70%, transparent);pointer-events:none;font-weight:500}.zone-handle{border:1px solid var(--bg);background:var(--accent);cursor:nwse-resize;border-radius:2px;width:10px;height:10px;position:absolute;bottom:-5px;right:-5px}.layouts{align-items:start;gap:var(--space-4);grid-template-columns:260px minmax(0,1fr);display:grid}@media (width<=1024px){.layouts{grid-template-columns:minmax(0,1fr)}}.layouts-editor{gap:var(--space-4);flex-direction:column;display:flex}.layout-items{flex-direction:column;gap:2px;list-style:none;display:flex}.layout-item-row{align-items:center;gap:var(--space-1);display:flex}.layout-item{align-items:center;gap:var(--space-2);width:100%;min-width:0;min-height:var(--control-h);padding:var(--space-2);border-radius:var(--radius);color:var(--text-muted);font-size:var(--text-md);text-align:left;cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;display:flex}.layout-item:hover{background:var(--surface-2);color:var(--text)}.layout-item[aria-current=true]{background:var(--surface-2);color:var(--text);box-shadow:inset 2px 0 0 var(--accent);font-weight:600}.layout-item>span{flex-direction:column;line-height:1.3;display:flex}.layout-item-meta{font-size:var(--text-xs);font-weight:400}.layout-new{gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border);flex-direction:column;display:flex}.layout-screens{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.layout-screen{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);display:flex}.layout-screen-rotation{flex-shrink:0}.layout-screen-meta{font-size:var(--text-xs);display:block}.layout-screen-new{gap:var(--space-3);flex-direction:column;display:flex}.layouts-warning{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--warn-bg);color:var(--warn-fg);font-size:var(--text-sm);display:flex}.zone-inspector{gap:var(--space-3);flex-direction:column;max-width:460px;display:flex}.zone-coords{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.zone-coords input{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.zone-kind{display:flex}.zone-audio{align-items:center;gap:var(--space-2);font-size:var(--text-md);cursor:pointer;display:flex}.zone-audio input{width:16px;height:16px;accent-color:var(--accent)}.zone-audio .muted{font-size:var(--text-xs)}.zone-error{color:var(--danger-fg);font-size:var(--text-sm)}.playlist-preview{gap:var(--space-3);flex-direction:column;display:flex}.preview-frame{border-radius:var(--radius);background:var(--bg);width:100%;max-height:60vh;position:relative;overflow:hidden}.preview-frame[data-transition=fade]{animation:.4s preview-fade-in}@keyframes preview-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.preview-frame[data-transition=fade]{animation:none}}.preview-media{width:100%;height:100%}.preview-placeholder{justify-content:center;align-items:center;gap:var(--space-2);height:100%;padding:var(--space-4);color:var(--text);text-align:center;flex-direction:column;display:flex}.preview-status{align-items:center;gap:var(--space-3);font-size:var(--text-sm);display:flex}.preview-filename{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.playlists{align-items:start;gap:var(--space-4);grid-template-columns:260px minmax(0,1fr);display:grid}@media (width<=1024px){.playlists{grid-template-columns:minmax(0,1fr)}}.playlist-items{flex-direction:column;gap:2px;list-style:none;display:flex}.playlist-item{align-items:center;gap:var(--space-2);width:100%;min-height:var(--control-h);padding:var(--space-2);border-radius:var(--radius);color:var(--text-muted);font-size:var(--text-md);text-align:left;cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;display:flex}.playlist-item:hover{background:var(--surface-2);color:var(--text)}.playlist-item[aria-current=true]{background:var(--surface-2);color:var(--text);box-shadow:inset 2px 0 0 var(--accent);font-weight:600}.playlist-item>span{flex-direction:column;line-height:1.3;display:flex}.playlist-item-meta{font-size:var(--text-xs);font-weight:400}.playlist-new{gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border);flex-direction:column;display:flex}.playlist-toolbar{gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.playlist-tracks{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.track{align-items:start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.track-order{align-items:center;gap:var(--space-1);display:flex}.track-number{min-width:2ch;color:var(--text-muted);text-align:right}.track-up .icon{transform:rotate(-90deg)}.track-down .icon{transform:rotate(90deg)}.track-body{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.track-name{font-size:var(--text-md);font-weight:500}.track-controls{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.track-warning{align-items:center;gap:var(--space-2);color:var(--warn-fg);font-size:var(--text-xs);display:flex}.track-actions{align-items:center;gap:var(--space-2);display:flex}.playlist-total{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border);font-size:var(--text-md);display:flex}.widgets{align-items:start;gap:var(--space-4);grid-template-columns:minmax(0,1fr) 360px;display:grid}@media (width<=1024px){.widgets{grid-template-columns:minmax(0,1fr)}}.widget-items{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.widget-item{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;display:flex}.widget-item>span{align-items:center;gap:var(--space-2);display:flex}.widget-form{flex-direction:column;display:flex}.widget-form .card-body{gap:var(--space-3);flex-direction:column;display:flex}.widget-probe-ok,.widget-probe-warn{align-items:center;gap:var(--space-2);font-size:var(--text-xs);display:flex}.widget-probe-ok{color:var(--ok-fg)}.widget-probe-warn{color:var(--warn-fg)}.widget-error{color:var(--danger-fg);font-size:var(--text-xs)}.widget-embed-detected{color:var(--text-muted);font-size:var(--text-xs);word-break:break-all}.calendar{gap:var(--space-4);flex-direction:column;display:flex}.calendar-picker{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:640px;display:grid}.calendar-now{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--ok-bg);color:var(--ok-fg);font-size:var(--text-md);display:flex}.calendar-tz{font-size:var(--text-xs);margin-left:auto}.week{flex-direction:column;gap:2px;display:flex}.week-ruler{height:16px;margin-left:44px;position:relative}.week-tick{color:var(--text-muted);font-size:var(--text-xs);position:absolute}.week-row{align-items:center;gap:var(--space-2);grid-template-columns:44px minmax(0,1fr);display:grid}.week-day{color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:600}.week-row[data-today=true] .week-day{color:var(--text)}.week-track{border-radius:var(--radius);background:var(--bg);background-image:repeating-linear-gradient(to right, var(--border) 0 1px, transparent 1px 25%);height:26px;position:relative}.week-band{padding:0 var(--space-1);background:color-mix(in srgb, var(--accent) 32%, var(--surface));box-shadow:inset 0 0 0 1px var(--accent);color:var(--text);font-size:var(--text-xs);border-radius:3px;align-items:center;display:flex;position:absolute;top:3px;bottom:3px;overflow:hidden}.week-band[data-top=true]{background:color-mix(in srgb, var(--accent) 60%, var(--surface));font-weight:500}.week-band[data-conflict=true]{background:color-mix(in srgb, var(--warn-fg) 26%, var(--surface));box-shadow:inset 0 0 0 1px var(--warn-fg)}.week-band-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.week-nowline{background:var(--danger-fg);width:2px;position:absolute;top:-2px;bottom:-2px}.calendar-columns{align-items:start;gap:var(--space-4);grid-template-columns:minmax(0,1fr) 380px;display:grid}@media (width<=1024px){.calendar-columns{grid-template-columns:minmax(0,1fr)}}.campaigns{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.campaign{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.campaign-head{align-items:center;gap:var(--space-2);display:flex}.campaign-name{font-size:var(--text-md);font-weight:500}.campaign-head .btn{margin-left:auto}.campaign-when{font-size:var(--text-xs)}.campaign-conflict{align-items:center;gap:var(--space-2);margin-top:var(--space-2);color:var(--text-muted);font-size:var(--text-xs);display:flex}.campaign-conflict[data-ambiguous=true]{color:var(--warn-fg)}.campaign-form{gap:var(--space-3);flex-direction:column;display:flex}.campaign-pair{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.campaign-days{border:none;margin:0;padding:0}.campaign-days legend{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.02em;text-transform:uppercase;padding:0;font-weight:500}.day-toggles{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.day-toggle{align-items:center;gap:var(--space-1);min-height:var(--control-h);padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition), background var(--transition);display:flex}.day-toggle:has(input:checked){border-color:var(--accent);background:var(--surface-2)}.day-toggle input{width:14px;height:14px;accent-color:var(--accent)}.screens-summary{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));max-width:640px;display:grid}.summary-card .card-body{padding:var(--space-3) var(--space-4)}.summary-label{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.02em;text-transform:uppercase;font-weight:500}.summary-count{font-family:var(--font-mono);font-size:var(--text-xl);font-variant-numeric:tabular-nums;line-height:1.2}.device-name{font-size:var(--text-md);flex-direction:column;line-height:1.3;display:flex}.device-name .muted{font-size:var(--text-xs)}.device-warnings{align-items:center;gap:var(--space-1);white-space:nowrap;display:flex}.screens-notice{padding:var(--space-3);border-radius:var(--radius);background:var(--info-bg);color:var(--info-fg);font-size:var(--text-sm)}.menu{justify-content:flex-end;display:flex;position:relative}.menu-list{z-index:20;min-width:210px;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);flex-direction:column;display:flex;position:fixed}.menu-item{align-items:center;gap:var(--space-2);min-height:var(--control-h);padding:0 var(--space-2);border-radius:var(--radius);color:var(--text);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background var(--transition);background:0 0;border:none;display:flex}.menu-item:hover{background:var(--surface)}.menu-item.is-danger{margin-top:var(--space-1);border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);color:var(--danger-fg)}.dialog{width:min(420px, calc(100vw - var(--space-5) * 2));border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);padding:0}.dialog::backdrop{background:color-mix(in srgb, var(--bg) 75%, transparent)}.dialog-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.dialog-title{font-size:var(--text-md)}.dialog-body{padding:var(--space-4)}.pair-form{gap:var(--space-4);flex-direction:column;display:flex}.pair-code{font-size:var(--text-lg);letter-spacing:.35em}.account{gap:var(--space-4);flex-direction:column;max-width:480px;display:flex}.account-profile{gap:var(--space-3);flex-direction:column;display:flex}.account-profile dt{color:var(--text-muted);font-size:var(--text-xs)}.account-profile dd{font-size:var(--text-md)}.account-form{gap:var(--space-3);flex-direction:column;align-items:flex-start;display:flex}.account-actions{gap:var(--space-2);display:flex}.account-ok{align-items:center;gap:var(--space-2);color:var(--ok-fg);font-size:var(--text-sm);display:flex}.account-qr{width:176px;height:176px;padding:var(--space-3);border-radius:var(--radius);background:var(--qr-bg)}.account-secret{padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--surface-2);font-size:var(--text-sm);letter-spacing:.05em;-webkit-user-select:all;user-select:all}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);grid-template-rows:var(--topbar-h) minmax(0, 1fr);grid-template-areas:"nav top""nav main";min-height:100dvh;display:grid}.skip-link{top:var(--space-2);left:var(--space-2);z-index:10;padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font-weight:500;text-decoration:none;position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}.shell-nav{gap:var(--space-4);padding:var(--space-3);border-right:1px solid var(--border);background:var(--surface);flex-direction:column;grid-area:nav;display:flex}.shell-brand{align-items:center;gap:var(--space-2);padding:var(--space-2);color:var(--text);font-size:var(--text-md);letter-spacing:-.01em;font-weight:600;display:flex}.shell-sections{flex-direction:column;gap:2px;list-style:none;display:flex}.shell-link{align-items:center;gap:var(--space-2);min-height:var(--control-h);padding:0 var(--space-2);border-radius:var(--radius);color:var(--text-muted);font-size:var(--text-md);transition:background var(--transition), color var(--transition);text-decoration:none;display:flex}.shell-link:hover{background:var(--surface-2);color:var(--text)}.shell-link.is-active{background:var(--surface-2);color:var(--text);box-shadow:inset 2px 0 0 var(--accent);font-weight:600}.shell-top{justify-content:space-between;align-items:center;gap:var(--space-3);padding:0 var(--space-5);border-bottom:1px solid var(--border);background:var(--surface);grid-area:top;display:flex}.shell-heading{font-size:var(--text-lg)}.shell-user{align-items:center;gap:var(--space-3);display:flex}.shell-username{color:var(--text-muted);font-size:var(--text-sm)}.shell-main{width:100%;max-width:1440px;padding:var(--space-5);grid-area:main}@media (width<=1024px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto var(--topbar-h) minmax(0, 1fr);grid-template-areas:"nav""top""main"}.shell-nav{align-items:center;gap:var(--space-3);border-right:none;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}.shell-brand{flex-shrink:0}.shell-sections{gap:var(--space-1);flex-direction:row}.shell-link.is-active{box-shadow:inset 0 -2px 0 var(--accent)}.shell-main{padding:var(--space-4)}}
