:root{--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .07), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 8px -1px rgba(0, 0, 0, .08), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 20px -3px rgba(0, 0, 0, .1), 0 4px 8px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 30px -5px rgba(0, 0, 0, .12), 0 8px 12px -4px rgba(0, 0, 0, .06);--shadow-focus: 0 0 0 3px rgba(99, 102, 241, .25);--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-150: #eaeff5;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--accent-50: #eef2ff;--accent-100: #e0e7ff;--accent-200: #c7d2fe;--accent-400: #818cf8;--accent-500: #6366f1;--accent-600: #4f46e5;--accent-700: #4338ca;--color-success: #10b981;--color-success-light: #d1fae5;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-danger-light: #fee2e2;--color-bg: var(--gray-50);--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-surface-overlay: rgba(255, 255, 255, .95);--color-border: var(--gray-200);--color-border-subtle: var(--gray-100);--color-border-strong: var(--gray-300);--color-text: var(--gray-900);--color-text-secondary: var(--gray-600);--color-text-muted: #5b6a7e;--color-text-inverted: #ffffff;--color-accent: var(--accent-500);--color-accent-hover: var(--accent-600);--color-accent-subtle: var(--accent-50);--color-accent-text: var(--accent-600);--card-character-color: #22c55e;--card-scene-color: #3b82f6;--card-chapter-color: #f97316;--card-location-color: #92400e;--card-arc-color: #eab308;--card-item-color: #ef4444;--card-plot-point-color: #be185d;--card-scenebeat-color: #0d9488;--card-glossary-color: #6366f1;--toolbar-height: 44px;--toolbar-bg: var(--gray-100);--toolbar-border: var(--color-border);--toolbar-text: var(--color-text-secondary);--toolbar-text-hover: var(--color-text);--toolbar-item-hover-bg: rgba(0, 0, 0, .06);--toolbar-item-border: var(--color-border);--toolbar-dropdown-bg: var(--color-surface);--toolbar-dropdown-text: var(--color-text-secondary);--toolbar-dropdown-text-hover: var(--color-text);--toolbar-dropdown-hover-bg: rgba(0, 0, 0, .05);--toolbar-dropdown-sep: var(--color-border);--transition-fast: .1s ease;--transition-base: .15s ease;--transition-slow: .25s ease;--breakpoint-tablet: 768px;--breakpoint-phone: 480px}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-normal);line-height:1.5;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--weight-semibold);line-height:1.25;color:var(--color-text)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4{font-size:var(--text-md)}p{margin:0}a{color:var(--color-accent-text);text-decoration:none}a:hover{text-decoration:underline}strong{font-weight:var(--weight-semibold)}input,textarea,select{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);width:100%;box-sizing:border-box;transition:border-color var(--transition-base),box-shadow var(--transition-base);outline:none;line-height:1.5}input:hover,textarea:hover,select:hover{border-color:var(--color-border-strong)}input:focus,textarea:focus,select:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}textarea{resize:vertical;min-height:60px}select{cursor:pointer;appearance:auto}input[type=checkbox],input[type=radio]{width:auto;cursor:pointer;accent-color:var(--color-accent)}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-medium);line-height:1;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);cursor:pointer;transition:background-color var(--transition-base),border-color var(--transition-base),color var(--transition-base),box-shadow var(--transition-base);white-space:nowrap;user-select:none}button:hover{background-color:var(--gray-100);border-color:var(--color-border-strong)}button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}button:active{background-color:var(--gray-150)}button:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}button.btn-primary,.btn-primary{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverted)}button.btn-primary:hover,.btn-primary:hover{background-color:var(--color-accent-hover);border-color:var(--color-accent-hover)}button.btn-danger,.btn-danger{background-color:var(--color-danger);border-color:var(--color-danger);color:var(--color-text-inverted)}button.btn-danger:hover,.btn-danger:hover{background-color:var(--color-danger-hover);border-color:var(--color-danger-hover)}.icon-button{background:transparent;border:none;border-radius:var(--radius-sm);padding:var(--space-1);font-size:var(--text-md);line-height:1;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base)}.icon-button:hover{background-color:var(--gray-100);color:var(--color-text)}.icon-button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.font-medium{font-weight:var(--weight-medium)}.font-semibold{font-weight:var(--weight-semibold)}.form-required{color:var(--color-danger);font-weight:var(--weight-bold)}.form-error{margin:var(--space-1) 0 0;color:var(--color-danger);font-size:var(--text-xs)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}[data-theme=dark]{--color-bg: #0f172a;--color-surface: #1e293b;--color-surface-raised: #243248;--color-surface-overlay: rgba(30, 41, 59, .97);--color-border: #334155;--color-border-subtle: #1e293b;--color-border-strong: #475569;--color-text: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-muted: #8c9cb4;--color-accent-subtle: rgba(99, 102, 241, .18);--color-accent-text: #818cf8;--toolbar-bg: #0c1220;--toolbar-border: #1e293b;--toolbar-text: var(--gray-400);--toolbar-text-hover: var(--gray-50);--toolbar-item-hover-bg: rgba(255, 255, 255, .08);--toolbar-item-border: rgba(255, 255, 255, .12);--toolbar-dropdown-bg: var(--gray-800);--toolbar-dropdown-text: var(--gray-200);--toolbar-dropdown-text-hover: var(--gray-50);--toolbar-dropdown-hover-bg: rgba(255, 255, 255, .1);--toolbar-dropdown-sep: rgba(255, 255, 255, .12);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 8px rgba(0, 0, 0, .55), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .6), 0 4px 8px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .7), 0 8px 16px rgba(0, 0, 0, .5)}[data-theme=dark] .canvas,[data-theme=dark] .canvas-container,[data-theme=dark] .story-view .canvas-container{background-color:#0f172a;background-image:radial-gradient(circle,#1e293b 1px,transparent 1px)}[data-theme=dark] .canvas-toolbar .hud-btn:hover,[data-theme=dark] .zoom-display:hover{background-color:#1e293b}[data-theme=dark] .canvas-minimap-title{background:#0c1220}[data-theme=dark] .canvas-return-btn:hover{background:#1e293b}[data-theme=dark] .sidebar-controls button{background-color:#334155;border-color:#475569;color:#cbd5e1}[data-theme=dark] .sidebar-controls button:hover{background-color:#475569;color:#f1f5f9}[data-theme=dark] .checkbox-group label:hover{background-color:#1e293b}[data-theme=dark] .sidebar-search input[type=text]{background-color:#1e293b;color:#f1f5f9}[data-theme=dark] .sidebar-search-clear:hover{background:#334155}[data-theme=dark] .tree-row:hover{background-color:#1e293b}[data-theme=dark] .tree-row--section:hover{background-color:#172032}[data-theme=dark] .tree-caret:not(.tree-caret--leaf):hover,[data-theme=dark] .tree-row-dots:hover{background-color:#334155}[data-theme=dark] .tree-menu-item:hover,[data-theme=dark] .field input,[data-theme=dark] .field textarea,[data-theme=dark] .field select,[data-theme=dark] .icon-button:hover{background-color:#1e293b}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#475569}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#64748b}.eb-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg, #0f0f10);z-index:9999;padding:var(--space-4, 16px)}.eb-card{background:var(--color-surface, #1a1a1d);border:1px solid var(--color-border, #2a2a2d);border-radius:var(--radius-lg, 12px);padding:var(--space-8, 32px);max-width:480px;width:100%;display:flex;flex-direction:column;gap:var(--space-3, 12px)}.eb-title{color:var(--color-text-primary, #f0f0f0);font-size:1.25rem;font-weight:600;margin:0}.eb-body{color:var(--color-text-secondary, #a0a0a0);font-size:.9rem;margin:0;line-height:1.5}.eb-detail{background:var(--color-bg, #0f0f10);border-radius:var(--radius-sm, 4px);padding:var(--space-2, 8px) var(--space-3, 12px);font-size:.75rem;color:var(--color-error, #f87171);overflow-x:auto;margin:0;white-space:pre-wrap;word-break:break-word}.eb-btn{align-self:flex-start;padding:var(--space-2, 8px) var(--space-4, 16px);background:var(--color-accent, #6366f1);color:#fff;border:none;border-radius:var(--radius-md, 8px);font-size:.875rem;font-weight:500;cursor:pointer;transition:opacity .15s}.eb-btn:hover{opacity:.85}.app{width:100vw;height:100vh;overflow:hidden;display:flex;flex-direction:column;background-color:var(--color-bg)}.pm-readonly-banner{background:var(--color-surface-2, #f1f5f9);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-sm, 6px);color:var(--color-text-muted, #64748b);font-size:.8rem;padding:.45rem .75rem;margin-bottom:.75rem}.pm-tab-readonly{pointer-events:none;opacity:.65;user-select:none}.pm-overlay{position:fixed;inset:0;background:#0f172a8c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:var(--space-2);box-sizing:border-box;z-index:9999}.pm-overlay .pm-content{position:relative;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-6) var(--space-6) 0 var(--space-6);width:98vw;max-width:98vw;height:96vh;max-height:96vh;overflow:hidden;box-sizing:border-box;display:flex;flex-direction:column}.modal-content h2{margin:0 0 var(--space-4) 0;font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text);padding-right:var(--space-8)}.modal-close-button{position:absolute;top:var(--space-4);right:var(--space-4);background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-md);width:30px;height:30px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color var(--transition-base),color var(--transition-base)}.tab-header{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-6);border-bottom:2px solid var(--color-border);padding-bottom:0}.tab-header button{background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-base),border-color var(--transition-base),background-color var(--transition-base);white-space:nowrap}.tab-header button:hover{color:var(--color-text);background-color:var(--gray-50);border-color:transparent}.tab-header button.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--weight-semibold);background-color:transparent}.tab-panel{display:none}.tab-panel.active{display:block;flex:1;min-height:0;overflow-y:auto;padding-bottom:var(--space-6)}.wf-type-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2)}.wf-type-tab{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.wf-type-tab:hover{background-color:var(--gray-50);color:var(--color-text)}.wf-type-tab--active{background-color:var(--color-accent-subtle, #eef2ff);color:var(--color-accent);border-color:var(--color-accent)}.pm-section-title{margin:var(--space-5) 0 var(--space-3) 0;font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text)}.pm-section-title:first-child{margin-top:0}.pm-hint-text{margin:var(--space-1) 0 0 0;font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.5}.pm-footer{flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;padding:var(--space-3) 0 var(--space-4) 0;border-top:1px solid var(--color-border);margin-top:auto}.pm-done-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-5);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--transition-fast)}.pm-done-btn:hover{background:var(--color-accent-hover, #4f46e5)}.pm-notes-panel{display:flex;flex-direction:column;gap:var(--space-5)}.pm-notes-section{display:flex;flex-direction:column;gap:var(--space-1)}.pm-notes-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.pm-notes-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.pm-notes-textarea{width:100%;box-sizing:border-box;font-size:var(--text-sm);line-height:1.65;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--gray-50);color:var(--color-text);resize:vertical;font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.pm-notes-textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #6366f126;background:var(--color-surface)}[data-theme=dark] .pm-notes-textarea{background:var(--gray-900, #111827)}.pm-defaults-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:var(--gray-50);border:1px dashed var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-muted)}.pm-load-defaults-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition-fast)}.pm-load-defaults-btn:hover{opacity:.88}.metadata-form{display:flex;flex-direction:column;gap:var(--space-4)}.metadata-form label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text)}.metadata-form input,.metadata-form textarea{font-size:var(--text-base);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--gray-50);color:var(--color-text);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.metadata-form input:focus,.metadata-form textarea:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);background-color:var(--color-surface);outline:none}.pm-story-group{margin-bottom:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.pm-story-group-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--gray-100);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);gap:var(--space-2)}.pm-add-story-btn{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast)}.pm-add-story-btn:hover{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent)}.pm-story-group-empty{padding:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;margin:0}.pm-story-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border)}.pm-story-row:first-of-type{border-top:none}.pm-story-order{width:52px;flex-shrink:0;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--color-text);text-align:center}.pm-story-title{flex:1;min-width:0;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.pm-story-title:focus,.pm-story-order:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none;background:var(--color-surface)}.pm-story-series-select{flex-shrink:0;max-width:160px;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--color-text);cursor:pointer}.pm-story-delete{flex-shrink:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast)}.pm-story-delete:hover{color:var(--color-danger, #f87171);background-color:#f871711a;border-color:#f871714d}.pm-editor-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.pm-editor-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0}.pm-editor-swatch{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:700}.pm-editor-add-row{display:flex;align-items:center;gap:var(--space-2)}.pm-mb-3{margin-bottom:var(--space-3)}.pm-mt-2{margin-top:var(--space-2)}.pm-mt-4{margin-top:var(--space-4)}.pm-grow{flex:1}.series-editor{padding:var(--space-2) 0}.se-add-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.se-name-input{flex:1;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--color-text)}.se-name-input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none;background:var(--color-surface)}.se-add-btn{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:opacity var(--transition-fast)}.se-add-btn:disabled{opacity:.45;cursor:not-allowed}.se-empty{font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;margin:0 0 var(--space-2) 0}.se-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.se-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50)}.se-item-header{display:flex;align-items:center;gap:var(--space-2)}.se-item-name{flex:1;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);transition:border-color var(--transition-fast),background-color var(--transition-fast)}.se-item-name:hover{border-color:var(--color-border);background:var(--color-surface)}.se-item-name:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none;background:var(--color-surface)}.se-item-desc{width:100%;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);box-sizing:border-box}.se-item-desc:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.se-remove-btn{flex-shrink:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);transition:color var(--transition-fast),background-color var(--transition-fast)}.se-remove-btn:hover{color:var(--color-danger, #f87171);background-color:#f871711a}.se-shared{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-subtle, #f8f8f8);border-radius:var(--radius-sm);font-size:var(--text-sm)}.se-shared-empty{margin:0;color:var(--color-text-muted);font-style:italic}.se-shared-empty code{background:var(--color-bg-card, #fff);padding:1px 4px;border-radius:var(--radius-sm);font-style:normal;font-size:.9em}.se-shared-group{margin-bottom:var(--space-3)}.se-shared-group:last-child{margin-bottom:0}.se-shared-group-label{font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-1)}.se-shared-count{font-weight:400;color:var(--color-text-muted)}.se-shared-none{color:var(--color-text-muted);padding-left:var(--space-3)}.se-shared-list{list-style:none;margin:0;padding:0}.se-shared-entry{padding:var(--space-1) var(--space-3)}.se-shared-entry-name{font-weight:500}.se-shared-entry-desc{color:var(--color-text-muted)}.ple-wrapper{display:flex;flex-direction:column;gap:var(--space-3)}.ple-add-row{display:flex;gap:var(--space-2)}.ple-add-input{flex:1;min-width:0;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ple-add-input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);background:var(--color-surface);outline:none}.ple-add-input::placeholder{color:var(--color-text-muted)}.ple-add-btn{flex-shrink:0;padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:opacity var(--transition-fast)}.ple-add-btn:hover{opacity:.88}.ple-add-btn:disabled{opacity:.45;cursor:not-allowed}.ple-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.ple-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--gray-50)}.ple-item-header{display:flex;align-items:center;gap:var(--space-2)}.ple-item-name{flex:1;min-width:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ple-color-swatch{flex-shrink:0;width:24px;height:24px;border-radius:var(--radius-sm);border:1px solid var(--color-border);cursor:pointer;padding:0;background:none}.ple-remove-btn{flex-shrink:0;margin-left:auto;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);line-height:1;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast)}.ple-remove-btn:hover{color:var(--color-danger, #f87171);background-color:#f871711a;border-color:#f8717140}.ple-desc-input{width:100%;box-sizing:border-box;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ple-desc-input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.ple-desc-input::placeholder{color:var(--color-text-muted)}.ple-empty{padding:var(--space-4) 0;font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;text-align:center;margin:0}.collapsible-section{margin-bottom:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.collapsible-header{padding:var(--space-3) var(--space-4);font-weight:var(--weight-semibold);font-size:var(--text-sm);cursor:pointer;background-color:var(--gray-50);border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:var(--space-2);color:var(--color-text);user-select:none;transition:background-color var(--transition-fast)}.collapsible-header:hover{background-color:var(--gray-100)}.collapsible-content{padding:var(--space-3) var(--space-4);background-color:var(--color-surface)}.workflow-editor-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.workflow-editor-buttons input[type=file]{display:none}.workflow-editor-buttons{display:flex;gap:var(--space-2)}.workflow-editor-card{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);overflow:hidden}.workflow-editor-header{background-color:var(--gray-50);padding:var(--space-3) var(--space-4);cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:var(--weight-medium);font-size:var(--text-sm);color:var(--color-text);transition:background-color var(--transition-fast);border-bottom:1px solid var(--color-border);gap:var(--space-3)}.workflow-editor-header:hover{background-color:var(--gray-100)}.we-header-left{display:flex;align-items:center;gap:var(--space-2);min-width:0}.we-header-right{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.we-badge{font-size:var(--text-xs);font-weight:var(--weight-normal);color:var(--color-text-muted);background:var(--color-border);border-radius:999px;padding:1px 7px}.we-progress-pill{position:relative;width:80px;height:18px;background:var(--color-border);border-radius:999px;overflow:hidden}.we-progress-bar{position:absolute;left:0;top:0;bottom:0;background:var(--color-accent, #6366f1);transition:width .2s ease;border-radius:999px}.we-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:var(--weight-semibold);color:var(--color-text);mix-blend-mode:difference;filter:invert(1)}.workflow-editor-body{padding:var(--space-4);background-color:var(--color-surface);display:flex;flex-direction:column;gap:var(--space-3)}.workflow-editor-input,.workflow-editor-textarea{width:100%;box-sizing:border-box}.workflow-editor-stages-heading{margin:var(--space-2) 0 var(--space-1) 0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);display:flex;align-items:center;gap:var(--space-3)}.we-stages-progress{font-size:var(--text-xs);font-weight:var(--weight-normal);color:var(--color-text-muted)}.we-stage-card{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface)}.we-stage-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--gray-50);cursor:pointer;gap:var(--space-2);transition:background-color var(--transition-fast);border-bottom:1px solid transparent}.we-stage-header:hover{background:var(--gray-100)}.we-stage-header--done{background:#f0fdf4;border-left:3px solid #22c55e}[data-theme=dark] .we-stage-header--done{background:#052e16}.we-stage-header-left{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1}.we-stage-header-right{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.we-stage-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--color-border);font-size:11px;font-weight:var(--weight-semibold);color:var(--color-text-muted);flex-shrink:0}.we-stage-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.we-stage-checks{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-border);border-radius:999px;padding:1px 6px;white-space:nowrap;flex-shrink:0}.we-pct-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);min-width:34px;text-align:right}.we-pct-badge--progress{color:var(--color-accent, #6366f1)}.we-pct-badge--done{color:#22c55e}.we-stage-delete{background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:11px;padding:2px 4px;border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast)}.we-stage-delete:hover{color:var(--color-danger);background:var(--color-danger-light)}.we-stage-toggle{font-size:11px;color:var(--color-text-muted)}.we-stage-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4);border-top:1px solid var(--color-border);background:var(--color-surface)}.we-field-row{display:flex;flex-direction:column;gap:var(--space-1)}.we-field-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-2)}.we-field-meta{font-weight:var(--weight-normal);text-transform:none;letter-spacing:0;color:var(--color-text-muted);font-size:var(--text-xs)}.we-text-input,.we-textarea{width:100%;box-sizing:border-box;font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2);color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition-fast);resize:vertical}.we-text-input:focus,.we-textarea:focus{outline:none;border-color:var(--color-accent, #6366f1);box-shadow:0 0 0 2px #6366f126}.we-progress-row{display:flex;flex-direction:column;gap:var(--space-2)}.we-range{width:100%;accent-color:var(--color-accent, #6366f1);cursor:pointer}.we-pct-value{font-weight:var(--weight-semibold);color:var(--color-accent, #6366f1);font-size:var(--text-xs);text-transform:none;letter-spacing:0}.we-quick-pcts{display:flex;gap:var(--space-1)}.we-quick-pct{flex:1;padding:3px 0;font-size:var(--text-xs);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.we-quick-pct:hover{background:var(--gray-100);color:var(--color-text)}.we-quick-pct--active{background:var(--color-accent, #6366f1);border-color:var(--color-accent, #6366f1);color:#fff}.we-checklist{display:flex;flex-direction:column;gap:var(--space-1)}.we-checklist-row{display:flex;align-items:center;gap:var(--space-2)}.we-checkbox{flex-shrink:0;width:15px;height:15px;accent-color:var(--color-accent, #6366f1);cursor:pointer}.we-checklist-text{flex:1;font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition-fast);box-sizing:border-box}.we-checklist-text:focus{outline:none;border-color:var(--color-accent, #6366f1)}.we-checklist-text--done{text-decoration:line-through;color:var(--color-text-muted)}.we-links{display:flex;flex-direction:column;gap:var(--space-1)}.we-link-row{display:flex;align-items:center;gap:var(--space-2)}.we-link-label{flex:2;font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);color:var(--color-text);background:var(--color-surface);box-sizing:border-box}.we-link-url{flex:3;font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);color:var(--color-text);background:var(--color-surface);box-sizing:border-box}.we-link-label:focus,.we-link-url:focus{outline:none;border-color:var(--color-accent, #6366f1)}.we-link-open{flex-shrink:0;font-size:var(--text-sm);color:var(--color-accent, #6366f1);text-decoration:none;padding:2px 4px;border-radius:var(--radius-sm)}.we-link-open:hover{background:var(--toolbar-item-hover-bg)}.we-add-btn{align-self:flex-start;font-size:var(--text-xs);color:var(--color-accent, #6366f1);background:none;border:1px dashed var(--color-accent, #6366f1);border-radius:var(--radius-sm);padding:3px var(--space-2);cursor:pointer;transition:background-color var(--transition-fast)}.we-add-btn:hover{background:#6366f112}.we-remove-btn{flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:10px;padding:2px 4px;border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast)}.we-remove-btn:hover{color:var(--color-danger);background:var(--color-danger-light)}.we-add-stage-btn{align-self:flex-start;font-size:var(--text-sm);color:var(--color-accent, #6366f1);background:none;border:1px dashed var(--color-accent, #6366f1);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);cursor:pointer;transition:background-color var(--transition-fast);margin-top:var(--space-1)}.we-add-stage-btn:hover{background:#6366f112}.workflow-editor-delete-btn{align-self:flex-start;color:var(--color-danger);background:none;border:none;cursor:pointer;font-size:var(--text-sm);padding:var(--space-1);border-radius:var(--radius-sm);transition:background-color var(--transition-fast);margin-top:var(--space-2)}.workflow-editor-delete-btn:hover{background-color:var(--color-danger-light)}.editor-input{width:100%;height:100%;min-height:150px;border:1px solid #ccc;padding:1rem;border-radius:4px;font-size:1rem;background:#fff;overflow-y:auto}.editor-input--readonly{min-height:80px}.editor-input--empty{color:var(--color-text-muted);font-style:italic}.editor-input--plain{min-height:120px;resize:vertical;padding:var(--space-2);font-family:inherit;font-size:var(--text-sm)}.editor-shell{position:relative;flex:1;min-height:0;display:flex}.editor-placeholder{position:absolute;top:1rem;left:1rem;color:#aaa;pointer-events:none}.editor-link{color:#07c;text-decoration:underline}.scene-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-4)}.scene-toolbar-right{display:flex;gap:var(--space-2)}.scene-toolbar input[type=file]{display:none}.swe-primary-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition-fast)}.swe-primary-btn:hover{opacity:.88}.swe-toolbar-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--gray-100);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast)}.swe-toolbar-btn:hover{background:var(--gray-200);border-color:var(--color-border-strong)}.swe-empty{padding:var(--space-6) 0;font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;text-align:center;margin:0}.worksheet-container{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);overflow:hidden}.worksheet-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--gray-50);border-bottom:1px solid var(--color-border)}.worksheet-name{flex:1;min-width:0;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.worksheet-name:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.worksheet-name::placeholder{color:var(--color-text-muted)}.swe-toggle-btn{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);transition:background var(--transition-fast),color var(--transition-fast)}.swe-toggle-btn:hover{background:var(--gray-200);color:var(--color-text)}.worksheet-body{padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.swe-fields-heading{margin:0 0 var(--space-1) 0;font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.field-container{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--gray-50)}.field-container-header{display:flex;align-items:center;gap:var(--space-2)}.field-label{flex:1;min-width:0;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field-label:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.field-label::placeholder{color:var(--color-text-muted)}.swe-delete-field-btn{flex-shrink:0;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xs);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.swe-delete-field-btn:hover{color:var(--color-danger, #f87171);background:#f871711a;border-color:#f8717140}.swe-worksheet-actions{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-2);border-top:1px solid var(--color-border-subtle);margin-top:var(--space-1)}.swe-add-field-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);background:transparent;color:var(--color-text-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.swe-add-field-btn:hover{background:var(--gray-50);color:var(--color-accent);border-color:var(--color-accent)}.swe-danger-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);background:transparent;color:var(--color-danger, #f87171);border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.swe-danger-btn:hover{background:#f871711a;border-color:var(--color-danger, #f87171)}.genre-editor{display:flex;flex-direction:column;gap:var(--space-3)}.genre-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.genre-toolbar h3{margin:0;font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text)}.genre-buttons{display:flex;gap:var(--space-2)}.genre-editor input[type=file]{display:none}.ge-toolbar-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--gray-100);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast)}.ge-toolbar-btn:hover{background:var(--gray-200);border-color:var(--color-border-strong)}.ge-add-genre-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.ge-add-genre-btn:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.ge-empty{padding:var(--space-4) 0;font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;text-align:center;margin:0}.accordion{display:flex;flex-direction:column;gap:var(--space-2)}.accordion-item{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.accordion-header{background:var(--gray-50);padding:var(--space-2) var(--space-3);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);transition:background var(--transition-fast);user-select:none}.accordion-header:hover{background:var(--gray-100)}.accordion-header strong{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accordion-body{padding:var(--space-3) var(--space-4);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-3)}.ge-field-label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text)}.ge-genre-name-input{width:100%;box-sizing:border-box;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ge-genre-name-input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);background:var(--color-surface);outline:none}.subgenres h4{margin:0 0 var(--space-2) 0;font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.subgenre-entry{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.ge-subgenre-input{flex:1;min-width:0;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ge-subgenre-input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);background:var(--color-surface);outline:none}.ge-delete-btn{flex-shrink:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);line-height:1;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.ge-delete-btn:hover{color:var(--color-danger, #f87171);background:#f871711a;border-color:#f8717140}.ge-add-sub-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);background:transparent;color:var(--color-text-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.ge-add-sub-btn:hover{background:var(--gray-50);color:var(--color-accent);border-color:var(--color-accent)}.sidebar{width:100%;height:100%;background-color:var(--color-surface);border-right:1px solid var(--color-border);overflow:hidden;font-size:var(--text-sm);box-sizing:border-box;display:flex;flex-direction:column}.sidebar-controls{display:flex;flex-direction:row;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;flex-wrap:wrap}.sidebar-controls button{padding:var(--space-1) var(--space-2);font-size:13px;background-color:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base)}.sidebar-controls button:hover{background-color:var(--gray-200);color:var(--color-text);border-color:var(--color-border-strong)}.checkbox-group{display:flex;flex-wrap:wrap;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0}.checkbox-group label{display:flex;align-items:center;gap:var(--space-1);font-size:16px;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:background-color var(--transition-base)}.checkbox-group label:hover{background-color:var(--gray-100)}.sidebar-search{position:relative;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0}.sidebar-search input[type=text]{width:100%;padding:var(--space-1) var(--space-2);padding-right:28px;font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--gray-50);color:var(--color-text);box-sizing:border-box;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.sidebar-search input[type=text]:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);background-color:var(--color-surface);outline:none}.sidebar-search input[type=text]::placeholder{color:var(--color-text-muted)}.sidebar-search-clear{position:absolute;right:calc(var(--space-3) + 6px);top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:12px;padding:2px 4px;line-height:1;border-radius:var(--radius-sm)}.sidebar-search-clear:hover{color:var(--color-text);background:var(--gray-200)}.tree-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--space-1) 0 var(--space-3)}.tree-row{display:flex;align-items:center;gap:3px;min-height:22px;padding-top:1px;padding-bottom:1px;padding-right:var(--space-2);padding-left:calc(var(--tree-depth, 0) * 14px + 6px);cursor:pointer;border-radius:0;color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;transition:background-color var(--transition-fast),color var(--transition-fast);user-select:none}.tree-row:hover{background-color:var(--gray-100);color:var(--color-text)}.tree-row--selected{background-color:var(--accent-50)!important;color:var(--accent-700)!important;font-weight:var(--weight-medium)}.tree-row--section{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);min-height:26px;margin-top:var(--space-1);cursor:pointer}.tree-row--section:hover{background-color:var(--gray-50);color:var(--color-text-secondary)}.tree-caret{width:14px;height:14px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);border-radius:2px;transition:background-color var(--transition-fast)}.tree-caret:before{content:"▶";font-size:7px;line-height:1;display:block;transition:transform .15s ease,color .15s ease;color:var(--color-text-muted)}.tree-caret--leaf:before{content:""}.tree-caret--open:before{transform:rotate(90deg);color:var(--color-text-secondary)}.tree-caret:not(.tree-caret--leaf):hover{background-color:var(--gray-200);border-radius:var(--radius-xs)}.tree-icon{font-size:12px;flex-shrink:0;line-height:1;width:16px;text-align:center}.tree-label{flex:1;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.tree-row-dots{flex-shrink:0;margin-left:auto;background:none;border:none;color:var(--color-text-muted);font-size:14px;line-height:1;padding:1px 4px;border-radius:var(--radius-sm);cursor:pointer;opacity:0;transition:opacity var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}.tree-row:hover .tree-row-dots,.tree-row-dots--open{opacity:1}.tree-row-dots:hover{background-color:var(--gray-200);color:var(--color-text)}.tree-menu{position:fixed;z-index:2000;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:148px;overflow:hidden;padding:3px 0}.tree-menu-item{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);width:100%;padding:6px var(--space-3);background:none;border:none;text-align:left;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast);white-space:nowrap}.tree-menu-item:hover{background-color:var(--gray-100)}.tree-menu-item--danger{color:var(--color-danger, #dc2626)}.tree-menu-item--danger:hover{background-color:#dc262614}.tree-menu-item-icon{font-size:13px;width:16px;text-align:center;flex-shrink:0}.tree-stage-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin:0 2px}.tree-search-results{padding:var(--space-1) 0}.tree-search-group{padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-top:var(--space-1)}.tree-empty{padding:var(--space-4) var(--space-3);color:var(--color-text-muted);font-style:italic;font-size:var(--text-sm);text-align:center}.tree-empty-hint{padding:var(--space-1) var(--space-3) var(--space-2) 34px;color:var(--color-text-muted);font-style:italic;font-size:var(--text-sm);line-height:1.4}.tree-row--focused{outline:2px solid var(--color-accent);outline-offset:-2px}.tree-row--dimmed{opacity:.35}.tree-row--drag-over{background-color:var(--accent-50)!important;outline:2px dashed var(--color-accent);outline-offset:-2px}.tree-row{position:relative}.tree-guide{position:absolute;top:0;bottom:0;width:1px;background:var(--color-border-subtle, var(--gray-200));pointer-events:none}.tree-empty-badge{font-size:9px;font-weight:700;color:var(--color-warning, #c2410c);flex-shrink:0;margin-left:3px;line-height:1;opacity:.85}.tree-rename-input{flex:1;min-width:0;padding:1px 4px;font-size:var(--text-sm);font-family:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-accent);border-radius:var(--radius-sm);box-shadow:var(--shadow-focus);outline:none;line-height:1.4}.sidebar-breadcrumb{display:flex;align-items:center;gap:2px;padding:var(--space-1) var(--space-3);border-bottom:1px solid var(--color-border-subtle);font-size:var(--text-xs);color:var(--color-text-muted);flex-shrink:0;white-space:nowrap;overflow:hidden;min-height:24px}.breadcrumb-root{font-weight:var(--weight-semibold);color:var(--color-text-secondary)}.breadcrumb-sep{color:var(--color-text-muted);margin:0 1px}.breadcrumb-part{overflow:hidden;text-overflow:ellipsis;color:var(--color-text-secondary)}.breadcrumb-part:last-child{color:var(--color-text);font-weight:var(--weight-medium)}.series-reorder-modal{display:flex;flex-direction:column;gap:var(--space-4);min-width:320px}.series-reorder-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);margin:0 0 var(--space-1);padding-right:var(--space-6)}.series-reorder-subtitle{font-weight:var(--weight-normal);color:var(--color-text-secondary)}.series-reorder-empty{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.series-reorder-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.series-reorder-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:grab;user-select:none;transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}.series-reorder-item:hover{background:var(--gray-100);box-shadow:var(--shadow-sm)}.series-reorder-item:active{cursor:grabbing}.series-reorder-grip{font-size:18px;color:var(--color-text-muted);flex-shrink:0;line-height:1}.series-reorder-num{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-secondary);min-width:22px;text-align:right;flex-shrink:0}.series-reorder-label{font-size:var(--text-sm);color:var(--color-text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.series-reorder-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.series-reorder-cancel{padding:var(--space-2) var(--space-4);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.series-reorder-cancel:hover{background:var(--gray-100);color:var(--color-text)}.series-reorder-save{padding:var(--space-2) var(--space-4);background:var(--color-accent);border:none;border-radius:var(--radius-md);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:opacity var(--transition-fast)}.series-reorder-save:hover{opacity:.88}.sb-move-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:3000}.sb-move-dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);min-width:280px;max-width:400px;max-height:70vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.sb-move-title{margin:0 0 var(--space-3);font-size:var(--text-md)}.sb-move-hint{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary)}.sb-move-option{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-3);margin-bottom:var(--space-1);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm)}.sb-move-option-proj{color:var(--color-text-muted);font-size:var(--text-xs)}.sb-move-cancel{margin-top:var(--space-3);padding:.4rem var(--space-4);font-size:var(--text-sm);cursor:pointer}.modal-overlay{position:fixed;inset:0;background:#0f172a8c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-6);box-sizing:border-box}.modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-6);width:90%;max-width:600px;max-height:85vh;overflow-y:auto;position:relative;box-sizing:border-box}.modal-content.modal-wide{max-width:98vw;width:98vw;max-height:96vh;height:96vh;display:flex;flex-direction:column;padding:var(--space-4)}.modal-content.modal-large{max-width:90vw;width:90vw;max-height:90vh;height:90vh;display:flex;flex-direction:column;padding:var(--space-4)}.modal-content.modal-chart{height:96vh;max-height:96vh;width:min(96vh,98vw);max-width:min(96vh,98vw);display:flex;flex-direction:column;padding:var(--space-4)}.modal-close-button{position:absolute;top:var(--space-3);right:var(--space-3);background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-md);width:28px;height:28px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color var(--transition-base),color var(--transition-base)}.modal-close-button:hover{background-color:var(--gray-200);color:var(--color-text)}.story-editor{display:flex;flex-direction:column;gap:20px}.story-editor label{display:flex;flex-direction:column;gap:6px;font-size:var(--text-sm, 12px);font-weight:600;color:var(--color-text-secondary, var(--color-text-muted));letter-spacing:.02em}.story-editor input[type=text],.story-editor select,.story-editor textarea{width:100%;padding:7px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);color:var(--color-text);font-size:var(--text-sm, 13px);font-family:inherit;box-sizing:border-box;transition:border-color .15s;appearance:auto}.story-editor input[type=text]:focus,.story-editor select:focus,.story-editor textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 20%,transparent)}.story-editor textarea{resize:vertical;min-height:72px}.story-editor .genre-list{display:flex;flex-direction:column;gap:10px}.story-editor .genre-entry{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px)}.story-editor .genre-entry-header{display:flex;align-items:center;justify-content:space-between}.story-editor .genre-entry strong{font-size:var(--text-sm, 13px);font-weight:600;color:var(--color-text)}.story-editor .genre-entry button{padding:2px 8px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);font-size:12px;cursor:pointer;transition:background .12s,color .12s}.story-editor .genre-entry button:hover{background:var(--color-danger, #ef4444);border-color:var(--color-danger, #ef4444);color:#fff}.story-editor .se-section-label{font-size:var(--text-xs, 11px);font-weight:700;color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;padding-bottom:4px;border-bottom:1px solid var(--color-border);margin-bottom:4px}.card-editor-overlay{position:fixed;inset:0;background:#0f172a8c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1200;padding:5vh 5vw;box-sizing:border-box}.card-editor-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90vw;height:90vh;display:flex;flex-direction:column;overflow:hidden;position:relative;box-sizing:border-box}.card-editor-readonly-bar{display:flex;align-items:center;gap:var(--space-2);background:var(--color-accent);color:#fff;padding:5px var(--space-3);flex-shrink:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.card-editor-readonly-label{flex:1;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;text-align:center}.card-editor-comment-btn{background:#fff3;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:var(--radius-sm);padding:3px 10px;font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.card-editor-comment-btn:hover{background:#ffffff59}.card-editor-close{position:absolute;top:var(--space-3);right:var(--space-3);background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:16px;width:28px;height:28px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;z-index:1;transition:background-color var(--transition-base),color var(--transition-base)}.card-editor-close:hover{background:var(--gray-200);color:var(--color-text)}.card-editor-close--in-bar{position:static;background:#ffffff26;border-color:#ffffff4d;color:#fff;flex-shrink:0}.card-editor-close--in-bar:hover{background:#ffffff4d;color:#fff}.ced-container{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.ced-titlebar{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0;padding:var(--space-3) var(--space-5, 20px) var(--space-3) var(--space-4);border-bottom:2px solid var(--color-border);min-height:52px;padding-right:48px}.ced-type-icon{font-size:20px;flex-shrink:0;line-height:1}.ced-name-input{flex:1;font-size:var(--text-xl, 1.2rem);font-weight:var(--weight-semibold);color:var(--color-text);background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;padding:2px 0;outline:none;min-width:0;transition:border-color var(--transition-base)}.ced-name-input:focus{border-bottom-color:var(--color-accent)}.ced-title-badges{display:flex;flex-wrap:wrap;gap:var(--space-1);flex-shrink:0}.ced-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.03em;color:#fff;border-radius:var(--radius-full);padding:2px var(--space-2);white-space:nowrap;background:var(--color-text-muted)}.ced-badge--violet{background:#7c3aed}.ced-badge--cyan{background:#0891b2}.ced-badge--slate{background:var(--gray-600)}.ced-badge--accent{background:var(--color-accent)}.ced-badge--teal{background:#0f766e}.ced-badge--pine{background:#0d9488}.ced-badge--emerald{background:#059669}.ced-body{display:flex;flex:1;min-height:0;overflow:hidden}.ced-sidebar{width:240px;min-width:240px;flex-shrink:0;border-right:1px solid var(--color-border);overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.ced-field{display:flex;flex-direction:column;gap:2px}.ced-field label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.ced-field input,.ced-field select,.ced-field textarea{font-size:var(--text-sm);padding:4px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--color-text);width:100%;box-sizing:border-box;transition:border-color var(--transition-base),background var(--transition-base);font-family:inherit}.ced-field input:focus,.ced-field select:focus,.ced-field textarea:focus{border-color:var(--color-accent);background:var(--color-surface);outline:none;box-shadow:var(--shadow-focus)}.ced-divider{height:1px;background:var(--color-border);margin:var(--space-1) 0;flex-shrink:0}.ced-color-row{display:flex;align-items:center;gap:var(--space-2)}.ced-color-row input[type=color]{width:40px;height:28px;padding:1px 2px;flex-shrink:0}.ced-color-swatch{flex:1;height:12px;border-radius:var(--radius-full)}.ced-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.ced-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border);flex-shrink:0;padding:0 var(--space-4)}.ced-tab{padding:var(--space-2) var(--space-4);background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast)}.ced-tab:hover{color:var(--color-text);background:var(--gray-50)}.ced-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--weight-semibold)}.ced-panel{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4)}.ced-text-field{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.ced-text-field label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);flex-shrink:0}.ced-text-field textarea{flex:1;font-size:var(--text-sm);line-height:1.65;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--gray-50);color:var(--color-text);resize:vertical;min-height:100px;width:100%;box-sizing:border-box;font-family:inherit;transition:border-color var(--transition-base),box-shadow var(--transition-base),background var(--transition-base)}.ced-text-field textarea:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);background:var(--color-surface);outline:none}.ced-text-field.ced-grow textarea{min-height:280px}.ced-text-field.ced-text-field--tall textarea{min-height:300px}.ced-field-hint{font-weight:var(--weight-normal);text-transform:none;letter-spacing:0;color:var(--color-text-muted);font-size:var(--text-xs)}.ced-two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);height:100%}.ced-col{display:flex;flex-direction:column;gap:var(--space-3)}.ced-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.ced-table th{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:2px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);background:var(--gray-50);white-space:nowrap;position:sticky;top:0;z-index:1}.ced-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--gray-100);vertical-align:middle}.ced-table tr:hover td{background:var(--gray-50)}.ced-table select,.ced-table input{font-size:var(--text-xs);padding:3px var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--color-text);min-width:120px;width:100%}.ced-add-row{display:flex;align-items:center;gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--gray-100);margin-bottom:var(--space-2);flex-shrink:0}.ced-add-row label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap}.ced-add-row select,.ced-add-row input{font-size:var(--text-sm);padding:4px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);min-width:180px}.ced-add-btn{padding:4px var(--space-3);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.ced-add-btn:hover{background:var(--accent-600, #4f46e5)}.ced-remove-btn{background:none;border:none;color:var(--color-text-muted);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);line-height:1;transition:color var(--transition-fast),background var(--transition-fast)}.ced-remove-btn:hover{color:#ef4444;background:#ef44441a}.ced-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}.ced-avatar--violet{background:#7c3aed}.ced-avatar--cyan{background:#0891b2}.ced-avatar--teal{background:#0f766e}.ced-avatar--sm{width:20px;height:20px;font-size:10px}.ced-avatar--chip{width:22px;height:22px;font-size:10px}.ced-inline-row{display:flex;align-items:center;gap:6px}.ced-stack-gap{margin-top:var(--space-3)}.ced-row-between{display:flex;align-items:center;justify-content:space-between}.ced-section-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.ced-section-label--mb{margin-bottom:var(--space-1)}.ced-section-label--mb-2{margin-bottom:var(--space-2)}.ced-stat-row{font-size:var(--text-xs);color:var(--color-text-muted)}.ced-stat-row strong{color:var(--color-text)}.ced-field-value{font-size:var(--text-sm);color:var(--color-text-secondary)}.ced-field-value--accent{color:var(--color-accent)}.ced-field-value--num{font-variant-numeric:tabular-nums}.ced-name-input--readonly{font-size:1.1rem}.ced-panel--col{display:flex;flex-direction:column}.ced-chapter-char-row{font-size:var(--text-sm);padding:2px 0}.ced-mt-2{margin-top:2px}.ced-scene-stage{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.ced-rel-arrow{color:var(--color-text-muted);font-size:var(--text-md);text-align:center}.ced-rel-name{font-weight:var(--weight-medium)}.ced-rel-note{color:var(--color-text-secondary)}.ced-add-row input.ced-rel-label-input{flex:1;min-width:120px}.ced-fa-scene{flex:1 1 160px}.ced-fa-dir{flex:0 0 auto}.ced-fa-desc{flex:2 1 220px}.ced-char-cards{display:flex;flex-direction:column;gap:var(--space-3)}.ced-char-card{border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:var(--space-3);background:var(--gray-50);display:flex;flex-direction:column;gap:var(--space-2)}.ced-char-card-header{display:flex;align-items:center;justify-content:space-between}.ced-char-name{font-weight:600;font-size:var(--text-sm)}.ced-char-row{display:flex;gap:var(--space-2);flex-wrap:wrap}.ced-char-field{display:flex;flex-direction:column;gap:3px;flex:1;min-width:120px}.ced-char-field--full{flex:1 1 100%}.ced-char-field--wide{flex:2}.ced-char-label{font-size:var(--text-xs);font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.03em}.ced-char-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--gray-400)}.ced-char-field select,.ced-char-field input[type=text]{font-size:var(--text-xs);padding:4px var(--space-2);border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:#fff;width:100%;box-sizing:border-box}.ced-char-field input[type=text]::placeholder{color:var(--gray-300)}.ced-dynamics-section{margin-top:var(--space-4);border-top:1px solid var(--gray-200);padding-top:var(--space-3)}.ced-dynamics-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:var(--space-2)}.ced-dynamics-pair{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.ced-dynamics-names{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs)}.ced-dynamics-name{font-weight:600}.ced-dynamics-vs{color:var(--gray-400);font-style:italic;font-size:10px;margin:0 2px}.ced-dynamics-row{display:flex;gap:var(--space-2)}.ced-pov-star{background:none;border:none;font-size:18px;cursor:pointer;color:var(--color-text-muted);padding:0 4px;line-height:1;transition:color var(--transition-fast),transform var(--transition-fast)}.ced-pov-star.active{color:var(--color-accent)}.ced-pov-star:hover{transform:scale(1.2)}.ced-arc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-3)}.ced-arc-card{border-left:6px solid var(--gray-300);border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:var(--gray-50);border:1px solid var(--color-border);border-left-width:6px;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.ced-arc-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.ced-arc-card-header strong{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.ced-arc-desc{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ced-arc-stage-row{display:flex;align-items:center;gap:var(--space-2)}.ced-arc-stage-row label{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.ced-arc-stage-row select{font-size:var(--text-xs);padding:3px var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);flex:1}.ced-stage-list{display:flex;flex-direction:column;gap:var(--space-2)}.ced-stage-row{display:flex;align-items:center;gap:var(--space-2);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.ced-stage-num{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;width:20px}.ced-stage-row input{flex:1;font-size:var(--text-sm);padding:3px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.ced-tie-row{display:flex;align-items:center;gap:var(--space-2);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.ced-tie-row input{flex:1}.ced-tie-row select{min-width:120px}.ced-scene-list{display:flex;flex-direction:column;gap:var(--space-1)}.ced-scene-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:default}.ced-scene-item:hover{background:var(--gray-100)}.ced-scene-num{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;width:24px}.ced-scene-name{flex:1;font-weight:var(--weight-medium);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ced-empty{color:var(--color-text-muted);font-size:var(--text-sm);font-style:italic;text-align:center;padding:3rem 0}.ced-empty--tight-top{padding-top:var(--space-4)}.ced-empty-inline{color:var(--color-text-muted);font-style:italic}.ced-foreshadow-add{margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.ced-foreshadow-add-fields{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.ced-foreshadow-add-fields select,.ced-foreshadow-add-fields input{padding:5px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);min-width:0}.ced-foreshadow-section{margin-bottom:var(--space-5)}.ced-foreshadow-section-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-1)}.ced-foreshadow-arrow{color:var(--color-accent)}.ced-foreshadow-count{font-weight:400;color:var(--color-text-muted)}.ced-foreshadow-scene-name{font-weight:500;white-space:nowrap}.card-editor-modal textarea[readonly],.card-editor-modal input[readonly]{background:var(--gray-50);color:var(--color-text-secondary);cursor:default;user-select:text}.card-editor-modal textarea[readonly]:focus,.card-editor-modal input[readonly]:focus{border-color:var(--color-border);box-shadow:none;outline:none}.ces-quote-tooltip{position:fixed;transform:translate(-50%,-100%);margin-top:-6px;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-full);padding:5px 14px;font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;z-index:2000;box-shadow:0 3px 12px #00000040;pointer-events:auto;transition:background var(--transition-fast),transform var(--transition-fast);animation:ces-tooltip-pop .12s ease-out}.ces-quote-tooltip:hover{background:var(--color-accent-hover, #4f46e5)}@keyframes ces-tooltip-pop{0%{opacity:0;transform:translate(-50%,-90%)}to{opacity:1;transform:translate(-50%,-100%)}}::highlight(ces-quote){background-color:#6366f14d;color:inherit}.ssm-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:min(680px,90vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;position:relative;box-sizing:border-box}.ssm-header{display:flex;align-items:center;gap:10px;padding:18px 48px 14px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.ssm-icon{font-size:20px;flex-shrink:0}.ssm-title{font-size:var(--text-lg, 15px);font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.ssm-subtitle{font-size:var(--text-xs, 11px);font-weight:500;color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}.ssm-body{flex:1;overflow-y:auto;padding:20px 24px 24px}.sp-root{display:flex;flex-direction:column;height:100%;min-height:0;gap:var(--space-3, 12px)}.sp-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4, 16px);flex-wrap:wrap;padding-right:calc(28px + var(--space-4, 16px))}.sp-title{margin:0;font-size:1.25rem}.sp-source{display:inline-flex;align-items:baseline;gap:var(--space-2, 8px);background:var(--gray-100, #f1f3f5);padding:var(--space-1, 4px) var(--space-3, 12px);border-radius:var(--radius-md, 6px);font-size:.95rem}.sp-source-label{color:var(--gray-700, #555)}.sp-source-name{color:var(--gray-900, #222);font-weight:500}.sp-body{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:var(--space-4, 16px);flex:1 1 auto;min-height:0}.sp-dimensions{overflow-y:auto;padding-right:var(--space-2, 8px);border-right:1px solid var(--gray-200, #eee)}.sp-dimensions-header{font-size:.85rem;color:var(--gray-700, #555);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-2, 8px)}.sp-presets{display:flex;flex-wrap:wrap;gap:var(--space-1, 4px);margin-bottom:var(--space-3, 12px);padding-bottom:var(--space-3, 12px);border-bottom:1px solid var(--gray-200, #eee)}.sp-preset{padding:4px 10px;border:1px solid var(--gray-300, #ccc);background:#fff;color:var(--gray-700, #555);border-radius:var(--radius-md, 6px);font-size:.8rem;cursor:pointer}.sp-preset:hover{border-color:var(--blue-300, #93c5fd);background:var(--blue-50, #eef5ff);color:var(--blue-700, #2762b8)}.sp-preset:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.sp-preset--active{background:var(--blue-100, #dbeafe);border-color:var(--blue-500, #4a90e2);color:var(--blue-700, #2762b8);font-weight:600}.sp-dim-group{border:none;padding:0;margin:0 0 var(--space-3, 12px) 0}.sp-dim-group-label{font-size:.85rem;color:var(--blue-700, #2762b8);font-weight:600;margin-bottom:var(--space-1, 4px);padding:0}.sp-dim-row{display:flex;align-items:center;gap:var(--space-2, 8px);padding:2px 0;font-size:.9rem;cursor:pointer}.sp-dim-row input[type=checkbox]{cursor:pointer}.sp-results{overflow-y:auto;min-height:0}.sp-empty,.sp-error{padding:var(--space-6, 24px) var(--space-3, 12px);text-align:center;color:var(--gray-600, #666);font-size:.95rem}.sp-error{color:var(--red-700, #b91c1c);background:var(--red-50, #fef2f2);border-radius:var(--radius-md, 6px)}.sp-rank{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-2, 8px)}.sp-result{display:flex;flex-direction:column;gap:var(--space-1, 4px);padding:var(--space-3, 12px);border:1px solid var(--gray-200, #eee);border-radius:var(--radius-md, 6px);background:#fff}.sp-result-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2, 8px)}.sp-result-title{font-size:1rem;font-weight:500;color:var(--gray-900, #222)}.sp-result-score{font-size:.95rem;font-variant-numeric:tabular-nums;color:var(--blue-700, #2762b8);font-weight:600;margin-left:auto}.sp-fav-btn{background:none;border:none;cursor:pointer;font-size:1.05rem;line-height:1;padding:0 4px;align-self:center;color:var(--gray-400, #bbb)}.sp-fav-btn:hover,.sp-fav-btn--on{color:var(--amber-500, #f59e0b)}.sp-fav-btn:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.sp-result-author{font-size:.85rem;color:var(--gray-700, #555)}.sp-result-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--space-1, 4px)}.sp-chip{display:inline-block;padding:2px 6px;background:var(--gray-100, #f1f3f5);color:var(--gray-700, #555);font-size:.78rem;border-radius:var(--radius-sm, 4px);font-variant-numeric:tabular-nums}.sp-chip--na{color:var(--gray-500, #999);font-style:italic}.sp-result-actions{margin-top:var(--space-2, 8px)}.sp-result-compare{padding:4px 10px;border:1px solid var(--blue-500, #4a90e2);background:#fff;color:var(--blue-700, #2762b8);border-radius:var(--radius-sm, 4px);font-size:.85rem;cursor:pointer;transition:background-color .12s ease}.sp-result-compare:hover{background:var(--blue-50, #eef5ff)}.sp-result-compare:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.lm-root{display:flex;flex-direction:column;height:100%;min-height:0}.lm-title{margin:0 0 var(--space-2, 8px) 0;font-size:1.25rem}.lm-subtitle{margin:0 0 var(--space-4, 16px) 0;color:var(--gray-700, #555);font-size:.95rem;line-height:1.4}.lm-empty{display:flex;align-items:center;justify-content:center;padding:var(--space-8, 32px) var(--space-4, 16px);color:var(--gray-600, #666);font-size:.95rem;text-align:center;min-height:200px}.lm-error{padding:var(--space-4, 16px);background:var(--red-50, #fef2f2);color:var(--red-700, #b91c1c);border:1px solid var(--red-200, #fecaca);border-radius:var(--radius-md, 6px);font-size:.95rem}.lm-table{width:100%;border-collapse:collapse;font-size:.95rem}.lm-table thead th{text-align:left;padding:var(--space-2, 8px) var(--space-3, 12px);border-bottom:2px solid var(--gray-300, #ddd);color:var(--gray-700, #555);font-weight:600;background:var(--gray-50, #f8f8f8);position:sticky;top:0;z-index:1}.lm-table tbody td{padding:var(--space-2, 8px) var(--space-3, 12px);border-bottom:1px solid var(--gray-200, #eee);vertical-align:top}.lm-table tbody tr:hover{background:var(--gray-50, #f8f8f8)}.lm-th-title{width:40%}.lm-th-num,.lm-cell-num{text-align:right;font-variant-numeric:tabular-nums}.lm-cell-title{font-weight:500;color:var(--gray-900, #222)}.lm-muted{color:var(--gray-400, #bbb)}.lm-narrow-row{display:flex;align-items:center;gap:var(--space-2, 8px);margin-bottom:var(--space-3, 12px);padding:var(--space-2, 8px) var(--space-3, 12px);background:var(--blue-50, #eef5ff);border:1px solid var(--blue-200, #c5dcff);border-radius:var(--radius-md, 6px);font-size:.9rem}.lm-narrow-label{color:var(--gray-800, #333);flex:0 0 auto}.lm-narrow-select{flex:1 1 auto;border:1px solid var(--gray-300, #ccc);border-radius:var(--radius-sm, 4px);background:#fff;padding:4px 8px;font-size:.9rem;cursor:pointer}.lm-narrow-select:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.lm-search{margin-bottom:var(--space-3, 12px)}.lm-search-input{width:100%;box-sizing:border-box;border:1px solid var(--gray-300, #ccc);border-radius:var(--radius-sm, 4px);background:#fff;padding:var(--space-2, 8px) var(--space-3, 12px);font-size:.95rem}.lm-search-input:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.lm-th-fav,.lm-cell-fav{width:1%;white-space:nowrap;text-align:center}.lm-fav-btn{border:none;background:transparent;cursor:pointer;font-size:1.1rem;line-height:1;padding:2px 6px;border-radius:var(--radius-sm, 4px);color:var(--gray-400, #bbb)}.lm-fav-btn:hover{color:var(--amber-500, #f59e0b);background:var(--gray-100, #f1f3f5)}.lm-fav-btn--on{color:var(--amber-500, #f59e0b)}.lm-fav-btn:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.lm-series-row{background:var(--gray-50, #f8f9fa)}.lm-series-name{font-weight:600;color:var(--gray-800, #343a40);padding:6px 8px}.lm-cell-title--member{padding-left:20px}:root{--scenebeat-color: #0d9488;--scenebeat-bg: #f0fdfa;--scenebeat-border:#99f6e4}[data-theme=dark]{--scenebeat-bg: #042f2e;--scenebeat-border:#134e4a}.sb-changetype-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full, 9999px);background:var(--scenebeat-color);color:#fff;font-size:var(--text-xs, 11px);font-weight:var(--weight-semibold, 600);line-height:1.5;white-space:nowrap;margin-top:4px}.sb-link-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.sb-link-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:var(--radius-sm, 4px);background:var(--scenebeat-bg);border:1px solid var(--scenebeat-border);font-size:var(--text-xs, 11px);color:var(--color-text-secondary);white-space:nowrap}.sb-link-chip--missing{opacity:.5;font-style:italic}.sb-beat-note{margin-top:6px;font-size:var(--text-xs, 11px);color:var(--color-text-secondary);font-style:italic;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.base-card.expanded .sb-beat-note{display:block;-webkit-line-clamp:unset;overflow:visible}.base-card.expanded .sb-link-chip{white-space:normal}.sb-editor{display:flex;flex-direction:column;gap:var(--space-4, 16px);padding:var(--space-4, 16px) var(--space-5, 20px) var(--space-6, 24px)}.sb-field{display:flex;flex-direction:column;gap:4px}.sb-label{font-size:var(--text-xs, 11px);font-weight:var(--weight-semibold, 600);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.sb-select,.sb-textarea{width:100%;box-sizing:border-box;padding:var(--space-2, 8px) var(--space-3, 12px);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm, 13px);font-family:inherit;transition:border-color var(--transition-fast)}.sb-select:focus,.sb-textarea:focus{outline:none;border-color:var(--scenebeat-color);box-shadow:0 0 0 2px #0d948826}.sb-textarea{resize:vertical;min-height:80px;line-height:1.5}:root{--part-color: #7c3aed;--part-bg: #f5f3ff;--part-border:#ddd6fe}[data-theme=dark]{--part-bg: #2e1065;--part-border:#4c1d95}.part-card .card-header{background-color:var(--part-color)}.part-card.highlighted{outline-color:var(--part-color)}.part-chapter-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--radius-full, 9999px);background:var(--part-bg);border:1px solid var(--part-border);color:var(--part-color);font-size:var(--text-xs, 11px);font-weight:var(--weight-semibold, 600);margin-top:4px}.part-chapter-chip--empty{background:var(--color-warning-bg, #fff7ed);border-color:var(--color-warning-border, #fed7aa);color:var(--color-warning, #c2410c)}.part-chapter-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}.part-chapter-item{display:flex;align-items:center;gap:6px;font-size:var(--text-xs, 11px);color:var(--color-text-secondary);padding:2px 0}.part-chapter-item-icon{opacity:.6}.part-editor{display:flex;flex-direction:column;gap:var(--space-4, 16px);padding:16px 20px 24px}.part-editor-section-label{font-size:var(--text-xs, 11px);font-weight:var(--weight-semibold, 600);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.part-editor-chapter-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;border-radius:var(--radius-sm, 4px);background:var(--part-bg);border:1px solid var(--part-border);font-size:var(--text-sm, 13px);color:var(--color-text)}.part-editor-remove-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:14px;padding:0 2px;line-height:1;border-radius:var(--radius-xs, 2px);transition:color var(--transition-fast),background var(--transition-fast)}.part-editor-remove-btn:hover{color:var(--color-error, #ef4444);background:#ef444414}.part-editor-assign-row{display:flex;gap:8px;align-items:center}.part-editor-assign-select{flex:1;padding:var(--space-2, 8px) var(--space-3, 12px);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm, 13px);font-family:inherit;transition:border-color var(--transition-fast)}.part-editor-assign-select:focus{outline:none;border-color:var(--part-color);box-shadow:0 0 0 2px #7c3aed26}.part-editor-empty{font-size:var(--text-xs, 11px);color:var(--color-text-muted);font-style:italic;padding:4px 0}.toolbar-wrapper{display:flex;flex-direction:column;flex-shrink:0}.toolbar-editor-banner{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4);height:24px;background:#fef3c7;border-bottom:1px solid #fcd34d;font-size:var(--text-xs);color:#92400e;font-weight:var(--weight-medium);flex-shrink:0;user-select:none}[data-theme=dark] .toolbar-editor-banner{background:#451a03;border-color:#78350f;color:#fcd34d}.toolbar-editor-swatch{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;color:#fff;font-size:8px;font-weight:700;flex-shrink:0}.toolbar-editor-banner strong{font-weight:var(--weight-semibold)}.toolbar-editor-exit{margin-left:auto;background:none;border:1px solid #fcd34d;border-radius:var(--radius-sm);color:#92400e;font-size:var(--text-xs);font-weight:var(--weight-medium);padding:2px var(--space-2);cursor:pointer;transition:background var(--transition-fast);white-space:nowrap;line-height:1}.toolbar-editor-exit:hover{background:#fcd34d}[data-theme=dark] .toolbar-editor-exit{border-color:#78350f;color:#fcd34d}[data-theme=dark] .toolbar-editor-exit:hover{background:#78350f}.toolbar{display:flex;align-items:center;justify-content:space-between;background-color:var(--toolbar-bg);border-bottom:1px solid var(--toolbar-border);height:var(--toolbar-height);padding:0 var(--space-3);flex-shrink:0;gap:var(--space-2)}.toolbar-nav-toggle{display:none;flex-shrink:0;font-size:var(--text-md)}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:var(--space-1);position:relative;flex-shrink:0}.toolbar-center-wrapper{flex:1;display:flex;justify-content:center;min-width:0}.toolbar-center{display:flex;align-items:center;gap:var(--space-2);min-width:0}.toolbar-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--toolbar-text);background-color:var(--toolbar-item-hover-bg);border:1px solid var(--toolbar-item-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.toolbar-story-select{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--toolbar-text);background-color:var(--toolbar-item-hover-bg);border:1px solid var(--toolbar-item-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);max-width:180px;cursor:pointer}.toolbar-story-select:hover{color:var(--toolbar-text-hover);border-color:var(--color-border-strong)}.toolbar-story-select:focus{outline:none;box-shadow:var(--shadow-focus)}.toolbar select{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--toolbar-text);background-color:var(--toolbar-item-hover-bg);border:1px solid var(--toolbar-item-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);max-width:180px;cursor:pointer;width:auto}.toolbar select:hover{color:var(--toolbar-text-hover);border-color:var(--color-border-strong)}.toolbar select:focus{outline:none;box-shadow:var(--shadow-focus);border-color:var(--color-accent)}.toolbar select option{background-color:var(--toolbar-dropdown-bg);color:var(--toolbar-dropdown-text)}.toolbar .icon-button{color:var(--toolbar-text);font-size:16px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background-color var(--transition-base),color var(--transition-base)}.toolbar .icon-button:hover{background-color:var(--toolbar-item-hover-bg);color:var(--toolbar-text-hover)}.toolbar-buttons{display:flex;align-items:center;gap:var(--space-1)}.toolbar-buttons button{background-color:transparent;border:none;color:var(--toolbar-text);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:16px;line-height:1;transition:background-color var(--transition-base),color var(--transition-base)}.toolbar-buttons button:hover{background-color:var(--toolbar-item-hover-bg);color:var(--toolbar-text-hover);border-color:transparent}.inline-field{display:flex;align-items:center;gap:var(--space-2)}.inline-field input[type=checkbox]{cursor:pointer;accent-color:var(--color-accent);width:14px;height:14px}.checkbox{display:flex;align-items:center;gap:var(--space-1);color:var(--toolbar-text);font-size:var(--text-sm);cursor:pointer}.toolbar-divider{width:1px;height:20px;background-color:var(--toolbar-item-border);flex-shrink:0}.toolbar-hamburger{font-size:18px;line-height:1;padding:var(--space-1) var(--space-2)}.toolbar-dropdown{position:absolute;top:calc(100% + 4px);left:0;background:var(--toolbar-dropdown-bg);border:1px solid var(--toolbar-item-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:500;display:flex;flex-direction:row;overflow:hidden}.tm-left{display:flex;flex-direction:column;width:178px;flex-shrink:0;padding:var(--space-1) 0;border-right:1px solid var(--toolbar-item-border)}.tm-sep{height:1px;background:var(--toolbar-dropdown-sep);margin:var(--space-1) 0}.tm-cat-btn{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;text-align:left;font-size:var(--text-sm);color:var(--toolbar-dropdown-text);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast);border-left:2px solid transparent}.tm-cat-btn:hover{background-color:var(--toolbar-dropdown-hover-bg);color:var(--toolbar-dropdown-text-hover)}.tm-cat-btn--active{background-color:var(--toolbar-dropdown-hover-bg);color:var(--color-accent, #6366f1);border-left-color:var(--color-accent, #6366f1);font-weight:var(--weight-medium)}.tm-cat-btn--action{color:var(--toolbar-dropdown-text)}.tm-cat-btn--action:hover{color:var(--toolbar-dropdown-text-hover)}.tm-cat-icon{font-size:14px;width:18px;flex-shrink:0;text-align:center}.tm-cat-label{flex:1}.tm-cat-arrow{font-size:13px;color:var(--color-text-muted);margin-left:auto;transition:transform var(--transition-fast)}.tm-cat-btn--active .tm-cat-arrow{color:var(--color-accent, #6366f1);transform:translate(2px)}.tm-right{width:0;overflow:hidden;transition:width .18s ease;flex-shrink:0}.tm-right--open{width:210px}.tm-panel{width:210px;padding:var(--space-1) 0}.tm-panel-label{padding:var(--space-2) var(--space-3) var(--space-1);font-size:10px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);pointer-events:none;user-select:none;white-space:nowrap;text-align:left}.tm-panel-item{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;text-align:left;font-size:var(--text-sm);color:var(--toolbar-dropdown-text);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast)}.tm-panel-item:hover{background-color:var(--toolbar-dropdown-hover-bg);color:var(--toolbar-dropdown-text-hover)}.tm-panel-item--active{color:var(--color-accent, #6366f1);font-weight:var(--weight-medium)}.tm-panel-empty{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;white-space:nowrap}.toolbar-dropdown-item,.toolbar-dropdown-sep,.toolbar-dropdown-label{display:none}@media (max-width: 768px){.toolbar-nav-toggle{display:inline-flex}.toolbar{padding:0 var(--space-2);gap:var(--space-1)}.toolbar-title{display:none}.toolbar-story-select,.toolbar select{max-width:38vw}}.tb-create-modal{padding:var(--space-4);min-width:20rem}.tb-create-field{display:block;margin-top:var(--space-3)}.tb-create-input{display:block;width:100%;padding:var(--space-2);margin-top:var(--space-1);box-sizing:border-box}.tb-create-actions{margin-top:var(--space-4);text-align:right}.tb-create-actions button+button{margin-left:var(--space-2)}.tm-panel-item--file{position:relative;overflow:hidden}.tb-file-input-overlay{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}.user-profile{position:relative;display:flex;align-items:center;flex-shrink:0}.up-trigger{display:flex;align-items:center;gap:var(--space-2);background:transparent;border:none;border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);color:var(--toolbar-text);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1;cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base);white-space:nowrap;min-height:32px}.up-trigger:hover{background-color:var(--toolbar-item-hover-bg);color:var(--toolbar-text-hover)}.up-trigger:focus-visible{outline:none;box-shadow:var(--shadow-focus);color:var(--toolbar-text-hover)}.up-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-caret{font-size:8px;opacity:.6;flex-shrink:0;transition:opacity var(--transition-base)}.up-trigger:hover .up-caret,.up-trigger[aria-expanded=true] .up-caret{opacity:1}.up-avatar{flex-shrink:0;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-weight:var(--weight-semibold);letter-spacing:.01em;overflow:hidden;user-select:none}.up-avatar--img{object-fit:cover}.up-avatar--initials{background:hsl(var(--up-hue, 220),55%,42%);color:#fff}.up-avatar--lg{width:64px;height:64px;font-size:24px}.up-avatar--sm{width:26px;height:26px;font-size:10px;display:inline-flex}.up-profile-swatch{width:22px;height:22px;border-radius:50%;color:#fff;font-size:9px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.up-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--toolbar-dropdown-bg);border:1px solid var(--toolbar-item-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:9500;padding:var(--space-1) 0;display:flex;flex-direction:column;animation:up-fade-in var(--transition-fast) ease-out}@keyframes up-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.up-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3)}.up-header-text{display:flex;flex-direction:column;gap:2px;min-width:0}.up-header-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--toolbar-dropdown-text-hover);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.up-header-email{font-size:var(--text-xs);color:var(--toolbar-dropdown-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.up-beta-badge{align-self:flex-start;margin-top:2px;padding:1px 8px;border-radius:9999px;font-size:var(--text-xs);font-weight:var(--weight-semibold);background:#fef3c7;color:#b45309;white-space:nowrap}.up-sep{height:1px;background-color:var(--toolbar-dropdown-sep);margin:var(--space-1) 0}.up-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;text-align:left;font-size:var(--text-sm);color:var(--toolbar-dropdown-text);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast)}.up-menu-item:hover{background-color:var(--toolbar-dropdown-hover-bg);color:var(--toolbar-dropdown-text-hover)}.up-menu-item:focus-visible{outline:none;background-color:var(--toolbar-dropdown-hover-bg);color:var(--toolbar-dropdown-text-hover);box-shadow:inset 0 0 0 2px #6366f166}.up-menu-item--admin{color:var(--color-accent, #6c63ff);font-weight:500}.up-menu-item--admin:hover{background-color:#6c63ff14}.up-menu-item--danger{color:var(--color-danger)}.up-menu-item--danger:hover{background-color:var(--color-danger-light);color:var(--color-danger-hover)}.up-skeleton{width:26px;height:26px;border-radius:var(--radius-full);background:#ffffff1f;animation:up-pulse 1.4s ease-in-out infinite}@keyframes up-pulse{0%,to{opacity:.5}50%{opacity:1}}.user-profile--clerk{gap:var(--space-2)}.up-header-bio{font-size:var(--text-xs);color:var(--toolbar-dropdown-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;margin-top:1px}@media (max-width: 640px){.up-name,.up-caret{display:none}}.up-theme-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);gap:var(--space-3)}.up-theme-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--toolbar-dropdown-text);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.up-theme-segment{display:flex;border:1px solid var(--toolbar-item-border);border-radius:var(--radius-sm);overflow:hidden}.up-theme-btn{flex:1;background:transparent;border:none;border-radius:0;color:var(--toolbar-dropdown-text);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:3px var(--space-2);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);white-space:nowrap}.up-theme-btn+.up-theme-btn{border-left:1px solid var(--toolbar-item-border)}.up-theme-btn:hover{background-color:var(--toolbar-dropdown-hover-bg);color:var(--toolbar-dropdown-text-hover)}.up-theme-btn--active{background-color:var(--toolbar-item-hover-bg);color:var(--toolbar-dropdown-text-hover);font-weight:var(--weight-semibold)}.up-modal-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--space-4);box-sizing:border-box}.up-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-6);width:100%;max-width:440px;display:flex;flex-direction:column;gap:var(--space-4);animation:up-fade-in var(--transition-fast) ease-out}.up-modal-header{display:flex;align-items:center;justify-content:space-between}.up-modal-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.up-modal-close{background:none;border:none;color:var(--color-text-secondary);font-size:1.25rem;line-height:1;cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast)}.up-modal-close:hover{color:var(--color-text);background-color:var(--color-border)}.up-modal-avatar-row{display:flex;align-items:center;gap:var(--space-4)}.up-modal-avatar-preview{flex-shrink:0}.up-modal-avatar-fields{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.up-modal-clear-avatar{background:none;border:none;color:var(--color-danger);font-size:var(--text-xs);cursor:pointer;padding:0;text-align:left;text-decoration:underline;width:fit-content}.up-modal-clear-avatar:hover{opacity:.8}.up-modal-sep{height:1px;background:var(--color-border);margin:0 calc(-1 * var(--space-6))}.up-modal-field{display:flex;flex-direction:column;gap:var(--space-1)}.up-modal-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;justify-content:space-between}.up-modal-char-count{font-weight:var(--weight-normal);letter-spacing:0;text-transform:none;color:var(--color-text-muted)}.up-modal-input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);width:100%;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-family:inherit}.up-modal-input:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.up-modal-input::placeholder{color:var(--color-text-muted)}.up-modal-textarea{resize:vertical;min-height:72px;line-height:1.5}.up-modal-error{margin:0 0 var(--space-2);padding:var(--space-1) var(--space-2);background:var(--color-danger-light, #fef2f2);color:var(--color-danger, #dc2626);border-radius:var(--radius-sm, 4px);font-size:.8125rem}.up-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-1)}.up-modal-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;border:1px solid var(--color-border);transition:background-color var(--transition-fast),border-color var(--transition-fast)}.up-modal-btn--cancel{background:var(--color-surface);color:var(--color-text-secondary)}.up-modal-btn--cancel:hover{background:var(--color-bg);color:var(--color-text)}.up-modal-btn--save{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.up-modal-btn--save:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.up-modal-btn--save:focus-visible,.up-modal-btn--cancel:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.up-trigger--editor{border:1px solid var(--editor-color, #e67e22);border-radius:var(--radius-sm)}.up-profiles-label{padding:var(--space-1) var(--space-3) 2px;font-size:10px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--toolbar-dropdown-text);opacity:.65}.up-profile-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;text-align:left;font-size:var(--text-sm);color:var(--toolbar-dropdown-text);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.up-profile-item:hover{background-color:var(--toolbar-dropdown-hover-bg);color:var(--toolbar-dropdown-text-hover)}.up-profile-item--active{background-color:var(--toolbar-dropdown-hover-bg);color:var(--toolbar-dropdown-text-hover);font-weight:var(--weight-semibold)}.up-profile-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-profile-role{flex-shrink:0;font-size:10px;color:var(--color-text-muted);background:var(--gray-100);border-radius:var(--radius-sm);padding:1px 5px;text-transform:uppercase;letter-spacing:.04em}.ww-root{position:relative}.ww-pill{display:flex;align-items:center;gap:var(--space-1);padding:3px var(--space-2);border:1px solid var(--toolbar-item-border);border-radius:999px;background:var(--toolbar-item-hover-bg);color:var(--toolbar-text);font-size:var(--text-xs);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.ww-pill:hover{background:var(--toolbar-dropdown-hover-bg);border-color:var(--color-border-strong);color:var(--toolbar-text-hover)}.ww-pill--done{border-color:#22c55e;color:#22c55e}.ww-pill-icon{font-size:12px}.ww-pill-text{font-weight:var(--weight-medium)}.ww-pill-bar{width:36px;height:4px;background:var(--color-border);border-radius:999px;overflow:hidden;flex-shrink:0}.ww-pill-bar-fill{display:block;height:100%;background:var(--color-accent, #6366f1);border-radius:999px;transition:width .3s ease}.ww-pill--done .ww-pill-bar-fill{background:#22c55e}.ww-popover{position:absolute;top:calc(100% + 6px);right:0;width:260px;background:var(--toolbar-dropdown-bg);border:1px solid var(--toolbar-item-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:600;overflow:hidden}.ww-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--toolbar-item-border)}.ww-popover-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--toolbar-dropdown-text)}.ww-close-btn{background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:12px;padding:2px 4px;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.ww-close-btn:hover{color:var(--color-text)}.ww-section{padding:var(--space-3);border-bottom:1px solid var(--toolbar-item-border)}.ww-section:last-child{border-bottom:none}.ww-section-label{font-size:10px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:var(--space-2)}.ww-section-label--flush{margin-bottom:0}.ww-target-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.ww-target-input{width:80px;font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);text-align:right}.ww-target-input:focus{outline:none;border-color:var(--color-accent)}.ww-target-unit{font-size:var(--text-xs);color:var(--color-text-muted)}.ww-progress-track{width:100%;height:6px;background:var(--color-border);border-radius:999px;overflow:hidden;margin-bottom:var(--space-1)}.ww-progress-fill{height:100%;background:var(--color-accent, #6366f1);border-radius:999px;transition:width .3s ease}.ww-progress-labels{display:flex;justify-content:space-between;align-items:center}.ww-count{font-size:var(--text-xs);color:var(--color-text-muted)}.ww-count--done{color:#22c55e;font-weight:var(--weight-semibold)}.ww-pct{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-accent, #6366f1)}.ww-add-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-1)}.ww-add-input{flex:1;font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.ww-add-input:focus{outline:none;border-color:var(--color-accent)}.ww-add-btn{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-2);background:var(--color-accent, #6366f1);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition-fast);white-space:nowrap}.ww-add-btn:disabled{opacity:.4;cursor:default}.ww-add-btn:not(:disabled):hover{opacity:.88}.ww-reset-link{background:none;border:none;cursor:pointer;font-size:var(--text-xs);color:var(--color-text-muted);padding:0;text-decoration:underline;text-underline-offset:2px}.ww-reset-link:hover{color:var(--color-danger)}.ww-timer-display{font-size:28px;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--color-text);text-align:center;margin-bottom:var(--space-2)}.ww-timer-btns{display:flex;gap:var(--space-2)}.ww-timer-toggle{flex:1;font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-2);background:var(--color-accent, #6366f1);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition-fast)}.ww-timer-toggle--stop{background:#f59e0b}.ww-timer-toggle:hover{opacity:.88}.ww-timer-reset{font-size:var(--text-sm);padding:var(--space-1) var(--space-2);background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.ww-timer-reset:hover{background:var(--color-border);color:var(--color-text)}.ww-pill--sprint{border-color:#f59e0b;color:#f59e0b}.ww-pill--flash{border-color:#22c55e!important;color:#22c55e!important;animation:ww-flash 1.5s ease forwards}.ww-pill-pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:#f59e0b;margin-left:2px;flex-shrink:0;animation:ww-pulse 1.2s ease-in-out infinite}@keyframes ww-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}@keyframes ww-flash{0%{box-shadow:0 0 #22c55e99}50%{box-shadow:0 0 0 6px #22c55e00}to{box-shadow:none}}.ww-chip-row{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap;margin-bottom:var(--space-2)}.ww-chip{font-size:var(--text-xs);font-weight:var(--weight-medium);padding:3px 8px;border:1px solid var(--color-border);border-radius:999px;background:none;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.ww-chip:hover{border-color:var(--color-accent, #6366f1);color:var(--color-accent, #6366f1)}.ww-chip--active{background:var(--color-accent, #6366f1);border-color:var(--color-accent, #6366f1);color:#fff}.ww-chip-custom{width:46px;font-size:var(--text-xs);padding:3px 6px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text);text-align:center}.ww-chip-custom:focus{outline:none;border-color:var(--color-accent)}.ww-chip-custom::-webkit-inner-spin-button,.ww-chip-custom::-webkit-outer-spin-button{-webkit-appearance:none}.ww-chip-custom{-moz-appearance:textfield}.ww-sprint-start{width:100%;font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-2);background:var(--color-accent, #6366f1);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition-fast)}.ww-sprint-start:disabled{opacity:.4;cursor:default}.ww-sprint-start:not(:disabled):hover{opacity:.88}.ww-sprint-active{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.ww-sprint-active-btns{display:flex;gap:var(--space-2)}.ww-sprint-pause{font-size:var(--text-xs);padding:3px 10px;border:1px solid var(--color-border);border-radius:999px;background:none;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.ww-sprint-pause:hover,.ww-sprint-pause--resume{color:var(--color-accent);border-color:var(--color-accent)}.ww-sprint-countdown{font-size:32px;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:.04em;color:#f59e0b}.ww-sprint-cancel{font-size:var(--text-xs);padding:3px 10px;border:1px solid var(--color-border);border-radius:999px;background:none;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.ww-sprint-cancel:hover{color:var(--color-danger);border-color:var(--color-danger)}.ww-sprint-history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.ww-sprint-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ww-sprint-history-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}.ww-sprint-history-date{flex:0 0 56px}.ww-sprint-history-dur{flex:0 0 36px;color:var(--color-text);font-weight:var(--weight-medium)}.ww-sprint-history-words{color:#22c55e;font-weight:var(--weight-semibold)}.ww-focus-open-btn{display:block;width:100%;margin-top:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:4px var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);cursor:pointer;text-align:center;transition:border-color var(--transition-fast),color var(--transition-fast)}.ww-focus-open-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.ww-focus-overlay{position:fixed;inset:0;background:#000000d1;z-index:9000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);animation:ww-overlay-in .2s ease forwards}@keyframes ww-overlay-in{0%{opacity:0}to{opacity:1}}.ww-focus-panel{width:92vw;height:92vh;background:#0d0d12;border:1px solid rgba(255,255,255,.07);border-radius:20px;display:flex;flex-direction:column;overflow:hidden;animation:ww-focus-in .22s cubic-bezier(.16,1,.3,1) forwards}@keyframes ww-focus-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ww-focus-topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 28px 0;flex-shrink:0}.ww-focus-mode-toggle{display:flex;gap:4px;background:#ffffff0d;border-radius:999px;padding:3px}.ww-focus-mode-btn{font-size:12px;font-weight:500;padding:5px 14px;border:none;border-radius:999px;background:none;color:#fff6;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.ww-focus-mode-btn--active{background:#ffffff1f;color:#ffffffe6}.ww-focus-mode-btn:not(.ww-focus-mode-btn--active):hover{color:#ffffffa6}.ww-focus-topbar-right{display:flex;align-items:center;gap:12px}.ww-focus-close-btn{background:none;border:none;cursor:pointer;color:#ffffff4d;font-size:18px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.ww-focus-close-btn:hover{background:#ffffff14;color:#fffc}.ww-focus-body{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 40px;min-height:0}.ww-focus-timer{font-size:clamp(72px,13vw,156px);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1;text-align:center;margin-bottom:36px;transition:color .4s,text-shadow .4s}.ww-focus-timer--down{color:#f59e0b;text-shadow:0 0 80px rgba(245,158,11,.45),0 0 30px rgba(245,158,11,.3)}.ww-focus-timer--idle{color:#ffffff1f;text-shadow:none}.ww-focus-timer--up{color:#ffffff40;text-shadow:none}.ww-focus-timer--up.ww-focus-timer--up-running{color:#818cf8;text-shadow:0 0 80px rgba(129,140,248,.4),0 0 30px rgba(129,140,248,.25)}.ww-focus-idle,.ww-focus-sprint-active,.ww-focus-countup{display:flex;flex-direction:column;align-items:center;gap:0}.ww-focus-chip-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:20px}.ww-focus-chip{font-size:14px;font-weight:500;padding:7px 18px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:none;color:#ffffff73;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.ww-focus-chip:hover{border-color:#f59e0b;color:#f59e0b}.ww-focus-chip--active{background:#f59e0b26;border-color:#f59e0b;color:#f59e0b}.ww-focus-chip-custom{width:60px;font-size:14px;padding:7px 10px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:#ffffff0a;color:#ffffffb3;text-align:center}.ww-focus-chip-custom:focus{outline:none;border-color:#f59e0b}.ww-focus-chip-custom::-webkit-inner-spin-button,.ww-focus-chip-custom::-webkit-outer-spin-button{-webkit-appearance:none}.ww-focus-chip-custom{-moz-appearance:textfield}.ww-focus-start-btn{font-size:16px;font-weight:600;padding:12px 40px;background:#f59e0b;color:#0d0d12;border:none;border-radius:999px;cursor:pointer;transition:opacity .15s,transform .15s;letter-spacing:.02em}.ww-focus-start-btn:disabled{opacity:.25;cursor:default}.ww-focus-start-btn:not(:disabled):hover{opacity:.88;transform:scale(1.03)}.ww-focus-timer--paused{opacity:.5;animation:ww-focus-blink 1.2s ease-in-out infinite}@keyframes ww-focus-blink{0%,to{opacity:.5}50%{opacity:.2}}.ww-focus-cancel-link{background:none;border:none;cursor:pointer;font-size:11px;color:#ffffff40;letter-spacing:.06em;text-decoration:underline;text-underline-offset:3px;padding:4px 6px;transition:color .2s;white-space:nowrap}.ww-focus-cancel-link:hover{color:#ef4444bf}.ww-focus-pause-btn{font-size:15px;font-weight:600;padding:11px 32px;background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.35);border-radius:999px;cursor:pointer;transition:opacity .15s}.ww-focus-pause-btn--resume{background:#22c55e26;color:#22c55e;border-color:#22c55e59}.ww-focus-pause-btn:hover{opacity:.8}.ww-focus-cancel-btn{font-size:13px;padding:8px 22px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:none;color:#ffffff73;cursor:pointer;transition:color .15s,border-color .15s}.ww-focus-cancel-btn:hover{color:#ef4444;border-color:#ef4444}.ww-focus-timer-btns{display:flex;gap:12px;margin-top:4px}.ww-focus-timer-toggle{font-size:15px;font-weight:600;padding:11px 36px;background:#818cf833;color:#818cf8;border:1px solid rgba(129,140,248,.35);border-radius:999px;cursor:pointer;transition:background .15s,opacity .15s}.ww-focus-timer-toggle--pause{background:#f59e0b26;color:#f59e0b;border-color:#f59e0b59}.ww-focus-timer-toggle:hover{opacity:.82}.ww-focus-timer-reset{font-size:15px;padding:11px 20px;background:none;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#ffffff59;cursor:pointer;transition:background .15s,color .15s}.ww-focus-timer-reset:hover{background:#ffffff0f;color:#ffffffb3}.ww-focus-footer{flex-shrink:0;padding:0 28px 24px}.ww-focus-progress-track{width:100%;height:3px;background:#ffffff12;border-radius:999px;overflow:hidden;margin-bottom:8px}.ww-focus-progress-fill{height:100%;background:#6366f1b3;border-radius:999px;transition:width .5s ease}.ww-focus-progress-label{display:flex;justify-content:space-between;font-size:11px;color:#ffffff40;letter-spacing:.04em}.ww-focus-progress-done{color:#22c55eb3}.ww-focus-progress-pct{font-weight:600;color:#6366f199}.ssp{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;user-select:none;color:var(--color-text-secondary);transition:color var(--transition-base)}.ssp-icon{display:inline-block;font-size:11px;line-height:1}.ssp--saving{color:var(--color-text-secondary)}.ssp--saving .ssp-icon{animation:ssp-spin 1s linear infinite}.ssp--saved{color:var(--color-success, #10b981)}.ssp--error{color:var(--color-danger, #ef4444)}@keyframes ssp-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ssp--saving .ssp-icon{animation:none}}@media (max-width: 768px){.ssp-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}.nip-overlay{position:fixed;inset:0;background:#0f172a8c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:4vh 4vw;box-sizing:border-box;z-index:1200}.nip-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:92vw;max-width:1200px;height:90vh;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.nip-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0}.nip-header-text{flex:1;min-width:0}.nip-title{margin:0 0 var(--space-1) 0;font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text)}.nip-subtitle{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5}.nip-close-btn{background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:16px;width:32px;height:32px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition-base),color var(--transition-base)}.nip-close-btn:hover{background:var(--gray-200);color:var(--color-text)}.nip-split-body{flex:1;min-height:0;display:flex;flex-direction:row;overflow:hidden}.nip-panel{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.nip-divider{width:1px;background:var(--color-border);flex-shrink:0}.nip-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--gray-50);flex-shrink:0}.nip-panel-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.nip-panel-scroll{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4)}.nip-loading{color:var(--color-text-muted);font-size:var(--text-sm);font-style:italic}.nip-prompt-text{margin:0;font-family:Menlo,Consolas,Monaco,monospace;font-size:12px;line-height:1.65;color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word}.nip-panel-import{padding:0;gap:0;position:relative}.nip-panel-import.drag-over{outline:2px solid var(--color-accent);outline-offset:-2px;background:color-mix(in srgb,var(--color-accent) 5%,transparent)}.nip-drop-overlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--color-accent) 10%,var(--color-surface) 90%);border:2px dashed var(--color-accent);border-radius:var(--radius-xl);pointer-events:none}.nip-drop-label{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-accent);letter-spacing:.01em}.nip-panel-hint{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5;padding:var(--space-3) var(--space-4);flex-shrink:0}.nip-json-input{flex:1;min-height:0;width:100%;box-sizing:border-box;font-family:Menlo,Consolas,Monaco,monospace;font-size:12px;line-height:1.6;color:var(--color-text);background:var(--gray-50);border:none;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-4);resize:none;outline:none;transition:background var(--transition-fast)}.nip-json-input:focus{background:var(--color-surface)}.nip-json-input::placeholder{color:var(--color-text-muted)}.nip-preview-hint{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;padding:var(--space-2) var(--space-4);flex-shrink:0}.nip-status{font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-4);flex-shrink:0}.nip-status.error{background:#fef2f2;color:#991b1b;border-top:1px solid #fecaca}.nip-status.success{background:#f0fdf4;color:#166534;border-top:1px solid #bbf7d0}.nip-import-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--gray-50);flex-shrink:0}.nip-copy-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.nip-copy-btn:hover:not(:disabled){background:var(--accent-600, #4f46e5)}.nip-copy-btn.copied{background:#16a34a}.nip-copy-btn:disabled{opacity:.5;cursor:not-allowed}.nip-load-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--gray-100);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast);position:relative;overflow:hidden}.nip-load-btn:hover{background:var(--gray-200);border-color:var(--color-text-muted)}.nip-load-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}.nip-prompt-wrap{position:relative}.nip-prompt-text--locked{user-select:none;pointer-events:none;opacity:.25;filter:blur(1px)}.nip-prompt-lock-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.nip-prompt-lock-msg{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:#dc2626;text-align:center;padding:var(--space-3) var(--space-6);background:#fef2f2e6;border:1px solid #fca5a5;border-radius:var(--radius-md);max-width:280px;line-height:1.5}.nip-fw-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border-subtle);background:var(--gray-50);flex-shrink:0;flex-wrap:wrap}.nip-fw-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-secondary);white-space:nowrap}.nip-fw-select{padding:3px var(--space-2);font-size:var(--text-sm);font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;outline:none;transition:border-color var(--transition-fast)}.nip-fw-select:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.nip-fw-select:disabled{opacity:.5;cursor:not-allowed}.nip-fw-hint{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;flex:1;min-width:0}.nip-fw-hint--required{color:var(--color-accent);font-style:normal;font-weight:var(--weight-medium)}.nip-fw-warning{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:#fffbeb;border-bottom:1px solid #fde68a;font-size:var(--text-xs);color:#92400e;flex-shrink:0;line-height:1.5}.nip-fw-warning-icon{flex-shrink:0;margin-top:1px}.nip-secondary-btn{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);background:var(--gray-100);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.nip-secondary-btn:hover{background:var(--gray-200)}.nip-update-box{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--space-4) var(--space-3);flex-shrink:0}.nip-update-row{display:flex;align-items:center;gap:var(--space-3)}.nip-update-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-secondary);white-space:nowrap;flex:0 0 96px}.nip-update-select,.nip-title-input{flex:1 1 auto;min-width:0;padding:3px var(--space-2);font-size:var(--text-sm);font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.nip-update-select{cursor:pointer}.nip-update-select:focus,.nip-title-input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.nip-update-select:disabled,.nip-title-input:disabled{opacity:.5;cursor:not-allowed}.nip-update-hint{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.nip-library-toggle{display:flex;align-items:flex-start;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3);background:var(--blue-50, #eef5ff);border:1px solid var(--blue-200, #c5dcff);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);flex-shrink:0}.nip-library-toggle input[type=checkbox]{margin-top:3px;cursor:pointer}.nip-library-toggle input[type=checkbox]:disabled{cursor:not-allowed}.nip-library-toggle-text{display:flex;flex-direction:column;gap:2px}.nip-library-toggle-hint{color:var(--gray-700, #555);font-size:var(--text-xs)}.json-import{background-color:#f9f9f9;border:2px dashed #ccc;border-radius:8px;padding:16px;margin:16px 0}.json-import h3{margin-top:0;font-size:1.2em;color:#333}.json-textarea textarea{width:100%;min-height:120px;font-family:monospace;font-size:.95em;border:1px solid #aaa;border-radius:4px;padding:8px;resize:vertical;box-sizing:border-box}.json-textarea button{margin-top:8px;background-color:#4caf50;color:#fff;border:none;padding:8px 16px;border-radius:4px;font-size:.95em;cursor:pointer;transition:background-color .2s ease}.json-textarea button:hover{background-color:#45a049}.json-preview{background-color:#f5f5f5;padding:10px;margin-top:20px;border:1px solid #ccc;border-radius:4px;font-family:monospace;max-height:300px;overflow:auto}.json-preview button{padding:6px 12px;font-size:.9rem;cursor:pointer;background-color:#e4e7eb;border:1px solid #ccc;border-radius:4px;transition:background-color .2s ease;margin-bottom:8px}.json-preview button:hover{background-color:#d6dae0}.sim-title{margin:0 0 var(--space-2, 8px) 0;font-size:1.25rem}.sim-help{margin:0 0 var(--space-4, 16px) 0;color:var(--gray-700, #555);font-size:.95rem;line-height:1.4}.sim-help code{background:var(--gray-200, #eee);padding:1px 4px;border-radius:var(--radius-sm, 3px);font-size:.85em}.sim-dropzone{border:2px dashed var(--gray-400, #bbb);border-radius:var(--radius-md, 6px);background:var(--gray-50, #f8f8f8);padding:var(--space-6, 24px) var(--space-4, 16px);min-height:140px;display:flex;align-items:center;justify-content:center;color:var(--gray-600, #666);text-align:center;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.sim-dropzone--active{border-color:var(--blue-500, #4a90e2);background:var(--blue-50, #eef5ff);color:var(--blue-700, #2762b8)}.sim-dropzone-text{font-size:1rem;pointer-events:none;user-select:none}.sim-actions{display:flex;gap:var(--space-3, 12px);justify-content:center;margin-top:var(--space-4, 16px)}.sim-actions input[type=file]{display:none}.sim-action{padding:var(--space-2, 8px) var(--space-4, 16px);border:1px solid var(--gray-300, #ccc);border-radius:var(--radius-md, 6px);background:#fff;cursor:pointer;font-size:.95rem;transition:background-color .12s ease,border-color .12s ease}.sim-action:hover{background:var(--gray-100, #f0f0f0);border-color:var(--gray-500, #888)}.sim-action:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.sim-library-toggle{display:flex;align-items:flex-start;gap:var(--space-2, 8px);margin-top:var(--space-4, 16px);padding:var(--space-3, 12px);background:var(--blue-50, #eef5ff);border:1px solid var(--blue-200, #c5dcff);border-radius:var(--radius-md, 6px);cursor:pointer;font-size:.95rem}.sim-library-toggle input[type=checkbox]{margin-top:3px;cursor:pointer}.sim-library-toggle-text{display:flex;flex-direction:column;gap:2px}.sim-library-toggle-hint{color:var(--gray-700, #555);font-size:.85rem}.td-root{display:flex;flex-direction:column;gap:var(--space-3, 12px)}.td-toolbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3, 12px);padding:var(--space-2, 8px) var(--space-3, 12px);background:var(--gray-50, #f8f8f8);border:1px solid var(--gray-200, #eee);border-radius:var(--radius-md, 6px);font-size:.9rem}.td-summary{color:var(--gray-800, #333)}.td-summary-added{color:var(--green-700, #15803d);font-weight:500}.td-summary-removed{color:var(--red-700, #b91c1c);font-weight:500}.td-filter{display:inline-flex;align-items:center;gap:var(--space-1, 4px);color:var(--gray-700, #555);cursor:pointer}.td-filter input[type=checkbox]{cursor:pointer}.td-empty{padding:var(--space-6, 24px) var(--space-3, 12px);text-align:center;color:var(--gray-600, #666);font-size:.95rem}.td-row{border:1px solid var(--gray-200, #eee);border-radius:var(--radius-md, 6px);background:#fff;overflow:hidden}.td-row--unchanged{opacity:.6}.td-row--added{border-left:3px solid var(--green-500, #16a34a)}.td-row--removed{border-left:3px solid var(--red-500, #ef4444)}.td-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);background:var(--gray-50, #f8f8f8);border-bottom:1px solid var(--gray-200, #eee);font-size:.9rem}.td-row-title{color:var(--gray-900, #222);font-weight:500}.td-row-badge{padding:2px 6px;border-radius:var(--radius-sm, 4px);font-size:.75rem}.td-row-badge--same{background:var(--gray-200, #eee);color:var(--gray-700, #555)}.td-row-badge--added{background:var(--green-100, #dcfce7);color:var(--green-700, #15803d)}.td-row-badge--removed{background:var(--red-100, #fee2e2);color:var(--red-700, #b91c1c)}.td-row-body{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--gray-200, #eee)}.td-col{background:#fff;padding:var(--space-3, 12px);font-size:.9rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;min-height:2.5em}.td-col--empty{color:var(--gray-400, #bbb);text-align:center;align-self:center}.td-added{background:var(--green-100, #dcfce7);color:var(--green-800, #166534)}.td-removed{background:var(--red-100, #fee2e2);color:var(--red-800, #991b1b);text-decoration:line-through;text-decoration-color:var(--red-400, #f87171)}.td-same{color:var(--gray-900, #222)}.cmp-root{display:flex;flex-direction:column;height:100%;min-height:0;gap:var(--space-4, 16px)}.cmp-header{display:flex;align-items:baseline;gap:var(--space-4, 16px);flex-wrap:wrap;padding-right:var(--space-8, 32px)}.cmp-title{margin:0;font-size:1.25rem;flex:0 0 auto}.cmp-mode-chip-group{display:inline-flex;align-items:center;gap:var(--space-2, 8px);background:var(--gray-100, #f1f3f5);padding:var(--space-1, 4px) var(--space-2, 8px);border-radius:var(--radius-md, 6px);font-size:.9rem}.cmp-mode-chip-label{color:var(--gray-700, #555)}.cmp-mode-chip{border:1px solid var(--gray-300, #ccc);border-radius:var(--radius-sm, 4px);background:#fff;padding:2px 6px;font-size:.9rem;cursor:pointer}.cmp-mode-clear{border:none;background:transparent;cursor:pointer;color:var(--gray-600, #666);font-size:.85rem;padding:0 4px}.cmp-mode-clear:hover{color:var(--gray-900, #222)}.cmp-popout-toggle{margin-left:auto;padding:4px 10px;border:1px solid var(--gray-300, #ccc);background:#fff;color:var(--gray-700, #555);border-radius:var(--radius-sm, 4px);font-size:.85rem;cursor:pointer}.cmp-popout-toggle:hover{border-color:var(--blue-300, #93c5fd);background:var(--blue-50, #eef5ff);color:var(--blue-700, #2762b8)}.cmp-popout-toggle:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.cmp-drawer{position:fixed;top:0;right:0;width:45vw;min-width:320px;height:100vh;background:#fff;box-shadow:-4px 0 16px #0000001f;z-index:9600;display:flex;flex-direction:column;overflow:auto;padding:var(--space-3, 12px)}.cmp-drawer-close{position:absolute;top:var(--space-2, 8px);right:var(--space-3, 12px);border:none;background:transparent;font-size:1.5rem;line-height:1;color:var(--gray-600, #666);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm, 4px)}.cmp-drawer-close:hover{color:var(--gray-900, #222);background:var(--gray-100, #f1f3f5)}.cmp-drawer-close:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.cmp-mode-description{color:var(--gray-700, #555);font-size:.9rem;font-style:italic}.cmp-mode-status{margin:0;color:var(--gray-600, #666);font-size:.9rem;font-style:italic}.cmp-recent{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2, 8px);margin-top:-4px}.cmp-recent-label{font-size:.8rem;color:var(--gray-700, #555);text-transform:uppercase;letter-spacing:.04em}.cmp-recent-pill{padding:3px 10px;border:1px solid var(--gray-300, #ccc);background:var(--gray-50, #f8f8f8);color:var(--gray-800, #333);border-radius:999px;font-size:.85rem;cursor:pointer;max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmp-recent-pill:hover{border-color:var(--blue-300, #93c5fd);background:var(--blue-50, #eef5ff);color:var(--blue-700, #2762b8)}.cmp-recent-pill:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.cmp-recent-vs{color:var(--gray-500, #999);font-size:.75rem;margin:0 4px}.cmp-picker-row{display:flex;align-items:flex-end;gap:var(--space-3, 12px)}.cmp-picker-vs{color:var(--gray-700, #555);font-size:1rem;font-weight:600;padding-bottom:var(--space-2, 8px);letter-spacing:.02em}.cmp-col-picker{position:relative;flex:1 1 0;display:flex;flex-direction:column;gap:var(--space-1, 4px)}.cmp-col-label{font-size:.8rem;color:var(--gray-700, #555);text-transform:uppercase;letter-spacing:.04em}.cmp-col-field{display:flex;align-items:center;gap:var(--space-1, 4px)}.cmp-col-button{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2, 8px);flex:1 1 auto;min-width:0;padding:var(--space-2, 8px) var(--space-3, 12px);border:1px solid var(--gray-300, #ccc);border-radius:var(--radius-md, 6px);background:#fff;cursor:pointer;font-size:.95rem;text-align:left}.cmp-col-button-text,.cmp-col-button-placeholder,.cmp-col-button-loading{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cmp-col-button-caret{flex:0 0 auto}.cmp-col-button:hover{border-color:var(--gray-500, #888)}.cmp-col-button:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.cmp-col-button:disabled{cursor:progress;opacity:.7}.cmp-col-button-placeholder{color:var(--gray-500, #999)}.cmp-col-button-loading{color:var(--gray-600, #666);font-style:italic}.cmp-col-button-caret{color:var(--gray-600, #666)}.cmp-col-clear{flex:0 0 auto;border:none;background:transparent;cursor:pointer;color:var(--gray-500, #999);font-size:.85rem;line-height:1;padding:4px}.cmp-col-clear:hover{color:var(--red-600, #c0392b)}.cmp-col-clear:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px;border-radius:var(--radius-sm, 4px)}.cmp-col-suggest{margin-top:var(--space-1, 4px);align-self:flex-start;padding:2px 8px;border:1px solid var(--blue-300, #93c5fd);background:var(--blue-50, #eef5ff);color:var(--blue-700, #2762b8);border-radius:var(--radius-sm, 4px);font-size:.8rem;cursor:pointer}.cmp-col-suggest:hover{background:var(--blue-100, #dbeafe)}.cmp-col-suggest:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.cmp-col-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:50;min-width:300px;max-width:min(420px,92vw);background:#fff;border:1px solid var(--gray-300, #ccc);border-radius:var(--radius-md, 6px);box-shadow:0 4px 14px #00000014;max-height:320px;display:flex;flex-direction:column}.cmp-col-tabs{display:flex;border-bottom:1px solid var(--gray-200, #eee)}.cmp-col-tab{flex:1 1 0;border:none;background:transparent;padding:var(--space-2, 8px);cursor:pointer;font-size:.9rem;color:var(--gray-700, #555)}.cmp-col-tab--active{color:var(--blue-700, #2762b8);border-bottom:2px solid var(--blue-500, #4a90e2);font-weight:600}.cmp-col-search{padding:var(--space-2, 8px);border-bottom:1px solid var(--gray-200, #eee);flex:0 0 auto}.cmp-col-search-input{width:100%;padding:6px 10px;border:1px solid var(--gray-300, #ccc);border-radius:var(--radius-sm, 4px);font-size:.9rem;background:#fff}.cmp-col-search-input:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px;border-color:var(--blue-500, #4a90e2)}.cmp-col-search-input:disabled{background:var(--gray-50, #f8f8f8);color:var(--gray-500, #999);cursor:not-allowed}.cmp-col-list{overflow-y:auto;flex:1 1 auto}.cmp-col-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2, 8px);width:100%;padding:var(--space-2, 8px) var(--space-3, 12px);border:none;background:transparent;cursor:pointer;font-size:.95rem;text-align:left;border-bottom:1px solid var(--gray-100, #f3f3f3)}.cmp-col-row:hover{background:var(--gray-50, #f8f8f8)}.cmp-col-row-title{color:var(--gray-900, #222);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmp-col-row-meta{color:var(--gray-600, #666);font-size:.85rem;flex:0 0 auto}.cmp-col-empty{padding:var(--space-4, 16px);text-align:center;color:var(--gray-600, #666);font-size:.9rem}.cmp-col-error{padding:var(--space-3, 12px);color:var(--red-700, #b91c1c);background:var(--red-50, #fef2f2);font-size:.9rem}.cmp-tabs{display:flex;gap:var(--space-1, 4px);border-bottom:1px solid var(--gray-200, #eee)}.cmp-tab{border:none;background:transparent;padding:var(--space-2, 8px) var(--space-3, 12px);cursor:pointer;font-size:.95rem;color:var(--gray-700, #555);border-bottom:2px solid transparent;margin-bottom:-1px}.cmp-tab:hover{color:var(--gray-900, #222)}.cmp-tab--active{color:var(--blue-700, #2762b8);border-bottom-color:var(--blue-500, #4a90e2);font-weight:600}.cmp-tab--disabled{color:var(--gray-400, #bbb);cursor:not-allowed}.cmp-tab--disabled:hover{color:var(--gray-400, #bbb)}.cmp-tab-body{flex:1 1 auto;min-height:0;overflow:auto}.cmp-overview-table{width:100%;border-collapse:collapse;font-size:.95rem}.cmp-overview-table thead th{text-align:left;padding:var(--space-2, 8px) var(--space-3, 12px);border-bottom:2px solid var(--gray-300, #ddd);color:var(--gray-700, #555);font-weight:600;background:var(--gray-50, #f8f8f8)}.cmp-overview-metric-col{width:25%}.cmp-overview-delta-col{width:15%;text-align:right}.cmp-overview-table tbody td,.cmp-overview-table tbody th{padding:var(--space-2, 8px) var(--space-3, 12px);border-bottom:1px solid var(--gray-200, #eee);vertical-align:top}.cmp-overview-metric-name{color:var(--gray-700, #555);font-weight:500;text-align:left}.cmp-overview-cell{font-variant-numeric:tabular-nums}.cmp-overview-delta{text-align:right}.cmp-overview-delta-num{background:var(--blue-50, #eef5ff);color:var(--blue-700, #2762b8);padding:2px 6px;border-radius:var(--radius-sm, 4px)}.cmp-overview-delta-num--close{background:var(--green-50, #f0fdf4);color:var(--green-700, #15803d)}.cmp-overview-delta-num--moderate{background:var(--yellow-50, #fefce8);color:var(--yellow-700, #a16207)}.cmp-overview-delta-num--far{background:var(--red-50, #fef2f2);color:var(--red-700, #b91c1c)}.cmp-overview-empty{color:var(--gray-400, #bbb)}.cmp-overview-toolbar{display:flex;justify-content:flex-end;margin-bottom:var(--space-2, 8px)}.cmp-overview-copy,.cmp-structure-copy,.td-copy{padding:4px 10px;border:1px solid var(--gray-300, #ccc);background:#fff;color:var(--gray-700, #555);border-radius:var(--radius-sm, 4px);font-size:.85rem;cursor:pointer}.cmp-overview-copy:hover,.cmp-structure-copy:hover,.td-copy:hover{border-color:var(--blue-300, #93c5fd);background:var(--blue-50, #eef5ff);color:var(--blue-700, #2762b8)}.cmp-overview-copy:focus-visible,.cmp-structure-copy:focus-visible,.td-copy:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.cmp-structure-copy{margin-left:auto}.td-copy{margin-left:var(--space-2, 8px)}.cmp-structure-root{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4, 16px)}.cmp-structure-root>.cmp-structure-hint{grid-column:1 / -1;margin:0;color:var(--gray-600, #666);font-size:.85rem;line-height:1.4}.cmp-structure-col{display:flex;flex-direction:column;gap:var(--space-2, 8px);background:var(--gray-50, #f8f8f8);padding:var(--space-3, 12px);border-radius:var(--radius-md, 6px)}.cmp-structure-col-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2, 8px)}.cmp-structure-col-label{font-size:.8rem;color:var(--gray-700, #555);text-transform:uppercase;letter-spacing:.04em}.cmp-structure-col-title{font-size:.95rem;color:var(--gray-900, #222);font-weight:500}.cmp-structure-svg{width:100%;height:auto;background:#fff;border-radius:var(--radius-sm, 4px)}.cmp-structure-axis{stroke:var(--gray-300, #ddd);stroke-width:1}.cmp-structure-line{stroke-width:1.5;fill:none}.cmp-structure-plotpoint{stroke:var(--gray-700, #555);stroke-width:1.5}.cmp-structure-hover-dot{fill:var(--gray-900, #222)}.cmp-structure-toolbar{grid-column:1 / -1;display:inline-flex;align-self:start;gap:var(--space-1, 4px);background:var(--gray-100, #f1f3f5);padding:2px;border-radius:var(--radius-md, 6px)}.cmp-structure-layout-group{display:inline-flex;gap:var(--space-1, 4px)}.cmp-structure-mode{border:none;background:transparent;padding:4px 12px;border-radius:var(--radius-sm, 4px);font-size:.85rem;color:var(--gray-700, #555);cursor:pointer}.cmp-structure-mode:hover{color:var(--gray-900, #222)}.cmp-structure-mode--active{background:#fff;color:var(--blue-700, #2762b8);box-shadow:0 1px 2px #0000000f}.cmp-structure-overlay{grid-column:1 / -1;display:flex;flex-direction:column;gap:var(--space-2, 8px);background:var(--gray-50, #f8f8f8);padding:var(--space-3, 12px);border-radius:var(--radius-md, 6px)}.cmp-structure-overlay-legend{display:flex;gap:var(--space-3, 12px);font-size:.85rem;color:var(--gray-700, #555)}.cmp-structure-legend-item{display:inline-flex;align-items:center;gap:var(--space-1, 4px)}.cmp-structure-legend-swatch{display:inline-block;width:12px;height:12px;border-radius:2px}.cmp-structure-svg-wrapper{position:relative}.cmp-structure-tooltip{position:absolute;transform:translate(-50%,-110%);background:var(--gray-900, #222);color:#fff;padding:var(--space-1, 4px) var(--space-2, 8px);border-radius:var(--radius-sm, 4px);font-size:.8rem;pointer-events:none;white-space:nowrap;box-shadow:0 2px 6px #00000026;display:flex;flex-direction:column;gap:2px;z-index:5}.cmp-structure-tooltip-meta{color:var(--gray-300, #ddd);font-size:.75rem}.cmp-structure-empty{padding:var(--space-6, 24px) var(--space-3, 12px);text-align:center;color:var(--gray-500, #999);font-size:.9rem;background:#fff;border-radius:var(--radius-sm, 4px)}.shd-wrapper{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.shd-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0}.shd-header-text{flex:1;min-width:0}.shd-title{margin:0 0 var(--space-2) 0;font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text)}.shd-subtitle{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.shd-summary-pills{display:flex;flex-wrap:wrap;gap:var(--space-1)}.shd-pill{display:inline-flex;align-items:center;padding:2px 8px;background:var(--gray-100);border:1px solid var(--color-border);border-radius:999px;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);white-space:nowrap}.shd-grid{flex:1;min-height:0;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);padding:var(--space-5) var(--space-6);box-sizing:border-box;align-content:start}.shd-card-wide{grid-column:1 / -1}.shd-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.shd-card-title{margin:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.shd-card-icon{font-size:15px;line-height:1}.shd-card-legend{display:flex;gap:var(--space-1)}.shd-card-title-actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;flex-shrink:0}.shd-size-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-100);color:var(--color-text-muted);font-size:13px;line-height:1;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast);padding:0}.shd-size-btn:hover{background:var(--gray-200);color:var(--color-text)}.shd-size-btn--height{transform:rotate(90deg)}.shd-compare-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-100);color:var(--color-text-muted);font-size:13px;line-height:1;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.shd-compare-btn:hover{background:var(--color-accent-subtle, #eef2ff);border-color:var(--color-accent, #6366f1);color:var(--color-accent, #6366f1)}.shd-header-actions{display:flex;align-items:flex-start;gap:var(--space-2);flex-shrink:0}.shd-tour-btn,.shd-reset-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:5px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-100);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.shd-reset-btn{color:var(--color-text-muted)}.shd-reset-btn:hover{background:var(--gray-200);color:var(--color-text);border-color:var(--color-border-strong, var(--gray-300))}.shd-tour-btn{color:var(--color-accent, #6366f1);border-color:var(--color-accent, #6366f1)}.shd-tour-btn:hover{background:var(--color-accent-subtle, #eef2ff);border-color:var(--color-accent-hover, #4f46e5);color:var(--color-accent-hover, #4f46e5)}.shd-help-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--color-border);border-radius:50%;background:var(--gray-100);color:var(--color-text-muted);font-size:12px;font-weight:var(--weight-semibold);line-height:1;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);padding:0}.shd-help-btn:hover,.shd-help-btn--active{background:var(--color-accent-subtle, #eef2ff);border-color:var(--color-accent, #6366f1);color:var(--color-accent, #6366f1)}.shd-help-popup{max-height:220px;overflow-y:auto;background:var(--color-accent-subtle, #eef2ff);border-left:3px solid var(--color-accent, #6366f1);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);animation:shd-help-in .15s ease;margin-bottom:var(--space-1)}@keyframes shd-help-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.shd-help-popup-close{float:right;margin:-2px -4px 0 var(--space-2);width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-accent, #6366f1);border-radius:var(--radius-sm);background:transparent;color:var(--color-accent, #6366f1);font-size:10px;cursor:pointer;padding:0;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.shd-help-popup-close:hover{background:var(--color-accent, #6366f1);color:#fff}.shd-help-popup-title{margin:0 0 var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-accent, #6366f1);letter-spacing:.02em;text-transform:uppercase}.shd-help-popup-body p{margin:0 0 var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary, #374151);line-height:1.65}.shd-help-popup-body p:last-child{margin-bottom:0}.shd-card-hint{margin:0;font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.5}.shd-empty{font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;padding:var(--space-3) 0}.shd-all-clear{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-success, #16a34a);padding:var(--space-2) 0}.shd-muted{color:var(--color-text-muted)}.shd-bar-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-1)}.shd-bar-row{display:flex;align-items:center;gap:var(--space-2);min-width:0}.shd-bar-label{width:110px;flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shd-bar-track{flex:1;min-width:0;height:10px;background:var(--gray-100);border-radius:999px;overflow:hidden}.shd-bar-fill{height:100%;border-radius:999px;transition:width .3s ease;min-width:2px}.shd-bar-character{background:var(--color-accent)}.shd-bar-chapter{background:#0ea5e9}.shd-bar-unassigned{background:var(--gray-300)}.shd-bar-empty{background:var(--color-danger, #dc2626)}.shd-bar-count{width:22px;text-align:right;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);flex-shrink:0}.shd-dynamics-pairs{display:flex;flex-direction:column;gap:var(--space-2)}.shd-dynamics-pair-row{display:grid;grid-template-columns:minmax(100px,1fr) 3fr auto;align-items:center;gap:var(--space-2)}.shd-dynamics-pair-name{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shd-dynamics-vs{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:400;margin:0 2px}.shd-dynamics-pair-bar{display:flex;height:14px;border-radius:var(--radius-sm);overflow:hidden;background:var(--gray-100)}.shd-dynamics-pair-segment{transition:width .2s ease;min-width:2px}.shd-dynamics-pair-badges{display:flex;gap:2px;flex-shrink:0}.shd-dynamics-badge{font-size:10px;font-weight:var(--weight-semibold);padding:1px 5px;border-radius:var(--radius-sm);line-height:1.5}.shd-dynamics-legend{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.shd-dynamics-legend-item{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted)}.shd-dynamics-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.shd-tone-arc{display:flex;flex-wrap:wrap;gap:var(--space-1);padding:var(--space-2) 0}.shd-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:var(--weight-semibold);white-space:nowrap;flex-shrink:0}.shd-badge-warn{background:#fef3c7;color:#92400e}.shd-badge-danger{background:#fee2e2;color:#991b1b}.shd-badge-ok{background:#dcfce7;color:#166534}.shd-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:var(--weight-medium, 500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;transition:opacity .15s}.shd-chip--lg{padding:3px 9px}.shd-chip--sm{font-size:10px;padding:1px 5px}.shd-chip--teal{background:#0d94881a;color:#0d9488}.shd-chip--purple{background:#7c3aed1a;color:#7c3aed}.shd-chip--muted{background:var(--gray-100);border:1px solid var(--color-border);color:var(--color-text-secondary)}.shd-chip--unassigned{background:var(--gray-300);color:var(--color-text-secondary)}.shd-chip:hover{opacity:.85}.shd-bar-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}.shd-panel-row{display:flex;align-items:center;gap:var(--space-2);padding:3px var(--space-2);border-left:3px solid var(--gray-300);border-radius:0 var(--radius-sm, 4px) var(--radius-sm, 4px) 0;background:var(--gray-50)}.shd-section-label{margin:0 0 var(--space-1);font-size:var(--text-xs, .75rem);font-weight:var(--weight-semibold, 600);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.shd-gap-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-1) 0;border-bottom:1px solid var(--color-border)}.shd-gap-row:last-child{border-bottom:none}.shd-gap-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);min-width:80px}.shd-gap-info{font-size:var(--text-xs);color:var(--color-text-muted)}.shd-gap-range{font-size:10px;color:var(--color-text-muted);font-style:italic;flex-basis:100%;padding-left:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shd-gap-warn{background:#fffbeb;border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.shd-gap-danger{background:#fef2f2;border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.shd-gap-clean-list{margin-top:var(--space-3);border-top:1px dashed var(--color-border);padding-top:var(--space-2)}.shd-locations{display:flex;gap:var(--space-3);margin-top:var(--space-1);min-height:0}.shd-loc-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.shd-loc-col-header{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;padding-bottom:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-1)}.shd-loc-used-header{color:var(--color-success, #16a34a)}.shd-loc-unused-header{color:var(--color-text-muted)}.shd-loc-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text);padding:2px 0}.shd-loc-divider{width:1px;background:var(--color-border);flex-shrink:0;margin:0 var(--space-1)}.shd-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.shd-dot-used{background:var(--color-success, #16a34a)}.shd-dot-unused{background:var(--gray-300)}.shd-arc-list{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-1)}.shd-arc-assigned-list{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px dashed var(--color-border)}.shd-arc-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0}.shd-arc-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.shd-arc-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shd-twin-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-1)}.shd-sp-root,.shd-sp-list{display:flex;flex-direction:column;gap:var(--space-2)}.shd-sp-healthy-list{margin-top:var(--space-1)}.shd-sp-row{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--gray-50);border:1px solid var(--color-border);border-left-width:3px;border-radius:var(--radius-md)}.shd-sp-ok{border-left-color:var(--color-border)}.shd-sp-order{border-left-color:var(--amber-500, #f59e0b)}.shd-sp-broken{border-left-color:var(--red-500, #ef4444)}.shd-sp-scenes{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.shd-sp-scene{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.shd-sp-scene--missing{color:var(--color-text-muted);font-style:italic;font-weight:var(--weight-normal)}.shd-sp-arrow{color:var(--color-text-muted);font-size:var(--text-sm);flex-shrink:0}.shd-sp-scenes .shd-badge,.shd-sp-scenes .shd-gap-info{margin-left:auto;flex-shrink:0}.shd-sp-desc{font-size:var(--text-xs);color:var(--color-text-muted)}.shd-wn-list{display:flex;flex-direction:column;gap:var(--space-2)}.shd-wn-row{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--gray-50);border:1px solid var(--color-border);border-left-width:3px;border-left-color:var(--color-border);border-radius:var(--radius-md)}.shd-wn-flag{border-left-color:var(--amber-500, #f59e0b)}.shd-wn-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.shd-wn-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text)}.shd-wn-badge{margin-left:auto;flex-shrink:0}.shd-wn-fields{display:flex;flex-direction:column;gap:2px}.shd-wn-field{display:flex;gap:var(--space-2);font-size:var(--text-sm);align-items:baseline}.shd-wn-label{flex:0 0 42px;color:var(--color-text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em}.shd-wn-val{color:var(--color-text)}.shd-cast-root{display:flex;flex-direction:column;gap:var(--space-2)}.shd-cast-summary{font-size:var(--text-xs)}.shd-cast-absent .shd-bar-label{color:var(--color-text-muted);font-style:italic}.shd-st-root{display:flex;flex-direction:column;gap:var(--space-2)}.shd-st-summary{font-size:var(--text-xs)}.shd-st-list{display:flex;flex-direction:column;gap:var(--space-1)}.shd-st-turned-list{margin-top:var(--space-1)}.shd-st-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--gray-50);border:1px solid var(--color-border);border-left-width:3px;border-left-color:var(--color-border);border-radius:var(--radius-md)}.shd-st-flat{border-left-color:var(--amber-500, #f59e0b)}.shd-st-turn{border-left-color:var(--green-500, #10b981)}.shd-st-idx{flex:0 0 auto;min-width:20px;text-align:right;font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.shd-st-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}.shd-st-shift{display:flex;align-items:center;gap:var(--space-1);margin-left:auto;flex-shrink:0;font-size:var(--text-xs)}.shd-st-from{color:var(--color-text-muted)}.shd-st-to{color:var(--color-text);font-weight:var(--weight-medium)}.shd-st-arrow{color:var(--color-text-muted)}.shd-st-who{margin-left:var(--space-1)}.shd-st-row .shd-badge{margin-left:auto;flex-shrink:0}.shd-st-unset{font-size:var(--text-xs)}.shd-stakes-root{display:flex;flex-direction:column;gap:var(--space-1)}.shd-stakes-unset{font-size:var(--text-xs)}.shd-caus-root{display:flex;flex-direction:column;gap:var(--space-2)}.shd-caus-run{font-size:var(--text-xs)}.shd-caus-strip{display:flex;flex-wrap:wrap;gap:3px}.shd-caus-cell{display:inline-flex;align-items:center;justify-content:center;min-width:22px}.shd-caus-legend{display:flex;gap:var(--space-3);flex-wrap:wrap;font-size:var(--text-xs);color:var(--color-text-muted)}.shd-caus-legend-item{display:inline-flex;align-items:center;gap:var(--space-1)}.shd-caus-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.shd-twin-pair{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md)}.shd-twin-scenes{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.shd-twin-scene-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.shd-twin-arrow{color:var(--color-text-muted);font-size:var(--text-sm);flex-shrink:0}.shd-twin-warn{margin-left:auto;flex-shrink:0}.shd-twin-attrs{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}.shd-tone-view-switcher{display:flex;justify-content:flex-end;gap:var(--space-1);padding-bottom:var(--space-2);margin-bottom:var(--space-1);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:2;background:var(--color-surface)}.shd-tone-view-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-100);font-size:13px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);padding:0}.shd-tone-view-btn:hover{background:var(--gray-200)}.shd-tone-view-btn--active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.shd-esc-banner{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1);border-radius:var(--radius-md);border:1px solid var(--color-border);border-left-width:3px;font-size:var(--text-xs);background:var(--gray-50)}.shd-esc-ok{border-left-color:var(--green-500, #10b981)}.shd-esc-warn{border-left-color:var(--amber-500, #f59e0b)}.shd-esc-icon{flex-shrink:0}.shd-esc-text{color:var(--color-text)}.shd-tone-bar-graph{display:flex;flex-direction:column;gap:var(--space-1)}.shd-tone-bar-chart-area{display:flex;align-items:flex-end;gap:3px;height:130px;overflow-x:auto;border-bottom:1px solid var(--color-border);padding-bottom:2px}.shd-tone-bar-col{display:flex;align-items:flex-end;flex-shrink:0;width:24px;height:100%;cursor:default}.shd-tone-bar-fill{width:100%;border-radius:3px 3px 0 0;min-height:4px;transition:height .25s ease}.shd-tone-bar-x-axis{display:flex;gap:3px;overflow-x:hidden}.shd-tone-bar-x-label{width:24px;flex-shrink:0;text-align:center;font-size:9px;color:var(--color-text-muted)}.shd-tone-line-wrap{overflow-x:auto;padding:var(--space-1) 0}.shd-tone-line-wrap svg{display:block;overflow:visible}.shd-card-body{flex:1;min-height:0;overflow-y:auto;max-height:260px;padding-right:8px;transition:max-height .25s ease}.shd-card-body--tall{max-height:520px}.shd-drag-handle{cursor:grab;color:var(--color-text-muted);font-size:14px;flex-shrink:0;user-select:none;padding-right:var(--space-1);opacity:.5;transition:opacity var(--transition-fast)}.shd-drag-handle:hover{opacity:1}.shd-drag-handle:active{cursor:grabbing}.shd-card--dragging{opacity:.4;box-shadow:none}.shd-card--drag-over{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 25%,transparent)}.shd-bs-empty-state{padding:var(--space-4) var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);font-style:italic;text-align:center}.shd-bs-list{display:flex;flex-direction:column;gap:0}.shd-bs-row{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.shd-bs-row:last-child{border-bottom:none}.shd-bs-row--unassigned{margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px dashed var(--color-border);border-bottom:none}.shd-bs-stage-label{flex-shrink:0;width:150px;display:flex;flex-direction:column;gap:2px;padding:var(--space-1) var(--space-2);border-left:3px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--gray-50)}.shd-bs-stage-label--empty{border-left-color:var(--color-text-muted);opacity:.65}.shd-bs-stage-name{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);line-height:1.3;word-break:break-word}.shd-bs-stage-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;border-radius:99px;font-size:10px;font-weight:var(--weight-semibold);color:#fff;background:var(--color-text-muted);align-self:flex-start}.shd-bs-chips{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:var(--space-1);padding-top:2px}.shd-bs-none{font-size:var(--text-xs);font-style:italic;color:var(--color-text-muted);padding-top:2px}@media (max-width: 700px){.shd-grid{grid-template-columns:1fr;padding:var(--space-3) var(--space-4)}.shd-card-wide{grid-column:1}.shd-bar-label{width:80px}}.shd-pacing-root{position:relative}.shd-pacing-avg-label{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2)}.shd-pacing-chart{position:relative;display:flex;flex-direction:column;gap:4px}.shd-pacing-avg-line{position:absolute;top:0;bottom:0;width:1.5px;background:var(--color-accent, #6366f1);opacity:.5;pointer-events:none;z-index:1}.shd-pacing-row{display:flex;align-items:center;gap:var(--space-2);min-height:20px}.shd-pacing-name{width:140px;flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shd-pacing-track{flex:1;height:14px;background:var(--gray-100, #f1f5f9);border-radius:3px;overflow:hidden;position:relative}.shd-pacing-bar{height:100%;background:var(--color-accent, #6366f1);border-radius:3px;transition:width .2s ease;min-width:2px}.shd-pacing-bar--empty{background:var(--gray-300, #cbd5e1)}.shd-pacing-count{width:52px;text-align:right;flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-secondary)}.shd-pacing-count--empty{color:var(--color-text-muted)}.shd-comp-root{display:flex;flex-direction:column;gap:var(--space-2)}.shd-comp-list{display:flex;flex-direction:column;gap:4px}.shd-comp-row{display:flex;align-items:center;gap:var(--space-2);min-height:18px}.shd-comp-name{width:130px;flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shd-comp-stacked{flex:1;height:12px;display:flex;border-radius:3px;overflow:hidden;background:var(--gray-100, #f1f5f9)}.shd-comp-seg{height:100%;transition:width .2s ease}.shd-comp-seg--dialogue{background:#0d9488}.shd-comp-seg--interiority{background:#7c3aed}.shd-comp-seg--action{background:#f97316}.shd-comp-seg--worldbuilding{background:#0369a1}.shd-comp-seg--other{background:#94a3b8}.shd-comp-seg--unmeasured{background:var(--gray-200, #e2e8f0);width:100%}.shd-comp-pct{width:42px;text-align:right;flex-shrink:0;font-size:10px;color:var(--color-text-muted);white-space:nowrap}.shd-comp-legend{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1);flex-wrap:wrap}.shd-comp-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:3px;vertical-align:middle}.shd-comp-swatch--dialogue{background:#0d9488}.shd-comp-swatch--interiority{background:#7c3aed}.shd-comp-swatch--action{background:#f97316}.shd-comp-swatch--worldbuilding{background:#0369a1}.shd-comp-swatch--other{background:#94a3b8}.shd-comp-swatch--unmeasured{background:var(--gray-200, #e2e8f0);border:1px solid var(--color-border)}.shd-comp-vstack-graph{display:flex;flex-direction:column;gap:var(--space-1)}.shd-comp-vstack-chart-area{display:flex;align-items:stretch;gap:3px;height:140px;overflow-x:auto;border-bottom:1px solid var(--color-border);padding-bottom:2px}.shd-comp-vstack-col{display:flex;flex-direction:column-reverse;flex-shrink:0;width:20px;height:100%;border-radius:3px 3px 0 0;overflow:hidden;cursor:default}.shd-comp-vstack-seg{width:100%;transition:flex .25s ease;min-height:0}.shd-comp-vstack-seg--unmeasured{background:var(--gray-200, #e2e8f0);flex:1}.shd-comp-vstack-x-axis{display:flex;gap:3px;overflow-x:hidden}.shd-comp-vstack-x-label{width:20px;flex-shrink:0;text-align:center;font-size:9px;color:var(--color-text-muted)}.shd-comp-bar-graph{display:flex;flex-direction:column;gap:var(--space-1)}.shd-comp-bar-chart-area{display:flex;align-items:flex-end;gap:4px;height:140px;overflow-x:auto;border-bottom:1px solid var(--color-border);padding-bottom:2px}.shd-comp-bar-group{display:flex;align-items:flex-end;gap:2px;flex-shrink:0;height:100%;cursor:default}.shd-comp-bar-col{display:flex;align-items:flex-end;width:8px;height:100%}.shd-comp-bar-fill{width:100%;border-radius:3px 3px 0 0;min-height:0;transition:height .25s ease}.shd-comp-bar-x-axis{display:flex;gap:4px;overflow-x:hidden}.shd-comp-bar-x-label{width:48px;flex-shrink:0;text-align:center;font-size:9px;color:var(--color-text-muted)}.shd-thematic-root{display:flex;flex-direction:column;gap:var(--space-3)}.shd-thematic-row{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-subtle, rgba(0,0,0,.06))}.shd-thematic-row:last-child{border-bottom:none}.shd-thematic-theme-col{display:flex;flex-direction:column;gap:4px;min-width:140px;max-width:180px;flex-shrink:0}.shd-thematic-theme-name{font-size:var(--text-sm);font-weight:var(--weight-medium, 500);color:var(--color-text);line-height:1.3}.shd-thematic-chars{display:flex;flex-wrap:wrap;gap:3px}.shd-thematic-scenes{display:flex;flex-wrap:wrap;gap:4px;align-items:center;flex:1}.shd-thematic-count{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.shd-thematic-untouched{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#f59e0b0f;border-left:3px solid #f59e0b;border-radius:3px}.shd-thematic-scenes--untouched{margin-top:2px}.shd-pr-root{display:flex;flex-direction:column;gap:var(--space-3)}.shd-pr-summary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.shd-pr-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;color:#fff;font-size:var(--text-xs);font-weight:var(--weight-semibold)}.shd-pr-pill-label{opacity:.9}.shd-pr-pill-nums{font-weight:var(--weight-bold);font-size:var(--text-sm)}.shd-pr-pill-pct{font-size:10px;font-weight:var(--weight-medium);opacity:.85}.shd-pr-rhythm{display:flex;flex-wrap:wrap;gap:3px;padding:var(--space-2);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:28px;align-items:center}.shd-pr-block{width:16px;height:16px;border-radius:3px;opacity:.85;flex-shrink:0;transition:opacity var(--transition-fast),transform var(--transition-fast);cursor:default}.shd-pr-block:hover{opacity:1;transform:scaleY(1.3)}.shd-pr-list{display:flex;flex-direction:column;gap:3px}.shd-pr-num{flex-shrink:0;width:18px;text-align:right;font-size:10px;font-weight:var(--weight-bold);color:var(--color-text-muted)}.shd-pr-name{flex:1;min-width:0;font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-root{display:flex;flex-direction:column;height:100%;min-height:0;gap:var(--space-3, 12px)}.cc-toolbar{display:flex;align-items:center;gap:var(--space-3, 12px) var(--space-4, 16px);flex-wrap:wrap;flex-shrink:0;padding-right:var(--space-8, 32px)}.cc-title{margin:0;font-size:1.15rem;white-space:nowrap}.cc-toolbar-pickers{display:flex;align-items:center;gap:var(--space-2, 8px);flex-wrap:wrap}.cc-toolbar-aspect{display:flex;align-items:center;gap:var(--space-2, 8px)}.cc-picker-vs{color:var(--gray-600, #666);font-size:.9rem}.cc-aspect-label{font-size:.9rem;color:var(--gray-700, #555)}.cc-aspect-select{padding:4px 8px;border:1px solid var(--gray-300, #ccc);border-radius:var(--radius-md, 6px);background:#fff;font-size:.9rem;cursor:pointer}.cc-aspect-select:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.cc-layout-toggle{display:inline-flex;gap:var(--space-1, 4px)}.cc-layout-btn{padding:4px 10px;border:1px solid var(--gray-300, #ccc);background:#fff;color:var(--gray-700, #555);border-radius:var(--radius-md, 6px);font-size:.8rem;cursor:pointer}.cc-layout-btn:hover{border-color:var(--blue-300, #93c5fd);background:var(--blue-50, #eef5ff);color:var(--blue-700, #2762b8)}.cc-layout-btn:focus-visible{outline:2px solid var(--blue-500, #4a90e2);outline-offset:1px}.cc-layout-btn--active{background:var(--blue-100, #dbeafe);border-color:var(--blue-500, #4a90e2);color:var(--blue-700, #2762b8);font-weight:600}.cc-body{display:flex;flex:1 1 auto;min-height:0;gap:var(--space-3, 12px);overflow:hidden}.cc-body--side{flex-direction:row}.cc-body--overlay{flex-direction:column}.cc-body--ribbons{flex-direction:column;gap:var(--space-4, 16px);align-content:flex-start;overflow:auto}.cc-pane{display:flex;flex-direction:column;flex:1 1 0;min-width:0;min-height:0;border:1px solid var(--gray-200, #eee);border-radius:var(--radius-md, 6px);background:#fff;padding:var(--space-3, 12px);gap:var(--space-2, 8px)}.cc-pane-title{margin:0;font-size:1rem;font-weight:500;color:var(--gray-900, #222);border-bottom:1px solid var(--gray-200, #eee);padding-bottom:var(--space-1, 4px)}.cc-pane-chart{flex:1 1 auto;min-height:0;overflow:auto}.cc-pane-empty{color:var(--gray-500, #999);font-size:.95rem;font-style:italic;text-align:center;padding:var(--space-6, 24px) var(--space-3, 12px)}.cc-legend{display:flex;flex-direction:column;gap:var(--space-2, 8px);flex-shrink:0}.cc-legend-keys{display:flex;flex-wrap:wrap;gap:var(--space-2, 8px) var(--space-4, 16px);font-size:.9rem;color:var(--gray-800, #333)}.cc-legend-key{display:inline-flex;align-items:center;font-weight:600}.cc-legend-dot{width:12px;height:12px;border-radius:3px;margin-right:6px;flex-shrink:0}.cc-legend-chips{display:flex;flex-wrap:wrap;gap:var(--space-2, 8px)}.cc-legend-chip{display:inline-flex;align-items:center;gap:var(--space-2, 8px);padding:3px 10px;border-radius:999px;color:#fff;font-size:.8rem;line-height:1.4}.cc-legend-chip-label{font-weight:600}.cc-legend-chip-vals{display:inline-flex;align-items:center;gap:var(--space-2, 8px)}.cc-legend-val{display:inline-flex;align-items:center;white-space:nowrap}.cc-legend-val-dot{width:8px;height:8px;border-radius:50%;margin-right:4px;border:1px solid rgba(255,255,255,.75);flex-shrink:0}.cc-legend-val-pct{opacity:.85}.cc-ribbon-row{display:flex;flex-direction:column;gap:var(--space-1, 4px);flex-shrink:0}.cc-ribbon-title{margin:0;font-size:1rem;font-weight:500;color:var(--gray-900, #222);display:flex;align-items:center}.cc-ribbon{display:flex;height:36px;border:1px solid var(--gray-200, #eee);border-radius:var(--radius-md, 6px);overflow:hidden}.cc-ribbon-cell{flex-basis:0;flex-shrink:1;min-width:1px}.cc-ribbon-xaxis{display:flex;justify-content:space-between;font-size:.75rem;color:var(--gray-500, #999);flex-shrink:0}.cc-linechart{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;gap:var(--space-1, 4px)}.cc-linechart-plot{flex:1 1 auto;min-height:0;border-left:1px solid var(--gray-200, #eee);border-bottom:1px solid var(--gray-200, #eee)}.cc-linechart-svg{display:block;width:100%;height:100%}.cc-linechart-xaxis{display:flex;justify-content:space-between;font-size:.75rem;color:var(--gray-500, #999);flex-shrink:0}.sa-overlay{position:fixed;inset:0;background:#0f172a8c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:4vh 4vw;box-sizing:border-box;z-index:1200}.sa-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:92vw;max-width:1200px;height:90vh;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.sa-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0}.sa-header-text{flex:1;min-width:0}.sa-title{margin:0 0 var(--space-1) 0;font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text)}.sa-subtitle{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5}.sa-close-btn{background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:16px;width:32px;height:32px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition-base),color var(--transition-base)}.sa-close-btn:hover{background:var(--gray-200);color:var(--color-text)}.sa-split-body{position:relative;flex:1;min-height:0;display:flex;flex-direction:row;overflow:hidden}.sa-split-body input[type=file]{display:none}.sa-panel{display:flex;flex-direction:column;overflow:hidden;min-width:0}.sa-panel-left{flex:0 0 38%}.sa-panel-right{flex:1}.sa-divider{width:1px;background:var(--color-border);flex-shrink:0}.sa-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--gray-50);flex-shrink:0}.sa-panel-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.sa-context-row{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);background:var(--gray-50);flex-shrink:0;flex-wrap:wrap}.sa-context-field{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:120px}.sa-context-field--full{flex:1 1 100%}.sa-context-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-secondary)}.sa-select{padding:4px var(--space-2);font-size:var(--text-sm);font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;outline:none;transition:border-color var(--transition-fast)}.sa-select:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.sa-panel-hint{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5;padding:var(--space-3) var(--space-4);flex-shrink:0}.sa-textarea{flex:1;min-height:0;width:100%;box-sizing:border-box;font-family:Menlo,Consolas,Monaco,monospace;font-size:12.5px;line-height:1.65;color:var(--color-text);background:var(--gray-50);border:none;border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4);resize:none;outline:none;transition:background var(--transition-fast)}.sa-textarea:focus{background:var(--color-surface)}.sa-textarea::placeholder{color:var(--color-text-muted);font-style:italic}.sa-scene-textarea{border-bottom:1px solid var(--color-border)}.sa-results-scroll{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4);border-top:1px solid var(--color-border)}.sa-status{font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-4);flex-shrink:0}.sa-status--loading{color:var(--color-text-muted);font-style:italic;background:var(--gray-50);border-top:1px solid var(--color-border)}.sa-status--error{background:#fef2f2;color:#991b1b;border-top:1px solid #fecaca}.sa-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--gray-50);flex-shrink:0}.sa-result-hint{flex:1;font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.sa-analyze-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-5);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.sa-analyze-btn:hover:not(:disabled){background:var(--accent-600, #4f46e5)}.sa-analyze-btn:disabled{opacity:.45;cursor:not-allowed}.sa-secondary-btn{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);background:var(--gray-100);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.sa-secondary-btn:hover{background:var(--gray-200)}.asi-loading-overlay{position:absolute;inset:0;background:rgba(var(--surface-rgb, 255 255 255) / .93);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:10;border-radius:0 0 var(--radius-xl) var(--radius-xl)}.asi-loading-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);max-width:420px;text-align:center;padding:var(--space-6)}.asi-spinner{width:52px;height:52px;border:4px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:asi-spin .9s linear infinite;flex-shrink:0}@keyframes asi-spin{to{transform:rotate(360deg)}}.asi-loading-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.asi-loading-desc{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.55}.asi-elapsed{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-accent);font-variant-numeric:tabular-nums;letter-spacing:.02em}.asi-info-box{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.6;flex:1}.asi-info-box p{margin:0 0 var(--space-2) 0}.asi-info-box ol{margin:0 0 var(--space-3) 0;padding-left:var(--space-5)}.asi-info-box li{margin-bottom:var(--space-1)}.asi-info-note{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;margin-top:var(--space-2)!important}.asi-title-input{padding:5px var(--space-2);font-size:var(--text-sm);font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);outline:none;width:100%;box-sizing:border-box;transition:border-color var(--transition-fast)}.asi-title-input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.asi-title-input::placeholder{color:var(--color-text-muted);font-style:italic}.asi-title-input:disabled{opacity:.55;cursor:not-allowed}.asi-success-panel{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);padding:var(--space-8) var(--space-6);text-align:center}.asi-success-icon{font-size:3rem;line-height:1}.asi-success-title{margin:0;font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text)}.asi-success-stats{display:flex;gap:var(--space-6);flex-wrap:wrap;justify-content:center}.asi-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.asi-stat-value{font-size:var(--text-3xl, 1.875rem);font-weight:var(--weight-bold);color:var(--color-accent);line-height:1}.asi-stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted)}.asi-success-desc{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.asi-panel-header-right{display:flex;align-items:center;gap:var(--space-2)}.asi-word-hint{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-normal);text-transform:none;letter-spacing:0}.asi-load-file-btn{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);background:var(--color-surface-raised, var(--gray-100));border:1px solid var(--color-border, var(--gray-200));border-radius:var(--radius-sm);padding:2px var(--space-2);cursor:pointer;white-space:nowrap;text-transform:none;letter-spacing:0;transition:background .15s,color .15s}.asi-load-file-btn:hover:not(:disabled){background:var(--color-surface-hover, var(--gray-200));color:var(--color-text-primary)}.asi-load-file-btn:disabled{opacity:.45;cursor:not-allowed}.analysis-accordion{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.accordion-item{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface)}.accordion-item summary{cursor:pointer;font-size:var(--text-base);font-weight:var(--weight-semibold);padding:var(--space-3) var(--space-4);user-select:none;list-style:none;display:flex;align-items:center;gap:var(--space-2);background-color:var(--gray-50);transition:background-color var(--transition-fast)}.accordion-item summary::-webkit-details-marker{display:none}.accordion-item summary:hover{background-color:var(--gray-100)}.accordion-item[open] summary{border-bottom:1px solid var(--color-border-subtle)}.accordion-content{padding:var(--space-4);line-height:1.6;font-size:var(--text-sm);color:var(--color-text)}.analysis-feedback{color:var(--color-text)}.analysis-feedback-example,.analysis-example{font-style:italic;color:var(--color-text-secondary);margin-top:var(--space-2)}.rating-bad summary{color:var(--color-danger)}.rating-poor summary{color:#d97706}.rating-mid summary{color:var(--color-warning)}.rating-good summary{color:var(--color-accent-text)}.rating-excellent summary{color:var(--color-success)}.presence-chart-modal{display:flex;flex-direction:column;flex:1;min-height:0;gap:var(--space-2)}.presence-chart-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);margin:0;flex-shrink:0}.presence-chart{display:flex;flex-direction:column;gap:var(--space-3);flex:1;min-height:0;overflow:hidden}.presence-empty{color:var(--color-text-secondary);font-size:var(--text-sm);text-align:center;padding:var(--space-6)}.presence-legend{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-xs);color:var(--color-text-secondary);padding:0 var(--space-1);flex-shrink:0}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}.legend-dot.pov{background:var(--accent-500)}.legend-dot.present{background:var(--card-character-color)}.legend-dot.absent{background:var(--gray-200)}.presence-scroll{overflow:auto;flex:1;border:1px solid var(--color-border);border-radius:var(--radius-md)}.presence-table{border-collapse:collapse;font-size:var(--text-xs);white-space:nowrap;width:max-content;min-width:100%}.chapter-group-header{background-color:var(--gray-50);color:var(--color-text);font-weight:var(--weight-semibold);font-size:var(--text-xs);text-align:center;padding:var(--space-2) var(--space-2) var(--space-1);border-right:2px solid var(--color-border);border-bottom:3px solid var(--card-chapter-color)}.chapter-group-header.unassigned{color:var(--color-text-muted);border-bottom-color:var(--gray-300)}.scene-col-header{background-color:var(--gray-100);padding:4px 4px 0;border-right:1px solid var(--color-border);border-bottom:2px solid var(--color-border);vertical-align:bottom;width:36px;min-width:36px;max-width:36px}.scene-col-label{display:block;writing-mode:vertical-rl;transform:rotate(180deg);height:120px;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-secondary);font-weight:var(--weight-medium);font-size:10px;line-height:1.2;cursor:default}.scene-pov-chip{display:block;width:22px;height:22px;border-radius:50%;font-size:7px;font-weight:700;color:#fff;line-height:22px;text-align:center;letter-spacing:0;margin:3px auto;overflow:hidden;flex-shrink:0;cursor:default}.char-name-header,.stat-header{background:var(--gray-50);position:sticky;left:0;z-index:2;padding:var(--space-2) var(--space-3);border-right:2px solid var(--color-border);border-bottom:2px solid var(--color-border);font-weight:var(--weight-semibold);text-align:left;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.stat-header{text-align:center;min-width:44px;left:auto;position:static;cursor:help}.char-name-cell{position:sticky;left:0;background:var(--color-surface);z-index:1;padding:var(--space-2) var(--space-3);border-right:2px solid var(--color-border);border-bottom:1px solid var(--gray-100);font-weight:var(--weight-medium);color:var(--color-text);min-width:140px;white-space:nowrap}.char-dot{margin-right:4px;font-size:11px}.stat-cell{text-align:center;padding:var(--space-2) var(--space-1);border-right:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;min-width:44px}.gap-cell.gap-warning{color:#ef4444;font-weight:var(--weight-semibold)}.presence-cell{text-align:center;padding:6px 0;border-right:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);width:36px;min-width:36px;max-width:36px}.presence-cell.pov{background-color:#6366f114}.presence-cell.present{background-color:#22c55e14}.presence-cell.absent{background-color:transparent}.dot{display:inline-block;width:10px;height:10px;border-radius:50%}.dot.pov{background:var(--accent-500)}.dot.present{background:var(--card-character-color)}.dot.absent{background:var(--gray-200)}.stat-cell.clickable{cursor:pointer;color:var(--color-accent);font-weight:var(--weight-semibold);text-decoration:underline dotted;text-underline-offset:2px}.stat-cell.clickable:hover{background-color:#6366f114;color:var(--accent-600)}.stat-cell.active{background-color:#6366f11f;color:var(--accent-600)}.presence-cell.clickable{cursor:pointer}.presence-cell.clickable:hover{filter:brightness(1.15);outline:2px solid var(--color-accent);outline-offset:-2px}.legend-hint{margin-left:auto;font-size:10px;color:var(--color-text-muted);font-style:italic}.scene-popover{position:fixed;z-index:2000;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:260px;max-height:320px;display:flex;flex-direction:column;overflow:hidden}.scene-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--gray-50);flex-shrink:0}.scene-popover-header strong{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.scene-popover-count{font-size:var(--text-xs);color:var(--color-text-muted)}.scene-popover-list{list-style:none;padding:var(--space-1) 0;margin:0;overflow-y:auto;flex:1}.scene-popover-list li{display:block}.scene-popover-link{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:none;border:none;cursor:pointer;text-align:left;font-size:var(--text-sm);color:var(--color-text);transition:background-color var(--transition-fast);border-radius:0}.scene-popover-link:hover{background-color:#6366f114;color:var(--color-accent)}.scene-popover-link:hover .scene-popover-arrow{opacity:1;transform:translate(2px)}.scene-popover-index{font-size:10px;color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;width:24px}.scene-popover-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-popover-arrow{flex-shrink:0;font-size:var(--text-sm);color:var(--color-accent);opacity:0;transition:opacity var(--transition-fast),transform var(--transition-fast)}.chart-tabs{display:flex;gap:var(--space-1);flex-shrink:0;border-bottom:2px solid var(--color-border);padding-bottom:0;margin-bottom:var(--space-1)}.chart-tab{padding:var(--space-1) var(--space-4);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.chart-tab:hover{color:var(--color-text);background:var(--gray-50)}.chart-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--weight-semibold)}.cast-list{display:flex;flex-direction:column;flex:1;min-height:0;gap:var(--space-2)}.cast-filter{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0;flex-wrap:wrap}.cast-filter-label{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.cast-filter-chips{display:flex;flex-wrap:wrap;gap:var(--space-1)}.cast-filter-chip{padding:2px var(--space-2);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.cast-filter-chip:hover{border-color:var(--chip-color, var(--color-accent));color:var(--chip-color, var(--color-accent))}.cast-filter-chip.active{background:var(--chip-color, var(--color-accent));border-color:var(--chip-color, var(--color-accent));color:#fff}.cast-scroll{overflow:auto;flex:1;border:1px solid var(--color-border);border-radius:var(--radius-md)}.cast-table{border-collapse:collapse;font-size:var(--text-sm);width:100%}.cast-th{background:var(--gray-50);padding:var(--space-2) var(--space-3);border-bottom:2px solid var(--color-border);text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;position:sticky;top:0;z-index:1}.cast-th-num{width:36px;text-align:center}.cast-th-scene{min-width:180px}.cast-th-chapter{min-width:130px}.cast-th-pov{min-width:110px}.cast-th-chars{min-width:160px}.cast-th-count{width:40px;text-align:center}.cast-row{cursor:pointer;transition:background-color var(--transition-fast)}.cast-row:hover{background-color:#6366f10d}.cast-row:hover .cast-td-scene{color:var(--color-accent)}.cast-td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--gray-100);vertical-align:middle}.cast-td-num{text-align:center;color:var(--color-text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.cast-td-scene{font-weight:var(--weight-medium);color:var(--color-text);transition:color var(--transition-fast)}.cast-chapter-badge{display:inline-block;padding:1px var(--space-2);border-radius:var(--radius-full);background:var(--gray-100);color:var(--color-text-secondary);font-size:var(--text-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.cast-pov-name{font-weight:var(--weight-medium);font-size:var(--text-xs)}.cast-unassigned{color:var(--color-text-muted);font-size:var(--text-xs)}.cast-td-count{text-align:center;font-variant-numeric:tabular-nums;color:var(--color-text-secondary);font-size:var(--text-xs)}.cast-chips{display:flex;flex-wrap:wrap;gap:3px}.cast-chip{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-size:10px;font-weight:var(--weight-semibold);color:#fff;background:var(--chip-color, var(--color-text-muted));opacity:.85;transition:opacity var(--transition-fast),transform var(--transition-fast);cursor:default}.cast-chip:hover{opacity:1;transform:scale(1.15)}.cast-chip.cast-chip-pov{opacity:1;outline:2px solid var(--chip-color, var(--color-accent));outline-offset:2px}.gantt-view{display:flex;flex-direction:column;flex:1;min-height:0;gap:0;position:relative}.gantt-label-col{flex-shrink:0;width:150px;min-width:150px}.gantt-track-area{display:flex;flex:1;min-width:0}.gantt-ruler{display:flex;flex-shrink:0;border-bottom:2px solid var(--color-border);padding-bottom:0}.gantt-chapter-label{font-size:10px;font-weight:var(--weight-semibold);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:var(--space-1) var(--space-2);border-right:2px solid var(--color-border);background:var(--gray-50)}.gantt-ticks{display:flex;flex-shrink:0;border-bottom:1px solid var(--color-border)}.gantt-tick{display:flex;align-items:center;justify-content:center;border-right:1px solid var(--gray-100);height:18px;min-width:0;overflow:hidden}.gantt-tick.hovered{background:#6366f114}.gantt-tick-num{font-size:9px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.gantt-scroll{overflow-y:auto;flex:1}.gantt-row{display:flex;align-items:stretch;border-bottom:1px solid var(--gray-100);min-height:32px}.gantt-row:hover{background:var(--gray-50)}.gantt-label-col{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-right:2px solid var(--color-border)}.gantt-char-name{font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.gantt-char-count{font-size:10px;color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.gantt-cell{flex-shrink:0;height:100%;min-height:32px;border-right:1px solid var(--gray-100);box-sizing:border-box;transition:opacity var(--transition-fast)}.gantt-cell-absent{background:transparent}.gantt-cell-present{background:var(--char-color, var(--card-character-color));opacity:.55;cursor:pointer}.gantt-cell-pov{background:var(--char-color, var(--accent-500));opacity:1;cursor:pointer;position:relative}.gantt-cell-pov:after{content:"";position:absolute;top:3px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:#fff;opacity:.8}.gantt-cell-present:hover,.gantt-cell-pov:hover{opacity:1;outline:2px solid var(--char-color, var(--color-accent));outline-offset:-2px;z-index:1}.gantt-cell.col-hovered.gantt-cell-absent{background:#6366f10a}.gantt-tooltip{position:fixed;z-index:3000;background:var(--gray-900, #111);color:#fff;font-size:11px;padding:4px 10px;border-radius:var(--radius-md);white-space:nowrap;pointer-events:none;transform:translate(-50%,-100%);box-shadow:var(--shadow-lg)}.presence-row:hover .presence-cell,.presence-row:hover .stat-cell,.presence-row:hover .char-name-cell{background-color:var(--gray-50)}.presence-row:hover .presence-cell.pov{background-color:#6366f126}.presence-row:hover .presence-cell.present{background-color:#22c55e26}.ob-header{text-align:center;margin-bottom:var(--space-6, 1.5rem)}.ob-header h2{font-size:1.4rem;font-weight:700;margin:0 0 var(--space-2, .5rem);color:var(--gray-900, #111)}.ob-header p{font-size:.925rem;color:var(--gray-500, #6b7280);margin:0}.ob-choices{display:flex;flex-direction:column;gap:var(--space-3, .75rem);padding:0 var(--space-2, .5rem) var(--space-4, 1rem)}.ob-card{display:flex;flex-direction:row;align-items:center;gap:var(--space-4, 1rem);padding:var(--space-4, 1rem) var(--space-5, 1.25rem);width:100%;box-sizing:border-box;border:1.5px solid var(--gray-200, #e5e7eb);border-radius:var(--radius-lg, 12px);background:var(--white, #fff);cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s;text-align:left}.ob-card:hover{border-color:var(--color-accent, #6366f1);box-shadow:0 4px 16px #6366f11f;transform:translateY(-2px)}.ob-card-icon{font-size:2rem;line-height:1;flex-shrink:0}.ob-card-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.ob-card-title{display:block;font-size:.925rem;font-weight:600;color:var(--gray-800, #1f2937)}.ob-card-desc{display:block;font-size:.82rem;color:var(--gray-500, #6b7280);line-height:1.4}.ob-tour-backdrop,.ob-tour-shadow{position:fixed;inset:0;z-index:9000;pointer-events:none}.ob-tour-shadow-top,.ob-tour-shadow-bottom,.ob-tour-shadow-left,.ob-tour-shadow-right{position:fixed;background:#0000008c;z-index:9000;transition:all .25s ease}.ob-tour-highlight-ring{position:fixed;z-index:9001;pointer-events:none;border:2.5px solid var(--color-accent, #6366f1);border-radius:var(--radius-md, 8px);box-shadow:0 0 0 4px #6366f12e;transition:all .25s ease}.ob-tooltip{position:fixed;z-index:9100;background:var(--white, #fff);border:1px solid var(--gray-200, #e5e7eb);border-radius:var(--radius-lg, 12px);box-shadow:0 8px 32px #0000002e;padding:var(--space-4, 1rem) var(--space-5, 1.25rem);width:280px;pointer-events:all;transition:top .25s ease,left .25s ease}.ob-tooltip h3{font-size:.975rem;font-weight:700;margin:0 0 var(--space-1, .25rem);color:var(--gray-900, #111)}.ob-tooltip p{font-size:.85rem;color:var(--gray-600, #4b5563);margin:0 0 var(--space-3, .75rem);line-height:1.5}.ob-tooltip-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2, .5rem)}.ob-tooltip-counter{font-size:.78rem;color:var(--gray-400, #9ca3af)}.ob-tooltip-actions{display:flex;gap:var(--space-2, .5rem)}.ob-btn{padding:.3rem .75rem;border-radius:var(--radius-sm, 6px);font-size:.82rem;font-weight:500;cursor:pointer;border:1.5px solid var(--gray-200, #e5e7eb);background:var(--white, #fff);color:var(--gray-700, #374151);transition:background .12s,border-color .12s}.ob-btn:hover{background:var(--gray-50, #f9fafb);border-color:var(--gray-300, #d1d5db)}.ob-btn.ob-btn-primary{background:var(--color-accent, #6366f1);border-color:var(--color-accent, #6366f1);color:#fff}.ob-btn.ob-btn-primary:hover{background:var(--color-accent-hover, #4f46e5);border-color:var(--color-accent-hover, #4f46e5)}.ob-btn-skip{font-size:.78rem;color:var(--gray-400, #9ca3af);background:none;border:none;padding:.3rem .25rem;cursor:pointer}.ob-btn-skip:hover{color:var(--gray-600, #4b5563);background:none;border:none}.pg-wrapper{display:flex;flex-direction:column;height:100%;min-height:0;font-size:var(--text-sm);color:var(--color-text)}.pg-header{flex-shrink:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.pg-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.pg-header-meta{display:flex;align-items:center;gap:var(--space-2);flex:1}.pg-scene-count{font-size:var(--text-xs);color:var(--color-text-muted)}.pg-fw-badge{font-size:var(--text-xs);padding:2px var(--space-2);background:var(--color-accent);color:#fff;border-radius:var(--radius-sm);font-weight:var(--weight-medium)}.pg-close-btn{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);transition:background var(--transition-fast),color var(--transition-fast)}.pg-close-btn:hover{background:var(--gray-200);color:var(--color-text)}.pg-empty{flex:1;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;padding:var(--space-8)}.pg-table-scroll{flex:1;min-height:0;overflow:auto}.pg-table{width:100%;border-collapse:collapse;table-layout:fixed}.pg-table thead{position:sticky;top:0;z-index:2;background:var(--gray-50)}.pg-table th{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);text-align:left;border-bottom:2px solid var(--color-border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none}.pg-col-num{width:40px;min-width:40px}.pg-col-title{width:160px;min-width:120px}.pg-col-chapter,.pg-col-pov,.pg-col-location{width:110px;min-width:90px}.pg-col-plot-stage{width:130px;min-width:100px}.pg-col-draft-stage{width:110px;min-width:90px}.pg-col-tone{width:100px;min-width:80px}.pg-col-conflict{width:150px;min-width:100px}.pg-col-summary{width:200px;min-width:140px}.pg-col-wc{width:70px;min-width:60px}.pg-col-notes{width:180px;min-width:120px}.pg-row{border-bottom:1px solid var(--color-border-subtle);transition:background var(--transition-fast)}.pg-row:hover{background:var(--gray-50)}.pg-row:nth-child(2n){background:var(--gray-50)}.pg-row:nth-child(2n):hover{background:var(--gray-100)}.pg-table td{padding:var(--space-2) var(--space-3);vertical-align:middle;max-width:0}.pg-cell-readonly{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;font-variant-numeric:tabular-nums}.pg-cell-text{appearance:none;background:none;border:none;margin:0;font:inherit;color:inherit;text-align:left;display:block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:var(--radius-sm);padding:2px var(--space-1);transition:background var(--transition-fast),color var(--transition-fast);line-height:1.4}.pg-cell-text:hover{background:var(--gray-100);color:var(--color-accent)}.pg-cell-empty{color:var(--color-text-muted);font-style:italic}.pg-cell-number{text-align:right;font-variant-numeric:tabular-nums}.pg-cell-input{width:100%;box-sizing:border-box;padding:2px var(--space-2);font-size:var(--text-sm);font-family:inherit;border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-focus);outline:none}.pg-cell-input--number{text-align:right}.pg-body{flex:1;min-height:0;display:flex;overflow:hidden}.pg-body .pg-table-scroll{flex:1;min-width:0}.pg-text-panel{width:320px;flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--color-border);background:var(--color-surface)}.pg-text-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0}.pg-text-panel-titles{display:flex;flex-direction:column;gap:2px;min-width:0}.pg-text-panel-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent)}.pg-text-panel-scene{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pg-text-panel-close{flex-shrink:0;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);font-size:12px;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast)}.pg-text-panel-close:hover{background:var(--gray-200);color:var(--color-text)}.pg-text-panel-area{flex:1;resize:none;border:none;outline:none;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:inherit;color:var(--color-text);background:var(--color-surface);line-height:1.6}.pg-text-panel-area::placeholder{color:var(--color-text-muted);font-style:italic}.pg-text-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border-subtle);flex-shrink:0}.pg-text-panel-hint{font-size:10px;color:var(--color-text-muted);white-space:nowrap}.pg-text-panel-actions{display:flex;gap:var(--space-2);flex-shrink:0}.pg-text-panel-cancel{padding:var(--space-1) var(--space-3);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.pg-text-panel-cancel:hover{background:var(--gray-100);color:var(--color-text)}.pg-text-panel-save{padding:var(--space-1) var(--space-3);background:var(--color-accent);border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:#fff;cursor:pointer;transition:opacity var(--transition-fast)}.pg-text-panel-save:hover{opacity:.88}.pg-cell-text--panel:hover:after{content:" ✎";font-size:10px;opacity:.5}.pg-th-sortable{cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.pg-th-sortable:hover{color:var(--color-text-secondary);background:var(--gray-100)}.pg-th-sorted{color:var(--color-accent)!important;background:var(--accent-50, #eff6ff)!important}.pg-sort-arrow{font-style:normal;font-weight:var(--weight-bold);margin-left:2px;font-size:10px}.pg-cell-select{width:100%;box-sizing:border-box;padding:2px var(--space-1);font-size:var(--text-sm);font-family:inherit;border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-focus);outline:none;cursor:pointer}.wc-wrapper{display:flex;flex-direction:column;height:100%;min-height:0;font-size:var(--text-sm);color:var(--color-text)}.wc-header{flex-shrink:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.wc-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap}.wc-header-meta{display:flex;align-items:center;gap:var(--space-3);flex:1}.wc-total-badge{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-accent)}.wc-scene-count{font-size:var(--text-xs);color:var(--color-text-muted)}.wc-type-picker{flex-shrink:0;display:flex;gap:var(--space-1)}.wc-type-btn{display:inline-flex;align-items:center;gap:4px;padding:var(--space-1) var(--space-2);background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.wc-type-btn:hover{background:var(--gray-200);color:var(--color-text)}.wc-type-btn--active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.wc-type-btn--active:hover{background:var(--color-accent-hover, #4f46e5);border-color:var(--color-accent-hover, #4f46e5);color:#fff}.wc-type-icon{font-size:12px;line-height:1}.wc-type-label{font-size:var(--text-xs)}.wc-tabs{flex-shrink:0;display:flex;gap:var(--space-1);padding:0 var(--space-6);border-bottom:2px solid var(--color-border);background:var(--color-surface)}.wc-tab{background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-base),border-color var(--transition-base);white-space:nowrap}.wc-tab:hover{color:var(--color-text)}.wc-tab--active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--weight-semibold)}.wc-empty{flex:1;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;padding:var(--space-8);text-align:center}.wc-empty p{max-width:360px;margin:0;line-height:1.6}.wc-empty strong{font-style:normal;color:var(--color-text-secondary)}.wc-scroll{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4) var(--space-6);display:flex;flex-direction:column;gap:var(--space-2)}.wc-row{display:flex;align-items:center;gap:var(--space-3);min-height:32px}.wc-row--dimmed .wc-bar-fill{background:var(--gray-200)}.wc-row--dimmed .wc-label,.wc-row--dimmed .wc-count{color:var(--color-text-muted)}.wc-label{flex-shrink:0;width:180px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-sm);color:var(--color-text);line-height:1.4}.wc-bar-track{flex:1;height:20px;background:var(--gray-100);border-radius:var(--radius-sm);overflow:hidden}.wc-bar-fill{height:100%;background:var(--color-accent);border-radius:var(--radius-sm);transition:width .35s ease;min-width:2px}.wc-count{flex-shrink:0;width:72px;text-align:right;font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.wc-vchart-scroll{flex:1;min-height:0;overflow-x:auto;overflow-y:auto;padding:var(--space-4) var(--space-6) var(--space-2)}.wc-vchart{display:flex;align-items:flex-end;gap:var(--space-3);padding-bottom:var(--space-2);min-width:max-content}.wc-vcol-wrap{display:flex;flex-direction:column;align-items:center;width:60px;flex-shrink:0}.wc-vcol-count{font-size:10px;color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:center;height:18px;line-height:18px;white-space:nowrap}.wc-vcol-track{width:100%;background:var(--gray-100);border-radius:var(--radius-sm);display:flex;align-items:flex-end;overflow:hidden}.wc-vcol-fill{width:100%;background:var(--color-accent);border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:height .35s ease;min-height:2px}.wc-vcol-fill--zero{background:var(--gray-200)}.wc-vcol-label{writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;max-height:80px;margin-top:var(--space-2);line-height:1}.wc-svg-scroll{flex:1;min-height:0;overflow-x:auto;overflow-y:auto;padding:var(--space-4) var(--space-4) var(--space-2)}.wc-line-svg{display:block}.wc-area-fill{fill:var(--color-accent);opacity:.12}.wc-area-line{fill:none;stroke:var(--color-accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.wc-dot{fill:var(--color-accent);stroke:var(--color-surface);stroke-width:2;cursor:default}.wc-dot--zero{fill:var(--gray-300)}.wc-axis-label{font-size:10px;fill:var(--color-text-muted);font-family:inherit}.wc-axis-line{stroke:var(--color-border);stroke-width:1}.wc-grid-line{stroke:var(--color-border-subtle, var(--gray-100));stroke-width:1;stroke-dasharray:4 3}.wc-donut-wrap{flex:1;min-height:0;display:flex;align-items:flex-start;gap:var(--space-6);padding:var(--space-6);overflow-y:auto}.wc-donut-svg-wrap{flex-shrink:0}.wc-donut-total{font-size:20px;font-weight:600;fill:var(--color-text);font-family:inherit}.wc-donut-subtitle{font-size:11px;fill:var(--color-text-muted);font-family:inherit}.wc-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2)}.wc-legend-row{display:flex;align-items:center;gap:var(--space-2);min-height:24px}.wc-legend-swatch{flex-shrink:0;width:12px;height:12px;border-radius:2px}.wc-legend-name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-sm);color:var(--color-text)}.wc-legend-count{flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:right;min-width:60px}.wc-sunburst-wrap{flex:1;min-height:0;display:flex;flex-direction:row;align-items:stretch;gap:var(--space-4);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-2);overflow:hidden}.wc-sunburst-chart-area{flex:0 0 auto;align-self:center;width:min(calc(96vh - 185px),calc(100% - 220px));aspect-ratio:1 / 1;overflow:hidden}.wc-sunburst-svg{width:100%;height:100%;display:block}.wc-sunburst-wrap--no-legend{justify-content:center}.wc-sunburst-wrap--no-legend .wc-sunburst-chart-area{width:min(calc(96vh - 185px),100%)}.wc-sunburst-breakdown{position:relative;flex:1;min-width:180px;min-height:0;max-height:100%;align-self:center;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2) 0}.wc-sb-act-block{display:flex;flex-direction:column;gap:var(--space-1)}.wc-sb-act-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--gray-50);border-radius:var(--radius-sm)}.wc-sb-act-name{flex:1;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wc-sb-act-words{flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.wc-sb-chap-block{display:flex;flex-direction:column;gap:2px;padding-left:var(--space-3)}.wc-sb-chap-row{display:flex;align-items:center;gap:var(--space-2);padding:2px var(--space-1)}.wc-sb-chap-name{flex:1;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wc-sb-chap-words{flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.wc-sb-scene-row{display:flex;align-items:center;gap:var(--space-2);padding:1px var(--space-1) 1px calc(var(--space-2) + 10px)}.wc-sb-scene-dot{flex-shrink:0;width:4px;height:4px;border-radius:50%;background:var(--color-border)}.wc-sb-scene-name{flex:1;font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wc-sb-scene-words{flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.wc-legend-toggle{flex-shrink:0;align-self:center;width:18px;height:48px;padding:0;background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.wc-legend-toggle:hover{background:var(--gray-200);color:var(--color-text)}.wc-legend-toggle--hidden{margin-left:calc(-1 * var(--space-2))}.wc-sb-collapsible{cursor:pointer;user-select:none}.wc-sb-collapsible:hover{background:var(--gray-100);border-radius:var(--radius-sm)}.wc-sb-caret{flex-shrink:0;font-size:11px;color:var(--color-text-muted);width:12px;text-align:center;transition:transform var(--transition-fast);line-height:1}.wc-sb-caret--sm{font-size:10px;width:10px}.wc-sb-caret--closed{transform:rotate(-90deg)}.wc-sb-swatch{flex-shrink:0;width:12px;height:12px;border-radius:2px}.wc-sb-swatch--sm{width:8px;height:8px;border-radius:2px}.wc-scene-overlay{position:absolute;inset:0;background:var(--color-surface);border-radius:var(--radius-sm);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-md, 0 4px 16px rgba(0,0,0,.12));border:1px solid var(--color-border);z-index:10}.wc-scene-overlay-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);flex-shrink:0}.wc-scene-overlay-title{flex:1;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wc-scene-overlay-close{flex-shrink:0;background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-md);width:24px;height:24px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.wc-scene-overlay-close:hover{background:var(--gray-200);color:var(--color-text)}.wc-scene-overlay-body{flex:1;overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.wc-scene-overlay-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.wc-scene-overlay-badge{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-accent);font-variant-numeric:tabular-nums}.wc-scene-overlay-chapter{font-size:var(--text-xs);color:var(--color-text-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wc-scene-overlay-field{display:flex;flex-direction:column;gap:2px}.wc-scene-overlay-label{font-size:10px;font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.wc-scene-overlay-value{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.5}.wc-scene-overlay-pills{display:flex;flex-wrap:wrap;gap:var(--space-1)}.wc-scene-overlay-pill{font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-full, 999px);padding:2px var(--space-2);white-space:nowrap}.wc-scene-overlay-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.wc-scene-overlay-tag{font-size:10px;color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 10%,transparent);border-radius:var(--radius-sm);padding:1px var(--space-2)}.wc-sb-scene-row--clickable{cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.wc-sb-scene-row--clickable:hover{background:var(--gray-100)}.wc-sb-scene-row--hovered{background:var(--color-accent-subtle, #eff6ff)!important;outline:1px solid var(--color-accent, #6366f1);outline-offset:-1px;border-radius:var(--radius-sm)}.wc-arc-label{font-size:13px;fill:#fff;font-family:inherit;font-weight:600;pointer-events:none}.wc-ring-label{font-size:24px;fill:var(--color-text-muted);font-family:inherit;font-weight:500;pointer-events:none}.wc-sunburst-total{font-size:56px;font-weight:700;fill:var(--color-text);font-family:inherit}.wc-sunburst-sub{font-size:28px;fill:var(--color-text-muted);font-family:inherit}.cb-root{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--color-surface);font-family:var(--font-sans, system-ui, sans-serif)}.cb-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-shrink:0}.cb-header-left{display:flex;align-items:baseline;gap:var(--space-3)}.cb-title{margin:0;font-size:var(--text-lg, 1.125rem);font-weight:var(--weight-semibold, 600);color:var(--color-text)}.cb-subtitle{font-size:var(--text-sm);color:var(--color-text-muted)}.cb-flag-summary{color:#f59e0b;font-weight:var(--weight-semibold, 600)}.cb-header-right{display:flex;align-items:center;gap:var(--space-2)}.cb-filter-select{font-size:var(--text-sm);padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer}.cb-table-wrap{flex:1;overflow:auto;min-height:0}.cb-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.cb-th{position:sticky;top:0;background:var(--color-surface-raised, var(--gray-50));border-bottom:2px solid var(--color-border);padding:var(--space-2) var(--space-3);text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap;z-index:2}.cb-th--num{width:48px;text-align:right}.cb-th--flags{width:96px;text-align:center}.cb-td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-subtle, rgba(0,0,0,.06));vertical-align:middle;color:var(--color-text)}.cb-td--num{text-align:right}.cb-td--muted{color:var(--color-text-muted)}.cb-td--flags{text-align:center}.cb-td--name{min-width:180px}.cb-td--chars{min-width:160px}.cb-row:hover{background:var(--gray-50, rgba(0,0,0,.02))}.cb-row--flagged{background:#f59e0b0a}.cb-row--flagged:hover{background:#f59e0b14}.cb-scene-name{font-weight:var(--weight-medium, 500);color:var(--color-text)}.cb-cell-text{color:var(--color-text)}.cb-missing{color:var(--color-text-muted);opacity:.5}.cb-chip{display:inline-block;padding:1px 6px;border-radius:10px;font-size:11px;font-weight:var(--weight-medium);margin-left:6px;vertical-align:middle}.cb-chip--tone{background:#4755691f;color:var(--color-text-secondary, #475569)}.cb-chip--stage{background:#6366f11f;color:#6366f1}.cb-char-chip{display:inline-block;padding:2px 7px;border-radius:10px;font-size:11px;background:#7c3aed1a;color:#7c3aed;margin:1px 2px 1px 0}.cb-flags{display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:wrap}.cb-flag-icon{font-size:14px;cursor:default}.cb-ok{color:#10b981;font-weight:var(--weight-semibold)}.cb-empty-state{display:flex;align-items:center;justify-content:center;padding:var(--space-8);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}.cb-empty-state--inline{padding:var(--space-6)}.cb-legend{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-surface-raised, var(--gray-50));flex-shrink:0;flex-wrap:wrap}.cb-legend-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.cb-legend-item{display:flex;align-items:center;gap:5px;font-size:var(--text-xs);color:var(--color-text-secondary, #475569)}[data-theme=dark] .cb-th{background:var(--gray-800, #1e293b)}[data-theme=dark] .cb-row--flagged{background:#f59e0b0f}[data-theme=dark] .cb-legend{background:var(--gray-800, #1e293b)}.sr-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:600;padding:var(--space-4)}.sr-modal{width:min(920px,100%);max-height:88vh;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg, 12px);box-shadow:0 20px 60px #00000038;display:flex;flex-direction:column;overflow:hidden}.sr-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.sr-header-left{display:flex;align-items:center;gap:var(--space-3);min-width:0}.sr-header-icon{font-size:1.5rem;flex-shrink:0}.sr-title{margin:0;font-size:var(--text-lg, 1.125rem);font-weight:var(--weight-bold, 700);color:var(--color-text);line-height:1.2}.sr-subtitle{margin:2px 0 0;font-size:var(--text-xs, .75rem);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-header-right{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.sr-progress-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.sr-progress-bar{width:140px;height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden}.sr-progress-fill{height:100%;background:#10b981;border-radius:3px;transition:width .3s ease}.sr-progress-label{font-size:10px;color:var(--color-text-muted);white-space:nowrap}.sr-reset-btn,.sr-close-btn{background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-xs, .75rem);padding:var(--space-1) var(--space-2);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);white-space:nowrap}.sr-reset-btn:hover,.sr-close-btn:hover{background:var(--gray-200);color:var(--color-text)}.sr-close-btn{font-size:var(--text-sm);width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center}.sr-body{flex:1;display:flex;min-height:0;overflow:hidden}.sr-sidebar{flex-shrink:0;width:210px;border-right:1px solid var(--color-border);background:var(--gray-50, #f9fafb);display:flex;flex-direction:column;padding:var(--space-2) 0;overflow-y:auto}.sr-stage-btn{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;border-left:3px solid transparent;text-align:left;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);font-size:var(--text-xs, .75rem);color:var(--color-text-secondary)}.sr-stage-btn:hover{background:var(--gray-100);color:var(--color-text)}.sr-stage-btn--active{background:var(--color-surface);border-left-color:var(--color-accent);color:var(--color-text);font-weight:var(--weight-semibold, 600)}.sr-stage-icon{font-size:.95rem;flex-shrink:0}.sr-stage-text{flex:1;display:flex;justify-content:space-between;align-items:center;gap:var(--space-1);min-width:0}.sr-stage-name{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-stage-count{flex-shrink:0;font-size:10px;font-weight:var(--weight-semibold);background:var(--gray-200);color:var(--color-text-secondary);border-radius:9px;min-width:16px;height:16px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center}.sr-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%}.sr-dot--none{background:var(--gray-300)}.sr-dot--clean,.sr-dot--done{background:#10b981}.sr-dot--error{background:#ef4444}.sr-dot--warning{background:#f59e0b}.sr-dot--info{background:#6366f1}.sr-main{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.sr-stage-header{flex-shrink:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.sr-stage-header-icon{font-size:1.6rem;flex-shrink:0}.sr-stage-title{margin:0;font-size:var(--text-base, 1rem);font-weight:var(--weight-semibold, 600);color:var(--color-text)}.sr-stage-subtitle{margin:2px 0 0;font-size:var(--text-xs);color:var(--color-text-muted)}.sr-issues{flex:1;overflow-y:auto;padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.sr-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--color-text-muted);font-style:italic;font-size:var(--text-sm);padding:var(--space-8) var(--space-4)}.sr-empty-icon{font-size:2.5rem}.sr-resolved-divider{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:var(--space-2) 0 var(--space-1);border-top:1px solid var(--color-border);margin-top:var(--space-2)}.sr-issue{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);transition:opacity var(--transition-base)}.sr-issue--resolved{opacity:.45}.sr-issue-check{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);flex-shrink:0;cursor:pointer;padding-top:2px}.sr-checkbox{width:15px;height:15px;cursor:pointer;accent-color:#10b981;flex-shrink:0}.sr-severity-pill{display:inline-flex;align-items:center;padding:1px 6px;border-radius:8px;font-size:9px;font-weight:var(--weight-semibold);color:#fff;white-space:nowrap}.sr-issue-body{flex:1;min-width:0}.sr-issue-label{margin:0 0 3px;font-size:var(--text-sm, .875rem);font-weight:var(--weight-semibold, 600);color:var(--color-text);line-height:1.3}.sr-issue-detail{margin:0;font-size:var(--text-xs, .75rem);color:var(--color-text-secondary);line-height:1.5}.sr-go-btn{flex-shrink:0;background:none;border:1px solid var(--color-accent);color:var(--color-accent);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-2);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast);align-self:center}.sr-go-btn:hover{background:var(--color-accent);color:#fff}.sr-nav{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-surface)}.sr-nav-btn{background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-3);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.sr-nav-btn:hover:not(:disabled){background:var(--gray-200);color:var(--color-text)}.sr-nav-btn:disabled{opacity:.35;cursor:not-allowed}.sr-nav-btn--next{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.sr-nav-btn--next:hover:not(:disabled){background:var(--color-accent-hover, #4f46e5);border-color:var(--color-accent-hover, #4f46e5)}.sr-nav-pos{font-size:var(--text-xs);color:var(--color-text-muted)}.pc-wrap{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-2) 0;width:100%}.pc-summary{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pc-summary-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-full, 9999px);color:#fff;font-size:var(--text-xs, .75rem);font-weight:var(--weight-semibold, 600)}.pc-summary-nums{font-size:var(--text-sm, .875rem);font-weight:var(--weight-bold, 700)}.pc-summary-pct{font-size:10px;font-weight:var(--weight-medium, 500);opacity:.85}.pc-section-label{margin:0 0 var(--space-2);font-size:var(--text-xs, .75rem);font-weight:var(--weight-semibold, 600);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.pc-rhythm-wrap{width:100%}.pc-rhythm{display:flex;flex-wrap:wrap;gap:3px;padding:var(--space-2);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);min-height:32px;align-items:center}.pc-rhythm-block{width:18px;height:18px;border-radius:3px;border:none;cursor:pointer;opacity:.85;transition:opacity var(--transition-fast),transform var(--transition-fast);padding:0;flex-shrink:0}.pc-rhythm-block:hover{opacity:1;transform:scaleY(1.25)}.pc-list{width:100%}.pc-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-left:3px solid var(--gray-300);background:var(--gray-50);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-bottom:var(--space-1);transition:background var(--transition-fast)}.pc-row:hover{background:var(--gray-100)}.pc-row-num{flex-shrink:0;width:20px;font-size:10px;font-weight:var(--weight-bold, 700);color:var(--color-text-muted);text-align:right}.pc-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.pc-row-name{font-size:var(--text-sm, .875rem);font-weight:var(--weight-medium, 500);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-row-chapter{font-size:10px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-row-badge{flex-shrink:0;display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full, 9999px);font-size:9px;font-weight:var(--weight-bold, 700);letter-spacing:.04em;color:#fff;white-space:nowrap}@media (max-width: 640px){.sr-sidebar{width:160px}.sr-stage-name{font-size:10px}.sr-header-right{gap:var(--space-2)}.sr-progress-bar{width:90px}}.fi-root{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--color-surface)}.modal-content:has(.fi-root) .modal-close-button{background:#ffffff26;border-color:#ffffff59;color:#fff!important}.modal-content:has(.fi-root) .modal-close-button:hover{background:#ffffff4d}.fi-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 14px;background:var(--color-accent, #6c63ff);color:#fff;flex-shrink:0}.fi-header-left{display:flex;align-items:center;gap:10px}.fi-header-icon{font-size:24px}.fi-header-title{font-weight:700;font-size:16px;line-height:1.2}.fi-header-sub{font-size:12px;opacity:.85;margin-top:1px}.fi-header-actions{display:flex;align-items:center;gap:8px;padding-right:40px}.fi-header .fi-submit-btn{background:none;border:none;color:#fff!important;font-size:13px;font-weight:600;padding:6px 14px;cursor:pointer;transition:opacity .12s;white-space:nowrap;opacity:.85}.fi-header .fi-submit-btn:hover{opacity:1}.fi-form{padding:14px 20px 10px;border-bottom:1px solid var(--color-border, #e0e0e8);background:var(--color-surface-raised, #f8f8fc);flex-shrink:0;display:flex;flex-direction:column;gap:8px}[data-theme=dark] .fi-form{background:var(--color-surface-raised, #1e1e2e)}.fi-form-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted, #888)}.fi-form-input,.fi-form-textarea{width:100%;box-sizing:border-box;border:1px solid var(--color-border, #d0d0d8);border-radius:8px;padding:8px 12px;font-size:13px;font-family:inherit;background:var(--color-surface, #fff);color:var(--color-text, #1a1a2e);outline:none;transition:border-color .12s;resize:none}.fi-form-input:focus,.fi-form-textarea:focus{border-color:var(--color-accent, #6c63ff)}.fi-form-footer{display:flex;justify-content:flex-end}.fi-form-submit{background:var(--color-accent, #6c63ff);color:#fff;border:none;border-radius:8px;padding:7px 18px;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s,transform .1s}.fi-form-submit:hover:not(:disabled){background:var(--color-accent-hover, #574fd6);transform:scale(1.03)}.fi-form-submit:disabled{opacity:.45;cursor:not-allowed}.fi-list{flex:1;overflow-y:auto;padding:12px 20px;display:flex;flex-direction:column;gap:10px}.fi-state{text-align:center;margin:auto;padding:40px 20px;color:var(--color-text-muted, #888);font-size:14px}.fi-state--error{color:var(--color-danger, #e53e3e)}.fi-state-icon{display:block;font-size:40px;margin-bottom:12px}.fi-state p{margin:4px 0}.fi-card{display:flex;gap:0;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e0e0e8);border-radius:10px;overflow:hidden;transition:box-shadow .15s,border-color .15s}.fi-card:hover{box-shadow:0 2px 8px #00000014;border-color:var(--color-accent, #6c63ff)}.fi-card--expanded{border-color:var(--color-accent, #6c63ff);box-shadow:0 2px 12px #6c63ff1f}[data-theme=dark] .fi-card{background:var(--color-surface, #1a1a2e)}.fi-vote-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:14px 12px 14px 14px;gap:2px;flex-shrink:0;min-width:52px;border-right:1px solid var(--color-border, #e0e0e8);background:var(--color-surface-raised, #fafafa)}[data-theme=dark] .fi-vote-col{background:var(--color-surface-raised, #1e1e2e)}.fi-vote-btn{background:none;border:1px solid var(--color-border, #d0d0d8);border-radius:8px;font-size:18px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,border-color .12s,transform .1s;flex-shrink:0}.fi-vote-btn:hover{background:#6c63ff14;border-color:var(--color-accent, #6c63ff);transform:scale(1.1)}.fi-vote-btn--active{background:#6c63ff1f;border-color:var(--color-accent, #6c63ff)}.fi-vote-count{font-size:13px;font-weight:700;color:var(--color-text, #1a1a2e);line-height:1}.fi-card-right{flex:1;display:flex;flex-direction:column;min-width:0}.fi-card-body{padding:12px 16px;cursor:pointer}.fi-card-header{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}.fi-card-title{margin:0;font-size:14px;font-weight:600;color:var(--color-text, #1a1a2e);line-height:1.3}.fi-card-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:11px;color:var(--color-text-muted, #888)}.fi-card-dot{opacity:.5}.fi-card-comments{white-space:nowrap}.fi-card-expand-hint{margin-left:auto;font-size:10px;color:var(--color-accent, #6c63ff);opacity:.7;white-space:nowrap}.fi-card-desc{margin:0;font-size:13px;color:var(--color-text-secondary, #555);line-height:1.5;white-space:pre-wrap;word-break:break-word}[data-theme=dark] .fi-card-desc{color:var(--color-text-secondary, #aaa)}.fi-comments{border-top:1px solid var(--color-border, #e0e0e8);padding:10px 16px 12px;display:flex;flex-direction:column;gap:8px;background:var(--color-surface-raised, #fafafa);width:100%;box-sizing:border-box}[data-theme=dark] .fi-comments{background:var(--color-surface-raised, #1e1e2e)}.fi-comments-loading,.fi-comments-empty{font-size:12px;color:var(--color-text-muted, #888);font-style:italic;margin:0}.fi-comment{display:grid;grid-template-columns:auto auto 1fr;grid-template-rows:auto auto;column-gap:6px;row-gap:2px}.fi-comment-author{font-size:12px;font-weight:600;color:var(--color-text, #1a1a2e);grid-column:1;grid-row:1}.fi-comment-date{font-size:11px;color:var(--color-text-muted, #888);grid-column:2;grid-row:1;align-self:center}.fi-comment-text{margin:0;font-size:13px;color:var(--color-text, #1a1a2e);line-height:1.5;grid-column:1 / -1;grid-row:2;white-space:pre-wrap;word-break:break-word}.fi-add-comment{display:flex;gap:6px;align-items:flex-end;margin-top:4px}.fi-comment-input{flex:1;resize:none;border:1px solid var(--color-border, #d0d0d8);border-radius:8px;padding:7px 10px;font-size:12px;font-family:inherit;line-height:1.4;background:var(--color-surface, #fff);color:var(--color-text, #1a1a2e);outline:none;transition:border-color .12s}.fi-comment-input:focus{border-color:var(--color-accent, #6c63ff)}.fi-comment-input:disabled{opacity:.6}.fi-comment-submit{background:var(--color-accent, #6c63ff);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0;transition:background .12s;height:34px}.fi-comment-submit:hover:not(:disabled){background:var(--color-accent-hover, #574fd6)}.fi-comment-submit:disabled{opacity:.4;cursor:not-allowed}.vh-root{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--color-surface)}.vh-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 14px;background:var(--color-accent, #6c63ff);color:#fff;flex-shrink:0}.vh-header-left{display:flex;align-items:center;gap:10px}.vh-header-icon{font-size:24px}.vh-header-title{font-weight:700;font-size:16px;line-height:1.2}.vh-header-sub{font-size:12px;opacity:.85;margin-top:1px}.vh-header-wc{opacity:.7}.vh-header-actions{display:flex;align-items:center;padding-right:40px}.vh-header .vh-header-save-btn{background:none;border:none;color:#fff!important;font-size:13px;font-weight:600;padding:6px 14px;cursor:pointer;transition:opacity .12s;white-space:nowrap;opacity:.85}.vh-header .vh-header-save-btn:hover{opacity:1}.modal-content:has(.vh-root) .modal-close-button{background:#ffffff26;border-color:#ffffff59;color:#fff!important}.modal-content:has(.vh-root) .modal-close-button:hover{background:#ffffff4d}.vh-save-form{padding:12px 20px 10px;border-bottom:1px solid var(--color-border, #e0e0e8);background:var(--color-surface-raised, #f8f8fc);flex-shrink:0;display:flex;flex-direction:column;gap:8px}[data-theme=dark] .vh-save-form{background:var(--color-surface-raised, #1e1e2e)}.vh-save-input{width:100%;box-sizing:border-box;border:1px solid var(--color-border, #d0d0d8);border-radius:8px;padding:8px 12px;font-size:13px;font-family:inherit;background:var(--color-surface, #fff);color:var(--color-text, #1a1a2e);outline:none;transition:border-color .12s}.vh-save-input:focus{border-color:var(--color-accent, #6c63ff)}.vh-save-footer{display:flex;justify-content:flex-end;gap:8px}.vh-save-cancel{background:none;border:1px solid var(--color-border, #d0d0d8);border-radius:8px;color:var(--color-text-muted, #888);font-size:13px;padding:6px 14px;cursor:pointer}.vh-save-submit{background:var(--color-accent, #6c63ff);color:#fff;border:none;border-radius:8px;padding:6px 18px;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s}.vh-save-submit:hover:not(:disabled){background:var(--color-accent-hover, #574fd6)}.vh-save-submit:disabled,.vh-save-cancel:disabled{opacity:.45;cursor:not-allowed}.vh-list{flex:1;overflow-y:auto;padding:10px 20px;display:flex;flex-direction:column;gap:8px}.vh-state{text-align:center;margin:auto;padding:40px 20px;color:var(--color-text-muted, #888);font-size:14px}.vh-state--error{color:var(--color-danger, #e53e3e)}.vh-state-icon{display:block;font-size:40px;margin-bottom:12px}.vh-state p{margin:4px 0}.vh-row{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e0e0e8);border-radius:10px;overflow:hidden;transition:box-shadow .15s,border-color .15s;flex-shrink:0}.vh-row:hover{box-shadow:0 2px 8px #00000014;border-color:var(--color-accent, #6c63ff)}.vh-row--expanded{border-color:var(--color-accent, #6c63ff);box-shadow:0 2px 12px #6c63ff1f}[data-theme=dark] .vh-row{background:var(--color-surface, #1a1a2e)}.vh-row-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;gap:8px}.vh-row-left{display:flex;flex-direction:column;gap:3px;min-width:0}.vh-row-label{font-size:14px;font-weight:600;color:var(--color-text, #1a1a2e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vh-row-label--auto{font-weight:400;color:var(--color-text-muted, #888)}.vh-row-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:11px;color:var(--color-text-muted, #888)}.vh-dot{opacity:.5}.vh-diff{font-size:11px;font-weight:600;border-radius:4px;padding:1px 5px}.vh-diff--pos{background:#48bb7826;color:#276749}[data-theme=dark] .vh-diff--pos{color:#68d391}.vh-diff--neg{background:#f565651f;color:#c53030}[data-theme=dark] .vh-diff--neg{color:#fc8181}.vh-diff--zero{background:#a0a0b426;color:var(--color-text-muted, #888)}.vh-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.vh-icon-btn{background:none;border:none;cursor:pointer;font-size:15px;opacity:.45;padding:2px 4px;border-radius:4px;transition:opacity .12s,background .12s}.vh-icon-btn:hover{opacity:1;background:#e53e3e1a}.vh-expand-hint{font-size:11px;color:var(--color-accent, #6c63ff);opacity:.7}.vh-preview{padding:12px 14px 14px;border-top:1px solid var(--color-border, #e0e0e8);background:var(--color-surface-raised, #fafafa);display:flex;flex-direction:column;gap:8px}[data-theme=dark] .vh-preview{background:var(--color-surface-raised, #1e1e2e)}.vh-preview-state{padding:10px 14px;font-size:12px;color:var(--color-text-muted, #888);font-style:italic;margin:0}.vh-preview-state--error{color:var(--color-danger, #e53e3e)}.vh-preview-title{font-size:14px;font-weight:700;color:var(--color-text, #1a1a2e)}.vh-preview-desc{margin:0;font-size:12px;color:var(--color-text-secondary, #555);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.vh-preview-scenes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto}.vh-preview-scene{display:flex;flex-direction:column;gap:1px;padding:5px 8px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e8e8f0);border-radius:6px;font-size:12px}[data-theme=dark] .vh-preview-scene{background:var(--color-surface, #1a1a2e)}.vh-preview-scene-name{font-weight:600;color:var(--color-text, #1a1a2e)}.vh-preview-scene-desc{color:var(--color-text-muted, #888);line-height:1.4}.vh-restore-btn{align-self:flex-end;background:var(--color-accent, #6c63ff);color:#fff;border:none;border-radius:8px;padding:7px 16px;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s;margin-top:4px}.vh-restore-btn:hover{background:var(--color-accent-hover, #574fd6)}.collab-modal{min-width:480px;max-width:600px;padding:4px 0 8px}.collab-title{font-size:1.2rem;font-weight:700;margin:0 0 6px;color:var(--text-primary, #1a1a1a)}.collab-subtitle{font-size:.82rem;color:var(--text-secondary, #666);margin:0 0 20px;line-height:1.45}.collab-invite-form{margin-bottom:20px}.collab-invite-row{display:flex;gap:8px;align-items:center}.collab-email-input{flex:1;padding:7px 10px;border:1px solid var(--border, #ccc);border-radius:6px;font-size:.87rem;background:var(--input-bg, #fff);color:var(--text-primary, #1a1a1a);outline:none;transition:border-color .15s}.collab-email-input:focus{border-color:var(--accent, #4a90d9)}.collab-role-select{padding:7px 8px;border:1px solid var(--border, #ccc);border-radius:6px;font-size:.85rem;background:var(--input-bg, #fff);color:var(--text-primary, #1a1a1a);cursor:pointer;outline:none}.collab-invite-btn{padding:7px 16px;background:var(--accent, #4a90d9);color:#fff;border:none;border-radius:6px;font-size:.87rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.collab-invite-btn:hover:not(:disabled){background:var(--accent-hover, #3a7bc8)}.collab-invite-btn:disabled{opacity:.6;cursor:not-allowed}.collab-msg{font-size:.8rem;margin:6px 0 0;padding:4px 8px;border-radius:4px}.collab-msg--error{color:#c0392b;background:#fdf0ee}.collab-msg--success{color:#27ae60;background:#edfbf4}.collab-members{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto}.collab-loading,.collab-empty{font-size:.85rem;color:var(--text-secondary, #777);padding:12px 0}.collab-member-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;background:var(--card-bg, #f9f9f9);border:1px solid var(--border, #e5e5e5)}.collab-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent, #4a90d9);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex-shrink:0}.collab-member-info{flex:1;display:flex;flex-direction:column;min-width:0}.collab-member-name{font-size:.88rem;font-weight:600;color:var(--text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collab-member-email{font-size:.76rem;color:var(--text-secondary, #888);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collab-role-badge{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:12px;text-transform:capitalize;flex-shrink:0}.collab-role-badge--editor{background:#eaf4ff;color:#2176ae}.collab-role-badge--viewer{background:#f0f0f0;color:#555}.collab-role-badge--owner{background:#fff4e5;color:#b87333}.collab-member-block{border-radius:8px;border:1px solid var(--border, #e5e5e5);overflow:hidden}.collab-member-block .collab-member-row{border-radius:0;border:none}.collab-content-btn{background:none;border:1px solid var(--border, #ccc);border-radius:5px;color:var(--text-secondary, #666);font-size:.76rem;padding:3px 8px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s,color .12s,border-color .12s}.collab-content-btn:hover,.collab-content-btn--open{background:var(--accent, #4a90d9);color:#fff;border-color:var(--accent, #4a90d9)}.collab-remove-btn{background:none;border:none;color:var(--text-secondary, #aaa);font-size:.85rem;cursor:pointer;padding:2px 4px;border-radius:4px;line-height:1;flex-shrink:0;transition:color .15s,background .15s}.collab-remove-btn:hover:not(:disabled){color:#c0392b;background:#fdf0ee}.collab-remove-btn:disabled{opacity:.4;cursor:not-allowed}.cap-panel{background:var(--card-bg, #f5f7fa);border-top:1px solid var(--border, #e0e0e0);padding:10px 12px 12px;display:flex;flex-direction:column;gap:12px;max-height:280px;overflow-y:auto}.cap-empty{font-size:.82rem;color:var(--text-secondary, #999);padding:8px 12px 10px;background:var(--card-bg, #f5f7fa);border-top:1px solid var(--border, #e0e0e0);margin:0}.cap-project-group{display:flex;flex-direction:column;gap:4px}.cap-project-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #999);margin-bottom:2px}.cap-series-label{font-size:.7rem;font-weight:600;color:var(--text-secondary, #aaa);margin-top:4px;margin-bottom:2px;padding-left:2px}.cap-item{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:5px;background:var(--input-bg, #fff);border:1px solid var(--border, #e8e8e8)}.cap-item-name{flex:1;font-size:.83rem;color:var(--text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cap-item-error{font-size:.74rem;color:#c0392b;white-space:nowrap}.cap-toggle{flex-shrink:0;padding:3px 10px;border-radius:4px;font-size:.76rem;font-weight:600;cursor:pointer;border:1px solid var(--border, #ccc);background:none;color:var(--text-secondary, #666);transition:background .12s,color .12s,border-color .12s;min-width:82px;text-align:center}.cap-toggle:hover:not(:disabled){background:var(--accent, #4a90d9);color:#fff;border-color:var(--accent, #4a90d9)}.cap-toggle--on{background:#eaf4ff;color:#2176ae;border-color:#b3d4f0}.cap-toggle--on:hover:not(:disabled){background:#fdf0ee;color:#c0392b;border-color:#f5c6be}.cap-toggle:disabled{opacity:.5;cursor:not-allowed}.presence-chips{display:flex;align-items:center;flex-direction:row-reverse}.presence-chip{position:relative;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;cursor:default;flex-shrink:0;margin-left:-6px;border:2px solid var(--color-bg, #fff);transition:transform .15s,z-index 0s;user-select:none}.presence-chip:hover{transform:translateY(-2px);z-index:10}.presence-chip--self{border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 2px var(--chip-color, #888)}.presence-tooltip{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);width:170px;background:#1e293b;color:#f1f5f9;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.4;box-shadow:0 4px 16px #0000004d;pointer-events:none;white-space:normal;z-index:100}.presence-tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#1e293b}.presence-chip:hover .presence-tooltip{display:block}.presence-tooltip-name{font-weight:700;font-size:13px;color:#fff;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.presence-tooltip-email{color:#94a3b8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px}.presence-tooltip-role{display:inline-block;padding:1px 7px;border-radius:99px;font-size:10px;font-weight:600;text-transform:capitalize;background:#ffffff26;color:#e2e8f0}.presence-tooltip-role--administrator{background:#7c3aed33;color:#c4b5fd}.presence-tooltip-role--author{background:#0369a133;color:#7dd3fc}.presence-tooltip-role--editor{background:#15803d33;color:#86efac}[data-theme=dark] .presence-tooltip{background:#0f172a;border:1px solid #334155}[data-theme=dark] .presence-tooltip:after{border-bottom-color:#0f172a}.sfs-empty{opacity:.6}.sfs-select{margin-left:var(--space-2)}.story-view{display:flex;flex-direction:column;height:100vh;overflow:hidden;box-sizing:border-box}.main-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.layout-container{display:flex;flex:1;overflow:hidden}.canvas-column{display:flex;flex-direction:column;flex:1;overflow:hidden;min-width:0}.story-view-readonly-banner{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:var(--space-3, 12px);padding:var(--space-2, 8px) var(--space-3, 12px);background:var(--amber-50, #fffbeb);color:var(--amber-800, #92400e);border-bottom:1px solid var(--amber-200, #fde68a);font-size:.9rem;font-weight:500;text-align:center}.story-view-editing-banner{background:var(--blue-50, #eef5ff);color:var(--blue-800, #1e40af);border-bottom-color:var(--blue-200, #c5dcff)}.svb-actions{display:inline-flex;gap:var(--space-2, 8px)}.svb-btn{padding:2px var(--space-3, 12px);background:var(--blue-600, #2563eb);color:#fff;border:1px solid transparent;border-radius:var(--radius-sm, 4px);font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap}.svb-btn:hover:not(:disabled){background:var(--blue-700, #1d4ed8)}.svb-btn:disabled{opacity:.6;cursor:not-allowed}.svb-btn--ghost{background:transparent;color:var(--blue-800, #1e40af);border-color:var(--blue-300, #93c5fd)}.svb-btn--ghost:hover:not(:disabled){background:var(--blue-100, #dbeafe)}.canvas-container{flex:1;overflow:auto;background-color:var(--gray-100);position:relative}.resizable-sidebar{display:flex;flex-direction:column;background-color:var(--color-surface);border-right:1px solid var(--color-border);position:relative;flex-shrink:0;min-width:180px;max-width:600px;overflow:hidden}.sidebar-resizer{position:absolute;top:0;right:0;width:4px;height:100%;cursor:ew-resize;background-color:transparent;z-index:10;transition:background-color var(--transition-base)}.sidebar-resizer:hover{background-color:var(--color-accent);opacity:.4}.sidebar-resizer:active{background-color:var(--color-accent);opacity:.7}.coach-sidebar{display:flex;flex-direction:column;background-color:var(--color-surface);border-left:1px solid var(--color-border);position:relative;flex-shrink:0;min-width:280px;max-width:640px;overflow:hidden}.coach-sidebar-resizer{position:absolute;top:0;left:0;width:4px;height:100%;cursor:ew-resize;background-color:transparent;z-index:10;transition:background-color var(--transition-base)}.coach-sidebar-resizer:hover{background-color:var(--color-accent);opacity:.4}.coach-sidebar-resizer:active{background-color:var(--color-accent);opacity:.7}.story-view-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);user-select:none}.canvas-empty-prompt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6);text-align:center;color:var(--color-text-secondary);pointer-events:none;user-select:none}.canvas-empty-prompt .cep-icon{font-size:2.5rem;line-height:1}.canvas-empty-prompt .cep-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.canvas-empty-prompt .cep-body{max-width:38ch;font-size:var(--text-sm);line-height:1.5}.canvas-mobile-notice{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-3);padding:var(--space-6);text-align:center;color:var(--color-text-secondary);user-select:none}.canvas-mobile-notice .cmn-icon{font-size:2.5rem;line-height:1}.canvas-mobile-notice .cmn-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.canvas-mobile-notice .cmn-body{max-width:34ch;font-size:var(--text-sm);line-height:1.5}@media (max-width: 768px){.resizable-sidebar--drawer{position:fixed;top:var(--toolbar-height);left:0;bottom:0;width:min(85vw,320px);max-width:85vw;z-index:900;transform:translate(-100%);transition:transform var(--transition-slow);box-shadow:var(--shadow-xl)}.resizable-sidebar--drawer-open{transform:translate(0)}.sidebar-drawer-backdrop{position:fixed;top:var(--toolbar-height);left:0;right:0;bottom:0;width:auto;margin:0;padding:0;border:none;z-index:899;background:#0f172a73;cursor:pointer;-webkit-tap-highlight-color:transparent}}@media (max-width: 768px) and (prefers-reduced-motion: reduce){.resizable-sidebar--drawer{transition:none}}.base-card{position:absolute;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:280px;max-width:280px;width:280px;box-sizing:border-box;transition:box-shadow var(--transition-base),border-color var(--transition-base),opacity var(--transition-slow),transform var(--transition-base);overflow:hidden}.base-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.base-card:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.base-card.dragging{box-shadow:0 12px 40px #0000002e,0 4px 12px #0000001f;transform:translateY(-4px) scale(1.01);cursor:grabbing;z-index:1000}.base-card.dimmed{opacity:.38;pointer-events:none}.base-card.highlighted{outline:3px solid var(--color-accent);outline-offset:1px;box-shadow:var(--shadow-md);opacity:1;pointer-events:auto;z-index:500}.character-card.highlighted{outline-color:var(--card-character-color)}.scene-card.highlighted{outline-color:var(--card-scene-color)}.chapter-card.highlighted{outline-color:var(--card-chapter-color)}.location-card.highlighted{outline-color:var(--card-location-color)}.story-arc-card.highlighted{outline-color:var(--card-arc-color)}.item-card.highlighted{outline-color:var(--card-item-color)}.plot-point-card.highlighted{outline-color:var(--card-plot-point-color)}.scenebeat-card.highlighted{outline-color:var(--card-scenebeat-color)}.glossary-term-card.highlighted{outline-color:var(--card-glossary-color)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:1px solid rgba(0,0,0,.08)}.card-title{flex:1;min-width:0}.card-title strong{display:block;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-inverted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text}.card-title input{width:100%;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-inverted);background:#fff3;border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-xs);padding:2px var(--space-1);outline:none}.card-header-buttons{display:flex;align-items:center;gap:2px;flex-shrink:0}.card-header-buttons .icon-button{color:#ffffffb3;font-size:13px;padding:3px 4px;border-radius:var(--radius-xs);transition:background-color var(--transition-fast),color var(--transition-fast)}.card-header-buttons .icon-button:hover{background-color:#ffffff26;color:#fff}.card-header-buttons .icon-button--active{background-color:#fff3;color:#fff}.character-card .card-header{background-color:var(--card-character-color)}.scene-card .card-header{background-color:var(--card-scene-color)}.chapter-card .card-header{background-color:var(--card-chapter-color)}.location-card .card-header{background-color:var(--card-location-color)}.story-arc-card .card-header{background-color:var(--card-arc-color)}.item-card .card-header{background-color:var(--card-item-color)}.plot-point-card .card-header{background-color:var(--card-plot-point-color)}.scenebeat-card .card-header{background-color:var(--card-scenebeat-color)}.glossary-term-card .card-header{background-color:var(--card-glossary-color)}.card-body{background-color:var(--color-surface);border-radius:0 0 var(--radius-lg) var(--radius-lg);min-height:var(--space-6)}.card-body>*:not(.card-content){padding:var(--space-2) var(--space-3)}.card-content{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)!important;border-top:1px solid var(--color-border-subtle)}.field{display:flex;flex-direction:column;gap:var(--space-1);width:100%}.field label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.field input,.field textarea,.field select{font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--gray-50);color:var(--color-text);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);background-color:var(--color-surface);outline:none}.inline-field{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.inline-field label{font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;color:var(--color-text-secondary);flex-shrink:0}.base-card.compact{width:200px;min-width:200px;max-width:200px}.base-card.compact .card-header{padding:var(--space-1) var(--space-2) var(--space-1) var(--space-2)}.base-card.compact .card-title strong{font-size:11px}.base-card.compact .card-body>*:not(.card-content){padding:var(--space-1) var(--space-2)}.base-card.compact .chapter-name-label,.base-card.compact .scene-pov-label,.base-card.compact .story-arc-label,.base-card.compact .draft-stage-label,.base-card.compact .location-label,.base-card.compact .time-of-day-label,.base-card.compact .plotbeat-label{display:none}.base-card .card-header-buttons .icon-button.bc-comment-toggle{position:relative}.bc-zctx-menu{position:fixed;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:3000;padding:3px 0;min-width:140px}.bc-zctx-item{display:block;width:100%;padding:6px 12px;background:none;border:none;text-align:left;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;white-space:nowrap}.bc-zctx-item:hover{background:var(--gray-100)}.bc-zctx-item--danger{color:var(--color-danger)}.bc-zctx-item--danger:hover{background:#ef444414}.bc-zctx-sep{height:1px;background:var(--color-border);margin:3px 0}.cp-panel{position:fixed;top:48px;right:0;width:360px;height:calc(100vh - 48px);background:var(--color-surface);border-left:1px solid var(--color-border);box-shadow:-4px 0 16px #00000014;display:flex;flex-direction:column;z-index:1300;font-size:var(--text-sm);color:var(--color-text)}.cp-panel-header{flex-shrink:0;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.cp-panel-title{flex:1;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cp-panel-subtitle{font-weight:var(--weight-normal);color:var(--color-text-muted)}.cp-close-btn{flex-shrink:0;background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-sm);width:24px;height:24px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.cp-close-btn:hover{background:var(--gray-200);color:var(--color-text)}.cp-thread{flex:1;overflow-y:auto;padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.cp-empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-muted);font-style:italic;font-size:var(--text-sm)}.cp-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:var(--weight-semibold);flex-shrink:0;line-height:1}.cp-comment{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md)}.cp-comment-header{display:flex;align-items:flex-start;gap:var(--space-2)}.cp-comment-meta{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.cp-comment-author{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-ts{font-size:10px;color:var(--color-text-muted);white-space:nowrap}.cp-comment-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.cp-comment-text{margin:0;font-size:var(--text-sm);color:var(--color-text);line-height:1.55;white-space:pre-wrap;word-break:break-word}.cp-replies{display:flex;flex-direction:column;gap:var(--space-2);padding-left:var(--space-4);border-left:2px solid var(--color-border);margin-left:calc(var(--space-2) + 13px)}.cp-reply{display:flex;align-items:flex-start;gap:var(--space-2)}.cp-reply-body{flex:1;min-width:0}.cp-reply-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.cp-reply-author{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text)}.cp-reply-text{margin:2px 0 0;font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.5;white-space:pre-wrap;word-break:break-word}.cp-reply-compose{display:flex;flex-direction:column;gap:var(--space-2);padding-left:calc(var(--space-4) + 2px);margin-left:calc(var(--space-2) + 13px)}.cp-reply-compose-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.cp-action-btn{background:none;border:none;padding:2px var(--space-1);font-size:var(--text-xs);color:var(--color-accent);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.cp-action-btn:hover{background:var(--gray-100)}.cp-delete-btn{background:none;border:none;padding:2px var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);line-height:1;transition:background var(--transition-fast),color var(--transition-fast)}.cp-delete-btn:hover{background:var(--gray-100);color:var(--color-danger, #ef4444)}.cp-textarea{width:100%;box-sizing:border-box;resize:vertical;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-family:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition-fast);line-height:1.5}.cp-textarea:focus{border-color:var(--color-accent)}.cp-btn{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.cp-btn--primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.cp-btn--primary:hover:not(:disabled){background:var(--color-accent-hover, #4f46e5);border-color:var(--color-accent-hover, #4f46e5)}.cp-btn--primary:disabled{opacity:.45;cursor:not-allowed}.cp-btn--ghost{background:var(--gray-100);color:var(--color-text-secondary);border-color:var(--color-border)}.cp-btn--ghost:hover{background:var(--gray-200);color:var(--color-text)}.cp-comment-quote{appearance:none;border:none;font-family:inherit;font-weight:inherit;text-align:left;width:100%;margin:0;padding:var(--space-2) var(--space-3);background:var(--gray-100);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-secondary);font-style:italic;line-height:1.5;white-space:pre-wrap;word-break:break-word;cursor:pointer;transition:background var(--transition-fast);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.cp-comment-quote:hover{background:#6366f114}.cp-compose-quote-wrap{display:flex;align-items:flex-start;gap:var(--space-1)}.cp-compose-quote{flex:1;margin:0;padding:var(--space-2) var(--space-3);background:var(--gray-100);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-secondary);font-style:italic;line-height:1.5;white-space:pre-wrap;word-break:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.cp-compose-quote-clear{flex-shrink:0;background:none;border:none;padding:2px 4px;font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);line-height:1;transition:color var(--transition-fast),background var(--transition-fast);margin-top:2px}.cp-compose-quote-clear:hover{color:var(--color-danger, #ef4444);background:var(--gray-100)}.cp-compose{flex-shrink:0;display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-surface)}.cp-compose-right{flex:1;display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.cp-compose-actions{display:flex;justify-content:flex-end}.cp-author-hint{flex-shrink:0;padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;font-style:italic}.cp-badge{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:14px;padding:0 3px;background:var(--color-accent);color:#fff;border-radius:7px;font-size:9px;font-weight:var(--weight-semibold);line-height:1;vertical-align:middle;margin-left:2px}.cp-tabs{flex-shrink:0;display:flex;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.cp-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.cp-tab:hover{color:var(--color-text);background:var(--gray-50)}.cp-tab--active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--weight-semibold)}.cp-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:14px;padding:0 3px;background:var(--gray-200);color:var(--color-text-secondary);border-radius:7px;font-size:9px;font-weight:var(--weight-semibold);line-height:1}.cp-tab-badge--pending{background:#f59e0b;color:#fff}.cp-suggestions-pane{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:0}.cp-suggestion-section{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.cp-suggestion-section--resolved{opacity:.7;border-top:1px solid var(--color-border)}.cp-suggestion-section-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-1)}.cp-suggestion-section-label--muted{opacity:.7}.cp-suggestion{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:opacity var(--transition-base)}.cp-suggestion--accepted{border-color:#10b981;background:#10b9810a;opacity:.75}.cp-suggestion--dismissed{opacity:.45}.cp-suggestion-header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.cp-suggestion-author{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-suggestion-type{display:inline-flex;align-items:center;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:var(--weight-semibold);color:#fff;text-transform:capitalize;flex-shrink:0}.cp-suggestion-quote{margin:0;padding:var(--space-2) var(--space-3);background:var(--gray-100);border-left:3px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-secondary);font-style:italic;line-height:1.5;white-space:pre-wrap;word-break:break-word}.cp-suggestion-text{margin:0;font-size:var(--text-sm);color:var(--color-text);line-height:1.55;white-space:pre-wrap;word-break:break-word}.cp-suggestion-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.cp-btn--accept{background:#10b9811a;color:#059669;border-color:#10b9814d}.cp-btn--accept:hover{background:#10b98133}.cp-btn--dismiss{background:var(--gray-100);color:var(--color-text-muted);border-color:var(--color-border)}.cp-btn--dismiss:hover{background:var(--gray-200);color:var(--color-text)}.cp-suggestion-status-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-sm);align-self:flex-start}.cp-suggestion-status-badge--accepted{color:#059669;background:#10b9811a}.cp-suggestion-status-badge--dismissed{color:var(--color-text-muted);background:var(--gray-100)}.cp-suggestion-compose{flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-surface)}.cp-suggestion-compose-row{display:flex;align-items:center;gap:var(--space-2)}.cp-suggestion-type-select{font-size:var(--text-xs);padding:3px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer}.custom-dropdown{position:relative;width:100%}.dropdown-selected{padding:8px;cursor:pointer;border-radius:4px;position:relative}.dropdown-selected[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;top:100%;left:50%;margin-top:6px;max-width:300px;color:#333;background:#fff;padding:6px 10px;border-radius:4px;font-size:.75em;z-index:1;white-space:normal;word-wrap:break-word;box-shadow:0 2px 6px #0003;transform:translate(-50%)}.dropdown-options{position:absolute;top:100%;left:0;width:100%;background-color:#fff;border:1px solid #ccc;border-top:none;z-index:1;max-height:200px;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.dropdown-option{padding:8px;cursor:pointer;position:relative}.dropdown-option:hover{background-color:#f0f8ff}.dropdown-option:hover:after{content:attr(title);position:absolute;left:100%;top:0;background:#333;color:#fff;padding:4px 8px;margin-left:8px;border-radius:4px;font-size:.75em;z-index:2000;max-width:300px;white-space:normal;word-wrap:break-word}.char3d-panel{position:fixed;z-index:1500;width:360px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),0 0 0 1px #6366f126;display:flex;flex-direction:column;overflow:hidden;animation:char3d-popin .18s cubic-bezier(.34,1.56,.64,1) both}@keyframes char3d-popin{0%{opacity:0;transform:scale(.88) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.char3d-header{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:var(--space-2) var(--space-3);background:var(--gray-50);border-bottom:1px solid var(--color-border);flex-shrink:0}.char3d-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.char3d-race-badge{font-size:10px;color:var(--color-text-muted);background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:1px 7px;text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.char3d-rerender{background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;color:var(--color-text-secondary);line-height:1;flex-shrink:0;transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.char3d-rerender:hover:not(:disabled){background:var(--gray-200);color:var(--color-accent);transform:rotate(-40deg)}.char3d-rerender:disabled{opacity:.45;cursor:default;animation:char3d-spin .8s linear infinite}@keyframes char3d-spin{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.char3d-close{background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;color:var(--color-text-secondary);line-height:1;flex-shrink:0;transition:background-color var(--transition-fast),color var(--transition-fast)}.char3d-close:hover{background:var(--gray-200);color:var(--color-text)}.char3d-viewport{width:280px;height:380px;position:relative;background:#0f0f1a;flex-shrink:0;overflow:hidden}.char3d-iframe{width:100%;height:100%;border:none;display:block;transition:opacity .4s ease}.char3d-viewport--img{display:flex;align-items:center;justify-content:center}.char3d-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:opacity .4s ease}.char3d-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--color-text-muted);font-size:var(--text-xs);text-align:center;padding:var(--space-4)}.char3d-spinner{display:block;width:32px;height:32px;border:3px solid rgba(99,102,241,.2);border-top-color:#6366f1cc;border-radius:50%;animation:char3d-spin .7s linear infinite}.char3d-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#ef4444;font-size:var(--text-xs);padding:var(--space-4);text-align:center;line-height:1.5}.char3d-error small{color:var(--color-text-muted)}.char3d-debug-url{display:inline-block;margin:4px 0;font-size:10px;color:var(--color-accent, #6366f1);word-break:break-all;text-align:center}.char3d-retry-btn{margin-top:6px;padding:4px 12px;font-size:11px;background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);transition:background-color var(--transition-fast)}.char3d-retry-btn:hover{background:var(--gray-200);color:var(--color-text)}.char3d-hint{text-align:center;font-size:10px;color:var(--color-text-muted);padding:5px 0 7px;background:var(--gray-50);border-top:1px solid var(--color-border);letter-spacing:.02em}.char3d-hint a{color:inherit;opacity:.6}.pov-badge{font-size:10px;font-weight:700;letter-spacing:.05em;padding:2px 7px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s,opacity .15s;line-height:1.4;white-space:nowrap;flex-shrink:0}.pov-badge.pov-on{background:#7c3aed;color:#fff;border-color:#6d28d9}.pov-badge.pov-off{background:transparent;color:var(--color-text);border-color:var(--color-border);opacity:.45}.pov-badge.pov-off:hover{opacity:.85;border-color:#7c3aed;color:#7c3aed}.base-card.pov-character{border-left:3px solid #7c3aed}.char-meta-row{display:flex;gap:var(--space-2)}.char-meta-field{flex:1;display:flex;flex-direction:column;gap:2px}.char-meta-select{width:100%;padding:4px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);cursor:pointer}.char-meta-select:focus{outline:none;border-color:var(--color-accent)}.thematic-tie-item{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.tie-text input[type=text]{width:100%;padding:6px;font-size:14px}.tie-scene-row{display:flex;gap:8px;align-items:center}.tie-scene-row select{flex:1;padding:6px}.tie-scene-row button{padding:4px 8px}:root{--glossary-color: var(--card-glossary-color);--glossary-bg: #eef2ff;--glossary-border: #c7d2fe}[data-theme=dark]{--glossary-bg: #1e1b4b;--glossary-border: #3730a3}.gt-category-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full, 9999px);background:var(--glossary-color);color:#fff;font-size:var(--text-xs, 11px);font-weight:var(--weight-semibold, 600);line-height:1.5;white-space:nowrap;margin-top:4px}.gt-definition{margin-top:6px;font-size:var(--text-xs, 11px);color:var(--color-text-secondary);line-height:1.5;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.gt-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.gt-tag{display:inline-flex;align-items:center;padding:1px 6px;border-radius:var(--radius-sm, 4px);background:var(--glossary-bg);border:1px solid var(--glossary-border);font-size:var(--text-xs, 11px);color:var(--color-text-secondary);white-space:nowrap}.base-card.expanded .gt-definition{display:block;-webkit-line-clamp:unset;overflow:visible}.base-card.expanded .gt-tag{white-space:normal}.gt-editor{display:flex;flex-direction:column;gap:var(--space-4, 16px);padding:var(--space-2, 8px) 0}.gt-field{display:flex;flex-direction:column;gap:4px}.gt-label{font-size:var(--text-xs, 11px);font-weight:var(--weight-semibold, 600);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.gt-input,.gt-textarea{width:100%;box-sizing:border-box;padding:var(--space-2, 8px) var(--space-3, 12px);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm, 13px);font-family:inherit;transition:border-color var(--transition-fast)}.gt-input:focus,.gt-textarea:focus{outline:none;border-color:var(--glossary-color);box-shadow:0 0 0 2px #6366f126}.gt-textarea{resize:vertical;min-height:100px;line-height:1.5}.gt-hint{font-size:var(--text-xs, 11px);color:var(--color-text-muted);margin-top:2px}.plot-point-card{width:200px!important;min-width:200px!important}.plot-point-card .card-header{padding:var(--space-2) var(--space-3)!important;font-size:var(--text-xs)!important}.plot-point-card .card-name{font-size:var(--text-xs)!important;font-weight:var(--weight-semibold)!important;color:var(--color-text)!important}.pp-body{padding:var(--space-2) var(--space-3) var(--space-3);display:flex;flex-direction:column;gap:3px}.pp-row{display:flex;align-items:center;gap:var(--space-1);min-width:0}.pp-icon{font-size:10px;flex-shrink:0;opacity:.7;width:14px;text-align:center}.pp-value{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pp-chapter{font-weight:var(--weight-medium);color:var(--color-text)}.pp-stage{color:var(--color-accent);font-weight:var(--weight-medium)}.pp-tone{font-style:italic}.pp-editor-flag-btn{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;text-align:left;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.pp-editor-flag-btn:hover{background:var(--gray-100);color:var(--color-text)}.pp-editor-flag-btn--active{background:#ef444414;border-color:#ef444466;color:#dc2626;font-weight:var(--weight-semibold)}.pp-editor-flag-icon{font-size:15px;flex-shrink:0}.plot-point-card--flagged{border-color:#ef444480!important;box-shadow:0 0 0 2px #ef444426}.pp-flag-btn{opacity:.35;transition:opacity var(--transition-fast),transform var(--transition-fast)}.pp-flag-btn:hover{opacity:.8;transform:scale(1.15)}.pp-flag-btn--active{opacity:1!important}.pp-row--wordcount{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--color-border)}.pp-wordcount{font-size:10px;font-weight:var(--weight-medium);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.pp-row--meta{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--color-border);gap:var(--space-2);flex-wrap:wrap}.pp-flag-badge,.pp-notes-badge{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-full);padding:2px 6px;white-space:nowrap}.pp-flag-badge{background:#ef44441f;color:#dc2626}.pp-notes-badge{background:#3b82f61a;color:var(--color-accent)}.pp-desc{margin:var(--space-1) 0 0;font-size:10px;color:var(--color-text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.base-card.expanded .pp-desc{display:block;-webkit-line-clamp:unset;overflow:visible;text-overflow:clip}.base-card.expanded .pp-value{white-space:normal;overflow:visible;text-overflow:clip}.story-arc-label{display:flex;flex-direction:column;border-left:4px solid var(--gray-300);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1);background-color:var(--gray-50);border-radius:0 var(--radius-sm) var(--radius-sm) 0;gap:2px}.story-arc-label strong{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text)}.story-arc-label .arc-stage{font-style:italic;font-size:var(--text-xs);color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.draft-stage-label{border-left:4px solid var(--gray-300);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1);font-size:var(--text-xs);background-color:var(--gray-50);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.chip{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:2px var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.chip--sm{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.chip--indigo{background:#6366f1;color:#fff}.chip--teal{background:#0f766e;color:#fff}.chip--muted{background:var(--gray-100);color:var(--color-text-secondary)}.chip[data-pacing=Slow]{background:#2563eb;color:#fff}.chip[data-pacing=Medium]{background:#d97706;color:#fff}.chip[data-pacing=Fast]{background:#dc2626;color:#fff}.purpose-tag-chip{margin-bottom:var(--space-1)}.chapter-name-label{display:block;margin-bottom:var(--space-1)}.scene-item-chips{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-1)}.scene-item-chip{max-width:120px}.scene-pov-label{display:inline-flex;align-items:center;gap:5px;margin-bottom:var(--space-1)}.scene-pov-badge{font-size:9px;font-weight:700;letter-spacing:.05em;background:#7c3aed;color:#fff;border-radius:999px;padding:1px 6px;line-height:1.5;flex-shrink:0}.scene-pov-name{font-size:var(--text-xs);color:#7c3aed;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-label,.time-of-day-label{display:inline-block;font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.plotbeat-label{font-size:var(--text-xs);color:var(--color-accent-text);font-weight:var(--weight-medium);margin:var(--space-1) 0}.plotbeat-description{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;margin:2px 0 var(--space-2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.worksheet-progress-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-1);background-color:var(--accent-50);border-radius:var(--radius-sm);padding:2px var(--space-2)}.arc-stage-select{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}.arc-stage-select label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);white-space:nowrap}.arc-stage-select select{font-size:var(--text-xs);padding:2px var(--space-1)}.character-emotions-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.character-emotion-entry{background-color:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2)}.character-header{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);margin-bottom:var(--space-1)}.remove-character{background:none;border:none;color:var(--color-danger);cursor:pointer;font-size:var(--text-md);padding:0 2px;line-height:1}.remove-character:hover{color:var(--color-danger-hover);background-color:var(--color-danger-light);border-radius:var(--radius-sm)}.emotion-selectors{display:flex;flex-wrap:wrap;gap:var(--space-2)}.emotion-group{display:flex;align-items:center;gap:var(--space-1)}.emotion-group label{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.scene-highlight{animation:flashHighlight 1.2s ease}@keyframes flashHighlight{0%{box-shadow:0 0 0 4px #6366f180}to{box-shadow:var(--shadow-sm)}}.scene-characters h4{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:var(--space-2) 0 var(--space-1)}.mood-tone-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);margin-bottom:var(--space-1)}.mood-chip{max-width:120px}.tone-chip{background-color:var(--gray-200);color:var(--color-text-secondary)}.chip[data-tone=Dark]{background:#1e1e2e;color:#a0a0c0}.chip[data-tone=Hopeful]{background:#dcfce7;color:#166534}.chip[data-tone=Tense]{background:#fef9c3;color:#854d0e}.chip[data-tone=Suspenseful]{background:#fef3c7;color:#92400e}.chip[data-tone=Melancholic]{background:#e0f2fe;color:#075985}.chip[data-tone=Triumphant]{background:#fef08a;color:#713f12}.chip[data-tone=Tragic]{background:#fee2e2;color:#991b1b}.chip[data-tone=Whimsical]{background:#fae8ff;color:#701a75}.chip[data-tone=Romantic]{background:#fce7f3;color:#9d174d}.chip[data-tone=Ironic]{background:#f1f5f9;color:#475569}.chip[data-tone=Urgent]{background:#ffedd5;color:#9a3412}.chip[data-tone=Ominous]{background:#1c1917;color:#a8a29e}.chip[data-tone=Reverent]{background:#f0fdf4;color:#14532d}.chip[data-tone=Bittersweet]{background:#fdf2f8;color:#831843}.chip[data-tone=Chaotic]{background:#ff6b35;color:#fff}.scene-header-chip{display:inline-block;font-size:10px;font-weight:var(--weight-medium);padding:1px 5px;border-radius:var(--radius-full);white-space:nowrap;line-height:1.6;user-select:none}.scene-header-wordcount{background:var(--gray-100);color:var(--color-text-muted);border:1px solid var(--color-border)}.scene-header-tone{background:var(--gray-100);color:var(--color-text-secondary);border:1px solid var(--color-border)}.scene-header-tone[data-tone=Dark]{background:#1e1e2e;color:#a0a0c0;border-color:#1e1e2e}.scene-header-tone[data-tone=Hopeful]{background:#dcfce7;color:#166534;border-color:#bbf7d0}.scene-header-tone[data-tone=Tense]{background:#fef9c3;color:#854d0e;border-color:#fde68a}.scene-header-tone[data-tone=Suspenseful]{background:#fef3c7;color:#92400e;border-color:#fde68a}.scene-header-tone[data-tone=Melancholic]{background:#e0f2fe;color:#075985;border-color:#bae6fd}.scene-header-tone[data-tone=Triumphant]{background:#fef08a;color:#713f12;border-color:#fde047}.scene-header-tone[data-tone=Tragic]{background:#fee2e2;color:#991b1b;border-color:#fecaca}.scene-header-tone[data-tone=Whimsical]{background:#fae8ff;color:#701a75;border-color:#f0abfc}.scene-header-tone[data-tone=Romantic]{background:#fce7f3;color:#9d174d;border-color:#fbcfe8}.scene-header-tone[data-tone=Ironic]{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.scene-header-tone[data-tone=Urgent]{background:#ffedd5;color:#9a3412;border-color:#fed7aa}.scene-header-tone[data-tone=Ominous]{background:#1c1917;color:#a8a29e;border-color:#1c1917}.scene-header-tone[data-tone=Reverent]{background:#f0fdf4;color:#14532d;border-color:#bbf7d0}.scene-header-tone[data-tone=Bittersweet]{background:#fdf2f8;color:#831843;border-color:#fbcfe8}.scene-header-tone[data-tone=Chaotic]{background:#ff6b35;color:#fff;border-color:#ff6b35}.card-content-readonly{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border-subtle, var(--color-border))}.sc-ro-section{display:flex;flex-direction:column;gap:2px}.sc-ro-label{font-size:9px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.sc-ro-text{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.5;margin:0;white-space:pre-wrap;word-break:break-word}.sc-ro-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.sc-ro-tag{font-size:10px;padding:1px var(--space-2);background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary)}.sc-ro-character{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs);padding:4px 0;border-bottom:1px solid var(--gray-100)}.sc-ro-character:last-child{border-bottom:none}.sc-ro-char-wn{font-size:10px;color:var(--color-text-secondary);padding-left:2px}.sc-ro-char-wn-label{font-weight:600;color:var(--color-text-muted)}.sc-ro-char-alignment{font-style:italic;color:var(--color-text-muted)}.sc-ro-dynamics{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--gray-200)}.sc-ro-dynamics-title{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:4px}.sc-ro-dynamics-pair{display:flex;flex-direction:column;gap:2px;font-size:10px;padding:2px 0}.sc-ro-dynamics-header{display:flex;align-items:center;gap:var(--space-2)}.sc-ro-dynamics-names{flex:1;color:var(--color-text-secondary);font-weight:500}.sc-ro-dynamics-icons{display:flex;gap:var(--space-1)}.sc-ro-dynamics-rel{font-size:10px;color:var(--color-text-muted)}.sc-ro-dynamics-desc{font-size:10px;color:var(--color-text-muted);font-style:italic;padding-left:2px;line-height:1.3}.sc-ro-char-name{display:flex;align-items:center;gap:var(--space-1);font-weight:var(--weight-medium);color:var(--color-text)}.sc-ro-emotions{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--color-text-secondary)}.sc-ro-arrow{color:var(--color-text-muted)}.sc-ro-empty{color:var(--color-text-muted);font-style:italic}.word-count-label{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-1)}.mood-tone-field-row{display:flex;gap:var(--space-2)}.mood-tone-field-row .field{flex:1}.scene-pov,.scene-next{display:flex;align-items:center;gap:var(--space-2)}.scene-pov label,.scene-next label{font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;color:var(--color-text-muted);min-width:80px}.scene-beat-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--radius-full, 9999px);background:var(--scene-bg, #eff6ff);border:1px solid var(--scene-border, #bfdbfe);color:var(--scene-color, #1d4ed8);font-size:var(--text-xs, 11px);font-weight:var(--weight-semibold, 600);margin-top:4px}.scene-beat-chip--empty{background:var(--color-warning-bg, #fff7ed);border-color:var(--color-warning-border, #fed7aa);color:var(--color-warning, #c2410c)}.writer-worksheet-modal{display:flex;flex-direction:column;position:relative;background:#fff;padding:1.5rem;border-radius:6px;width:70vw;height:70vh;overflow:hidden;margin:5vh auto;box-shadow:0 0 10px #0003}.writer-worksheet-header-container{display:flex;align-items:flex-start;justify-content:space-between}.writer-worksheet-workflow-label{font-style:italic;margin-bottom:.25em}.writer-worksheet-stage-selector{display:flex;flex-direction:column;white-space:normal;word-break:normal;min-width:200px}.writer-worksheet-stage-selector label{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap}.writer-worksheet-stage-selector select{margin-left:.5rem}.writer-worksheet-header-middle{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center}.writer-worksheet-header-middle *{margin:0}.writer-worksheet-header-left,.writer-worksheet-header-right{flex:0 0 20%;max-width:20%;display:flex;flex-direction:column;align-items:center}.worksheet-scene-header{font-size:1.5rem;font-weight:700;white-space:nowrap}.writer-worksheet-header{display:flex;flex-direction:column;align-items:center}.writer-worksheet-title{font-size:1.2rem;font-weight:500;margin-bottom:.25rem}.writer-worksheet-progress-container{display:flex;flex-direction:column;align-items:center;gap:.25rem}.writer-worksheet-controls{display:flex;align-items:center;gap:.5rem;justify-content:center}.writer-worksheet-page-number{font-weight:700;min-width:80px;text-align:center}.writer-worksheet-progress{font-size:.9rem;color:#666}.writer-worksheet-controls button{padding:.5rem 1rem;font-size:.9rem;border:none;border-radius:4px;background:#eee;cursor:pointer;white-space:nowrap}.writer-worksheet-controls button:disabled{opacity:.5;cursor:default}.writer-worksheet-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.2rem;cursor:pointer;color:#888;transition:color .2s ease;z-index:1}.writer-worksheet-close:hover{color:#111}.writer-worksheet-description-container{display:flex;flex-direction:row}.writer-worksheet-description{display:flex;flex-direction:column;justify-content:center}.writer-worksheet-description a{color:#07c;text-decoration:underline}.writer-worksheet-field{display:flex;flex-direction:column;flex-grow:1;overflow:hidden;margin-bottom:1.5rem}.writer-worksheet-textarea-container{display:flex;flex-direction:column;flex-grow:1;overflow:hidden;margin-top:1.5rem}.writer-worksheet-textarea{width:100%;height:100%;font-size:1rem;padding:.5rem;border:1px solid #ccc;border-radius:4px;resize:none;overflow-y:auto;box-sizing:border-box;flex-grow:1}.writer-worksheet-checkbox{display:inline-block;font-size:.95rem;cursor:pointer}.writer-worksheet-actions-left,.writer-worksheet-actions-right{display:flex;flex:0 0 20%;max-width:20%;align-items:center;justify-content:flex-start}.writer-worksheet-actions-center{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center}.writer-worksheet-field-container{display:flex;align-items:center}.writer-worksheet-copy-button{padding:4px 8px;font-size:.9rem;background-color:#eee;border:1px solid #ccc;cursor:pointer}.writer-worksheet-copy-button:hover{background-color:#ddd}.writer-worksheet-clear-button,.writer-worksheet-undo-button{background-color:#eee;border:1px solid #ccc;padding:.25rem .5rem;font-size:.9rem;cursor:pointer}.writer-worksheet-clear-button:hover,.writer-worksheet-undo-button:hover{background-color:#ddd}.writer-worksheet-undo-button:disabled{opacity:.4;cursor:not-allowed}.writer-worksheet-footer{margin-top:1.5rem;text-align:center}.writer-worksheet-footer button{padding:.5rem 1rem;font-size:.9rem;border:none;border-radius:4px;background:#ddd;cursor:pointer}.writer-worksheet-scene-context{display:flex;flex-direction:row;margin:1rem 0;background-color:#f7f7f7;border:1px solid #ccc;font-size:.95rem}.writer-worksheet-scene-context-left{flex:0 0 25%;max-width:25%;display:flex;flex-direction:column}.writer-worksheet-scene-context-middle{display:flex;flex-direction:column}.writer-worksheet-scene-context-right{flex:1;display:flex;flex-direction:column;margin-left:1rem}.scene-context-item{margin-bottom:.5rem}.scene-context-list{list-style:none;padding:0;margin:.25rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}.scene-context-list li{padding:.3rem .6rem;background-color:#eaeaea;border-radius:4px;cursor:help;font-size:.9rem}.chapter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.chapter-title{font-size:1.2em;border:none;padding:5px;flex-grow:1;margin-right:10px}.chapter-content{display:flex;flex-direction:column;gap:20px}.chapter-scenes,.chapter-characters{border-top:1px solid #eee;padding-top:10px}.scenes-list,.characters-list{display:flex;flex-direction:column;gap:8px}.scene-item,.character-item{padding:8px;background:#f5f5f5;border-radius:4px;display:flex;justify-content:space-between;align-items:center}.no-scenes,.no-characters{color:#666;font-style:italic}h4{margin:0 0 10px;color:#333}button{padding:4px 8px;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer}button:hover{background:#f0f0f0}.scene-selector{margin-bottom:15px}.scene-selector select{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;background-color:#fff}.scene-selector select:focus{outline:none;border-color:#007bff}.scenes-list{margin-top:10px}.scene-item{display:flex;justify-content:space-between;align-items:center;padding:8px;margin:5px 0;background:#f5f5f5;border-radius:4px}.remove-scene{background:#f44;color:#fff;border:none;border-radius:4px;padding:2px 6px;cursor:pointer;font-size:12px}.remove-scene:hover{background:#c00}.no-scenes,.no-characters{color:#666;font-style:italic;padding:8px}.chapter-scene-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--radius-full, 9999px);background:var(--chapter-bg, #fff7ed);border:1px solid var(--chapter-border, #fed7aa);color:var(--chapter-color, #c2410c);font-size:var(--text-xs, 11px);font-weight:var(--weight-semibold, 600);margin-top:4px}.chapter-scene-chip--empty{background:var(--color-warning-bg, #fff7ed);border-color:var(--color-warning-border, #fed7aa);color:var(--color-warning, #c2410c)}.story-arc-card-stage-container{padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1);display:flex;align-items:center}.story-arc-card-header-character-name{display:flex;justify-content:center;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.story-arc-card-header-stage-list{display:flex;flex-direction:column;gap:2px}.story-arc-card-stage-name-container{position:relative;display:flex;justify-content:space-between;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.story-arc-card-stage-name-container:hover{background-color:var(--gray-100)}.story-arc-card-stage-name{font-size:var(--text-sm);color:var(--color-text)}.story-arc-card-stage-color-square{width:100%;height:3px;border-radius:var(--radius-full);flex-shrink:0;margin-bottom:var(--space-1)}.story-arc-card.focused{box-shadow:0 0 0 3px var(--card-arc-color),var(--shadow-md)}.story-arc-card-stage-jump-to-scene-button{background:none;border:none;cursor:pointer;font-size:var(--text-sm);color:var(--color-text-secondary);padding:0 var(--space-1);display:flex;align-items:center;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.story-arc-card-stage-jump-to-scene-button:hover{background-color:var(--gray-100);color:var(--color-text)}.matrix-overlay{position:absolute;inset:0;overflow:visible;pointer-events:none;z-index:0}.matrix-overlay-label{font-size:11px;font-family:inherit;fill:var(--color-text-muted)}.matrix-overlay-label--chapter{font-size:12px;font-weight:600;fill:var(--color-text)}.matrix-overlay-label--stage{font-style:italic;fill:var(--color-accent);font-size:20px}.matrix-overlay-label--hint{font-style:italic;fill:#ef4444;font-size:14px}.pp-focus-overlay{position:absolute;inset:0;overflow:visible;pointer-events:none;z-index:0}.pp-focus-label{font-size:11px;font-family:inherit;fill:var(--color-text-muted)}.pp-focus-label--part{font-size:15px;font-weight:700;fill:var(--color-text);letter-spacing:.02em}.pp-focus-label--count{font-size:10px;font-weight:500;fill:var(--color-text-muted)}.pp-focus-label--chapter{font-size:10px;font-weight:600;fill:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.ps-focus-overlay{position:absolute;inset:0;overflow:visible;pointer-events:none;z-index:0}.ps-focus-label{font-size:11px;font-family:inherit;fill:var(--color-text-muted)}.ps-focus-label--stage{font-size:15px;font-weight:700;fill:var(--color-accent);letter-spacing:.02em}.ps-focus-label--count{font-size:10px;font-weight:500;fill:var(--color-text-muted)}.ps-focus-toggle-icon{font-size:9px;font-weight:700;fill:var(--color-text-muted);user-select:none}.canvas{position:relative;flex:1;min-height:0;overflow:hidden;box-sizing:border-box;background-color:var(--gray-100);background-image:radial-gradient(circle,var(--gray-300) 1px,transparent 1px);background-size:28px 28px;cursor:grab}.canvas:active{cursor:grabbing}.canvas-inner{position:relative;width:100%;height:100%}.canvas-grid{position:relative;width:0;height:0;transform-origin:0 0}.canvas-container{flex:1;height:100%;overflow:hidden;background-color:var(--gray-100);position:relative;display:flex;flex-direction:column}.canvas-toolbar{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);display:flex;flex-direction:row;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);z-index:200;user-select:none}.canvas-toolbar .hud-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:30px;padding:0 var(--space-1);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:15px;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.canvas-toolbar .hud-btn:hover{background-color:var(--gray-100);color:var(--color-text)}.canvas-toolbar .hud-btn.hud-active{background-color:var(--accent-100);color:var(--color-accent)}.canvas-toolbar .hud-type-btn:not(.hud-active){opacity:.4}.canvas-toolbar .hud-cat{position:relative;display:inline-flex;align-items:center}.canvas-toolbar .hud-cat-btn{gap:1px}.hud-cat-caret{font-size:8px;opacity:.6;margin-left:1px}.hud-flyout{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);min-width:180px;display:flex;flex-direction:column;padding:var(--space-1);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:210}.hud-flyout-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding:var(--space-1) var(--space-2)}.hud-flyout-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);text-align:left;white-space:nowrap;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.hud-flyout-item:hover:not(:disabled){background-color:var(--gray-100)}.hud-flyout-item:disabled{opacity:.4;cursor:not-allowed}.hud-flyout-item--active{color:var(--color-accent);background-color:var(--accent-100)}.hud-grip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:30px;font-size:14px;color:var(--color-text-muted);cursor:grab;flex-shrink:0;opacity:.5;transition:opacity var(--transition-fast);user-select:none}.hud-grip:hover{opacity:1}.hud-grip:active{cursor:grabbing}.zoom-display{font-size:var(--text-xs);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);min-width:36px;text-align:center;cursor:pointer;padding:2px var(--space-1);border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast);line-height:30px}.zoom-display:hover{background-color:var(--gray-100);color:var(--color-text)}.hud-sep{display:inline-block;width:1px;height:20px;background-color:var(--color-border);margin:0 var(--space-1);flex-shrink:0}.exit-focus-btn{position:fixed;bottom:var(--space-6);right:var(--space-6);padding:var(--space-2) var(--space-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);box-shadow:var(--shadow-md);cursor:pointer;z-index:100;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);transition:box-shadow var(--transition-base),color var(--transition-base)}.exit-focus-btn:hover{box-shadow:var(--shadow-lg);color:var(--color-text)}.canvas-marquee{position:absolute;border:1.5px solid var(--color-accent);background:#6366f114;border-radius:2px;pointer-events:none;z-index:150}.canvas-selection-box{position:absolute;pointer-events:none;border:1.5px dashed var(--color-accent);background:#6366f10a;border-radius:var(--radius-md);z-index:1}.canvas-edges{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;overflow:visible}.canvas-minimap-title{font-size:10px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:3px 6px;cursor:grab;user-select:none;border-bottom:1px solid var(--color-border-subtle);background:var(--gray-50);border-radius:var(--radius-md) var(--radius-md) 0 0}.canvas-minimap-title:active{cursor:grabbing}.canvas-minimap{position:absolute;bottom:88px;right:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);overflow:hidden;z-index:190;opacity:.85;transition:opacity var(--transition-base)}.canvas-minimap:hover{opacity:1}.canvas-minimap svg{cursor:crosshair;display:block}.canvas-drill-banner{flex-shrink:0;height:36px;background:#eff6ff;border-bottom:1px solid #bfdbfe;display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4);font-size:var(--text-sm);color:#1e40af;user-select:none}[data-theme=dark] .canvas-drill-banner{background:#1e1b4b;border-color:#3730a3;color:#a5b4fc}.canvas-drill-banner-icon{font-size:1rem;flex-shrink:0}.canvas-drill-crumbs{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow:hidden}.canvas-drill-sep{color:#93c5fd;font-size:var(--text-xs);flex-shrink:0}[data-theme=dark] .canvas-drill-sep{color:#6366f1}.canvas-drill-add-btn{background:none;border:1px solid #93c5fd;border-radius:var(--radius-sm);color:#1d4ed8;font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:3px var(--space-3);cursor:pointer;white-space:nowrap;line-height:1.4;transition:background var(--transition-fast),color var(--transition-fast)}.canvas-drill-add-btn:hover{background:#dbeafe}[data-theme=dark] .canvas-drill-add-btn{border-color:#3730a3;color:#a5b4fc}[data-theme=dark] .canvas-drill-add-btn:hover{background:#1e1b4b}.canvas-drill-empty-add{padding:var(--space-2) var(--space-4);background:var(--color-accent);border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:#fff;cursor:pointer;transition:opacity var(--transition-fast)}.canvas-drill-empty-add:hover{opacity:.85}.canvas-drill-crumb{background:none;border:none;padding:2px 6px;border-radius:var(--radius-sm);color:#3b82f6;font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.canvas-drill-crumb:hover{background:#dbeafe;color:#1d4ed8}.canvas-drill-crumb--active{color:#1e40af;font-weight:var(--weight-semibold);cursor:default;pointer-events:none}[data-theme=dark] .canvas-drill-crumb{color:#818cf8}[data-theme=dark] .canvas-drill-crumb:hover{background:#312e81;color:#a5b4fc}[data-theme=dark] .canvas-drill-crumb--active{color:#c7d2fe}.canvas-drill-count{font-size:var(--text-xs);color:#60a5fa;white-space:nowrap;padding-right:var(--space-2)}[data-theme=dark] .canvas-drill-count{color:#6366f1}.canvas-focus-banner{flex-shrink:0;height:36px;background:#fef3c7;border-bottom:1px solid #fcd34d;display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4);font-size:var(--text-sm);color:#92400e;user-select:none}[data-theme=dark] .canvas-focus-banner{background:#451a03;border-color:#78350f;color:#fcd34d}.canvas-focus-banner-icon{font-size:1rem;flex-shrink:0}.canvas-focus-banner-text{font-weight:var(--weight-medium)}.canvas-focus-banner-text strong{font-weight:var(--weight-semibold)}.canvas-focus-banner-counts{color:#b45309;font-size:var(--text-xs);padding-left:var(--space-1)}[data-theme=dark] .canvas-focus-banner-counts{color:#fbbf24}.canvas-focus-exit-btn{margin-left:auto;background:none;border:1px solid #fcd34d;border-radius:var(--radius-sm);color:#92400e;font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:3px var(--space-3);cursor:pointer;transition:background var(--transition-fast);white-space:nowrap;line-height:1.4}.canvas-focus-exit-btn:hover{background:#fcd34d}[data-theme=dark] .canvas-focus-exit-btn{border-color:#78350f;color:#fcd34d}[data-theme=dark] .canvas-focus-exit-btn:hover{background:#78350f}.canvas-drill-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:160;text-align:center;max-width:360px}.canvas-drill-empty-icon{font-size:2rem;opacity:.5}.canvas-drill-empty-msg{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);text-transform:capitalize}.canvas-drill-empty-hint{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5}.canvas-drill-empty-actions{display:flex;gap:var(--space-2);margin-top:var(--space-1)}.canvas-drill-empty-back{padding:var(--space-2) var(--space-4);background:var(--gray-100);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);cursor:pointer;transition:background var(--transition-fast)}.canvas-drill-empty-back:hover{background:var(--gray-200)}.canvas-drill-empty-exit{padding:var(--space-2) var(--space-4);background:var(--color-accent);border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);color:#fff;cursor:pointer;transition:opacity var(--transition-fast)}.canvas-drill-empty-exit:hover{opacity:.85}.canvas-return-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);z-index:160;transition:box-shadow var(--transition-base),background-color var(--transition-base)}.canvas-return-btn:hover{background:var(--gray-50);box-shadow:var(--shadow-xl, var(--shadow-lg))}.canvas-coords{position:absolute;bottom:var(--space-2);left:var(--space-3);font-size:11px;font-variant-numeric:tabular-nums;color:var(--color-text-muted);pointer-events:none;user-select:none;z-index:100;opacity:.6}@keyframes card-appear{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.base-card{animation:card-appear .18s ease-out both}@media (prefers-reduced-motion: reduce){.base-card{animation:none}.canvas-grid,.base-card{transition:none!important}}.cs-root{display:flex;flex-direction:column;height:100%;background:var(--color-surface);overflow:hidden}.cs-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--color-accent, #6c63ff);color:#fff;flex-shrink:0}.cs-header-info{display:flex;align-items:center;gap:8px}.cs-header-icon{font-size:20px}.cs-header-title{font-weight:700;font-size:14px;line-height:1.2}.cs-header-sub{font-size:11px;opacity:.85}.cs-header-actions{display:flex;align-items:center;gap:6px}.cs-new-btn,.cs-collapse-btn{background:#fff3;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;padding:3px 8px;transition:background .12s}.cs-new-btn:hover,.cs-collapse-btn:hover{background:#ffffff59}.cs-collapse-btn{font-size:14px;padding:3px 7px}.cs-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}.cs-empty{text-align:center;color:var(--color-text-muted, #888);font-size:13px;margin:auto;padding:32px 20px}.cs-empty-icon{display:block;font-size:36px;margin-bottom:12px}.cs-empty p{margin:4px 0;line-height:1.4}.cs-bubble{display:flex;align-items:flex-start;gap:6px;max-width:90%;animation:cs-pop-in .15s ease}@keyframes cs-pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.cs-bubble--user{align-self:flex-end;flex-direction:row-reverse}.cs-bubble--assistant{align-self:flex-start}.cs-bubble-icon{font-size:14px;flex-shrink:0;margin-top:4px}.cs-bubble-text{margin:0;padding:9px 13px;border-radius:12px;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.cs-bubble--user .cs-bubble-text{background:var(--color-accent, #6c63ff);color:#fff;border-bottom-right-radius:4px}.cs-bubble--assistant .cs-bubble-text{background:var(--color-surface-raised, #f4f4f8);color:var(--color-text, #1a1a2e);border-bottom-left-radius:4px}[data-theme=dark] .cs-bubble--assistant .cs-bubble-text{background:var(--color-surface-raised, #2a2a3e);color:var(--color-text, #e8e8f0)}.cs-bubble--typing .cs-bubble-text{padding:10px 14px}.cs-typing-dots{display:flex;gap:4px;align-items:center}.cs-typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--color-text-muted, #888);animation:cs-dot-bounce 1.2s infinite ease-in-out}.cs-typing-dots span:nth-child(2){animation-delay:.2s}.cs-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes cs-dot-bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-5px)}}.cs-bubble-md{display:flex;flex-direction:column;gap:5px;white-space:normal}.cs-bubble-md .cs-md-p{margin:0;line-height:1.6}.cs-bubble-md .cs-md-heading{margin:4px 0 2px;font-weight:700;line-height:1.3}h3.cs-md-heading{font-size:15px}h4.cs-md-heading{font-size:14px}h5.cs-md-heading{font-size:13px}.cs-bubble-md .cs-md-list{margin:2px 0;padding-left:18px;display:flex;flex-direction:column;gap:3px}.cs-bubble-md .cs-md-list li{line-height:1.5}.cs-bubble-md .cs-md-pre{margin:4px 0;padding:10px 12px;background:#0000000f;border-radius:8px;overflow-x:auto;font-size:12px;line-height:1.5}[data-theme=dark] .cs-bubble-md .cs-md-pre{background:#0000004d}.cs-md-code{font-size:.9em;background:#6c63ff1f;color:var(--color-accent, #6c63ff);padding:1px 5px;border-radius:4px}.cs-bubble-md .cs-md-hr{border:none;border-top:1px solid var(--color-border, #e0e0e0);margin:4px 0}.cs-input-row{display:flex;align-items:flex-end;gap:6px;padding:10px 12px 6px;border-top:1px solid var(--color-border, #e0e0e0);flex-shrink:0}.cs-input{flex:1;resize:none;border:1px solid var(--color-border, #d0d0d8);border-radius:10px;padding:8px 10px;font-size:13px;font-family:inherit;line-height:1.4;background:var(--color-surface, #fff);color:var(--color-text, #1a1a2e);outline:none;transition:border-color .12s}.cs-input:focus{border-color:var(--color-accent, #6c63ff)}.cs-input:disabled{opacity:.6;cursor:not-allowed}.cs-send-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--color-accent, #6c63ff);color:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s,transform .1s;margin-bottom:2px}.cs-send-btn:hover:not(:disabled){background:var(--color-accent-hover, #574fd6);transform:scale(1.06)}.cs-send-btn:disabled{opacity:.4;cursor:not-allowed}.cs-footer{text-align:center;font-size:10px;color:var(--color-text-muted, #aaa);padding:0 12px 8px;flex-shrink:0}.wfb-root{display:flex;align-items:center;gap:6px;padding:0 12px;height:36px;flex-shrink:0;background:var(--color-surface);border-bottom:1px solid var(--color-border);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;user-select:none}.wfb-root::-webkit-scrollbar{display:none}.wfb-label{font-size:var(--text-xs, 11px);font-weight:600;color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.wfb-divider{width:1px;height:16px;background:var(--color-border);flex-shrink:0;margin:0 2px}.wfb-stages{display:flex;align-items:center;gap:4px;flex-shrink:0}.wfb-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 6px;border-radius:999px;border:1px solid color-mix(in srgb,var(--stage-color) 40%,transparent);background:color-mix(in srgb,var(--stage-color) 10%,var(--color-surface));color:var(--color-text);font-size:var(--text-xs, 11px);font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;white-space:nowrap;flex-shrink:0;line-height:1}.wfb-pill:hover{background:color-mix(in srgb,var(--stage-color) 22%,var(--color-surface));border-color:color-mix(in srgb,var(--stage-color) 60%,transparent)}.wfb-pill--active{background:color-mix(in srgb,var(--stage-color) 85%,transparent);border-color:var(--stage-color);color:#fff;box-shadow:0 1px 4px color-mix(in srgb,var(--stage-color) 40%,transparent)}.wfb-pill--active .wfb-pill-count{background:#ffffff40;color:#fff}.wfb-pill-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--stage-color);flex-shrink:0}.wfb-pill--active .wfb-pill-dot{background:#ffffffd9}.wfb-pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:15px;padding:0 4px;border-radius:999px;background:color-mix(in srgb,var(--stage-color) 18%,var(--color-border));color:var(--color-text-muted);font-size:10px;font-weight:600;line-height:1;transition:background .15s,color .15s}.wfb-root--empty{gap:8px}.wfb-empty-msg{font-size:var(--text-xs, 11px);color:var(--color-text-muted);white-space:nowrap}.wfb-assign-btn{padding:2px 10px;border-radius:999px;border:1px solid var(--color-accent);background:transparent;color:var(--color-accent);font-size:var(--text-xs, 11px);font-weight:500;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s,color .12s}.wfb-assign-btn:hover{background:var(--color-accent);color:#fff}.wfb-clear{margin-left:4px;padding:2px 8px;border-radius:999px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);font-size:var(--text-xs, 11px);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s,color .12s}.wfb-clear:hover{background:var(--gray-100, #f3f4f6);color:var(--color-text)}.gs{display:flex;flex-direction:column;gap:var(--space-3);min-height:0;max-height:min(70vh,560px)}.gs-input{flex:0 0 auto;font-size:var(--text-md);padding:var(--space-2) var(--space-3);width:calc(100% - var(--space-8));box-sizing:border-box}.gs-results{flex:1 1 auto;overflow-y:auto;display:flex;flex-direction:column;gap:2px;min-height:0}.gs-hint,.gs-empty{color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-4) var(--space-2);text-align:center}.gs-result{display:flex;align-items:flex-start;gap:var(--space-2);width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);padding:var(--space-2);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.gs-result:hover,.gs-result:focus-visible,.gs-result--active{background-color:var(--color-accent-subtle);border-color:var(--color-border);outline:none}.gs-result-icon{flex:0 0 auto;font-size:14px;line-height:1.4}.gs-result-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1 1 auto}.gs-result-head{display:flex;align-items:baseline;gap:var(--space-2);min-width:0}.gs-result-name{font-weight:var(--weight-medium);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-result-type{flex:0 0 auto;font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.gs-result-snippet{font-size:var(--text-sm);color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gs-result-field{color:var(--color-text-muted);font-style:italic}.gs-footer{flex:0 0 auto;font-size:var(--text-xs);color:var(--color-text-muted);text-align:right;border-top:1px solid var(--color-border-subtle);padding-top:var(--space-2)}.cfm{display:flex;flex-direction:column;gap:var(--space-3);max-width:420px}.cfm-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);padding-right:var(--space-8)}.cfm-message{font-size:var(--text-sm);line-height:1.5;color:var(--color-text-secondary)}.cfm-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.cfm-btn{min-width:84px}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:380px;width:calc(100vw - 48px)}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:8px;font-size:13px;line-height:1.45;font-weight:500;box-shadow:0 4px 16px #0000002e;pointer-events:all;animation:toast-slide-in .2s ease-out;color:#fff}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.toast--error{background:#dc2626}.toast--warning{background:#d97706}.toast--success{background:#16a34a}.toast--info{background:#2563eb}.toast-icon{flex-shrink:0;font-size:15px;line-height:1.45}.toast-message{flex:1}.toast-action{flex-shrink:0;background:#fff3;border:1px solid rgba(255,255,255,.4);border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;line-height:1;padding:3px 8px;transition:background .15s;white-space:nowrap}.toast-action:hover{background:#ffffff52}.toast-close{flex-shrink:0;background:none;border:none;color:#ffffffbf;cursor:pointer;font-size:15px;line-height:1;padding:0 0 0 4px;transition:color .15s}.toast-close:hover{color:#fff}
