:root{--fs-9: .5625rem;--fs-10: .625rem;--fs-11: .6875rem;--fs-12: .75rem;--fs-13: .8125rem;--fs-14: .875rem;--fs-15: .9375rem;--fs-16: 1rem;--fs-18: 1.125rem;--fs-20: 1.25rem;--fs-24: 1.5rem;--fs-28: 1.75rem;--fs-36: 2.25rem;--fs-80: 5rem;--fs-120: 7.5rem;--fw-light: 300;--fw-regular: 400;--fw-medium: 450;--fw-semibold: 500;--fw-bold: 600;--fw-extrabold: 700;--fw-black: 800;color-scheme:light;--select-popup-bg-rgb: 255 255 255;--select-popup-bg: rgb(var(--select-popup-bg-rgb));--bg-rgb: 244 247 250;--bg: rgb(var(--bg-rgb));--view-bg-rgb: 244 247 250;--view-bg: rgb(var(--view-bg-rgb));--panel-rgb: 255 255 255;--panel: rgb(var(--panel-rgb));--card-rgb: 255 255 255;--card: rgb(var(--card-rgb));--muted-rgb: 238 242 247;--muted: rgb(var(--muted-rgb));--input-bg-rgb: 249 250 251;--input-bg: rgb(var(--input-bg-rgb));--surface-hover-rgb: 241 245 249;--surface-hover: rgb(var(--surface-hover-rgb));--surface-active-rgb: 232 240 254;--surface-active: rgb(var(--surface-active-rgb));--surface-info-rgb: 237 245 255;--surface-info: rgb(var(--surface-info-rgb));--drag-highlight-rgb: 224 242 254;--drag-highlight: rgb(var(--drag-highlight-rgb));--surface-alt-rgb: 253 253 253;--surface-alt: rgb(var(--surface-alt-rgb));--ink-rgb: 45 55 72;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 15 23 42;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 90 102 120;--sub: rgb(var(--sub-rgb));--text-tertiary-rgb: 100 116 139;--text-tertiary: rgb(var(--text-tertiary-rgb));--text-muted-rgb: 138 149 165;--text-muted: rgb(var(--text-muted-rgb));--brand-rgb: 66 153 225;--brand: rgb(var(--brand-rgb));--brand-2-rgb: 56 178 172;--brand-2: rgb(var(--brand-2-rgb));--accent-rgb: 59 130 246;--accent: rgb(var(--accent-rgb));--accent-dark-rgb: 43 108 176;--accent-dark: rgb(var(--accent-dark-rgb));--accent-subtle: rgba(59, 130, 246, .1);--purple-rgb: 139 92 246;--purple: rgb(var(--purple-rgb));--cyan-rgb: 6 182 212;--cyan: rgb(var(--cyan-rgb));--warn-rgb: 246 173 85;--warn: rgb(var(--warn-rgb));--danger-rgb: 245 101 101;--danger: rgb(var(--danger-rgb));--ok-rgb: 72 187 120;--ok: rgb(var(--ok-rgb));--grid-rgb: 226 232 240;--grid: rgb(var(--grid-rgb));--border-strong-rgb: 203 213 224;--border-strong: rgb(var(--border-strong-rgb));--shadow: 0 4px 12px rgba(0, 0, 0, .08);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--overlay: rgba(8, 12, 22, .55);--radius: 12px;--status-todo-bg-rgb: 241 245 249;--status-todo-bg: rgb(var(--status-todo-bg-rgb));--status-todo-ink-rgb: 71 85 105;--status-todo-ink: rgb(var(--status-todo-ink-rgb));--status-today-bg-rgb: 254 243 199;--status-today-bg: rgb(var(--status-today-bg-rgb));--status-today-ink-rgb: 146 64 14;--status-today-ink: rgb(var(--status-today-ink-rgb));--status-in-progress-bg-rgb: 219 234 254;--status-in-progress-bg: rgb(var(--status-in-progress-bg-rgb));--status-in-progress-ink-rgb: 29 78 216;--status-in-progress-ink: rgb(var(--status-in-progress-ink-rgb));--status-done-bg-rgb: 209 250 229;--status-done-bg: rgb(var(--status-done-bg-rgb));--status-done-ink-rgb: 22 101 52;--status-done-ink: rgb(var(--status-done-ink-rgb));--badge-success-bg-rgb: 209 250 229;--badge-success-bg: rgb(var(--badge-success-bg-rgb));--badge-success-ink-rgb: 39 103 73;--badge-success-ink: rgb(var(--badge-success-ink-rgb));--badge-success-border-rgb: 154 230 180;--badge-success-border: rgb(var(--badge-success-border-rgb));--badge-danger-bg-rgb: 254 226 226;--badge-danger-bg: rgb(var(--badge-danger-bg-rgb));--badge-danger-ink-rgb: 153 27 27;--badge-danger-ink: rgb(var(--badge-danger-ink-rgb));--badge-warning-bg-rgb: 254 235 200;--badge-warning-bg: rgb(var(--badge-warning-bg-rgb));--badge-warning-ink-rgb: 156 66 33;--badge-warning-ink: rgb(var(--badge-warning-ink-rgb));--badge-info-bg-rgb: 190 227 248;--badge-info-bg: rgb(var(--badge-info-bg-rgb));--badge-info-ink-rgb: 42 105 172;--badge-info-ink: rgb(var(--badge-info-ink-rgb));--badge-purple-bg-rgb: 243 232 255;--badge-purple-bg: rgb(var(--badge-purple-bg-rgb));--badge-purple-ink-rgb: 124 58 237;--badge-purple-ink: rgb(var(--badge-purple-ink-rgb));--badge-yellow-bg-rgb: 254 252 232;--badge-yellow-bg: rgb(var(--badge-yellow-bg-rgb));--badge-yellow-ink-rgb: 217 119 6;--badge-yellow-ink: rgb(var(--badge-yellow-ink-rgb));--hover-overlay: rgba(0, 0, 0, .05);--active-overlay: rgba(0, 0, 0, .08);--focus-ring: rgba(59, 130, 246, .4);--surface-tinted: color-mix(in srgb, var(--panel) 95%, var(--ink) 5%);--brand-tint-8: color-mix(in srgb, var(--brand) 8%, transparent);--brand-tint-12: color-mix(in srgb, var(--brand) 12%, transparent);--brand-tint-15: color-mix(in srgb, var(--brand) 15%, transparent);--ease-fast: .15s ease;--ease-normal: .2s ease;--text-rgb: var(--ink-rgb);--text: var(--ink);--fg-rgb: var(--ink-rgb);--fg: var(--ink);--border-rgb: var(--grid-rgb);--border: var(--grid);--border-light-rgb: var(--grid-rgb);--border-light: var(--grid);--card-bg-rgb: var(--card-rgb);--card-bg: var(--card);--bg-card-rgb: var(--card-rgb);--bg-card: var(--card);--bg-panel-rgb: var(--panel-rgb);--bg-panel: var(--panel);--surface-rgb: var(--panel-rgb);--surface: var(--panel);--modal-bg-rgb: var(--panel-rgb);--modal-bg: var(--panel);--hover-rgb: var(--surface-hover-rgb);--hover: var(--surface-hover);--hover-bg-rgb: var(--surface-hover-rgb);--hover-bg: var(--surface-hover);--selected-light-rgb: var(--surface-active-rgb);--selected-light: var(--surface-active);--success-rgb: var(--ok-rgb);--success: var(--ok);--good-rgb: var(--ok-rgb);--good: var(--ok);--green-rgb: var(--ok-rgb);--green: var(--ok);--err-rgb: var(--danger-rgb);--err: var(--danger);--warning-rgb: var(--warn-rgb);--warning: var(--warn);--warning-bg-rgb: var(--badge-warning-bg-rgb);--warning-bg: var(--badge-warning-bg);--app-backdrop: none;--surface-material: none;--card-radius: 12px;--card-shadow: var(--shadow);--font-stack: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, Arial}[data-theme=dark]{color-scheme:dark;--select-popup-bg-rgb: 17 19 28;--select-popup-bg: rgb(var(--select-popup-bg-rgb));--bg-rgb: 11 13 18;--bg: rgb(var(--bg-rgb));--view-bg-rgb: 15 17 23;--view-bg: rgb(var(--view-bg-rgb));--panel-rgb: 17 19 28;--panel: rgb(var(--panel-rgb));--card-rgb: 19 21 32;--card: rgb(var(--card-rgb));--muted-rgb: 28 32 48;--muted: rgb(var(--muted-rgb));--input-bg-rgb: var(--view-bg-rgb);--input-bg: var(--view-bg);--surface-hover-rgb: 33 37 54;--surface-hover: rgb(var(--surface-hover-rgb));--surface-active-rgb: 30 58 95;--surface-active: rgb(var(--surface-active-rgb));--surface-info-rgb: 23 33 53;--surface-info: rgb(var(--surface-info-rgb));--drag-highlight-rgb: 30 58 95;--drag-highlight: rgb(var(--drag-highlight-rgb));--surface-alt-rgb: 30 33 48;--surface-alt: rgb(var(--surface-alt-rgb));--ink-rgb: 226 232 240;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 241 245 249;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 203 213 225;--sub: rgb(var(--sub-rgb));--text-tertiary-rgb: 139 149 165;--text-tertiary: rgb(var(--text-tertiary-rgb));--text-muted-rgb: 100 116 139;--text-muted: rgb(var(--text-muted-rgb));--brand-rgb: 96 165 250;--brand: rgb(var(--brand-rgb));--brand-2-rgb: 94 234 212;--brand-2: rgb(var(--brand-2-rgb));--accent-rgb: 96 165 250;--accent: rgb(var(--accent-rgb));--accent-dark-rgb: 147 187 252;--accent-dark: rgb(var(--accent-dark-rgb));--accent-subtle: rgba(96, 165, 250, .15);--purple-rgb: 167 139 250;--purple: rgb(var(--purple-rgb));--cyan-rgb: 34 211 238;--cyan: rgb(var(--cyan-rgb));--warn-rgb: 251 191 36;--warn: rgb(var(--warn-rgb));--danger-rgb: 248 113 113;--danger: rgb(var(--danger-rgb));--ok-rgb: 74 222 128;--ok: rgb(var(--ok-rgb));--grid-rgb: 33 37 54;--grid: rgb(var(--grid-rgb));--border-strong-rgb: 42 47 66;--border-strong: rgb(var(--border-strong-rgb));--shadow: 0 4px 12px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--overlay: rgba(0, 0, 0, .7);--status-todo-bg-rgb: 148 163 184;--status-todo-bg: rgba(148, 163, 184, .12);--status-todo-ink-rgb: 203 213 225;--status-todo-ink: rgb(var(--status-todo-ink-rgb));--status-today-bg-rgb: 251 191 36;--status-today-bg: rgba(251, 191, 36, .15);--status-today-ink-rgb: 251 191 36;--status-today-ink: rgb(var(--status-today-ink-rgb));--status-in-progress-bg-rgb: 96 165 250;--status-in-progress-bg: rgba(96, 165, 250, .18);--status-in-progress-ink-rgb: 96 165 250;--status-in-progress-ink: rgb(var(--status-in-progress-ink-rgb));--status-done-bg-rgb: 74 222 128;--status-done-bg: rgba(74, 222, 128, .12);--status-done-ink-rgb: 74 222 128;--status-done-ink: rgb(var(--status-done-ink-rgb));--badge-success-bg-rgb: 5 46 22;--badge-success-bg: rgb(var(--badge-success-bg-rgb));--badge-success-ink-rgb: 74 222 128;--badge-success-ink: rgb(var(--badge-success-ink-rgb));--badge-success-border-rgb: 22 101 52;--badge-success-border: rgb(var(--badge-success-border-rgb));--badge-danger-bg-rgb: 69 10 10;--badge-danger-bg: rgb(var(--badge-danger-bg-rgb));--badge-danger-ink-rgb: 252 165 165;--badge-danger-ink: rgb(var(--badge-danger-ink-rgb));--badge-warning-bg-rgb: 66 32 6;--badge-warning-bg: rgb(var(--badge-warning-bg-rgb));--badge-warning-ink-rgb: 251 191 36;--badge-warning-ink: rgb(var(--badge-warning-ink-rgb));--badge-info-bg-rgb: 23 37 84;--badge-info-bg: rgb(var(--badge-info-bg-rgb));--badge-info-ink-rgb: 96 165 250;--badge-info-ink: rgb(var(--badge-info-ink-rgb));--badge-purple-bg-rgb: 46 16 101;--badge-purple-bg: rgb(var(--badge-purple-bg-rgb));--badge-purple-ink-rgb: 196 181 253;--badge-purple-ink: rgb(var(--badge-purple-ink-rgb));--badge-yellow-bg-rgb: 66 32 6;--badge-yellow-bg: rgb(var(--badge-yellow-bg-rgb));--badge-yellow-ink-rgb: 251 191 36;--badge-yellow-ink: rgb(var(--badge-yellow-ink-rgb));--hover-overlay: rgba(255, 255, 255, .05);--active-overlay: rgba(255, 255, 255, .08);--focus-ring: rgba(96, 165, 250, .4)}:root[data-skin=macos]{--app-backdrop: radial-gradient(ellipse 1320px 1000px at 94% 98%, rgba(255, 166, 84, .3), rgba(255, 166, 84, .1) 42%, transparent 70%), linear-gradient(135deg, #f6f7f9 0%, #e3e5ea 55%, #d2d5db 100%);--surface-material: blur(18px) saturate(1.5);--view-bg: transparent;--bg-rgb: 232 234 238;--bg: rgb(var(--bg-rgb));--panel-rgb: 255 255 255;--panel: rgba(255, 255, 255, .68);--card-rgb: 255 255 255;--card: rgba(255, 255, 255, .78);--muted-rgb: 255 255 255;--muted: rgba(255, 255, 255, .45);--input-bg-rgb: 255 255 255;--input-bg: rgba(255, 255, 255, .55);--grid-rgb: 30 41 59;--grid: rgba(30, 41, 59, .14);--border-strong-rgb: 30 41 59;--border-strong: rgba(30, 41, 59, .25);--card-radius: 14px;--card-shadow: 0 8px 24px rgba(15, 23, 42, .18);--shadow: 0 8px 24px rgba(15, 23, 42, .18)}:root[data-theme=dark][data-skin=macos]{--app-backdrop: radial-gradient(ellipse 1320px 1000px at 94% 98%, rgba(255, 150, 60, .18), rgba(255, 150, 60, .06) 42%, transparent 70%), linear-gradient(135deg, #0b0c0f 0%, #16171b 50%, #212227 100%);--bg-rgb: 20 21 25;--bg: rgb(var(--bg-rgb));--panel-rgb: 21 22 27;--panel: rgba(21, 22, 27, .62);--card-rgb: 42 44 50;--card: rgba(42, 44, 50, .9);--ink-rgb: 242 244 249;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 255 255 255;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 217 222 232;--sub: rgb(var(--sub-rgb));--text-tertiary-rgb: 182 189 204;--text-tertiary: rgb(var(--text-tertiary-rgb));--text-muted-rgb: 150 160 178;--text-muted: rgb(var(--text-muted-rgb));--muted-rgb: 255 255 255;--muted: rgba(255, 255, 255, .07);--input-bg-rgb: 14 15 18;--input-bg: rgba(14, 15, 18, .55);--grid-rgb: 255 255 255;--grid: rgba(255, 255, 255, .1);--border-strong-rgb: 255 255 255;--border-strong: rgba(255, 255, 255, .18);--card-shadow: 0 8px 28px rgba(0, 0, 0, .45);--shadow: 0 8px 28px rgba(0, 0, 0, .45)}:root[data-skin=paper]{--app-backdrop: radial-gradient(rgba(120, 100, 60, .045) 1px, transparent 1px), radial-gradient(ellipse 900px 640px at 18% 12%, rgba(140, 118, 72, .055), transparent 62%), radial-gradient(ellipse 760px 540px at 82% 88%, rgba(140, 118, 72, .045), transparent 60%), radial-gradient(ellipse 640px 460px at 65% 30%, rgba(255, 252, 240, .5), transparent 58%);--bg-rgb: 243 236 221;--bg: rgb(var(--bg-rgb));--view-bg-rgb: 243 236 221;--view-bg: rgb(var(--view-bg-rgb));--panel-rgb: 252 249 241;--panel: rgb(var(--panel-rgb));--card-rgb: 254 249 195;--card: rgb(var(--card-rgb));--muted-rgb: 245 239 224;--muted: rgb(var(--muted-rgb));--input-bg-rgb: 250 245 233;--input-bg: rgb(var(--input-bg-rgb));--surface-hover-rgb: 245 238 221;--surface-hover: rgb(var(--surface-hover-rgb));--surface-active-rgb: 238 226 200;--surface-active: rgb(var(--surface-active-rgb));--ink-rgb: 63 54 41;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 43 35 23;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 122 111 92;--sub: rgb(var(--sub-rgb));--grid-rgb: 226 216 192;--grid: rgb(var(--grid-rgb));--border-strong-rgb: 207 194 163;--border-strong: rgb(var(--border-strong-rgb));--card-radius: 4px;--card-shadow: 2px 3px 10px rgba(90, 75, 30, .2);--shadow: 0 3px 10px rgba(90, 75, 30, .12);--font-stack: "Segoe Print", "Bradley Hand", "Marker Felt", "Comic Sans MS", cursive}:root[data-theme=dark][data-skin=paper]{--app-backdrop: radial-gradient(rgba(255, 240, 200, .035) 1px, transparent 1px), radial-gradient(ellipse 900px 640px at 18% 12%, rgba(255, 236, 190, .03), transparent 62%), radial-gradient(ellipse 760px 540px at 82% 88%, rgba(255, 236, 190, .025), transparent 60%);--bg-rgb: 43 38 32;--bg: rgb(var(--bg-rgb));--view-bg-rgb: 43 38 32;--view-bg: rgb(var(--view-bg-rgb));--panel-rgb: 53 47 39;--panel: rgb(var(--panel-rgb));--card-rgb: 69 60 45;--card: rgb(var(--card-rgb));--muted-rgb: 61 54 44;--muted: rgb(var(--muted-rgb));--input-bg-rgb: 47 42 34;--input-bg: rgb(var(--input-bg-rgb));--surface-hover-rgb: 61 54 44;--surface-hover: rgb(var(--surface-hover-rgb));--surface-active-rgb: 74 66 52;--surface-active: rgb(var(--surface-active-rgb));--ink-rgb: 232 224 208;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 245 239 226;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 168 154 130;--sub: rgb(var(--sub-rgb));--grid-rgb: 74 66 52;--grid: rgb(var(--grid-rgb));--border-strong-rgb: 92 82 69;--border-strong: rgb(var(--border-strong-rgb));--card-shadow: 2px 3px 12px rgba(0, 0, 0, .45);--shadow: 0 3px 12px rgba(0, 0, 0, .35)}:root[data-skin=zen]{--bg-rgb: 242 242 242;--bg: rgb(var(--bg-rgb));--view-bg-rgb: 242 242 242;--view-bg: rgb(var(--view-bg-rgb));--panel-rgb: 255 255 255;--panel: rgb(var(--panel-rgb));--card-rgb: 255 255 255;--card: rgb(var(--card-rgb));--muted-rgb: 234 234 234;--muted: rgb(var(--muted-rgb));--input-bg-rgb: 246 246 246;--input-bg: rgb(var(--input-bg-rgb));--surface-hover-rgb: 240 240 240;--surface-hover: rgb(var(--surface-hover-rgb));--surface-active-rgb: 230 230 230;--surface-active: rgb(var(--surface-active-rgb));--ink-rgb: 23 23 23;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 0 0 0;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 115 115 115;--sub: rgb(var(--sub-rgb));--text-tertiary-rgb: 163 163 163;--text-tertiary: rgb(var(--text-tertiary-rgb));--grid-rgb: 229 229 229;--grid: rgb(var(--grid-rgb));--border-strong-rgb: 212 212 212;--border-strong: rgb(var(--border-strong-rgb));--brand-rgb: 17 17 17;--brand: rgb(var(--brand-rgb));--brand-2-rgb: 64 64 64;--brand-2: rgb(var(--brand-2-rgb));--accent-rgb: 17 17 17;--accent: rgb(var(--accent-rgb));--accent-dark-rgb: 0 0 0;--accent-dark: rgb(var(--accent-dark-rgb));--accent-subtle: rgba(0, 0, 0, .05);--purple-rgb: 82 82 82;--purple: rgb(var(--purple-rgb));--cyan-rgb: 115 115 115;--cyan: rgb(var(--cyan-rgb));--warn-rgb: 165 138 74;--warn: rgb(var(--warn-rgb));--danger-rgb: 180 92 92;--danger: rgb(var(--danger-rgb));--ok-rgb: 92 138 106;--ok: rgb(var(--ok-rgb));--status-todo-bg-rgb: 245 245 245;--status-todo-bg: rgb(var(--status-todo-bg-rgb));--status-todo-ink-rgb: 82 82 82;--status-todo-ink: rgb(var(--status-todo-ink-rgb));--status-today-bg-rgb: 232 232 232;--status-today-bg: rgb(var(--status-today-bg-rgb));--status-today-ink-rgb: 23 23 23;--status-today-ink: rgb(var(--status-today-ink-rgb));--status-in-progress-bg-rgb: 224 224 224;--status-in-progress-bg: rgb(var(--status-in-progress-bg-rgb));--status-in-progress-ink-rgb: 17 17 17;--status-in-progress-ink: rgb(var(--status-in-progress-ink-rgb));--status-done-bg-rgb: 240 240 240;--status-done-bg: rgb(var(--status-done-bg-rgb));--status-done-ink-rgb: 115 115 115;--status-done-ink: rgb(var(--status-done-ink-rgb));--card-radius: 10px;--card-shadow: 0 1px 4px rgba(0, 0, 0, .09);--shadow: 0 1px 4px rgba(0, 0, 0, .09);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .1)}:root[data-theme=dark][data-skin=zen]{--bg-rgb: 0 0 0;--bg: rgb(var(--bg-rgb));--view-bg-rgb: 5 5 5;--view-bg: rgb(var(--view-bg-rgb));--panel-rgb: 14 14 14;--panel: rgb(var(--panel-rgb));--card-rgb: 25 25 25;--card: rgb(var(--card-rgb));--muted-rgb: 26 26 26;--muted: rgb(var(--muted-rgb));--input-bg-rgb: 17 17 17;--input-bg: rgb(var(--input-bg-rgb));--surface-hover-rgb: 28 28 28;--surface-hover: rgb(var(--surface-hover-rgb));--surface-active-rgb: 38 38 38;--surface-active: rgb(var(--surface-active-rgb));--ink-rgb: 237 237 237;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 255 255 255;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 140 140 140;--sub: rgb(var(--sub-rgb));--text-tertiary-rgb: 107 107 107;--text-tertiary: rgb(var(--text-tertiary-rgb));--grid-rgb: 38 38 38;--grid: rgb(var(--grid-rgb));--border-strong-rgb: 58 58 58;--border-strong: rgb(var(--border-strong-rgb));--brand-rgb: 58 58 58;--brand: rgb(var(--brand-rgb));--brand-2-rgb: 82 82 82;--brand-2: rgb(var(--brand-2-rgb));--accent-rgb: 212 212 212;--accent: rgb(var(--accent-rgb));--accent-dark-rgb: 255 255 255;--accent-dark: rgb(var(--accent-dark-rgb));--accent-subtle: rgba(255, 255, 255, .06);--purple-rgb: 140 140 140;--purple: rgb(var(--purple-rgb));--cyan-rgb: 115 115 115;--cyan: rgb(var(--cyan-rgb));--warn-rgb: 154 138 94;--warn: rgb(var(--warn-rgb));--danger-rgb: 160 106 106;--danger: rgb(var(--danger-rgb));--ok-rgb: 106 138 118;--ok: rgb(var(--ok-rgb));--status-todo-bg-rgb: 26 26 26;--status-todo-bg: rgb(var(--status-todo-bg-rgb));--status-todo-ink-rgb: 140 140 140;--status-todo-ink: rgb(var(--status-todo-ink-rgb));--status-today-bg-rgb: 38 38 38;--status-today-bg: rgb(var(--status-today-bg-rgb));--status-today-ink-rgb: 237 237 237;--status-today-ink: rgb(var(--status-today-ink-rgb));--status-in-progress-bg-rgb: 46 46 46;--status-in-progress-bg: rgb(var(--status-in-progress-bg-rgb));--status-in-progress-ink-rgb: 255 255 255;--status-in-progress-ink: rgb(var(--status-in-progress-ink-rgb));--status-done-bg-rgb: 23 23 23;--status-done-bg: rgb(var(--status-done-bg-rgb));--status-done-ink-rgb: 107 107 107;--status-done-ink: rgb(var(--status-done-ink-rgb));--card-shadow: 0 1px 3px rgba(0, 0, 0, .6);--shadow: 0 1px 3px rgba(0, 0, 0, .6);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .7)}:root[data-skin=studio]{--bg-rgb: 238 240 244;--bg: rgb(var(--bg-rgb));--view-bg-rgb: 238 240 244;--view-bg: rgb(var(--view-bg-rgb));--panel-rgb: 255 255 255;--panel: rgb(var(--panel-rgb));--card-rgb: 255 255 255;--card: rgb(var(--card-rgb));--muted-rgb: 232 234 240;--muted: rgb(var(--muted-rgb));--input-bg-rgb: 244 245 249;--input-bg: rgb(var(--input-bg-rgb));--surface-hover-rgb: 240 242 247;--surface-hover: rgb(var(--surface-hover-rgb));--surface-active-rgb: 228 231 242;--surface-active: rgb(var(--surface-active-rgb));--ink-rgb: 28 33 48;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 13 16 32;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 93 100 116;--sub: rgb(var(--sub-rgb));--text-tertiary-rgb: 154 161 178;--text-tertiary: rgb(var(--text-tertiary-rgb));--grid-rgb: 227 230 238;--grid: rgb(var(--grid-rgb));--border-strong-rgb: 201 206 222;--border-strong: rgb(var(--border-strong-rgb));--brand-rgb: 91 91 214;--brand: rgb(var(--brand-rgb));--brand-2-rgb: 139 92 246;--brand-2: rgb(var(--brand-2-rgb));--accent-rgb: 91 91 214;--accent: rgb(var(--accent-rgb));--accent-dark-rgb: 70 70 198;--accent-dark: rgb(var(--accent-dark-rgb));--accent-subtle: rgba(91, 91, 214, .09);--focus-ring: rgba(91, 91, 214, .4);--card-radius: 12px;--card-shadow: 0 1px 2px rgba(23, 26, 45, .06), 0 8px 22px -8px rgba(23, 26, 45, .14);--shadow: 0 1px 2px rgba(23, 26, 45, .06), 0 8px 22px -8px rgba(23, 26, 45, .14);--shadow-lg: 0 16px 48px -12px rgba(23, 26, 45, .22)}:root[data-theme=dark][data-skin=studio]{--bg-rgb: 14 15 20;--bg: rgb(var(--bg-rgb));--view-bg-rgb: 16 18 24;--view-bg: rgb(var(--view-bg-rgb));--panel-rgb: 21 23 33;--panel: rgb(var(--panel-rgb));--card-rgb: 26 28 40;--card: rgb(var(--card-rgb));--muted-rgb: 32 35 47;--muted: rgb(var(--muted-rgb));--input-bg-rgb: 18 20 29;--input-bg: rgb(var(--input-bg-rgb));--surface-hover-rgb: 34 37 52;--surface-hover: rgb(var(--surface-hover-rgb));--surface-active-rgb: 42 46 66;--surface-active: rgb(var(--surface-active-rgb));--ink-rgb: 230 232 240;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 247 248 252;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 146 152 171;--sub: rgb(var(--sub-rgb));--text-tertiary-rgb: 107 113 134;--text-tertiary: rgb(var(--text-tertiary-rgb));--grid-rgb: 38 42 58;--grid: rgb(var(--grid-rgb));--border-strong-rgb: 54 59 82;--border-strong: rgb(var(--border-strong-rgb));--brand-rgb: 124 127 242;--brand: rgb(var(--brand-rgb));--brand-2-rgb: 167 139 250;--brand-2: rgb(var(--brand-2-rgb));--accent-rgb: 138 141 246;--accent: rgb(var(--accent-rgb));--accent-dark-rgb: 185 187 250;--accent-dark: rgb(var(--accent-dark-rgb));--accent-subtle: rgba(124, 127, 242, .14);--focus-ring: rgba(124, 127, 242, .45);--card-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 10px 28px -10px rgba(0, 0, 0, .6);--shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 10px 28px -10px rgba(0, 0, 0, .6);--shadow-lg: 0 20px 60px -16px rgba(0, 0, 0, .7)}:root[data-skin=mono]{--bg-rgb: 255 255 255;--bg: rgb(var(--bg-rgb));--view-bg-rgb: 255 255 255;--view-bg: rgb(var(--view-bg-rgb));--panel-rgb: 255 255 255;--panel: rgb(var(--panel-rgb));--card-rgb: 255 255 255;--card: rgb(var(--card-rgb));--muted-rgb: 242 242 242;--muted: rgb(var(--muted-rgb));--input-bg-rgb: 250 250 250;--input-bg: rgb(var(--input-bg-rgb));--surface-hover-rgb: 245 245 245;--surface-hover: rgb(var(--surface-hover-rgb));--surface-active-rgb: 235 235 235;--surface-active: rgb(var(--surface-active-rgb));--surface-info-rgb: 245 245 245;--surface-info: rgb(var(--surface-info-rgb));--surface-alt-rgb: 250 250 250;--surface-alt: rgb(var(--surface-alt-rgb));--drag-highlight-rgb: 230 230 230;--drag-highlight: rgb(var(--drag-highlight-rgb));--ink-rgb: 0 0 0;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 0 0 0;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 77 77 77;--sub: rgb(var(--sub-rgb));--text-tertiary-rgb: 115 115 115;--text-tertiary: rgb(var(--text-tertiary-rgb));--text-muted-rgb: 140 140 140;--text-muted: rgb(var(--text-muted-rgb));--grid-rgb: 217 217 217;--grid: rgb(var(--grid-rgb));--border-strong-rgb: 166 166 166;--border-strong: rgb(var(--border-strong-rgb));--brand-rgb: 0 0 0;--brand: rgb(var(--brand-rgb));--brand-2-rgb: 64 64 64;--brand-2: rgb(var(--brand-2-rgb));--accent-rgb: 0 0 0;--accent: rgb(var(--accent-rgb));--accent-dark-rgb: 0 0 0;--accent-dark: rgb(var(--accent-dark-rgb));--accent-subtle: rgba(0, 0, 0, .06);--purple-rgb: 89 89 89;--purple: rgb(var(--purple-rgb));--cyan-rgb: 128 128 128;--cyan: rgb(var(--cyan-rgb));--danger-rgb: 0 0 0;--danger: rgb(var(--danger-rgb));--warn-rgb: 89 89 89;--warn: rgb(var(--warn-rgb));--ok-rgb: 140 140 140;--ok: rgb(var(--ok-rgb));--status-todo-bg-rgb: 245 245 245;--status-todo-bg: rgb(var(--status-todo-bg-rgb));--status-todo-ink-rgb: 89 89 89;--status-todo-ink: rgb(var(--status-todo-ink-rgb));--status-today-bg-rgb: 224 224 224;--status-today-bg: rgb(var(--status-today-bg-rgb));--status-today-ink-rgb: 0 0 0;--status-today-ink: rgb(var(--status-today-ink-rgb));--status-in-progress-bg-rgb: 235 235 235;--status-in-progress-bg: rgb(var(--status-in-progress-bg-rgb));--status-in-progress-ink-rgb: 26 26 26;--status-in-progress-ink: rgb(var(--status-in-progress-ink-rgb));--status-done-bg-rgb: 250 250 250;--status-done-bg: rgb(var(--status-done-bg-rgb));--status-done-ink-rgb: 128 128 128;--status-done-ink: rgb(var(--status-done-ink-rgb));--badge-success-bg-rgb: 245 245 245;--badge-success-bg: rgb(var(--badge-success-bg-rgb));--badge-success-ink-rgb: 89 89 89;--badge-success-ink: rgb(var(--badge-success-ink-rgb));--badge-success-border-rgb: 217 217 217;--badge-success-border: rgb(var(--badge-success-border-rgb));--badge-danger-bg-rgb: 230 230 230;--badge-danger-bg: rgb(var(--badge-danger-bg-rgb));--badge-danger-ink-rgb: 0 0 0;--badge-danger-ink: rgb(var(--badge-danger-ink-rgb));--badge-warning-bg-rgb: 240 240 240;--badge-warning-bg: rgb(var(--badge-warning-bg-rgb));--badge-warning-ink-rgb: 51 51 51;--badge-warning-ink: rgb(var(--badge-warning-ink-rgb));--badge-info-bg-rgb: 242 242 242;--badge-info-bg: rgb(var(--badge-info-bg-rgb));--badge-info-ink-rgb: 64 64 64;--badge-info-ink: rgb(var(--badge-info-ink-rgb));--badge-purple-bg-rgb: 242 242 242;--badge-purple-bg: rgb(var(--badge-purple-bg-rgb));--badge-purple-ink-rgb: 77 77 77;--badge-purple-ink: rgb(var(--badge-purple-ink-rgb));--badge-yellow-bg-rgb: 245 245 245;--badge-yellow-bg: rgb(var(--badge-yellow-bg-rgb));--badge-yellow-ink-rgb: 89 89 89;--badge-yellow-ink: rgb(var(--badge-yellow-ink-rgb));--focus-ring: rgba(0, 0, 0, .35);--hover-overlay: rgba(0, 0, 0, .04);--active-overlay: rgba(0, 0, 0, .08);--card-radius: 4px;--card-shadow: 0 1px 2px rgba(0, 0, 0, .1);--shadow: 0 1px 2px rgba(0, 0, 0, .1);--shadow-sm: 0 1px 1px rgba(0, 0, 0, .08);--shadow-lg: 0 6px 24px rgba(0, 0, 0, .14);--overlay: rgba(0, 0, 0, .55)}:root[data-theme=dark][data-skin=mono]{--bg-rgb: 0 0 0;--bg: rgb(var(--bg-rgb));--view-bg-rgb: 0 0 0;--view-bg: rgb(var(--view-bg-rgb));--panel-rgb: 10 10 10;--panel: rgb(var(--panel-rgb));--card-rgb: 20 20 20;--card: rgb(var(--card-rgb));--muted-rgb: 26 26 26;--muted: rgb(var(--muted-rgb));--input-bg-rgb: 15 15 15;--input-bg: rgb(var(--input-bg-rgb));--surface-hover-rgb: 31 31 31;--surface-hover: rgb(var(--surface-hover-rgb));--surface-active-rgb: 46 46 46;--surface-active: rgb(var(--surface-active-rgb));--surface-info-rgb: 26 26 26;--surface-info: rgb(var(--surface-info-rgb));--surface-alt-rgb: 20 20 20;--surface-alt: rgb(var(--surface-alt-rgb));--drag-highlight-rgb: 46 46 46;--drag-highlight: rgb(var(--drag-highlight-rgb));--ink-rgb: 255 255 255;--ink: rgb(var(--ink-rgb));--ink-heavy-rgb: 255 255 255;--ink-heavy: rgb(var(--ink-heavy-rgb));--sub-rgb: 179 179 179;--sub: rgb(var(--sub-rgb));--text-tertiary-rgb: 128 128 128;--text-tertiary: rgb(var(--text-tertiary-rgb));--text-muted-rgb: 102 102 102;--text-muted: rgb(var(--text-muted-rgb));--grid-rgb: 38 38 38;--grid: rgb(var(--grid-rgb));--border-strong-rgb: 64 64 64;--border-strong: rgb(var(--border-strong-rgb));--brand-rgb: 51 51 51;--brand: rgb(var(--brand-rgb));--brand-2-rgb: 77 77 77;--brand-2: rgb(var(--brand-2-rgb));--accent-rgb: 230 230 230;--accent: rgb(var(--accent-rgb));--accent-dark-rgb: 255 255 255;--accent-dark: rgb(var(--accent-dark-rgb));--accent-subtle: rgba(255, 255, 255, .07);--purple-rgb: 153 153 153;--purple: rgb(var(--purple-rgb));--cyan-rgb: 128 128 128;--cyan: rgb(var(--cyan-rgb));--danger-rgb: 107 107 107;--danger: rgb(var(--danger-rgb));--warn-rgb: 89 89 89;--warn: rgb(var(--warn-rgb));--ok-rgb: 77 77 77;--ok: rgb(var(--ok-rgb));--status-todo-bg-rgb: 26 26 26;--status-todo-bg: rgb(var(--status-todo-bg-rgb));--status-todo-ink-rgb: 140 140 140;--status-todo-ink: rgb(var(--status-todo-ink-rgb));--status-today-bg-rgb: 46 46 46;--status-today-bg: rgb(var(--status-today-bg-rgb));--status-today-ink-rgb: 255 255 255;--status-today-ink: rgb(var(--status-today-ink-rgb));--status-in-progress-bg-rgb: 38 38 38;--status-in-progress-bg: rgb(var(--status-in-progress-bg-rgb));--status-in-progress-ink-rgb: 237 237 237;--status-in-progress-ink: rgb(var(--status-in-progress-ink-rgb));--status-done-bg-rgb: 20 20 20;--status-done-bg: rgb(var(--status-done-bg-rgb));--status-done-ink-rgb: 107 107 107;--status-done-ink: rgb(var(--status-done-ink-rgb));--badge-success-bg-rgb: 23 23 23;--badge-success-bg: rgb(var(--badge-success-bg-rgb));--badge-success-ink-rgb: 140 140 140;--badge-success-ink: rgb(var(--badge-success-ink-rgb));--badge-success-border-rgb: 51 51 51;--badge-success-border: rgb(var(--badge-success-border-rgb));--badge-danger-bg-rgb: 51 51 51;--badge-danger-bg: rgb(var(--badge-danger-bg-rgb));--badge-danger-ink-rgb: 255 255 255;--badge-danger-ink: rgb(var(--badge-danger-ink-rgb));--badge-warning-bg-rgb: 38 38 38;--badge-warning-bg: rgb(var(--badge-warning-bg-rgb));--badge-warning-ink-rgb: 217 217 217;--badge-warning-ink: rgb(var(--badge-warning-ink-rgb));--badge-info-bg-rgb: 31 31 31;--badge-info-bg: rgb(var(--badge-info-bg-rgb));--badge-info-ink-rgb: 191 191 191;--badge-info-ink: rgb(var(--badge-info-ink-rgb));--badge-purple-bg-rgb: 31 31 31;--badge-purple-bg: rgb(var(--badge-purple-bg-rgb));--badge-purple-ink-rgb: 179 179 179;--badge-purple-ink: rgb(var(--badge-purple-ink-rgb));--badge-yellow-bg-rgb: 26 26 26;--badge-yellow-bg: rgb(var(--badge-yellow-bg-rgb));--badge-yellow-ink-rgb: 166 166 166;--badge-yellow-ink: rgb(var(--badge-yellow-ink-rgb));--focus-ring: rgba(255, 255, 255, .4);--hover-overlay: rgba(255, 255, 255, .05);--active-overlay: rgba(255, 255, 255, .09);--card-radius: 4px;--card-shadow: 0 1px 2px rgba(0, 0, 0, .7);--shadow: 0 1px 2px rgba(0, 0, 0, .7);--shadow-sm: 0 1px 1px rgba(0, 0, 0, .6);--shadow-lg: 0 6px 24px rgba(0, 0, 0, .8);--overlay: rgba(0, 0, 0, .8)}:root{--surface: var(--panel);--surface-raised: var(--card);--surface-muted: var(--muted);--surface-sunken: var(--input-bg);--surface-strong: var(--surface-active);--surface-overlay: var(--panel);--text: var(--ink);--text-subtle: var(--text-tertiary);--text-inverse: #ffffff;--border: var(--grid);--border-subtle: var(--grid);--accent: var(--brand);--accent-text: #ffffff;--warning: var(--warn);--shadow-weak: rgba(0, 0, 0, .1);--shadow-color: rgba(0, 0, 0, .2);--text-secondary: var(--sub)}[data-theme=dark]{--shadow-weak: rgba(0, 0, 0, .45);--shadow-color: rgba(0, 0, 0, .65)}:root{--toolbar-height: 113px;--left-panel-width: 300px}body{font-family:Roboto,sans-serif;margin:0;padding:0;overflow:hidden;color:var(--text, #333)}#container{width:100%;height:100vh;position:relative}#canvas-container{position:relative;width:100%;height:100%;background:#fff}canvas{display:block}#top-toolbar{position:absolute;top:0;left:0;right:0;z-index:30;background:linear-gradient(180deg,var(--surface-raised, #f8f8f8) 0%,#ebebeb 100%);border-bottom:1px solid #c0c0c0;display:flex;flex-direction:column;font-family:Segoe UI,Roboto,sans-serif;user-select:none}.ribbon-tabs{display:flex;align-items:center;padding:0 4px;background:var(--surface-strong, #e0e0e0);gap:1px}.ribbon-tabs-status{display:flex;align-items:center;gap:4px;margin-left:auto;padding-right:4px;min-width:0}#status-tool-name{font-size:11px;font-weight:600;color:var(--text, #333);padding:2px 6px;background:#0000000f;border-radius:3px;white-space:nowrap}.status-separator{font-size:10px;color:var(--text-secondary, #888);margin:0 2px}#status-instruction{font-size:11px;color:var(--text-secondary, #555);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#qat-action-label{font-size:10px;color:var(--text-secondary, #777);white-space:nowrap}#qat-ask-btn{display:flex;align-items:center;gap:4px;height:22px;padding:0 10px;border:1px solid var(--border, #c8c8c8);border-radius:4px;background:var(--surface-raised, #f8f8f8);color:var(--text, #333);font-family:inherit;font-size:11px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}#qat-ask-btn:hover{background:#fff;border-color:#89b4fa}#qat-ask-btn .ask-glyph{color:#4a7fd4}.ribbon-tab{background:transparent;border:none;padding:6px 14px;font-size:12px;font-weight:500;color:var(--text-secondary, #555);cursor:pointer;border-radius:4px 4px 0 0;transition:all .15s;position:relative;flex-shrink:0}.ribbon-tab:hover{background:#fff9;color:#222}.ribbon-tab.active{background:var(--surface-raised, #f8f8f8);color:var(--text, #333);font-weight:600;box-shadow:0 -1px #f8f8f8}.sketch-ctx{display:none}#ribbon-tools.sketch-active .ribbon-group.sketch-ctx{display:flex}#ribbon-tools.sketch-active .ribbon-separator.sketch-ctx{display:block}#ribbon-tools.sketch-active .ribbon-group.sketch-ctx{background:linear-gradient(#f2f9f2,#e3f1e3);border-radius:4px}#modify-ribbon-tab.sketch-active{background:#b8dcb8;color:#155724;font-weight:600}.ribbon-tool.sketch-finish:hover{background:#2e9e4426}.ribbon-tool.sketch-cancel:hover{background:#d6454526}.ribbon-panels{height:80px;padding:2px 8px 1px}.ribbon-panel{display:none;align-items:stretch;gap:2px}.ribbon-panel.active{display:flex}.ribbon-separator{width:1px;background:#d0d0d0;margin:2px 6px;align-self:stretch}.ribbon-separator-thin{width:1px;height:36px;background:var(--surface-strong, #ddd);margin:0 4px;align-self:center}.ribbon-group{display:flex;flex-direction:column;align-items:center;padding:0 4px;max-height:100%;position:relative}.ribbon-group-tools{display:flex;gap:2px;align-items:flex-start;flex:1}.ribbon-group-label{font-size:10px;color:var(--text-subtle, #888);text-align:center;padding:0 4px;white-space:nowrap;border-top:1px solid var(--border-subtle, #e0e0e0);width:100%;margin-top:1px}.ribbon-tool{display:flex;flex-direction:column;align-items:center;gap:1px;padding:2px 6px;background:transparent;border:1px solid transparent;border-radius:3px;cursor:pointer;color:var(--text, #444);transition:all .12s;min-width:38px;font-size:10px}.ribbon-tool svg{width:20px;height:20px;flex-shrink:0}.ribbon-tool span{white-space:nowrap;line-height:1.1}.ribbon-tool:hover{background:#4a90e21a;border-color:#4a90e24d;color:#222}.ribbon-dropdown{position:relative}.ribbon-dropdown-menu{display:none;position:absolute;top:100%;left:0;z-index:9500;min-width:132px;background:var(--surface, #fff);border:1px solid #cfcfcf;border-radius:4px;box-shadow:0 6px 20px #0000002e;padding:3px}.ribbon-dropdown.open .ribbon-dropdown-menu{display:block}.ribbon-dropdown-menu .ribbon-tool{flex-direction:row;justify-content:flex-start;gap:8px;width:100%;min-width:0;padding:4px 8px;font-size:11px}.ribbon-dropdown-menu .ribbon-tool:hover{background:#e8f0fb}.ribbon-tool.active,.ribbon-tool:active{background:#4a90e22e;border-color:var(--accent, #4a90e2);color:#1a65b0}.ribbon-tool-danger{color:#c62828}.ribbon-tool-danger:hover{background:#c628281a;border-color:#c628284d}.ribbon-tool-dropdown{position:relative;display:inline-block}.ribbon-dropdown-menu{display:none;position:absolute;top:100%;left:0;background:#fff;min-width:140px;box-shadow:0 4px 12px var(--shadow-weak, rgba(0, 0, 0, .15));border:1px solid var(--border, #ddd);border-radius:4px;z-index:1000;padding:4px}.ribbon-dropdown-menu.show{display:flex;flex-direction:column}.ribbon-dropdown-menu button{display:flex;align-items:center;gap:8px;background:transparent;border:none;width:100%;padding:8px;text-align:left;cursor:pointer;font-size:12px;border-radius:4px;color:var(--text, #444)}.ribbon-dropdown-menu button:hover{background:var(--surface-sunken, #f0f0f0);color:#000}.ribbon-group-compact{flex-direction:column;gap:1px;justify-content:center;padding:1px 4px}.ribbon-checkbox{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--text-secondary, #555);cursor:pointer;white-space:nowrap;line-height:1}.ribbon-checkbox input[type=checkbox]{margin:0;cursor:pointer}.ribbon-select{padding:3px 6px;border:1px solid var(--border-strong, #ccc);border-radius:3px;font-size:11px;background:#fff;min-width:100px;cursor:pointer}.ribbon-input-row{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--text-secondary, #555);line-height:1}.ribbon-input-sm{width:50px;padding:2px 4px;border:1px solid var(--border-strong, #ccc);border-radius:3px;font-size:11px}.dropdown-menu{display:none}.dropdown-menu.visible{display:block}#history-log{max-height:200px;overflow-y:auto;font-size:13px}.history-item{padding:4px 0;border-bottom:1px solid var(--border-subtle, #f0f0f0)}.history-item:last-child{border-bottom:none}.tool-btn{padding:6px 10px;background-color:var(--surface-muted, #f5f5f5);border:1px solid var(--border, #ddd);border-radius:4px;cursor:pointer;font-size:13px;transition:background-color .15s}.tool-btn:hover{background-color:var(--surface-strong, #e0e0e0)}.tool-btn.active{background-color:var(--accent, #4a90e2);color:#fff;border-color:var(--accent, #4a90e2)}#schedule-container{position:fixed;top:var(--toolbar-height);left:0;right:0;bottom:0;background:var(--surface-muted, #f5f5f5);z-index:50;overflow:auto;padding:20px}#schedule-container .schedule-close-btn{position:absolute;top:10px;right:20px;background:#e74c3c;color:#fff;border:none;border-radius:4px;padding:6px 16px;font-size:13px;cursor:pointer;z-index:51}#schedule-container .schedule-close-btn:hover{background:#c0392b}.view-dropdown{position:absolute;z-index:16;flex-direction:column;min-width:180px;background:#1e1e1eeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:4px 0;box-shadow:0 8px 24px #0006;animation:viewDropdownIn .12s ease-out}@keyframes viewDropdownIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.view-dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;background:none;border:none;color:#e0e0e0;font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:background-color .1s}.view-dropdown button:hover{background-color:#ffffff1a;color:var(--text-inverse, #ffffff)}.view-dropdown hr{border:none;border-top:1px solid rgba(255,255,255,.1);margin:4px 0}#properties-panel{position:fixed;top:var(--toolbar-height);left:0;width:var(--left-panel-width, 300px);height:calc(100vh - var(--toolbar-height));background-color:var(--surface-overlay, rgba(255, 255, 255, .95));border-right:1px solid var(--border, #ddd);box-shadow:2px 0 10px var(--shadow-weak, rgba(0, 0, 0, .1));z-index:20;display:flex;flex-direction:column;overflow:hidden}#properties-panel.visible{left:0}#properties-toggle{display:none}.properties-header{padding:4px 8px;border-bottom:1px solid var(--border, #ddd);font-size:14px;font-weight:600;color:var(--text, #333);text-align:left;background:var(--surface-strong, #eaeaea)}.properties-content{padding:6px 8px;overflow-y:auto;flex-grow:1}.properties-section{margin-bottom:10px;display:none}.properties-section h3{margin-top:0;margin-bottom:6px;border-bottom:1px solid var(--border-subtle, #eee);padding-bottom:3px;font-size:13px;font-weight:700;color:var(--text, #333);text-align:left}.properties-section .row{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;align-items:center;margin-bottom:4px}.properties-section label,.properties-section span{font-size:12px;color:var(--text-secondary, #555)}.properties-section input,.properties-section select{width:100%;padding:4px;border-radius:3px;border:1px solid var(--border-strong, #ccc);font-size:13px;box-sizing:border-box}.properties-section input[type=checkbox]{width:auto;justify-self:start}#asset-preview-container{width:100%;height:150px;background-color:var(--surface-strong, #e0e0e0);border-radius:5px;margin-bottom:15px}.level-list-item{display:flex;justify-content:space-between;padding:.3rem 0;border-bottom:1px solid var(--border, #ddd)}#context-menu{position:absolute;display:none;background-color:#fff;border-radius:5px;box-shadow:0 2px 10px var(--shadow-color, rgba(0, 0, 0, .2));padding:8px 0;z-index:1000}.context-menu-item{padding:8px 16px;cursor:pointer;font-size:14px}.context-menu-item:hover{background-color:var(--surface-sunken, #f0f0f0)}#selection-box{position:absolute;background-color:#4a90e233;border:1px solid var(--accent, #4a90e2);display:none;z-index:1000;pointer-events:none}#material-browser{position:fixed;bottom:20px;left:50%;transform:translate(-50%) translateY(120%);width:600px;height:280px;min-width:320px;min-height:180px;background:#fff;border-radius:8px;box-shadow:0 5px 20px var(--shadow-color, rgba(0, 0, 0, .2));z-index:100;display:flex;flex-direction:column;transition:transform .3s ease;overflow:hidden}#material-browser.visible{transform:translate(-50%) translateY(0)}#material-browser.mb-dragged{transform:none;transition:none}#material-browser.mb-dragged.visible{transform:none}.mb-header{padding:8px 12px;border-bottom:1px solid var(--border-subtle, #eee);display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:13px;background:#f9f9f9;border-radius:8px 8px 0 0;cursor:grab;user-select:none;gap:8px}.mb-header:active{cursor:grabbing}.mb-header-left{display:flex;align-items:center;gap:8px}.mb-header-right{display:flex;align-items:center;gap:4px}.mb-view-btn{background:none;border:1px solid transparent;border-radius:4px;padding:3px 6px;cursor:pointer;font-size:14px;color:var(--text-subtle, #888);transition:all .15s}.mb-view-btn:hover{background:#e8e8e8;color:var(--text, #333)}.mb-view-btn.active{border-color:var(--accent, #4a90e2);color:var(--accent, #4a90e2);background:#eef6ff}#mb-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-subtle, #888);padding:2px 4px}#mb-close:hover{color:var(--text, #333)}.mb-controls{padding:6px 8px;border-bottom:1px solid var(--border-subtle, #eee);font-size:12px;display:flex;gap:12px;justify-content:center}.mb-grid{flex:1;overflow:auto;display:flex;flex-wrap:wrap;gap:8px;padding:8px;align-content:flex-start}.mb-item{width:80px;display:inline-flex;flex-direction:column;align-items:center;cursor:pointer;border:2px solid transparent;border-radius:6px;padding:5px;transition:background .15s;flex-shrink:0}.mb-item:hover{background:var(--surface-sunken, #f0f0f0)}.mb-item.active{border-color:var(--accent, #4a90e2);background:#eef6ff}.mb-item img{width:64px;height:64px;border-radius:50%;box-shadow:0 2px 5px var(--shadow-color, rgba(0, 0, 0, .2))}.mb-label{font-size:11px;margin-top:4px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.mb-grid.mb-view-large .mb-item{width:120px}.mb-grid.mb-view-large .mb-item img{width:100px;height:100px}.mb-grid.mb-view-large .mb-label{font-size:12px}.mb-grid.mb-view-list{flex-direction:column;flex-wrap:nowrap;gap:2px}.mb-grid.mb-view-list .mb-item{width:100%;flex-direction:row;padding:4px 8px;border-radius:4px;gap:10px}.mb-grid.mb-view-list .mb-item img{width:28px;height:28px;border-radius:50%;box-shadow:0 1px 3px var(--shadow-weak, rgba(0, 0, 0, .15));flex-shrink:0}.mb-grid.mb-view-list .mb-label{margin-top:0;text-align:left;font-size:13px}.mb-resize-handle{position:absolute;bottom:0;right:0;width:14px;height:14px;cursor:nwse-resize;z-index:2}.mb-resize-handle:after{content:"";position:absolute;bottom:3px;right:3px;width:8px;height:8px;border-right:2px solid var(--border-strong, #bbb);border-bottom:2px solid var(--border-strong, #bbb)}#landscape-ui{position:absolute;top:80px;left:20px;background:var(--surface-overlay, rgba(255, 255, 255, .95));padding:0;border-radius:8px;box-shadow:0 4px 12px var(--shadow-color, rgba(0, 0, 0, .2));width:280px;z-index:2000;display:none;flex-direction:column;max-height:calc(100vh - 100px)}.landscape-header{background:var(--accent, #4a90e2);color:#fff;padding:10px;font-weight:500;font-size:14px;border-top-left-radius:8px;border-top-right-radius:8px;display:flex;justify-content:space-between;align-items:center;cursor:grab}.landscape-header:active{cursor:grabbing}#landscape-close-btn{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;line-height:1;padding:0 5px}#landscape-close-btn:hover{color:#fcc}.landscape-tabs{display:flex;border-bottom:1px solid var(--border, #ddd)}.landscape-tab{flex:1;padding:10px;text-align:center;cursor:pointer;font-weight:500;color:var(--text-secondary, #666);font-size:13px;background:var(--surface-muted, #f5f5f5)}.landscape-tab.active{background:#fff;color:var(--accent, #4a90e2);border-bottom:2px solid var(--accent, #4a90e2)}.landscape-panel{padding:15px;display:none;flex-direction:column;gap:10px}.landscape-panel.active{display:flex}#landscape-ui .row{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:5px}#landscape-ui select,#landscape-ui input[type=range]{width:140px;padding:4px;border-radius:4px;border:1px solid var(--border-strong, #ccc)}#landscape-ui label{font-weight:500}.ai-prompt-bar{position:fixed;bottom:-100px;opacity:0;pointer-events:none;left:50%;transform:translate(-50%);width:90%;max-width:600px;background:#18181bf2;backdrop-filter:blur(10px);border:1px solid #3f3f46;border-radius:8px;padding:12px;z-index:4000;transition:bottom .3s cubic-bezier(.175,.885,.32,1.275),opacity .3s;box-shadow:0 10px 30px #00000080}.ai-prompt-bar.visible{bottom:30px;opacity:1;pointer-events:auto}.ai-prompt-inner{display:flex;flex-direction:column;gap:10px}#aiPromptInput{width:100%;background:transparent;border:none;color:#fff;font-size:16px;outline:none;font-family:Inter,sans-serif}.ai-controls{display:flex;justify-content:space-between;align-items:center;color:#a1a1aa;font-size:12px}#ai-canvas-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000}#aiGenerateBtn{background:linear-gradient(135deg,#eab308,#f59e0b);color:#000;font-weight:700;border:none;border-radius:4px;padding:8px 16px;cursor:pointer;font-family:Inter,sans-serif;transition:transform .1s}#aiGenerateBtn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #eab3084d}#aiGenerateBtn:active:not(:disabled){transform:translateY(1px)}#aiGenerateBtn:disabled{background:#52525b;color:#a1a1aa;cursor:not-allowed}#aiCancelBtn{border:none;border-radius:4px;padding:8px 16px;cursor:pointer;color:#fff;font-weight:700}.ai-modal{display:none;position:fixed;inset:0;background:#000c;z-index:5000;justify-content:center;align-items:center}.ai-modal.show{display:flex}.ai-modal-content{background:#27272a;border:1px solid #3f3f46;border-radius:8px;padding:20px;width:80%;max-width:500px;color:#fff;box-shadow:0 20px 50px #00000080}.ai-modal-content h3{margin-top:0;color:var(--warning, #eab308);margin-bottom:10px}.ai-progress-text{background:#18181b;border:1px solid #3f3f46;border-radius:4px;padding:12px;height:150px;overflow-y:auto;font-family:monospace;font-size:13px;color:#a1a1aa;white-space:pre-wrap}#ai-canvas-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:15}#view-browser{display:flex;flex-direction:column;flex-grow:1;background:var(--surface-muted, #f5f5f5);border-top:2px solid var(--border-strong, #ccc);font-size:13px;overflow-y:auto;min-height:200px}.vb-header{padding:8px 12px;font-weight:600;font-size:13px;border-bottom:1px solid var(--border, #ddd);background:var(--surface-sunken, #eee);display:flex;justify-content:space-between;align-items:center}.vb-header button{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-secondary, #666);padding:0 4px}.vb-section{border-bottom:1px solid var(--border-subtle, #e0e0e0)}.vb-section-header{padding:6px 12px;font-weight:600;font-size:12px;text-transform:uppercase;color:var(--text-secondary, #666);background:var(--surface-strong, #eaeaea);cursor:pointer;display:flex;justify-content:space-between;align-items:center;user-select:none}.vb-section-header:hover{background:var(--surface-strong, #e0e0e0)}.vb-section-header .vb-toggle{font-size:10px;transition:transform .2s}.vb-section.collapsed .vb-section-content{display:none}.vb-section.collapsed .vb-toggle{transform:rotate(-90deg)}.vb-view-item{padding:5px 12px 5px 24px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-subtle, #f0f0f0)}.vb-view-item:hover{background:#e8f0fe}.vb-view-item.active{background:#d2e3fc;font-weight:600}.vb-view-item .vb-view-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vb-view-item .vb-view-scale{font-size:11px;color:var(--text-subtle, #888);margin-left:8px}.vb-view-item .vb-view-delete{opacity:0;background:none;border:none;color:var(--text-subtle, #999);cursor:pointer;font-size:14px;padding:0 4px;margin-left:4px}.vb-view-item:hover .vb-view-delete{opacity:1}.vb-view-item .vb-view-delete:hover{color:#e53e3e}.vb-add-btn{padding:4px 8px;font-size:11px;background:var(--accent, #4a90e2);color:#fff;border:none;border-radius:3px;cursor:pointer;margin:6px 12px}.vb-add-btn:hover{background:#357abd}.vb-sheet-item{padding:5px 12px 5px 24px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-subtle, #f0f0f0)}.vb-sheet-item:hover{background:#e8f0fe}.vb-sheet-item.active{background:#d2e3fc;font-weight:600}.vb-sheet-item .vb-sheet-name{flex:1}.vb-sheet-item .vb-sheet-delete{opacity:0;background:none;border:none;color:var(--text-subtle, #999);cursor:pointer;font-size:14px;padding:0 4px}.vb-sheet-item:hover .vb-sheet-delete{opacity:1}#sheet-editor{display:none;position:fixed;top:var(--toolbar-height);left:300px;right:0;bottom:0;z-index:18;background:#d0d0d0}#sheet-editor.visible{display:block}#sheet-editor canvas{width:100%;height:100%;cursor:grab}#sheet-editor canvas:active{cursor:grabbing}.sheet-toolbar{position:absolute;top:8px;left:50%;transform:translate(-50%);display:flex;gap:4px;background:var(--surface-overlay, rgba(255, 255, 255, .95));padding:4px 8px;border-radius:6px;box-shadow:0 2px 8px var(--shadow-weak, rgba(0,0,0,.15));z-index:5;font-size:12px;align-items:center}.sheet-toolbar button{background:var(--surface-sunken, #f0f0f0);border:1px solid var(--border-strong, #ccc);padding:4px 10px;border-radius:4px;cursor:pointer;font-size:12px}.sheet-toolbar button:hover{background:var(--surface-strong, #e0e0e0)}.sheet-toolbar button.active{background:var(--accent, #4a90e2);color:#fff;border-color:#357abd}.sheet-toolbar select{padding:3px 6px;font-size:12px;border:1px solid var(--border-strong, #ccc);border-radius:4px}.sheet-info-bar{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#ffffffe6;padding:4px 12px;border-radius:4px;font-size:11px;color:var(--text-secondary, #666);z-index:5}#elevation-modal{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:20px;border-radius:8px;box-shadow:0 4px 20px #0000004d;z-index:3000;min-width:300px}#elevation-modal h3{margin-top:0;border-bottom:1px solid var(--border-subtle, #eee);padding-bottom:10px}#elevation-modal .row{display:flex;align-items:center;gap:10px;margin-bottom:10px}#elevation-modal .row label{min-width:80px;font-size:13px}#elevation-modal .row input,#elevation-modal .row select{flex:1;padding:4px 8px;border:1px solid var(--border-strong, #ccc);border-radius:4px}#elevation-modal .modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:15px}@media print{body *{visibility:hidden}#print-container,#print-container *{visibility:visible}#print-container{position:absolute;left:0;top:0;width:100%}@page{margin:0}}#selection-filter{position:fixed;bottom:34px;right:12px;z-index:50;font-family:Segoe UI,Roboto,sans-serif;display:flex;flex-direction:column;align-items:flex-end;gap:6px}#sf-trigger{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--surface-overlay, rgba(255, 255, 255, .95));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border, #ddd);border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;color:var(--text-secondary, #555);cursor:pointer;box-shadow:0 2px 10px var(--shadow-weak, rgba(0, 0, 0, .1));transition:border-color .15s,color .15s,background .15s;white-space:nowrap;user-select:none}#sf-trigger:hover{color:var(--text, #333);border-color:var(--border-strong, #bbb)}#selection-filter.sf-open #sf-trigger{border-color:var(--accent, #4a90e2);color:var(--accent, #4a90e2)}.sf-trigger-icon{font-size:13px;line-height:1}.sf-caret{font-size:9px;color:var(--text-subtle, #888);transition:transform .15s}#selection-filter.sf-open .sf-caret{transform:rotate(180deg)}.sf-count{padding:1px 6px;border-radius:9px;background:var(--accent, #4a90e2);color:var(--accent-text, #fff);font-size:10px;font-weight:700;line-height:1.5}#selection-filter.sf-filtered #sf-trigger{border-color:var(--accent, #4a90e2)}#sf-menu{width:280px;max-height:60vh;overflow-y:auto;padding:8px;background:var(--surface-overlay, rgba(255, 255, 255, .97));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border, #ddd);border-radius:8px;box-shadow:0 6px 24px var(--shadow-color, rgba(0, 0, 0, .2))}#sf-menu[hidden]{display:none}#sf-menu-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 8px;border-bottom:1px solid var(--border-subtle, #eee);margin-bottom:6px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--text-subtle, #888)}#sf-quick-actions{display:flex;gap:4px}.sf-quick-btn{padding:2px 8px;background:var(--surface, #fff);border:1px solid var(--border-strong, #d0d0d0);border-radius:4px;font-size:10px;font-weight:600;color:var(--text-secondary, #555);cursor:pointer;transition:all .12s;font-family:inherit;text-transform:none;letter-spacing:0}.sf-quick-btn:hover{border-color:var(--accent, #4a90e2);color:var(--accent, #4a90e2)}#sf-categories{display:grid;grid-template-columns:1fr 1fr;gap:1px 4px}.sf-category{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;cursor:pointer;user-select:none;transition:background .12s}.sf-category:hover{background:var(--surface-sunken, #f0f0f0)}.sf-checkbox{width:13px;height:13px;margin:0;cursor:pointer;accent-color:var(--accent, #4a90e2);flex-shrink:0}.sf-icon{font-size:12px;line-height:1;flex-shrink:0;width:14px;text-align:center}.sf-label{font-size:11px;font-weight:500;color:var(--text-secondary, #555);line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-disabled .sf-label,.sf-disabled .sf-icon{color:var(--text-subtle, #999);opacity:.65}#viewport-hud{position:absolute;top:calc(var(--toolbar-height) + 12px);right:14px;z-index:15;display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-family:Segoe UI,Roboto,sans-serif;pointer-events:none}#viewport-hud>*{pointer-events:auto}#viewport-hud[hidden]{display:none}#visual-style-menu{position:relative}#vs-trigger{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--surface-overlay, rgba(255, 255, 255, .95));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border, #ddd);border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;color:var(--text-secondary, #555);cursor:pointer;box-shadow:0 2px 10px var(--shadow-weak, rgba(0, 0, 0, .1));transition:border-color .15s,color .15s;white-space:nowrap;user-select:none;min-width:150px}#vs-trigger:hover{color:var(--text, #333);border-color:var(--border-strong, #bbb)}#visual-style-menu.vs-open #vs-trigger{border-color:var(--accent, #4a90e2);color:var(--accent, #4a90e2)}.vs-trigger-icon{display:flex;align-items:center;color:currentColor}.vs-trigger-icon svg{display:block}#vs-trigger-label{flex:1;text-align:left}.vs-caret{font-size:9px;color:var(--text-subtle, #888);transition:transform .15s}#visual-style-menu.vs-open .vs-caret{transform:rotate(180deg)}#vs-menu{position:absolute;top:calc(100% + 6px);right:0;width:210px;padding:6px;background:var(--surface-overlay, rgba(255, 255, 255, .97));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border, #ddd);border-radius:8px;box-shadow:0 6px 24px var(--shadow-color, rgba(0, 0, 0, .2))}#vs-menu[hidden]{display:none}.vs-menu-section{padding:4px 6px;font-size:9px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text-subtle, #888)}.vs-menu-section+.vs-menu-section{border-top:1px solid var(--border-subtle, #eee);margin-top:4px;padding-top:8px}.vs-option{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;background:none;border:none;border-radius:5px;font-family:inherit;font-size:11.5px;font-weight:500;color:var(--text, #333);cursor:pointer;text-align:left;transition:background .12s}.vs-option:hover{background:var(--surface-sunken, #f0f0f0)}.vs-option.active{background:var(--accent, #4a90e2);color:var(--accent-text, #fff)}.vs-option svg{flex-shrink:0}.vs-option-check{margin-left:auto;font-size:11px;opacity:0}.vs-option.active .vs-option-check{opacity:1}#view-cube{position:relative;width:96px;height:96px;display:flex;align-items:center;justify-content:center;user-select:none}#view-cube[hidden]{display:none}#view-cube-stage{width:100%;height:100%;perspective:340px;display:flex;align-items:center;justify-content:center}#view-cube-box{position:relative;width:52px;height:52px;transform-style:preserve-3d}.vc-face{position:absolute;top:0;left:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid var(--border-strong, #b9c2cc);background:var(--surface-overlay, rgba(255, 255, 255, .92));color:var(--text-secondary, #555);font-size:11px;font-weight:700;letter-spacing:.5px;cursor:pointer;backface-visibility:hidden;transition:background .12s,color .12s}.vc-face:hover{background:var(--accent, #4a90e2);color:var(--accent-text, #fff);border-color:var(--accent, #4a90e2)}.vc-face.vc-facing{color:var(--accent, #4a90e2);border-color:var(--accent, #4a90e2)}#view-cube-home{position:absolute;bottom:-2px;right:-2px;width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--surface-overlay, rgba(255, 255, 255, .95));border:1px solid var(--border, #ddd);border-radius:4px;font-size:12px;line-height:1;color:var(--text-secondary, #555);cursor:pointer;box-shadow:0 1px 6px var(--shadow-weak, rgba(0, 0, 0, .1));transition:color .12s,border-color .12s}#view-cube-home:hover{color:var(--accent, #4a90e2);border-color:var(--accent, #4a90e2)}#underlay-panel{position:fixed;top:calc(var(--toolbar-height) + 16px);right:130px;z-index:9000;width:268px;max-height:60vh;overflow-y:auto;background:var(--surface-overlay, rgba(255, 255, 255, .97));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text, #333);border:1px solid var(--border, #ddd);border-radius:8px;box-shadow:0 6px 24px var(--shadow-color, rgba(0, 0, 0, .2));font:12px/1.4 Segoe UI,Roboto,system-ui,sans-serif}#underlay-panel[hidden]{display:none}.ulp-header{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface-muted, #f5f5f5);border-bottom:1px solid var(--border, #ddd);border-radius:8px 8px 0 0}.ulp-header strong{flex:1;font-size:12px}.ulp-close{background:none;border:none;color:var(--text-subtle, #888);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}.ulp-close:hover{color:var(--text, #333)}.ulp-empty{padding:14px 12px;color:var(--text-subtle, #888);font-size:11px}.ulp-row{padding:8px 10px;border-top:1px solid var(--border-subtle, #eee);display:flex;flex-direction:column;gap:6px}.ulp-row:first-child{border-top:none}.ulp-row-top{display:flex;align-items:center;gap:8px}.ulp-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.ulp-icon-btn{background:none;border:none;color:var(--text-secondary, #555);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.ulp-icon-btn:hover{color:var(--accent, #4a90e2)}.ulp-remove:hover{color:var(--danger, #dc2626)}.ulp-row-fields{display:flex;align-items:center;gap:6px}.ulp-field{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-subtle, #888);white-space:nowrap}.ulp-opacity{gap:6px}.ulp-opacity input{flex:1;accent-color:var(--accent, #4a90e2)}.ulp-select,.ulp-input{background:var(--surface, #fff);color:var(--text, #333);border:1px solid var(--border-strong, #ccc);border-radius:4px;padding:2px 4px;font:inherit;font-size:11px}.ulp-select{flex:1;min-width:0}.ulp-input{width:54px}#family-editor-banner{position:absolute;top:var(--toolbar-height);left:310px;z-index:200;display:flex;align-items:center;gap:10px;padding:6px 14px;background:linear-gradient(135deg,#f5a623,#f7b731);color:var(--text-inverse, #fff);font-size:12px;font-weight:500;border-radius:8px;box-shadow:0 3px 12px #f5a62359;font-family:Segoe UI,Roboto,sans-serif}.fe-banner-left{display:flex;align-items:center;gap:8px}.fe-banner-icon{font-size:14px}.fe-family-name{font-weight:700;font-size:13px}.fe-banner-right{display:flex;gap:6px}.fe-btn{padding:4px 10px;border:none;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}.fe-btn-primary{background:var(--surface-overlay, rgba(255,255,255,.95));color:#d48806;border:1px solid rgba(255,255,255,.6)}.fe-btn-primary:hover{background:var(--surface, #fff);box-shadow:0 2px 6px var(--shadow-weak, rgba(0,0,0,.15))}.fe-btn-secondary{background:#fff3;color:var(--text-inverse, #fff);border:1px solid rgba(255,255,255,.4)}.fe-btn-secondary:hover{background:#ffffff59}.fe-btn-small{padding:4px 10px;font-size:11px;background:var(--surface-sunken, #f0f0f0);color:var(--text-secondary, #555);border:1px solid var(--border, #ddd);width:100%;margin-top:6px}.fe-btn-small:hover{background:#e4e4e4}#fe-params-container{padding:0}.fe-panel-header{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-subtle, #888);letter-spacing:.6px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #e8e8e8}.fe-divider{border:none;border-top:1px solid var(--border-subtle, #e0e0e0);margin:12px 0}.fe-param-row{display:flex;align-items:center;gap:4px;margin-bottom:4px}.fe-param-name{flex:1;min-width:0;padding:3px 6px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:11px;background:var(--surface, #fff)}.fe-param-value{width:55px;padding:3px 4px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:11px;text-align:right;background:var(--surface, #fff)}.fe-param-delete{background:none;border:none;color:#ccc;cursor:pointer;font-size:13px;padding:0 2px;line-height:1}.fe-param-delete:hover{color:#e74c3c}.fe-type-row{background:var(--surface, #fff);border:1px solid #e8e8e8;border-radius:4px;padding:6px 8px;margin-bottom:6px}.fe-type-header{display:flex;align-items:center;gap:4px;margin-bottom:4px}.fe-type-name{flex:1;padding:2px 5px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:11px;font-weight:600;background:#fafafa}.fe-type-delete{background:none;border:none;color:#ccc;cursor:pointer;font-size:12px;padding:0 2px}.fe-type-delete:hover{color:#e74c3c}.fe-type-values{display:flex;flex-wrap:wrap;gap:4px}.fe-type-values label{font-size:10px;color:var(--text-subtle, #888);display:flex;align-items:center;gap:3px}.fe-type-value{width:45px;padding:2px 3px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:10px;text-align:right}#family-editor-parts{position:fixed;top:var(--toolbar-height);right:0;width:280px;height:calc(100vh - var(--toolbar-height));background-color:var(--surface-overlay, rgba(255, 255, 255, .95));border-left:1px solid var(--border, #ddd);box-shadow:-2px 0 10px var(--shadow-weak, rgba(0, 0, 0, .1));z-index:20;overflow-y:auto;padding:0;font-family:Segoe UI,Roboto,sans-serif;font-size:12px}#family-editor-parts .fe-parts-header{padding:10px;border-bottom:1px solid var(--border, #ddd);font-size:16px;font-weight:600;color:var(--text, #333);text-align:center;background:var(--surface-strong, #eaeaea)}#family-editor-parts .fe-parts-content{padding:15px}#fe-part-properties h4{margin:0 0 8px;font-size:13px;color:var(--text, #333)}.fe-no-selection{color:var(--text-subtle, #aaa);font-style:italic;font-size:11px;text-align:center;padding:20px 0}.fe-prop-section{margin-bottom:10px}.fe-prop-section h5{margin:0 0 4px;font-size:10px;font-weight:700;text-transform:uppercase;color:var(--text-subtle, #999);letter-spacing:.5px}.fe-prop-field{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px}.fe-prop-field label{font-size:11px;color:var(--text-secondary, #666);min-width:50px}.fe-prop-input-group{flex:1;margin-left:8px}.fe-part-input{width:100%;padding:3px 5px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:11px;background:var(--surface, #fff);box-sizing:border-box}.fe-part-input:focus{border-color:#f5a623;outline:none;box-shadow:0 0 0 2px #f5a62326}.fe-part-name{width:100%;padding:3px 5px;border:1px solid var(--border, #ddd);border-radius:3px;font-size:12px;font-weight:600;box-sizing:border-box}.fe-part-color{width:100%;height:24px;border:1px solid var(--border, #ddd);border-radius:3px;cursor:pointer;padding:1px}.fe-delete-part-btn{width:100%;padding:6px;margin-top:12px;background:#fff0f0;color:#c0392b;border:1px solid #f5c6cb;border-radius:4px;font-size:11px;cursor:pointer;transition:background .15s}.fe-delete-part-btn:hover{background:#fde2e2}.fe-toolbar-group{display:flex;align-items:center;gap:6px}.fe-toolbar-label{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-subtle, #888);letter-spacing:.4px;margin-right:2px}.fe-toolbar-sep{width:1px;height:24px;background:#ccc}.fe-tool-btn{padding:4px 10px;background:var(--surface, #fff);border:1px solid var(--border-strong, #ccc);border-radius:3px;font-size:11px;cursor:pointer;transition:all .12s;color:var(--text, #444);font-family:inherit}.fe-tool-btn:hover{background:#e8f4fd;border-color:var(--accent, #4a90e2);color:#2c6fbb}.fe-tool-btn.active{background:var(--accent, #4a90e2);color:var(--text-inverse, #fff);border-color:#357abd}body.family-editor-mode .ribbon-group[data-fe-hide]{display:none!important}body.family-editor-mode .ribbon-group[data-fe-hide]+.ribbon-separator{display:none!important}body.family-editor-mode .ribbon-tab[data-fe-hide],body.family-editor-mode .ribbon-panel .ribbon-group[data-fe-hide]{display:none!important}#bottom-status-bar{position:fixed;bottom:0;left:var(--left-panel-width, 300px);right:0;height:28px;background:#2a2a2a;border-top:1px solid #444;display:flex;align-items:center;padding:0 12px;z-index:9000;font-size:12px;color:#ccc;gap:16px;user-select:none}.status-item{position:relative;cursor:pointer;padding:2px 8px;border-radius:3px;transition:background .15s}.status-item:hover{background:#3a3a3a}.scale-dropdown{position:absolute;bottom:100%;left:0;background:#2a2a2a;border:1px solid #555;border-radius:6px;padding:4px 0;min-width:160px;box-shadow:0 -4px 16px #0006;margin-bottom:4px}.scale-dropdown.hidden{display:none}.scale-option{padding:6px 12px;cursor:pointer;color:#ddd;font-size:12px;transition:background .1s}.scale-option:hover{background:#4a6fa5;color:var(--text-inverse, #fff)}.scale-option.active{background:#3a5a8a;color:var(--text-inverse, #fff);font-weight:700}
