:root{--density: 1;--u: calc(4px * var(--density));--bg-primary: #1a1b23;--bg-sidebar: #12131a;--bg-hover: #252630;--bg-bubble-user: #2b5cd4;--bg-bubble-assistant: #1e1f2a;--text-primary: #e4e4e7;--text-secondary: #90909e;--text-muted: #5c5c6e;--border-color: #2a2b35;--accent: #4f8cff;--color-success: #22c55e;--color-danger: #ef4444;--color-warning: #f59e0b;--color-danger-text: #f87171;--bg-code: #1a1b23;--bg-elevated: #22232d;--bg-input: #252630;--text-on-accent: #ffffff;--scrim: rgba(0, 0, 0, .5);--danger-alpha: color-mix(in srgb, var(--color-danger) 12%, transparent);--danger-alpha-strong: color-mix(in srgb, var(--color-danger) 25%, transparent);--danger-alpha-hover: color-mix(in srgb, var(--color-danger) 15%, transparent);--success-alpha: color-mix(in srgb, var(--color-success) 15%, transparent);--warning-alpha: color-mix(in srgb, var(--color-warning) 15%, transparent);--muted-alpha: color-mix(in srgb, var(--text-muted) 15%, transparent);--accent-alpha: color-mix(in srgb, var(--accent) 10%, transparent);--accent-alpha-strong: color-mix(in srgb, var(--accent) 15%, transparent);--white-alpha-03: rgba(255, 255, 255, .03);--white-alpha-08: rgba(255, 255, 255, .08);--white-alpha-10: rgba(255, 255, 255, .1);--black-alpha-08: rgba(0, 0, 0, .08);--space-0_5: calc(var(--u) * .5);--space-1: var(--u);--space-1_5: calc(var(--u) * 1.5);--space-2: calc(var(--u) * 2);--space-2_5: calc(var(--u) * 2.5);--space-3: calc(var(--u) * 3);--space-3_5: calc(var(--u) * 3.5);--space-4: calc(var(--u) * 4);--space-4_5: calc(var(--u) * 5);--space-5: calc(var(--u) * 6);--space-6: calc(var(--u) * 8);--space-7: calc(var(--u) * 10);--space-8: calc(var(--u) * 12);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--text-2xs: 10px;--text-xs: 11px;--text-s: 12px;--text-sm: 13px;--text-md: 14px;--text-base: 15px;--text-input: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--lh-tight: 1.2;--lh-snug: 1.4;--lh-normal: 1.5;--lh-relaxed: 1.7;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--radius-xs: 2px;--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--radius-full: 999px;--shadow-1: 0 1px 3px rgba(0, 0, 0, .2);--shadow-2: 0 4px 12px rgba(0, 0, 0, .3);--focus-ring: 0 0 0 2px var(--accent-alpha-strong);--dur-fast: .1s;--dur: .15s;--dur-med: .2s;--dur-slow: .3s;--ease: ease;--ease-out: ease-out;--ease-in-out: ease-in-out;--z-panel: 10;--z-toast: 100;--z-modal: 200;--w-sidebar: 280px;--w-syspanel: 260px;--w-syspanel-rail: 32px;--w-settings-nav: 220px;--w-measure: 76ch;--h-control: calc(var(--u) * 9);--h-control-sm: calc(var(--u) * 7);--tap-target: 44px}:root[data-theme=light]{--bg-primary: #f8f9fa;--bg-sidebar: #e9ecef;--bg-hover: #dee2e6;--bg-bubble-user: #4f8cff;--bg-bubble-assistant: #ffffff;--text-primary: #212529;--text-secondary: #6c757d;--text-muted: #adb5bd;--border-color: #dee2e6;--bg-code: #e9ecef;--bg-elevated: #ffffff;--bg-input: #ffffff;--text-on-accent: #ffffff;--white-alpha-03: rgba(0, 0, 0, .03);--white-alpha-08: rgba(0, 0, 0, .06);--white-alpha-10: rgba(0, 0, 0, .08);--black-alpha-08: rgba(0, 0, 0, .08);--shadow-1: 0 1px 3px rgba(0, 0, 0, .1);--shadow-2: 0 4px 12px rgba(0, 0, 0, .15)}@media(prefers-color-scheme:light){:root:not([data-theme]){--bg-primary: #f8f9fa;--bg-sidebar: #e9ecef;--bg-hover: #dee2e6;--bg-bubble-user: #4f8cff;--bg-bubble-assistant: #ffffff;--text-primary: #212529;--text-secondary: #6c757d;--text-muted: #adb5bd;--border-color: #dee2e6;--bg-code: #e9ecef;--bg-elevated: #ffffff;--bg-input: #ffffff;--text-on-accent: #ffffff;--white-alpha-03: rgba(0, 0, 0, .03);--white-alpha-08: rgba(0, 0, 0, .06);--white-alpha-10: rgba(0, 0, 0, .08);--black-alpha-08: rgba(0, 0, 0, .08);--shadow-1: 0 1px 3px rgba(0, 0, 0, .1);--shadow-2: 0 4px 12px rgba(0, 0, 0, .15)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-layout{display:flex;height:100%}.main-panel{flex:1;display:flex;flex-direction:column;min-width:0;padding-top:env(safe-area-inset-top);padding-inline:env(safe-area-inset-left) env(safe-area-inset-right)}.sidebar{width:var(--w-sidebar);background:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;padding-top:env(safe-area-inset-top)}.sidebar-header{padding:var(--space-4);border-bottom:1px solid var(--border-color)}.sidebar-title{font-size:var(--text-lg);font-weight:var(--fw-semibold);margin-bottom:var(--space-3)}.btn-new-session{width:100%;padding:var(--space-2_5) var(--space-4);background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius);cursor:pointer;font-size:var(--text-md);font-weight:var(--fw-medium);transition:all var(--dur) var(--ease)}.btn-new-session:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-new-session:hover:not(:disabled){opacity:.9}.btn-new-session:disabled{opacity:.5;cursor:not-allowed}.session-list{flex:1;overflow-y:auto;padding:var(--space-2)}.sidebar-empty{padding:var(--space-5) var(--space-3);text-align:center;color:var(--text-muted);font-size:var(--text-md)}.session-item{display:flex;align-items:flex-start;padding:var(--space-2_5) var(--space-3);border-radius:var(--radius);cursor:pointer;transition:background var(--dur) var(--ease),transform var(--dur-fast) var(--ease);margin-bottom:var(--space-0_5)}.session-item:active{transform:scale(.985)}.session-item:hover,.session-item.active{background:var(--bg-hover)}.session-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.session-item-main{flex:1;min-width:0}.session-item-title-row{display:flex;align-items:center;gap:var(--space-2);min-width:0}.session-item-title{flex:1;min-width:0;font-size:var(--text-md);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-engine-badge{flex-shrink:0;padding:0 var(--space-1);border-radius:var(--radius-sm);background:var(--accent-alpha-strong);color:var(--accent);font-size:var(--text-xs);font-weight:600;line-height:1.4;text-transform:uppercase;letter-spacing:.04em}.session-item-time{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1) var(--space-2);margin-top:var(--space-0_5);font-size:var(--text-s);color:var(--text-muted)}.btn-delete-session{background:none;border:none;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-1) var(--space-1_5);line-height:1;opacity:0;border-radius:var(--radius-sm);transition:opacity var(--dur-fast),color var(--dur-fast)}.session-item:hover .btn-delete-session{opacity:1}.btn-delete-session:hover{color:var(--color-danger)}.btn-delete-session:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:1px;border-radius:var(--radius-xs)}.sidebar-stats{display:block;font-size:var(--text-xs);color:var(--text-muted);margin-bottom:var(--space-3)}.session-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:var(--space-1_5);margin-right:var(--space-1_5);border:1px solid transparent;box-sizing:border-box}.session-status-dot.session-dot--live{background:var(--color-success)}.session-status-dot.session-dot--gone{background:var(--warning-alpha);border-color:var(--color-warning)}.session-status-dot.session-dot--unknown{background:transparent;border-color:var(--text-muted)}.session-status-dot.session-dot--starting{background:var(--accent)}.session-dot--creating{background:var(--accent);opacity:.5;animation:pulse-dot var(--dur-slow) ease-in-out infinite alternate}.session-item--creating{opacity:.7;pointer-events:none}.session-item-title--creating{color:var(--text-muted);font-style:italic}.session-status-dot.session-dot--error{background:var(--color-danger)}.session-status-dot.session-dot--archived{background:var(--text-muted);opacity:.5}.session-rename-input{width:100%;padding:var(--space-0_5) var(--space-1);background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-input);font-family:inherit;outline:2px solid transparent;outline-offset:0}.session-rename-input:focus-visible{outline-color:var(--accent)}.btn-close-session{background:none;border:none;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-1) var(--space-1_5);line-height:1;opacity:0;border-radius:var(--radius-sm);transition:opacity var(--dur-fast),color var(--dur-fast)}.session-item:hover .btn-close-session{opacity:1}.btn-close-session:hover{color:var(--color-warning)}.btn-close-session:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:1px;border-radius:var(--radius-xs)}.empty-state{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--text-muted)}.empty-state h2{font-size:var(--text-2xl);color:var(--text-secondary)}.empty-state-bar{position:absolute;top:var(--space-3);left:var(--space-3)}.btn-empty-new-session{margin-top:var(--space-2);padding:var(--space-2_5) var(--space-4_5);min-height:var(--h-control);background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius);cursor:pointer;font-family:inherit;font-size:var(--text-md);font-weight:var(--fw-medium);transition:opacity var(--dur) var(--ease)}.btn-empty-new-session:hover:not(:disabled){opacity:.9}.btn-empty-new-session:disabled{opacity:.5;cursor:not-allowed}.btn-empty-new-session:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.empty-state-hint{font-size:var(--text-s);color:var(--text-muted)}.empty-state-hint kbd{padding:0 var(--space-1);border:1px solid var(--border-color);border-radius:var(--radius-xs);background:var(--bg-elevated);font-family:var(--font-mono);font-size:var(--text-2xs)}.session-activity{margin-left:0;padding:0 var(--space-1_5);border-radius:var(--radius-full);font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase;line-height:1.4;background:var(--muted-alpha);color:var(--text-secondary)}.session-activity.busy{background:var(--accent-alpha-strong);color:var(--accent);animation:pulse 1.6s var(--ease-in-out) infinite}.session-activity.attached{background:var(--white-alpha-08);color:var(--text-primary)}.session-activity.watched{background:var(--white-alpha-08);color:var(--text-secondary)}.sidebar-filters{display:flex;flex-wrap:wrap;gap:var(--space-1_5);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color)}.filter-group{display:inline-flex;gap:1px;padding:1px;background:var(--white-alpha-03);border:1px solid var(--border-color);border-radius:var(--radius-full)}.filter-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-0_5) var(--space-2);border:none;background:none;border-radius:var(--radius-full);color:var(--text-secondary);font-family:inherit;font-size:var(--text-xs);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.filter-chip:hover{color:var(--text-primary);background:var(--bg-hover)}.filter-chip--on{background:var(--accent-alpha-strong);color:var(--accent)}.filter-chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.filter-chip-count{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted)}.filter-chip--on .filter-chip-count{color:var(--accent)}.session-source,.session-archived{padding:0 var(--space-1_5);border-radius:var(--radius-full);font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase}.session-source{background:var(--warning-alpha);color:var(--color-warning)}.session-archived{background:var(--muted-alpha);color:var(--text-secondary)}.palette-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;justify-content:center;align-items:flex-start;padding:max(var(--space-8),env(safe-area-inset-top)) var(--space-4);background:var(--scrim)}.palette{width:100%;max-width:calc(var(--u) * 140);max-height:70dvh;display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);overflow:hidden}.palette-input{padding:var(--space-3_5) var(--space-4);background:transparent;border:none;border-bottom:1px solid var(--border-color);color:var(--text-primary);font-family:inherit;font-size:var(--text-input);outline:none}.palette-list{list-style:none;overflow-y:auto;padding:var(--space-1_5)}.palette-row{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-2_5);background:none;border:none;border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer}.palette-row.selected{background:var(--accent-alpha-strong)}.palette-row-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-row-meta{font-size:var(--text-2xs);color:var(--text-muted);flex-shrink:0}.palette-row.new .palette-row-title{color:var(--accent)}.palette-empty{padding:var(--space-3);font-size:var(--text-s);color:var(--text-muted)}.palette-hint{padding:var(--space-2) var(--space-4);border-top:1px solid var(--border-color);font-size:var(--text-2xs);color:var(--text-muted)}.error-boundary-fallback{padding:var(--space-6);margin:var(--space-4);border:1px solid var(--color-danger);border-radius:var(--radius);background:var(--danger-alpha);color:var(--text-primary)}.error-boundary-fallback h3{margin:0 0 var(--space-2);color:var(--color-danger)}.error-boundary-fallback p{margin:0 0 var(--space-4);font-size:var(--text-md);opacity:.8}.btn-reload{padding:var(--space-1_5) var(--space-4);border:none;border-radius:var(--radius-sm);background:var(--accent);color:var(--text-on-accent);cursor:pointer;font-size:var(--text-md)}.btn-reload:hover{opacity:.85}.error-boundary-details{margin-top:var(--space-4);padding:var(--space-3);background:var(--black-alpha-08);border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:pre-wrap;word-break:break-all}.sidebar-admin-link{display:block;margin-top:var(--space-2);padding:var(--space-1) 0;font-size:var(--text-s);color:var(--text-secondary);text-decoration:none;transition:color var(--dur)}.sidebar-admin-link:focus-visible,.sidebar-signout:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}.sidebar-admin-link:hover{color:var(--accent)}.auth-splash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2)}.auth-splash-title{font-size:var(--text-xl);font-weight:var(--fw-semibold)}.auth-splash-text{font-size:var(--text-sm);color:var(--text-muted)}.login-page{height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.login-form{width:100%;max-width:320px;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--bg-bubble-assistant);border:1px solid var(--border-color);border-radius:var(--radius-lg)}.login-title{font-size:var(--text-xl);font-weight:var(--fw-semibold)}.login-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin-top:calc(var(--space-2) * -1)}.login-field{display:flex;flex-direction:column;gap:var(--space-1)}.login-label{font-size:var(--text-s);color:var(--text-secondary)}.login-input{padding:var(--space-2) var(--space-2_5);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-primary);font-family:inherit;font-size:var(--text-input);outline:none}.login-input:focus{border-color:var(--accent)}.login-input:disabled{opacity:.6}.login-error-region:empty{display:none}.login-error{font-size:var(--text-s);color:var(--color-danger-text)}.login-submit{padding:var(--space-2) var(--space-3);background:var(--accent);border:none;border-radius:var(--radius);color:var(--text-on-accent);font-family:inherit;font-size:var(--text-md);font-weight:var(--fw-medium);cursor:pointer}.login-submit:hover:not(:disabled){filter:brightness(1.1)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-submit:focus-visible,.login-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar-signout{display:block;margin-top:var(--space-0_5);padding:var(--space-1) 0;background:none;border:none;font-family:inherit;font-size:var(--text-s);color:var(--text-secondary);cursor:pointer;transition:color var(--dur)}.sidebar-signout:hover{color:var(--color-danger-text)}.toast-container{position:fixed;bottom:max(var(--space-4),env(safe-area-inset-bottom));right:var(--space-4);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);max-width:360px}.toast-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-size:var(--text-sm);animation:toastIn var(--dur) var(--ease);box-shadow:var(--shadow-2)}.toast-info{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-primary)}.toast-success{background:var(--bg-elevated);border:1px solid var(--color-success);color:var(--text-primary)}.toast-error{background:var(--danger-alpha);border:1px solid var(--color-danger);color:var(--color-danger-text)}.toast-message{flex:1}.toast-close{background:none;border:none;color:inherit;opacity:.6;cursor:pointer;font-size:var(--text-base);padding:0;line-height:1}.toast-close:hover{opacity:1}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.confirm-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);margin:auto;width:calc(100% - var(--space-6));max-width:400px;padding:var(--space-5);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);box-shadow:var(--shadow-2)}.confirm-dialog::backdrop{background:var(--scrim)}.confirm-dialog-message{font-size:var(--text-base);margin-bottom:var(--space-4);line-height:var(--lh-normal)}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.confirm-dialog-cancel{padding:var(--space-1) var(--space-3);background:transparent;border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:var(--text-sm);font-family:inherit}.confirm-dialog-cancel:hover{background:var(--bg-hover)}.confirm-dialog-ok{padding:var(--space-1) var(--space-3);background:var(--accent);border:none;border-radius:var(--radius);color:var(--text-on-accent);cursor:pointer;font-size:var(--text-sm);font-family:inherit}.confirm-dialog-ok--danger{background:var(--color-danger)}.confirm-dialog-ok:hover{opacity:.9}.confirm-dialog-cancel:focus-visible,.confirm-dialog-ok:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.new-session-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);margin:auto;width:calc(100% - var(--space-6));max-width:480px;max-height:85dvh;overflow-y:auto;padding:var(--space-5);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);box-shadow:var(--shadow-2)}.new-session-dialog::backdrop{background:var(--scrim)}.new-session-heading{font-size:var(--text-lg);font-weight:var(--fw-semibold);margin:0 0 var(--space-1)}.new-session-cost{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 var(--space-4);line-height:var(--lh-normal)}.new-session-label{display:block;font-size:var(--text-s);font-weight:var(--fw-medium);color:var(--text-secondary);margin-bottom:var(--space-1)}.new-session-optional{color:var(--text-secondary);font-weight:var(--fw-normal)}.new-session-input{width:100%;font-size:var(--text-input);font-family:inherit;padding:var(--space-2) var(--space-3);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-primary)}.new-session-input:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.new-session-group{border:1px solid var(--border-color);border-radius:var(--radius);padding:var(--space-2) var(--space-3) var(--space-3);margin:var(--space-4) 0 0}.new-session-group--deny{border-color:var(--danger-alpha-strong)}.new-session-legend{font-size:var(--text-s);font-weight:var(--fw-semibold);color:var(--text-primary);padding:0 var(--space-1)}.new-session-hint{font-size:var(--text-s);color:var(--text-secondary);line-height:var(--lh-snug);margin:0 0 var(--space-2)}.new-session-hint strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.new-session-check{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;font-size:var(--text-sm);color:var(--text-primary);cursor:pointer}.new-session-check input{accent-color:var(--accent);cursor:pointer}.new-session-check--deny input{accent-color:var(--color-danger)}.new-session-check--off{color:var(--text-secondary)}.new-session-summary{font-size:var(--text-s);color:var(--text-secondary);line-height:var(--lh-snug);margin:var(--space-4) 0 0;padding:var(--space-2) var(--space-3);background:var(--white-alpha-03);border-radius:var(--radius)}.new-session-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4)}.btn-sidebar-toggle{display:none;align-items:center;justify-content:center;width:var(--tap-target);height:var(--tap-target);flex-shrink:0;background:none;border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:var(--text-base);line-height:var(--lh-tight);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.btn-sidebar-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-sidebar-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar-scrim{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-panel) - 1);background:var(--scrim);border:none;cursor:pointer}.chat-view{flex:1;display:flex;flex-direction:column;min-height:0}.chat-header{display:flex;align-items:center;gap:var(--space-3);justify-content:space-between;padding:var(--space-3) var(--space-4_5);border-bottom:1px solid var(--border-color);flex-shrink:0}.chat-title{font-size:var(--text-base);font-weight:var(--fw-semibold);margin-right:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-engine-badge{flex-shrink:0;padding:0 var(--space-1);border-radius:var(--radius-sm);background:var(--accent-alpha-strong);color:var(--accent);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.chat-connection{display:inline-flex;align-items:center;gap:var(--space-1_5);flex-shrink:0}.chat-connection-label{font-size:var(--text-xs);color:var(--text-secondary)}.connection-dot{width:8px;height:8px;border-radius:50%;background:var(--color-danger);flex-shrink:0}.connection-dot.connected{background:var(--color-success)}.connection-dot.detached,.connection-dot.archived{background:var(--text-muted)}.message-list-region{position:relative;flex:1;display:flex;min-height:0}.message-list{flex:1;overflow-y:auto;padding:var(--space-2) var(--space-4_5)}.message-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-8) 0;color:var(--text-muted);text-align:center}.message-list-empty-title{font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-secondary)}.message-list-empty-hint{font-size:var(--text-sm);color:var(--text-muted);opacity:.8}.starter-prompts{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);max-width:var(--w-measure);margin-top:var(--space-2)}.starter-prompt{padding:var(--space-2) var(--space-3_5);border:1px solid var(--border-color);border-radius:var(--radius-full);background:var(--bg-elevated);color:var(--text-secondary);font-family:inherit;font-size:var(--text-sm);cursor:pointer;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.starter-prompt:hover{border-color:var(--accent);color:var(--text-primary)}.starter-prompt:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-jump-latest{position:absolute;bottom:var(--space-4);left:50%;transform:translate(-50%);padding:var(--space-1_5) var(--space-3_5);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-primary);font-size:var(--text-s);cursor:pointer;box-shadow:var(--shadow-2);transition:background var(--dur) var(--ease)}.btn-jump-latest:hover{background:var(--bg-hover)}.btn-jump-latest:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.load-earlier{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-2_5);padding:var(--space-2) 0 var(--space-4);font-size:var(--text-s);color:var(--text-muted)}.btn-load-earlier{background:none;border:1px solid var(--border-color);color:var(--text-secondary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-s)}.btn-load-earlier:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-load-earlier:disabled{opacity:.5;cursor:progress}.load-earlier-error{color:var(--color-danger-text)}.message-bubble{margin-bottom:var(--space-4_5);max-width:85%;animation:messageIn var(--dur-med) var(--ease-out)}.message-bubble:not(.streaming){content-visibility:auto;contain-intrinsic-size:auto calc(var(--u) * 30)}.message-head{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.message-actions{display:flex;gap:var(--space-1);margin-left:auto;opacity:0;transition:opacity var(--dur) var(--ease)}.message-bubble:hover .message-actions,.message-bubble:focus-within .message-actions{opacity:1}.btn-message-action{background:none;border:1px solid var(--border-color);color:var(--text-secondary);padding:0 var(--space-2);height:var(--h-control-sm);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase}.btn-message-action:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-message-action:focus-visible{outline:2px solid var(--accent);outline-offset:1px;opacity:1}.message-empty{padding:var(--space-1) 0;font-size:var(--text-sm);font-style:italic;color:var(--text-secondary)}.message-cancelled{margin-top:var(--space-1_5);padding:0 var(--space-1);font-size:var(--text-xs);color:var(--color-warning)}@keyframes messageIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.message-bubble.user{margin-left:auto}.message-bubble.assistant{margin-right:auto}.message-role{display:inline-block;font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;font-weight:var(--fw-semibold);color:var(--text-secondary);margin-bottom:var(--space-1);padding:0 var(--space-1)}.message-content{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-base);line-height:var(--lh-relaxed);overflow-wrap:break-word}.message-bubble.user .message-content{background:var(--bg-bubble-user);color:var(--text-on-accent)}.message-bubble.assistant .message-content{background:var(--bg-bubble-assistant);border:1px solid var(--border-color)}.message-content p{margin-bottom:var(--space-2)}.message-content p:last-child{margin-bottom:0}.message-content ul,.message-content ol{margin:var(--space-2) 0;padding-left:var(--space-4_5)}.message-content li{margin-bottom:var(--space-1)}.message-content h1,.message-content h2,.message-content h3{margin:var(--space-3) 0 var(--space-1_5)}.message-table-wrapper{overflow-x:auto;overscroll-behavior-x:contain}.message-content table{font-size:var(--text-s)}.inline-code{background:var(--white-alpha-10);padding:var(--space-0_5) var(--space-1_5);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:var(--font-mono)}.code-block-wrapper{margin:var(--space-3) 0;border-radius:var(--radius);overflow:hidden}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-1_5) var(--space-3);background:var(--bg-code);font-size:var(--text-s);color:var(--text-secondary)}.code-block-lang{font-family:var(--font-mono);letter-spacing:.04em}.code-block-plain{margin:0;padding:var(--space-3);background:var(--bg-code);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--lh-snug);overflow-x:auto;overscroll-behavior-x:contain}.btn-copy{background:none;border:1px solid var(--border-color);color:var(--text-secondary);padding:var(--space-0_5) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);transition:all var(--dur-fast)}.btn-copy:hover{background:var(--bg-hover);color:var(--text-primary)}.code-block-wrapper pre{margin:0!important;border-radius:0 0 var(--radius) var(--radius)!important}.status-indicator{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4_5) var(--space-1);font-size:var(--text-sm);color:var(--text-secondary)}.token-speed{display:block;padding:0 var(--space-4_5) var(--space-1_5);font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-muted)}.token-speed--summary{color:var(--text-secondary);padding-bottom:var(--space-3)}.status-spinner{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1s var(--ease-in-out) infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.status-thinking{color:var(--accent)}.status-streaming{color:var(--color-success)}.status-cancelling,.status-compacting{color:var(--color-warning)}.token-speed--live{color:var(--color-success)}.streaming-indicator{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) 0}.typing-dot{width:4px;height:4px;border-radius:50%;background:var(--accent);display:inline-block;animation:typingBounce 1.4s var(--ease-in-out) infinite both}.typing-dot:nth-child(1){animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes blink{0%,to{opacity:.3}50%{opacity:1}}.streaming-cursor{display:inline-block;width:2px;height:1.1em;background:var(--accent);border-radius:1px;margin-left:1px;vertical-align:text-bottom;animation:blink .8s var(--ease-in-out) infinite}.reasoning-block{margin:var(--space-2) 0;padding:var(--space-3) var(--space-4);background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius);font-size:var(--text-sm)}.reasoning-block summary{cursor:pointer;color:var(--text-secondary);font-weight:var(--fw-medium);margin-bottom:var(--space-2)}.reasoning-text{white-space:pre-wrap;word-break:break-word;color:var(--text-muted);font-size:var(--text-sm);line-height:1.6;margin:0}.tool-call-list{display:flex;flex-direction:column;gap:var(--space-1_5);margin:var(--space-2) 0 var(--space-3);max-width:85%}.tool-call{border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-sidebar);overflow:hidden}.tool-call-list.live .tool-call{border-color:var(--accent-alpha-strong)}.tool-call-summary{display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--text-sm);list-style:none}.tool-call-summary::-webkit-details-marker{display:none}.tool-call-summary:before{content:"▸";color:var(--text-muted);font-size:var(--text-2xs)}.tool-call[open]>.tool-call-summary:before{content:"▾"}.tool-call-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tool-call-name{font-weight:var(--fw-semibold);color:var(--text-primary);flex-shrink:0}.tool-call-hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-call-partial,.tool-call-running{margin-left:auto;font-size:var(--text-2xs);color:var(--accent);flex-shrink:0}.tool-call-running:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:var(--space-1);vertical-align:middle;animation:pulse-dot var(--dur-slow) ease-in-out infinite alternate}@keyframes pulse-dot{0%{opacity:.3}to{opacity:1}}.tool-call-body{padding:0 var(--space-3) var(--space-3);border-top:1px solid var(--border-color)}.tool-call-json{margin:var(--space-2) 0 0;padding:var(--space-2_5);background:var(--bg-code);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--lh-snug);color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;max-height:calc(var(--u) * 70);overflow:auto}.tool-call-result{color:var(--text-muted)}.tool-call-section{margin-top:var(--space-3);font-size:var(--text-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.tool-call-empty{margin-top:var(--space-2);font-size:var(--text-s);color:var(--text-muted)}.attach-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3) var(--space-4);padding:var(--space-4) var(--space-4_5);padding-bottom:max(var(--space-4),env(safe-area-inset-bottom));border-top:1px solid var(--border-color);background:var(--bg-sidebar);flex-shrink:0}.attach-bar-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.attach-bar-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.attach-bar-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.attach-bar-dot.live{background:var(--color-success)}.attach-bar-dot.gone{background:var(--warning-alpha);border:1px solid var(--color-warning);box-sizing:border-box}.attach-bar-dot.busy{background:var(--accent);animation:pulse 1s var(--ease-in-out) infinite}.attach-bar-facts{font-size:var(--text-s);font-family:var(--font-mono);color:var(--text-secondary)}.attach-bar-note{font-size:var(--text-s);color:var(--text-muted)}.btn-attach{padding:var(--space-2_5) var(--space-4_5);background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius);cursor:pointer;font-size:var(--text-md);font-weight:var(--fw-semibold);flex-shrink:0;transition:opacity var(--dur) var(--ease)}.btn-attach:hover:not(:disabled){opacity:.9}.btn-attach:disabled{opacity:.4;cursor:not-allowed}.btn-attach:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.attach-bar-blocked{flex-basis:100%;font-size:var(--text-s);color:var(--color-warning)}.attach-bar--archived{border-left:2px solid var(--text-muted);background:var(--bg-bubble-assistant)}.attach-bar--archived .attach-bar-title{color:var(--text-secondary)}.input-area{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-4_5);padding-bottom:max(var(--space-4),env(safe-area-inset-bottom));border-top:1px solid var(--border-color);flex-shrink:0;position:relative}.input-row{display:flex;gap:var(--space-3)}.input-textarea{flex:1;min-width:0;resize:none;padding:var(--space-2_5) var(--space-3_5);background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-input);font-family:inherit;line-height:var(--lh-normal);outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.input-textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.input-textarea:disabled{opacity:.5}.btn-send{padding:var(--space-2_5) var(--space-4_5);background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius);cursor:pointer;font-size:var(--text-md);font-weight:var(--fw-medium);transition:all var(--dur) var(--ease);flex-shrink:0}.btn-send:hover:not(:disabled){opacity:.9}.btn-send:active:not(:disabled){transform:scale(.96)}.btn-send:disabled{opacity:.4;cursor:not-allowed}.btn-send:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-cancel{padding:var(--space-2_5) var(--space-4_5);background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;font-size:var(--text-md);font-weight:var(--fw-medium);transition:all var(--dur) var(--ease);flex-shrink:0}.btn-cancel:hover{background:var(--bg-sidebar);color:var(--text-primary)}.btn-cancel:active{transform:scale(.96)}.btn-cancel:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input-hint{font-size:var(--text-xs);color:var(--text-muted)}.input-hint kbd{padding:0 var(--space-1);border:1px solid var(--border-color);border-radius:var(--radius-xs);background:var(--bg-elevated);font-family:var(--font-mono);font-size:var(--text-2xs)}.input-file-hidden{display:none}.input-files{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color)}.input-file-preview{display:flex;align-items:center;gap:var(--space-1_5);padding:var(--space-1) var(--space-2);background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius);max-width:220px;overflow:hidden}.input-file-preview--error{border-color:var(--color-danger)}.input-file-preview--sent{opacity:.6}.input-file-sent{font-size:var(--text-2xs);color:var(--text-muted);flex-shrink:0}.input-files-note{flex-basis:100%;margin:0;font-size:var(--text-xs);color:var(--text-muted);line-height:var(--lh-snug)}.input-file-thumb{width:32px;height:32px;object-fit:cover;border-radius:var(--radius);flex-shrink:0}.input-file-icon{font-size:18px;flex-shrink:0}.input-file-name{font-size:var(--text-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.input-file-progress{width:40px;height:4px;accent-color:var(--accent);flex-shrink:0}.input-file-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);padding:0;line-height:1;flex-shrink:0}.input-file-remove:hover{color:var(--color-danger-text)}.btn-attach{background:none;border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:var(--text-md);padding:var(--space-2_5) var(--space-3);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease);flex-shrink:0}.btn-attach:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-attach:disabled{opacity:.5}.input-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);text-align:center;background:var(--accent-alpha-strong);border:2px dashed var(--accent);border-radius:var(--radius);color:var(--accent);font-size:var(--text-md);font-weight:600;pointer-events:none;z-index:2}.input-drop-title{font-size:var(--text-md)}.input-drop-note{font-size:var(--text-xs);font-weight:var(--fw-normal);color:var(--text-secondary);max-width:var(--w-measure)}.input-upload-error{position:absolute;bottom:100%;left:0;right:0;padding:var(--space-2) var(--space-3);background:var(--danger-alpha);color:var(--color-danger-text);font-size:var(--text-sm);border-bottom:1px solid var(--color-danger)}.session-item-actions{display:flex;align-items:center;gap:var(--space-1);margin-top:var(--space-1_5)}.message-reasoning{margin:0 var(--space-4) var(--space-2);padding:var(--space-2_5) var(--space-3_5);background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius);font-size:var(--text-sm)}.message-reasoning-summary{cursor:pointer;color:var(--text-secondary);font-weight:var(--fw-medium);font-size:var(--text-sm)}.message-reasoning-text{white-space:pre-wrap;word-break:break-word;color:var(--text-muted);font-size:var(--text-sm);line-height:1.6;margin:var(--space-2) 0 0;font-family:inherit}.context-bar{height:4px;background:var(--bg-hover);position:relative;flex-shrink:0;transition:height var(--dur) var(--ease)}.context-bar:hover{height:20px}.context-bar__fill{height:100%;background:var(--color-success);border-radius:0 var(--radius-xs) var(--radius-xs) 0;transition:width var(--dur-slow) var(--ease),background var(--dur-slow) var(--ease)}.context-bar--medium .context-bar__fill{background:var(--color-warning)}.context-bar--high .context-bar__fill{background:var(--color-danger)}.context-bar__label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:var(--text-2xs);color:var(--text-primary);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease)}.context-bar:hover .context-bar__label{opacity:1}.session-error-banner{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4_5);background:var(--danger-alpha);border-bottom:1px solid var(--danger-alpha-strong);font-size:var(--text-sm);color:var(--color-danger-text);flex-shrink:0;min-height:38px}.btn-dismiss-error{background:none;border:1px solid var(--danger-alpha-strong);color:var(--color-danger-text);padding:var(--space-0_5) var(--space-2_5);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-s);transition:background var(--dur)}.btn-dismiss-error:hover{background:var(--danger-alpha-hover)}.connection-dot.connecting{background:var(--color-warning)}.connection-dot.failed{background:var(--color-danger);box-shadow:0 0 0 2px var(--danger-alpha-strong)}.admin-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.admin-header{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4_5);border-bottom:1px solid var(--border-color);flex-shrink:0}.admin-back-link{font-size:var(--text-sm);color:var(--text-muted);text-decoration:none;transition:color var(--dur);white-space:nowrap}.admin-back-link:hover{color:var(--accent)}.admin-title{flex:1;font-size:var(--text-lg);font-weight:var(--fw-semibold);margin:0}.admin-btn-cleanup{padding:var(--space-1_5) var(--space-3_5);background:transparent;border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:var(--text-s);transition:background var(--dur),color var(--dur);white-space:nowrap}.admin-btn-cleanup:hover{background:var(--bg-sidebar);color:var(--text-primary)}.admin-nav{display:flex;gap:0;padding:0 var(--space-4_5);border-bottom:1px solid var(--border-color);flex-shrink:0}.admin-nav-tab{padding:var(--space-2_5) var(--space-4);background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);font-family:inherit;transition:color var(--dur),border-color var(--dur)}.admin-nav-tab:hover{color:var(--text-primary)}.admin-nav-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.admin-error-banner{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4_5);background:var(--danger-alpha);border-bottom:1px solid var(--danger-alpha-strong);font-size:var(--text-sm);color:var(--color-danger-text);flex-shrink:0}.admin-error-banner button{background:none;border:1px solid var(--danger-alpha-strong);color:var(--color-danger-text);padding:var(--space-0_5) var(--space-2_5);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-s)}.admin-tab-content{flex:1;overflow-y:auto;padding:var(--space-4_5)}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3);margin-bottom:var(--space-4_5)}.admin-card{padding:var(--space-4);background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--space-1)}.admin-card-label{font-size:var(--text-s);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.admin-card-value{font-size:var(--text-2xl);font-weight:var(--fw-semibold);color:var(--text-primary);font-variant-numeric:tabular-nums}.admin-card-value--ok{color:var(--color-success)}.admin-card-value--warn{color:var(--color-warning)}.admin-card-sub{font-size:var(--text-s);color:var(--text-muted)}.admin-section{margin-bottom:var(--space-5)}.admin-section-title{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-secondary);margin-bottom:var(--space-3)}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.admin-table th{text-align:left;padding:var(--space-2) var(--space-2_5);font-size:var(--text-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color)}.admin-table td{padding:var(--space-2) var(--space-2_5);border-bottom:1px solid var(--border-color);vertical-align:middle}.admin-table tr:hover td{background:var(--bg-hover)}.admin-table-mono{font-family:var(--font-mono);font-size:var(--text-s)}.admin-table-muted{font-size:var(--text-s);color:var(--text-muted)}.admin-table-empty{text-align:center;color:var(--text-muted);padding:var(--space-5)!important}.admin-badge{display:inline-block;padding:var(--space-0_5) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--fw-medium)}.admin-badge--ok{background:var(--success-alpha);color:var(--color-success)}.admin-badge--warn{background:var(--warning-alpha);color:var(--color-warning)}.admin-badge--muted{background:var(--muted-alpha);color:var(--text-muted)}.admin-actions{display:flex;gap:var(--space-1_5);white-space:nowrap}.admin-btn-kill{padding:var(--space-1) var(--space-2_5);background:transparent;border:1px solid var(--color-danger);border-radius:var(--radius);color:var(--color-danger);cursor:pointer;font-size:var(--text-xs);font-weight:var(--fw-medium);transition:background var(--dur)}.admin-btn-kill:hover{background:var(--danger-alpha)}.admin-btn-view{padding:var(--space-1) var(--space-2_5);background:transparent;border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:var(--text-xs);transition:background var(--dur),color var(--dur)}.admin-btn-view:hover{background:var(--bg-hover);color:var(--text-primary)}.admin-btn-link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:var(--text-s);font-family:var(--font-mono);padding:0;text-decoration:none}.admin-btn-link:hover{text-decoration:underline}.admin-btn-refresh{padding:var(--space-1_5) var(--space-3_5);background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:var(--text-s);font-family:inherit;transition:background var(--dur)}.admin-btn-refresh:hover:not(:disabled){background:var(--bg-hover)}.admin-btn-refresh:disabled{opacity:.5;cursor:not-allowed}.admin-toolbar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.admin-toolbar-count{font-size:var(--text-s);color:var(--text-muted)}.admin-filter-select{padding:var(--space-1) var(--space-2);background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-input);font-family:inherit;outline:none}.admin-filter-select:focus{border-color:var(--accent)}.admin-event-type{font-size:var(--text-s);padding:var(--space-0_5) var(--space-1_5);background:var(--accent-alpha);border-radius:var(--radius-sm);color:var(--accent)}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-4);font-size:var(--text-sm);color:var(--text-muted)}.admin-pagination-btn{padding:var(--space-1) var(--space-3);background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:var(--text-s);font-family:inherit;transition:background var(--dur)}.admin-pagination-btn:hover:not(:disabled){background:var(--bg-hover)}.admin-pagination-btn:disabled{opacity:.4;cursor:not-allowed}.spark{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;margin:0}.spark-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.spark-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.spark-value{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-primary);font-variant-numeric:tabular-nums}.spark-svg{display:block;width:100%;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-sidebar)}.spark-scale{display:flex;justify-content:space-between;font-size:var(--text-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.spark-empty{font-style:italic}.spark--compact{display:block;width:64px}.spark--compact .spark-svg{border:none;background:none}.admin-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4)}.live-chip{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-1_5) var(--space-3);border:1px solid var(--border-color);border-radius:var(--radius-full);background:var(--bg-sidebar);font-size:var(--text-s);width:fit-content;max-width:100%;flex-wrap:wrap}.live-chip-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--text-muted);flex-shrink:0}.live-chip-label{font-weight:var(--fw-medium);color:var(--text-secondary)}.live-chip-meta{color:var(--text-muted);font-variant-numeric:tabular-nums}.live-chip--live .live-chip-dot{background:var(--color-success);animation:live-pulse 2s var(--ease-in-out) infinite}.live-chip--live .live-chip-label{color:var(--color-success)}.live-chip--connecting .live-chip-dot,.live-chip--reconnecting .live-chip-dot,.live-chip--stale .live-chip-dot{background:var(--color-warning)}.live-chip--stale .live-chip-label,.live-chip--reconnecting .live-chip-label{color:var(--color-warning)}.live-chip--closed .live-chip-dot,.live-chip--denied .live-chip-dot{background:var(--color-danger)}.live-chip--closed .live-chip-label,.live-chip--denied .live-chip-label{color:var(--color-danger-text)}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.35}}.admin-limits{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-2)}.admin-limit{display:flex;flex-direction:column;gap:var(--space-0_5);padding:var(--space-2) var(--space-2_5);background:var(--white-alpha-03);border:1px solid var(--border-color);border-radius:var(--radius);min-width:0}.admin-limit-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.admin-limit-value{font-family:var(--font-mono);font-size:var(--text-s);color:var(--text-primary);overflow-wrap:anywhere}.admin-note{font-size:var(--text-s);color:var(--text-muted);margin-bottom:var(--space-3)}.state-badges{display:flex;flex-wrap:wrap;gap:var(--space-1)}.state-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-0_5) var(--space-1_5);border-radius:var(--radius-sm);border:1px solid var(--border-color);font-size:var(--text-2xs);white-space:nowrap;color:var(--text-muted)}.state-badge--on{border-color:var(--success-alpha);background:var(--success-alpha);color:var(--color-success)}.state-badge--busy{border-color:var(--accent-alpha-strong);background:var(--accent-alpha);color:var(--accent)}.state-badge--off{border-color:var(--danger-alpha-strong);background:var(--danger-alpha);color:var(--color-danger-text)}.state-badge--alert{border-color:var(--color-warning);background:var(--warning-alpha);color:var(--color-warning)}.state-badge--idle,.state-badge--unknown{background:var(--muted-alpha)}.admin-meter{display:flex;flex-direction:column;gap:var(--space-0_5);min-width:120px}.admin-meter-track{height:4px;background:var(--white-alpha-08);border-radius:var(--radius-xs);overflow:hidden}.admin-meter-fill{height:100%;background:var(--accent);transition:width var(--dur-slow) var(--ease)}.admin-meter-fill--warn{background:var(--color-warning)}.admin-meter-label{font-size:var(--text-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.admin-num{font-variant-numeric:tabular-nums;white-space:nowrap}.admin-num>span{display:block;font-size:var(--text-s)}.admin-container-name{display:block;text-align:left;font-size:var(--text-sm)}.admin-container-sub{display:block;font-size:var(--text-2xs);max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-audit-title{display:block;font-size:var(--text-s)}.admin-source{display:inline-block;padding:0 var(--space-1);border-radius:var(--radius-sm);border:1px solid var(--border-color);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em}.admin-source--slack{color:var(--color-warning);border-color:var(--warning-alpha)}.admin-source--web{color:var(--accent);border-color:var(--accent-alpha-strong)}.admin-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-0_5) var(--space-2);border:1px solid var(--accent-alpha-strong);background:var(--accent-alpha);border-radius:var(--radius-full);color:var(--accent);font-size:var(--text-s);font-family:inherit;cursor:pointer}.admin-table-wrapper{width:100%;overflow-x:auto;overscroll-behavior-x:contain}.detail-drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100%;display:flex;flex-direction:column;background:var(--bg-primary);border-left:1px solid var(--border-color);box-shadow:var(--shadow-2);z-index:var(--z-panel);padding-top:env(safe-area-inset-top)}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-color)}.detail-title{font-size:var(--text-base);font-weight:var(--fw-semibold);margin:0;overflow-wrap:anywhere}.detail-subtitle{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.detail-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--text-md);line-height:1;padding:var(--space-1);border-radius:var(--radius-sm)}.detail-close:hover{color:var(--text-primary);background:var(--bg-hover)}.detail-body{flex:1;overflow-y:auto;padding:var(--space-4)}.detail-section{margin-bottom:var(--space-5)}.detail-section-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--border-color)}.detail-title-badge{text-transform:none;letter-spacing:0}.detail-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-2);margin:0 0 var(--space-3)}.detail-field{min-width:0}.detail-field-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.detail-field-value{margin:0;font-size:var(--text-s);color:var(--text-primary);overflow-wrap:anywhere}.detail-field-value--mono{font-family:var(--font-mono)}.detail-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3)}.detail-note{font-size:var(--text-2xs);color:var(--text-muted);margin-top:var(--space-2)}.detail-warning{font-size:var(--text-xs);color:var(--color-warning);background:var(--warning-alpha);border:1px solid var(--warning-alpha);border-radius:var(--radius);padding:var(--space-1_5) var(--space-2);margin-bottom:var(--space-2)}.detail-error{font-size:var(--text-s);color:var(--color-danger-text);margin-top:var(--space-2)}.detail-log-toolbar{display:flex;align-items:center;gap:var(--space-2)}.detail-log-lines{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-s);color:var(--text-muted)}.detail-log{margin-top:var(--space-2);padding:var(--space-2);max-height:40vh;overflow:auto;background:var(--bg-code);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-2xs);line-height:var(--lh-snug);white-space:pre-wrap;word-break:break-all}.detail-footer{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-color)}.system-panel{background:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center;flex-shrink:0;overflow:hidden;transition:width var(--dur-med) var(--ease)}.system-panel.collapsed{width:var(--w-syspanel-rail);padding:var(--space-2) 0;gap:var(--space-1_5)}.system-panel.expanded{width:var(--w-syspanel);align-items:stretch}.system-panel-label{font-size:var(--text-2xs);font-weight:var(--fw-bold);letter-spacing:.1em;color:var(--text-muted);writing-mode:vertical-rl;text-orientation:mixed}.system-panel-icon{font-size:var(--text-md)}.system-panel-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:var(--space-0_5) var(--space-1);font-size:var(--text-md);line-height:1;border-radius:var(--radius-sm);transition:color var(--dur-fast)}.system-panel-toggle:hover{color:var(--text-primary)}.system-panel-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.system-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2_5) var(--space-3);border-bottom:1px solid var(--border-color);flex-shrink:0}.system-panel-title{font-size:var(--text-sm);font-weight:var(--fw-semibold);display:flex;align-items:center;gap:var(--space-1_5)}.system-panel-header-actions{display:flex;align-items:center;gap:var(--space-1)}.system-panel-refresh{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:var(--space-0_5) var(--space-1);font-size:var(--text-base);line-height:1;border-radius:var(--radius-sm);transition:color var(--dur-fast),transform var(--dur-slow)}.system-panel-refresh:hover:not(:disabled){color:var(--text-primary)}.system-panel-refresh:disabled{opacity:.4;cursor:not-allowed}.system-panel-refresh:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.system-panel-body{flex:1;overflow-y:auto;padding:var(--space-2) var(--space-3)}.system-panel-status-text{font-size:var(--text-s);color:var(--text-muted);padding:var(--space-2) 0}.system-panel-error{font-size:var(--text-s);color:var(--color-danger);margin-bottom:var(--space-1_5)}.system-panel-retry{background:none;border:1px solid var(--border-color);color:var(--text-secondary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-s);transition:background var(--dur-fast)}.system-panel-retry:hover{background:var(--bg-hover)}.system-panel-section{margin-bottom:var(--space-4)}.system-panel-section-title{font-size:var(--text-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--border-color)}.system-panel-stat{font-size:var(--text-s);color:var(--text-secondary);margin-bottom:var(--space-1)}.system-panel-health-row{display:flex;align-items:center;gap:var(--space-1_5);font-size:var(--text-s);color:var(--text-secondary);margin-bottom:var(--space-1)}.system-panel-health-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.system-panel-health-dot.ok{background:var(--color-success)}.system-panel-health-dot.fail{background:var(--color-danger)}.system-panel-container-card{background:var(--white-alpha-03);border:1px solid var(--border-color);border-radius:var(--radius);padding:var(--space-2) var(--space-2_5);margin-bottom:var(--space-2);font-size:var(--text-xs)}.system-panel-container-session{margin:0 0 var(--space-1) 0;font-size:var(--text-s);font-weight:var(--fw-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.system-panel-container-session--none{color:var(--text-muted);font-weight:var(--fw-normal);font-style:italic}.system-panel-container-row{display:flex;align-items:center;gap:var(--space-1_5);margin-bottom:var(--space-1)}.system-panel-container-row:last-of-type{margin-bottom:0}.system-panel-container-label{color:var(--text-muted);width:28px;flex-shrink:0}.system-panel-container-row code{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-secondary)}.system-panel-memory{margin-top:var(--space-1_5)}.system-panel-memory-bar{height:4px;background:var(--white-alpha-08);border-radius:var(--radius-xs);overflow:hidden;margin-bottom:var(--space-1)}.system-panel-memory-fill{height:100%;background:var(--accent);border-radius:var(--radius-xs);transition:width var(--dur-slow) var(--ease)}.system-panel-memory-label{font-size:var(--text-2xs);color:var(--text-muted)}.system-panel-footer{padding:var(--space-1_5) var(--space-3);border-top:1px solid var(--border-color);flex-shrink:0}.audit-stream{display:flex;flex-direction:column;min-height:0;height:100%}.audit-stream-body{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--space-3);flex:1;min-height:0}.audit-stream-lanes{display:flex;flex-direction:column;gap:var(--space-1);overflow-y:auto;padding-right:var(--space-1);border-right:1px solid var(--border-color)}.audit-stream-lane{display:flex;flex-direction:column;gap:var(--space-0_5);padding:var(--space-2) var(--space-2_5);background:none;border:1px solid transparent;border-radius:var(--radius);color:var(--text-secondary);font-family:inherit;text-align:left;cursor:pointer;transition:background var(--dur),border-color var(--dur)}.audit-stream-lane:hover{background:var(--bg-hover)}.audit-stream-lane--active{background:var(--accent-alpha);border-color:var(--accent-alpha-strong);color:var(--text-primary)}.audit-stream-lane-title{display:flex;align-items:center;gap:var(--space-1_5);font-size:var(--text-sm);font-weight:var(--fw-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-stream-lane-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--color-success);flex-shrink:0;animation:live-pulse 2s var(--ease-in-out) infinite}.audit-stream-lane-meta{font-size:var(--text-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.audit-stream-lane-empty{padding:var(--space-3) var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.audit-stream-lane-tag{font-size:var(--text-2xs);color:var(--text-secondary);background:var(--white-alpha-03);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:0 var(--space-1);max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-stream-status{font-size:var(--text-s);color:var(--text-muted)}.audit-stream-status--open{color:var(--color-success)}.audit-stream-status--denied,.audit-stream-status--closed{color:var(--color-danger-text)}.audit-stream-list{display:flex;flex-direction:column;gap:var(--space-1_5);min-height:0;overflow-y:auto;padding-right:var(--space-1)}.admin-tab-content--flush{display:flex;flex-direction:column;overflow:hidden}.audit-stream-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-5) 0;font-size:var(--text-sm);color:var(--text-muted);text-align:center}.audit-stream-empty-text{margin:0;max-width:var(--w-measure)}.audit-stream-row{padding:var(--space-1_5) var(--space-2_5);background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius)}.audit-stream-row--prompt{border-left:2px solid var(--accent);background:var(--bg-bubble-assistant)}.audit-stream-row-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.audit-stream-time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.audit-stream-session{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.audit-stream-replay{font-size:var(--text-2xs);color:var(--text-muted);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:0 var(--space-1)}.audit-stream-prompt{margin-top:var(--space-1_5);padding:var(--space-2);max-height:320px;overflow:auto;background:var(--bg-primary);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-s);line-height:var(--lh-normal);white-space:pre-wrap;word-break:break-word}.audit-stream-details{margin-top:var(--space-1)}.audit-stream-details summary{font-size:var(--text-xs);color:var(--text-muted);cursor:pointer}.audit-stream-details pre{margin-top:var(--space-1);padding:var(--space-1_5) var(--space-2);max-height:240px;overflow:auto;background:var(--bg-primary);border-radius:var(--radius);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre-wrap;word-break:break-word}.audit-stream-dropped{padding:var(--space-1) var(--space-2_5);border:1px dashed var(--color-warning);border-radius:var(--radius);color:var(--color-warning);font-size:var(--text-xs)}.admin-inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);padding:var(--space-3);background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius)}.admin-field{display:flex;flex-direction:column;gap:var(--space-1);flex:1 1 200px;min-width:0}.admin-field--wide{flex-basis:100%}.admin-field--narrow{flex:0 1 120px}.admin-field--check{flex:0 0 auto;flex-direction:row;align-items:center;gap:var(--space-2);height:var(--h-control);font-size:var(--text-sm);color:var(--text-secondary)}.admin-field-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.admin-input,.admin-textarea{padding:var(--space-1_5) var(--space-2);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-input);font-family:inherit;min-width:0;outline:none}.admin-textarea{resize:vertical;line-height:var(--lh-snug)}.admin-input:focus,.admin-textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.admin-form-actions{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}.admin-btn-primary{padding:var(--space-1_5) var(--space-3_5);min-height:var(--h-control);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);color:var(--text-on-accent);cursor:pointer;font-size:var(--text-s);font-family:inherit;font-weight:var(--fw-medium);transition:opacity var(--dur)}.admin-btn-primary:hover:not(:disabled){opacity:.9}.admin-btn-primary:disabled{opacity:.5;cursor:not-allowed}.admin-hint{flex-basis:100%;margin:0;font-size:var(--text-s);color:var(--text-muted)}.admin-form-error{flex-basis:100%;margin:0;padding:var(--space-1_5) var(--space-2_5);background:var(--danger-alpha);border-radius:var(--radius);color:var(--color-danger-text);font-size:var(--text-s)}.admin-user-name{font-weight:var(--fw-medium);margin-right:var(--space-2)}.admin-lock-note{padding:var(--space-1) var(--space-2_5)!important;background:var(--warning-alpha);color:var(--color-warning);font-size:var(--text-s)}.admin-memory-content{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:var(--w-measure);font-size:var(--text-sm);line-height:var(--lh-snug)}.admin-dup{margin-top:var(--space-3);padding:var(--space-3);background:var(--accent-alpha);border:1px solid var(--accent-alpha-strong);border-left:3px solid var(--accent);border-radius:var(--radius)}.admin-dup-title{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-primary)}.admin-dup-content{margin:0 0 var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-primary);border-radius:var(--radius);color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--lh-snug);white-space:pre-wrap;overflow-wrap:break-word}.admin-dup-meta{margin:0 0 var(--space-3);font-size:var(--text-s);color:var(--text-muted)}.admin-dup-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.admin-secret{margin-bottom:var(--space-5);padding:var(--space-4);background:var(--warning-alpha);border:1px solid var(--color-warning);border-radius:var(--radius)}.admin-secret-title{margin:0 0 var(--space-2);font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.admin-secret-body{margin:0 0 var(--space-3);font-size:var(--text-s);color:var(--text-secondary);line-height:var(--lh-snug)}.admin-secret-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.admin-secret-value{flex:1 1 auto;min-width:0;padding:var(--space-2) var(--space-3);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-s);color:var(--text-primary);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.arch{display:flex;flex-direction:column;gap:var(--space-4)}.arch-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4)}.arch-legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);margin:0;padding:0;list-style:none;font-size:var(--text-s);color:var(--text-secondary)}.arch-legend-item{display:inline-flex;align-items:center;gap:var(--space-1_5)}.arch-legend-item--note{color:var(--text-muted);font-style:italic}.arch-legend-dash{width:16px;height:0;border-top:1px dashed var(--text-muted);flex-shrink:0}.arch-host{margin:0;font-size:var(--text-s);color:var(--text-muted);font-variant-numeric:tabular-nums}.arch-note{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;padding:var(--space-2_5) var(--space-3);border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-sidebar);color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--lh-snug)}.arch-note--unknown{border-left:3px solid var(--text-muted)}.arch-note--error{border-color:var(--danger-alpha-strong);border-left:3px solid var(--color-danger);background:var(--danger-alpha);color:var(--color-danger-text)}.arch-note code{font-family:var(--font-mono);font-size:var(--text-s)}.arch-frame{position:relative;width:min(100%,var(--arch-canvas-w));height:calc(var(--arch-canvas-h) * var(--arch-scale));margin-inline:auto}.arch-canvas{position:relative;width:var(--arch-canvas-w);height:var(--arch-canvas-h);transform:scale(var(--arch-scale));transform-origin:top left}.arch-edges{position:absolute;top:0;left:0;pointer-events:none;overflow:visible}.arch-edge{fill:none;stroke:var(--border-color);stroke-width:1.5px}.arch-edge--strong{stroke:var(--accent);stroke-width:2px}.arch-edge--flow{stroke-dasharray:5 7;animation:arch-flow .9s linear infinite}@keyframes arch-flow{to{stroke-dashoffset:-12}}.arch-arrow{fill:var(--text-muted)}.arch-edge-label{fill:var(--text-muted);font-family:var(--font-sans);font-size:var(--text-2xs);text-anchor:middle;paint-order:stroke;stroke:var(--bg-primary);stroke-width:4px;stroke-linejoin:round}.arch-tier{display:contents}.arch-tier-label{display:none}.arch-node{position:absolute;left:var(--arch-x);top:var(--arch-y);width:var(--arch-w);min-height:var(--arch-h);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:var(--space-0_5);padding:var(--space-2) var(--space-2_5);border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow-1);transition:opacity var(--dur),border-color var(--dur)}.arch-node-label{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-primary);line-height:var(--lh-tight)}.arch-node-sub{font-size:var(--text-2xs);color:var(--text-muted);line-height:var(--lh-snug)}.arch-node-state{display:flex;align-items:center;gap:var(--space-1_5);font-size:var(--text-xs);color:var(--text-secondary)}.arch-node-meta{font-size:var(--text-xs);color:var(--accent);font-variant-numeric:tabular-nums}.arch-node-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--text-muted);flex-shrink:0}.arch-node--edge{background:transparent;box-shadow:none}.arch-node--runtime{background:var(--accent-alpha);border-color:var(--accent-alpha-strong)}.arch-node.arch-node--ok{border-left:3px solid var(--color-success)}.arch-node--ok .arch-node-dot{background:var(--color-success)}.arch-node.arch-node--warn{border-left:3px solid var(--color-warning)}.arch-node--warn .arch-node-dot{background:var(--color-warning)}.arch-node--warn .arch-node-state{color:var(--color-warning)}.arch-node.arch-node--down{border-left:3px solid var(--color-danger);background:var(--danger-alpha)}.arch-node--down .arch-node-dot{background:var(--color-danger)}.arch-node--down .arch-node-state{color:var(--color-danger-text)}.arch-node.arch-node--unknown{border-left:3px solid var(--text-muted)}.arch-node--unknown .arch-node-dot{background:var(--text-muted)}.arch-node.arch-node--absent{border-style:dashed;background:transparent;box-shadow:none}.arch-node--absent .arch-node-label,.arch-node--absent .arch-node-state{color:var(--text-muted)}.arch-node--absent .arch-node-dot{background:transparent;border:1px dashed var(--text-muted)}.arch-node--dim{opacity:.45}.arch-unmapped{padding:var(--space-3);border:1px solid var(--warning-alpha);border-left:3px solid var(--color-warning);border-radius:var(--radius);background:var(--warning-alpha)}.arch-unmapped-title{margin:0 0 var(--space-1);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--color-warning)}.arch-unmapped-note{margin:0 0 var(--space-2_5);font-size:var(--text-s);color:var(--text-secondary);line-height:var(--lh-snug)}.arch-unmapped-note code,.arch-unmapped-item code{font-family:var(--font-mono);font-size:var(--text-s)}.arch-unmapped-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.arch-unmapped-item{display:inline-flex;align-items:center;gap:var(--space-1_5);padding:var(--space-1) var(--space-2_5);border:1px solid var(--border-color);border-radius:var(--radius-full);background:var(--bg-elevated);font-size:var(--text-s);color:var(--text-primary)}.arch-unmapped-state{color:var(--text-muted)}.settings-page{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:var(--space-5)}.settings-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.settings-body{flex:1;min-height:0;display:grid;grid-template-columns:var(--w-settings-nav) minmax(0,1fr);gap:var(--space-5)}.settings-nav{display:flex;flex-direction:column;gap:var(--space-0_5);overflow-y:auto;padding-right:var(--space-2);border-right:1px solid var(--border-color)}.settings-nav-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);text-decoration:none;transition:background var(--dur),color var(--dur)}.settings-nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-nav-item:focus-visible{outline:none;box-shadow:var(--focus-ring)}.settings-nav-item--active{background:var(--accent-alpha);color:var(--accent);font-weight:var(--fw-medium)}.settings-nav-name{flex:1;min-width:0}.settings-nav-dot{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-full);background:var(--color-warning);flex:none}.settings-nav-flag{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);white-space:nowrap}.settings-pane{overflow-y:auto;min-width:0;max-width:calc(var(--w-measure) + var(--w-settings-nav))}.settings-load-error{margin:0 0 var(--space-4);padding:var(--space-3);background:var(--danger-alpha);border:1px solid var(--danger-alpha-strong);border-radius:var(--radius-sm);color:var(--color-danger-text);font-size:var(--text-sm)}.settings-empty{margin:0;color:var(--text-muted);font-size:var(--text-sm)}.settings-page h2{margin:0 auto 0 0;font-size:var(--text-lg);color:var(--text-primary)}.settings-loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-secondary)}.settings-group{border:1px solid var(--border-color);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4)}.settings-group legend{font-weight:var(--fw-semibold);color:var(--text-primary);padding:0 var(--space-2)}.settings-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,420px) auto;align-items:start;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-color)}.settings-row:last-of-type{border-bottom:none}.settings-row--dirty{box-shadow:inset 2px 0 0 var(--color-warning)}.settings-label{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.settings-flags{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.settings-dirty-flag{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.5px;color:var(--color-warning)}.settings-label label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent);word-break:break-all}.settings-control{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.settings-control input[type=text],.settings-control input[type=number],.settings-control select{width:100%;padding:var(--space-1) var(--space-2);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-input)}.settings-control input:focus,.settings-control select:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.settings-control input:disabled,.settings-control select:disabled{opacity:.5;cursor:not-allowed}.settings-control input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.settings-control-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.settings-checkbox-label{display:flex;align-items:center;gap:var(--space-2);color:var(--text-primary);font-size:var(--text-sm)}.settings-help{font-size:var(--text-xs);color:var(--text-muted)}.settings-error{font-size:var(--text-xs);color:var(--color-danger)}.settings-verify-answer{font-family:var(--font-mono);color:var(--text-secondary);overflow-wrap:anywhere}.settings-latency-note{font-size:var(--text-xs);color:var(--text-muted);font-style:italic}.settings-badge{display:inline-block;font-size:var(--text-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.5px;padding:1px var(--space-1);border-radius:var(--radius-xs)}.settings-badge-db{background:var(--accent-alpha);color:var(--accent)}.settings-badge-compose{background:var(--warning-alpha);color:var(--color-warning)}.settings-badge-env{background:var(--success-alpha);color:var(--color-success)}.settings-badge-default{background:transparent;color:var(--text-muted);border:1px solid var(--border-color)}.settings-badge-readonly{background:var(--muted-alpha);color:var(--text-secondary);cursor:help}.settings-badge-restart{background:var(--danger-alpha);color:var(--color-danger)}.settings-badge-pinned{background:transparent;border:1px solid var(--accent-alpha-strong);color:var(--text-secondary);cursor:help}.settings-masked{display:flex;align-items:center;gap:var(--space-2)}.settings-masked-status{font-size:var(--text-xs);color:var(--text-muted)}.settings-masked-hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.settings-page .btn{padding:var(--space-1_5) var(--space-3);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);cursor:pointer;transition:background var(--dur),border-color var(--dur)}.settings-page .btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.settings-page .btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.settings-page .btn:disabled{opacity:.5;cursor:not-allowed}.settings-page .btn-primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);font-weight:var(--fw-medium)}.settings-page .btn-primary:hover:not(:disabled){filter:brightness(1.08)}.settings-save-btn{margin-top:var(--space-4)}.settings-chip-editor{display:flex;flex-direction:column;gap:var(--space-2)}.settings-chips{display:flex;flex-wrap:wrap;gap:var(--space-1);min-height:var(--h-control-sm)}.settings-chip{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-full);padding:var(--space-0_5) var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-primary)}.settings-chip-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--text-md);line-height:1;padding:0 var(--space-0_5)}.settings-chip-remove:hover{color:var(--color-danger)}.settings-empty-warning{color:var(--color-warning);font-size:var(--text-xs)}.settings-chip-input-row{display:flex;gap:var(--space-2)}.settings-chip-input-row input{flex:1;max-width:200px;padding:var(--space-1) var(--space-2);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-input)}.settings-chip-input-row input:focus{outline:none;border-color:var(--accent)}.settings-status-editor{display:flex;flex-direction:column;gap:var(--space-2)}.settings-status-preview{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.settings-status-preview-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.settings-status-preview-block{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm)}.settings-status-preview-text{color:var(--text-primary)}.settings-status-preview-timer{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.settings-status-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:320px;overflow-y:auto}.settings-status-row{display:flex;align-items:center;gap:var(--space-1)}.settings-status-index{font-size:var(--text-xs);color:var(--text-muted);min-width:24px;text-align:right}.settings-status-row input{flex:1;padding:var(--space-1) var(--space-2);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-input);font-family:var(--font-mono)}.settings-status-row input:focus{outline:none;border-color:var(--accent)}.settings-status-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--text-base);line-height:1;padding:0 var(--space-1)}.settings-status-remove:hover:not(:disabled){color:var(--color-danger)}.settings-status-remove:disabled{opacity:.3;cursor:not-allowed}.settings-status-actions{display:flex;gap:var(--space-2)}.settings-db-conn{font-size:var(--text-xs);color:var(--text-muted);word-break:break-all}@media(max-width:900px){.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(var(--w-sidebar),85vw);padding-left:env(safe-area-inset-left);z-index:var(--z-panel);transform:translate(-100%);visibility:hidden;transition:transform var(--dur) var(--ease),visibility 0s linear var(--dur);box-shadow:var(--shadow-2)}.sidebar.open{transform:translate(0);visibility:visible;transition:transform var(--dur) var(--ease),visibility 0s}.btn-sidebar-toggle{display:inline-flex}.sidebar.open~.sidebar-scrim,.sidebar-scrim.open{display:block}.message-bubble{max-width:92%}.settings-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:var(--space-3)}.settings-nav{flex-direction:row;overflow-x:auto;overscroll-behavior-x:contain;padding-right:0;padding-bottom:var(--space-2);border-right:none;border-bottom:1px solid var(--border-color)}.settings-nav-item{white-space:nowrap}.settings-nav-flag{display:none}.settings-row{grid-template-columns:minmax(0,1fr);gap:var(--space-1)}.settings-flags{flex-direction:row;align-items:center;flex-wrap:wrap}.settings-pane{max-width:100%}.audit-stream-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.audit-stream-lanes{flex-direction:row;overflow-x:auto;overscroll-behavior-x:contain;border-right:none;border-bottom:1px solid var(--border-color);padding-bottom:var(--space-2)}.audit-stream-lane{flex:0 0 auto;min-width:140px}.detail-drawer{width:100%;left:0}.btn-delete-session,.btn-close-session,.message-actions{opacity:1}.btn-delete-session,.btn-close-session,.btn-message-action,.btn-jump-latest,.filter-chip,.starter-prompt,.confirm-dialog-cancel,.confirm-dialog-ok,.admin-btn-kill,.admin-btn-view,.admin-nav-tab,.settings-chip-remove,.settings-status-remove,.toast-close,.detail-close{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap-target);min-width:var(--tap-target)}.btn-new-session,.btn-empty-new-session,.btn-attach,.btn-copy,.admin-btn-cleanup,.admin-btn-refresh,.admin-btn-link,.admin-filter-select,.settings-nav-item,.settings-control select,.settings-control input[type=text],.settings-control input[type=number],.settings-page .btn,.settings-checkbox-label,.new-session-check,.new-session-input,.login-input,.login-submit{min-height:var(--tap-target)}.message-reasoning-summary,.reasoning-block summary{min-height:var(--tap-target);padding-block:var(--space-3)}.sidebar-admin-link,.sidebar-signout{display:flex;align-items:center;min-height:var(--tap-target)}.admin-back-link{display:inline-flex;align-items:center;min-height:var(--tap-target)}.context-bar{height:var(--space-4_5)}.context-bar__label{opacity:1}.arch-frame{width:100%;height:auto}.arch-canvas{display:flex;flex-direction:column;gap:var(--space-4_5);width:auto;height:auto;transform:none}.arch-edges{display:none}.arch-tier{display:flex;flex-direction:column;gap:var(--space-2)}.arch-tier-label{display:block;margin:0;font-size:var(--text-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.arch-node{position:static;width:auto;min-height:0}}@media(max-width:640px){.admin-header,.settings-header{flex-wrap:wrap;gap:var(--space-2) var(--space-3)}.admin-title{flex-basis:100%;order:1}.admin-nav{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.admin-nav-tab{flex:0 0 auto;white-space:nowrap}.admin-table{min-width:720px}.admin-charts,.detail-charts{grid-template-columns:minmax(0,1fr)}.settings-page{padding:var(--space-3)}.toast-container{left:var(--space-2);right:var(--space-2);max-width:none}.input-area{padding:var(--space-3);padding-bottom:max(var(--space-3),env(safe-area-inset-bottom));gap:var(--space-2)}}@media(min-width:1280px){.message-list{padding-inline:max(var(--space-4_5),calc((100% - var(--w-measure)) / 2))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.status-spinner,.streaming-indicator,.streaming-cursor,.typing-dot{animation:none;opacity:1}}
