:root{--color-control-strong: #0f172a;--color-control-strong-hover: #1e293b;--color-accent: #ea580c;--color-accent-strong: #c2410c;--color-accent-hover: #9a3412;--color-accent-muted: #fb923c;--color-accent-bg: #fff7ed;--color-canvas: #ffffff;--color-surface: #f8fafc;--color-surface-raised: #ffffff;--color-surface-subtle: #f1f5f9;--color-surface-sunken: #e9eef5;--color-overlay: rgba(15, 23, 42, .52);--color-nav-hover-bg: color-mix(in srgb, var(--color-text) 4%, var(--color-surface));--color-nav-selected-bg: var(--color-surface-raised);--color-nav-selected-border: var(--color-border);--color-text: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-text-inverse: #ffffff;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-border-focus: #ea580c;--color-scrollbar-track: transparent;--color-scrollbar-thumb: #cbd5e1;--color-scrollbar-thumb-hover: #94a3b8;--color-success: #16a34a;--color-success-hover: #15803d;--color-success-bg: #dcfce7;--color-warning: #d97706;--color-warning-hover: #b45309;--color-warning-bg: #fef3c7;--color-error: #dc2626;--color-error-hover: #b91c1c;--color-error-bg: #fee2e2;--color-info: #2563eb;--color-info-hover: #1d4ed8;--color-info-bg: #dbeafe;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--font-serif: Georgia, "Times New Roman", serif;--text-3xs: .6875rem;--text-xs: .625rem;--text-2xs: .75rem;--text-sm: .75rem;--text-sm-plus: .8125rem;--text-base: .875rem;--text-base-plus: .9375rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-hero: 3.5rem;--leading-tight: 1.2;--leading-snug: 1.4;--leading-normal: 1.6;--leading-loose: 1.8;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-9: 2.25rem;--space-10: 2.5rem;--space-12: 3rem;--space-14: 3.5rem;--space-15: 3.75rem;--space-16: 4rem;--space-18: 4.5rem;--space-20: 5rem;--navbar-height: 56px;--sidebar-width: 260px;--sidebar-collapsed: 64px;--content-max-width: 1280px;--panel-min-width: 320px;--desktop-titlebar-height: 0px;--desktop-titlebar-inset: 0px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-3xl: 20px;--radius-full: 9999px;--radius-control-track: 10px;--radius-control: 7px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 8px 22px rgba(15, 23, 42, .06);--shadow-lg: 0 14px 34px rgba(15, 23, 42, .08);--shadow-xl: 0 22px 50px rgba(15, 23, 42, .1);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--z-below: -1;--z-base: 0;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500;--z-tooltip: 600}html.vani-desktop{--desktop-titlebar-height: 42px;--desktop-titlebar-inset: 84px}html.vani-desktop.vani-desktop-fullscreen{--desktop-titlebar-height: 0px;--desktop-titlebar-inset: 0px}:root{--palette-workflow-active: #4f46e5;--palette-workflow-edited: #6d28d9;--palette-workflow-edited-bg: #ede9fe;--palette-workflow-regenerating: #3730a3;--palette-workflow-regenerating-bg: #e0e7ff;--palette-subject-user: var(--color-control-strong);--palette-subject-traveler: #0f766e;--palette-subject-agent-1: #6d28d9;--palette-subject-agent-2: #1d4ed8;--palette-subject-agent-3: #be185d;--palette-subject-agent-4: #15803d;--palette-subject-agent-5: #92400e;--palette-subject-agent-6: #0e7490;--palette-subject-agent-7: #9a3412;--palette-mention-steward: var(--color-accent-strong);--palette-mention-user: var(--palette-subject-user);--palette-mention-traveler: var(--palette-subject-traveler);--palette-mention-agent-1: var(--palette-subject-agent-1);--palette-mention-agent-2: var(--palette-subject-agent-2);--palette-mention-agent-3: var(--palette-subject-agent-3);--palette-mention-agent-4: var(--palette-subject-agent-4);--palette-mention-agent-5: var(--palette-subject-agent-5);--palette-mention-agent-6: var(--palette-subject-agent-6);--palette-mention-agent-7: var(--palette-subject-agent-7);--palette-identity-player: #15803d;--palette-identity-player-bg: #dcfce7;--palette-identity-player-border: #86efac;--palette-identity-traveler: #1d4ed8;--palette-identity-traveler-bg: #dbeafe;--palette-identity-traveler-border: #93c5fd;--palette-alignment-wild-card: #7c3aed;--palette-chart-node-player: #4a9eff;--palette-chart-node-protagonist: #ffd700;--palette-chart-node-supporting: #999999;--palette-chart-edge-strong: var(--color-success);--palette-chart-edge-weak: #aaaaaa;--palette-chart-label: #888888;--palette-chart-node-outline: var(--color-canvas);--palette-chart-text: var(--color-text);--palette-chart-tooltip-bg: #18181fe0;--palette-chart-tooltip-muted: #d4d4d8;--palette-replay-transition: #7a5cff;--palette-replay-transition-bg: #f7f2ff;--palette-replay-location: #17a398;--palette-replay-location-bg: #eefaf7;--palette-replay-location-heading: #114f4a;--palette-replay-location-text: #24443f;--palette-replay-location-muted: #416a63;--palette-replay-location-chip: #175f59;--palette-replay-location-chip-alt: #2a7a72;--palette-replay-world: #805ad5;--palette-replay-world-bg: #f7f3ff;--palette-replay-world-border: #d5c2ff;--palette-replay-world-heading: #4a2d8a;--palette-replay-world-muted: #7c5cbf;--palette-replay-world-text: #3d2b6b;--palette-json-string: #075985;--palette-json-number: #7c2d12;--palette-json-boolean: #166534;--palette-json-null: #6b7280;--palette-tag-location: #1e40af;--palette-tag-location-bg: #eff6ff;--palette-tag-location-border: #bfdbfe;--palette-tag-rule: #5b21b6;--palette-tag-rule-bg: #f5f3ff;--palette-tag-rule-border: #ddd6fe;--palette-tag-faction: #92400e;--palette-tag-faction-bg: #fffbeb;--palette-tag-faction-border: #fde68a;--palette-tag-taboo: var(--color-error-hover);--palette-tag-taboo-bg: var(--color-error-bg);--palette-tag-taboo-border: #fecaca}.theme-stage{--stage-backdrop-scrim: linear-gradient( 180deg, rgb(6 8 12 / 8%) 0%, rgb(6 8 12 / 12%) 55%, rgb(6 8 12 / 62%) 100% );--stage-surface-note: rgb(10 12 18 / 60%);--stage-surface-note-quiet: rgb(10 12 18 / 42%);--stage-surface-error: rgb(66 18 18 / 72%);--stage-surface-retry: rgb(10 12 18 / 55%);--stage-surface-curtain: rgb(5 6 10 / 90%);--stage-surface-choice: rgb(12 14 20 / 68%);--stage-surface-choice-hover: rgb(24 28 40 / 82%);--stage-surface-dialog: rgb(10 12 18 / 78%);--stage-surface-dialog-input: rgb(14 17 26 / 86%);--stage-surface-control-hover: rgb(255 255 255 / 8%);--stage-surface-overlay-control: rgb(255 255 255 / 10%);--stage-surface-control-muted: rgb(255 255 255 / 12%);--stage-surface-control-strong: rgb(255 255 255 / 92%);--stage-surface-token-edge: rgb(10 12 18 / 20%);--stage-surface-typing: rgb(10 12 18 / 60%);--stage-text-primary: rgb(255 255 255 / 94%);--stage-text-strong: rgb(255 255 255 / 92%);--stage-text-control: rgb(255 255 255 / 85%);--stage-text-control-muted: rgb(255 255 255 / 84%);--stage-text-narration: rgb(255 255 255 / 82%);--stage-text-note: rgb(255 255 255 / 78%);--stage-text-fact: rgb(255 255 255 / 72%);--stage-text-transfer: rgb(255 255 255 / 66%);--stage-text-thought: rgb(255 255 255 / 62%);--stage-text-queue: rgb(255 255 255 / 60%);--stage-text-muted: rgb(255 255 255 / 55%);--stage-text-empty: rgb(255 255 255 / 40%);--stage-text-glyph: rgb(255 255 255 / 38%);--stage-text-placeholder: rgb(255 255 255 / 35%);--stage-text-hover: rgb(255 255 255 / 80%);--stage-text-error: #fecaca;--stage-text-on-control: #0d1017;--stage-text-on-token: #fff;--stage-text-player: #ffd9a5;--stage-border-dialog: rgb(255 255 255 / 18%);--stage-border-subtle: rgb(255 255 255 / 20%);--stage-border-choice: rgb(255 255 255 / 22%);--stage-border-control: rgb(255 255 255 / 30%);--stage-border-dialog-input: rgb(255 255 255 / 34%);--stage-outline-selection: rgb(255 255 255 / 84%);--stage-alignment-on-track: #6ee7b7;--stage-alignment-slight-detour: #fcd34d;--stage-alignment-wild-card: #c4b5fd;--stage-portrait-shadow: drop-shadow(-12px 6px 14px rgb(0 0 0 / 50%)) drop-shadow(0 14px 18px rgb(0 0 0 / 55%)) drop-shadow(0 2px 4px rgb(0 0 0 / 40%));--stage-token-shadow: drop-shadow(0 10px 14px rgb(0 0 0 / 45%))}.theme-world-map{--map-canvas: var(--color-canvas);--map-border: rgba(52, 98, 128, .28);--map-glow-accent: rgba(24, 130, 192, .14);--map-glow-ambient: rgba(36, 85, 116, .1);--map-grid-line: rgba(51, 105, 139, .11);--map-compact-canvas: #edf5fa;--map-compact-border: rgba(53, 102, 132, .3);--map-compact-glow-accent: rgba(27, 125, 183, .12);--map-compact-glow-ambient: rgba(39, 84, 111, .1);--map-compact-grid-line: rgba(43, 97, 132, .14);--map-text: #132f40;--map-text-secondary: #496b7d;--map-text-muted: #7894a3;--map-notice-border: rgba(44, 91, 121, .2);--map-notice-surface: rgba(247, 251, 254, .94);--map-route-stroke: rgba(32, 83, 116, .54);--map-route-underlay: rgba(250, 253, 255, .82);--map-route-label-surface: rgba(244, 250, 253, .9);--map-marker: #51768a;--map-marker-contextual: #8aa2ae;--map-marker-ring: #f8fcfe;--map-marker-copy-border: rgba(42, 87, 115, .16);--map-marker-copy-surface: rgba(247, 251, 253, .94);--map-current: #1978b8;--map-current-halo-border: rgba(25, 120, 184, .34);--map-current-halo-surface: rgba(25, 120, 184, .1);--map-badge-surface: #e7f0f5;--map-info: #176da7;--map-info-surface: #dbeefa;--map-success: #168065;--map-success-surface: #d9f1e9;--map-warning: #a76216;--map-warning-border: rgba(167, 98, 22, .34);--map-warning-surface: #faecd6;--map-avatar-ring: #f8fcfe;--map-control-strong: var(--color-control-strong);--map-control-strong-text: var(--color-text-inverse);--map-popover-border: rgba(42, 87, 115, .22);--map-popover-surface: rgba(249, 252, 254, .99);--map-row-hover-surface: #e8f1f6;--map-shadow-compact-marker-copy: 0 4px 12px rgba(18, 48, 66, .1);--map-shadow-notice: 0 10px 28px rgba(18, 48, 66, .14);--map-shadow-route-label: 0 6px 14px rgba(18, 48, 66, .09);--map-shadow-marker: 0 0 0 1px rgba(26, 67, 94, .34), 0 8px 18px rgba(18, 48, 66, .2);--map-shadow-current-marker: 0 0 0 3px rgba(25, 120, 184, .2), 0 8px 20px rgba(25, 120, 184, .28);--map-shadow-marker-copy: 0 12px 28px rgba(18, 48, 66, .13);--map-shadow-selected-avatar: 0 0 0 3px rgba(25, 120, 184, .22), 0 10px 24px rgba(18, 48, 66, .25);--map-shadow-avatar: 0 8px 18px rgba(18, 48, 66, .22);--map-shadow-popover: 0 18px 45px rgba(18, 48, 66, .2)}.theme-atlas{--atlas-sheet-shadow: 0 10px 30px rgba(53, 35, 17, .18), 0 2px 8px rgba(53, 35, 17, .12);--atlas-hotspot-hover-fill: rgba(255, 224, 150, .18);--atlas-hotspot-hover-stroke: rgba(255, 224, 150, .85);--atlas-hotspot-current-stroke: rgba(126, 211, 154, .9);--atlas-label-text: #fdf6e3;--atlas-label-surface: rgba(28, 22, 14, .72);--atlas-label-hover-surface: rgba(56, 44, 24, .9);--atlas-label-drill: #f0b96c;--atlas-current-text: #7ed39a;--atlas-minutes-text: #d8c9a4;--atlas-minutes-surface: rgba(28, 22, 14, .6);--atlas-standee-shadow: drop-shadow(0 2px 5px rgba(24, 20, 14, .55));--atlas-selected-marker-shadow: drop-shadow(0 0 7px rgba(255, 224, 150, .95));--atlas-marker-ground-shadow: radial-gradient(ellipse at center, rgba(15, 10, 4, .45), transparent 70%);--atlas-bubble-text: #3c2f1c;--atlas-bubble-surface: rgba(248, 240, 218, .95);--atlas-bubble-border: rgba(90, 70, 40, .7);--atlas-notice-text: #e8c477;--atlas-notice-surface: rgba(28, 22, 14, .75);--atlas-scale-rule: rgba(43, 32, 22, .78);--atlas-scale-text: rgba(43, 32, 22, .85);--atlas-scale-text-shadow: 0 1px 2px rgba(255, 250, 240, .8)}.theme-comms{--comms-canvas: #f5f4f1;--comms-ink: #211e1b;--comms-ink-inverse: var(--color-text-inverse);--comms-line: rgb(41 35 31 / 9%);--comms-line-soft: rgb(41 35 31 / 8%);--comms-chrome: rgb(250 249 247 / 88%);--comms-chrome-soft: rgb(250 249 247 / 90%);--comms-chrome-strong: rgb(250 249 247 / 94%);--comms-control: rgb(33 30 27 / 7%);--comms-control-soft: rgb(33 30 27 / 6%);--comms-control-hover: rgb(33 30 27 / 10%);--comms-row-hover: rgb(255 255 255 / 74%);--comms-avatar-ring: rgb(33 30 27 / 5%);--comms-avatar-shadow: rgb(33 30 27 / 8%);--comms-bubble: rgb(255 255 255 / 94%);--comms-bubble-input: rgb(255 255 255 / 90%);--comms-bubble-border: rgb(33 30 27 / 5.5%);--comms-bubble-shadow: rgb(33 30 27 / 4.5%);--comms-accent-glow: color-mix(in srgb, var(--color-accent) 4.5%, transparent);--comms-notification-border: rgb(255 255 255 / 48%);--comms-notification: rgb(255 253 250 / 83%);--comms-notification-hover: rgb(255 253 250 / 92%);--comms-notification-shadow: rgb(16 14 12 / 16%);--comms-notification-shadow-hover: rgb(16 14 12 / 20%);--comms-accent-shadow: color-mix(in srgb, var(--color-accent) 24%, transparent);--comms-text-subtle: rgb(33 30 27 / 52%);--comms-text-secondary: rgb(33 30 27 / 66%);--comms-text-faint: rgb(33 30 27 / 36%)}.theme-world-preview{--world-preview-frame: #211e1b;--world-preview-canvas: #f5f4f1;--world-preview-screen: #171512;--world-preview-island: #050505;--world-preview-foreground: #fffaf3;--world-preview-frame-ring: rgb(255 255 255 / 50%);--world-preview-frame-shadow: rgb(33 30 27 / 14%);--world-preview-frame-shadow-open: rgb(33 30 27 / 16%);--world-preview-status-foreground: rgb(255 255 255 / 92%);--world-preview-island-ring: rgb(255 255 255 / 4%);--world-preview-fallback-top: #342d28;--world-preview-fallback-bottom: #171310;--world-preview-screen-shadow: rgb(10 8 7 / 15%);--world-preview-context: rgb(255 250 243 / 82%);--world-preview-story-kicker: rgb(255 250 243 / 58%);--world-preview-story-secondary: rgb(255 250 243 / 76%);--world-preview-companion-border: rgb(255 255 255 / 12%);--world-preview-companion: rgb(17 15 13 / 58%);--world-preview-companion-shadow: rgb(8 7 6 / 18%);--world-preview-avatar-border: rgb(255 255 255 / 40%);--world-preview-avatar: rgb(255 250 243 / 18%);--world-preview-companion-secondary: rgb(255 250 243 / 70%);--world-preview-companion-hint: rgb(255 250 243 / 55%);--world-preview-enter: rgb(255 255 255 / 13%);--world-preview-enter-foreground: rgb(255 255 255 / 90%);--world-preview-image-overlay-top: rgb(16 16 16 / 12%);--world-preview-image-overlay-bottom: rgb(16 16 16 / 74%)}.theme-terminal{--terminal-bg: #0f172a;--terminal-border: #334155;--terminal-heading: #8aa0c6;--terminal-label: #6b81a8;--terminal-text: #d7e0f2;--terminal-text-strong: #e8edf7;--terminal-live: #34d399}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh;isolation:isolate}h1,h2,h3,h4,h5,h6{font-weight:var(--weight-bold);line-height:var(--leading-tight)}p{line-height:var(--leading-normal)}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button{background:none;border:none;cursor:pointer;padding:0;transition:transform var(--transition-fast)}button:active:not(:disabled){transform:scale(.97)}input,textarea{outline:none}button:disabled,[role=button][aria-disabled=true]{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,[role=button]:focus-visible,[role=option]:focus-visible,[role=switch]:focus-visible,[role=tab]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}img,svg,video{display:block;max-width:100%}ul,ol{list-style:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-thumb-hover)}*{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb) var(--color-scrollbar-track)}.primary-btn,.ghost-btn,.accent-btn,.danger-btn,.success-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 14px;border:1px solid transparent;border-radius:var(--radius-full);font-family:var(--font-sans);font-size:.78rem;font-weight:var(--weight-semibold);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.primary-btn:active:not(:disabled),.ghost-btn:active:not(:disabled),.accent-btn:active:not(:disabled),.danger-btn:active:not(:disabled),.success-btn:active:not(:disabled){transform:scale(.97)}.primary-btn:disabled,.ghost-btn:disabled,.accent-btn:disabled,.danger-btn:disabled,.success-btn:disabled{opacity:.45;cursor:not-allowed}.primary-btn:focus-visible,.ghost-btn:focus-visible,.accent-btn:focus-visible,.danger-btn:focus-visible,.success-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-sm{height:26px;padding:0 11px;font-size:.72rem}.btn-lg{height:38px;padding:0 18px;font-size:.85rem}.primary-btn{color:var(--color-text-inverse);background:var(--color-control-strong)}.primary-btn:hover:not(:disabled){background:var(--color-control-strong-hover)}.ghost-btn{color:var(--color-text);background:var(--color-surface-raised);border-color:var(--color-border)}.ghost-btn:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-subtle)}.accent-btn{color:var(--color-text-inverse);background:var(--color-accent-strong)}.accent-btn:hover:not(:disabled){background:var(--color-accent-hover)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-16) var(--space-8);text-align:center;color:var(--color-text-muted)}.empty-state__icon{font-size:var(--text-4xl);opacity:.4;line-height:1}.empty-state__title{font-size:.82rem;font-weight:var(--weight-semibold);color:var(--color-text-secondary)}.empty-state__body{font-size:var(--text-sm);color:var(--color-text-muted);max-width:28ch;line-height:var(--leading-normal)}.eyebrow,.card-eyebrow{display:inline-block;font-size:.7rem;font-weight:var(--weight-semibold);color:var(--color-text-muted);line-height:1}.eyebrow--accent,.card-eyebrow--accent{color:var(--color-accent-strong)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);height:24px;padding:0 10px;font-size:.7rem;font-weight:var(--weight-semibold);color:var(--color-text-secondary);background:var(--color-surface-sunken);border:1px solid transparent;border-radius:var(--radius-full);white-space:nowrap;line-height:1.4}.chip--active{color:var(--color-accent-hover);border-color:var(--color-accent);background:var(--color-accent-bg)}.chip--success{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success)}.chip--warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning)}.chip--error{color:var(--color-error);background:var(--color-error-bg);border-color:var(--color-error)}.mini-chip{display:inline-flex;align-items:center;padding:2px var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-secondary);background:var(--color-surface-sunken);border:1px solid transparent;border-radius:var(--radius-full);white-space:nowrap;line-height:1.4}.state-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);padding:var(--space-5);color:var(--color-text-secondary);line-height:var(--leading-normal)}.state-card.error{border-color:var(--color-error);background:var(--color-error-bg);color:var(--color-error)}.state-card.warning{border-color:var(--color-warning);background:var(--color-warning-bg);color:var(--color-warning)}.error-text{color:var(--color-error);font-weight:var(--weight-semibold)}.hairline-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:transparent}.hairline-card--danger{border-color:var(--color-error)}.hairline-card__row{padding:8px 14px}.hairline-card__row+.hairline-card__row{border-top:1px solid var(--color-border)}.danger-btn{color:var(--color-text-inverse);background:var(--color-error)}.danger-btn:hover:not(:disabled){background:var(--color-error-hover)}.success-btn{color:var(--color-text-inverse);background:var(--color-success)}.success-btn:hover:not(:disabled){background:var(--color-success-hover)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;color:var(--color-text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.icon-btn:hover:not(:disabled){background:var(--color-surface-subtle);color:var(--color-text)}.icon-btn:active:not(:disabled){transform:scale(.97)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.text-btn{display:inline-flex;align-items:center;gap:4px;border:0;padding:2px 6px;border-radius:var(--radius-full);background:transparent;font-family:var(--font-sans);font-size:.76rem;font-weight:var(--weight-semibold);color:var(--color-accent-strong);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.text-btn:hover:not(:disabled){color:var(--color-accent-hover);background:var(--color-accent-bg)}.text-btn:disabled{opacity:.45;cursor:not-allowed}.text-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-border-strong);flex-shrink:0}.status-dot--success{background:var(--color-success)}.status-dot--warning{background:var(--color-warning)}.status-dot--error{background:var(--color-error)}.status-dot--active{background:var(--color-accent)}.status-dot--pulse{animation:status-pulse 2s ease-in-out infinite}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.4}}.flex-center{display:flex;align-items:center;justify-content:center}.flex-row{display:flex;align-items:center;gap:var(--space-3)}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-col{display:flex;flex-direction:column}.flex-1{flex:1 1 0%;min-width:0}.grid-2col{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}@media(max-width:640px){.grid-2col{grid-template-columns:1fr}}.grid-3col{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}@media(max-width:900px){.grid-3col{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.grid-3col{grid-template-columns:1fr}}.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}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.anim-in{animation:util-in .22s cubic-bezier(.2,0,0,1)}@keyframes util-in{0%{opacity:0;transform:translateY(4px)}}.anim-pop{animation:util-pop .18s cubic-bezier(.2,0,0,1)}@keyframes util-pop{0%{opacity:0;transform:scale(.97) translateY(2px)}}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-text);border-radius:50%;animation:util-spin .7s linear infinite}@keyframes util-spin{to{transform:rotate(360deg)}}@keyframes util-halo{0%{transform:scale(1);opacity:.5}70%{transform:scale(2.6);opacity:0}to{opacity:0}}.shimmer-text{background:linear-gradient(90deg,var(--color-text-muted) 38%,var(--color-text) 50%,var(--color-text-muted) 62%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:util-shimmer 2.6s linear infinite}@keyframes util-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.row-item{display:flex;align-items:center;gap:9px;min-height:38px;padding:0 10px;border:0;border-radius:var(--radius-lg);background:transparent;font:inherit;font-size:.78rem;text-align:left;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast)}.row-item:hover{background:var(--color-surface-subtle)}.row-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.row-item .row-go{margin-left:auto;color:var(--color-text-muted);opacity:0;transform:translate(-4px);transition:opacity var(--transition-fast),transform var(--transition-fast)}.row-item:hover .row-go,.row-item:focus-visible .row-go{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.anim-in,.anim-pop,.spinner,.status-dot--pulse{animation:none}.shimmer-text{animation:none;background:none;color:var(--color-text-muted)}}.diagnostics-toast[data-v-45b2a775]{position:fixed;right:16px;bottom:16px;z-index:2000;display:grid;gap:8px;width:min(380px,calc(100vw - 32px))}.diagnostics-item[data-v-45b2a775]{display:grid;gap:6px;padding:12px;border:1px solid var(--color-error);border-radius:var(--radius-xl);background:var(--color-surface-raised);box-shadow:var(--shadow-lg)}.diagnostics-head[data-v-45b2a775]{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.diagnostics-reason[data-v-45b2a775]{color:var(--color-error);font-size:.9rem;overflow-wrap:anywhere}.diagnostics-actions[data-v-45b2a775]{display:flex;align-items:center;gap:2px;flex-shrink:0}.diagnostics-copy[data-v-45b2a775]{display:inline-flex;align-items:center;justify-content:center;padding:2px;border:none;background:transparent;cursor:pointer;border-radius:var(--radius-md);color:var(--color-text-muted)}.diagnostics-copy[data-v-45b2a775]:hover{color:var(--color-text);background:var(--color-surface-subtle)}.diagnostics-dismiss[data-v-45b2a775]{border:none;background:transparent;font-size:1.1rem;line-height:1;cursor:pointer;color:var(--color-text-muted)}.diagnostics-meta[data-v-45b2a775]{display:flex;flex-wrap:wrap;gap:6px;font-size:.7rem}.diagnostics-status[data-v-45b2a775]{color:var(--color-text-muted);font-weight:700}.diagnostics-code[data-v-45b2a775],.diagnostics-request-id[data-v-45b2a775]{color:var(--color-text-muted);overflow-wrap:anywhere}.diagnostics-stack-wrap summary[data-v-45b2a775]{cursor:pointer;font-size:.74rem;color:var(--color-text-muted)}.diagnostics-stack[data-v-45b2a775]{margin:6px 0 0;max-height:240px;overflow:auto;padding:8px;border-radius:var(--radius-lg);background:var(--color-surface-subtle);font-size:.7rem;white-space:pre-wrap;overflow-wrap:anywhere}.modal-shell[data-v-62e32a55]{margin:auto;padding:0;border:none;background:transparent;max-width:100vw;max-height:100dvh;overflow:visible}.modal-shell[data-v-62e32a55]::backdrop{background:var(--color-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-shell__panel[data-v-62e32a55]{display:flex;flex-direction:column;width:min(94vw,var(--shell-w, 920px));height:var(--shell-h, auto);max-height:min(88dvh,880px);overflow:hidden;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl)}.modal-shell--panel .modal-shell__panel[data-v-62e32a55]{--shell-w: 1100px;--shell-h: min(86dvh, 820px)}.modal-shell--panel-wide .modal-shell__panel[data-v-62e32a55]{--shell-w: 1320px;--shell-h: min(88dvh, 860px)}.modal-shell--prompt .modal-shell__panel[data-v-62e32a55]{--shell-w: 460px;overflow:auto}@media(max-width:640px){.modal-shell--panel[data-v-62e32a55],.modal-shell--panel-wide[data-v-62e32a55]{margin-block:auto 0}.modal-shell--panel .modal-shell__panel[data-v-62e32a55],.modal-shell--panel-wide .modal-shell__panel[data-v-62e32a55]{width:100vw;height:92dvh;max-height:92dvh;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;border-bottom:none}}.modal-shell[open] .modal-shell__panel[data-v-62e32a55]{animation:modal-shell-pop-62e32a55 var(--transition-fast)}@keyframes modal-shell-pop-62e32a55{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.modal-shell[open] .modal-shell__panel[data-v-62e32a55]{animation:none}}.modal-frame[data-v-0edbedd6]{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.modal-frame__head[data-v-0edbedd6]{flex:0 0 auto;display:flex;align-items:flex-start;gap:14px;padding:18px 20px 14px;background:var(--color-surface-raised);border-bottom:1px solid var(--color-border)}.modal-frame__heading[data-v-0edbedd6]{flex:1 1 auto;min-width:0;display:grid;gap:3px}.modal-frame__title[data-v-0edbedd6]{margin:0;font-size:1.15rem;font-weight:700;line-height:1.25}.modal-frame__desc[data-v-0edbedd6]{margin:0;font-size:.82rem;color:var(--color-text-muted);line-height:1.5}.modal-frame__close[data-v-0edbedd6]{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.modal-frame__close[data-v-0edbedd6]:hover{background:var(--color-surface-subtle);color:var(--color-text)}.modal-frame__body[data-v-0edbedd6]{flex:1 1 auto;min-height:0;overflow-y:auto;padding:20px}.modal-frame__foot[data-v-0edbedd6]{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:12px 20px;background:var(--color-surface-raised);border-top:1px solid var(--color-border)}.modal-frame__foot[data-v-0edbedd6]:empty{display:none}.desktop-window-chrome[data-v-2364a6bb]{position:fixed;top:0;left:0;right:0;height:var(--desktop-titlebar-height);z-index:var(--z-sticky);pointer-events:none}.desktop-window-drag-region[data-v-2364a6bb]{position:absolute;inset:0 0 0 var(--desktop-titlebar-inset);-webkit-app-region:drag;pointer-events:auto}.route-boot-shell[data-v-2364a6bb]{position:relative;min-height:100vh;display:grid;place-items:center;background:var(--color-canvas);color:var(--color-text);font-family:var(--font-sans);overflow:hidden}.route-boot-aura[data-v-2364a6bb]{position:absolute;inset:0;pointer-events:none;background:radial-gradient(440px 440px at 50% 40%,color-mix(in srgb,var(--color-accent) 12%,transparent),transparent 68%),radial-gradient(620px 620px at 50% 120%,color-mix(in srgb,var(--color-text) 5%,transparent),transparent 70%);animation:route-boot-aura-2364a6bb 4.6s ease-in-out infinite}.route-boot-stage[data-v-2364a6bb]{position:relative;display:grid;justify-items:center;gap:18px;text-align:center;padding:24px;animation:route-boot-enter-2364a6bb .5s ease both}.route-boot-orbit[data-v-2364a6bb]{position:relative;width:116px;height:116px;display:grid;place-items:center}.route-boot-track[data-v-2364a6bb]{position:absolute;inset:0;border-radius:50%;border:2px solid var(--color-border);opacity:.7}.route-boot-ring[data-v-2364a6bb]{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,var(--color-accent) 300deg,transparent 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),var(--color-text) calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),var(--color-text) calc(100% - 3px));animation:route-boot-spin-2364a6bb 1.5s cubic-bezier(.55,.15,.45,.85) infinite}.route-boot-ring--alt[data-v-2364a6bb]{inset:14px;background:conic-gradient(from 180deg,transparent 0deg,color-mix(in srgb,var(--color-text) 28%,transparent) 200deg,transparent 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),var(--color-text) calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),var(--color-text) calc(100% - 2px));animation:route-boot-spin-reverse-2364a6bb 2.4s linear infinite}.route-boot-mark[data-v-2364a6bb]{position:relative;width:52px;height:52px;object-fit:contain;display:block;animation:route-boot-breathe-2364a6bb 2.4s ease-in-out infinite}.route-boot-title[data-v-2364a6bb],.route-boot-detail[data-v-2364a6bb]{margin:0;max-width:28ch}.route-boot-title[data-v-2364a6bb]{font-weight:800;font-size:1.02rem;letter-spacing:.01em}.route-boot-detail[data-v-2364a6bb]{color:var(--color-text-secondary);font-size:.88rem;line-height:1.55}.route-boot-bar[data-v-2364a6bb]{width:188px;height:3px;border-radius:var(--radius-full);background:var(--color-border);overflow:hidden}.route-boot-bar-fill[data-v-2364a6bb]{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,transparent,var(--color-accent),transparent);animation:route-boot-slide-2364a6bb 1.35s ease-in-out infinite}.route-boot-shell.is-error .route-boot-ring[data-v-2364a6bb]{background:conic-gradient(from 0deg,transparent 0deg,var(--color-error) 300deg,transparent 360deg);animation-play-state:paused}.route-boot-shell.is-error .route-boot-mark[data-v-2364a6bb]{animation:none;opacity:.85}@keyframes route-boot-spin-2364a6bb{to{transform:rotate(360deg)}}@keyframes route-boot-spin-reverse-2364a6bb{to{transform:rotate(-360deg)}}@keyframes route-boot-breathe-2364a6bb{0%,to{transform:scale(.92);opacity:.86}50%{transform:scale(1);opacity:1}}@keyframes route-boot-slide-2364a6bb{0%{transform:translate(-130%)}to{transform:translate(330%)}}@keyframes route-boot-aura-2364a6bb{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.07)}}@keyframes route-boot-enter-2364a6bb{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.route-boot-aura[data-v-2364a6bb],.route-boot-ring[data-v-2364a6bb],.route-boot-ring--alt[data-v-2364a6bb],.route-boot-mark[data-v-2364a6bb],.route-boot-bar-fill[data-v-2364a6bb],.route-boot-stage[data-v-2364a6bb]{animation:none!important}}.desktop-window-chrome+.route-boot-shell[data-v-2364a6bb]{padding-top:var(--desktop-titlebar-height)}
