:root,:root[data-theme=light]{--bg:#fff;--surface:#fff;--surface-2:#f2f4f7;--surface-3:#e8ebf0;--border:#e3e6eb;--border-strong:#cdd2da;--ring-strong:#d1d5db;--text:#121418;--text-muted:#5a616d;--text-subtle:#7b828e;--accent:#2f6fe4;--accent-strong:#1f5bcc;--accent-soft:#e6eefc;--on-accent:#fff;--success:#1d8a4b;--success-soft:#e3f4ea;--error:#c4362d;--error-soft:#fbe8e6;--warning:#8f5c00;--warning-soft:#fcf1da;--scrim:#12141861;--shadow:0 1px 2px #1214180d, 0 10px 30px #1214181a;--focus:0 0 0 3px #2f6fe466;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#050505;--surface:#121418;--surface-2:#1a1d22;--surface-3:#23272e;--border:#23262c;--border-strong:#353a42;--ring-strong:#2e2e2e;--text:#f1f3f6;--text-muted:#a3a9b4;--text-subtle:#7d8490;--accent:#4d8dff;--accent-strong:#79a9ff;--accent-soft:#15233d;--on-accent:#fff;--success:#4cc27f;--success-soft:#13291c;--error:#f0776e;--error-soft:#36191a;--warning:#e6b450;--warning-soft:#33280f;--scrim:#0009;--shadow:0 1px 2px #0006, 0 12px 32px #00000073;--focus:0 0 0 3px #4d8dff8c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#050505;--surface:#121418;--surface-2:#1a1d22;--surface-3:#23272e;--border:#23262c;--border-strong:#353a42;--ring-strong:#2e2e2e;--text:#f1f3f6;--text-muted:#a3a9b4;--text-subtle:#7d8490;--accent:#4d8dff;--accent-strong:#79a9ff;--accent-soft:#15233d;--scrim:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root{--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--radius:18px;--radius-sm:10px;--ease:cubic-bezier(.2, .7, .2, 1);--spring:cubic-bezier(.34, 1.4, .64, 1);--ring-color:#8080806b;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}:root.theme-switching :not(.theme-icon svg),:root.theme-switching :before,:root.theme-switching :after{transition:none!important}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);min-width:320px;margin:0;overflow:hidden}h1,h2,h3,p,ul,ol,dl,dd,blockquote{margin:0}ul,ol{padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}:focus-visible{box-shadow:var(--focus);outline:none}[hidden]{display:none!important}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.mono{font-family:var(--mono);letter-spacing:.08em}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{background:var(--bg);height:100dvh;position:relative;overflow:hidden}.skip-link{z-index:30;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);padding:8px 14px;position:absolute;top:-60px;left:16px}.skip-link:focus{top:12px}.topbar{z-index:10;pointer-events:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:absolute;inset:0 0 auto}.topbar>*{pointer-events:auto}.topbar-brand{align-items:center;gap:9px;display:flex}.brand-mark{background:var(--accent);width:32px;height:32px;color:var(--on-accent);border-radius:9px;place-items:center;display:grid}.brand-name{letter-spacing:-.02em;font-size:1.05rem;font-weight:750}.topbar-actions{align-items:center;gap:2px;display:flex}.topbar-button{width:44px;height:44px;color:var(--text);cursor:pointer;transition:background-color .18s var(--ease), color .18s var(--ease), transform .18s var(--ease);background:0 0;border:0;border-radius:12px;place-items:center;display:grid;position:relative}.topbar-button:hover{background:var(--surface-2)}.topbar-button:active{transform:scale(.94)}.topbar-button.is-active{color:var(--accent)}.topbar-badge{background:var(--accent);min-width:17px;height:17px;color:var(--on-accent);text-align:center;animation:pop-in .3s var(--spring) both;border-radius:999px;padding:0 4px;font-size:.68rem;font-weight:700;line-height:17px;position:absolute;top:6px;right:5px}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);z-index:20;background:var(--text);color:var(--bg);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s var(--ease), transform .15s var(--ease);border-radius:7px;padding:5px 9px;font-size:.75rem;font-weight:600;position:absolute;top:calc(100% + 6px);right:0;transform:translateY(-3px)}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{opacity:1;transition-delay:.25s;transform:none}[data-tooltip-pos=top]:after{inset:auto auto calc(100% + 6px) 50%;translate:-50%}@media (hover:none){[data-tooltip]:after{display:none}}.theme-icon{width:22px;height:22px;display:block;position:relative}.theme-icon svg{transition:opacity .35s var(--ease), transform .45s var(--ease);position:absolute;inset:0}.theme-icon--dark .theme-icon-sun,.theme-icon--light .theme-icon-moon{opacity:0;transform:rotate(-90deg)scale(.6)}.discovery{--header-h:72px;--icon-size:72px;padding:calc(var(--header-h) + 8px) 16px 20px;isolation:isolate;grid-template-rows:minmax(0,1fr) auto;display:grid;position:absolute;inset:0;overflow:hidden}.peers-area{overscroll-behavior:contain;justify-content:center;align-self:center;align-items:center;max-height:100%;display:flex;overflow-y:auto}.self-anchor{width:var(--icon-size);height:var(--icon-size);place-items:center;display:grid;position:relative}.rings{z-index:-1;pointer-events:none;position:absolute;top:50%;left:50%}.ring{width:var(--size);height:var(--size);margin:calc(var(--size) / -2) 0 0 calc(var(--size) / -2);border:var(--width,1px) solid var(--ring-color);opacity:var(--to-opacity);border-radius:50%;position:absolute;top:0;left:0}.rings.is-active .ring{animation:1.9s linear infinite ring-step}.discovery-empty{text-align:center;max-width:520px;animation:fade-up .6s var(--ease) both}.discovery-empty-title{color:var(--accent);letter-spacing:-.01em;font-size:clamp(1.2rem,3vw,1.5rem);font-weight:500}.discovery-empty-text{color:var(--text-muted);margin-top:6px;font-size:.95rem}.peer-grid{flex-wrap:wrap;place-content:center;gap:10px 18px;max-width:920px;padding:8px;display:flex}.peer{animation:peer-in .5s var(--spring) both;animation-delay:var(--delay)}.peer-button{border-radius:var(--radius);cursor:pointer;text-align:center;width:132px;transition:background-color .2s var(--ease), transform .25s var(--ease);background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:10px 6px 8px;display:flex}.peer-button:hover{transform:translateY(-3px)}.peer-button.is-selected,.peer-button.is-dragging{background:var(--accent-soft)}.peer-avatar{background:var(--accent);width:72px;height:72px;color:var(--on-accent);transition:transform .25s var(--spring), box-shadow .25s var(--ease);border-radius:50%;place-items:center;margin-bottom:6px;display:grid;position:relative}.peer-button:hover .peer-avatar,.peer-button.is-selected .peer-avatar{box-shadow:0 0 0 5px var(--accent-soft)}.peer-button.is-selected .peer-avatar,.peer-button.is-dragging .peer-avatar{transform:scale(1.06)}.peer-progress{width:calc(100% + 12px);height:calc(100% + 12px);position:absolute;inset:-6px;overflow:visible;rotate:-90deg}.peer-progress circle{fill:none;stroke-width:3px}.peer-progress-track{stroke:#0000}.peer-button.is-busy .peer-progress-track{stroke:var(--ring-strong)}.peer-progress-bar{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .3s linear}.peer-online{border:2.5px solid var(--bg);background:var(--success);border-radius:50%;width:14px;height:14px;position:absolute;bottom:3px;right:3px}.peer-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:650;overflow:hidden}.peer-where{color:var(--text-muted);font-size:.75rem}.peer-status{min-height:1.2em;color:var(--text-subtle);font-size:.78rem;font-weight:600}.peer-status--active{color:var(--accent)}.peer-status--error{color:var(--error)}.peer-status--active,.peer-status--error,.peer-status--muted{animation:fade-up .25s var(--ease) both}.self{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-width:0;max-width:100%;display:flex}.self-icon{width:var(--icon-size);height:var(--icon-size);background:var(--bg);color:var(--accent);border-radius:50%;place-items:center;display:grid;position:relative}.self-icon:before{content:"";background:var(--accent);opacity:0;border-radius:50%;position:absolute;inset:-4px}.self-icon.is-live:before{animation:3.2s ease-in-out infinite glow}.self-icon.is-live svg{animation:3.2s ease-in-out infinite breathe}.self-name{white-space:nowrap;justify-content:center;align-items:center;gap:6px;max-width:100%;font-size:1.05rem;display:flex}.self-name-value{text-overflow:ellipsis;background:var(--surface-3);border-radius:7px;min-width:0;max-width:18ch;padding:1px 8px;font-weight:650;overflow:hidden}.self-name--editing{flex-wrap:wrap}.self-name--editing input{border:1px solid var(--accent);background:var(--surface);border-radius:8px;width:180px;padding:4px 10px}.self-name-error{color:var(--error);flex-basis:100%;font-size:.8rem}.self-status{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.status-chip{border:1.5px solid var(--text);background:var(--bg);white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:4px 6px 4px 12px;font-size:.92rem;display:inline-flex}.status-scope{background:var(--accent);color:var(--on-accent);border-radius:6px;padding:1px 8px;font-weight:600}.status-chip--pending{border-color:var(--border-strong);color:var(--text-muted);padding-right:12px}.status-chip--error{border-color:var(--error);color:var(--error);padding-right:12px}.status-chip--room{border-color:var(--accent);color:var(--accent);cursor:pointer;transition:background-color .18s var(--ease);padding:4px 12px;font-weight:600}.status-chip--room:hover{background:var(--accent-soft)}.button{cursor:pointer;min-height:44px;transition:background-color .15s var(--ease), border-color .15s var(--ease), transform .15s var(--ease), opacity .15s var(--ease);border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:650;text-decoration:none;display:inline-flex}.button:active:not(:disabled){transform:scale(.97)}.button:disabled{opacity:.5;cursor:not-allowed}.button--primary{background:var(--accent);color:var(--on-accent)}.button--primary:hover:not(:disabled){background:var(--accent-strong)}.button--secondary{background:var(--accent-soft);color:var(--accent)}.button--secondary:hover:not(:disabled){border-color:var(--accent)}.button--ghost{border-color:var(--border-strong);color:var(--text);background:0 0}.button--ghost:hover:not(:disabled){background:var(--surface-2)}.button--small{min-height:36px;padding:6px 12px;font-size:.875rem}.button--block{width:100%}.link-button{color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;border-radius:4px;padding:0;font-weight:600;text-decoration:underline}.link-button:disabled{color:var(--text-subtle);cursor:not-allowed}.icon-button{width:36px;height:36px;color:var(--text-muted);cursor:pointer;transition:background-color .15s var(--ease), color .15s var(--ease);background:0 0;border:0;border-radius:9px;flex:none;place-items:center;display:grid}.icon-button:hover{background:var(--surface-2);color:var(--text)}.icon-button--small{width:30px;height:30px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite spin}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:.875rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);resize:vertical;width:100%;transition:border-color .15s var(--ease);padding:10px 12px}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--accent)}.field-hint{color:var(--text-subtle);text-align:right;font-size:.78rem}.code-input{font-family:var(--mono);letter-spacing:.25em;text-transform:uppercase;font-size:1.15rem!important}.segmented{background:var(--surface-2);border-radius:12px;gap:4px;padding:4px;display:flex}.segmented-option{min-height:38px;color:var(--text-muted);cursor:pointer;transition:background-color .2s var(--ease), color .2s var(--ease);background:0 0;border:0;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:7px;font-weight:600;display:inline-flex}.segmented-option[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}.notice{border-radius:var(--radius-sm);animation:fade-up .25s var(--ease) both;align-items:flex-start;gap:10px;padding:11px 13px;font-size:.9rem;display:flex}.notice svg{flex:none;margin-top:1px}.notice--error{background:var(--error-soft);color:var(--error)}.notice--warning{background:var(--warning-soft);color:var(--warning)}.empty{color:var(--text-muted);font-size:.92rem}.dialog{border:1px solid var(--border);background:var(--surface);width:min(100% - 24px,480px);max-height:min(100dvh - 24px,720px);color:var(--text);box-shadow:var(--shadow);animation:dialog-in .28s var(--spring) both;border-radius:22px;padding:0;overflow:hidden}.dialog--lg{width:min(100% - 24px,600px)}.dialog::backdrop{background:var(--scrim);animation:fade .25s var(--ease) both}.dialog.is-closing{animation:dialog-out .2s var(--ease) both}.dialog.is-closing::backdrop{animation:fade .2s var(--ease) reverse both}.dialog-inner{max-height:inherit;flex-direction:column;display:flex}.dialog-head{justify-content:space-between;align-items:center;gap:12px;padding:18px 16px 6px 22px;display:flex}.dialog-title{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:1.1rem;font-weight:700}.dialog-body{padding:8px 22px 22px;overflow-y:auto}.dialog-body>*{flex-direction:column;gap:14px;display:flex}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.send-note{color:var(--text-muted);font-size:.88rem}@property --p{syntax:"<number>";inherits:true;initial-value:0}.file-picker{flex-direction:column;gap:12px;display:flex}.dropzone{border:1.5px dashed var(--border-strong);background:var(--surface-2);text-align:center;cursor:pointer;transition:border-color .22s var(--ease), background-color .22s var(--ease), box-shadow .22s var(--ease), transform .18s var(--ease);border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:24px 16px 20px;display:flex}.dropzone:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--border-strong));background:color-mix(in srgb, var(--accent-soft) 45%, var(--surface-2))}.dropzone.is-dragging{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent);transform:scale(1.012)}.dropzone.is-disabled{cursor:not-allowed;opacity:.6}.dropzone-icon{background:linear-gradient(135deg, var(--accent), var(--accent-strong));width:40px;height:40px;color:var(--on-accent);box-shadow:0 10px 22px -8px color-mix(in srgb, var(--accent) 70%, transparent);transition:transform .3s var(--spring);border-radius:13px;place-items:center;margin-bottom:8px;display:grid}.dropzone.is-dragging .dropzone-icon{transform:translateY(-4px)}.dropzone-title{font-weight:700}.dropzone-hint{color:var(--text-muted)}.dropzone-limits{color:var(--text-subtle);margin-top:2px;font-size:.78rem}.dropzone-kbd{font:600 .64rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);margin-top:6px}.file-list{flex-direction:column;gap:8px;display:flex}.file-row{--p:0;border:1px solid var(--border);background:var(--surface-2);animation:fade-up .22s var(--ease) both;transition:--p .45s var(--ease), border-color .3s var(--ease), background-color .3s var(--ease);border-radius:13px;align-items:center;gap:12px;padding:8px 8px 8px 9px;display:flex}.file-row.is-ready{border-color:color-mix(in srgb, var(--success) 32%, var(--border));background:color-mix(in srgb, var(--success-soft) 60%, var(--surface))}.file-row.is-failed{border-color:color-mix(in srgb, var(--error) 40%, var(--border));background:color-mix(in srgb, var(--error-soft) 60%, var(--surface))}.file-thumb{background:var(--surface-3);width:44px;height:44px;box-shadow:inset 0 0 0 1px var(--border);border-radius:10px;flex:none;position:relative;overflow:hidden}.file-thumb>*{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.file-thumb-doc{background:linear-gradient(180deg, var(--accent) 68%, var(--accent-strong) 68%);color:var(--on-accent);font:700 .62rem/1 var(--font);letter-spacing:.02em;place-items:center;display:grid}.file-thumb-ghost{filter:grayscale();opacity:.3}.file-thumb-live{clip-path:inset(0 0 calc((1 - var(--p)) * 100%) 0)}.file-thumb:after{content:"";left:0;right:0;top:calc(var(--p) * 100%);background:var(--accent);height:1.5px;box-shadow:0 0 8px 1px color-mix(in srgb, var(--accent) 85%, transparent);opacity:0;transition:opacity .25s var(--ease);position:absolute}.file-row.is-checking .file-thumb:after{opacity:1}.file-row.is-failed .file-thumb{box-shadow:inset 0 0 0 1.5px var(--error)}.file-meta{flex-direction:column;flex:1;min-width:0;display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.92rem;font-weight:600;overflow:hidden}.file-size{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.8rem}.file-row.is-ready .file-size b{color:var(--success)}.file-row.is-failed .file-size b{color:var(--error)}.file-actions{flex:none;align-items:center;gap:4px;display:flex}.file-pct{font:600 .78rem/1 var(--mono);color:var(--accent);font-variant-numeric:tabular-nums;padding:0 6px}.file-retry,.file-retry:hover{color:var(--error)}.file-retry:hover{background:var(--error-soft)}.file-tally{font:600 .68rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:12px;display:flex}.file-tally-action{font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 0}.file-tally-action:hover{text-underline-offset:2px;text-decoration:underline}@media (prefers-reduced-motion:reduce){.dropzone,.dropzone-icon,.file-row{transition:none}}.incoming-summary{font-weight:600}.incoming-files{flex-direction:column;gap:6px;max-height:220px;display:flex;overflow-y:auto}.incoming-files li{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-muted);align-items:center;gap:8px;padding:8px 10px;display:flex}.incoming-files .file-name{color:var(--text);flex:1}.incoming-text{background:var(--surface-2);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px;max-height:320px;padding:14px 16px;overflow-y:auto}.room-code-label{color:var(--text-muted);font-size:.85rem}.room-code{font-family:var(--mono);letter-spacing:.18em;color:var(--accent);margin-top:-10px;font-size:clamp(2rem,9vw,2.6rem);font-weight:700}.room-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.room-facts div{background:var(--surface-2);border-radius:12px;padding:10px 12px}.room-facts dt{color:var(--text-muted);font-size:.75rem}.room-facts dd{font-weight:650}.info h3{margin-top:4px;font-size:.95rem}.info-steps{counter-reset:step;flex-direction:column;gap:8px;display:flex}.info-steps li{counter-increment:step;color:var(--text-muted);gap:10px;display:flex}.info-steps li:before{content:counter(step);background:var(--accent-soft);width:24px;height:24px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:.8rem;font-weight:700;display:grid}.info-list{color:var(--text-muted);flex-direction:column;gap:10px;font-size:.92rem;display:flex}.info-list strong{color:var(--text)}.devices-list{flex-direction:column;gap:8px;display:flex}.devices-list li{border:1px solid var(--border);color:var(--accent);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.devices-list-meta{min-width:0;color:var(--text);flex-direction:column;flex:1;display:flex}.device-name{font-weight:650}.device-sub{color:var(--text-muted);font-size:.8rem}.transfers-dialog .card{flex-direction:column;gap:12px;display:flex}.card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.transfers-dialog .card-title{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.transfers-dialog .card-head{justify-content:flex-end}.transfer-list,.pair-list{flex-direction:column;gap:8px;display:flex}.transfer{border:1px solid var(--border);animation:fade-up .25s var(--ease) both;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.transfer-icon{background:var(--surface-2);width:36px;height:36px;color:var(--text-muted);border-radius:50%;flex:none;place-items:center;display:grid}.transfer--active .transfer-icon{background:var(--accent-soft);color:var(--accent)}.transfer--success .transfer-icon{background:var(--success-soft);color:var(--success);animation:pop-in .35s var(--spring) both}.transfer--error .transfer-icon{background:var(--error-soft);color:var(--error)}.transfer--muted{opacity:.7}.transfer-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.transfer-name{align-items:baseline;gap:8px;min-width:0;display:flex}.transfer-peer{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.transfer-status{color:var(--text-muted);font-size:.82rem}.transfer--error .transfer-status{color:var(--error)}.transfer--success .transfer-status{color:var(--success)}.transfer-actions{flex:none}.progress{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.progress span{border-radius:inherit;background:var(--accent);height:100%;transition:width .25s linear;display:block}.crash{background:var(--bg);min-height:100dvh;color:var(--text);place-items:center;padding:24px 16px;display:grid}.crash-card{border:1px solid var(--border);background:var(--surface);width:min(100%,460px);box-shadow:var(--shadow);border-radius:22px;flex-direction:column;align-items:flex-start;gap:12px;padding:24px;display:flex}.crash-icon{background:var(--error-soft);width:44px;height:44px;color:var(--error);border-radius:50%;place-items:center;display:grid}.crash-title{font-size:1.2rem;font-weight:700}.crash-text{color:var(--text-muted)}.crash-detail{border-radius:var(--radius-sm);background:var(--bg);width:100%;max-height:120px;color:var(--error);white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 12px;font-size:.82rem;overflow:auto}.toasts{--toast-from:translate3d(16px, 0, 0) scale(.97);--toast-to:translate3d(16px, 0, 0) scale(.97);z-index:40;pointer-events:none;flex-direction:column;align-items:stretch;width:min(100% - 32px,384px);display:flex;position:fixed;inset:68px 16px auto auto}.toasts[popover]{color:var(--text);background:0 0;border:0;margin:0;padding:0;overflow:visible}.toasts[popover]:not(:popover-open){display:none}@media (width>=641px){body:has(dialog[open]) .toasts{width:clamp(272px,50vw - 328px,384px)}}.toast-slot{grid-template-rows:1fr;padding-bottom:10px;display:grid}.toast-slot-inner{min-height:0}.toast-slot.is-leaving{animation:toast-collapse .24s var(--ease) .16s forwards}.toast-slot.is-leaving .toast-slot-inner{overflow:hidden}.toast{--toast-tone:var(--text-muted);--toast-tone-soft:var(--surface-2);border:1px solid var(--border);background:var(--surface);width:100%;box-shadow:var(--shadow);pointer-events:auto;transition:transform .2s var(--ease);border-radius:16px;align-items:flex-start;gap:12px;padding:14px 10px 14px 14px;animation:.42s cubic-bezier(.22,1,.36,1) backwards toast-in;display:flex;position:relative;overflow:hidden}.toast:hover{border-color:var(--border-strong);transform:translateY(-1px)}.toast-slot.is-leaving .toast{pointer-events:none;animation:toast-out .2s var(--ease) forwards}.toast--success{--toast-tone:var(--success);--toast-tone-soft:var(--success-soft)}.toast--info{--toast-tone:var(--accent);--toast-tone-soft:var(--accent-soft)}.toast--error{--toast-tone:var(--error);--toast-tone-soft:var(--error-soft);border-color:color-mix(in srgb, var(--error) 40%, var(--border));background:color-mix(in srgb, var(--error-soft) 45%, var(--surface))}.toast.is-highlight{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.toast.is-highlight:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent) 55%, transparent);opacity:0;pointer-events:none;animation:toast-glow 1.8s var(--ease) .2s;position:absolute;inset:0}.toast-icon{background:var(--toast-tone-soft);width:38px;height:38px;color:var(--toast-tone);border-radius:11px;flex:none;place-items:center;display:grid}.toast-body{flex:1;min-width:0;padding-top:1px}.toast-title{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:.95rem;font-weight:650;line-height:1.35}.toast-message{color:var(--text-muted);overflow-wrap:anywhere;margin:3px 0 0;font-size:.875rem;line-height:1.45}.toast-action{background:var(--accent-soft);color:var(--accent-strong);font:inherit;cursor:pointer;transition:background-color .15s var(--ease);border:0;border-radius:8px;align-items:center;gap:6px;margin-top:10px;padding:6px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.toast-action:hover{background:color-mix(in srgb, var(--accent) 18%, var(--accent-soft))}.toast-action:focus-visible,.toast-close:focus-visible{box-shadow:var(--focus);outline:none}.toast-close{margin:-4px 0 0}.toast-progress{background:var(--toast-tone);opacity:.55;transform-origin:0;height:3px;animation:toast-countdown var(--toast-duration,5s) linear forwards;position:absolute;inset:auto 0 0}.toast.is-paused .toast-progress{animation-play-state:paused}@keyframes toast-in{0%{opacity:0;transform:var(--toast-from)}}@keyframes toast-out{to{opacity:0;transform:var(--toast-to)}}@keyframes toast-collapse{to{grid-template-rows:0fr;padding-bottom:0}}@keyframes toast-glow{0%,to{opacity:0}25%{opacity:1}}@keyframes toast-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.toast:hover{transform:none}.toast-progress,.toast.is-highlight:after{display:none}}@keyframes ring-step{0%{transform:scale(var(--from-scale));opacity:var(--from-opacity)}to{opacity:var(--to-opacity);transform:scale(1)}}@keyframes glow{0%,to{opacity:0;transform:scale(.85)}50%{opacity:.14;transform:scale(1.12)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes peer-in{0%{opacity:0;transform:translateY(10px)scale(.85)}to{opacity:1;transform:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@keyframes dialog-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}@keyframes dialog-out{to{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.rings.is-active .ring,.self-icon.is-live:before,.self-icon.is-live svg{animation:none}.spinner{animation:1.6s linear infinite spin!important}}@media (width<=640px){.topbar{padding:8px 8px 8px 12px}.brand-name{display:none}.topbar-button{width:40px;height:40px}.discovery{--header-h:56px;--icon-size:64px;padding:calc(var(--header-h) + 6px) 12px 16px}.peer-grid{gap:4px 6px}.peer-button{width:108px}.peer-avatar{width:62px;height:62px}.self-name{font-size:.98rem}.status-chip{font-size:.85rem}.room-facts{grid-template-columns:minmax(0,1fr)}.toasts{--toast-from:translate3d(0, -14px, 0) scale(.97);--toast-to:translate3d(0, -10px, 0) scale(.97);width:auto;inset:60px 12px auto}.toast{padding:12px 8px 12px 12px}.dialog-body{padding:6px 16px 18px}.dialog-head{padding-left:16px}}@media (width<=360px){.topbar-brand{display:none}.topbar{justify-content:flex-end}}@media (height<=520px) and (orientation:landscape){.discovery{--icon-size:52px;padding-bottom:10px}.self-icon svg{width:30px;height:30px}.peer-button{padding:4px 6px}.peer-avatar{width:52px;height:52px;margin-bottom:2px}.peer-where{display:none}}.gs-page{background:var(--bg);height:100dvh;color:var(--text);overflow-y:auto}.gs-header{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.gs-brand{color:inherit;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.gs-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.gs-nav-link{color:var(--text-muted);border-radius:10px;padding:8px 12px;font-weight:600;text-decoration:none}.gs-nav-link:hover,.gs-nav-link.active{background:var(--surface-2);color:var(--text)}.gs-main{justify-content:center;padding:32px 16px 56px;display:flex}.gs-stack{flex-direction:column;gap:20px;width:100%;max-width:560px;display:flex}.gs-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;max-width:440px;box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:28px 24px;display:flex}.gs-card--wide{max-width:560px}.gs-card .card-title{margin:0;font-size:1.4rem}.gs-card .card-text{color:var(--text-muted);margin:0}.gs-form{flex-direction:column;gap:14px;display:flex}.gs-section-title{margin:0;font-size:1.05rem}.field--invalid input{border-color:var(--error)}.gs-field-error,.gs-field-hint{margin:0;font-size:.8rem}.gs-field-error{color:var(--error)}.gs-field-hint{color:var(--text-subtle)}.gs-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.gs-saved{color:var(--success);font-weight:600}.gs-switch{text-align:center;color:var(--text-muted);margin:0;font-size:.92rem}.gs-switch a,.notice a{color:var(--accent);font-weight:600}.notice--success{background:var(--success-soft);color:var(--success)}.notice--info{background:var(--accent-soft);color:var(--accent)}.gs-facts{flex-wrap:wrap;gap:28px;margin:0;display:flex}.gs-facts dt{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.gs-facts dd{margin:2px 0 0;font-weight:600}.gs-role{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 10px;font-size:.85rem;display:inline-block}.gs-loading{min-height:40vh;color:var(--text-muted);justify-content:center;align-items:center;gap:10px;display:flex}.gs-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=560px){.gs-main{padding:20px 16px 40px}.gs-card{padding:22px 18px}.gs-hide-sm{display:none}.gs-nav-link{padding:8px}}.gs-stack--wide,.gs-card--full{max-width:720px}.gs-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.gs-card-head>div{flex-direction:column;gap:6px;min-width:0;display:flex}.gs-meta{color:var(--text-muted);overflow-wrap:anywhere;margin:0;font-size:.86rem}.gs-back{color:var(--text-muted);align-self:flex-start;align-items:center;gap:6px;font-weight:600;text-decoration:none;display:inline-flex}.gs-back:hover{color:var(--text)}.gs-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.gs-list-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:inherit;transition:background-color .15s var(--ease), border-color .15s var(--ease);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}a.gs-list-item:hover{background:var(--surface-2);border-color:var(--border-strong)}.gs-list-main{flex-direction:column;gap:2px;min-width:0;display:flex}.gs-list-main strong{overflow-wrap:anywhere}.gs-status{background:var(--surface-3);color:var(--text-muted);border-radius:999px;flex:none;padding:2px 10px;font-size:.78rem;font-weight:650}.gs-status--active{background:var(--success-soft);color:var(--success)}.gs-status--revoked,.gs-status--removed{background:var(--error-soft);color:var(--error)}.gs-empty{color:var(--text-muted);flex-direction:column;align-items:flex-start;gap:10px;margin:0;display:flex}.gs-empty p{margin:0}.gs-fieldset{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.gs-fieldset legend{margin-bottom:6px;font-size:.875rem;font-weight:600}.gs-choice{border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.gs-choice.is-selected{border-color:var(--accent);background:var(--accent-soft)}.gs-choice input{accent-color:var(--accent);margin-top:4px}.gs-choice>span{flex-direction:column;gap:2px;display:flex}.gs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.gs-subform{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);padding:16px}.gs-copy{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px 10px;display:grid}.gs-copy-label{flex-direction:column;gap:6px;font-size:.875rem;font-weight:600;display:flex}.gs-copy-input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);width:100%;font-family:var(--mono);text-overflow:ellipsis;padding:10px 12px;font-size:.85rem}.gs-copy .gs-field-hint{grid-column:1/-1}.gs-dot{background:var(--success);vertical-align:middle;border-radius:50%;width:8px;height:8px;display:inline-block}.gs-chips{flex-wrap:wrap;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.gs-chip{background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.9rem;font-weight:600;display:inline-flex}.button--danger{background:var(--error);color:var(--on-accent)}.button--danger:hover:not(:disabled){filter:brightness(1.08)}.notice--warning a{color:inherit}@media (width<=560px){.gs-grid,.gs-copy{grid-template-columns:minmax(0,1fr)}.gs-list-item{flex-wrap:wrap}}.gs-drop{border:2px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--text-muted);text-align:center;transition:border-color .15s var(--ease), background-color .15s var(--ease);flex-direction:column;align-items:center;gap:6px;padding:24px 16px;display:flex}.gs-drop p{margin:0}.gs-drop.is-dragging{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.gs-link-button{min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;padding:0 4px;font-weight:650;text-decoration:underline;display:inline-flex}.gs-queue{flex-direction:column;gap:12px;display:flex}.gs-upload--failed .gs-meta{color:var(--error)}.gs-upload--done .gs-meta{color:var(--success)}.gs-progress{background:var(--surface-3);border-radius:999px;height:6px;margin-top:6px;display:block;overflow:hidden}.gs-progress>span{border-radius:inherit;background:var(--accent);height:100%;transition:width .2s var(--ease);display:block}.gs-row-actions{flex:none;gap:6px;display:flex}.gs-list-main strong svg{vertical-align:-2px;color:var(--text-muted)}.gs-filters{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.gs-filter{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:40px;color:var(--text);font:inherit;padding:8px 10px;font-size:.9rem}.gs-filter:focus-visible{border-color:var(--accent);box-shadow:var(--focus);outline:none}.gs-history{align-items:flex-start}.gs-history-icon{background:var(--surface-2);width:30px;height:30px;color:var(--text-muted);border-radius:50%;flex:none;place-items:center;display:grid}.gs-history-icon--upload{background:var(--accent-soft);color:var(--accent)}.gs-history .gs-list-main{flex:1}.gs-status--h-completed{background:var(--success-soft);color:var(--success)}.gs-status--h-in_progress{background:var(--accent-soft);color:var(--accent)}.gs-status--h-failed,.gs-status--h-interrupted{background:var(--error-soft);color:var(--error)}.gs-status--h-cancelled{background:var(--warning-soft);color:var(--warning)}@media (width<=560px){.gs-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.gs-filter--search{grid-column:1/-1}.gs-history .gs-status{order:3;margin-left:42px}}.admin-shell{background:var(--bg);min-height:100dvh;color:var(--text);display:flex}.admin-sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;flex:none;gap:4px;width:230px;padding:16px 12px;display:flex}.admin-brand{color:inherit;align-items:center;gap:10px;padding:8px 10px 16px;text-decoration:none;display:flex}.admin-brand strong{font-size:.95rem;display:block}.admin-brand span{color:var(--text-muted);font-size:.75rem;display:block}.admin-nav{flex-direction:column;gap:2px;display:flex}.admin-nav-link{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:10px;padding:10px 12px;font-size:.92rem;font-weight:600;text-decoration:none;display:flex}.admin-nav-link:hover{background:var(--surface-2);color:var(--text)}.admin-nav-link.active{background:var(--accent-soft);color:var(--accent)}.admin-main{flex-direction:column;flex:1;min-width:0;display:flex}.admin-topbar{z-index:10;border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex;position:sticky;top:0}.admin-topbar-title{margin:0;font-size:1.05rem}.admin-topbar-actions{align-items:center;gap:10px;display:flex}.admin-content{flex-direction:column;gap:18px;padding:20px;display:flex}.admin-menu-button{display:none}.admin-denied{text-align:center;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;align-items:center;gap:8px;max-width:420px;margin:15vh auto;padding:32px;display:flex}.admin-denied h1{margin:0;font-size:1.3rem}.admin-denied p{color:var(--text-muted);margin:0}.admin-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.admin-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:6px;padding:16px 18px;display:flex}.admin-card-label{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.admin-card-value{font-size:1.6rem;font-weight:700}.admin-card-sub{color:var(--text-muted);font-size:.82rem}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-toolbar input,.admin-toolbar select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:40px;color:var(--text);font:inherit;padding:8px 10px;font-size:.9rem}.admin-toolbar input{flex:1;min-width:180px}.admin-table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px}.admin-table th{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2);font-size:.78rem}.admin-table tr:last-child td{border-bottom:none}.admin-table td.wrap{white-space:normal;overflow-wrap:anywhere}.admin-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.admin-empty,.admin-state{text-align:center;color:var(--text-muted);padding:32px 16px}.admin-badge{background:var(--surface-3);color:var(--text-muted);border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:650;display:inline-block}.admin-badge--ok,.admin-badge--active{background:var(--success-soft);color:var(--success)}.admin-badge--off,.admin-badge--disabled,.admin-badge--failed{background:var(--error-soft);color:var(--error)}.admin-badge--warn{background:var(--warning-soft);color:var(--warning)}.admin-kv{grid-template-columns:minmax(120px,200px) 1fr;gap:8px 16px;margin:0;display:grid}.admin-kv dt{color:var(--text-subtle);font-size:.85rem}.admin-kv dd{overflow-wrap:anywhere;margin:0}@media (width<=860px){.admin-sidebar{z-index:30;transition:transform .2s var(--ease);box-shadow:var(--shadow);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.admin-sidebar.is-open{transform:translate(0)}.admin-menu-button{display:inline-flex}.admin-kv{grid-template-columns:1fr}}
