:root{--color-primary:#4f46e5;--color-primary-light:#6366f1;--color-primary-dark:#4338ca;--color-secondary:#f68622;--color-secondary-subtle:#f686221a;--color-bg:#f4f4f5;--color-surface:#fff;--color-border:#d4d4d8;--color-text:#18181b;--color-text-secondary:#52525b;--color-text-muted:#71717a;--color-muted-subtle:#71717a2e;--color-error:#e03b3b;--color-error-subtle:#e03b3b1a;--color-success:#349824;--color-success-subtle:#3498241a;--color-warning:#d97706;--color-warning-subtle:#d977061a;--color-accent:#7c3aed;--color-accent-subtle:#7c3aed1a;--shadow-sm:0 2px 8px #1a1e7114;--shadow-md:0 4px 24px #1a1e7124;--shadow-lg:0 8px 36px #1a1e7133;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-full:9999px;--text-xs:.6875rem;--text-sm:.75rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--transition-fast:.15s ease;--transition-base:.25s ease;--color-primary-subtle:#4d53cb12;--color-primary-subtle-border:#4d53cb33;--z-modal:1000;--canvas-sheet-win-label:#4f46e5;--canvas-sheet-alt-label:#94a3b8;--canvas-sheet-win-bg:#eef2ff;--canvas-sheet-alt-bg:#f8fafc;--canvas-sheet-win-stroke:#4f46e5;--canvas-sheet-alt-stroke:#cbd5e1;--canvas-sheet-win-item:#c7d2fe;--canvas-sheet-alt-item:#e2e8f0;--canvas-sheet-win-count:#3730a3;--canvas-sheet-alt-count:#64748b;--canvas-sheet-error-stroke:#f87171;--canvas-sheet-error-text:#ef4444;--canvas-surcharge-bg-warn:#fef9c3;--canvas-surcharge-bg-safe:#dbeafe;--canvas-surcharge-overlay:#fca5a566;--canvas-surcharge-stroke-warn:#f59e0b;--canvas-surcharge-stroke-safe:#3b82f6;--canvas-surcharge-dim-text:#1e40af;--canvas-surcharge-threshold-text:#b45309;--canvas-surcharge-spanduk-bg:#93c5fd;--canvas-surcharge-spanduk-border:#3b82f6;--canvas-surcharge-limit-bg:#fde68a;--canvas-surcharge-limit-border:#f59e0b;--canvas-surcharge-area-bg:#fca5a5;--canvas-surcharge-area-border:#ef4444}[data-theme=dark]{--color-bg:#09090b;--color-surface:#18181b;--color-border:#27272a;--color-text:#f4f4f5;--color-text-secondary:#a1a1aa;--color-text-muted:#71717a;--color-muted-subtle:#a1a1aa26;--color-primary:#6366f1;--color-primary-light:#818cf8;--color-primary-dark:#4f46e5;--color-secondary:#f9a855;--color-secondary-subtle:#f9a85526;--color-error:#f87171;--color-error-subtle:#f8717126;--color-success:#52be42;--color-success-subtle:#52be4226;--color-warning:#fbbf24;--color-warning-subtle:#fbbf2426;--color-accent:#a78bfa;--color-accent-subtle:#a78bfa26;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 8px 32px #0009;--color-primary-subtle:#6368d526;--color-primary-subtle-border:#6368d559;--canvas-sheet-win-label:#a5b4fc;--canvas-sheet-alt-label:#71717a;--canvas-sheet-win-bg:#6366f12e;--canvas-sheet-alt-bg:#ffffff0d;--canvas-sheet-win-stroke:#818cf8;--canvas-sheet-alt-stroke:#52525b;--canvas-sheet-win-item:#6366f180;--canvas-sheet-alt-item:#fff3;--canvas-sheet-win-count:#a5b4fc;--canvas-sheet-alt-count:#71717a;--canvas-sheet-error-stroke:#fb7185;--canvas-sheet-error-text:#f87171;--canvas-surcharge-bg-warn:#facc1526;--canvas-surcharge-bg-safe:#3b82f626;--canvas-surcharge-overlay:#ef444440;--canvas-surcharge-stroke-warn:#f59e0b;--canvas-surcharge-stroke-safe:#60a5fa;--canvas-surcharge-dim-text:#93c5fd;--canvas-surcharge-threshold-text:#fbbf24;--canvas-surcharge-spanduk-bg:#3b82f626;--canvas-surcharge-spanduk-border:#60a5fa;--canvas-surcharge-limit-bg:#fbbf2433;--canvas-surcharge-limit-border:#f59e0b;--canvas-surcharge-area-bg:#ef444440;--canvas-surcharge-area-border:#f87171}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif}a{color:inherit;text-decoration:none}button{font-family:inherit}[data-theme=dark] input[type=number]::-webkit-inner-spin-button{opacity:.3;filter:invert()}[data-theme=dark] input[type=number]::-webkit-outer-spin-button{opacity:.3;filter:invert()}@media (width<=767px){input,select,textarea{font-size:16px!important}}
