*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}html{font-size:16px}body{background:var(--color-bg-app);color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-md)}h5,h6{font-size:var(--font-size-base)}p{margin:0}button,input,textarea,select{font:inherit}button{color:inherit}input,textarea,select{color:var(--color-text-primary)}a{color:var(--color-accent)}img,svg{max-width:100%;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.app-shell{flex-direction:column;min-height:100vh;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-app:#0f172a;--color-bg-surface:#1e293b;--color-bg-surface-alt:#0f172a;--color-bg-elevated:#1e293b;--color-border:#334155;--color-border-strong:#64748b;--color-text-primary:#f1f5f9;--color-text-secondary:#e2e8f0;--color-text-muted:#94a3b8;--color-text-faint:#8291a7;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-soft:#3b82f6;--color-text-on-accent:#fff;--color-success:#4ade80;--color-success-hover:#16a34a;--color-success-glow:#4ade8080;--color-danger:#fca5a5;--color-danger-glow:#fca5a5cc;--color-text-on-danger:#0f172a;--color-warning:#f59e0b;--color-prediction:#facc15;--color-prediction-glow:#facc15cc;--color-overlay:#000c;--shadow-card:0 1px 3px #0003;--shadow-card-hover:0 10px 25px #0000004d;--shadow-modal:0 20px 50px #0006}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-app:#f1f5f9;--color-bg-surface:#fff;--color-bg-surface-alt:#f8fafc;--color-bg-elevated:#fff;--color-border:#cbd5e1;--color-border-strong:#64748b;--color-text-primary:#0f172a;--color-text-secondary:#1e293b;--color-text-muted:#475569;--color-text-faint:#5f6f85;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-soft:#3b82f6;--color-text-on-accent:#fff;--color-success:#166534;--color-success-hover:#15803d;--color-success-glow:#16653459;--color-danger:#991b1b;--color-danger-glow:#991b1bb3;--color-text-on-danger:#fff;--color-warning:#d97706;--color-prediction:#ca8a04;--color-prediction-glow:#ca8a04b3;--color-overlay:#0f172a80;--shadow-card:0 1px 3px #0f172a1a;--shadow-card-hover:0 10px 25px #0f172a26;--shadow-modal:0 20px 50px #0f172a33}:root{--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:2.5rem;--space-8:3rem;--space-10:4rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--font-family-base:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-size-xs:.75rem;--font-size-sm:.85rem;--font-size-base:.95rem;--font-size-md:1.1rem;--font-size-lg:1.5rem;--font-size-xl:2rem;--font-size-2xl:2.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.7;--transition-fast:.15s ease;--transition-base:.3s ease;--transition-slow:.5s ease;--content-max-width:1600px;--sidebar-width:200px;--sidebar-width-collapsed:72px;--header-height:64px;--page-padding-x:var(--space-5);--page-padding-y:var(--space-5);--card-padding:var(--space-4);--button-height-sm:32px;--button-height-md:40px;--button-height-lg:48px;--input-height:40px;--icon-size-sm:16px;--icon-size-md:20px;--icon-size-lg:24px;--focus-ring-width:2px;--focus-ring-offset:2px;--focus-ring-color:var(--color-accent-soft);--z-base:0;--z-dropdown:100;--z-sticky:200;--z-header:300;--z-overlay:400;--z-modal:500;--z-toast:600}@media (width>=1024px){:root{--page-padding-x:var(--space-6);--page-padding-y:var(--space-6);--card-padding:var(--space-5);--sidebar-width:240px}}@media (width<=768px){:root{--page-padding-x:var(--space-4);--page-padding-y:var(--space-4);--card-padding:var(--space-4);--header-height:56px;--font-size-lg:1.35rem;--font-size-xl:1.75rem;--font-size-2xl:2rem}}@media (width<=480px){:root{--page-padding-x:var(--space-3);--page-padding-y:var(--space-3);--card-padding:var(--space-3);--font-size-base:.9rem;--font-size-lg:1.25rem}}.language-selector{min-height:var(--input-height);padding:var(--space-2) var(--space-4);background:var(--color-bg-surface-alt);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition-fast), background-color var(--transition-fast)}.language-selector:hover{border-color:var(--color-text-muted)}@media (width<=480px){.language-selector{padding-inline:var(--space-3)}}.theme-toggle{align-items:center;gap:var(--space-2);min-height:var(--input-height);padding:var(--space-2) var(--space-4);background:var(--color-bg-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition-fast), background-color var(--transition-fast);display:inline-flex}.theme-toggle:hover{border-color:var(--color-border-strong)}.theme-toggle svg{flex-shrink:0}@media (width<=480px){.theme-toggle{padding-inline:var(--space-2)}.theme-toggle-label{display:none}}.utility-header{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-4);display:flex}@media (width<=480px){.utility-header{gap:var(--space-1);padding:var(--space-3)}}.utility-header-icon-button{min-width:var(--input-height);min-height:var(--input-height);padding:var(--space-2);background:var(--color-bg-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast), background-color var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.utility-header-icon-button:hover{border-color:var(--color-border-strong)}.utility-header-icon-button:disabled{cursor:not-allowed;opacity:.6}.login-dialog-notice{margin-bottom:var(--space-4)}.route-fallback{background:var(--color-bg-app);justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex}@media (width<=480px){.route-fallback{min-height:100dvh}}.route-fallback__content{align-items:center;gap:var(--space-4);padding:var(--space-6);text-align:center;flex-direction:column;justify-content:center;display:flex}.route-fallback__spinner{border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite route-fallback-spin}.route-fallback__text{font-size:var(--font-size-md)}@keyframes route-fallback-spin{to{transform:rotate(360deg)}}
