@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-bg-page: #000000;--color-bg-surface: #0a0a0a;--color-bg-elevated: #111111;--color-bg-muted: #1a1a1a;--color-bg-input: #0a0a0a;--color-bg-hover: #222222;--color-bg-active: #333333;--color-bg-overlay: #1a1a1a;--color-text-primary: #ffffff;--color-text-secondary: #aaaaaa;--color-text-muted: #888888;--color-text-dim: #666666;--color-text-disabled: #555555;--color-text-on-color: #ffffff;--color-border-default: #333333;--color-border-subtle: #2a2a2a;--color-border-strong: #555555;--color-border-focus: #e94560;--color-accent: #e94560;--color-accent-hover: #ff6b6b;--color-accent-muted: #a83248;--color-success: #2ed573;--color-warning: #ffa502;--color-error: #ff4757;--color-info: #4dabf7;--color-foundation: #87CEEB;--color-elementary: #90EE90;--color-intermediate: #FFD700;--color-advanced: #FF8C00;--color-expert: #FF4500;--color-mastery: #8B00FF;--color-success-light: rgba(46, 213, 115, .15);--color-warning-light: rgba(255, 165, 2, .08);--color-error-light: rgba(233, 69, 96, .15);--color-info-light: rgba(77, 171, 247, .1);--color-foundation-light: rgba(135, 206, 235, .15);--color-elementary-light: rgba(144, 238, 144, .15);--color-intermediate-light: rgba(255, 215, 0, .15);--color-advanced-light: rgba(255, 140, 0, .15);--color-expert-light: rgba(255, 69, 0, .15);--color-mastery-light: rgba(139, 0, 255, .15);--color-scrollbar-track: var(--color-bg-muted);--color-scrollbar-thumb: var(--color-border-strong);--color-marked-bg: #1a472a;--color-marked-border: #4caf50;--color-marked-text: #8bc34a;--color-marked-badge: #4caf50;--color-fm-yellow: #ffb300;--color-fm-yellow-light: rgba(255, 179, 0, .15);--color-fm-yellow-subtle: rgba(255, 179, 0, .06);--color-fm-yellow-medium: rgba(255, 179, 0, .2);--color-fm-yellow-border: rgba(255, 179, 0, .5);--color-si-teal: #26a69a;--color-si-teal-light: rgba(38, 166, 154, .15);--color-si-teal-subtle: rgba(38, 166, 154, .06);--color-si-teal-medium: rgba(38, 166, 154, .2);--color-si-teal-border: rgba(38, 166, 154, .5);--color-pipeline-done: #40c057;--color-pipeline-pending: #868e96;--color-interactive: #00bcd4;--color-interactive-hover: #26c6da;--color-interactive-light: rgba(0, 188, 212, .08);--color-overlay: rgba(0, 0, 0, .85);--color-selection-bg: rgba(255, 255, 255, .08);--color-category-pink: #ff6b9d;--color-category-purple: #9b59b6;--color-hover-indicator: #ff8c00;--color-tooltip: #ffeb3b;--color-quote-hover: #ffeaa7;--color-quote-border: rgba(255, 71, 87, .4);--color-quote-border-reviewed: rgba(46, 213, 115, .4);--color-quote-border-unassigned: rgba(255, 71, 87, .5);--color-quote-border-group: rgba(155, 89, 182, .6);--color-quote-border-group-reviewed: rgba(155, 89, 182, .4);--color-quote-border-unsure: rgba(245, 159, 0, .4);--color-quote-bg-unsure: rgba(245, 159, 0, .15);--color-quote-border-nested: rgba(100, 149, 237, .85);--color-quote-bg-nested: rgba(100, 149, 237, .18);--char-0: #ffffff;--char-1: #ffffff;--char-2: #ffffff;--char-3: #ffffff;--char-4: #ffffff;--char-5: #ffffff;--char-6: #ffffff;--char-7: #ffffff;--char-8: #ffffff;--char-9: #888888;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-book: "Georgia", "Times New Roman", serif;--font-mono: "SF Mono", "Fira Code", "Consolas", monospace;--text-2xs: .7rem;--text-xs: .75rem;--text-sm: .85rem;--text-base: .95rem;--text-md: 1.05rem;--text-lg: 1.2rem;--text-xl: 1.4rem;--text-2xl: 1.8rem;--text-3xl: 2.2rem;--text-book: 1.25rem;--text-book-line-height: 1.9;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--space-0: 0;--space-0-5: .125rem;--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;--space-16: 4rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--header-height: 48px;--max-width-page: 1200px;--max-width-narrow: 900px;--max-width-form: 400px;--heatmap-0: #161b22;--heatmap-1: #0e4429;--heatmap-2: #006d32;--heatmap-3: #26a641;--heatmap-4: #39d353;--quote-char-narrator: #b0b0b0;--quote-char-0: #90CAF9;--quote-char-1: #A5D6A7;--quote-char-2: #FFCC80;--quote-char-3: #CE93D8;--quote-char-4: #F48FB1;--quote-char-5: #80DEEA;--quote-char-6: #FFE082;--quote-char-7: #BCAAA4;--quote-char-8: #B0BEC5;--quote-char-9: #C5E1A5;--quote-char-unassigned: #ff6b6b;--trophy-bronze: #cd7f32;--trophy-silver: #c0c0c0;--trophy-gold: #ffd700;--trophy-unearned: var(--color-text-disabled)}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--font-ui);font-size:var(--text-base);font-weight:var(--weight-normal);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--color-bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::placeholder{color:var(--color-text-dim)}a{color:var(--color-info);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-bg-active);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}html[data-theme=white]{--color-bg-page: #ffffff;--color-bg-surface: #f0f0f0;--color-bg-elevated: #e4e4e4;--color-bg-muted: #d8d8d8;--color-bg-input: #ffffff;--color-bg-hover: #cecece;--color-bg-active: #c2c2c2;--color-bg-overlay: #ffffff;--color-text-primary: #1a1a1a;--color-text-secondary: #3a3a3a;--color-text-muted: #5a5a5a;--color-text-dim: #808080;--color-text-disabled: #a0a0a0;--color-text-on-color: #ffffff;--color-border-default: #b8b8b8;--color-border-subtle: #cccccc;--color-border-strong: #909090;--color-border-focus: #c5304a;--color-accent: #c5304a;--color-accent-hover: #e04060;--color-accent-muted: #d4a0aa;--color-success: #1a9e52;--color-warning: #cc8400;--color-error: #d43545;--color-info: #2b7fd4;--color-success-light: rgba(26, 158, 82, .12);--color-warning-light: rgba(204, 132, 0, .1);--color-error-light: rgba(212, 53, 69, .1);--color-info-light: rgba(43, 127, 212, .1);--color-foundation: #4a90b0;--color-elementary: #3a8a3a;--color-intermediate: #b8960a;--color-foundation-light: rgba(74, 144, 176, .15);--color-elementary-light: rgba(58, 138, 58, .15);--color-intermediate-light: rgba(184, 150, 10, .15);--color-scrollbar-track: #d8d8d8;--color-scrollbar-thumb: #a0a0a0;--color-marked-bg: #d4edda;--color-marked-border: #28a745;--color-marked-text: #1a7a34;--color-marked-badge: #28a745;--color-fm-yellow: #d4a017;--color-si-teal: #1a8a7a;--color-fm-yellow-light: rgba(212, 160, 23, .15);--color-fm-yellow-subtle: rgba(212, 160, 23, .06);--color-fm-yellow-medium: rgba(212, 160, 23, .2);--color-fm-yellow-border: rgba(212, 160, 23, .5);--color-si-teal-light: rgba(26, 138, 122, .15);--color-si-teal-subtle: rgba(26, 138, 122, .06);--color-si-teal-medium: rgba(26, 138, 122, .2);--color-si-teal-border: rgba(26, 138, 122, .5);--color-pipeline-done: #28a745;--color-pipeline-pending: #999999;--color-interactive: #007c91;--color-interactive-hover: #00959e;--color-interactive-light: rgba(0, 124, 145, .1);--color-overlay: rgba(0, 0, 0, .5);--color-selection-bg: rgba(0, 0, 0, .06);--color-category-pink: #c44070;--color-category-purple: #7b1fa2;--color-hover-indicator: #cc6600;--color-tooltip: #856404;--color-quote-hover: #b35900;--color-quote-border: rgba(200, 40, 60, .5);--color-quote-border-reviewed: rgba(26, 158, 82, .5);--color-quote-border-unassigned: rgba(200, 40, 60, .6);--color-quote-border-group: rgba(120, 60, 160, .6);--color-quote-border-group-reviewed: rgba(120, 60, 160, .4);--color-quote-border-unsure: rgba(204, 132, 0, .5);--color-quote-bg-unsure: rgba(204, 132, 0, .12);--color-quote-border-nested: rgba(60, 120, 216, .5);--color-quote-bg-nested: rgba(60, 120, 216, .08);--char-0: #1a1a1a;--char-1: #1a1a1a;--char-2: #1a1a1a;--char-3: #1a1a1a;--char-4: #1a1a1a;--char-5: #1a1a1a;--char-6: #1a1a1a;--char-7: #1a1a1a;--char-8: #1a1a1a;--char-9: #5a5a5a;--quote-char-narrator: #555555;--quote-char-0: #1565c0;--quote-char-1: #2e7d32;--quote-char-2: #e65100;--quote-char-3: #7b1fa2;--quote-char-4: #c62828;--quote-char-5: #00838f;--quote-char-6: #f9a825;--quote-char-7: #4e342e;--quote-char-8: #37474f;--quote-char-9: #558b2f;--quote-char-unassigned: #d32f2f;--heatmap-0: #ebedf0;--heatmap-1: #9be9a8;--heatmap-2: #40c463;--heatmap-3: #30a14e;--heatmap-4: #216e39;--trophy-bronze: #a0622e;--trophy-silver: #808080;--trophy-gold: #c8a400;--trophy-unearned: #bbbbbb;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12)}html[data-theme=light-orange]{--color-bg-page: #fef6ee;--color-bg-surface: #f8eadb;--color-bg-elevated: #f0dcc8;--color-bg-muted: #e8cfb4;--color-bg-input: #fef6ee;--color-bg-hover: #e0c4a4;--color-bg-active: #d8b894;--color-bg-overlay: #fef6ee;--color-text-primary: #2a1f14;--color-text-secondary: #5a4430;--color-text-muted: #7a6050;--color-text-dim: #987a68;--color-text-disabled: #b8a090;--color-text-on-color: #ffffff;--color-border-default: #d0b498;--color-border-subtle: #e0c8b0;--color-border-strong: #b09878;--color-border-focus: #c5304a;--color-accent: #c5304a;--color-accent-hover: #e04060;--color-accent-muted: #d4a0aa;--color-success: #1a9e52;--color-warning: #cc8400;--color-error: #d43545;--color-info: #2b7fd4;--color-success-light: rgba(26, 158, 82, .12);--color-warning-light: rgba(204, 132, 0, .1);--color-error-light: rgba(212, 53, 69, .1);--color-info-light: rgba(43, 127, 212, .1);--color-foundation: #4a90b0;--color-elementary: #3a8a3a;--color-intermediate: #b8960a;--color-foundation-light: rgba(74, 144, 176, .15);--color-elementary-light: rgba(58, 138, 58, .15);--color-intermediate-light: rgba(184, 150, 10, .15);--color-scrollbar-track: #e8cfb4;--color-scrollbar-thumb: #b09878;--color-marked-bg: #d4edda;--color-marked-border: #28a745;--color-marked-text: #1a7a34;--color-marked-badge: #28a745;--color-fm-yellow: #d4a017;--color-si-teal: #1a8a7a;--color-fm-yellow-light: rgba(212, 160, 23, .15);--color-fm-yellow-subtle: rgba(212, 160, 23, .06);--color-fm-yellow-medium: rgba(212, 160, 23, .2);--color-fm-yellow-border: rgba(212, 160, 23, .5);--color-si-teal-light: rgba(26, 138, 122, .15);--color-si-teal-subtle: rgba(26, 138, 122, .06);--color-si-teal-medium: rgba(26, 138, 122, .2);--color-si-teal-border: rgba(26, 138, 122, .5);--color-pipeline-done: #28a745;--color-pipeline-pending: #987a68;--color-interactive: #007c91;--color-interactive-hover: #00959e;--color-interactive-light: rgba(0, 124, 145, .1);--color-overlay: rgba(0, 0, 0, .5);--color-selection-bg: rgba(0, 0, 0, .06);--color-category-pink: #c44070;--color-category-purple: #7b1fa2;--color-hover-indicator: #cc6600;--color-tooltip: #856404;--color-quote-hover: #b35900;--color-quote-border: rgba(200, 40, 60, .5);--color-quote-border-reviewed: rgba(26, 158, 82, .5);--color-quote-border-unassigned: rgba(200, 40, 60, .6);--color-quote-border-group: rgba(120, 60, 160, .6);--color-quote-border-group-reviewed: rgba(120, 60, 160, .4);--color-quote-border-unsure: rgba(204, 132, 0, .5);--color-quote-bg-unsure: rgba(204, 132, 0, .12);--color-quote-border-nested: rgba(60, 120, 216, .5);--color-quote-bg-nested: rgba(60, 120, 216, .08);--char-0: #2a1f14;--char-1: #2a1f14;--char-2: #2a1f14;--char-3: #2a1f14;--char-4: #2a1f14;--char-5: #2a1f14;--char-6: #2a1f14;--char-7: #2a1f14;--char-8: #2a1f14;--char-9: #7a6050;--quote-char-narrator: #6a5440;--quote-char-0: #1565c0;--quote-char-1: #2e7d32;--quote-char-2: #bf4500;--quote-char-3: #7b1fa2;--quote-char-4: #c62828;--quote-char-5: #00838f;--quote-char-6: #c48000;--quote-char-7: #4e342e;--quote-char-8: #37474f;--quote-char-9: #558b2f;--quote-char-unassigned: #d32f2f;--heatmap-0: #f0dbc6;--heatmap-1: #9be9a8;--heatmap-2: #40c463;--heatmap-3: #30a14e;--heatmap-4: #216e39;--trophy-bronze: #a0622e;--trophy-silver: #808080;--trophy-gold: #c8a400;--trophy-unearned: #c4b0a0;--shadow-sm: 0 1px 2px rgba(80, 50, 20, .08);--shadow-md: 0 4px 12px rgba(80, 50, 20, .1);--shadow-lg: 0 8px 24px rgba(80, 50, 20, .12)}html[data-theme=light-blue]{--color-bg-page: #f0f6fc;--color-bg-surface: #e4eef8;--color-bg-elevated: #d6e4f0;--color-bg-muted: #c8d8e6;--color-bg-input: #f0f6fc;--color-bg-hover: #bccede;--color-bg-active: #b0c4d4;--color-bg-overlay: #f0f6fc;--color-text-primary: #141c28;--color-text-secondary: #304560;--color-text-muted: #506080;--color-text-dim: #708498;--color-text-disabled: #90a8b8;--color-text-on-color: #ffffff;--color-border-default: #a0b8cc;--color-border-subtle: #b8cce0;--color-border-strong: #7898b0;--color-border-focus: #c5304a;--color-accent: #c5304a;--color-accent-hover: #e04060;--color-accent-muted: #d4a0aa;--color-success: #1a9e52;--color-warning: #cc8400;--color-error: #d43545;--color-info: #2b7fd4;--color-success-light: rgba(26, 158, 82, .12);--color-warning-light: rgba(204, 132, 0, .1);--color-error-light: rgba(212, 53, 69, .1);--color-info-light: rgba(43, 127, 212, .1);--color-foundation: #4a90b0;--color-elementary: #3a8a3a;--color-intermediate: #b8960a;--color-foundation-light: rgba(74, 144, 176, .15);--color-elementary-light: rgba(58, 138, 58, .15);--color-intermediate-light: rgba(184, 150, 10, .15);--color-scrollbar-track: #c8d8e6;--color-scrollbar-thumb: #7898b0;--color-marked-bg: #d4edda;--color-marked-border: #28a745;--color-marked-text: #1a7a34;--color-marked-badge: #28a745;--color-fm-yellow: #d4a017;--color-si-teal: #1a8a7a;--color-fm-yellow-light: rgba(212, 160, 23, .15);--color-fm-yellow-subtle: rgba(212, 160, 23, .06);--color-fm-yellow-medium: rgba(212, 160, 23, .2);--color-fm-yellow-border: rgba(212, 160, 23, .5);--color-si-teal-light: rgba(26, 138, 122, .15);--color-si-teal-subtle: rgba(26, 138, 122, .06);--color-si-teal-medium: rgba(26, 138, 122, .2);--color-si-teal-border: rgba(26, 138, 122, .5);--color-pipeline-done: #28a745;--color-pipeline-pending: #708498;--color-interactive: #006d8f;--color-interactive-hover: #0088a0;--color-interactive-light: rgba(0, 109, 143, .1);--color-overlay: rgba(0, 0, 0, .5);--color-selection-bg: rgba(0, 0, 0, .06);--color-category-pink: #c44070;--color-category-purple: #7b1fa2;--color-hover-indicator: #cc6600;--color-tooltip: #856404;--color-quote-hover: #b35900;--color-quote-border: rgba(200, 40, 60, .5);--color-quote-border-reviewed: rgba(26, 158, 82, .5);--color-quote-border-unassigned: rgba(200, 40, 60, .6);--color-quote-border-group: rgba(120, 60, 160, .6);--color-quote-border-group-reviewed: rgba(120, 60, 160, .4);--color-quote-border-unsure: rgba(204, 132, 0, .5);--color-quote-bg-unsure: rgba(204, 132, 0, .12);--color-quote-border-nested: rgba(60, 120, 216, .5);--color-quote-bg-nested: rgba(60, 120, 216, .08);--char-0: #141c28;--char-1: #141c28;--char-2: #141c28;--char-3: #141c28;--char-4: #141c28;--char-5: #141c28;--char-6: #141c28;--char-7: #141c28;--char-8: #141c28;--char-9: #506080;--quote-char-narrator: #405070;--quote-char-0: #1565c0;--quote-char-1: #2e7d32;--quote-char-2: #e65100;--quote-char-3: #7b1fa2;--quote-char-4: #c62828;--quote-char-5: #00838f;--quote-char-6: #c48000;--quote-char-7: #4e342e;--quote-char-8: #37474f;--quote-char-9: #558b2f;--quote-char-unassigned: #d32f2f;--heatmap-0: #d0dfe8;--heatmap-1: #9be9a8;--heatmap-2: #40c463;--heatmap-3: #30a14e;--heatmap-4: #216e39;--trophy-bronze: #a0622e;--trophy-silver: #808080;--trophy-gold: #c8a400;--trophy-unearned: #a0b4c4;--shadow-sm: 0 1px 2px rgba(20, 40, 80, .08);--shadow-md: 0 4px 12px rgba(20, 40, 80, .1);--shadow-lg: 0 8px 24px rgba(20, 40, 80, .12)}html[data-theme=light-green]{--color-bg-page: #f0f8f0;--color-bg-surface: #e2f0e2;--color-bg-elevated: #d4e6d4;--color-bg-muted: #c6dac6;--color-bg-input: #f0f8f0;--color-bg-hover: #bad0ba;--color-bg-active: #aec6ae;--color-bg-overlay: #f0f8f0;--color-text-primary: #142814;--color-text-secondary: #2a4c2a;--color-text-muted: #4a6a4a;--color-text-dim: #6a8a6a;--color-text-disabled: #8ab08a;--color-text-on-color: #ffffff;--color-border-default: #98bc98;--color-border-subtle: #b0d0b0;--color-border-strong: #70a070;--color-border-focus: #c5304a;--color-accent: #c5304a;--color-accent-hover: #e04060;--color-accent-muted: #d4a0aa;--color-success: #1a9e52;--color-warning: #cc8400;--color-error: #d43545;--color-info: #2b7fd4;--color-success-light: rgba(26, 158, 82, .12);--color-warning-light: rgba(204, 132, 0, .1);--color-error-light: rgba(212, 53, 69, .1);--color-info-light: rgba(43, 127, 212, .1);--color-foundation: #4a90b0;--color-elementary: #3a8a3a;--color-intermediate: #b8960a;--color-foundation-light: rgba(74, 144, 176, .15);--color-elementary-light: rgba(58, 138, 58, .15);--color-intermediate-light: rgba(184, 150, 10, .15);--color-scrollbar-track: #c6dac6;--color-scrollbar-thumb: #70a070;--color-marked-bg: #b8e6b8;--color-marked-border: #28a745;--color-marked-text: #1a7a34;--color-marked-badge: #28a745;--color-fm-yellow: #d4a017;--color-si-teal: #1a8a7a;--color-fm-yellow-light: rgba(212, 160, 23, .15);--color-fm-yellow-subtle: rgba(212, 160, 23, .06);--color-fm-yellow-medium: rgba(212, 160, 23, .2);--color-fm-yellow-border: rgba(212, 160, 23, .5);--color-si-teal-light: rgba(26, 138, 122, .15);--color-si-teal-subtle: rgba(26, 138, 122, .06);--color-si-teal-medium: rgba(26, 138, 122, .2);--color-si-teal-border: rgba(26, 138, 122, .5);--color-pipeline-done: #28a745;--color-pipeline-pending: #6a8a6a;--color-interactive: #007c91;--color-interactive-hover: #00959e;--color-interactive-light: rgba(0, 124, 145, .1);--color-overlay: rgba(0, 0, 0, .5);--color-selection-bg: rgba(0, 0, 0, .06);--color-category-pink: #c44070;--color-category-purple: #7b1fa2;--color-hover-indicator: #cc6600;--color-tooltip: #856404;--color-quote-hover: #b35900;--color-quote-border: rgba(200, 40, 60, .5);--color-quote-border-reviewed: rgba(26, 158, 82, .5);--color-quote-border-unassigned: rgba(200, 40, 60, .6);--color-quote-border-group: rgba(120, 60, 160, .6);--color-quote-border-group-reviewed: rgba(120, 60, 160, .4);--color-quote-border-unsure: rgba(204, 132, 0, .5);--color-quote-bg-unsure: rgba(204, 132, 0, .12);--color-quote-border-nested: rgba(60, 120, 216, .5);--color-quote-bg-nested: rgba(60, 120, 216, .08);--char-0: #142814;--char-1: #142814;--char-2: #142814;--char-3: #142814;--char-4: #142814;--char-5: #142814;--char-6: #142814;--char-7: #142814;--char-8: #142814;--char-9: #4a6a4a;--quote-char-narrator: #3a5a3a;--quote-char-0: #1565c0;--quote-char-1: #1b6e24;--quote-char-2: #e65100;--quote-char-3: #7b1fa2;--quote-char-4: #c62828;--quote-char-5: #00838f;--quote-char-6: #c48000;--quote-char-7: #4e342e;--quote-char-8: #37474f;--quote-char-9: #3d6e22;--quote-char-unassigned: #d32f2f;--heatmap-0: #cce0cc;--heatmap-1: #9be9a8;--heatmap-2: #40c463;--heatmap-3: #30a14e;--heatmap-4: #216e39;--trophy-bronze: #a0622e;--trophy-silver: #808080;--trophy-gold: #c8a400;--trophy-unearned: #9ab89a;--shadow-sm: 0 1px 2px rgba(20, 60, 20, .08);--shadow-md: 0 4px 12px rgba(20, 60, 20, .1);--shadow-lg: 0 8px 24px rgba(20, 60, 20, .12)}html[data-theme=light-purple]{--color-bg-page: #f5f0fa;--color-bg-surface: #eae2f4;--color-bg-elevated: #ddd2ec;--color-bg-muted: #d0c2e0;--color-bg-input: #f5f0fa;--color-bg-hover: #c6b4d6;--color-bg-active: #baa8cc;--color-bg-overlay: #f5f0fa;--color-text-primary: #1e142a;--color-text-secondary: #3e2a5a;--color-text-muted: #5e4a7a;--color-text-dim: #806a9a;--color-text-disabled: #a08eb4;--color-text-on-color: #ffffff;--color-border-default: #b098c8;--color-border-subtle: #c4b0d8;--color-border-strong: #9078b0;--color-border-focus: #c5304a;--color-accent: #c5304a;--color-accent-hover: #e04060;--color-accent-muted: #d4a0aa;--color-success: #1a9e52;--color-warning: #cc8400;--color-error: #d43545;--color-info: #2b7fd4;--color-success-light: rgba(26, 158, 82, .12);--color-warning-light: rgba(204, 132, 0, .1);--color-error-light: rgba(212, 53, 69, .1);--color-info-light: rgba(43, 127, 212, .1);--color-foundation: #4a90b0;--color-elementary: #3a8a3a;--color-intermediate: #b8960a;--color-foundation-light: rgba(74, 144, 176, .15);--color-elementary-light: rgba(58, 138, 58, .15);--color-intermediate-light: rgba(184, 150, 10, .15);--color-scrollbar-track: #d0c2e0;--color-scrollbar-thumb: #9078b0;--color-marked-bg: #d4edda;--color-marked-border: #28a745;--color-marked-text: #1a7a34;--color-marked-badge: #28a745;--color-fm-yellow: #d4a017;--color-si-teal: #1a8a7a;--color-fm-yellow-light: rgba(212, 160, 23, .15);--color-fm-yellow-subtle: rgba(212, 160, 23, .06);--color-fm-yellow-medium: rgba(212, 160, 23, .2);--color-fm-yellow-border: rgba(212, 160, 23, .5);--color-si-teal-light: rgba(26, 138, 122, .15);--color-si-teal-subtle: rgba(26, 138, 122, .06);--color-si-teal-medium: rgba(26, 138, 122, .2);--color-si-teal-border: rgba(26, 138, 122, .5);--color-pipeline-done: #28a745;--color-pipeline-pending: #806a9a;--color-interactive: #007c91;--color-interactive-hover: #00959e;--color-interactive-light: rgba(0, 124, 145, .1);--color-overlay: rgba(0, 0, 0, .5);--color-selection-bg: rgba(0, 0, 0, .06);--color-category-pink: #c44070;--color-category-purple: #7b1fa2;--color-hover-indicator: #cc6600;--color-tooltip: #856404;--color-quote-hover: #b35900;--color-quote-border: rgba(200, 40, 60, .5);--color-quote-border-reviewed: rgba(26, 158, 82, .5);--color-quote-border-unassigned: rgba(200, 40, 60, .6);--color-quote-border-group: rgba(120, 60, 160, .6);--color-quote-border-group-reviewed: rgba(120, 60, 160, .4);--color-quote-border-unsure: rgba(204, 132, 0, .5);--color-quote-bg-unsure: rgba(204, 132, 0, .12);--color-quote-border-nested: rgba(60, 120, 216, .5);--color-quote-bg-nested: rgba(60, 120, 216, .08);--char-0: #1e142a;--char-1: #1e142a;--char-2: #1e142a;--char-3: #1e142a;--char-4: #1e142a;--char-5: #1e142a;--char-6: #1e142a;--char-7: #1e142a;--char-8: #1e142a;--char-9: #5e4a7a;--quote-char-narrator: #4e3a6a;--quote-char-0: #1565c0;--quote-char-1: #2e7d32;--quote-char-2: #e65100;--quote-char-3: #6a1b9a;--quote-char-4: #c62828;--quote-char-5: #00838f;--quote-char-6: #c48000;--quote-char-7: #4e342e;--quote-char-8: #37474f;--quote-char-9: #558b2f;--quote-char-unassigned: #d32f2f;--heatmap-0: #d8cce4;--heatmap-1: #9be9a8;--heatmap-2: #40c463;--heatmap-3: #30a14e;--heatmap-4: #216e39;--trophy-bronze: #a0622e;--trophy-silver: #808080;--trophy-gold: #c8a400;--trophy-unearned: #b09ec4;--shadow-sm: 0 1px 2px rgba(40, 20, 60, .08);--shadow-md: 0 4px 12px rgba(40, 20, 60, .1);--shadow-lg: 0 8px 24px rgba(40, 20, 60, .12)}html[data-theme=light-pink]{--color-bg-page: #fdf0f4;--color-bg-surface: #f4e0e8;--color-bg-elevated: #ecd2dc;--color-bg-muted: #e0c2d0;--color-bg-input: #fdf0f4;--color-bg-hover: #d8b4c4;--color-bg-active: #cca8b8;--color-bg-overlay: #fdf0f4;--color-text-primary: #2a141e;--color-text-secondary: #5a2a40;--color-text-muted: #7a4a60;--color-text-dim: #9a6a80;--color-text-disabled: #b890a0;--color-text-on-color: #ffffff;--color-border-default: #c898b0;--color-border-subtle: #dab0c4;--color-border-strong: #b07890;--color-border-focus: #c5304a;--color-accent: #c5304a;--color-accent-hover: #e04060;--color-accent-muted: #d4a0aa;--color-success: #1a9e52;--color-warning: #cc8400;--color-error: #d43545;--color-info: #2b7fd4;--color-success-light: rgba(26, 158, 82, .12);--color-warning-light: rgba(204, 132, 0, .1);--color-error-light: rgba(212, 53, 69, .1);--color-info-light: rgba(43, 127, 212, .1);--color-foundation: #4a90b0;--color-elementary: #3a8a3a;--color-intermediate: #b8960a;--color-foundation-light: rgba(74, 144, 176, .15);--color-elementary-light: rgba(58, 138, 58, .15);--color-intermediate-light: rgba(184, 150, 10, .15);--color-scrollbar-track: #e0c2d0;--color-scrollbar-thumb: #b07890;--color-marked-bg: #d4edda;--color-marked-border: #28a745;--color-marked-text: #1a7a34;--color-marked-badge: #28a745;--color-fm-yellow: #d4a017;--color-si-teal: #1a8a7a;--color-fm-yellow-light: rgba(212, 160, 23, .15);--color-fm-yellow-subtle: rgba(212, 160, 23, .06);--color-fm-yellow-medium: rgba(212, 160, 23, .2);--color-fm-yellow-border: rgba(212, 160, 23, .5);--color-si-teal-light: rgba(26, 138, 122, .15);--color-si-teal-subtle: rgba(26, 138, 122, .06);--color-si-teal-medium: rgba(26, 138, 122, .2);--color-si-teal-border: rgba(26, 138, 122, .5);--color-pipeline-done: #28a745;--color-pipeline-pending: #9a6a80;--color-interactive: #007c91;--color-interactive-hover: #00959e;--color-interactive-light: rgba(0, 124, 145, .1);--color-overlay: rgba(0, 0, 0, .5);--color-selection-bg: rgba(0, 0, 0, .06);--color-category-pink: #c44070;--color-category-purple: #7b1fa2;--color-hover-indicator: #cc6600;--color-tooltip: #856404;--color-quote-hover: #b35900;--color-quote-border: rgba(200, 40, 60, .5);--color-quote-border-reviewed: rgba(26, 158, 82, .5);--color-quote-border-unassigned: rgba(200, 40, 60, .6);--color-quote-border-group: rgba(120, 60, 160, .6);--color-quote-border-group-reviewed: rgba(120, 60, 160, .4);--color-quote-border-unsure: rgba(204, 132, 0, .5);--color-quote-bg-unsure: rgba(204, 132, 0, .12);--color-quote-border-nested: rgba(60, 120, 216, .5);--color-quote-bg-nested: rgba(60, 120, 216, .08);--char-0: #2a141e;--char-1: #2a141e;--char-2: #2a141e;--char-3: #2a141e;--char-4: #2a141e;--char-5: #2a141e;--char-6: #2a141e;--char-7: #2a141e;--char-8: #2a141e;--char-9: #7a4a60;--quote-char-narrator: #6a3a50;--quote-char-0: #1565c0;--quote-char-1: #2e7d32;--quote-char-2: #e65100;--quote-char-3: #7b1fa2;--quote-char-4: #b71c1c;--quote-char-5: #00838f;--quote-char-6: #c48000;--quote-char-7: #4e342e;--quote-char-8: #37474f;--quote-char-9: #558b2f;--quote-char-unassigned: #d32f2f;--heatmap-0: #e8c8d4;--heatmap-1: #9be9a8;--heatmap-2: #40c463;--heatmap-3: #30a14e;--heatmap-4: #216e39;--trophy-bronze: #a0622e;--trophy-silver: #808080;--trophy-gold: #c8a400;--trophy-unearned: #c49aac;--shadow-sm: 0 1px 2px rgba(60, 20, 40, .08);--shadow-md: 0 4px 12px rgba(60, 20, 40, .1);--shadow-lg: 0 8px 24px rgba(60, 20, 40, .12)}html[data-theme=light-gray]{--color-bg-page: #f2f2f2;--color-bg-surface: #e4e4e4;--color-bg-elevated: #d6d6d6;--color-bg-muted: #c8c8c8;--color-bg-input: #f2f2f2;--color-bg-hover: #c0c0c0;--color-bg-active: #b4b4b4;--color-bg-overlay: #f2f2f2;--color-text-primary: #1a1a1a;--color-text-secondary: #383838;--color-text-muted: #555555;--color-text-dim: #757575;--color-text-disabled: #959595;--color-text-on-color: #ffffff;--color-border-default: #a8a8a8;--color-border-subtle: #c0c0c0;--color-border-strong: #808080;--color-border-focus: #c5304a;--color-accent: #c5304a;--color-accent-hover: #e04060;--color-accent-muted: #d4a0aa;--color-success: #1a9e52;--color-warning: #cc8400;--color-error: #d43545;--color-info: #2b7fd4;--color-success-light: rgba(26, 158, 82, .12);--color-warning-light: rgba(204, 132, 0, .1);--color-error-light: rgba(212, 53, 69, .1);--color-info-light: rgba(43, 127, 212, .1);--color-foundation: #4a90b0;--color-elementary: #3a8a3a;--color-intermediate: #b8960a;--color-foundation-light: rgba(74, 144, 176, .15);--color-elementary-light: rgba(58, 138, 58, .15);--color-intermediate-light: rgba(184, 150, 10, .15);--color-scrollbar-track: #c8c8c8;--color-scrollbar-thumb: #808080;--color-marked-bg: #d4edda;--color-marked-border: #28a745;--color-marked-text: #1a7a34;--color-marked-badge: #28a745;--color-fm-yellow: #d4a017;--color-si-teal: #1a8a7a;--color-fm-yellow-light: rgba(212, 160, 23, .15);--color-fm-yellow-subtle: rgba(212, 160, 23, .06);--color-fm-yellow-medium: rgba(212, 160, 23, .2);--color-fm-yellow-border: rgba(212, 160, 23, .5);--color-si-teal-light: rgba(26, 138, 122, .15);--color-si-teal-subtle: rgba(26, 138, 122, .06);--color-si-teal-medium: rgba(26, 138, 122, .2);--color-si-teal-border: rgba(26, 138, 122, .5);--color-pipeline-done: #28a745;--color-pipeline-pending: #757575;--color-interactive: #007c91;--color-interactive-hover: #00959e;--color-interactive-light: rgba(0, 124, 145, .1);--color-overlay: rgba(0, 0, 0, .5);--color-selection-bg: rgba(0, 0, 0, .06);--color-category-pink: #c44070;--color-category-purple: #7b1fa2;--color-hover-indicator: #cc6600;--color-tooltip: #856404;--color-quote-hover: #b35900;--color-quote-border: rgba(200, 40, 60, .5);--color-quote-border-reviewed: rgba(26, 158, 82, .5);--color-quote-border-unassigned: rgba(200, 40, 60, .6);--color-quote-border-group: rgba(120, 60, 160, .6);--color-quote-border-group-reviewed: rgba(120, 60, 160, .4);--color-quote-border-unsure: rgba(204, 132, 0, .5);--color-quote-bg-unsure: rgba(204, 132, 0, .12);--color-quote-border-nested: rgba(60, 120, 216, .5);--color-quote-bg-nested: rgba(60, 120, 216, .08);--char-0: #1a1a1a;--char-1: #1a1a1a;--char-2: #1a1a1a;--char-3: #1a1a1a;--char-4: #1a1a1a;--char-5: #1a1a1a;--char-6: #1a1a1a;--char-7: #1a1a1a;--char-8: #1a1a1a;--char-9: #555555;--quote-char-narrator: #505050;--quote-char-0: #1565c0;--quote-char-1: #2e7d32;--quote-char-2: #e65100;--quote-char-3: #7b1fa2;--quote-char-4: #c62828;--quote-char-5: #00838f;--quote-char-6: #c48000;--quote-char-7: #4e342e;--quote-char-8: #37474f;--quote-char-9: #558b2f;--quote-char-unassigned: #d32f2f;--heatmap-0: #d4d4d4;--heatmap-1: #9be9a8;--heatmap-2: #40c463;--heatmap-3: #30a14e;--heatmap-4: #216e39;--trophy-bronze: #a0622e;--trophy-silver: #808080;--trophy-gold: #c8a400;--trophy-unearned: #b0b0b0;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1)}.trophy-toast-container{position:fixed;top:calc(var(--header-height) + 12px);right:16px;z-index:10000;pointer-events:none}.trophy-toast-card{display:flex;align-items:center;gap:var(--space-5);width:500px;padding:var(--space-6) var(--space-8);background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-left:3px solid var(--trophy-gold);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);position:relative;overflow:hidden;cursor:pointer;pointer-events:auto;animation:trophy-toast-slide-in .4s ease-out}.trophy-toast-card.trophy-toast-exit{animation:trophy-toast-slide-out .3s ease-in forwards}.trophy-toast-icon-wrap{flex-shrink:0;width:60px;height:60px;border-radius:var(--radius-full);background:color-mix(in srgb,var(--trophy-gold) 12%,transparent);display:flex;align-items:center;justify-content:center;animation:trophy-toast-shimmer 2s ease-in-out infinite}.trophy-toast-icon{font-size:var(--text-3xl);line-height:1;display:inline-block;animation:trophy-toast-icon-pop .5s cubic-bezier(.34,1.56,.64,1) .15s both}.trophy-toast-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.trophy-toast-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.12em;color:var(--trophy-gold);line-height:1.2}.trophy-toast-name{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.trophy-toast-description{font-size:var(--text-base);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.trophy-toast-counter{flex-shrink:0;font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--trophy-gold);background:color-mix(in srgb,var(--trophy-gold) 10%,transparent);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);line-height:1.3}.trophy-toast-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:color-mix(in srgb,var(--trophy-gold) 15%,transparent)}.trophy-toast-progress-fill{height:100%;background:var(--trophy-gold);animation:trophy-toast-countdown 10s linear forwards}.trophy-case{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.trophy-case-item{display:flex;flex-direction:column;align-items:center;padding:var(--space-3);border-radius:var(--radius-lg);background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);transition:border-color var(--transition-fast)}.trophy-case-item.earned{border-color:var(--trophy-gold)}.trophy-case-item.locked{opacity:.45;filter:grayscale(.8)}.trophy-case-icon{font-size:var(--text-2xl);margin-bottom:var(--space-1)}.trophy-case-name{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-primary);text-align:center}.trophy-case-hint{font-size:var(--text-2xs);color:var(--color-text-muted);text-align:center;font-style:italic;margin-top:var(--space-1)}.trophy-case-date{font-size:var(--text-2xs);color:var(--color-text-dim);margin-top:var(--space-1)}@keyframes trophy-toast-slide-in{0%{opacity:0;transform:translate(100%)}70%{transform:translate(-4%)}to{opacity:1;transform:translate(0)}}@keyframes trophy-toast-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(120%)}}@keyframes trophy-toast-icon-pop{0%{transform:scale(0) rotate(-180deg);opacity:0}60%{transform:scale(1.2) rotate(8deg);opacity:1}80%{transform:scale(.95) rotate(-2deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes trophy-toast-countdown{0%{width:100%}to{width:0%}}@keyframes trophy-toast-shimmer{0%,to{opacity:1}50%{opacity:.7}}.level-up-backdrop{position:fixed;inset:0;z-index:11000;background:#000000d9;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:level-up-backdrop-in .4s ease-out;cursor:pointer}.level-up-content{text-align:center;position:relative;padding:var(--space-12) var(--space-8);min-width:320px}.level-up-old{font-size:var(--text-lg);color:var(--color-text-muted);margin-bottom:var(--space-4);animation:level-up-old-fade 1.2s ease-out forwards}.level-up-arrow{font-size:var(--text-2xl);color:var(--color-text-dim);margin-bottom:var(--space-4);animation:level-up-arrow-pulse .8s ease-in-out .6s both}.level-up-new{font-size:var(--text-3xl);font-weight:var(--weight-bold);margin-bottom:var(--space-6);animation:level-up-new-enter .8s ease-out .8s both;background-size:200% auto}.level-up-new.has-shine{background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:level-up-new-enter .8s ease-out .8s both,level-up-shine 2s linear 1.6s infinite}.level-up-message{font-size:var(--text-base);color:var(--color-text-secondary);margin-top:var(--space-4);animation:level-up-text-fade .5s ease-out 1.4s both}.level-up-dismiss{font-size:var(--text-xs);color:var(--color-text-dim);margin-top:var(--space-8);animation:level-up-text-fade .5s ease-out 2s both}.level-up-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.level-up-particles:before,.level-up-particles:after{content:"";position:absolute;top:50%;left:50%;width:4px;height:4px;border-radius:var(--radius-full);animation:level-up-particle-burst 1.5s ease-out .8s both}.level-up-particles:before{box-shadow:-60px -80px 0 var(--trophy-gold),40px -90px 0 var(--color-success),80px -30px 0 var(--color-info),70px 50px 0 var(--trophy-gold),-50px 70px 0 var(--color-warning),-80px 10px 0 var(--color-success),20px 80px 0 var(--color-info),-30px -50px 0 var(--color-warning)}.level-up-particles:after{box-shadow:-40px -60px 0 var(--color-info),60px -70px 0 var(--trophy-gold),90px 20px 0 var(--color-warning),50px 60px 0 var(--color-success),-70px 40px 0 var(--trophy-gold),-90px -20px 0 var(--color-info),30px 90px 0 var(--color-warning),-20px -80px 0 var(--color-success)}@keyframes level-up-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes level-up-old-fade{0%{opacity:1;transform:scale(1)}60%{opacity:.3;transform:scale(.9)}to{opacity:.2;transform:scale(.8) translateY(-10px);filter:blur(2px)}}@keyframes level-up-arrow-pulse{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.2)}to{opacity:.6;transform:scale(1)}}@keyframes level-up-new-enter{0%{opacity:0;transform:scale(1.8);filter:blur(12px)}50%{opacity:1;transform:scale(1.05);filter:blur(0)}to{opacity:1;transform:scale(1)}}@keyframes level-up-shine{0%{background-position:-200% center}to{background-position:200% center}}@keyframes level-up-text-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes level-up-particle-burst{0%{transform:scale(0);opacity:1}50%{transform:scale(1.5);opacity:.8}to{transform:scale(2.5);opacity:0}}.offline-banner{background:var(--color-warning);color:var(--color-bg-surface);text-align:center;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.02em;z-index:100}.pending-changes-badge{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--color-warning);color:var(--color-text-on-color);padding:var(--space-0-5) var(--space-2);border-radius:10px;font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap}.offline-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-0-5) var(--space-2);border-radius:10px;font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap}.offline-badge.available{background:var(--color-success);color:var(--color-text-on-color)}.offline-badge.downloading{background:var(--color-info);color:var(--color-text-on-color)}.sync-status-bar{background:var(--color-info-light);color:var(--color-text-muted);text-align:center;padding:var(--space-1) var(--space-4);font-size:var(--text-xs);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.sync-status-bar.syncing{background:var(--color-info-light)}.sync-status-bar.success{background:var(--color-success-light);color:var(--color-success)}.sync-status-bar.error{background:var(--color-error-light);color:var(--color-error)}.sync-progress-bar{width:120px;height:4px;background:var(--color-bg-active);border-radius:2px;overflow:hidden}.sync-progress-fill{height:100%;background:var(--color-info);transition:width .3s ease;border-radius:2px}.session-ended-banner{background:var(--color-error);color:#fff;text-align:center;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.02em;z-index:100;display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.session-ended-login-btn{background:#fff;color:var(--color-error);border:none;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap}.session-ended-login-btn:hover{opacity:.9}.theme-picker{position:relative}.theme-picker-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.theme-picker-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.theme-picker-btn svg{width:16px;height:16px}.theme-picker-dropdown{position:absolute;top:calc(100% + 6px);right:0;display:grid;grid-template-columns:repeat(4,36px);gap:var(--space-2);padding:var(--space-3);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:300}.theme-swatch{width:36px;height:36px;border-radius:var(--radius-sm);border:2px solid var(--color-border-subtle);cursor:pointer;transition:border-color var(--transition-fast);padding:0;background:none}.theme-swatch:hover{border-color:var(--color-text-muted)}.theme-swatch.active{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.theme-picker-backdrop{position:fixed;inset:0;z-index:299}.user-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;flex-shrink:0;user-select:none;object-fit:cover}.user-avatar-emoji{border-radius:50%;line-height:1}.user-avatar-sm{width:24px;height:24px;font-size:14px}.user-avatar-md{width:36px;height:36px;font-size:20px}.user-avatar-lg{width:80px;height:80px;font-size:44px}.emoji-picker{display:flex;flex-direction:column;gap:var(--space-3)}.emoji-picker-tabs{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1);scrollbar-width:thin}.emoji-picker-tab{display:flex;align-items:center;gap:var(--space-1);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-full, 9999px);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-family:var(--font-ui);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast)}.emoji-picker-tab:hover{background:var(--color-bg-page);border-color:var(--color-border-focus)}.emoji-picker-tab.active{background:var(--color-accent);color:var(--color-text-primary);border-color:var(--color-accent)}.emoji-picker-tab-icon{width:16px;height:16px;border-radius:3px}.emoji-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:var(--space-2)}.emoji-picker-item{width:56px;height:56px;display:flex;align-items:center;justify-content:center;padding:var(--space-1);background:var(--color-bg-elevated);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.emoji-picker-item:hover{background:var(--color-bg-page);transform:scale(1.08);box-shadow:0 4px 12px #00000026}.emoji-picker-item.selected{border-color:var(--trophy-gold);box-shadow:0 0 0 2px color-mix(in srgb,var(--trophy-gold) 30%,transparent)}.emoji-picker-item-img{width:100%;height:100%;border-radius:calc(var(--radius-md) - 4px);object-fit:cover}.color-picker{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.color-swatch{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{box-shadow:0 0 0 3px var(--color-bg-page),0 0 0 5px var(--color-accent)}.profile-hero{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6) 0 var(--space-4) 0}.profile-hero-avatar{cursor:pointer;transition:transform var(--transition-fast),opacity var(--transition-fast)}.profile-hero-avatar:hover{transform:scale(1.05);opacity:.9}.profile-hero-email{font-size:var(--text-sm);color:var(--color-text-muted)}.profile-hero-date{font-size:var(--text-xs);color:var(--color-text-dim)}.profile-name-display{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.profile-name-display:hover .profile-name-text{border-bottom:1px dashed var(--color-text-muted)}.profile-name-text{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text-primary);border-bottom:1px dashed transparent;transition:border-color var(--transition-fast)}.profile-name-edit-icon{font-size:var(--text-sm);color:var(--color-text-dim)}.profile-name-edit{display:flex;align-items:center;gap:var(--space-2)}.profile-name-input{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text-primary);background:transparent;border:none;border-bottom:2px solid var(--color-border-focus);outline:none;text-align:center;font-family:var(--font-ui);padding:0 var(--space-1);min-width:120px;max-width:300px}.profile-name-save-btn{background:var(--color-accent);color:var(--color-text-primary);border:none;border-radius:var(--radius-full, 9999px);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-family:var(--font-ui);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--transition-fast)}.profile-name-save-btn:hover:not(:disabled){background:var(--color-accent-hover)}.profile-name-save-btn:disabled{opacity:.6;cursor:not-allowed}.profile-inline-error{font-size:var(--text-sm);color:var(--color-error, #ef4444);text-align:center;margin-top:var(--space-1)}.profile-avatar-saving{font-size:var(--text-xs);color:var(--color-text-dim);text-align:center}.app-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg-page);color:var(--color-text-primary)}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);height:var(--header-height);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-default);flex-shrink:0;position:sticky;top:0;z-index:200}.app-header-left{display:flex;align-items:center;gap:var(--space-6)}.app-logo{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-decoration:none;transition:all var(--transition-fast)}.app-logo:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.app-logo.active{color:var(--color-text-primary);background:var(--color-bg-active)}.app-nav{display:flex;gap:var(--space-1)}.app-nav a{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:var(--text-sm);transition:all var(--transition-fast)}.app-nav a:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.app-nav a.active{color:var(--color-text-primary);background:var(--color-bg-active)}.app-header-right{display:flex;align-items:center;gap:var(--space-5);min-width:0}.app-player-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);border-radius:var(--radius-md);border:1px solid var(--color-border-subtle);background:var(--color-bg-surface);text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);max-width:180px;overflow:hidden}.app-player-badge:hover{background:var(--color-bg-hover);border-color:var(--color-border-default);box-shadow:0 2px 8px #0000001a;text-decoration:none}.app-player-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-primary);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.app-logout-btn{background:transparent;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.app-logout-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.app-content{flex:1;display:flex;flex-direction:column;overflow:visible;min-height:0}.tooltip-trigger{display:inline-flex}.tooltip-popup{position:fixed;z-index:9999;background:var(--color-bg-active);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-2xs);color:var(--color-text-primary);white-space:nowrap;pointer-events:none;animation:tooltip-fade-in .1s ease}@keyframes tooltip-fade-in{0%{opacity:0}to{opacity:1}}.tooltip-rich{white-space:normal;max-width:250px;border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.tooltip-trophy .trophy-tooltip-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary)}.tooltip-trophy .trophy-tooltip-desc{font-size:var(--text-xs);color:var(--color-text-muted)}.tooltip-trophy .trophy-tooltip-tier{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:var(--space-1)}.tooltip-speaker{background:var(--color-bg-muted);color:var(--color-tooltip);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-ui);font-weight:var(--weight-bold);border:2px solid var(--color-tooltip);box-shadow:var(--shadow-md)}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-page);padding:var(--space-4)}.auth-card{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-8);width:100%;max-width:var(--max-width-form)}.auth-card h1{margin:0 0 var(--space-6) 0;font-size:var(--text-2xl);color:var(--color-text-primary);text-align:center;font-weight:var(--weight-normal)}.auth-tabs{display:flex;gap:0;margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border-default)}.auth-tabs button{flex:1;padding:var(--space-3) var(--space-4);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-normal)}.auth-tabs button:hover{color:var(--color-text-primary)}.auth-tabs button.active{color:var(--color-text-primary);border-bottom-color:var(--color-accent)}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.auth-form input{padding:var(--space-3) var(--space-4);background:var(--color-bg-page);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-base);transition:border-color var(--transition-normal)}.auth-form input:focus{outline:none;border-color:var(--color-border-focus)}.auth-form button[type=submit]{padding:var(--space-3) var(--space-4);background:var(--color-accent);border:none;border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--weight-bold);cursor:pointer;transition:background var(--transition-normal);margin-top:var(--space-2)}.auth-form button[type=submit]:hover:not(:disabled){background:var(--color-accent-hover)}.auth-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.auth-error{background:var(--color-error-light);border:1px solid var(--color-error);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);color:var(--color-error);font-size:var(--text-sm);text-align:center}.auth-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-bg-page);color:var(--color-text-muted)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border-default);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-4)}.user-info{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm)}.user-info .user-name{color:var(--color-text-primary)}.logout-btn{background:transparent;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-normal)}.logout-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.verification-info{text-align:center;margin-bottom:var(--space-6);color:var(--color-text-secondary);line-height:1.6}.verification-email{color:var(--color-text-primary);font-weight:var(--weight-bold);font-size:var(--text-md);margin:var(--space-2) 0}.verification-hint{color:var(--color-text-dim);font-size:var(--text-sm);font-style:italic}.auth-success{background:var(--color-success-light);border:1px solid var(--color-success);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);color:var(--color-success);font-size:var(--text-sm);text-align:center}.auth-actions{display:flex;justify-content:center;gap:var(--space-4);margin-top:1rem}.auth-link-btn{background:transparent;border:none;color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;padding:var(--space-2);transition:color var(--transition-normal)}.auth-link-btn:hover{color:var(--color-accent)}.password-hint{font-size:var(--text-xs);color:var(--color-text-secondary);margin:-.25rem 0 .5rem}.password-requirements{list-style:none;margin:-.25rem 0 .5rem;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);font-size:var(--text-xs)}.password-requirements li{display:flex;align-items:center;gap:var(--space-1)}.password-requirements li:before{font-size:var(--text-xs);font-weight:var(--weight-bold)}.password-requirements li.met{color:var(--color-success)}.password-requirements li.met:before{content:"✓"}.password-requirements li.unmet{color:var(--color-text-dim)}.password-requirements li.unmet:before{content:"✗"}.password-mismatch{font-size:var(--text-xs);color:var(--color-error);margin:-.5rem 0 0}.auth-form input.input-prefilled{background:var(--color-bg-surface);color:var(--color-text-muted);cursor:default}.auth-success-inline{color:var(--color-success);font-size:var(--text-md);font-weight:var(--weight-bold);margin-bottom:var(--space-2)}.library-page-wrapper{padding:0 var(--space-4)}.library-page{display:flex;gap:var(--space-4);align-items:flex-start}.library-main{flex:1;min-width:0;max-width:var(--max-width-page)}.library-sidebar,.library-sidebar-right{position:sticky;top:calc(var(--header-height, 48px) + 36px + var(--space-4));flex-shrink:0;width:200px}.difficulty-stepper{display:flex;flex-direction:column;height:calc(100vh - var(--header-height, 48px) - 36px - var(--space-4) - var(--space-6) * 2);padding:calc(var(--space-5) + 3px) var(--space-4) var(--space-5);background-color:var(--color-bg-elevated);background-image:linear-gradient(90deg,var(--color-foundation),var(--color-success),var(--color-warning),var(--color-advanced),var(--color-expert),var(--color-mastery));background-size:100% 3px;background-position:top;background-repeat:no-repeat;border:1px solid var(--color-border-default);border-radius:var(--radius-xl);box-shadow:0 2px 12px #00000040}.stepper-node-unlocked{box-shadow:0 0 8px #ffffff1f}.stepper-node-locked{border-color:var(--color-border-default);background:transparent;opacity:.4}.stepper-title{margin:0 0 var(--space-4);padding-bottom:var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--color-border-subtle)}.progression-stepper{display:flex;flex-direction:column;height:calc(100vh - var(--header-height, 48px) - 36px - var(--space-4) - var(--space-6) * 2);padding:calc(var(--space-5) + 3px) var(--space-4) var(--space-5);background-color:var(--color-bg-elevated);background-image:linear-gradient(90deg,var(--color-foundation),var(--color-success),var(--color-warning),var(--color-advanced),var(--color-expert),var(--color-mastery));background-size:100% 3px;background-position:top;background-repeat:no-repeat;border:1px solid var(--color-border-default);border-radius:var(--radius-xl);box-shadow:0 2px 12px #00000040}.stepper-levels{display:flex;flex-direction:column;flex:1}.stepper-step{display:flex;align-items:stretch;min-height:36px;position:relative}.stepper-node-col{display:flex;flex-direction:column;align-items:center;width:28px;flex-shrink:0}.stepper-line{flex:1;width:2px;background:var(--color-border-default)}.stepper-line-filled{width:3px;background:var(--color-border-strong)}.stepper-node{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-border-default);background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.stepper-node-past{background:transparent;box-shadow:0 0 6px #ffffff14}@keyframes stepper-pulse{0%,to{box-shadow:0 0 0 4px #ffffff0f,0 0 12px #ffffff1a}50%{box-shadow:0 0 0 5px #ffffff1a,0 0 18px #ffffff2e}}.stepper-node-current{width:24px;height:24px;animation:stepper-pulse 3s ease-in-out infinite}.stepper-node-future{border-color:var(--color-border-default);background:transparent;opacity:.4}.stepper-check{font-size:var(--text-2xs);font-weight:var(--weight-bold);line-height:1}.stepper-label{display:flex;flex-direction:column;justify-content:center;padding-left:var(--space-3);min-height:36px}.stepper-label-future{opacity:.4}.stepper-label-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);line-height:1}.stepper-label-current .stepper-label-name{font-size:var(--text-md);font-weight:var(--weight-semibold)}.stepper-label-unlock{font-size:var(--text-2xs);color:var(--color-text-dim);margin-top:3px;line-height:1}.stepper-lock{font-size:var(--text-2xs);line-height:1;color:var(--color-text-disabled)}.stepper-step-locked{cursor:default}.suggestion-section{margin-bottom:var(--space-4)}.suggestion-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-3)}.suggestion-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-3)}.suggestion-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);text-align:left;font-family:var(--font-ui);color:var(--color-text-primary)}.suggestion-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.suggestion-category{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent)}.suggestion-card-header{display:flex;justify-content:space-between;align-items:center}.suggestion-chapters{font-size:var(--text-xs);color:var(--color-text-muted)}.suggestion-book-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary);line-height:var(--leading-tight)}.suggestion-book-author{font-size:var(--text-xs);color:var(--color-text-secondary)}.suggestion-card-pay{display:flex;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-success)}.suggestion-reason{font-size:var(--text-2xs);color:var(--color-text-muted);margin-top:var(--space-1)}.suggestion-card-footer{margin-top:auto;display:flex;justify-content:flex-end;padding-top:var(--space-2)}.suggestion-request-btn{padding:var(--space-1) var(--space-3);background:var(--color-accent);color:var(--color-text-on-color);border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-family:var(--font-ui);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--transition-fast)}.suggestion-request-btn:hover{background:var(--color-accent-hover)}.suggestion-request-btn:disabled{opacity:.5;cursor:not-allowed}.library-status-pills{display:flex;gap:var(--space-1);padding-bottom:var(--space-3)}.status-pill{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);font-family:var(--font-ui);cursor:pointer;transition:all var(--transition-fast)}.status-pill:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.status-pill.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-color)}.library-filters-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);flex-wrap:wrap}.library-filters-left{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.library-filters-right{display:flex;align-items:center;gap:var(--space-3)}.library-search{padding:var(--space-2) var(--space-3);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-ui);min-width:200px}.library-search:focus{outline:none;border-color:var(--color-border-focus)}.library-difficulty-pills{display:flex;gap:var(--space-1)}.difficulty-pill{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);font-family:var(--font-ui);cursor:pointer;transition:all var(--transition-fast)}.difficulty-pill:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.difficulty-pill.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-color)}.difficulty-pill-foundation.active{background:var(--color-foundation);border-color:var(--color-foundation)}.difficulty-pill-elementary.active{background:var(--color-success);border-color:var(--color-success)}.difficulty-pill-intermediate.active{background:var(--color-warning);border-color:var(--color-warning)}.difficulty-pill-advanced.active{background:var(--color-advanced);border-color:var(--color-advanced)}.difficulty-pill-expert.active{background:var(--color-expert);border-color:var(--color-expert)}.difficulty-pill-mastery.active{background:var(--color-error);border-color:var(--color-error)}.library-genre-select{padding:var(--space-1) var(--space-3);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-ui);cursor:pointer}.library-genre-select:focus{outline:none;border-color:var(--color-border-focus)}.library-filters-right .styled-dropdown-trigger{font-size:var(--text-sm);height:30px;padding:var(--space-1) var(--space-3)}.library-filters-right .book-picker-item{font-size:var(--text-sm);padding:var(--space-1) var(--space-3)}.library-sort-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.library-sort-dir-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-input);color:var(--color-text-secondary);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-fast)}.library-sort-dir-btn:hover{background:var(--color-bg-hover);border-color:var(--color-border-focus);color:var(--color-text-primary)}.library-result-count{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4)}.library-card{position:relative;display:flex;flex-direction:column;padding:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.library-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.library-card-locked{opacity:.6;pointer-events:none}.library-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.library-card-time{font-size:var(--text-xs);color:var(--color-text-muted)}.library-card-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-1);line-height:var(--leading-tight)}.library-card-author{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-3)}.library-card-meta{display:flex;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-4);flex-wrap:wrap}.library-card-dialogue{display:inline-block;padding:1px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:var(--weight-medium)}.library-card-dialogue-dense{background:#4caf5026;color:var(--color-success)}.library-card-dialogue-high{background:#2196f326;color:var(--color-info)}.library-card-dialogue-medium{background:#ffffff0f;color:var(--color-text-muted)}.library-card-footer{margin-top:auto;display:flex;justify-content:flex-end;align-items:center}.library-card-request-btn{padding:var(--space-2) var(--space-4);background:var(--color-accent);color:var(--color-text-on-color);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-ui);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--transition-fast)}.library-card-request-btn:hover{background:var(--color-accent-hover)}.library-card-request-btn:disabled{opacity:.5;cursor:not-allowed}.library-card-status{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium)}.library-card-status.requested{background:var(--color-info-light);color:var(--color-info)}.library-card-status.assigned{background:#9b59b626;color:#b388ff}.library-card-status.in-progress{background:var(--color-warning-light);color:var(--color-warning)}.library-card-status.completed{background:var(--color-success-light);color:var(--color-success)}.library-card-status.assigned-to-other{background:var(--color-bg-muted);color:var(--color-text-muted)}.difficulty-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:10px;font-size:var(--text-xs);font-weight:var(--weight-medium)}.locked-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);background:#0009;border-radius:var(--radius-lg);z-index:2;pointer-events:auto}.locked-icon{font-size:var(--text-xl)}.locked-message{font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center;padding:0 var(--space-4)}.library-loading,.library-empty{text-align:center;padding:var(--space-10);color:var(--color-text-secondary);font-size:var(--text-md)}.library-error{text-align:center;padding:var(--space-6);color:var(--color-error);font-size:var(--text-sm);background:var(--color-error-light);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.library-success{text-align:center;padding:var(--space-3);color:var(--color-success);font-size:var(--text-sm);background:var(--color-success-light);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-xl);padding:var(--space-6);width:440px;max-width:90vw;box-shadow:var(--shadow-lg)}.modal-content h3{margin:0 0 var(--space-4);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.modal-book-info{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--color-bg-muted);border-radius:var(--radius-md)}.modal-book-info strong{font-size:var(--text-md);color:var(--color-text-primary)}.modal-book-info span{font-size:var(--text-sm);color:var(--color-text-secondary)}.modal-note-label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.modal-note-input{width:100%;min-height:80px;padding:var(--space-2) var(--space-3);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--text-sm);resize:vertical}.modal-note-input:focus{outline:none;border-color:var(--color-border-focus)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.modal-cancel-btn{padding:var(--space-2) var(--space-4);background:transparent;border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-family:var(--font-ui);cursor:pointer;transition:background var(--transition-fast)}.modal-confirm-btn{padding:var(--space-2) var(--space-4);background:var(--color-accent);border:none;border-radius:var(--radius-md);color:var(--color-text-on-color);font-size:var(--text-sm);font-family:var(--font-ui);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--transition-fast)}.modal-confirm-btn:hover{background:var(--color-accent-hover)}.modal-confirm-btn:disabled,.modal-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.modal-error{padding:var(--space-2) var(--space-3);background:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.4}.library-subtabs{display:flex;gap:0;padding-bottom:var(--space-4);position:sticky;top:var(--header-height, 48px);z-index:10;background:var(--color-bg-page)}.library-subtab{padding:var(--space-2) var(--space-4);height:36px;display:flex;align-items:center;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);text-decoration:none;border-bottom:2px solid transparent;transition:color var(--transition-fast),background var(--transition-fast);white-space:nowrap}.library-subtab:hover{color:var(--color-text-secondary);background:var(--color-bg-hover);text-decoration:none}.library-subtab-active{color:var(--color-text-primary);font-weight:var(--weight-semibold);border-bottom-color:var(--color-accent)}.review-library-card{position:relative;display:flex;flex-direction:column;padding:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.review-library-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.review-library-card-locked{opacity:.6;pointer-events:none}.review-library-card-annotator{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;margin-bottom:var(--space-3)}.review-library-card-status{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium)}.review-library-card-status.requested{background:var(--color-info-light);color:var(--color-info)}.review-library-card-status.in-review{background:var(--color-warning-light);color:var(--color-warning)}.review-library-card-status.reviewed{background:var(--color-success-light);color:var(--color-success)}.library-card-assign-btn{background:var(--color-info);color:#fff;border:none;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-ui);cursor:pointer;margin-left:var(--space-2);transition:filter var(--transition-fast)}.library-card-assign-btn:hover{filter:brightness(1.1)}.library-card-pay{display:flex;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-success)}.pay-badge{font-weight:var(--weight-semibold);color:var(--color-success)}.pay-badge-label{font-weight:var(--weight-normal);color:var(--color-text-muted)}.book-picker{position:relative;display:inline-block;min-width:450px}.book-picker-input{width:100%;padding:var(--space-2) var(--space-3);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-ui);height:34px}.book-picker-input:focus{outline:none;border-color:var(--color-border-focus)}.book-picker-input::placeholder{color:var(--color-text-primary)}.book-picker-dropdown{position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - 120px);overflow-y:auto;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:0 0 var(--radius-md) var(--radius-md);z-index:1000;box-shadow:var(--shadow-lg)}.book-picker-recent-section{border-bottom:2px solid var(--color-border-default)}.book-picker-section-header{padding:var(--space-2) var(--space-3);background:var(--color-bg-elevated);font-weight:var(--weight-bold);font-size:var(--text-sm);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border-default)}.book-picker-section-header.recent{color:var(--color-warning)}.book-picker-section-header.library{color:var(--color-info)}.book-picker-no-recent{padding:var(--space-2) var(--space-3);color:var(--color-text-dim);font-size:var(--text-sm);font-family:var(--font-ui);font-style:italic}.book-picker-author-header{padding:var(--space-2) var(--space-3);background:var(--color-bg-muted);color:var(--color-info);font-weight:var(--weight-bold);font-size:var(--text-sm);font-family:var(--font-ui);letter-spacing:.3px;border-bottom:1px solid var(--color-border-default)}.book-picker-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:transparent;border:none;border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-primary);text-align:left;cursor:pointer;font-size:var(--text-sm);font-family:var(--font-ui);transition:background var(--transition-fast)}.book-picker-item:hover{background:var(--color-bg-hover)}.book-picker-item.selected{background:var(--color-info);color:var(--color-text-primary)}.book-picker-item.selected:hover{background:var(--color-info)}.book-picker-item.indented{padding-left:var(--space-6)}.book-picker-item-author{color:var(--color-text-muted);margin-right:4px}.book-picker-item-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-picker-empty{padding:var(--space-3);color:var(--color-text-muted);text-align:center;font-size:var(--text-sm);font-family:var(--font-ui)}.styled-dropdown{position:relative;display:inline-block}.styled-dropdown-trigger{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-base);font-family:var(--font-ui);cursor:pointer;height:38px;white-space:nowrap;transition:border-color var(--transition-fast)}.styled-dropdown-trigger:hover{border-color:var(--color-accent)}.styled-dropdown-trigger:focus{outline:none;border-color:var(--color-border-focus)}.styled-dropdown-label{flex:1;overflow:hidden;text-overflow:ellipsis}.styled-dropdown-arrow{color:var(--color-text-muted);font-size:var(--text-xs);flex-shrink:0}.styled-dropdown-menu{position:absolute;top:100%;left:0;min-width:100%;max-height:calc(100vh - 120px);overflow-y:auto;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:0 0 var(--radius-sm) var(--radius-sm);z-index:1000;box-shadow:var(--shadow-lg)}.styled-dropdown-menu .book-picker-item.muted{color:var(--color-text-dim)}.mybooks-page{padding:var(--space-4);height:calc(100vh - var(--header-height));display:flex;flex-direction:column}.mybooks-loading{color:var(--color-text-secondary);padding:var(--space-8) 0;text-align:center}.mybooks-error{color:var(--color-error);background:var(--color-error-light);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.mybooks-empty{text-align:center;padding:var(--space-16) var(--space-4);color:var(--color-text-muted);flex:1;display:flex;flex-direction:column;justify-content:center}.mybooks-empty p{margin:var(--space-2) 0}.mybooks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4);flex:1;align-content:start}.mybook-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);transition:border-color var(--transition-fast)}.mybook-card:hover{border-color:var(--color-border-strong)}.mybook-card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.mybook-card-time{font-size:var(--text-xs);color:var(--color-text-muted)}.mybook-card-title{font-size:var(--text-md);font-weight:var(--weight-semibold);margin:0;line-height:var(--leading-tight);color:var(--color-text-primary)}.mybook-card-author{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.mybook-card-meta{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--color-text-muted)}.mybook-progress{display:flex;flex-direction:column;gap:var(--space-1)}.mybook-progress-bar{height:6px;background:var(--color-bg-muted);border-radius:var(--radius-full);overflow:hidden}.mybook-progress-fill{height:100%;background:var(--color-accent);border-radius:var(--radius-full);transition:width var(--transition-normal)}.mybook-progress-label{font-size:var(--text-xs);color:var(--color-text-secondary)}.mybook-card-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto;padding-top:var(--space-2)}.mybook-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);text-decoration:none;background:transparent;color:inherit}.mybook-btn:disabled{opacity:.5;cursor:not-allowed}.mybook-btn-go{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-color)}.mybook-btn-go:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);text-decoration:none}.mybook-btn-abandon{color:var(--color-text-muted);border-color:var(--color-border-default)}.mybook-btn-abandon:hover:not(:disabled){color:var(--color-text-secondary);border-color:var(--color-border-strong)}.mybook-btn-offline{color:var(--color-info);border-color:var(--color-info)}.mybook-btn-offline:hover:not(:disabled){background:var(--color-info-light)}.modal-backdrop{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-6);width:420px;max-width:90vw;box-shadow:var(--shadow-lg)}.modal-content h3{margin:0 0 var(--space-4);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.modal-warning{margin:0 0 var(--space-3);color:var(--color-text-primary);line-height:var(--leading-relaxed)}.modal-info{margin:0 0 var(--space-6);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.modal-cancel-btn{padding:var(--space-2) var(--space-4);background:var(--color-bg-active);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:inherit;cursor:pointer;font-size:var(--text-sm);transition:background var(--transition-fast)}.modal-cancel-btn:hover{background:var(--color-bg-hover)}.modal-confirm-btn{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);color:var(--color-text-on-color);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);transition:opacity var(--transition-fast)}.modal-confirm-btn:hover{opacity:.9}.modal-confirm-danger{background:var(--color-error)}.mybook-btn-view{color:var(--color-text-secondary);border-color:var(--color-border-default)}.mybook-btn-view:hover{color:var(--color-text-primary);border-color:var(--color-border-strong);text-decoration:none}.mybooks-completed-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);gap:var(--space-3)}.mybooks-completed-summary{font-size:var(--text-sm);color:var(--color-text-secondary)}.mybooks-sort-select{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-elevated);color:inherit;cursor:pointer}.mybooks-nav{display:flex;flex-direction:column;margin-bottom:var(--space-4)}.mybooks-subtabs{display:flex;gap:0;border-bottom:1px solid var(--color-border-default)}.mybooks-subtab{padding:var(--space-2) var(--space-4);height:36px;display:flex;align-items:center;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);text-decoration:none;border-bottom:2px solid transparent;transition:color var(--transition-fast),background var(--transition-fast);white-space:nowrap}.mybooks-subtab:hover{color:var(--color-text-secondary);background:var(--color-bg-hover);text-decoration:none}.mybooks-subtab-active{color:var(--color-text-primary);font-weight:var(--weight-semibold);border-bottom-color:var(--color-accent)}.mybooks-secondary-subtabs{display:flex;gap:var(--space-2);padding:var(--space-3) 0 0}.mybooks-secondary-subtab{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);text-decoration:none;border-radius:var(--radius-full);border:1px solid var(--color-border-default);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.mybooks-secondary-subtab:hover{color:var(--color-text-secondary);border-color:var(--color-border-strong);text-decoration:none}.mybooks-secondary-subtab-active{color:var(--color-text-primary);font-weight:var(--weight-semibold);background:var(--color-bg-active);border-color:var(--color-accent)}.review-book-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);transition:border-color var(--transition-fast)}.review-book-card:hover{border-color:var(--color-border-strong)}.review-card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.review-card-annotator{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.review-card-status-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium)}.review-card-status-badge.requested{background:var(--color-info-light);color:var(--color-info)}.review-card-status-badge.approved{background:var(--color-success-light);color:var(--color-success)}.review-card-status-badge.rejected{background:var(--color-error-light);color:var(--color-error)}.review-card-stats{display:flex;gap:var(--space-4);font-size:var(--text-xs);color:var(--color-text-secondary)}.mybook-card-pay{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-success)}.earnings-tab{display:flex;flex-direction:column;gap:var(--space-4)}.earnings-loading{color:var(--color-text-secondary);padding:var(--space-8) 0;text-align:center}.earnings-error{color:var(--color-error);background:var(--color-error-light);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.earnings-error button{flex-shrink:0;padding:var(--space-1) var(--space-3);background:transparent;border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--transition-fast)}.earnings-error button:hover{background:var(--color-error-light)}.earnings-empty{text-align:center;padding:var(--space-16) var(--space-4);color:var(--color-text-muted);display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.earnings-summary-cards{display:flex;gap:var(--space-4)}.earnings-card{flex:1;background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);transition:border-color var(--transition-fast)}.earnings-card:hover{border-color:var(--color-border-strong)}.earnings-card-label{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.earnings-card-value{font-size:var(--text-xl);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-success);line-height:var(--leading-tight)}.earnings-card-pending{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;font-variant-numeric:tabular-nums}.earnings-cap-bar{height:6px;background:var(--color-bg-muted);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-1)}.earnings-cap-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-success),color-mix(in srgb,var(--color-success) 60%,var(--color-accent)));border-radius:var(--radius-full);transition:width var(--transition-normal)}.earnings-card-cap-reached{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-warning);margin-top:var(--space-1)}.earnings-month-section{border:1px solid var(--color-border-default);border-radius:var(--radius-lg);overflow:hidden}.earnings-month-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-bg-elevated);border:none;color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast)}.earnings-month-header:hover{background:var(--color-bg-hover)}.earnings-month-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);display:flex;align-items:center;gap:var(--space-3)}.earnings-month-label span{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-success);font-variant-numeric:tabular-nums}.earnings-month-toggle{font-size:var(--text-md);color:var(--color-text-muted);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.earnings-month-header:hover .earnings-month-toggle{color:var(--color-text-secondary);background:var(--color-bg-active)}.earnings-table-wrap{overflow-x:auto}.earnings-table{font-size:var(--text-sm)}.earnings-cell-title{font-weight:var(--weight-medium);white-space:nowrap}.earnings-cell-author{white-space:nowrap;color:var(--color-text-secondary)}.earnings-cell-date{white-space:nowrap;font-size:var(--text-xs);color:var(--color-text-secondary)}.earnings-cell-num{white-space:nowrap;font-variant-numeric:tabular-nums}.earnings-cell-bonus{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}.earnings-bonus-positive{color:var(--color-info);font-weight:var(--weight-medium);cursor:help}.earnings-bonus-none{color:var(--color-text-muted)}.earnings-cell-pay{white-space:nowrap;font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;color:var(--color-success)}.earnings-cell-actions{white-space:nowrap}.earnings-type-badge{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap}.earnings-type-annotation{background:var(--color-info-light);color:var(--color-info)}.earnings-type-review{background:#9b59b626;color:#b388ff}.earnings-pending{color:var(--color-text-muted);font-style:italic;font-size:var(--text-xs)}.earnings-error-inline{color:var(--color-error);font-style:italic;font-size:var(--text-xs);cursor:help}.earnings-hours-edit{display:inline-flex;align-items:center;gap:var(--space-1)}.earnings-hours-input{width:56px;padding:2px var(--space-1);font-size:var(--text-sm);font-variant-numeric:tabular-nums;background:var(--color-bg-input);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-primary);text-align:right}.earnings-hours-input:focus{outline:none;border-color:var(--color-border-focus)}.earnings-hours-save,.earnings-hours-cancel{padding:2px var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius-sm);cursor:pointer;border:none;transition:background var(--transition-fast),color var(--transition-fast)}.earnings-hours-save{background:var(--color-success-light);color:var(--color-success)}.earnings-hours-save:hover{background:color-mix(in srgb,var(--color-success) 25%,transparent)}.earnings-hours-cancel{background:transparent;color:var(--color-text-muted)}.earnings-hours-cancel:hover{color:var(--color-text-secondary);background:var(--color-bg-hover)}.earnings-hours-display{display:inline-flex;align-items:center;gap:var(--space-2);font-variant-numeric:tabular-nums}.earnings-hours-edit-btn{padding:0;background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xs);transition:color var(--transition-fast)}.earnings-hours-edit-btn:hover{color:var(--color-text-secondary)}.earnings-action-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;background:transparent;color:var(--color-info);border-color:var(--color-info);transition:background var(--transition-fast),border-color var(--transition-fast)}.earnings-action-btn:hover{background:var(--color-info-light)}.earnings-action-btn:disabled{opacity:.5;cursor:not-allowed}.earnings-action-secondary{color:var(--color-text-muted);border-color:var(--color-border-default)}.earnings-action-secondary:hover{color:var(--color-text-secondary);border-color:var(--color-border-strong);background:var(--color-bg-hover)}@media(max-width:640px){.earnings-summary-cards{flex-direction:column}.earnings-month-header{padding:var(--space-2) var(--space-3)}}.shortcuts-dropdown{position:relative}.shortcuts-dropdown-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.shortcuts-dropdown-btn:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.shortcuts-dropdown-backdrop{position:fixed;inset:0;z-index:99}.shortcuts-dropdown-panel{position:absolute;right:0;top:calc(100% + 4px);z-index:100;background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-4);min-width:280px;max-height:420px;overflow-y:auto;box-shadow:0 4px 16px #0000004d}.shortcuts-dropdown-panel .shortcuts-group{margin-bottom:var(--space-4)}.shortcuts-dropdown-panel .shortcuts-group:last-child{margin-bottom:0}.shortcuts-dropdown-panel .shortcuts-group h3{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin:0 0 var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-border-default)}.shortcuts-dropdown-panel .shortcut-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary);padding:var(--space-0-5) 0}.shortcuts-dropdown-panel .shortcut-item kbd{display:inline-block;min-width:100px;padding:1px var(--space-2);background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);text-align:center;white-space:nowrap;flex-shrink:0}.shortcuts-dropdown-panel .shortcut-item span{color:var(--color-text-primary)}.resize-handle{width:5px;flex-shrink:0;cursor:col-resize;background:transparent;position:relative;z-index:20;transition:background .15s}.resize-handle:hover,.resize-handle:active{background:var(--color-info, #4a9eff)}.chapter-annotation-page{flex:1;display:flex;flex-direction:column;background:var(--color-bg-page);color:var(--color-text-primary);min-height:0;font-family:var(--font-ui)}.chapter-controls-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-1) var(--space-4);background:var(--color-bg-elevated);position:sticky;top:var(--header-height);z-index:100;border-bottom:1px solid var(--color-border-default);height:var(--header-height)}.chapter-controls-bar-left{display:flex;align-items:center;gap:var(--space-3);min-width:0}.chapter-controls-book-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.chapter-controls-bar-right{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.chapter-controls-bar .controls-chapter-count-input{width:48px;padding:var(--space-2) var(--space-2);text-align:center;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-mono, monospace)}.chapter-controls-bar .controls-chapter-count-input:focus{outline:none;border-color:var(--color-border-focus)}.chapter-controls-bar .controls-chapter-count-input.input-error{border-color:var(--color-accent)}.chapter-controls-bar .submit-progress-btn{position:relative;overflow:hidden;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-ui);cursor:pointer;min-width:80px;height:38px}.chapter-controls-bar .submit-progress-btn:before{content:"";position:absolute;top:0;left:0;height:100%;width:var(--fill-pct, 0%);background:var(--fill-color, #4a6a8a);opacity:.35;transition:width .4s ease,background .3s ease;pointer-events:none}.chapter-controls-bar .submit-progress-btn:hover:not(:disabled){border-color:var(--color-border-focus)}.chapter-controls-bar .submit-progress-btn:disabled{opacity:.5;cursor:not-allowed}.chapter-controls-bar .submit-progress-btn .submit-progress-label{position:relative;z-index:1;white-space:nowrap}.chapter-controls-bar .submit-progress-btn.ready{border-color:var(--color-success)}.chapter-controls-bar .submit-progress-btn.ready:before{opacity:.45}.chapter-controls-bar .submit-progress-btn.submitted{border-color:var(--color-success)}.chapter-controls-bar .submit-progress-btn.submitted:before{opacity:.5}.chapter-controls-bar .pipeline-warning{color:#b58105;font-size:var(--font-xs);white-space:nowrap}.chapter-annotation-content{display:flex;flex:1;overflow:visible}.chapter-main-content{flex:1;overflow:visible;background:var(--color-bg-page);display:flex;flex-direction:column;min-height:0}.chapter-loading{text-align:center;padding:var(--space-10);color:var(--color-text-muted)}.chapter-error{padding:var(--space-4);background:var(--color-error-light);border:1px solid var(--color-accent);border-radius:var(--radius-sm);margin:20px;color:var(--color-accent-hover)}.chapter-welcome{text-align:center;padding:var(--space-16);color:var(--color-text-dim);flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.chapter-welcome h2{color:var(--color-text-muted);margin:0 0 .5rem}.chapter-welcome p{margin:0;font-size:var(--text-sm)}.chapter-welcome p+p{margin-top:20px}.chapter-unified-layout{display:flex;flex:1;min-height:0}.chapter-file-sidebar{flex-shrink:0;position:sticky;top:calc(var(--header-height) * 2);align-self:flex-start;height:calc(100vh - var(--header-height) * 2)}.chapter-file-sidebar .file-browser{height:100%;min-height:0;margin:0}.chapter-file-sidebar .file-browser-list{position:static;height:100%;align-self:auto}.chapter-back-to-annotation-btn{display:block;width:100%;height:34px;padding:0 var(--space-4);line-height:34px;background:var(--color-bg-surface);border:none;border-bottom:1px solid var(--color-border-default);color:var(--color-text-secondary);cursor:pointer;text-align:left;font-size:var(--text-sm);font-weight:var(--weight-medium);font-family:var(--font-ui);flex-shrink:0;transition:color var(--transition-fast),background var(--transition-fast)}.chapter-back-to-annotation-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.chapter-file-sidebar.expanded{position:sticky;top:calc(var(--header-height) * 2);align-self:flex-start;flex:1;height:calc(100vh - var(--header-height) * 2);display:flex;flex-direction:column;overflow:hidden}.chapter-file-sidebar.expanded .file-browser{flex:1;min-height:0;overflow:hidden}.chapter-file-sidebar.expanded .file-browser-list{position:sticky;top:0;height:100%;align-self:flex-start}.chapter-content-area{flex:1;min-width:0;padding:var(--space-5);overflow:visible}.chapter-status-bar{position:sticky;top:var(--header-height);z-index:10;background:var(--color-bg-page);margin:-20px -20px 0;padding:var(--space-4) var(--space-5)}.chapter-para-count{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:8px}@keyframes spin{to{transform:rotate(360deg)}}.chapter-sidebar{background:var(--color-bg-page);padding:var(--space-4);flex-shrink:0;position:sticky;top:calc(var(--header-height) * 2);height:calc(100vh - var(--header-height) * 2);overflow-y:auto;align-self:flex-start}.chapter-sidebar-section{margin-bottom:20px}.sidebar-card{padding:var(--space-3);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);margin-bottom:var(--space-3)}.sidebar-card-header{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-2);font-weight:var(--weight-semibold)}.chapter-sidebar-label{display:block;margin-bottom:5px;color:var(--color-text-muted);font-size:var(--text-sm)}.chapter-sidebar-input{width:100%;padding:var(--space-2);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-ui)}.chapter-sidebar-input:focus{outline:none;border-color:var(--color-border-focus)}.chapter-sidebar-input.input-error{border-color:var(--color-accent);color:var(--color-accent-hover)}.chapter-sidebar-input-error{margin-top:5px;font-size:var(--text-xs);color:var(--color-accent-hover);font-weight:var(--weight-bold)}.chapter-search-checkbox{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:10px}.chapter-search-buttons{display:flex;gap:var(--space-1);flex-wrap:wrap}.chapter-btn{padding:var(--space-1) var(--space-3);background:transparent;border:1px solid var(--color-border-default);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-xs);font-family:var(--font-ui);transition:all var(--transition-fast)}.chapter-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.chapter-btn.active{background:var(--color-info);border-color:var(--color-info);color:var(--color-bg-page)}.chapter-search-results{margin-top:10px;font-size:var(--text-xs);color:var(--color-info)}.chapter-bulk-btns{margin-bottom:20px;display:flex;gap:var(--space-1)}.chapter-bulk-btn{flex:1;padding:var(--space-2);border:1px solid;border-radius:var(--radius-full);background:transparent;cursor:pointer;font-weight:var(--weight-bold);font-family:var(--font-ui);font-size:var(--text-xs);transition:all var(--transition-fast)}.chapter-bulk-btn.mark-all{border-color:var(--color-success);color:var(--color-success)}.chapter-bulk-btn.mark-all:hover{background:var(--color-success);color:var(--color-bg-page)}.chapter-bulk-btn.unmark-all{border-color:var(--color-error);color:var(--color-error)}.chapter-bulk-btn.unmark-all:hover{background:var(--color-error);color:var(--color-bg-page)}.chapter-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.chapter-preview-label{color:var(--color-text-muted);font-size:var(--text-xs)}.chapter-preview-clear{padding:var(--space-1) var(--space-2);background:var(--color-bg-active);border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-2xs);font-family:var(--font-ui)}.chapter-preview-list{max-height:300px;overflow:auto;background:var(--color-bg-active);border-radius:var(--radius-md);padding:var(--space-2)}.chapter-preview-item{padding:var(--space-1) var(--space-2);cursor:pointer;border-radius:var(--radius-sm);margin-bottom:2px;background:var(--color-bg-elevated);border:1px solid transparent;font-size:var(--text-xs);transition:all var(--transition-fast)}.chapter-preview-item:hover{border-color:var(--color-border-default);background:var(--color-bg-hover)}.chapter-export-btn{width:100%;padding:var(--space-3);margin-bottom:20px;border:none;border-radius:var(--radius-md);font-weight:var(--weight-bold);font-size:var(--text-sm);font-family:var(--font-ui);transition:all var(--transition-fast)}.chapter-export-btn.ready{background:var(--color-success);color:var(--color-text-on-color);cursor:pointer;box-shadow:var(--shadow-sm)}.chapter-export-btn.ready:hover{filter:brightness(1.1);box-shadow:var(--shadow-md)}.chapter-export-btn.disabled{background:var(--color-border-strong);color:var(--color-text-muted);cursor:not-allowed}.chapter-existing-warning{margin-top:-10px;margin-bottom:20px;padding:var(--space-3);background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-tooltip)}.chapter-gap-info{margin-top:4px;margin-bottom:0;padding:var(--space-2) var(--space-3);background:var(--color-info-light);border:1px solid var(--color-info);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-info)}.chapter-gap-info+.chapter-gap-info{margin-top:8px}.chapter-range-info{margin-top:4px;font-size:var(--text-xs);color:var(--color-text-muted)}.chapter-mode-header{margin-bottom:8px;color:var(--color-text-dim);font-size:var(--text-xs);line-height:1.4}.chapter-mode-toggle{display:flex;gap:var(--space-0-5);background:var(--color-bg-active);border-radius:var(--radius-sm);padding:var(--space-0-5)}.chapter-mode-btn{flex:1;padding:var(--space-2) var(--space-2);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xs);font-family:var(--font-ui);transition:all var(--transition-fast)}.chapter-mode-btn.active{background:var(--color-bg-surface);color:var(--color-text-primary)}.chapter-mode-btn:hover:not(.active){color:var(--color-text-secondary)}.front-matter-toolbar{background:var(--color-bg-elevated);border:1px solid var(--color-fm-yellow);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-3);margin-bottom:10px}.front-matter-toolbar-info{color:var(--color-fm-yellow);font-size:var(--text-sm);font-weight:var(--weight-bold);white-space:nowrap}.front-matter-toolbar-input-row{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.front-matter-toolbar-label{color:var(--color-text-muted);font-size:var(--text-xs);white-space:nowrap}.front-matter-toolbar-input{padding:var(--space-2) var(--space-3);background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-mono, monospace);flex:1;min-width:180px}.front-matter-toolbar-input:focus{outline:none;border-color:var(--color-fm-yellow)}.front-matter-toolbar-actions{display:flex;gap:var(--space-2);flex-shrink:0}.chapter-sidebar .book-picker{min-width:0;width:100%}.line-range-section{margin-bottom:12px}.line-range-display{display:flex;align-items:center;gap:var(--space-2)}.line-range-label{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.line-range-clear{background:none;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-xs);padding:0 var(--space-1);cursor:pointer;line-height:1.4}.line-range-clear:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.line-range-input{width:64px;padding:var(--space-1) var(--space-2);background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-xs);font-family:var(--font-mono, monospace);text-align:center}.line-range-input:focus{outline:none;border-color:var(--color-border-focus)}.line-range-input.input-error{border-color:var(--color-accent);color:var(--color-accent-hover)}.line-range-hint{margin-top:3px;font-size:var(--text-2xs);color:var(--color-text-muted);opacity:.7}.validation-section{padding:var(--space-2) var(--space-3);background:var(--color-bg-active);border-radius:var(--radius-sm);margin-bottom:12px}.validation-input-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.validation-label{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.validation-source{font-size:var(--text-2xs);color:var(--color-text-dim);white-space:nowrap}.validation-badge{font-size:var(--text-2xs);font-weight:var(--weight-bold);padding:1px var(--space-2);border-radius:var(--radius-full);white-space:nowrap}.validation-badge.badge-ok{background:var(--color-success-light);color:var(--color-success)}.validation-badge.badge-warn{background:var(--color-warning-light);color:var(--color-warning)}.validation-badge.badge-neutral{background:var(--color-selection-bg);color:var(--color-text-secondary)}.validation-content-gaps{margin-top:6px}.validation-gaps-toggle{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-2xs);cursor:pointer;background:var(--color-warning-light);border:1px solid var(--color-warning);color:var(--color-warning);display:flex;align-items:center;justify-content:space-between}.validation-gaps-toggle:hover{background:var(--color-warning-light)}.validation-gaps-arrow{margin-left:6px}.validation-gaps-list{margin-top:2px}.validation-gap-item{padding:var(--space-1) var(--space-2);font-size:var(--text-2xs);color:var(--color-text-secondary);border-radius:var(--radius-sm)}.validation-gap-item:hover{background:var(--color-bg-hover)}.validation-missing-previews{margin-top:2px;padding-left:var(--space-2)}.validation-missing-preview{font-size:var(--text-2xs);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.chapter-paragraph{padding:var(--space-3) var(--space-4);margin-bottom:5px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;background:var(--color-bg-elevated);border:1px solid var(--color-border-default)}.chapter-paragraph.marked{background:var(--color-marked-bg);border:2px solid var(--color-marked-border)}.chapter-paragraph.search-result{background:var(--color-info-light)}.chapter-paragraph.focused{border:2px solid var(--color-info)}.chapter-paragraph-inner{display:flex;justify-content:space-between;align-items:flex-start}.chapter-paragraph-expand{color:var(--color-text-dim);font-size:var(--text-2xs);margin-right:8px;cursor:pointer;padding:var(--space-0-5) var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast);flex-shrink:0}.chapter-paragraph-expand:hover{color:var(--color-info);background:var(--color-info-light)}.chapter-paragraph-line{color:var(--color-text-dim);font-size:var(--text-2xs);margin-right:10px;min-width:50px}.chapter-paragraph-text{flex:1;color:var(--color-text-primary);cursor:pointer}.chapter-paragraph.marked .chapter-paragraph-text{color:var(--color-marked-text)}.chapter-paragraph-marker{color:var(--color-marked-badge);font-weight:var(--weight-bold);margin-left:10px}.chapter-badge{padding:1px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);white-space:nowrap}.chapter-badge.has-chapters{background:var(--color-success-light);color:var(--color-pipeline-done)}.chapter-badge.needs-chapters{background:var(--color-warning-light);color:var(--color-warning)}.chapter-paragraph.front-matter-selected{background:var(--color-fm-yellow-light);border:2px solid var(--color-fm-yellow-border)}.chapter-paragraph.front-matter-selected .chapter-paragraph-text{color:var(--color-fm-yellow)}.chapter-paragraph.front-matter-extracted{background:var(--color-fm-yellow-subtle);border:1px solid var(--color-fm-yellow-light);opacity:.7;cursor:not-allowed}.chapter-paragraph.front-matter-extracted .chapter-paragraph-text{cursor:not-allowed}.chapter-paragraph-fm-label{color:var(--color-fm-yellow);font-size:var(--text-2xs);font-weight:var(--weight-bold);margin-left:10px;white-space:nowrap}.chapter-paragraph-fm-badge{color:var(--color-fm-yellow);font-size:var(--text-2xs);font-weight:var(--weight-bold);margin-left:10px;padding:1px var(--space-2);background:var(--color-fm-yellow-medium);border-radius:var(--radius-full)}.chapter-paragraph.range-pending{background:var(--color-info-light);border:2px solid var(--color-info)}.chapter-paragraph.range-pending .chapter-paragraph-text{color:var(--color-info)}.chapter-paragraph-range-badge{font-size:var(--text-2xs);font-weight:var(--weight-bold);margin-left:10px;padding:1px var(--space-2);border-radius:var(--radius-full)}.chapter-paragraph-range-badge.range-start{color:var(--color-info);background:var(--color-info-light)}.chapter-paragraph-range-badge.range-end{color:var(--color-warning);background:var(--color-fm-yellow-medium)}.chapter-paragraph-range-badge.pending{animation:range-pulse 1.5s ease-in-out infinite}@keyframes range-pulse{0%,to{opacity:1}50%{opacity:.4}}.chapter-paragraph.story-intro-selected{background:var(--color-si-teal-light);border:2px solid var(--color-si-teal-border)}.chapter-paragraph.story-intro-selected .chapter-paragraph-text{color:var(--color-si-teal)}.chapter-paragraph.story-intro-extracted{background:var(--color-si-teal-subtle);border:1px solid var(--color-si-teal-light);opacity:.7;cursor:not-allowed}.chapter-paragraph.story-intro-extracted .chapter-paragraph-text{cursor:not-allowed}.chapter-paragraph-si-label{color:var(--color-si-teal);font-size:var(--text-2xs);font-weight:var(--weight-bold);margin-left:10px;white-space:nowrap}.chapter-paragraph-si-badge{color:var(--color-si-teal);font-size:var(--text-2xs);font-weight:var(--weight-bold);margin-left:10px;padding:1px var(--space-2);background:var(--color-si-teal-medium);border-radius:var(--radius-full)}.chapter-paragraph.context{opacity:.7;border-style:dashed}.chapter-paragraph.context:hover{opacity:1}.search-context-group{margin-bottom:12px;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);overflow:hidden}.search-context-group .chapter-paragraph{margin-bottom:0;border-radius:0;border-left:none;border-right:none;border-top:none}.search-context-group .chapter-paragraph:last-child{border-bottom:none}.search-context-collapse{padding:var(--space-2) var(--space-3);background:var(--color-bg-active);color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer;border-bottom:1px solid var(--color-border-default);user-select:none}.search-context-collapse:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.chapter-paragraph{user-select:none}.find-bar{position:sticky;top:calc(var(--header-height) + 50px);z-index:9;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-default);border-radius:var(--radius-sm);margin-bottom:8px}.find-bar-input{flex:1;padding:var(--space-1) var(--space-2);background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm)}.find-bar-input:focus{outline:none;border-color:var(--color-border-focus)}.find-bar-btn{background:none;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:var(--space-0-5) var(--space-2);font-size:var(--text-xs);line-height:1.4}.find-bar-btn:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.find-bar-btn:disabled{opacity:.4;cursor:default}.find-bar-close{font-weight:var(--weight-bold)}.find-counter{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}mark.find-highlight{background:#fde68a;color:inherit;padding:0 1px;border-radius:2px}mark.find-highlight-current{background:var(--color-warning)}.chapter-paragraph.find-current{border-color:var(--color-warning)}.file-browser{display:flex;min-height:calc(100vh - var(--header-height))}.file-browser-list{width:250px;overflow-y:auto;background:var(--color-bg-page);border-right:1px solid var(--color-border-default);flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));align-self:flex-start}.file-browser-section-header{padding:var(--space-2) var(--space-3);font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-default);flex-shrink:0}.file-browser-item{padding:var(--space-2) var(--space-3);display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:var(--text-xs);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-default);transition:background var(--transition-fast);flex-shrink:0}.file-browser-item:hover{background:var(--color-bg-hover)}.file-browser-item.selected{background:var(--color-info);color:var(--color-text-primary);border-left:2px solid var(--color-info)}.file-browser-item.multi-selected{background:var(--color-bg-hover);outline:1px solid var(--color-info);outline-offset:-1px}.file-browser-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-browser-item-size{color:var(--color-text-dim);font-size:var(--text-2xs);flex-shrink:0;margin-left:8px}.file-browser-editor{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.file-browser-editor--split{flex-direction:row}.file-browser-editor-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.file-browser-pinned-panel{display:flex;flex-direction:column;flex-shrink:0;min-width:0;min-height:0;overflow:hidden;border-right:1px solid var(--color-border-default)}.file-browser-pinned-header,.file-browser-editor-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-elevated);flex-shrink:0}.file-browser-editor-filename{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text-primary)}.file-browser-editor-readonly{font-size:var(--text-2xs);color:var(--color-text-dim);padding:1px var(--space-2);background:var(--color-bg-muted);border-radius:var(--radius-full)}.file-browser-editor-actions{display:flex;gap:var(--space-2);margin-left:auto}.file-browser-lined-editor{flex:1;display:flex;min-height:0;overflow:hidden}.file-browser-line-gutter{width:48px;flex-shrink:0;overflow:hidden;background:var(--color-bg-elevated);border-right:1px solid var(--color-border-default);padding:var(--space-3) 0;user-select:none}.file-browser-line-number{text-align:right;padding:0 var(--space-2) 0 0;font-family:var(--font-mono, monospace);font-size:var(--text-sm);line-height:1.6;color:var(--color-text-dim)}.file-browser-textarea{flex:1;width:100%;padding:var(--space-3);background:var(--color-bg-elevated);border:none;color:var(--color-text-primary);font-family:var(--font-mono, monospace);font-size:var(--text-sm);line-height:1.6;resize:none;outline:none;overflow:auto;min-height:0;white-space:pre;scrollbar-color:var(--color-scrollbar-thumb) var(--color-scrollbar-track)}.file-browser-pre{flex:1;padding:var(--space-3);margin:0;background:var(--color-bg-elevated);color:var(--color-text-primary);font-family:var(--font-mono, monospace);font-size:var(--text-sm);line-height:1.6;overflow:auto;white-space:pre-wrap;word-wrap:break-word;scrollbar-color:var(--color-scrollbar-thumb) var(--color-scrollbar-track)}.file-browser-textarea::-webkit-scrollbar,.file-browser-pre::-webkit-scrollbar,.file-browser-lined-editor::-webkit-scrollbar{width:14px;height:14px}.file-browser-textarea::-webkit-scrollbar-track,.file-browser-pre::-webkit-scrollbar-track,.file-browser-lined-editor::-webkit-scrollbar-track{background:var(--color-scrollbar-track)}.file-browser-textarea::-webkit-scrollbar-thumb,.file-browser-pre::-webkit-scrollbar-thumb,.file-browser-lined-editor::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);border-radius:7px;border:3px solid var(--color-scrollbar-track)}.file-browser-textarea::-webkit-scrollbar-thumb:hover,.file-browser-pre::-webkit-scrollbar-thumb:hover,.file-browser-lined-editor::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.file-browser-placeholder{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-dim);font-size:var(--text-sm)}.file-browser-save-btn{padding:var(--space-1) var(--space-3);background:var(--color-info);border:none;border-radius:var(--radius-sm);color:var(--color-bg-page);cursor:pointer;font-size:var(--text-xs);font-family:var(--font-ui);font-weight:var(--weight-bold)}.file-browser-save-btn:hover{filter:brightness(1.1)}.file-browser-save-btn:disabled{opacity:.5;cursor:not-allowed}.file-browser-discard-btn{padding:var(--space-1) var(--space-3);background:var(--color-bg-active);border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xs);font-family:var(--font-ui)}.file-browser-discard-btn:hover{background:var(--color-border-default)}.file-browser-list-header{padding:var(--space-2) var(--space-2);flex-shrink:0}.file-browser-header-btns{display:flex;gap:var(--space-2);align-items:center}.file-browser-new-btn{flex:1;padding:var(--space-1) var(--space-3);background:transparent;border:1px dashed var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xs);font-family:var(--font-ui);transition:border-color var(--transition-fast),color var(--transition-fast)}.file-browser-new-btn:hover{border-color:var(--color-text-muted);color:var(--color-text-primary)}.file-browser-new-btn:disabled{opacity:.5;cursor:not-allowed}.file-browser-refresh-btn{padding:var(--space-1) var(--space-2);background:transparent;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-sm);line-height:1;transition:border-color var(--transition-fast),color var(--transition-fast)}.file-browser-refresh-btn:hover{border-color:var(--color-text-muted);color:var(--color-text-primary)}.file-browser-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.file-browser-new-input-row{display:flex;gap:var(--space-1);align-items:center}.file-browser-new-input{flex:1;min-width:0;padding:var(--space-1) var(--space-2);background:var(--color-bg-page);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-xs);font-family:var(--font-mono)}.file-browser-new-input:focus{outline:none;border-color:var(--color-accent)}.file-browser-format-btn{padding:var(--space-1) var(--space-3);background:transparent;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xs);font-family:var(--font-ui)}.file-browser-format-btn:hover{border-color:var(--color-info);color:var(--color-info)}.file-browser-rename-btn{padding:var(--space-1) var(--space-3);background:transparent;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xs);font-family:var(--font-ui);transition:border-color var(--transition-fast),color var(--transition-fast)}.file-browser-rename-btn:hover{border-color:var(--color-text-muted);color:var(--color-text-primary)}.file-browser-rename-btn:disabled{opacity:.5;cursor:not-allowed}.file-browser-rename-row{display:flex;gap:var(--space-1);align-items:center;flex:1}.file-browser-delete-btn{padding:var(--space-1) var(--space-3);background:transparent;border:1px solid var(--color-error);border-radius:var(--radius-sm);color:var(--color-error);cursor:pointer;font-size:var(--text-xs);font-family:var(--font-ui);transition:background var(--transition-fast),color var(--transition-fast)}.file-browser-delete-btn:hover{background:var(--color-error);color:var(--color-text-on-color)}.file-browser-delete-btn:disabled{opacity:.5;cursor:not-allowed}.file-browser-item-rename-input{width:100%;padding:var(--space-0-5) var(--space-1);background:var(--color-bg-page);border:1px solid var(--color-accent);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-xs);font-family:var(--font-mono);outline:none}.file-browser-selection-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--color-bg-active);border-top:1px solid var(--color-border-default);font-size:var(--text-2xs);color:var(--color-text-secondary);flex-shrink:0}.file-browser-shortcuts-hint{padding:var(--space-2);margin-top:auto;border-top:1px solid var(--color-border-default);color:var(--color-text-muted);font-size:var(--text-2xs);font-family:var(--font-ui);text-align:center;opacity:.7}.filter-pill{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);font-family:var(--font-ui);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;display:inline-flex;align-items:center;gap:var(--space-1)}.filter-pill:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.filter-pill:disabled{opacity:.4;cursor:not-allowed}.filter-pill.active{background:var(--color-info);border-color:var(--color-info);color:var(--color-bg-page)}.filter-pill-foundation.active{background:var(--color-foundation);border-color:var(--color-foundation)}.filter-pill-elementary.active{background:var(--color-success);border-color:var(--color-success)}.filter-pill-intermediate.active{background:var(--color-warning);border-color:var(--color-warning)}.filter-pill-advanced.active{background:var(--color-advanced);border-color:var(--color-advanced)}.filter-pill-expert.active{background:var(--color-expert);border-color:var(--color-expert)}.filter-pill-mastery.active{background:var(--color-error);border-color:var(--color-error)}.filter-pill-count{font-size:var(--text-2xs);opacity:.8}.catalogue-subtabs{display:flex;gap:0;border-bottom:1px solid var(--color-border-default);margin-bottom:var(--space-4)}.catalogue-subtab{padding:var(--space-2) var(--space-4);height:36px;display:flex;align-items:center;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);text-decoration:none;border-bottom:2px solid transparent;transition:color var(--transition-fast),background var(--transition-fast);white-space:nowrap}.catalogue-subtab:hover{color:var(--color-text-secondary);background:var(--color-bg-hover);text-decoration:none}.catalogue-subtab-active{color:var(--color-text-primary);font-weight:var(--weight-semibold);border-bottom-color:var(--color-accent)}.back-to-catalogue{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.back-to-catalogue:hover{color:var(--color-text-primary);background:var(--color-bg-hover);text-decoration:none}.catalogue-page{padding:var(--space-4)}.catalogue-browser{max-width:600px}.catalogue-error{color:var(--color-error);margin-bottom:var(--space-3);font-size:var(--text-sm)}.catalogue-quotes-controls{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.catalogue-browser .low-dialogue{opacity:.45}.chapter-filters-bar{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg)}.chapter-filters-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.chapter-filters-toggles{display:flex;gap:var(--space-1)}.chapter-filters-section-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:var(--weight-semibold);min-width:60px}.chapter-genre-select{padding:var(--space-1) var(--space-3);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-ui);cursor:pointer}.chapter-genre-select:focus{outline:none;border-color:var(--color-border-focus)}.chapter-gender-segmented{display:inline-flex;gap:var(--space-0-5);background:var(--color-bg-active);border-radius:var(--radius-sm);padding:var(--space-0-5)}.chapter-gender-seg-btn{padding:var(--space-1) var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xs);font-weight:var(--weight-semibold);font-family:var(--font-ui);line-height:1;transition:all var(--transition-fast)}.chapter-gender-seg-btn.active{background:var(--color-bg-surface);color:var(--color-text-primary)}.chapter-gender-seg-btn:hover:not(.active){color:var(--color-text-secondary)}.chapter-result-count{margin-left:auto;font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}.badge-dialogue-density{font-size:var(--text-2xs);font-family:var(--font-mono, monospace);color:var(--color-text-muted);margin-left:var(--space-1)}.ai-popup{position:fixed;z-index:10000;background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:min(500px,70vh);overflow-y:auto;animation:ai-popup-fade-in .12s ease;width:420px}@keyframes ai-popup-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ai-popup-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-subtle)}.ai-popup-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-primary);flex:1}.ai-popup-badge{display:inline-flex;align-items:center;padding:1px var(--space-2);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:.06em;color:var(--color-text-on-interactive);background:var(--color-interactive);border-radius:var(--radius-full)}.ai-popup-close{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-xl);cursor:pointer;padding:0 var(--space-1);line-height:1;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.ai-popup-close:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.ai-popup-selected-text{padding:var(--space-2) var(--space-3);font-family:var(--font-book);font-size:var(--text-sm);font-style:italic;color:var(--color-text-secondary);line-height:var(--leading-relaxed);border-bottom:1px solid var(--color-border-subtle);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ai-popup-input-row{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-subtle)}.ai-popup-input{width:100%;padding:var(--space-2);font-family:var(--font-book);font-size:var(--text-sm);color:var(--color-text-primary);background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-md);outline:none;transition:border-color var(--transition-fast);box-sizing:border-box}.ai-popup-input:focus{border-color:var(--color-interactive)}.ai-popup-input:disabled{opacity:.6;cursor:wait}.ai-popup-body{padding:var(--space-2) var(--space-3) var(--space-3);min-height:var(--space-4)}.ai-popup-status{color:var(--color-text-muted);font-size:var(--text-sm);font-style:italic;padding:var(--space-1) 0}.ai-popup-explanation{font-family:var(--font-book);font-size:var(--text-sm);color:var(--color-text-primary);line-height:var(--leading-relaxed)}.ai-popup-context{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-relaxed)}.ai-popup-error{font-size:var(--text-xs);color:var(--color-error);padding:var(--space-1) 0}.ai-popup-cached{display:inline-block;margin-top:var(--space-1);font-size:var(--text-2xs);color:var(--color-text-muted);font-weight:var(--weight-normal)}.ai-popup-footer{display:flex;justify-content:flex-end;padding:var(--space-1) var(--space-3) var(--space-2);border-top:1px solid var(--color-border-subtle)}.ai-popup-usage{font-size:var(--text-2xs);color:var(--color-text-muted)}.ai-popup::-webkit-scrollbar{width:6px}.ai-popup::-webkit-scrollbar-track{background:transparent}.ai-popup::-webkit-scrollbar-thumb{background:var(--color-border-default);border-radius:var(--radius-full)}.quote-workspace{flex:1;display:flex;flex-direction:column;min-height:0;max-width:100%;margin:0;padding:0 var(--space-2)}.controls-bar{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;padding:var(--space-1) var(--space-4);background:var(--color-bg-surface);border-radius:0;position:sticky;top:var(--header-height);z-index:100;border-bottom:1px solid var(--color-border-default);height:var(--header-height)}.controls-bar label{color:var(--color-text-primary);margin-right:.3rem;font-size:var(--text-sm);font-weight:var(--weight-bold);font-family:var(--font-ui)}.controls-bar button{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-ui);cursor:pointer;height:38px}.controls-bar button:hover:not(:disabled){border-color:var(--color-accent)}.controls-bar button:disabled{opacity:.5;cursor:not-allowed}.chapter-nav{display:flex;gap:var(--space-1);align-items:center}.quote-nav{display:flex;gap:var(--space-1);align-items:center;padding:0 var(--space-2);border-left:1px solid var(--color-bg-muted)}.quote-counter{color:var(--color-text-muted);font-size:var(--text-sm);min-width:120px;text-align:center}.compact-info-bar{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);padding:var(--space-1) var(--space-4);background:var(--color-bg-muted);font-size:var(--text-sm);border-bottom:1px solid var(--color-border-default);position:sticky;top:var(--header-height);z-index:99;height:32px;box-sizing:border-box}.compact-info-bar.collapsed{height:32px;padding:var(--space-1) var(--space-4)}.compact-info-bar.collapsed>*:not(.info-bar-toggle){display:none}.info-bar-toggle{background:var(--color-bg-active);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);transition:background var(--transition-normal);flex-shrink:0;margin-right:.5rem}.info-bar-toggle:hover{color:var(--color-text-primary);background:var(--color-border-default)}.compact-info-bar .book-title{color:var(--color-text-primary);font-weight:var(--weight-bold)}.compact-info-bar .badge{background:var(--color-success);color:var(--color-bg-page);padding:var(--space-0-5) var(--space-2);border-radius:3px;font-size:var(--text-2xs);font-weight:var(--weight-bold)}.compact-info-bar .separator{color:var(--color-border-default)}.compact-info-bar .progress-text{color:var(--color-success)}.compact-info-bar .chapter-progress{color:var(--color-text-muted)}.compact-info-bar .mini-progress-bar{width:80px;height:6px;background:var(--color-bg-active);border-radius:3px;overflow:hidden;margin-left:auto}.compact-info-bar .mini-progress-fill{height:100%;background:var(--color-success);transition:width .3s ease}.children-filter-toggle{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-family:var(--font-ui);color:var(--color-text-primary);cursor:pointer;white-space:nowrap}.children-filter-toggle input[type=checkbox]{accent-color:var(--color-accent)}.save-btn-compact,.controls-bar-save-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-text-muted);font-size:var(--text-sm);font-family:var(--font-ui);cursor:pointer;min-width:120px;height:38px}.save-btn-compact.has-changes,.controls-bar-save-btn.has-changes{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.save-btn-compact:disabled,.controls-bar-save-btn:disabled{opacity:.7;cursor:default}.progress-bar-container{display:none}.progress-info{display:flex;align-items:center;gap:var(--space-6);margin-bottom:.5rem;font-size:var(--text-sm)}.progress-text{color:var(--color-success);font-weight:var(--weight-bold)}.chapter-progress{color:var(--color-text-muted)}.jump-unreviewed-btn{display:none;margin-left:auto;padding:var(--space-1) var(--space-2);background:var(--color-accent);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-size:var(--text-sm)}.jump-unreviewed-btn:hover{background:var(--color-accent-hover)}.progress-bar{height:8px;background:var(--color-bg-muted);border-radius:var(--radius-sm);overflow:hidden}.progress-fill{height:100%;background:var(--color-success);border-radius:var(--radius-sm);transition:width .3s ease}.save-controls{margin-left:auto;display:flex;align-items:center;gap:var(--space-3)}.save-btn{background:var(--color-bg-muted)}.save-btn.has-changes{background:var(--color-accent);border-color:var(--color-accent);animation:pulse 2s infinite}.autosave-info{font-size:var(--text-sm);color:var(--color-text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.submit-progress-btn{position:relative;overflow:hidden;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-page);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-ui);cursor:pointer;min-width:80px;height:38px;margin-left:4px}.submit-progress-btn:before{content:"";position:absolute;top:0;left:0;height:100%;width:var(--fill-pct, 0%);background:var(--fill-color, var(--color-info));opacity:.35;transition:width .4s ease,background .3s ease;pointer-events:none}.submit-progress-btn:hover{border-color:var(--color-accent)}.submit-progress-label{position:relative;z-index:1;white-space:nowrap}.submit-progress-btn.ready{border-color:var(--color-success)}.submit-progress-btn.ready:before{opacity:.45}.submit-progress-btn.submitted{border-color:var(--color-success)}.submit-progress-btn.submitted:before{opacity:.5}.submit-progress-btn.confirming{border-color:var(--color-warning);animation:confirm-pulse 1s ease-in-out infinite}@keyframes confirm-pulse{0%,to{opacity:1}50%{opacity:.7}}.submit-confirm-group{display:flex;align-items:center;gap:var(--space-1)}.submit-cancel-btn{font-size:var(--text-sm);font-family:var(--font-ui);padding:var(--space-1) var(--space-1);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-text-muted);cursor:pointer;white-space:nowrap}.submit-cancel-btn:hover{background:var(--color-bg-hover)}.readonly-indicator{font-size:var(--text-sm);font-family:var(--font-ui);color:var(--color-text-muted);background:var(--color-bg-muted);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border-default);white-space:nowrap}.review-banner{display:flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-4);font-size:var(--text-sm);font-family:var(--font-ui);font-weight:var(--weight-bold);position:sticky;top:var(--header-height);z-index:101}.review-banner{background:var(--color-info-light);color:var(--color-info);border-bottom:1px solid var(--color-info)}.book-identity-label{display:flex;flex-direction:column;gap:var(--space-0-5);min-width:150px;overflow:hidden}.book-identity-title{font-weight:var(--weight-semibold);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-primary)}.book-identity-author{font-size:var(--text-2xs);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.offline-indicator{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-warning);background:var(--color-warning-light);border:1px solid var(--color-warning);white-space:nowrap}.main-layout{display:flex;gap:var(--space-2);align-items:flex-start;padding-top:0}.main-layout.three-column{display:flex;gap:var(--space-2);padding-top:0}.main-layout.three-column>.resize-handle{align-self:stretch}.reader-panel{flex:1;min-width:0}.left-panels{display:flex;flex-direction:column;gap:var(--space-2);position:sticky;top:calc(var(--header-height) * 2);z-index:10;align-self:flex-start;flex-shrink:0}.left-panels.collapsed{flex:0 0 auto}.quote-workspace.has-story-section .left-panels{top:calc(var(--header-height) * 2 + 40px)}.left-panels-group{display:flex;align-items:flex-start;gap:0;width:100%}.left-panels-group.collapsed{width:auto}.left-panels-group>.panel-toggle-btn{width:24px;min-height:60px;background:var(--color-bg-active);border:1px solid var(--color-border-default);border-radius:var(--radius-sm) 0 0 var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);transition:background var(--transition-normal),color var(--transition-normal);flex-shrink:0;align-self:stretch}.left-panels-group>.panel-toggle-btn:hover{background:var(--color-border-default);color:var(--color-text-primary)}.left-panels-group.collapsed>.panel-toggle-btn{border-radius:var(--radius-sm)}.left-panels-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1);border:1px solid var(--color-border-default);border-left:none;border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:var(--color-bg-surface);padding:var(--space-2)}.left-panels-content .notes-panel,.left-panels-content .quote-nav-panel,.left-panels-content .quote-editor-panel{border:none;border-radius:0;padding:var(--space-1) 0;background:transparent}.left-panels-content .notes-panel,.left-panels-content .quote-nav-panel{border-bottom:1px solid var(--color-border-default);padding-bottom:var(--space-2)}.left-panels-content .notes-panel{flex:1;min-height:120px}.left-panels-content .notes-panel .notes-panel-textarea{flex:1;min-height:80px}@media(max-width:1200px){.main-layout.three-column{flex-direction:column}.quote-editor-panel{width:100%;min-width:100%;position:static;order:1}.reader-panel{order:2}.alias-builder-panel{order:3}}@media(max-width:1024px){.main-layout{flex-direction:column}.quote-editor-panel{width:100%;min-width:100%;position:static}.groups-list{max-height:200px}}@media(max-width:768px){.quote-workspace{padding:var(--space-2)}.controls-bar{flex-direction:column;align-items:stretch}.chapter-nav{justify-content:center}.save-controls{margin-left:0;text-align:center}}.boundary-modal-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.boundary-modal{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);font-family:var(--font-ui);width:90%;max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.boundary-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border-default);background:var(--color-bg-muted)}.boundary-modal-header h3{margin:0;font-size:var(--text-lg);color:var(--color-text-primary)}.boundary-modal-close{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-xl);cursor:pointer;padding:0;line-height:1}.boundary-modal-close:hover{color:var(--color-accent)}.boundary-modal-body{padding:var(--space-6)}.boundary-field{margin-bottom:1.5rem}.boundary-field label{display:block;font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:.5rem}.boundary-original{background:var(--color-bg-muted);padding:var(--space-4);border-radius:var(--radius-sm);font-family:var(--font-book);font-size:var(--text-md);line-height:1.6;color:var(--color-text-secondary);border-left:3px solid var(--color-accent)}.boundary-input{width:100%;background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);padding:var(--space-4);font-family:var(--font-book);font-size:var(--text-md);line-height:1.6;color:var(--color-text-primary);resize:vertical}.boundary-input:focus{outline:none;border-color:var(--color-success)}.boundary-diff{display:flex;gap:var(--space-2);align-items:center;font-size:var(--text-sm)}.diff-label{color:var(--color-text-muted)}.diff-removed{color:var(--color-accent)}.boundary-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border-default);background:var(--color-bg-muted)}.boundary-btn-cancel{background:var(--color-bg-muted);border:1px solid var(--color-border-default);color:var(--color-text-muted);padding:var(--space-3) var(--space-6);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-base)}.boundary-btn-cancel:hover{border-color:var(--color-text-dim);color:var(--color-text-secondary)}.boundary-btn-save{background:var(--color-success);border:none;color:var(--color-bg-page);padding:var(--space-3) var(--space-6);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-base);font-weight:var(--weight-bold)}.boundary-btn-save:hover:not(:disabled){background:var(--color-success)}.boundary-btn-save:disabled{background:var(--color-border-default);color:var(--color-text-dim);cursor:not-allowed}.quote-reader{display:flex;align-items:flex-start;background:var(--color-bg-surface);padding:var(--space-8);border-radius:var(--radius-lg);font-family:var(--font-book);font-size:var(--text-book);line-height:var(--text-book-line-height)}.paragraph{margin:0 0 1.5rem;text-align:justify}.reader-gutter{width:48px;flex-shrink:0;user-select:none;pointer-events:none}.reader-line-number{height:calc(var(--text-book) * var(--text-book-line-height));line-height:calc(var(--text-book) * var(--text-book-line-height));text-align:right;padding-right:var(--space-3);box-sizing:border-box;font-family:var(--font-mono);font-size:.7em;color:var(--color-text-dim)}.reader-line-number.milestone{color:var(--color-text-muted)}.chapter-content{flex:1;min-width:0;font-size:var(--text-book);line-height:var(--text-book-line-height);font-family:var(--font-book)}.reader-line-content{white-space:pre-wrap;word-wrap:break-word}.quote-span-continuation{cursor:pointer;display:inline;border:2px solid var(--color-quote-border);border-radius:3px;padding:0 var(--space-1)}.quote-span-continuation.reviewed{border-color:var(--color-quote-border-reviewed)}.quote-span-continuation.unsure{background:var(--color-quote-bg-unsure);border-color:var(--color-quote-border-unsure)}.quote-span-continuation.current,.quote-span-continuation:hover{color:var(--color-quote-hover)}.plain-text{color:var(--color-text-primary)}.quote-span{cursor:pointer;position:relative;display:inline;border:2px solid var(--color-quote-border);border-radius:3px;padding:0 var(--space-1)}.quote-span.reviewed{border-color:var(--color-quote-border-reviewed)}.quote-span.unassigned{border-color:var(--color-quote-border-unassigned)}.quote-span.group-quote{border-style:dashed;border-color:var(--color-quote-border-group);border-width:3px}.quote-span.group-quote.reviewed{border-color:var(--color-quote-border-group-reviewed)}.quote-span.current,.quote-span:hover{color:var(--color-quote-hover)}.review-indicator{color:var(--color-success);font-size:.85em;margin-right:.25rem;font-weight:var(--weight-bold)}.unreviewed-indicator{color:var(--color-error);font-size:.85em;margin-right:.25rem;font-weight:var(--weight-bold)}.unsure-indicator{color:var(--color-warning);font-size:.85em;margin-right:.25rem;font-weight:var(--weight-bold)}.quote-span.quote.unsure{background:var(--color-quote-bg-unsure);border-color:var(--color-quote-border-unsure)}.quote-span.nested-1{border-style:dotted;border-width:3px;border-color:var(--color-quote-border-nested);background:var(--color-quote-bg-nested)}.quote-span.nested-1.reviewed{border-color:var(--color-quote-border-reviewed);background:var(--color-quote-bg-nested)}.quote-span-continuation.nested-1{border-style:dotted;border-width:3px;border-color:var(--color-quote-border-nested);background:var(--color-quote-bg-nested)}.unsure-toggle-btn{position:absolute;top:-24px;right:24px;width:22px;height:22px;border-radius:var(--radius-sm);border:1px solid var(--color-border-default);background:var(--color-bg-page);color:var(--color-text-muted);font-weight:var(--weight-bold);font-size:var(--text-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10}.unsure-toggle-btn:hover,.unsure-toggle-btn.active{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning)}.review-btn{width:100%;padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--color-border-default);background:var(--color-success-light);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);font-family:var(--font-ui);text-align:left;transition:background .15s}.review-btn:hover{background:var(--color-success-light);color:var(--color-text-primary)}.review-btn.reviewed{background:var(--color-success);color:#fff}.review-btn.reviewed:hover{background:var(--color-success)}.top-review-btn{margin-bottom:.5rem;border-radius:var(--radius-sm);border:1px solid var(--color-border-default)}.dropdown-divider{height:1px;background:var(--color-border-default);margin:.5rem 0}.current-speaker{color:var(--color-text-muted);font-size:var(--text-sm);margin-left:1rem}.current-speaker.unassigned-header{color:var(--color-warning);font-weight:var(--weight-bold)}.segment{cursor:pointer;padding:var(--space-0-5) var(--space-1);border-radius:2px;transition:color .15s,background-color .15s;position:relative;display:inline}.segment:hover{color:var(--color-hover-indicator)!important;background:var(--color-warning-light)}.segment.selected{background:var(--color-selection-bg);outline:1px solid var(--color-accent)}.segment.narration{color:var(--color-text-primary)}.segment.quote.narrator{color:var(--quote-char-narrator)}.segment.quote.char-0{color:var(--quote-char-0)}.segment.quote.char-1{color:var(--quote-char-1)}.segment.quote.char-2{color:var(--quote-char-2)}.segment.quote.char-3{color:var(--quote-char-3)}.segment.quote.char-4{color:var(--quote-char-4)}.segment.quote.char-5{color:var(--quote-char-5)}.segment.quote.char-6{color:var(--quote-char-6)}.segment.quote.char-7{color:var(--quote-char-7)}.segment.quote.char-8{color:var(--quote-char-8)}.segment.quote.char-9{color:var(--quote-char-9)}.segment.unassigned{color:var(--quote-char-unassigned);font-style:italic}.segment.deleted{color:var(--color-text-dim);text-decoration:line-through;opacity:.5}.sentence{cursor:pointer;padding:var(--space-0-5) var(--space-1);border-radius:2px;transition:color .15s,background-color .15s;position:relative;display:inline}.sentence:hover{color:var(--color-hover-indicator)!important;background:var(--color-warning-light)}.sentence.selected{background:var(--color-selection-bg);outline:1px solid var(--color-accent)}.sentence.narrator,.sentence.char-1,.sentence.char-2,.sentence.char-3,.sentence.char-4,.sentence.char-5,.sentence.char-6,.sentence.char-7{color:var(--color-text-primary)}.sentence.unassigned{color:var(--color-text-primary);font-style:italic}.sentence.deleted{color:var(--color-text-dim);text-decoration:line-through;opacity:.5}.fix-boundary-btn{width:100%;padding:var(--space-2) var(--space-4);margin-bottom:.5rem;background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-base);cursor:pointer;text-align:left}.fix-boundary-btn:hover{background:var(--color-bg-elevated);border-color:var(--color-warning);color:var(--color-warning)}.unsure-quote-btn{width:100%;padding:var(--space-2) var(--space-4);margin-bottom:.5rem;background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-base);cursor:pointer;text-align:left}.unsure-quote-btn:hover,.unsure-quote-btn.active{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning)}.delete-quote-btn{width:100%;padding:var(--space-2) var(--space-4);margin-bottom:.5rem;background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-base);cursor:pointer;text-align:left}.delete-quote-btn:hover{background:var(--color-error-light);border-color:var(--color-accent);color:var(--color-accent)}::-webkit-scrollbar{width:18px;height:18px}::-webkit-scrollbar-track{background:var(--color-bg-surface)}::-webkit-scrollbar-thumb{background:var(--color-interactive);border-radius:9px;border:2px solid var(--color-bg-surface)}::-webkit-scrollbar-thumb:hover{background:var(--color-interactive-hover)}.alias-builder-panel .groups-list::-webkit-scrollbar{width:16px}.alias-builder-panel .groups-list::-webkit-scrollbar-track{background:var(--color-bg-elevated)}.alias-builder-panel .groups-list::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:8px;border:2px solid var(--color-bg-elevated)}.alias-builder-panel .groups-list::-webkit-scrollbar-thumb:hover{background:var(--color-accent-hover)}.alias-builder-panel .groups-list{overscroll-behavior:contain}.attribution-dropdown{background:var(--color-bg-muted);border:2px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-family:var(--font-ui);min-width:280px;max-width:350px;max-height:500px;display:flex;flex-direction:column;overflow:hidden}.dropdown-header{flex-shrink:0;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border-default);background:var(--color-bg-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.unassigned-warning{flex-shrink:0;padding:var(--space-2) var(--space-4);background:var(--color-warning-light);border-bottom:1px solid var(--color-warning);color:var(--color-warning);font-size:var(--text-sm);font-weight:var(--weight-bold)}.dropdown-search{flex-shrink:0}.dropdown-actions{flex-shrink:0;border-top:1px solid var(--color-border-default);padding:var(--space-2);background:var(--color-bg-surface);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.segment-type-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.05em}.segment-type-badge:contains("quote"){background:var(--color-info);color:#fff}.dropdown-header .segment-type-badge{background:var(--color-border-default);color:var(--color-text-secondary)}.dropdown-search{padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--color-border-default);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--text-base);font-family:var(--font-ui);border-radius:var(--radius-lg) var(--radius-lg) 0 0;outline:none}.dropdown-search.unassigned-input::placeholder{color:var(--color-warning);font-weight:var(--weight-bold)}.dropdown-search:focus{background:var(--color-bg-elevated)}.dropdown-list{flex:1;min-height:0;max-height:250px;overflow-y:auto;padding:var(--space-2)}.dropdown-option{padding:var(--space-2) var(--space-4);border:none;background:transparent;color:var(--color-text-primary);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--text-sm);text-align:left;display:flex;justify-content:space-between;align-items:center;width:100%}.dropdown-option:hover{background:var(--color-bg-active)}.mode-toggle{display:flex;gap:0;margin-bottom:.4rem}.mode-toggle-btn{flex:1;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-default);background:transparent;color:var(--color-text-dim);cursor:pointer;font-size:var(--text-xs);font-family:var(--font-ui);transition:all .15s ease}.mode-toggle-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:none}.mode-toggle-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.mode-toggle-btn.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.dropdown-option.group-option{cursor:pointer}.dropdown-option.group-option.checked{background:var(--color-selection-bg)}.group-checkbox{margin-right:.5rem;accent-color:var(--color-category-purple);cursor:pointer}.group-confirm{flex-shrink:0;padding:var(--space-2);border-top:1px solid var(--color-border-default);background:var(--color-bg-surface)}.group-confirm-btn{width:100%;padding:var(--space-2);border:none;border-radius:var(--radius-sm);background:var(--color-category-purple);color:#fff;cursor:pointer;font-size:var(--text-sm);font-family:var(--font-ui);font-weight:var(--weight-bold);transition:background .15s ease}.group-confirm-btn:hover:not(:disabled){background:var(--color-category-purple)}.group-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.dropdown-option.current{background:#e74c3c;color:#fff}.dropdown-option.current .option-count{color:#fffc!important}.dropdown-option.highlighted{background:var(--color-info-light)}.dropdown-option.special{border-top:1px solid var(--color-border-default);margin-top:.25rem;padding-top:var(--space-3);color:var(--color-text-secondary)}.dropdown-option.special:first-of-type{border-top:none;margin-top:0}.dropdown-option.add-new-character{background:var(--color-success-light);border:1px dashed var(--color-success);color:var(--color-success);margin-bottom:.5rem}.dropdown-option.add-new-character:hover{background:var(--color-success-light)}.option-name{flex:1}.option-count{color:var(--color-text-muted);font-size:var(--text-sm);margin-left:.75rem}.dropdown-empty{padding:var(--space-4);color:var(--color-text-dim);text-align:center;font-style:italic}.nav-filter{margin-bottom:8px}.quote-filter-select{width:100%;padding:var(--space-2) var(--space-2);background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer}.quote-filter-select:hover{border-color:var(--color-interactive)}.quote-filter-select:focus{outline:none;border-color:var(--color-interactive);box-shadow:0 0 4px var(--color-interactive-light)}.quote-filter-select option{background:var(--color-bg-surface);color:var(--color-text-primary)}.alias-builder-panel{background:var(--color-bg-surface);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);flex-shrink:0;position:sticky;top:96px;top:calc(var(--header-height) * 2);height:calc(100vh - 96px);height:calc(100vh - var(--header-height) * 2);min-height:200px;overflow:hidden;font-family:var(--font-ui)}.quote-workspace.has-story-section .alias-builder-panel{top:calc(var(--header-height) * 2 + 40px);height:calc(100vh - var(--header-height) * 2 - 40px)}.alias-builder-panel:after{content:"";position:absolute;top:100%;left:0;right:0;height:200vh;background:var(--color-bg-surface);pointer-events:none}.alias-builder-panel .shortcut-hint{margin-top:.3rem;font-size:var(--text-xs);color:var(--color-text-dim);text-align:center}.alias-builder-panel .shortcut-hint kbd{background:var(--color-bg-active);padding:var(--space-0-5) var(--space-2);border-radius:3px;font-family:var(--font-mono);color:var(--color-info)}.alias-builder-panel .panel-title{margin:0 0 .75rem;font-size:var(--text-sm);color:var(--color-accent);border-bottom:1px solid var(--color-bg-muted);padding-bottom:var(--space-3)}.alias-builder-panel label{display:block;color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:.4rem}.group-add-alias{display:flex;gap:var(--space-1);margin-top:.5rem;width:100%;overflow:hidden}.group-alias-input{flex:1;min-width:0;max-width:calc(100% - 50px);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-text-secondary);font-size:var(--text-base)}.group-alias-input:focus{outline:none;border-color:var(--color-success)}.group-add-btn{flex-shrink:0;padding:var(--space-1) var(--space-2);border:none;border-radius:var(--radius-sm);background:var(--color-bg-active);color:var(--color-text-muted);font-size:var(--text-base);font-weight:var(--weight-bold);cursor:pointer}.group-add-btn:hover:not(:disabled){background:var(--color-success);color:#fff}.group-add-btn:disabled{cursor:not-allowed;opacity:.5}.search-section{padding:0 0 var(--space-1)}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:8px;font-size:var(--text-xs);pointer-events:none;opacity:.6}.search-section .alias-input.search-field{padding-left:1.75rem;width:100%;background:var(--color-bg-muted)}.search-section .alias-input.search-field:focus{border-color:var(--color-success);background:var(--color-selection-bg)}.search-clear-btn{position:absolute;right:4px;background:none;border:none;cursor:pointer;font-size:var(--text-base);color:var(--color-text-muted);padding:0 var(--space-1);line-height:1}.search-clear-btn:hover{color:var(--color-text-primary)}.alias-input{flex:1;min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-muted);box-sizing:border-box;color:var(--color-text-primary);font-size:var(--text-sm);outline:none;height:36px}.alias-input::placeholder{font-size:var(--text-2xs)}.alias-input:focus{border-color:var(--color-success);background:var(--color-selection-bg)}.alias-input-btn{width:36px;height:36px;padding:0;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-active);color:var(--color-success);font-size:var(--text-sm);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.alias-input-btn:hover:not(:disabled){background:var(--color-border-default);border-color:var(--color-success)}.alias-input-btn:disabled{opacity:.5;cursor:not-allowed}.groups-section{flex:1;display:flex;flex-direction:column;min-height:0}.groups-section-header{display:flex;align-items:center;justify-content:space-between}.sort-groups-btn{background:none;border:1px solid var(--color-border-default);border-radius:4px;cursor:pointer;font-size:var(--text-base);line-height:1;padding:var(--space-0-5) var(--space-2);color:var(--color-text-secondary);transition:color .15s,border-color .15s}.sort-groups-btn:hover{color:var(--color-text-primary);border-color:var(--color-text-secondary)}.groups-list{flex:1;overflow-y:auto;overscroll-behavior-y:contain;display:flex;flex-direction:column;gap:var(--space-2);min-height:0;outline:none}.create-section{display:flex;flex-direction:column;gap:var(--space-2);margin-top:.15rem}.create-section label{font-size:var(--text-sm);color:var(--color-text-muted)}.create-input-row{display:flex;gap:var(--space-2);width:100%;box-sizing:border-box}.create-input-wrapper{position:relative;display:flex;align-items:center;flex:1;min-width:0}.create-icon{position:absolute;left:8px;font-size:var(--text-xs);pointer-events:none;opacity:.6}.create-section .alias-input.create-field{padding-left:1.75rem;width:100%}.story-mismatch-info{background:var(--color-info-light);border:1px solid var(--color-info);border-radius:4px;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--color-info);margin-bottom:.25rem}.story-mismatch-warning{background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:4px;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--color-warning);margin-bottom:.25rem}.add-target-indicator{font-size:var(--text-xs);color:var(--color-text-muted);padding-left:var(--space-1)}.add-target-indicator strong{color:var(--color-interactive)}.add-target-story{color:var(--color-interactive);font-size:.85em}.create-new-btn{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-sm);background:var(--color-bg-active);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-sm);white-space:nowrap}.create-new-btn:not(:disabled){background:var(--color-success);color:#fff}.create-new-btn:hover:not(:disabled){background:var(--color-success)}.create-new-btn:disabled{cursor:not-allowed}.create-new-btn:disabled{opacity:.5;cursor:not-allowed}.create-hint{color:var(--color-text-dim);font-size:var(--text-sm);text-align:center}.stats-section{display:flex;justify-content:space-between;padding-top:var(--space-2);border-top:1px solid var(--color-bg-muted);color:var(--color-text-dim);font-size:var(--text-sm)}@media(max-width:1200px){.alias-builder-panel{width:100%!important;min-width:100%!important;position:static!important;height:auto!important;max-height:none}}@media(max-width:768px){.alias-builder-panel{width:100%!important;min-width:100%!important}}.alias-group{background:var(--color-bg-muted);padding:var(--space-2);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-2);position:relative;border:2px solid transparent;transition:border-color .15s}.alias-group.clickable{cursor:pointer;border-color:var(--color-border-default)}.alias-group.clickable:hover{border-color:var(--color-success)}.group-header{display:flex;align-items:center;gap:var(--space-2)}.group-move-btns{display:flex;flex-direction:column;gap:1px}.move-group-btn{background:var(--color-border-subtle);border:none;color:var(--color-text-dim);font-size:var(--text-xs);padding:var(--space-1) var(--space-1);cursor:pointer;line-height:1;border-radius:2px}.move-group-btn:hover:not(:disabled){background:var(--color-border-default);color:var(--color-success)}.move-group-btn:disabled{opacity:.3;cursor:not-allowed}.group-number{color:var(--color-text-dim);font-size:var(--text-sm);font-weight:var(--weight-bold)}.attr-select{padding:var(--space-1) var(--space-1);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-hover);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;min-width:70px}.attr-select:focus{outline:none;border-color:var(--color-text-dim)}.attr-select.gender-unknown{border-color:var(--color-text-dim);color:var(--color-text-muted)}.attr-select.gender-male{border-color:var(--color-info);color:var(--color-info)}.attr-select.gender-female{border-color:var(--color-category-pink);color:var(--color-category-pink)}.attr-select.gender-neutral{border-color:var(--color-category-purple);color:var(--color-category-purple)}.attr-select.role-main{border-color:var(--trophy-gold);color:var(--trophy-gold)}.attr-select.role-antagonist{border-color:var(--color-error);color:var(--color-error)}.attr-select.role-supporting{border-color:var(--color-info);color:var(--color-info)}.attr-select.role-minor{border-color:var(--color-text-muted);color:var(--color-text-muted)}.attr-select.role-group{border-color:var(--color-category-purple);color:var(--color-category-purple)}.remove-group-btn{margin-left:auto}.remove-group-btn{width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-dim);cursor:pointer;font-size:var(--text-base);line-height:1;transition:background .15s,color .15s}.remove-group-btn:hover{background:var(--color-accent);color:var(--color-text-on-color)}.no-matches,.no-groups{color:var(--color-text-dim);font-style:italic;text-align:center;padding:var(--space-4);font-size:var(--text-sm)}.group-aliases{display:flex;flex-wrap:wrap;gap:var(--space-1)}.alias-group.clickable .group-aliases:hover .alias-tag{background:var(--color-border-default)}.alias-tag{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--color-bg-active);color:var(--color-text-primary);padding:var(--space-1) var(--space-1);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:background .15s;user-select:none;position:relative}.alias-tag.primary{background:var(--color-bg-active);border-left:2px solid var(--color-success)}.alias-text{padding:0 var(--space-0-5)}.move-alias-btn{background:transparent;border:none;color:var(--color-text-disabled);font-size:var(--text-sm);cursor:pointer;padding:0 var(--space-0-5);line-height:1;opacity:0;transition:opacity .15s,color .15s}.alias-tag:hover .move-alias-btn{opacity:1}.move-alias-btn:hover{color:var(--color-success)}.remove-alias-btn{background:transparent;border:none;color:var(--color-text-muted);font-size:var(--text-base);cursor:pointer;padding:0 var(--space-1);line-height:1;transition:color .15s}.remove-alias-btn:hover{color:var(--color-error)}.alias-tag.confirming{background:var(--color-error-light);padding:var(--space-1) var(--space-1)}.alias-confirm{display:flex;align-items:center;gap:var(--space-1)}.alias-confirm-text{color:var(--color-error);font-size:var(--text-base)}.alias-confirm-yes,.alias-confirm-no{border:none;border-radius:3px;padding:var(--space-1) var(--space-1);font-size:var(--text-sm);cursor:pointer}.alias-confirm-yes{background:var(--color-error);color:#fff}.alias-confirm-yes:hover{background:var(--color-accent-hover)}.alias-confirm-no{background:var(--color-text-disabled);color:#fff}.alias-confirm-no:hover{background:var(--color-text-dim)}.confirm-delete-overlay{position:absolute;inset:0;background:var(--color-accent);border-radius:var(--radius-md);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-3);z-index:10;color:#fff;font-weight:var(--weight-bold);font-size:var(--text-lg)}.confirm-buttons{display:flex;gap:var(--space-2)}.confirm-yes,.confirm-no{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-bold)}.confirm-yes{background:#fff;color:var(--color-accent)}.confirm-yes:hover{background:var(--color-bg-muted)}.confirm-no{background:transparent;color:#fff;border:2px solid white}.confirm-no:hover{background:var(--color-selection-bg)}.rank-input{width:40px;padding:var(--space-0-5) var(--space-1);background:var(--color-bg-elevated);border:1px solid var(--color-interactive);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm);text-align:center;-moz-appearance:textfield}.rank-input::-webkit-outer-spin-button,.rank-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.rank-input:focus{outline:none;border-color:var(--color-interactive-hover);box-shadow:0 0 4px var(--color-interactive)}.group-number{cursor:pointer;user-select:none}.group-number:hover{color:var(--color-interactive)}.attr-select-sm{padding:var(--space-0-5) var(--space-1);font-size:var(--text-xs);min-width:55px;max-width:70px}.entity-single{border-color:var(--color-info)}.entity-pair{border-color:var(--color-success)}.entity-group{border-color:var(--color-category-purple);background:var(--color-bg-surface)}.group-story-row{display:flex;align-items:center;gap:var(--space-2);margin:2px 0 4px;padding:var(--space-1) var(--space-2);background:var(--color-interactive-light);border-radius:var(--radius-sm);border-left:2px solid var(--color-si-teal)}.group-story-label{font-size:var(--text-2xs);color:var(--color-si-teal);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--weight-bold);flex-shrink:0}.group-story-select{flex:1;min-width:0;padding:var(--space-0-5) var(--space-2);font-size:var(--text-xs);background:var(--color-bg-hover);border:1px solid var(--color-interactive-light);border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer}.group-story-select:focus{outline:none;border-color:var(--color-si-teal)}.alias-rename-input{padding:var(--space-0-5) var(--space-2);background:var(--color-bg-elevated);border:1px solid var(--color-interactive);border-radius:3px;color:var(--color-text-primary);font-size:var(--text-sm);min-width:60px;max-width:120px}.alias-rename-input:focus{outline:none;border-color:var(--color-interactive-hover)}.alias-text{cursor:text}.alias-text:hover{text-decoration:underline dotted;text-underline-offset:2px}.move-to-wrapper{position:relative;display:inline-flex;align-items:center}.move-to-btn{width:24px;height:24px;display: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);font-size:var(--text-sm);cursor:pointer;opacity:0;transition:opacity .15s,background .15s,border-color .15s}.alias-group:hover .move-to-btn,.move-to-btn.active{opacity:1}.move-to-btn:hover{background:var(--color-interactive-light);border-color:var(--color-interactive-light);color:var(--color-si-teal)}.move-to-btn.active{background:var(--color-interactive-light);border-color:var(--color-si-teal);color:var(--color-si-teal)}.move-to-dropdown{position:absolute;top:100%;right:0;margin-top:4px;min-width:160px;background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:200;overflow:hidden}.move-to-header{padding:var(--space-2) var(--space-3);font-size:var(--text-2xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border-subtle)}.move-to-option{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:transparent;border:none;color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;text-align:left}.move-to-option:hover{background:var(--color-selection-bg)}.move-to-option.current{color:var(--color-si-teal)}.move-to-option.current:hover{background:var(--color-bg-hover);cursor:default}.move-to-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.move-to-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.move-to-check{font-size:var(--text-xs);color:var(--color-si-teal);flex-shrink:0}.move-to-option.unassign-option{border-top:1px solid var(--color-border-subtle);color:var(--color-error)}.move-to-option.unassign-option:hover{background:var(--color-error-light)}.alias-group.selected{border:2px solid var(--color-info)!important;box-shadow:var(--shadow-md)}.alias-group:focus{outline:2px solid var(--color-interactive);outline-offset:2px}.merge-selected-banner{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-info-light);border:1px solid var(--color-info);border-radius:6px;margin-bottom:10px;color:var(--color-text-on-color);font-size:var(--text-sm)}.merge-btn{padding:var(--space-1) var(--space-3);background:var(--color-info);border:none;border-radius:4px;color:var(--color-text-on-color);font-size:var(--text-xs);cursor:pointer}.merge-btn:hover{background:var(--color-info)}.cancel-merge-btn{padding:var(--space-1) var(--space-2);background:transparent;border:1px solid var(--color-text-dim);border-radius:4px;color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer}.cancel-merge-btn:hover{border-color:var(--color-text-muted);color:var(--color-text-primary)}.alias-group.orphan{border:2px solid var(--color-warning)!important;animation:pulse-orphan 2s infinite}@keyframes pulse-orphan{0%,to{box-shadow:0 0 4px var(--color-fm-yellow-border)}50%{box-shadow:0 0 12px var(--color-warning)}}.orphan-warnings-banner{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:10px}.orphan-warning{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:6px;color:var(--color-warning);font-size:var(--text-xs)}.orphan-warning span{flex:1}.orphan-keep-btn{padding:var(--space-1) var(--space-3);background:var(--color-success);border:none;border-radius:4px;color:var(--color-text-on-color);font-size:var(--text-xs);cursor:pointer}.orphan-keep-btn:hover{background:var(--color-success)}.orphan-remove-btn{padding:var(--space-1) var(--space-3);background:var(--color-error);border:none;border-radius:4px;color:var(--color-text-on-color);font-size:var(--text-xs);cursor:pointer}.orphan-remove-btn:hover{background:var(--color-error)}.story-tag{display:inline-block;padding:var(--space-1) var(--space-1);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:3px;color:var(--color-text-muted);font-size:var(--text-2xs);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.drag-handle{width:20px;height:24px;padding:0;border:none;background:transparent;color:var(--color-text-disabled);font-size:var(--text-base);cursor:grab;display:flex;align-items:center;justify-content:center;transition:color .15s;flex-shrink:0;touch-action:none;user-select:none}.drag-handle:hover{color:var(--color-interactive)}.drag-handle:active{cursor:grabbing}.alias-group.dragging{background:var(--color-bg-elevated);border:2px dashed var(--color-interactive);box-shadow:var(--shadow-md)}.alias-drag-handle{cursor:grab;color:var(--color-text-disabled);font-size:var(--text-sm);padding:0 var(--space-0-5);margin-right:2px;user-select:none;touch-action:none;transition:color .15s}.alias-drag-handle:hover{color:var(--color-interactive)}.alias-drag-handle:active{cursor:grabbing}.alias-tag.dragging{background:var(--color-info-light)!important;border-color:var(--color-interactive)!important;box-shadow:var(--shadow-sm)}.story-accordion{border:1px solid var(--color-bg-active);border-radius:6px;margin-bottom:6px;overflow:visible;transition:border-color .2s,box-shadow .2s}.story-accordion.is-over{border-color:var(--color-interactive);box-shadow:0 0 8px color-mix(in srgb,var(--color-interactive) 40%,transparent)}.story-accordion-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;background:var(--color-bg-elevated);border-radius:5px 5px 0 0;user-select:none;transition:background .15s}.story-accordion-header:hover{background:var(--color-bg-elevated)}.story-accordion-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.story-accordion-name{flex:1;min-width:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.story-accordion-name:hover{text-decoration:underline dotted;text-underline-offset:2px}.story-accordion-rename-input{flex:1;min-width:0;padding:var(--space-0-5) var(--space-2);background:var(--color-bg-elevated);border:1px solid var(--color-interactive);border-radius:3px;color:var(--color-text-primary);font-size:var(--text-sm)}.story-accordion-rename-input:focus{outline:none;border-color:var(--color-interactive-hover)}.story-accordion-count{font-size:var(--text-xs);color:var(--color-text-muted);flex-shrink:0}.story-accordion-actions{display:flex;gap:var(--space-0-5);opacity:0;transition:opacity .15s}.story-accordion-header:hover .story-accordion-actions{opacity:1}.story-accordion-action-btn{width:22px;height:22px;padding:0;border:1px solid var(--color-bg-hover);border-radius:3px;background:transparent;color:var(--color-text-muted);font-size:var(--text-2xs);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.story-accordion-action-btn:hover{background:var(--color-bg-active);border-color:var(--color-text-dim);color:var(--color-text-primary)}.story-accordion-delete-btn:hover{background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.story-accordion-chevron{font-size:var(--text-2xs);color:var(--color-text-dim);transition:transform .2s;flex-shrink:0}.story-accordion-chevron.expanded{transform:rotate(90deg)}.story-accordion-body{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-2) var(--space-2)}.story-accordion-empty{font-style:italic;color:var(--color-text-dim);font-size:var(--text-xs);text-align:center;padding:var(--space-2) 0}.story-accordion-drop-zone{border:1px dashed var(--color-interactive);border-radius:0 0 5px 5px;padding:var(--space-2);text-align:center;font-size:var(--text-xs);color:var(--color-interactive);opacity:.7}.add-character-btn{width:100%;padding:var(--space-1) 0;background:transparent;border:1px dashed var(--color-interactive);border-radius:5px;color:var(--color-interactive);font-size:var(--text-xs);cursor:pointer;transition:all .15s;margin-bottom:4px}.add-character-btn:hover:not(:disabled){background:var(--color-interactive-light);border-color:var(--color-interactive-hover);color:var(--color-interactive-hover)}.add-character-btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--color-border-strong);color:var(--color-text-dim)}.add-character-input{width:100%;padding:var(--space-1) var(--space-2);background:transparent;border:1px solid var(--color-interactive);border-radius:5px;color:var(--color-text-secondary);font-size:var(--text-xs);margin-bottom:4px;outline:none;box-sizing:border-box}.add-character-input:focus{background:var(--color-interactive-light);border-color:var(--color-interactive-hover)}.first-occurrence-btn{width:24px;height:24px;display: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);font-size:var(--text-md);line-height:1;cursor:pointer;flex-shrink:0;transition:background .15s,border-color .15s,color .15s}.first-occurrence-btn:hover{background:var(--color-interactive-light);border-color:var(--color-interactive-light);color:var(--color-info)}.first-occurrence-highlight{background:var(--color-warning);color:var(--color-bg-page);border-radius:2px;padding:0 var(--space-0-5);animation:first-occurrence-fade 3s ease-out forwards}@keyframes first-occurrence-fade{0%,70%{background:var(--color-warning)}to{background:transparent;color:inherit}}.story-section{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);background:var(--color-bg-muted);border-bottom:1px solid var(--color-border-default);position:sticky;top:calc(var(--header-height) * 2);z-index:99;flex-wrap:wrap;height:40px;box-sizing:border-box}.story-selector-row{display:flex;align-items:center;gap:var(--space-2)}.story-label{color:var(--color-text-secondary);font-size:var(--text-base);white-space:nowrap}.story-select{flex:1;min-width:0;padding:var(--space-1) var(--space-2);background:var(--color-bg-elevated);border:1px solid var(--color-bg-hover);border-radius:4px;color:var(--color-text-primary);font-size:var(--text-base);cursor:pointer}.story-select:hover{border-color:var(--color-border-strong)}.story-select:focus{outline:none;border-color:var(--color-interactive)}.story-rename-input{flex:1;min-width:0;padding:var(--space-1) var(--space-2);background:var(--color-bg-elevated);border:1px solid var(--color-interactive);border-radius:4px;color:var(--color-text-primary);font-size:var(--text-base)}.story-rename-input:focus{outline:none;border-color:var(--color-interactive-hover)}.story-actions{display:flex;gap:var(--space-1)}.story-action-btn{width:28px;height:28px;padding:0;border:1px solid var(--color-bg-hover);border-radius:4px;background:var(--color-bg-elevated);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.story-action-btn:hover:not(:disabled){background:var(--color-bg-active);border-color:var(--color-border-strong);color:var(--color-text-primary)}.story-action-btn:disabled{opacity:.4;cursor:not-allowed}.story-action-btn.story-delete-btn:hover:not(:disabled){background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.story-create-input{flex:1;min-width:0;padding:var(--space-1) var(--space-2);background:var(--color-bg-surface);border:1px solid var(--color-bg-active);border-radius:4px;color:var(--color-text-secondary);font-size:var(--text-sm)}.story-create-input:focus{outline:none;border-color:var(--color-success)}.story-create-btn{padding:var(--space-1) var(--space-3);background:var(--color-success-light);border:1px solid var(--color-success);border-radius:4px;color:var(--color-success);font-size:var(--text-sm);cursor:pointer;white-space:nowrap}.story-create-btn:hover:not(:disabled){background:var(--color-success);color:var(--color-text-on-color)}.story-create-btn:disabled{opacity:.4;cursor:not-allowed}.new-story-btn-inline{padding:var(--space-1) var(--space-3);background:transparent;border:1px dashed var(--color-success);border-radius:4px;color:var(--color-success);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;transition:all .15s}.new-story-btn-inline:hover{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success)}.new-story-inline-row{display:flex;gap:var(--space-2);align-items:center}.story-create-row{display:flex;gap:var(--space-2)}.story-pills-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);margin-top:.4rem;padding:var(--space-1) 0}.story-pill{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border:2px solid var(--story-color, #666);border-radius:12px;background:transparent;color:var(--story-color, #666);font-size:var(--text-2xs);cursor:pointer;transition:all .15s;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.story-pill:hover{background:color-mix(in srgb,var(--story-color, #666) 20%,transparent)}.story-pill.active{background:var(--story-color, #666);color:var(--color-text-primary);font-weight:var(--weight-semibold)}.story-pill-new{border-style:dashed;--story-color: var(--color-success)}.story-pill-new-input{display:inline-flex}.story-pill-new-input .story-create-input{width:80px;padding:var(--space-1) var(--space-1);font-size:var(--text-2xs);border-radius:12px}.chapter-grid{display:flex;flex-wrap:wrap;gap:var(--space-0-5);padding:var(--space-1) 0}.chapter-grid-cell{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:3px;font-size:var(--text-2xs);cursor:pointer;transition:all .12s;user-select:none}.chapter-grid-cell.unassigned{background:var(--color-bg-elevated);border:1px dashed var(--color-border-strong);color:var(--color-text-muted)}.chapter-grid-cell.unassigned:hover{border-color:var(--color-text-dim);color:var(--color-text-disabled);background:var(--color-border-default)}.chapter-grid-cell.assigned{border:2px solid;font-weight:var(--weight-medium)}.chapter-grid-cell.assigned:hover{filter:brightness(1.3)}.chapter-grid-cell.current-chapter{box-shadow:0 0 0 2px var(--color-bg-page);z-index:1}.chapter-grid-cell-wrapper{position:relative}.chapter-grid-cell.dropdown-open{box-shadow:0 0 0 2px var(--color-info);z-index:2}.chapter-assign-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:4px;min-width:120px;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:200;overflow:hidden}.chapter-assign-dropdown-header{padding:var(--space-1) var(--space-3);font-size:var(--text-2xs);color:var(--color-text-dim);border-bottom:1px solid var(--color-border-default);white-space:nowrap}.chapter-assign-option{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-1) var(--space-3);background:transparent;border:none;color:var(--color-text-disabled);font-size:var(--text-xs);cursor:pointer;text-align:left;white-space:nowrap;transition:background .1s}.chapter-assign-option:hover{background:var(--color-bg-elevated)}.chapter-assign-option.current{background:color-mix(in srgb,var(--option-color, #666) 15%,transparent);color:var(--option-color, #ccc)}.chapter-assign-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.chapter-assign-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.chapter-assign-check{font-size:var(--text-2xs);color:var(--option-color, #4caf50);flex-shrink:0}.chapter-assign-option.unassign-option{border-top:1px solid var(--color-border-default);color:var(--color-text-dim);font-size:var(--text-2xs)}.chapter-assign-option.unassign-option:hover{color:var(--color-error);background:var(--color-error-light)}.reassignment-section{margin:.6rem 0}.reassignment-label{font-size:var(--text-sm);margin-bottom:.3rem;color:var(--color-text-secondary)}.reassignment-shared{color:var(--color-text-dim)}.reassignment-list{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:.3rem}.reassignment-check{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-1);background:var(--color-bg-elevated);border:1px solid var(--color-bg-hover);border-radius:4px;font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer}.reassignment-check:hover{border-color:var(--color-text-dim)}.reassignment-check input[type=checkbox]{margin:0}.reassignment-shared-name{display:inline-flex;padding:var(--space-1) var(--space-1);background:var(--color-bg-elevated);border:1px solid var(--color-bg-active);border-radius:4px;font-size:var(--text-xs);color:var(--color-text-dim)}select.chapter-unassigned{border-color:var(--color-warning)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--color-warning) 30%,transparent)}.story-delete-modal{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.story-delete-content{background:var(--color-bg-surface);border:2px solid var(--color-accent);border-radius:12px;padding:var(--space-6);max-width:400px;width:90%;text-align:center}.story-delete-header{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-accent);margin-bottom:1rem}.story-delete-content p{color:var(--color-text-secondary);margin:.75rem 0;font-size:var(--text-base);line-height:1.5}.story-delete-content strong{color:var(--color-text-primary)}.story-delete-warning{background:var(--color-error-light);border:1px solid var(--color-accent);border-radius:6px;padding:var(--space-3);color:var(--color-error)!important;text-align:left}.story-delete-note{color:var(--color-text-muted)!important;font-size:var(--text-sm)!important;font-style:italic}.story-delete-actions{display:flex;gap:var(--space-4);justify-content:center;margin-top:1.5rem}.story-delete-cancel{padding:var(--space-2) var(--space-5);background:var(--color-bg-elevated);border:1px solid var(--color-bg-hover);border-radius:6px;color:var(--color-text-secondary);font-size:var(--text-base);cursor:pointer}.story-delete-cancel:hover{background:var(--color-bg-active);border-color:var(--color-text-dim)}.story-delete-confirm{padding:var(--space-2) var(--space-5);background:var(--color-accent);border:none;border-radius:6px;color:var(--color-text-on-color);font-size:var(--text-base);font-weight:var(--weight-bold);cursor:pointer}.story-delete-confirm:hover{background:var(--color-accent-hover)}.story-mode-toggle-row{display:flex;align-items:center;gap:var(--space-2)}.story-mode-label{color:var(--color-text-muted);font-size:var(--text-sm)}.story-mode-buttons{display:flex;border:1px solid var(--color-bg-active);border-radius:4px;overflow:hidden}.story-mode-btn{padding:var(--space-1) var(--space-2);background:var(--color-bg-surface);border:none;color:var(--color-text-dim);font-size:var(--text-xs);cursor:pointer;transition:all .15s}.story-mode-btn:first-child{border-right:1px solid var(--color-bg-active)}.story-mode-btn:hover:not(:disabled):not(.active){background:var(--color-bg-elevated);color:var(--color-text-muted)}.story-mode-btn.active{background:var(--color-si-teal);color:var(--color-text-primary);cursor:default}.story-mode-btn:disabled:not(.active){opacity:.4;cursor:not-allowed}.story-create-first-row{display:flex;gap:var(--space-2);align-items:center;margin-top:.5rem}.story-cancel-btn{padding:var(--space-1) var(--space-2);background:var(--color-bg-elevated);border:1px solid var(--color-bg-hover);border-radius:4px;color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:all .15s}.story-cancel-btn:hover{background:var(--color-bg-active);border-color:var(--color-text-dim);color:var(--color-text-secondary)}.story-convert-info{background:var(--color-info-light);border:1px solid var(--color-info-light);border-radius:4px;padding:var(--space-3);color:var(--color-text-muted)!important;font-size:var(--text-base)}.story-convert-confirm{padding:var(--space-2) var(--space-5);background:var(--color-si-teal);border:none;border-radius:4px;color:var(--color-text-primary);font-weight:var(--weight-semibold);cursor:pointer;transition:background .15s}.story-convert-confirm:hover{background:var(--color-si-teal)}.story-switch-header{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-si-teal);margin-bottom:1rem}.story-switch-info{background:var(--color-info-light);border:1px solid var(--color-info-light);border-radius:4px;padding:var(--space-3);color:var(--color-text-muted)!important;font-size:var(--text-base)}.story-switch-confirm{padding:var(--space-2) var(--space-5);background:var(--color-si-teal);border:none;border-radius:4px;color:var(--color-text-primary);font-weight:var(--weight-semibold);cursor:pointer;transition:background .15s}.story-switch-confirm:hover{background:var(--color-si-teal)}.character-legend{display:none}.legend-item{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-text-primary)}.legend-item.char-0{border-left:3px solid var(--char-0)}.legend-item.char-1{border-left:3px solid var(--char-1)}.legend-item.char-2{border-left:3px solid var(--char-2)}.legend-item.char-3{border-left:3px solid var(--char-3)}.legend-item.char-4{border-left:3px solid var(--char-4)}.legend-item.char-5{border-left:3px solid var(--char-5)}.legend-item.char-6{border-left:3px solid var(--char-6)}.legend-item.char-7{border-left:3px solid var(--char-7)}.legend-item.char-8{border-left:3px solid var(--char-8)}.legend-item.char-9{border-left:3px solid var(--char-9)}.status{padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-4)}.status.loading{background:var(--color-bg-surface);color:var(--color-text-primary)}.status.error{background:var(--color-error-light);color:var(--color-accent);border:1px solid var(--color-accent)}.book-info{padding:var(--space-4) var(--space-5);background:var(--color-bg-surface);border-radius:var(--radius-lg);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-base);font-family:var(--font-ui)}.book-info .badge{background:var(--color-success);color:var(--color-bg-page);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm)}.book-info .stats{color:var(--color-text-primary);font-size:var(--text-sm);margin-left:auto}.welcome{background:var(--color-bg-surface);padding:var(--space-8);border-radius:var(--radius-lg);text-align:center;font-family:var(--font-ui)}.welcome.compact{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12)}.welcome.compact h2{margin:0 0 var(--space-6) 0;font-size:var(--text-xl)}.welcome.compact p{margin:0 0 var(--space-8) 0;font-size:var(--text-lg);color:var(--color-text-secondary);line-height:1.5}.welcome.compact .shortcuts-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-6) var(--space-12);font-size:var(--text-base);color:var(--color-text-muted)}.welcome.compact .shortcuts-row kbd{background:var(--color-bg-active);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-info);margin-right:8px}.welcome h2{margin-top:0}.welcome h3{color:var(--color-accent);margin-top:2rem}.welcome ul{text-align:left;max-width:500px;margin:1rem auto}.welcome li{margin-bottom:.5rem}.welcome kbd{background:var(--color-bg-active);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:var(--font-mono)}.quote-editor-wrapper{display:flex;align-items:flex-start;gap:0;min-width:0;width:100%}.quote-editor-wrapper.collapsed{width:auto}.quote-editor-wrapper .panel-toggle-btn{width:24px;height:60px;background:var(--color-bg-active);border:1px solid var(--color-border-default);border-radius:var(--radius-sm) 0 0 var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);transition:background var(--transition-normal),color var(--transition-normal);flex-shrink:0}.quote-editor-wrapper .panel-toggle-btn:hover{background:var(--color-border-default);color:var(--color-text-primary)}.quote-editor-wrapper.collapsed .panel-toggle-btn{border-radius:var(--radius-sm)}.quote-editor-panel{flex:1;box-sizing:border-box;background:var(--color-bg-surface);border-radius:0 var(--radius-lg) var(--radius-lg) 0;padding:var(--space-3);height:fit-content;border:1px solid var(--color-border-default);font-family:var(--font-ui);border-left:none;display:flex;flex-direction:column;gap:var(--space-2);overflow:hidden}.quote-editor-panel .panel-title{font-size:var(--text-sm);margin:0 0 .75rem;color:var(--color-accent);border-bottom:1px solid var(--color-border-default);padding-bottom:var(--space-3)}.quote-editor-panel .create-section label{display:block;font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:.5rem}.quote-editor-panel .quote-input{width:100%;padding:var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-text-primary);font-size:var(--text-sm);resize:vertical;min-height:100px;font-family:inherit}.quote-editor-panel .quote-input::placeholder{font-size:var(--text-2xs)}.quote-editor-panel .quote-input:focus{outline:none;border-color:var(--color-info)}.quote-editor-panel .create-quote-btn{width:100%;margin-top:.75rem;padding:var(--space-3);background:var(--color-info);border:none;border-radius:var(--radius-sm);color:#fff;font-weight:var(--weight-bold);cursor:pointer;font-size:var(--text-sm)}.quote-editor-panel .create-quote-btn:hover:not(:disabled){background:var(--color-info)}.quote-editor-panel .create-quote-btn:disabled{background:var(--color-bg-active);color:var(--color-text-dim);cursor:not-allowed}.quote-editor-panel .shortcut-hint{margin-top:.5rem;font-size:var(--text-xs);color:var(--color-text-dim);text-align:center}.quote-editor-panel .shortcut-hint kbd{background:var(--color-bg-active);padding:var(--space-0-5) var(--space-2);border-radius:3px;font-family:var(--font-mono);color:var(--color-info)}.quote-editor-panel .panel-message{padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);margin-top:.5rem}.quote-editor-panel .panel-message.error{background:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error)}.quote-editor-panel .panel-message.warning{background:var(--color-warning-light);color:var(--color-warning);border:1px solid var(--color-warning)}.quote-editor-panel .panel-message.success{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.quote-editor-panel .panel-help{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-default);font-size:var(--text-xs);color:var(--color-text-dim)}.quote-editor-panel .panel-help p{margin:0 0 .5rem;color:var(--color-text-muted)}.quote-editor-panel .panel-help ol{margin:0;padding-left:var(--space-5)}.quote-editor-panel .panel-help li{margin-bottom:.3rem;line-height:1.4}.quote-editor-panel .panel-help kbd{background:var(--color-bg-active);padding:1px var(--space-1);border-radius:2px;font-family:var(--font-mono);font-size:var(--text-2xs)}.quote-nav-wrapper{display:flex;align-items:flex-start;gap:0;width:100%}.quote-nav-wrapper.collapsed{width:auto}.quote-nav-wrapper .panel-toggle-btn{width:24px;height:60px;background:var(--color-bg-active);border:1px solid var(--color-border-default);border-radius:var(--radius-sm) 0 0 var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);transition:background var(--transition-normal),color var(--transition-normal);flex-shrink:0}.quote-nav-wrapper .panel-toggle-btn:hover{background:var(--color-border-default);color:var(--color-text-primary)}.quote-nav-wrapper.collapsed .panel-toggle-btn{border-radius:var(--radius-sm)}.quote-nav-panel{flex:1;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:0 var(--radius-lg) var(--radius-lg) 0;font-family:var(--font-ui);border-left:none;padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.quote-nav-panel .panel-title{font-size:var(--text-sm);margin:0 0 .25rem;color:var(--color-accent);border-bottom:1px solid var(--color-border-default);padding-bottom:var(--space-1)}.qnp-tabs{display:flex;gap:var(--space-0-5)}.qnp-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:var(--space-1) var(--space-1);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-page);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-2xs);line-height:1.2}.qnp-tab:hover{background:var(--color-bg-active)}.qnp-tab--active{border-color:var(--color-text-dim);background:var(--color-bg-active)}.qnp-tab--active.qnp-tab--unassigned{border-color:var(--color-error);color:var(--color-error)}.qnp-tab--active.qnp-tab--assigned{border-color:var(--color-success);color:var(--color-success)}.qnp-tab--active.qnp-tab--unsure{border-color:var(--color-warning);color:var(--color-warning)}.qnp-tab-label{font-weight:var(--weight-medium)}.qnp-tab-count{font-weight:var(--weight-bold);font-size:var(--text-xs)}.qnp-story-filter{display:flex}.qnp-story-select{width:100%;padding:var(--space-1) var(--space-1);font-size:var(--text-2xs);font-family:var(--font-ui);font-weight:var(--weight-medium);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-page);color:var(--color-text-secondary);cursor:pointer;outline:none}.qnp-story-select:focus{border-color:var(--color-text-dim)}.qnp-alias-filter{display:flex}.qnp-alias-select{width:100%;padding:var(--space-1) var(--space-1);font-size:var(--text-2xs);font-family:var(--font-ui);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-page);color:var(--color-text-secondary);cursor:pointer;outline:none}.qnp-alias-select:focus{border-color:var(--color-text-dim)}.qnp-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-1)}.qnp-nav-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-page);color:var(--color-text-secondary);font-size:var(--text-2xs);cursor:pointer;padding:0}.qnp-nav-btn:hover:not(:disabled){background:var(--color-bg-active);border-color:var(--color-text-dim)}.qnp-nav-btn:disabled{opacity:.3;cursor:not-allowed}.qnp-position{font-size:var(--text-sm);color:var(--color-text-muted);min-width:3rem;text-align:center}.qnp-position strong{color:var(--color-text-primary)}.qnp-remaining{text-align:center;font-size:var(--text-2xs);color:var(--color-error);font-weight:var(--weight-medium);padding-top:var(--space-1);border-top:1px solid var(--color-border-default)}.qnp-note-row{border-top:1px solid var(--color-border-default);padding-top:var(--space-1)}.qnp-note-btn{background:none;border:none;cursor:pointer;font-size:var(--text-2xs);padding:var(--space-0-5) var(--space-1);color:var(--color-text-disabled);font-family:var(--font-ui)}.qnp-note-btn:hover{color:var(--color-text-primary)}.qnp-note-btn--active{color:var(--color-info)}.qnp-note-area{padding-top:var(--space-1)}.qnp-note-input{width:100%;font-size:var(--text-2xs);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);resize:vertical;font-family:var(--font-ui);box-sizing:border-box}.qnp-note-input:focus{outline:none;border-color:var(--color-info)}.notes-panel{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);font-family:var(--font-ui);padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.notes-panel .panel-title{font-size:var(--text-sm);margin:0 0 .15rem;color:var(--color-accent);border-bottom:1px solid var(--color-border-default);padding-bottom:var(--space-1)}.notes-panel-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-1)}.notes-nav-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-page);color:var(--color-text-secondary);font-size:var(--text-2xs);cursor:pointer;padding:0}.notes-nav-btn:hover:not(:disabled){background:var(--color-bg-active);border-color:var(--color-text-dim)}.notes-nav-btn:disabled{opacity:.3;cursor:not-allowed}.notes-chapter-label{font-size:var(--text-sm);color:var(--color-text-primary);min-width:3rem;text-align:center;font-weight:var(--weight-medium)}.notes-chapter-label--other{color:var(--color-text-muted);font-weight:400;font-style:italic}.notes-panel-textarea{width:100%;font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-text-primary);resize:vertical;font-family:var(--font-ui);box-sizing:border-box}.notes-panel-textarea:focus{outline:none;border-color:var(--color-info)}.notes-panel-textarea[readonly]{background:var(--color-bg-page);color:var(--color-text-muted);cursor:default}.notification-container{position:fixed;top:60px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:var(--space-3);max-width:400px;pointer-events:none}.notification-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-bg-muted);border:1px solid var(--color-border-default);box-shadow:var(--shadow-md);font-family:var(--font-ui);animation:notification-slide-in .3s ease-out;pointer-events:auto}@keyframes notification-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.notification-icon{font-size:var(--text-lg);flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.notification-message{flex:1;font-size:var(--text-base);color:var(--color-text-primary);line-height:1.4}.notification-dismiss{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-xl);cursor:pointer;padding:0 var(--space-1);line-height:1;transition:color .15s}.notification-dismiss:hover{color:var(--color-text-primary)}.notification-success{border-color:var(--color-success)}.notification-success .notification-icon{background:var(--color-success-light);color:var(--color-success)}.notification-info{border-color:var(--color-interactive)}.notification-info .notification-icon{background:var(--color-interactive-light);color:var(--color-interactive)}.notification-warning{border-color:var(--color-warning)}.notification-warning .notification-icon{background:var(--color-warning-light);color:var(--color-warning)}.notification-error{border-color:var(--color-accent)}.notification-error .notification-icon{background:var(--color-error-light);color:var(--color-accent)}.review-badge{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:var(--text-2xs);border-radius:50%;margin-right:2px;vertical-align:middle;font-weight:var(--weight-bold);line-height:1}.review-badge-verified{background:var(--color-success);color:var(--color-text-on-color)}.review-badge-fixed{background:var(--color-info);color:var(--color-text-on-color)}.review-verify-btn{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--color-success);color:var(--color-text-on-color);border:none;border-radius:3px;padding:var(--space-0-5) var(--space-2);font-size:var(--text-2xs);font-weight:var(--weight-semibold);cursor:pointer;position:absolute;top:-22px;right:24px;white-space:nowrap;z-index:10}.review-verify-btn:hover{filter:brightness(1.1)}.review-modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.review-modal{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);width:min(520px,90vw);max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.review-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-default)}.review-modal-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold)}.review-modal-close{background:none;border:none;font-size:var(--text-xl);cursor:pointer;color:var(--color-text-secondary);padding:0 var(--space-1);line-height:1}.review-modal-close:hover{color:var(--color-text-primary)}.review-modal-body{padding:var(--space-4) var(--space-5);overflow-y:auto;flex:1}.review-modal-warning{background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-warning);margin-bottom:var(--space-3)}.review-modal-section{margin-bottom:var(--space-4)}.review-modal-section h4{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-secondary)}.review-changes-list,.review-chapter-notes-list{margin:0;padding-left:var(--space-5);font-size:var(--text-xs);line-height:1.6;color:var(--color-text-primary)}.review-checklist-item{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--text-sm);cursor:pointer}.review-checklist-item input[type=checkbox]{margin-top:2px;flex-shrink:0}.review-modal-notes{width:100%;font-size:var(--text-sm);padding:var(--space-2);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-input);color:var(--color-text-primary);resize:vertical;font-family:inherit}.review-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border-default)}.review-modal-cancel-btn{background:transparent;border:1px solid var(--color-border-default);color:var(--color-text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer}.review-modal-cancel-btn:hover{background:var(--color-bg-hover)}.review-modal-confirm-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);border:none;cursor:pointer}.review-modal-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.review-modal-approve-btn{background:var(--color-success);color:var(--color-text-on-color)}.review-modal-approve-btn:hover:not(:disabled){filter:brightness(1.1)}.review-modal-reject-btn{background:var(--color-error);color:var(--color-text-on-color)}.review-modal-reject-btn:hover:not(:disabled){filter:brightness(1.1)}.dictionary-popup{position:fixed;z-index:10000;background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:min(400px,60vh);overflow-y:auto;animation:dict-fade-in .12s ease}@keyframes dict-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dictionary-popup-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border-subtle)}.dictionary-popup-word{font-family:var(--font-book);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);line-height:var(--leading-tight)}.dictionary-popup-close{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-xl);cursor:pointer;padding:0 var(--space-1);line-height:1;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.dictionary-popup-close:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.dictionary-popup-body{padding:var(--space-2) var(--space-3) var(--space-3)}.dictionary-popup-status{color:var(--color-text-muted);font-size:var(--text-sm);font-style:italic;padding:var(--space-2) 0}.dictionary-popup-pos-group{margin-bottom:var(--space-2)}.dictionary-popup-pos-group:last-child{margin-bottom:0}.dictionary-popup-pos-label{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-interactive);letter-spacing:.06em;margin-bottom:var(--space-1)}.dictionary-popup-defs{margin:0;padding-left:var(--space-4);list-style:decimal}.dictionary-popup-def{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-1)}.dictionary-popup-def:last-child{margin-bottom:0}.dictionary-popup-def-text{color:var(--color-text-primary)}.dictionary-popup-example{display:block;font-style:italic;color:var(--color-text-muted);font-size:var(--text-xs);margin-top:2px}.dictionary-popup-synonyms{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border-subtle)}.dictionary-popup-syn-label{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);letter-spacing:.06em;margin-bottom:var(--space-1)}.dictionary-popup-syn-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.dictionary-popup-syn-tag{display:inline-block;background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-full);padding:2px var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.dictionary-popup-syn-tag:hover{background:var(--color-interactive-light);color:var(--color-interactive);border-color:var(--color-interactive)}.dictionary-popup::-webkit-scrollbar{width:6px}.dictionary-popup::-webkit-scrollbar-track{background:transparent}.dictionary-popup::-webkit-scrollbar-thumb{background:var(--color-border-default);border-radius:var(--radius-full)}.dashboard-container{padding:var(--space-6) var(--space-4);flex-shrink:0}.dashboard-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border-default);margin-bottom:var(--space-6);position:sticky;top:var(--header-height);z-index:100;background:var(--color-bg-page);padding-top:var(--space-2)}.dashboard-tab{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-family:var(--font-ui);color:var(--color-text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color var(--transition-fast),border-color var(--transition-fast)}.dashboard-tab:hover{color:var(--color-text-secondary)}.dashboard-tab-active{color:var(--color-text-primary);font-weight:var(--weight-semibold);border-bottom-color:var(--color-accent)}.dashboard-panels{display:grid}.dashboard-panels>.panel{grid-area:1 / 1;opacity:0;pointer-events:none;transition:opacity .15s ease;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);align-content:start}.dashboard-panels>.panel.active{opacity:1;pointer-events:auto}.col-full{grid-column:1 / -1}.col-half{grid-column:span 2}.stat-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.stat-card-value{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text-primary)}.stat-card-label{font-size:var(--text-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.collapsible-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);overflow:hidden;align-self:start}.collapsible-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.collapsible-panel.panel-collapsed .collapsible-body{grid-template-rows:0fr}.collapsible-scroll{overflow:hidden;max-height:400px}.collapsible-panel:not(.panel-collapsed) .collapsible-scroll{overflow-y:auto}.collapsible-panel.panel-collapsed .collapsible-header{border-bottom-color:transparent}.collapsible-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-default);font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.collapsible-header:hover{background:var(--color-bg-hover)}.collapse-chevron{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--color-text-muted);transition:transform var(--transition-fast);transform:rotate(0)}.collapse-chevron.collapsed{transform:rotate(-90deg)}.activity-item{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-hover);display:flex;flex-direction:column;gap:var(--space-1)}.activity-item:last-child{border-bottom:none}.activity-user{color:var(--color-info);font-size:var(--text-sm);font-weight:var(--weight-medium)}.activity-action{color:var(--color-text-secondary);font-size:var(--text-sm)}.activity-book{color:var(--color-text-muted);font-size:var(--text-xs);font-style:italic}.activity-time{color:var(--color-text-disabled);font-size:var(--text-xs)}.activity-empty{padding:var(--space-8);text-align:center;color:var(--color-text-disabled);font-size:var(--text-sm)}.trophy-category-section{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);overflow:visible}.trophy-category-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border-default)}.trophy-category-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-secondary)}.trophy-category-count{font-size:var(--text-xs);color:var(--color-text-muted)}.trophy-category-section .trophy-shelf{padding:var(--space-3) var(--space-4)}.trophy-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:var(--space-2)}.trophy-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-0-5);padding:var(--space-2);border-radius:var(--radius-md);border:2px solid transparent;cursor:default;transition:border-color var(--transition-fast);min-width:0}.trophy-earned{background:var(--color-bg-elevated)}.trophy-unearned{background:var(--color-bg-muted)}.trophy-unearned .trophy-icon{opacity:.3}.trophy-tier-bronze{border-color:var(--trophy-bronze)}.trophy-tier-silver{border-color:var(--trophy-silver)}.trophy-tier-gold{border-color:var(--trophy-gold)}.trophy-icon{font-size:var(--text-lg)}.trophy-tier-indicator{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.heatmap-container{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-5)}.heatmap-header{margin-bottom:var(--space-3)}.heatmap-total{font-size:var(--text-sm);color:var(--color-text-secondary)}.heatmap-scroll{overflow:visible;position:relative}.heatmap-svg{display:block;width:100%;height:auto}.heatmap-month-label,.heatmap-day-label{font-size:10px;fill:var(--color-text-muted)}.heatmap-level-0{fill:var(--heatmap-0);background-color:var(--heatmap-0)}.heatmap-level-1{fill:var(--heatmap-1);background-color:var(--heatmap-1)}.heatmap-level-2{fill:var(--heatmap-2);background-color:var(--heatmap-2)}.heatmap-level-3{fill:var(--heatmap-3);background-color:var(--heatmap-3)}.heatmap-level-4{fill:var(--heatmap-4);background-color:var(--heatmap-4)}.heatmap-legend{display:flex;align-items:center;gap:var(--space-1);justify-content:flex-end;margin-top:var(--space-3)}.heatmap-legend-label{font-size:var(--text-2xs);color:var(--color-text-muted)}.heatmap-legend-cell{width:12px;height:12px;border-radius:2px}.dashboard-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.streak-display{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-5)}.streak-flame{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.streak-icon{font-size:var(--text-xl)}.streak-count{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.streak-text{font-size:var(--text-sm);color:var(--color-text-secondary)}.streak-longest{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.session-summary{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-5)}.session-summary-primary{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-2)}.session-hours{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.session-label{font-size:var(--text-sm);color:var(--color-text-muted)}.session-summary-detail{font-size:var(--text-sm);color:var(--color-text-secondary)}.session-summary-avg{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.detailed-stats-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;gap:var(--space-6)}.detailed-stat{display:flex;flex-direction:column;align-items:center}.detailed-stat-value{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.detailed-stat-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.book-progress-card{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-bg-hover)}.book-progress-card:last-child{border-bottom:none}.book-progress-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary)}.book-progress-author{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-1)}.book-progress-stats{display:flex;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary)}.book-progress-stat{display:inline-flex}.book-progress-date{font-size:var(--text-2xs);color:var(--color-text-disabled);margin-top:var(--space-1)}@media(max-width:768px){.dashboard-panels>.panel{grid-template-columns:repeat(2,1fr)}.col-half{grid-column:1 / -1}.dashboard-stats-row{grid-template-columns:1fr}.detailed-stats-card{justify-content:space-around}}@media(max-width:480px){.dashboard-container{padding:var(--space-4) var(--space-3)}.dashboard-panels>.panel{grid-template-columns:1fr}.trophy-shelf{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:var(--space-1)}.trophy-item{padding:var(--space-1)}.trophy-icon{font-size:var(--text-base)}}.leaderboard-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);overflow:hidden}.leaderboard-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4) 1.25rem;border-bottom:1px solid var(--color-border-default)}.leaderboard-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-secondary);display:flex;align-items:baseline;gap:var(--space-2)}.leaderboard-goal{font-size:var(--text-xs);font-weight:var(--weight-normal);color:var(--color-text-muted)}.leaderboard-league-pills{display:flex;gap:var(--space-1)}.league-pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-family:var(--font-ui);color:var(--color-text-muted);background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.league-pill:hover{background:var(--color-bg-hover);color:var(--color-text-secondary)}.league-pill.active{background:var(--color-accent-muted);color:var(--color-text-primary);border-color:var(--color-accent)}.league-icon{display:inline-flex;align-items:center;gap:var(--space-1)}.league-icon-emoji{font-size:var(--text-base);line-height:1}.league-icon-label{font-size:var(--text-xs)}.leaderboard-list{max-height:400px;overflow-y:auto}.leaderboard-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 1.25rem;border-bottom:1px solid var(--color-bg-hover);transition:background var(--transition-fast)}.leaderboard-row:last-child{border-bottom:none}.leaderboard-row:nth-child(2n){background:var(--color-bg-muted)}.leaderboard-row-me{background:#e9456014}.leaderboard-row-me:nth-child(2n){background:#e945601f}.leaderboard-rank{color:var(--color-text-muted);font-size:var(--text-sm);font-family:var(--font-mono);min-width:2.5rem;text-align:right}.leaderboard-rank-medal{font-size:var(--text-lg);line-height:1}.leaderboard-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary);min-width:6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaderboard-bar-wrapper{flex:1;height:8px;background:var(--color-bg-hover);border-radius:var(--radius-full);overflow:hidden;min-width:60px}.leaderboard-bar{height:100%;background:var(--color-accent);border-radius:var(--radius-full);transition:width var(--transition-normal)}.leaderboard-bar-exceeded{background:var(--trophy-gold)}.leaderboard-count{color:var(--color-text-secondary);font-size:var(--text-sm);font-family:var(--font-mono);font-weight:var(--weight-semibold);min-width:5rem;text-align:right;white-space:nowrap}.leaderboard-target{font-size:var(--text-2xs);color:var(--color-text-disabled);font-weight:var(--weight-normal)}.leaderboard-dimmed{opacity:.5;pointer-events:none;transition:opacity var(--transition-fast)}.leaderboard-loading,.leaderboard-empty{padding:var(--space-8);text-align:center;color:var(--color-text-disabled);font-size:var(--text-sm)}.podium{display:flex;align-items:flex-end;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4) var(--space-4)}.podium-block{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--space-2);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-4) var(--space-5);min-width:120px;text-align:center;transition:border-color var(--transition-fast)}.podium-first{min-height:160px;border-color:var(--trophy-gold);border-width:2px;background:linear-gradient(180deg,rgba(255,215,0,.08) 0%,var(--color-bg-elevated) 100%)}.podium-second{min-height:120px;border-color:var(--trophy-silver)}.podium-third{min-height:90px;border-color:var(--trophy-bronze)}.podium-medal{font-size:var(--text-2xl);line-height:1}.podium-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.podium-count{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text-primary);font-family:var(--font-mono)}.podium-count-label{font-size:var(--text-2xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.dashboard-leaderboard-error{padding:var(--space-3) var(--space-4);background:var(--color-error-light);color:var(--color-error);font-size:var(--text-sm);border-radius:var(--radius-md);text-align:center}.profile-leaderboard-toggle{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) 0}.profile-leaderboard-label{display:flex;flex-direction:column;gap:var(--space-1)}.profile-leaderboard-label-text{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-muted)}.profile-leaderboard-label-desc{font-size:var(--text-xs);color:var(--color-text-disabled)}.profile-toggle-switch{position:relative;width:44px;height:24px;background:var(--color-bg-hover);border:1px solid var(--color-border-default);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);flex-shrink:0}.profile-toggle-switch.active{background:var(--color-accent-muted);border-color:var(--color-accent)}.profile-toggle-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--color-text-primary);border-radius:var(--radius-full);transition:transform var(--transition-fast)}.profile-toggle-switch.active .profile-toggle-knob{transform:translate(20px)}.profile-toggle-saving{font-size:var(--text-xs);color:var(--color-text-disabled);margin-left:var(--space-2)}@media(max-width:768px){.leaderboard-header{flex-direction:column;align-items:flex-start}.podium{gap:var(--space-2);padding:var(--space-4) var(--space-2) var(--space-3)}.podium-block{min-width:90px;padding:var(--space-3) var(--space-3)}.podium-first{min-height:130px}.podium-second{min-height:100px}.podium-third{min-height:75px}}@media(max-width:480px){.leaderboard-row{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.leaderboard-name{min-width:4rem}.podium-block{min-width:70px;padding:var(--space-2)}.podium-medal{font-size:var(--text-xl)}}.profile-container{max-width:var(--max-width-narrow);margin:0 auto;padding:var(--space-8) var(--space-6);font-family:var(--font-ui)}.profile-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-8) 0}.profile-section{margin-bottom:var(--space-8)}.profile-section-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-4) 0;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-default)}.profile-info-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-6)}.profile-info-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0}.profile-info-row+.profile-info-row{border-top:1px solid var(--color-border-subtle)}.profile-info-label{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-muted)}.profile-info-value{font-size:var(--text-base);font-weight:var(--weight-normal);color:var(--color-text-primary)}.profile-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.profile-stat-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-1)}.profile-stat-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text-primary)}.profile-stat-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.profile-password-form{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-2) 0}.profile-password-input{padding:.875rem var(--space-4);background:var(--color-bg-page);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-base);font-family:var(--font-ui);transition:border-color var(--transition-normal)}.profile-password-input:focus{outline:none;border-color:var(--color-border-focus)}.profile-password-btn{background:var(--color-accent);color:var(--color-text-primary);border:none;border-radius:var(--radius-sm);padding:.875rem var(--space-4);font-family:var(--font-ui);font-size:var(--text-base);font-weight:var(--weight-bold);cursor:pointer;transition:background var(--transition-normal)}.profile-password-btn:hover:not(:disabled){background:var(--color-accent-hover)}.profile-password-btn:disabled{opacity:.6;cursor:not-allowed}.profile-password-error{background:var(--color-error-light);border:1px solid var(--color-accent);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);color:var(--color-accent-hover);font-size:var(--text-sm);text-align:center;margin:0}.profile-password-success{background:var(--color-success-light);border:1px solid var(--color-success);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);color:var(--color-success);font-size:var(--text-sm);text-align:center;margin:0}.profile-actions{margin-top:var(--space-10);display:flex;justify-content:center}.profile-signout-btn{background:var(--color-accent);color:var(--color-text-primary);border:none;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-8);font-family:var(--font-ui);font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--transition-fast)}.profile-signout-btn:hover{background:var(--color-accent-hover)}.profile-loading,.profile-error{font-size:var(--text-base);color:var(--color-text-muted);text-align:center;padding:var(--space-12) 0}.profile-error{color:var(--color-error)}@media(max-width:600px){.profile-stats-grid{grid-template-columns:1fr}.profile-container{padding:var(--space-6) var(--space-4)}}.admin-subtabs{display:flex;gap:0;border-bottom:1px solid var(--color-border-default);margin-bottom:var(--space-4);position:sticky;top:var(--header-height);z-index:100;background:var(--color-bg-page)}.admin-subtab{padding:var(--space-2) var(--space-4);height:36px;display:flex;align-items:center;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);text-decoration:none;border-bottom:2px solid transparent;transition:color var(--transition-fast),background var(--transition-fast);white-space:nowrap}.admin-subtab:hover{color:var(--color-text-secondary);background:var(--color-bg-hover);text-decoration:none}.admin-subtab-active{color:var(--color-text-primary);font-weight:var(--weight-semibold);border-bottom-color:var(--color-accent)}.hub-container{max-width:1100px;margin:0 auto;padding:var(--space-12) var(--space-6);font-family:var(--font-ui)}.hub-title{font-size:var(--text-2xl);font-weight:var(--weight-normal);color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.hub-subtitle{color:var(--color-text-dim);font-size:var(--text-base);margin:0 0 2.5rem}.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.hub-card{display:flex;flex-direction:column;background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-6);text-decoration:none;color:inherit;transition:all var(--transition-normal);cursor:pointer}.hub-card:hover{border-color:var(--color-border-strong);background:var(--color-bg-muted);transform:translateY(-1px)}.hub-card-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:.75rem}.hub-card-icon{font-size:var(--text-xl);width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:var(--color-bg-hover);border-radius:var(--radius-md)}.hub-card-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.hub-card-description{color:var(--color-text-muted);font-size:var(--text-base);line-height:var(--leading-normal);margin:0}.hub-card-stat{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border-subtle);color:var(--color-info);font-size:var(--text-xs);font-weight:var(--weight-medium)}@media(max-width:900px){.hub-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.hub-grid{grid-template-columns:1fr}}.admin-page{padding:0 var(--space-8) var(--space-4);max-width:1200px}.admin-page.admin-page-wide{max-width:none}.admin-page h1{margin-bottom:1.5rem;font-size:var(--text-xl)}.admin-denied,.admin-loading{padding:var(--space-12);text-align:center;color:var(--color-text-muted)}.admin-error{background:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-error);padding:var(--space-3) var(--space-4);border-radius:6px;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.admin-error button{background:none;border:none;color:inherit;cursor:pointer;text-decoration:underline;font-size:var(--text-sm)}.admin-section{margin-bottom:2rem;background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:8px;padding:var(--space-5)}.admin-section h2{font-size:var(--text-md);margin-bottom:1rem;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-default)}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.admin-table th,.admin-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default)}.admin-table th{font-weight:var(--weight-semibold);color:var(--color-text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em}.admin-table tbody tr:hover{background:var(--color-bg-hover)}.admin-table .inactive-row{opacity:.5}.admin-table select{background:var(--color-bg-input);color:inherit;border:1px solid var(--color-border-default);border-radius:4px;padding:var(--space-1) var(--space-1);font-size:var(--text-xs)}.action-cell{display:flex;gap:var(--space-1)}.details-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);color:var(--color-text-secondary)}.details-cell.clickable{cursor:pointer}.details-cell.clickable:hover{color:var(--color-info)}.details-cell.expanded{white-space:normal;overflow:visible;max-width:none}.details-expanded{margin:0;font-size:var(--text-xs);white-space:pre-wrap;word-break:break-word}.empty-row{text-align:center;color:var(--color-text-secondary);font-style:italic}.empty-message{color:var(--color-text-secondary);font-style:italic}.status-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:10px;font-size:var(--text-xs);font-weight:var(--weight-medium);margin-right:.3rem}.status-badge.active{background:var(--color-success-light);color:var(--color-success)}.status-badge.inactive{background:var(--color-error-light);color:var(--color-error)}.status-badge.unverified{background:var(--color-warning-light);color:var(--color-warning)}.status-badge.pending{background:var(--color-info-light);color:var(--color-info)}.status-badge.used{background:var(--color-success-light);color:var(--color-success)}.status-badge.expired{background:var(--color-warning-light);color:var(--color-text-muted)}.admin-btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border-radius:4px;border:1px solid var(--color-border-default);background:var(--color-bg-elevated);color:inherit;cursor:pointer}.admin-btn-sm:hover{background:var(--color-bg-hover)}.admin-btn-sm.danger{color:var(--color-error);border-color:var(--color-error)}.admin-btn-sm.danger:hover{background:var(--color-error-light)}.admin-invite-form{display:flex;gap:var(--space-2);margin-bottom:1rem}.admin-invite-form input{flex:1;padding:var(--space-2) var(--space-3);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:4px;color:inherit;font-size:var(--text-sm)}.admin-invite-form select{padding:var(--space-2);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:4px;color:inherit;font-size:var(--text-sm)}.admin-invite-form button{padding:var(--space-2) var(--space-4);background:var(--color-info);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:var(--text-sm)}.admin-invite-form button:disabled{opacity:.5;cursor:not-allowed}.admin-invite-code{background:var(--color-success-light);border:1px solid var(--color-success);border-radius:6px;padding:var(--space-3) var(--space-4);margin-bottom:1rem}.admin-invite-code.email-failed{background:var(--color-warning-light);border-color:var(--color-warning)}.admin-invite-warning{color:var(--color-warning);font-weight:var(--weight-semibold)}.admin-invite-link-row{display:flex;align-items:center;gap:var(--space-2);margin-top:.4rem}.admin-invite-link{flex:1;word-break:break-all;font-size:var(--text-sm);color:var(--color-success)}.admin-invite-code.email-failed .admin-invite-link{color:var(--color-text-primary)}.admin-invite-copy{padding:var(--space-1) var(--space-2);background:var(--color-bg-active);border:1px solid var(--color-border-default);border-radius:4px;color:inherit;cursor:pointer;font-size:var(--text-xs);white-space:nowrap}.admin-invite-copy:hover{border-color:var(--color-accent);color:var(--color-accent)}.admin-filters{display:flex;gap:var(--space-2);margin-bottom:1rem}.admin-filters select,.admin-filters input{padding:var(--space-1) var(--space-2);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:4px;color:inherit;font-size:var(--text-sm)}.admin-filters button{padding:var(--space-1) var(--space-2);background:var(--color-bg-active);border:1px solid var(--color-border-default);border-radius:4px;color:inherit;cursor:pointer;font-size:var(--text-sm)}.ownership-summary{display:flex;gap:var(--space-8);padding:var(--space-3) var(--space-5);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:8px;margin-bottom:1rem}.ownership-summary-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.ownership-summary-label{font-size:var(--text-2xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.ownership-summary-value{font-size:var(--text-lg);font-weight:var(--weight-semibold)}.ow-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:8px}.ow-table-wrap{overflow-x:auto}.ow-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ow-table th{text-align:left;padding:var(--space-2) var(--space-3);font-weight:var(--weight-semibold);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-default);background:var(--color-bg-muted)}.ow-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default);vertical-align:middle}.ow-table tbody tr:hover{background:var(--color-bg-hover)}.ow-table tbody tr:nth-child(2n){background:var(--color-bg-muted)}.ow-table tbody tr:nth-child(2n):hover{background:var(--color-bg-hover)}.ow-cell-book{font-weight:var(--weight-medium)}.ow-cell-author{white-space:nowrap;color:var(--color-text-secondary)}.ow-cell-user{white-space:nowrap;font-weight:var(--weight-medium)}.ow-cell-chapters,.ow-cell-count,.ow-cell-date{white-space:nowrap;color:var(--color-text-secondary)}.al-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:8px}.al-sticky-header{position:sticky;top:calc(var(--header-height) + 37px);z-index:50;background:var(--color-bg-elevated);border-radius:8px 8px 0 0}.al-toolbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default)}.al-filter-group{display:flex;align-items:center;gap:var(--space-1)}.al-filter-label{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);white-space:nowrap}.al-filter{padding:var(--space-1) var(--space-2);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:4px;color:var(--color-text-primary);font-size:var(--text-xs);font-family:var(--font-ui);cursor:pointer}.al-filter:focus{outline:none;border-color:var(--color-border-focus)}.al-apply-btn{padding:var(--space-1) var(--space-3);background:var(--color-bg-active);border:1px solid var(--color-border-default);border-radius:4px;color:var(--color-text-primary);font-size:var(--text-xs);cursor:pointer}.al-apply-btn:hover{background:var(--color-bg-hover)}.al-count{margin-left:auto;font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.al-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-10) var(--space-4);font-size:var(--text-sm)}.al-table-wrap{overflow-x:auto}.al-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.al-table th{text-align:left;padding:var(--space-2) var(--space-3);font-weight:var(--weight-semibold);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-default);background:var(--color-bg-muted)}.al-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default);vertical-align:middle}.al-table tbody tr:hover{background:var(--color-bg-hover)}.al-table tbody tr:nth-child(2n){background:var(--color-bg-muted)}.al-table tbody tr:nth-child(2n):hover{background:var(--color-bg-hover)}.al-cell-time{white-space:nowrap;color:var(--color-text-secondary)}.al-cell-user{white-space:nowrap;font-weight:var(--weight-medium)}.al-cell-action{white-space:nowrap}.al-cell-author{white-space:nowrap;color:var(--color-text-secondary)}.al-cell-book{font-weight:var(--weight-medium)}.al-muted{color:var(--color-text-muted)}.al-action-badge{display:inline-block;padding:var(--space-0-5) var(--space-1);border-radius:4px;font-size:var(--text-xs);font-family:var(--font-mono, monospace);background:var(--color-bg-active);color:var(--color-text-secondary)}.al-action-save{background:#4caf501f;color:var(--color-success)}.al-action-assign{background:#2196f31f;color:var(--color-info)}.al-action-reject{background:#f443361f;color:var(--color-error)}.al-action-auth{background:#9b59b61f;color:#b388ff}.al-action-download{background:#ff98001f;color:var(--color-warning)}.al-cell-details{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.al-cell-details.al-clickable{cursor:pointer}.al-cell-details.al-clickable:hover{color:var(--color-info)}.al-cell-details.al-expanded{white-space:normal;overflow:visible;max-width:none}.al-details-summary{font-size:var(--text-xs);color:var(--color-text-muted)}.al-details-pre{margin:0;font-size:var(--text-xs);white-space:pre-wrap;word-break:break-word;color:var(--color-text-secondary)}.assignment-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:10px;font-size:var(--text-xs);font-weight:var(--weight-medium)}.assignment-badge-assigned{background:var(--color-info-light);color:var(--color-info)}.assignment-badge-in-progress{background:var(--color-warning-light);color:var(--color-warning)}.assignment-badge-submitted{background:#9b59b626;color:#b388ff}.assignment-badge-approved{background:var(--color-success-light);color:var(--color-success)}.assignment-badge-rejected{background:var(--color-error-light);color:var(--color-error)}.assignment-badge-revoked{background:#88888826;color:var(--color-text-muted)}.assignment-badge-requested{background:#2196f326;color:#64b5f6}.assignment-badge-paused{background:#ff980026;color:#ffb74d}.assignment-badge-abandoned{background:#88888826;color:var(--color-text-muted)}.assignment-badge-declined{background:var(--color-error-light);color:var(--color-error)}.assignment-create-form{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:flex-end;margin-bottom:1.5rem;padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border-default)}.assignment-create-form label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.assignment-create-form select,.assignment-create-form input{padding:var(--space-2) var(--space-2);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:4px;color:inherit;font-size:var(--text-sm)}.assignment-create-form .assignment-field-user{min-width:160px}.assignment-create-form .assignment-field-author{min-width:200px}.assignment-create-form .assignment-field-author label,.assignment-create-form .assignment-field-book label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.assignment-create-form .assignment-field-book{flex:1;min-width:200px}.assignment-create-form .assignment-field-chapters{width:140px}.assignment-create-form .assignment-field-chapters input{width:100%}.assignment-create-form .assignment-field-chapters label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.assignment-create-btn{padding:var(--space-2) var(--space-4);background:var(--color-info);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:var(--text-sm);white-space:nowrap}.assignment-create-btn:disabled{opacity:.5;cursor:not-allowed}.autocomplete-wrapper{position:relative}.autocomplete-wrapper input{width:100%}.autocomplete-backdrop{position:fixed;inset:0;z-index:99}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:4px;max-height:240px;overflow-y:auto;box-shadow:0 4px 12px #00000026;margin-top:2px}.autocomplete-option{padding:var(--space-1) var(--space-2);cursor:pointer;font-size:var(--text-sm);display:flex;flex-direction:column;gap:var(--space-0-5)}.autocomplete-option:hover{background:var(--color-bg-hover)}.autocomplete-option.selected{background:var(--color-bg-active)}.autocomplete-option-title{font-weight:var(--weight-medium)}.autocomplete-option-folder{font-size:var(--text-xs);color:var(--color-text-muted)}.autocomplete-more{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.assignment-field-chapters{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.chapter-hint{font-size:var(--text-2xs);color:var(--color-text-muted);white-space:nowrap}.aq-section{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:8px;margin-bottom:1rem;overflow:hidden}.aq-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border-default);background:var(--color-bg-muted)}.aq-header-icon{font-size:var(--text-sm);width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:4px}.aq-header-icon-request{background:#2196f31f;color:var(--color-info)}.aq-header-icon-review{background:#9b59b61f;color:#b388ff}.aq-header-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:0}.aq-header-count{background:var(--color-bg-active);color:var(--color-text-secondary);font-size:var(--text-2xs);font-weight:var(--weight-semibold);padding:var(--space-0-5) var(--space-2);border-radius:10px;min-width:1.3rem;text-align:center}.aq-cards{display:flex;flex-direction:column}.aq-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border-default);transition:background var(--transition-fast)}.aq-card:last-child{border-bottom:none}.aq-card:hover{background:var(--color-bg-hover)}.aq-card-left{min-width:0;flex:0 0 220px}.aq-card-user{font-weight:var(--weight-semibold);font-size:var(--text-sm);margin-bottom:.15rem}.aq-card-book{display:flex;flex-direction:column;gap:1px}.aq-card-book-title{font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aq-card-book-author{font-size:var(--text-2xs);color:var(--color-text-muted)}.aq-card-center{flex:1;display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.aq-card-detail{font-size:var(--text-xs);color:var(--color-text-secondary)}.aq-card-detail-muted{color:var(--color-text-muted)}.aq-card-note{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.aq-card-actions{display:flex;gap:var(--space-1);flex-shrink:0}.aq-table-wrap{overflow-x:auto}.aq-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.aq-table th{text-align:left;padding:var(--space-2) var(--space-3);font-weight:var(--weight-semibold);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-default);background:var(--color-bg-muted)}.aq-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default);vertical-align:middle}.aq-table tbody tr:hover{background:var(--color-bg-hover)}.aq-cell-user{white-space:nowrap;font-weight:var(--weight-medium)}.aq-cell-book{font-weight:var(--weight-medium)}.aq-cell-author,.aq-cell-chapters,.aq-cell-date{white-space:nowrap;color:var(--color-text-secondary)}.aq-cell-stats,.aq-cell-actions{white-space:nowrap}.aq-stats-muted{color:var(--color-text-muted)}.aq-cell-reviewer{white-space:nowrap;font-weight:var(--weight-medium);color:var(--color-text-secondary)}.aq-cell-status{white-space:nowrap}.aq-status-badge{display:inline-block;font-size:var(--text-2xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-2);border-radius:10px;white-space:nowrap}.aq-status-readyForDecision{background:#ff980026;color:var(--color-warning)}.aq-status-underReview{background:#9b59b626;color:#b388ff}.aq-status-needsReviewer{background:#88888826;color:var(--color-text-muted)}.aq-btn{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:4px;border:1px solid;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.aq-btn-neutral{background:none;border-color:var(--color-border-default);color:var(--color-text-primary)}.aq-btn-neutral:hover{background:var(--color-bg-hover)}.aq-btn-approve{background:none;border-color:var(--color-success);color:var(--color-success)}.aq-btn-approve:hover{background:var(--color-success-light)}.aq-btn-reject{background:none;border-color:var(--color-error);color:var(--color-error)}.aq-btn-reject:hover{background:var(--color-error-light)}.review-stat-unsure{color:var(--color-warning, #d4a017)}.review-stat-unreviewed{color:var(--color-error, #c0392b)}.reject-dialog-backdrop{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.reject-dialog{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:8px;padding:var(--space-6);width:400px;max-width:90vw}.reject-dialog h3{margin:0 0 1rem;font-size:var(--text-base)}.reject-dialog textarea{width:100%;min-height:100px;padding:var(--space-2);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:4px;color:inherit;font-family:inherit;font-size:var(--text-sm);resize:vertical;margin-bottom:1rem}.reject-dialog-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.at-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:8px}.at-sticky-header{position:sticky;top:calc(var(--header-height) + 37px);z-index:50;background:var(--color-bg-elevated);border-radius:8px 8px 0 0}.at-type-tabs{display:flex;align-items:center;border-bottom:1px solid var(--color-border-default)}.at-type-tab{padding:var(--space-2) var(--space-5);font-size:var(--text-sm);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);flex-shrink:0}.at-type-tab:hover{color:var(--color-text-secondary);background:var(--color-bg-hover)}.at-type-tab-active{color:var(--color-text-primary);border-bottom-color:var(--color-accent)}.at-toolbar{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;padding:var(--space-1) var(--space-3)}.at-search{width:180px;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-default);border-radius:4px;background:var(--color-bg-input);color:var(--color-text-primary);font-size:var(--text-xs);font-family:var(--font-ui)}.at-search:focus{outline:none;border-color:var(--color-border-focus)}.at-filter-group{display:flex;align-items:center;gap:var(--space-1)}.at-filter-label{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);white-space:nowrap}.at-filter{padding:var(--space-1) var(--space-2);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:4px;color:var(--color-text-primary);font-size:var(--text-xs);font-family:var(--font-ui);cursor:pointer}.at-filter:focus{outline:none;border-color:var(--color-border-focus)}.at-count{margin-left:auto;font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.at-refresh{background:none;border:1px solid var(--color-border-default);border-radius:4px;color:var(--color-text-muted);font-size:var(--text-base);line-height:1;padding:var(--space-1) var(--space-1);cursor:pointer}.at-refresh:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.at-table-wrap{overflow-x:auto}.at-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.at-table th{text-align:left;padding:var(--space-2) var(--space-3);font-weight:var(--weight-semibold);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-default);background:var(--color-bg-muted)}.at-th-sortable{cursor:pointer;user-select:none;white-space:nowrap}.at-th-sortable:hover{color:var(--color-text-primary)}.at-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default);vertical-align:middle}.at-table tbody tr:hover{background:var(--color-bg-hover)}.at-table tbody tr:nth-child(2n){background:var(--color-bg-muted)}.at-table tbody tr:nth-child(2n):hover{background:var(--color-bg-hover)}.at-cell-user{white-space:nowrap;font-weight:var(--weight-medium)}.at-cell-author{white-space:nowrap;color:var(--color-text-secondary)}.at-cell-book{font-weight:var(--weight-medium)}.at-cell-chapters,.at-cell-date{white-space:nowrap;color:var(--color-text-secondary)}.at-cell-actions{white-space:nowrap}.at-revoke{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border-radius:4px;border:1px solid var(--color-error);background:none;color:var(--color-error);cursor:pointer}.at-revoke:hover{background:var(--color-error-light)}.at-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-10) var(--space-4);font-size:var(--text-sm)}.timesheet-manual-input{width:60px;padding:var(--space-0-5) var(--space-1);text-align:right;border:1px solid var(--color-border-default);border-radius:3px;background:var(--color-bg-input);color:inherit;font-size:var(--text-sm)}.timesheet-manual-input:focus{border-color:var(--accent-color, var(--color-info));outline:none}.my-assignments-section{margin-top:2rem}.my-assignments-section h2{font-size:var(--text-md);margin-bottom:.75rem}.my-assignments-list{display:flex;flex-direction:column;gap:var(--space-2)}.my-assignment-card{display:flex;align-items:center;gap:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:6px;padding:var(--space-3) var(--space-4);text-decoration:none;color:inherit;transition:background var(--transition-fast)}.my-assignment-card:hover{background:var(--color-bg-hover);text-decoration:none}.my-assignment-card-info{flex:1;min-width:0}.my-assignment-card-title{font-weight:var(--weight-medium);font-size:var(--text-sm)}.my-assignment-card-chapters{font-size:var(--text-xs);color:var(--color-text-secondary)}.trophy-catalog-tabs{display:flex;gap:0;align-items:center;border-bottom:1px solid var(--color-border-default);margin-bottom:var(--space-4);position:sticky;top:calc(var(--header-height) + 37px);z-index:99;background:var(--color-bg-page)}.trophy-catalog-tab{padding:var(--space-2) var(--space-4);height:36px;display:flex;align-items:center;font-size:var(--text-sm);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),background var(--transition-fast);white-space:nowrap}.trophy-catalog-tab:hover{color:var(--color-text-secondary);background:var(--color-bg-hover)}.trophy-catalog-tab-active{color:var(--color-text-primary);font-weight:var(--weight-semibold);border-bottom-color:var(--color-accent)}.trophy-catalog-tab-count{margin-left:auto;font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-2) var(--space-4)}.trophy-catalog-controls{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-4)}.trophy-catalog-search{flex:1;min-width:200px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--text-sm)}.trophy-catalog-filters{display:flex;gap:var(--space-2)}.trophy-catalog-filter{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:var(--text-xs);cursor:pointer;transition:all .15s ease}.trophy-catalog-filter:hover{border-color:var(--color-accent);color:var(--color-accent)}.trophy-catalog-filter.active{background:var(--color-accent);color:var(--color-text-on-color);border-color:var(--color-accent)}.trophy-catalog-table-wrap{overflow-x:auto}.trophy-catalog-icon{font-size:var(--text-xl);text-align:center;width:3rem}.trophy-catalog-name{font-weight:var(--weight-semibold);white-space:nowrap}.trophy-catalog-key code{font-size:var(--text-xs);padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-elevated);color:var(--color-text-secondary)}.trophy-catalog-details{min-width:200px}.trophy-catalog-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-6)!important}.trophy-category-header-row td{background:var(--color-bg-elevated);padding:var(--space-2) var(--space-3)!important;border-bottom:1px solid var(--color-border-default)}.trophy-category-label{font-weight:var(--weight-semibold);font-size:var(--text-sm);color:var(--color-text-primary)}.trophy-category-count{display:inline-block;margin-left:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium)}.trophy-type-tag{display:inline-block;padding:1px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:capitalize}.trophy-type-cumulative{background:var(--trophy-bronze);color:#000}.trophy-type-discovery{background:var(--color-accent);color:var(--color-text-on-color)}.trophy-tier-details{display:flex;gap:var(--space-2);flex-wrap:wrap}.trophy-tier-label{display:inline-block;padding:1px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs)}.trophy-tier-bronze{background:var(--trophy-bronze);color:#000}.trophy-tier-silver{background:var(--trophy-silver);color:#000}.trophy-tier-gold{background:var(--trophy-gold);color:#000}.trophy-discovery-details{display:flex;flex-direction:column;gap:var(--space-0-5)}.trophy-description-text{font-size:var(--text-sm);color:var(--color-text-primary)}.trophy-hint-text{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.leveling-grid .leveling-level-header{text-transform:capitalize;font-weight:var(--weight-semibold);min-width:100px}.leveling-grid .leveling-metric-name{font-weight:var(--weight-medium);white-space:nowrap}.leveling-grid .leveling-threshold{text-align:center;font-variant-numeric:tabular-nums}.difficulty-tag{display:inline-block;padding:1px var(--space-2);margin:2px 4px 2px 0;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:capitalize;background:var(--color-bg-elevated);color:var(--color-text-secondary)}.difficulty-foundation{background:var(--color-foundation);color:#000}.difficulty-elementary{background:var(--color-elementary);color:#000}.difficulty-intermediate{background:var(--color-intermediate);color:#000}.difficulty-advanced{background:var(--color-advanced);color:#fff}.difficulty-expert{background:var(--color-expert);color:#fff}.difficulty-mastery{background:var(--color-mastery);color:#fff}.admin-section-subtitle{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4)}.difficulty-controls{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;margin-bottom:var(--space-3);position:sticky;top:calc(var(--header-height) + 37px + 37px);z-index:98;background:var(--color-bg-page);border-bottom:1px solid var(--color-border-subtle)}.difficulty-search{flex:1;min-width:160px;padding:var(--space-2) var(--space-3) var(--space-2) calc(var(--space-3) + 18px);border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-input) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23888888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat 8px center / 14px;color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-ui)}.difficulty-search:focus{outline:none;border-color:var(--color-border-focus)}.difficulty-filter-select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-input);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-ui);cursor:pointer}.difficulty-filter-select:focus{outline:none;border-color:var(--color-border-focus)}.difficulty-recompute-btn{margin-left:auto;padding:var(--space-2) var(--space-3);border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-text-on-color);font-size:var(--text-sm);font-family:var(--font-ui);cursor:pointer;white-space:nowrap;transition:opacity var(--transition-fast)}.difficulty-recompute-btn:hover{opacity:.9}.difficulty-recompute-btn:disabled{opacity:.5;cursor:not-allowed}.difficulty-result-banner{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);margin-bottom:var(--space-3);font-size:var(--text-sm)}.difficulty-result-banner .stat{font-weight:var(--weight-semibold)}.difficulty-table-wrap{overflow-x:auto;margin:0 calc(-1 * var(--space-3));padding:0 var(--space-3)}.difficulty-table{font-size:var(--text-xs)}.difficulty-table thead th{font-size:var(--text-2xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:2px solid var(--color-border-default);padding:var(--space-1) var(--space-2);white-space:nowrap}.difficulty-table td{padding:var(--space-1) var(--space-2)}.difficulty-table tbody tr:nth-child(2n):not(.difficulty-detail-row){background:var(--color-bg-elevated)}.difficulty-table .title-cell{font-weight:var(--weight-medium)}.difficulty-table .author-cell{color:var(--color-text-secondary);white-space:nowrap}.difficulty-table .genre-cell{text-transform:capitalize;font-size:var(--text-xs);white-space:nowrap}.difficulty-table .difficulty-cell{white-space:nowrap}.difficulty-table .score-cell{text-align:right;font-variant-numeric:tabular-nums;min-width:60px}.difficulty-table .words-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.difficulty-table .year-cell{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.difficulty-level-badge{display:inline-flex;align-items:center;padding:var(--space-0-5) var(--space-3);border-radius:100px;font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:capitalize;white-space:nowrap}.difficulty-level-badge.level-foundation{background:color-mix(in srgb,var(--color-foundation) 15%,transparent);color:var(--color-foundation)}.difficulty-level-badge.level-elementary{background:color-mix(in srgb,var(--color-elementary) 15%,transparent);color:var(--color-elementary)}.difficulty-level-badge.level-intermediate{background:color-mix(in srgb,var(--color-intermediate) 15%,transparent);color:var(--color-intermediate)}.difficulty-level-badge.level-advanced{background:color-mix(in srgb,var(--color-advanced) 15%,transparent);color:var(--color-advanced)}.difficulty-level-badge.level-expert{background:color-mix(in srgb,var(--color-expert) 15%,transparent);color:var(--color-expert)}.difficulty-level-badge.level-mastery{background:color-mix(in srgb,var(--color-mastery) 15%,transparent);color:var(--color-mastery)}.difficulty-level-badge.level-unclassified{background:var(--color-bg-muted);color:var(--color-text-muted);border:1px dashed var(--color-border-default)}.score-breakdown{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-2)}.score-breakdown-empty{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.score-breakdown-axes{display:flex;gap:var(--space-3);flex:1}.score-breakdown-card{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-md);flex:1;min-width:0}.score-breakdown-card-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-secondary);white-space:nowrap;min-width:52px}.score-breakdown-bar-track{flex:1;height:6px;background:var(--color-bg-elevated);border-radius:3px;overflow:hidden;min-width:40px}.score-breakdown-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--color-success),var(--color-warning) 60%,var(--color-error))}.score-breakdown-card-value{font-size:var(--text-xs);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-text-primary);min-width:28px;text-align:right}.score-breakdown-overall{display:flex;flex-direction:column;align-items:center;gap:var(--space-0-5);padding:var(--space-2) var(--space-4);background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-md)}.score-breakdown-overall-label{font-size:var(--text-2xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.score-breakdown-overall-value{font-size:var(--text-base);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.difficulty-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-default)}.difficulty-pagination-info{font-size:var(--text-sm);color:var(--color-text-secondary)}.difficulty-pagination-buttons{display:flex;gap:var(--space-2)}.difficulty-pagination-buttons button{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer}.difficulty-pagination-buttons button:hover:not(:disabled){background:var(--color-bg-elevated)}.difficulty-pagination-buttons button:disabled{opacity:.4;cursor:not-allowed}.difficulty-expand-btn{background:none;border:none;cursor:pointer;font-size:var(--text-sm);color:var(--color-text-muted);padding:0 var(--space-1)}.difficulty-expand-btn:hover{color:var(--color-accent)}.difficulty-detail-row td{padding:var(--space-2) var(--space-3)!important;background:var(--color-bg-elevated)}.difficulty-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-6)!important}.difficulty-tab-bar{display:flex;gap:0;border-bottom:1px solid var(--color-border-default);margin-bottom:var(--space-4);position:sticky;top:calc(var(--header-height) + 37px);z-index:99;background:var(--color-bg-page)}.difficulty-tab{padding:var(--space-2) var(--space-4);height:36px;display:flex;align-items:center;font-size:var(--text-sm);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),background var(--transition-fast);white-space:nowrap}.difficulty-tab:hover{color:var(--color-text-secondary);background:var(--color-bg-hover)}.difficulty-tab-active{color:var(--color-text-primary);font-weight:var(--weight-semibold);border-bottom-color:var(--color-accent)}.formula-tab{display:flex;flex-direction:column;gap:var(--space-5)}.formula-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-6)}.formula-card-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2) 0;display:flex;align-items:baseline;gap:var(--space-3)}.formula-card-weight{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 10%,transparent);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full, 100px)}.formula-note{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-5) 0;line-height:1.6}.formula-axis-pills{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-bottom:var(--space-5)}@media(max-width:700px){.formula-axis-pills{grid-template-columns:repeat(2,1fr)}}.formula-axis-pill{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-muted);border-radius:var(--radius-md);border:1px solid var(--color-border-default)}.formula-pill-weight{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-accent);font-variant-numeric:tabular-nums;line-height:1}.formula-pill-text{display:flex;flex-direction:column;gap:var(--space-0-5)}.formula-pill-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.formula-pill-desc{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.3}.formula-threshold-bar{display:flex;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border-default)}.formula-threshold-segment{flex:1;padding:var(--space-3) var(--space-2);text-align:center;display:flex;flex-direction:column;gap:var(--space-1);border-right:1px solid var(--color-border-default)}.formula-threshold-segment:last-child{border-right:none}.formula-threshold-level{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:capitalize}.formula-threshold-range{font-size:var(--text-2xs);opacity:.8;font-variant-numeric:tabular-nums}.formula-threshold-segment.difficulty-foundation{background:color-mix(in srgb,var(--color-foundation) 15%,transparent);color:var(--color-foundation)}.formula-threshold-segment.difficulty-elementary{background:color-mix(in srgb,var(--color-elementary) 15%,transparent);color:var(--color-elementary)}.formula-threshold-segment.difficulty-intermediate{background:color-mix(in srgb,var(--color-intermediate) 15%,transparent);color:var(--color-intermediate)}.formula-threshold-segment.difficulty-advanced{background:color-mix(in srgb,var(--color-advanced) 15%,transparent);color:var(--color-advanced)}.formula-threshold-segment.difficulty-expert{background:color-mix(in srgb,var(--color-expert) 15%,transparent);color:var(--color-expert)}.formula-threshold-segment.difficulty-mastery{background:color-mix(in srgb,var(--color-mastery) 15%,transparent);color:var(--color-mastery)}.formula-sub-title{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-3) 0;display:flex;align-items:baseline;gap:var(--space-2);text-transform:uppercase;letter-spacing:.03em}.formula-sub-weight{font-size:var(--text-xs);font-weight:var(--weight-normal);color:var(--color-text-muted);text-transform:none;letter-spacing:0}.formula-size-tables{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}@media(max-width:700px){.formula-size-tables{grid-template-columns:1fr}}.formula-tier-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.formula-tier-table th{text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-2) var(--space-3);border-bottom:2px solid var(--color-border-default)}.formula-tier-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-bg-hover);color:var(--color-text-secondary)}.formula-tier-table tbody tr:last-child td{border-bottom:none}.formula-tier-table tbody tr:hover{background:var(--color-bg-hover)}.formula-score-cell{display:flex;align-items:center;gap:var(--space-3)}.formula-bar-wrap{flex:1;height:8px;background:var(--color-bg-muted);border-radius:4px;overflow:hidden;min-width:60px}.formula-bar{height:100%;background:linear-gradient(90deg,var(--color-success),var(--color-warning) 60%,var(--color-error));border-radius:4px}.formula-bar-value{font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text-primary);min-width:28px;text-align:right}.formula-metrics-sections{display:flex;gap:var(--space-6)}.formula-metrics-section{flex:1}.formula-metrics-divider{width:1px;background:var(--color-border-default);align-self:stretch}@media(max-width:800px){.formula-metrics-sections{flex-direction:column}.formula-metrics-divider{width:100%;height:1px}}.formula-metric-row{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-muted);margin-bottom:var(--space-2)}.formula-metric-row:last-child{margin-bottom:0}.formula-metric-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-1)}.formula-metric-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.formula-metric-wt{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-accent);font-variant-numeric:tabular-nums}.formula-metric-detail{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.formula-metric-code{font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-elevated);padding:var(--space-0-5) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border-default)}.formula-metric-range{display:flex;gap:var(--space-4);font-size:var(--text-xs)}.formula-range-easy{color:var(--color-success)}.formula-range-hard{color:var(--color-error)}.formula-era-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-6)}@media(max-width:700px){.formula-era-grid{grid-template-columns:1fr}}.formula-adj-cell{text-align:right;padding-right:var(--space-3)}.formula-adj-badge{display:inline-block;font-size:var(--text-xs);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;padding:1px var(--space-2);border-radius:var(--radius-full, 100px);min-width:40px;text-align:center}.formula-adj-pos .formula-adj-badge{color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 12%,transparent)}.formula-adj-neg .formula-adj-badge{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 12%,transparent)}.difficulty-table .dialogue-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:var(--text-xs)}.low-dialogue-badge{color:var(--color-error);font-weight:var(--weight-bold)}.dialogue-threshold-bar{display:flex;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border-default);margin-top:var(--space-4)}.dialogue-threshold-segment{flex:1;padding:var(--space-3) var(--space-2);text-align:center;display:flex;flex-direction:column;gap:var(--space-1)}.dialogue-threshold-segment.dialogue-excluded{background:color-mix(in srgb,var(--color-error) 12%,transparent);color:var(--color-error);border-right:1px solid var(--color-border-default)}.dialogue-threshold-segment.dialogue-included{background:color-mix(in srgb,var(--color-success) 12%,transparent);color:var(--color-success)}.comp-pay-cell{text-align:right;font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold);color:var(--color-success);white-space:nowrap}.comp-pay-score-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.comp-breakdown{display:flex;gap:var(--space-3);padding:var(--space-2);flex-wrap:wrap}.comp-breakdown-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-md);flex:1;min-width:140px}.comp-breakdown-card-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-secondary)}.comp-breakdown-card-math{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.comp-breakdown-card-result{font-size:var(--text-sm);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.comp-breakdown-summary{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-4);background:color-mix(in srgb,var(--color-success) 8%,var(--color-bg-muted));border:1px solid color-mix(in srgb,var(--color-success) 25%,var(--color-border-default));border-radius:var(--radius-md);min-width:160px}.comp-breakdown-summary-label{font-size:var(--text-2xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.comp-breakdown-summary-value{font-size:var(--text-base);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-success)}.comp-breakdown-summary-sub{font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.comp-formula-block{background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.comp-formula-line{display:flex;align-items:baseline;gap:var(--space-3)}.comp-formula-label{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);min-width:80px;flex-shrink:0}.comp-formula-expr{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:var(--text-sm);color:var(--color-text-primary);background:var(--color-bg-elevated);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border-default);white-space:nowrap;overflow-x:auto}.comp-formula-line-arrow{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);padding-left:calc(80px + var(--space-3))}.comp-formula-line-arrow:before{content:"↓";font-size:var(--text-base);color:var(--color-accent)}.comp-comparison-grid{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.comp-comparison-row{display:grid;grid-template-columns:140px 1fr 1fr;gap:var(--space-3);align-items:center;padding:var(--space-2) 0}.comp-comparison-row-header{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding-bottom:var(--space-1);border-bottom:2px solid var(--color-border-default)}.comp-comparison-axis{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary)}.comp-comparison-bar-cell{display:flex;align-items:center;gap:var(--space-2)}.comp-comparison-bar-track{flex:1;height:8px;background:var(--color-bg-muted);border-radius:4px;overflow:hidden}.comp-comparison-bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.comp-comparison-bar-fill-difficulty{background:var(--color-text-muted)}.comp-comparison-bar-fill-pay{background:var(--color-accent)}.comp-comparison-bar-value{font-size:var(--text-xs);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);min-width:32px;text-align:right}.comp-comparison-bar-value-pay{color:var(--color-accent)}@media(max-width:600px){.comp-comparison-row{grid-template-columns:100px 1fr 1fr}}.comp-cap-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md)}.comp-cap-row:nth-child(odd){background:var(--color-bg-muted)}.comp-cap-level{min-width:110px}.comp-cap-amount{font-size:var(--text-base);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-success);min-width:72px}.comp-cap-bar-track{flex:1;height:8px;background:var(--color-bg-elevated);border-radius:4px;overflow:hidden}.comp-cap-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--color-success),color-mix(in srgb,var(--color-success) 60%,var(--color-accent)))}.comp-cap-note{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;margin-top:var(--space-4);line-height:1.5;padding:var(--space-3) var(--space-4);background:var(--color-bg-muted);border-radius:var(--radius-md);border-left:3px solid var(--color-accent)}.prog-table-wrap{margin-top:var(--space-3);overflow-x:auto}.prog-level-table{width:100%;table-layout:fixed}.prog-level-table th:not(:first-child),.prog-level-table td.prog-cat-cell{text-align:center}.prog-cat-cell{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-success)}.prog-def-table{width:100%}.prog-def-term{font-weight:var(--weight-bold);white-space:nowrap;width:120px}.prog-def-desc{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.5}.comp-examples-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}@media(max-width:900px){.comp-examples-grid{grid-template-columns:1fr}}.comp-example-card{background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.comp-example-title{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text-primary);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-default)}.comp-example-axes{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.comp-example-axis{display:flex;justify-content:space-between;align-items:center;padding:var(--space-1) var(--space-2);background:var(--color-bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--color-border-default)}.comp-example-axis-label{font-size:var(--text-2xs);font-weight:var(--weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.comp-example-axis-value{font-size:var(--text-sm);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.comp-example-steps{display:flex;flex-direction:column;gap:var(--space-1)}.comp-example-step{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);color:var(--color-text-secondary);padding:var(--space-0-5) 0}.comp-example-step-label{font-weight:var(--weight-medium)}.comp-example-step-value{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.comp-example-step-divider{height:1px;background:var(--color-border-default);margin:var(--space-1) 0}.comp-example-result{background:color-mix(in srgb,var(--color-success) 8%,var(--color-bg-elevated));border:1px solid color-mix(in srgb,var(--color-success) 30%,var(--color-border-default));border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);text-align:center}.comp-example-result-main{font-size:var(--text-lg);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-success)}.comp-example-result-sub{font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.comp-example-result-label{font-size:var(--text-2xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.book-search{position:relative;width:100%}.search-mode-toggle{display:flex;gap:0;margin-bottom:.5rem}.search-mode-toggle button{flex:1;padding:.4rem .75rem;background:var(--color-bg-muted);border:1px solid var(--color-border-default);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-normal)}.search-mode-toggle button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:none}.search-mode-toggle button:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.search-mode-toggle button.active{background:var(--color-bg-page);color:var(--color-text-primary);border-color:var(--color-accent)}.search-mode-toggle button:hover:not(.active){color:var(--color-text-primary)}.search-input-wrapper{position:relative}.search-input-wrapper input{width:100%;padding:.75rem 2.5rem .75rem 1rem;background:var(--color-bg-page);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-base);transition:border-color var(--transition-normal)}.search-input-wrapper input:focus{outline:none;border-color:var(--color-border-focus)}.search-input-wrapper input::placeholder{color:var(--color-text-dim)}.search-spinner{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);width:18px;height:18px;border:2px solid var(--color-border-default);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}.search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);max-height:min(70vh,800px);overflow-y:auto;z-index:1000;list-style:none;margin:0;padding:0;box-shadow:var(--shadow-md)}.search-dropdown li{padding:.75rem 1rem;cursor:pointer;display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;border-bottom:1px solid var(--color-bg-hover);transition:background var(--transition-fast)}.search-dropdown li:last-child{border-bottom:none}.search-dropdown li:hover{background:var(--color-bg-muted)}.result-title{color:var(--color-text-primary);font-weight:var(--weight-medium);flex:1;min-width:60%}.result-id{color:var(--color-text-dim);font-size:var(--text-sm);font-family:monospace}.result-author{color:var(--color-text-muted);font-size:var(--text-sm)}.result-year{color:var(--color-text-dim);font-size:var(--text-sm)}.result-count{color:var(--color-success);font-size:var(--text-sm);margin-left:auto}.result-badge{font-size:.7rem;padding:.15rem .5rem;border-radius:9999px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.result-badge-downloaded{background:#40c05726;color:#40c057;border:1px solid rgba(64,192,87,.3)}.search-no-results{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);padding:var(--space-4);color:var(--color-text-muted);text-align:center;font-size:var(--text-sm)}.download-container{display:flex;flex-wrap:wrap;gap:var(--space-8);padding:var(--space-6) var(--space-4);min-height:calc(100vh - var(--header-height))}.download-container>.admin-subtabs{flex-basis:100%;margin-bottom:0}.download-left-col,.download-right-col{flex:1;min-width:0}.download-search-section{padding:var(--space-4) var(--space-5);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);margin-bottom:var(--space-6)}.dl-section-header{display:flex;align-items:center;gap:var(--space-3)}.dl-section-icon{width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;background:var(--color-bg-hover);border-radius:var(--radius-md);font-size:var(--text-lg);flex-shrink:0}.dl-section-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.dl-section-count{margin-left:auto;font-size:var(--text-xs);color:var(--color-info);font-weight:var(--weight-medium)}.dl-section-description{color:var(--color-text-muted);font-size:var(--text-sm);margin:var(--space-2) 0 0 0}.download-search-wrapper{margin-top:var(--space-3)}.download-empty-detail{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:240px;color:var(--color-text-dim);font-size:var(--text-base);border:1px dashed var(--color-border-default);border-radius:var(--radius-xl);gap:var(--space-3)}.empty-detail-icon{font-size:2.5rem;opacity:.5}.empty-detail-heading{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.empty-detail-hint{font-size:var(--text-sm);color:var(--color-text-dim)}.download-status{padding:var(--space-4) var(--space-5);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg)}.detail-header{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-subtle);margin-bottom:var(--space-3)}.detail-book-title{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-primary);line-height:var(--leading-tight)}.detail-book-author{display:inline;font-size:var(--text-sm);color:var(--color-text-muted)}.detail-book-id{display:inline;margin-left:var(--space-2);font-size:var(--text-sm);font-family:var(--font-mono);color:var(--color-text-dim)}.detail-status-badge{margin-bottom:var(--space-3)}.detail-status-badge span{display:inline-block;padding:var(--space-0-5) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--color-bg-muted);color:var(--color-text-muted)}.detail-status-badge .download-status-ready{background:var(--color-success-light);color:var(--color-success)}.detail-status-badge .download-status-needs-chapters{background:var(--color-warning-light);color:var(--color-warning)}.pipeline-stepper{margin:var(--space-3) 0;padding:var(--space-3) 0}.pipeline-track{height:4px;background:var(--color-bg-active);border-radius:2px;margin-bottom:var(--space-2);overflow:hidden}.pipeline-track-fill{height:100%;background:var(--color-success);border-radius:2px;transition:width var(--transition-normal)}.pipeline-nodes{display:flex;justify-content:space-between}.pipeline-node{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.pipeline-dot{width:14px;height:14px;border-radius:50%;background:var(--color-bg-active);border:2px solid var(--color-bg-active);transition:all var(--transition-fast)}.pipeline-node.-done .pipeline-dot{background:var(--color-success);border-color:var(--color-success);box-shadow:0 0 6px var(--color-success-light)}.pipeline-node.-pending .pipeline-dot{background:var(--color-bg-muted);border-color:var(--color-border-default)}.pipeline-label{font-size:var(--text-xs);color:var(--color-text-dim)}.pipeline-node.-done .pipeline-label{color:var(--color-success);font-weight:var(--weight-medium)}.download-btn{margin-top:var(--space-4);padding:var(--space-3) var(--space-6);background:var(--color-accent);border:none;border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--transition-normal),transform var(--transition-fast)}.download-btn:hover:not(:disabled){background:var(--color-accent-hover);transform:translateY(-1px)}.download-btn:disabled{opacity:.5;cursor:not-allowed}.download-error{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-error-light);border:1px solid var(--color-accent);border-radius:var(--radius-sm);color:var(--color-accent-hover);font-size:var(--text-sm)}.download-success{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-success-light);border:1px solid var(--color-success);border-radius:var(--radius-sm);color:var(--color-success);font-size:var(--text-sm)}.download-author-books{padding:var(--space-4) var(--space-5);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg)}.author-books-list{list-style:none;margin:var(--space-3) 0 0 0;padding:0;max-height:calc(100vh - var(--header-height) - 300px);overflow-y:auto}.author-books-list li{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:var(--radius-md);border-left:3px solid transparent;transition:background var(--transition-fast),border-color var(--transition-fast)}.author-books-list li:hover{background:var(--color-bg-hover);border-left-color:var(--color-accent)}.author-books-list li.selected{background:var(--color-error-light);border-left-color:var(--color-accent)}.author-books-section-header{padding:var(--space-2) var(--space-3);background:var(--color-bg-elevated);font-weight:var(--weight-bold);font-size:var(--text-sm);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border-default);border-left-color:transparent;cursor:default}.author-books-section-header:hover{background:var(--color-bg-elevated);border-left-color:transparent}.author-books-section-header.in-library{color:var(--color-success)}.author-books-section-header.all-books{color:var(--color-info)}.author-books-list li.edition-available{opacity:.45}.author-books-list li.edition-available:hover{opacity:.7}.author-book-title{color:var(--color-text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.author-book-id{color:var(--color-text-dim);font-family:var(--font-mono);font-size:var(--text-sm);flex-shrink:0}.author-book-year{color:var(--color-text-muted);font-size:var(--text-sm);flex-shrink:0}.download-btn-secondary{background:var(--color-bg-muted);border:1px solid var(--color-border-default);color:var(--color-text-primary)}.download-btn-secondary:hover:not(:disabled){background:var(--color-bg-hover)}.unmapped-author-info{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-sm);color:var(--color-warning);font-size:var(--text-sm);line-height:1.5}.unmapped-author-info code{background:var(--color-selection-bg);padding:var(--space-0-5) var(--space-1);border-radius:3px;font-size:var(--text-sm);color:var(--color-text-primary)}.create-author-form{margin-top:.25rem}.create-author-fields{display:flex;gap:var(--space-3);align-items:flex-end;user-select:none}.create-author-field{display:flex;flex-direction:column;flex:1;user-select:none}.create-author-field label{font-size:var(--text-xs);color:var(--color-warning);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.5px}.create-author-field-year{flex:0 0 5rem}.create-author-input{padding:var(--space-1) var(--space-2);background:var(--color-selection-bg);border:1px solid var(--color-warning);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm);font-family:var(--font-mono);user-select:text}.create-author-input:focus{outline:none;border-color:var(--color-warning)}.create-author-preview{margin-top:.5rem;font-size:var(--text-sm);color:var(--color-text-muted)}.create-author-preview code{color:var(--color-warning)}.create-author-hint{margin-top:.35rem;font-size:var(--text-xs);color:var(--color-text-dim)}.result-id{margin-left:.5rem}.unmapped-author-intro{margin-bottom:.75rem}.create-author-form .download-btn{margin-top:.5rem}.download-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.download-in-library{margin-top:.75rem;padding:var(--space-2) var(--space-3);background:var(--color-success-light);border:1px solid var(--color-success);border-radius:var(--radius-sm);color:var(--color-pipeline-done);font-size:var(--text-sm)}.download-preview-label{margin-top:.75rem}.download-preview{margin-top:0}.preview-text{margin-top:var(--space-2);padding:var(--space-4);background:var(--color-bg-page);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);max-height:400px;overflow-y:auto;white-space:pre-wrap;word-wrap:break-word;font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6}.download-recommendations{margin-top:var(--space-6);padding:var(--space-4) var(--space-5);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg)}.rec-difficulty-picker{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.rec-tier-btn{padding:var(--space-1) var(--space-3);background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-full);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.rec-tier-btn:hover{background:var(--color-bg-hover)}.rec-tier-btn[data-tier=foundation].active{background:var(--color-foundation-light);border-color:var(--color-foundation);color:var(--color-foundation)}.rec-tier-btn[data-tier=elementary].active{background:var(--color-elementary-light);border-color:var(--color-elementary);color:var(--color-elementary)}.rec-tier-btn[data-tier=intermediate].active{background:var(--color-intermediate-light);border-color:var(--color-intermediate);color:var(--color-intermediate)}.rec-tier-btn[data-tier=advanced].active{background:var(--color-advanced-light);border-color:var(--color-advanced);color:var(--color-advanced)}.rec-tier-btn[data-tier=expert].active{background:var(--color-expert-light);border-color:var(--color-expert);color:var(--color-expert)}.rec-tier-btn[data-tier=mastery].active{background:var(--color-mastery-light);border-color:var(--color-mastery);color:var(--color-mastery)}.rec-count{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted)}.rec-book-list{list-style:none;margin:var(--space-2) 0 0 0;padding:0;max-height:calc(100vh - var(--header-height) - 450px);overflow-y:auto}.rec-book-list li{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:var(--radius-md);border-left:3px solid transparent;transition:background var(--transition-fast),border-color var(--transition-fast)}.rec-book-list li:hover{background:var(--color-bg-hover);border-left-color:var(--color-accent)}.rec-book-list li.selected{background:var(--color-error-light);border-left-color:var(--color-accent)}.rec-book-title{color:var(--color-text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rec-book-author{color:var(--color-text-muted);font-size:var(--text-sm);flex-shrink:0;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rec-book-words{color:var(--color-text-dim);font-size:var(--text-sm);font-family:var(--font-mono);flex-shrink:0}.rec-book-id{color:var(--color-text-dim);font-family:var(--font-mono);font-size:var(--text-sm);flex-shrink:0}.rec-pagination{display:flex;gap:var(--space-3);margin-top:var(--space-3)}.rec-page-btn{padding:var(--space-1) var(--space-3);background:var(--color-bg-muted);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.rec-page-btn:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-strong)}.rec-page-btn:disabled{opacity:.4;cursor:not-allowed}.rec-loading,.rec-empty{margin-top:var(--space-3);color:var(--color-text-dim);font-size:var(--text-sm)}.rec-filter-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;margin-top:var(--space-3)}.rec-filter-toggle input[type=checkbox]{cursor:pointer}.rec-filter-toggle .filter-count-badge{font-size:var(--text-xs);color:var(--color-text-muted)}.rec-book-list li.low-dialogue{opacity:.45}.timesheet-page{padding:var(--space-4) var(--space-8)}.timesheet-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:2px solid var(--color-border-default)}.timesheet-tabs button{padding:var(--space-2) var(--space-5);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-sm)}.timesheet-tabs button:hover{color:var(--color-text-secondary)}.timesheet-tabs button.active{color:var(--color-text-primary);border-bottom-color:var(--color-info);font-weight:var(--weight-medium)}.hours-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:10px;font-size:var(--text-xs);font-weight:var(--weight-medium)}.hours-badge-draft{background:#88888826;color:var(--color-text-muted)}.hours-badge-submitted{background:#9b59b626;color:#b388ff}.hours-badge-approved{background:var(--color-success-light);color:var(--color-success)}.hours-badge-rejected{background:var(--color-error-light);color:var(--color-error)}.timesheet-summary{display:flex;justify-content:space-between;padding:var(--space-3) var(--space-8);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-default);position:sticky;top:var(--header-height);z-index:150;margin:0 -2rem 1rem}.timesheet-summary-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.timesheet-summary-label{font-size:var(--text-2xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.timesheet-summary-value{font-size:var(--text-lg);font-weight:var(--weight-semibold)}.timesheet-user-data-row td{vertical-align:middle}.timesheet-date-cell{font-size:var(--text-sm);white-space:nowrap;color:var(--color-text-secondary)}.timesheet-book-cell{display:flex;flex-direction:column;gap:var(--space-0-5)}.timesheet-book-title{font-weight:var(--weight-medium)}.timesheet-book-author{font-size:var(--text-xs);color:var(--color-text-muted)}.timesheet-rejection-note{font-size:var(--text-xs);color:var(--color-error);margin-top:.2rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timesheet-submit-btn{color:var(--color-info);border-color:var(--color-info)}.timesheet-submit-btn:hover{background:var(--color-info-light)}.admin-btn-sm.approve{color:var(--color-success);border-color:var(--color-success)}.admin-btn-sm.approve:hover{background:var(--color-success-light)}.ts-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:8px}.ts-toolbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default);position:sticky;top:calc(var(--header-height) + 37px);z-index:50;background:var(--color-bg-elevated);border-radius:8px 8px 0 0}.ts-filter-group{display:flex;align-items:center;gap:var(--space-1)}.ts-filter-label{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);white-space:nowrap}.ts-filter{padding:var(--space-1) var(--space-2);background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-xs);font-family:var(--font-ui);cursor:pointer}.ts-filter:focus{outline:none;border-color:var(--color-border-focus)}.ts-count{margin-left:auto;font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.ts-table-wrap{overflow-x:auto}.ts-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ts-table th{text-align:left;padding:var(--space-2) var(--space-3);font-weight:var(--weight-semibold);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-default);background:var(--color-bg-muted)}.ts-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default);vertical-align:middle}.ts-table tbody tr:nth-child(2n){background:var(--color-bg-muted)}.ts-table tbody tr:nth-child(2n):hover{background:var(--color-bg-hover)}.ts-table tbody tr:hover{background:var(--color-bg-hover)}.ts-cell-user{white-space:nowrap;font-weight:var(--weight-medium)}.ts-cell-book{display:flex;flex-direction:column;gap:var(--space-0-5)}.ts-cell-book-title{font-weight:var(--weight-medium)}.ts-cell-book-author{font-size:var(--text-xs);color:var(--color-text-muted)}.ts-cell-num{white-space:nowrap;color:var(--color-text-secondary)}.aiu-summary{display:flex;gap:var(--space-4);margin-bottom:1.5rem;flex-wrap:wrap}.aiu-summary-card{flex:1;min-width:150px;background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:8px;padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;align-items:center;gap:var(--space-1);box-shadow:0 1px 3px #0000004d}.aiu-summary-icon{font-size:var(--text-lg)}.aiu-summary-value{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text-primary)}.aiu-summary-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.aiu-budget-bar{width:100%;height:4px;background:var(--color-bg-muted);border-radius:2px;margin-top:.5rem;overflow:hidden}.aiu-budget-fill{height:100%;border-radius:2px;transition:width .3s ease}.aiu-budget-ok .aiu-budget-fill{background:var(--color-success)}.aiu-budget-ok .aiu-summary-value{color:var(--color-success)}.aiu-budget-warn .aiu-budget-fill{background:var(--color-warning)}.aiu-budget-warn .aiu-summary-value{color:var(--color-warning)}.aiu-budget-danger .aiu-budget-fill{background:var(--color-error)}.aiu-budget-danger .aiu-summary-value{color:var(--color-error)}.aiu-panel{margin-top:1rem}.aiu-table-wrap{overflow-x:auto}.aiu-table{white-space:nowrap}.aiu-table tbody tr:nth-child(2n){background:#ffffff05}.aiu-table tbody tr:hover{background:var(--color-bg-hover)}.aiu-col-highlight{background:#ffffff08}.aiu-cost-low{color:var(--color-success)}.aiu-cost-mid{color:var(--color-warning)}.aiu-cost-high{color:var(--color-error)}.aiu-cache-bar{position:relative;width:80px;height:20px;background:var(--color-bg-muted);border-radius:3px;overflow:hidden}.aiu-cache-fill{position:absolute;top:0;left:0;height:100%;border-radius:3px;transition:width .3s ease}.aiu-cache-text{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100%;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-primary);text-shadow:0 0 3px rgba(0,0,0,.6)}.aiu-cache-good .aiu-cache-fill{background:color-mix(in srgb,var(--color-success) 40%,transparent)}.aiu-cache-mid .aiu-cache-fill{background:color-mix(in srgb,var(--color-warning) 40%,transparent)}.aiu-cache-low .aiu-cache-fill{background:color-mix(in srgb,var(--color-error) 40%,transparent)}.aiu-cap-bar{position:relative;width:100px;height:20px;background:var(--color-bg-muted);border-radius:3px;overflow:hidden;cursor:help}.aiu-cap-fill{position:absolute;top:0;left:0;height:100%;border-radius:3px;transition:width .3s ease}.aiu-cap-text{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100%;font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-primary);text-shadow:0 0 3px rgba(0,0,0,.6)}.aiu-cap-ok .aiu-cap-fill{background:color-mix(in srgb,var(--color-success) 40%,transparent)}.aiu-cap-warn .aiu-cap-fill{background:color-mix(in srgb,var(--color-warning) 40%,transparent)}.aiu-cap-danger .aiu-cap-fill{background:color-mix(in srgb,var(--color-error) 40%,transparent)}.aiu-badge{display:inline-block;padding:var(--space-1) var(--space-2);background:var(--color-info-light);color:var(--color-info);border-radius:10px;font-size:var(--text-xs);font-weight:var(--weight-semibold)}.aiu-cell-user{font-weight:var(--weight-semibold);color:var(--color-text-primary)}.aiu-time-ago{color:var(--color-text-muted);cursor:help;font-size:var(--text-sm)}.aiu-muted{color:var(--color-text-dim)}@media(max-width:900px){.aiu-summary{gap:var(--space-2)}.aiu-summary-card{min-width:120px;padding:var(--space-3)}.aiu-summary-value{font-size:var(--text-lg)}}.anim-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.anim-preview-card{display:flex;flex-direction:column;background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-normal)}.anim-preview-card:hover{border-color:var(--color-border-strong);background:var(--color-bg-muted)}.anim-preview-card-header{margin-bottom:.75rem}.anim-preview-card-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.anim-preview-card-description{color:var(--color-text-muted);font-size:var(--text-base);line-height:var(--leading-normal);margin:0 0 var(--space-3) 0;flex:1}.anim-preview-card-tags{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-4)}.anim-preview-tag{display:inline-block;background:var(--color-bg-hover);color:var(--color-text-dim);font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-full)}.anim-preview-card-btn{align-self:flex-start;background:var(--color-accent);color:var(--color-text-on-accent);border:none;border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:opacity var(--transition-fast)}.anim-preview-card-btn:hover{opacity:.85}.anim-preview-overlay{position:fixed;inset:0;z-index:9999;background:#000000d9;display:flex;align-items:center;justify-content:center;cursor:pointer}.anim-preview-iframe{width:90vw;height:90vh;border:none;border-radius:var(--radius-lg);cursor:default}@media(max-width:900px){.anim-preview-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.anim-preview-grid{grid-template-columns:1fr}.anim-preview-iframe{width:100vw;height:100vh;border-radius:0}}.discussion-page{max-width:800px;margin:0 auto;padding:var(--space-6) var(--space-4)}.discussion-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.discussion-pills{display:flex;gap:var(--space-2);flex-wrap:wrap}.discussion-pill{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border-default);background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.discussion-pill:hover{border-color:var(--color-text-muted);color:var(--color-text-primary)}.discussion-pill.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.discussion-category-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em}.discussion-thread-card{display:flex;gap:var(--space-3);padding:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-normal),box-shadow var(--transition-normal);margin-bottom:var(--space-3)}.discussion-thread-card:hover{background:var(--color-bg-hover);box-shadow:var(--shadow-sm)}.discussion-thread-card-vote{flex-shrink:0}.discussion-thread-card-body{flex:1;min-width:0}.discussion-thread-card-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.discussion-thread-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.discussion-thread-preview{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-2);line-height:1.4}.discussion-thread-meta{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}.discussion-thread-author{display:flex;align-items:center;gap:var(--space-1)}.discussion-vote-buttons{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.discussion-vote-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-sm);padding:var(--space-0-5) var(--space-1);line-height:1;transition:color var(--transition-fast)}.discussion-vote-btn:hover{color:var(--color-text-primary)}.discussion-vote-btn.active{color:var(--color-accent)}.discussion-vote-score{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-secondary)}.discussion-detail-card{display:flex;gap:var(--space-4);padding:var(--space-6);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);margin-bottom:var(--space-6)}.discussion-detail-vote{flex-shrink:0}.discussion-detail-body{flex:1;min-width:0}.discussion-detail-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.discussion-detail-title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text-primary);margin:0}.discussion-detail-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-4)}.discussion-detail-time{color:var(--color-text-muted)}.discussion-detail-edited,.discussion-reply-edited{font-style:italic;color:var(--color-text-muted)}.discussion-detail-content{font-size:var(--text-base);color:var(--color-text-primary);line-height:1.6;white-space:pre-wrap;word-break:break-word}.discussion-detail-actions{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.discussion-replies-header{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-4)}.discussion-reply{display:flex;gap:var(--space-3);padding:var(--space-4);border-left:3px solid var(--color-border-default);margin-bottom:var(--space-3)}.discussion-reply-vote{flex-shrink:0}.discussion-reply-body{flex:1;min-width:0}.discussion-reply-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-2)}.discussion-reply-time{color:var(--color-text-muted)}.discussion-reply-content{font-size:var(--text-base);color:var(--color-text-primary);line-height:1.5;white-space:pre-wrap;word-break:break-word}.discussion-reply-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.discussion-reply-edit{display:flex;flex-direction:column;gap:var(--space-2)}.discussion-reply-edit-actions{display:flex;gap:var(--space-2)}.discussion-reply-form{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.discussion-reply-textarea,.discussion-edit-content,.discussion-form-textarea{width:100%;padding:var(--space-3);background:var(--color-bg-page);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-base);font-family:inherit;resize:vertical;box-sizing:border-box}.discussion-reply-textarea:focus,.discussion-edit-content:focus,.discussion-form-textarea:focus,.discussion-form-input:focus,.discussion-form-select:focus,.discussion-edit-title:focus{outline:none;border-color:var(--color-accent)}.discussion-new-form{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6)}.discussion-new-form-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-4)}.discussion-form-field{margin-bottom:var(--space-4)}.discussion-form-label{display:block;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.discussion-form-select,.discussion-form-input,.discussion-edit-title{width:100%;padding:var(--space-2) var(--space-3);background:var(--color-bg-page);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-base);font-family:inherit;box-sizing:border-box}.discussion-form-input-wrapper{position:relative}.discussion-char-count{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);font-size:var(--text-xs);color:var(--color-text-muted)}.discussion-form-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.discussion-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border-default);background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.discussion-btn:hover:not(:disabled){border-color:var(--color-text-muted);color:var(--color-text-primary)}.discussion-btn:disabled{opacity:.5;cursor:not-allowed}.discussion-btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.discussion-btn-primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:#fff}.discussion-btn-danger{border-color:var(--color-error);color:var(--color-error)}.discussion-btn-danger:hover:not(:disabled){background:var(--color-error);color:#fff}.discussion-btn-link{background:none;border:none;padding:0;font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast)}.discussion-btn-link:hover{color:var(--color-text-primary)}.discussion-btn-danger-link:hover{color:var(--color-error)}.discussion-back-link{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--color-text-muted);text-decoration:none;font-size:var(--text-sm);margin-bottom:var(--space-4);cursor:pointer;background:none;border:none;padding:0;transition:color var(--transition-fast)}.discussion-back-link:hover{color:var(--color-text-primary)}.discussion-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-6)}.discussion-pagination-info{font-size:var(--text-sm);color:var(--color-text-muted)}.discussion-empty,.discussion-loading{text-align:center;padding:var(--space-12) var(--space-4);color:var(--color-text-muted);font-size:var(--text-base)}.discussion-error{padding:var(--space-3) var(--space-4);background:var(--color-error-light);border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--text-sm);margin-bottom:var(--space-4)}@media(max-width:600px){.discussion-page{padding:var(--space-4) var(--space-3)}.discussion-header{flex-direction:column;align-items:stretch}.discussion-pills{flex-wrap:wrap}.discussion-thread-card{padding:var(--space-3)}.discussion-detail-card{padding:var(--space-4);flex-direction:column}.discussion-detail-vote,.discussion-detail-vote .discussion-vote-buttons{flex-direction:row}.discussion-thread-card-header{flex-wrap:wrap}.discussion-thread-title{white-space:normal}}.tutorials-page{max-width:var(--max-width-page);margin:0 auto;padding:var(--space-6) var(--space-4)}.tutorials-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}.tutorial-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-xl);overflow:hidden;transition:box-shadow var(--transition-normal),border-color var(--transition-normal)}.tutorial-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.tutorial-card-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-3)}.tutorial-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-text-on-color);font-size:var(--text-sm);font-weight:var(--weight-bold);flex-shrink:0}.tutorial-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0;flex:1;min-width:0}.tutorial-duration{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-bg-muted);padding:var(--space-0-5) var(--space-2);border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.tutorial-video-wrapper{position:relative;width:100%;aspect-ratio:16 / 9;background:#000}.tutorial-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.tutorial-card-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-4)}.tutorial-description{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0;flex:1}.tutorial-download{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);font-size:var(--text-xs);text-decoration:none;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all var(--transition-fast)}.tutorial-download:hover{border-color:var(--color-accent);color:var(--color-accent);text-decoration:none}@media(max-width:500px){.tutorials-grid{grid-template-columns:1fr}.tutorials-page{padding:var(--space-4) var(--space-3)}.tutorial-card-footer{flex-direction:column;gap:var(--space-2)}}
