.loadingState{display:grid;place-items:center;gap:.75rem;padding:1.5rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg)}.loadingState__spinner{animation:spin .9s linear infinite}.loadingState__text{margin:0;opacity:.9;color:var(--foreground);text-align:center}@media(prefers-reduced-motion:reduce){.loadingState__spinner{animation:none}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-error{max-width:44rem;margin:4rem auto;padding:0 1.5rem;color:var(--foreground)}.app-error__title{margin:0 0 .5rem;font-size:1.35rem}.app-error__body{margin:0 0 1.25rem;color:var(--muted-foreground);line-height:1.5}.app-error__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.app-error__reload{padding:.5rem 1rem;border:0;border-radius:.375rem;background:var(--primary);color:var(--background);font:inherit;font-weight:600;cursor:pointer}.app-error__login{color:var(--muted-foreground)}.app-error__ref{margin-top:1.5rem;font-size:.85rem;color:var(--muted-foreground)}.app-error__ref code{padding:.1rem .35rem;border-radius:.25rem;background:var(--muted)}:root{--white: #ffffff;--black: #000000;--success: #22c55e;--success-strong: #10b981;--warning: #f59e0b;--error: #ef4444;--error-strong: #dc2626;--danger: #f87171;--success-foreground: var(--primary-foreground);--accent-rerun: #4fd6ea;--accent-ndt: #f5c169;--primary-surface: rgba(0, 231, 217, .12);--primary-surface-faint: rgba(0, 231, 217, .045);--warning-surface: rgba(245, 158, 11, .12);--danger-surface: rgba(248, 113, 113, .12);--danger-border: rgba(248, 113, 113, .3);--primary-border: rgba(0, 231, 217, .3);--warning-border: rgba(245, 158, 11, .35);--success-surface: rgba(34, 197, 94, .12);--success-border: rgba(34, 197, 94, .35);--primary-ring: rgba(0, 231, 217, .16);--card-muted: rgba(15, 23, 42, .4);--success-text: #7ee2a8;--danger-text: #ffb4b4;--mode-pct: #7b9bff;--mode-hr: #3fd3e8;--mode-calc: #34d399;--card-translucent: rgba(21, 25, 52, .94);--paper-bg: #fdfdfb;--paper-ink: #1b1f2a;--paper-muted: #6b7280;--paper-rule-faint: #eceef2;--paper-rule: #d8dae0;--paper-rule-strong: #b9bdc7;--paper-head-bg: #252f5a;--paper-head-ink: #ffffff;--foreground-dim: #cbd5e1;--border-soft: #232a45;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--page-max-width: none;--page-form-max-width: 60rem;--radius-full: 62.4375rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 .25rem .75rem rgba(0, 0, 0, .3);--shadow-lg: 0 .75rem 2rem rgba(0, 0, 0, .4);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--transition-fast: .15s;--transition-base: .2s;--transition-slow: .3s}:root[data-theme=dark]{color-scheme:dark;--background: #0a0e27;--foreground: #f1f5f9;--card: #151934;--card-foreground: #f1f5f9;--popover: #151934;--popover-foreground: #f1f5f9;--primary: #00e7d9;--primary-foreground: #0a0e27;--secondary: #0038fd;--secondary-foreground: #ffffff;--muted: #1e2540;--muted-foreground: #94a3b8;--accent: #2d3659;--accent-foreground: #f1f5f9;--destructive: #f87171;--destructive-foreground: #0a0e27;--border: #2d3659;--input: #1e2540;--input-background: #1e2540;--ring: #00e7d9}:root{--font-main: "Syne", "PingFang SC", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Microsoft YaHei", "Yu Gothic UI", "Meiryo", "Malgun Gothic", "Apple SD Gothic Neo", "Noto Sans CJK SC", "Noto Sans CJK JP", "Noto Sans CJK KR", "Noto Sans", system-ui, sans-serif;--font-size: 1rem;--font-weight-medium: 500;--font-weight-normal: 400;--background: #0a0e27;--foreground: #f1f5f9;--card: #151934;--card-foreground: #f1f5f9;--popover: #151934;--popover-foreground: #f1f5f9;--primary: #00e7d9;--primary-foreground: #0a0e27;--secondary: #0038fd;--secondary-foreground: #ffffff;--muted: #1e2540;--muted-foreground: #94a3b8;--accent: #2d3659;--accent-foreground: #f1f5f9;--destructive: #f87171;--destructive-foreground: #0a0e27;--border: #2d3659;--input: #1e2540;--input-background: #1e2540;--ring: #00e7d9;--gradient-start: #00e7d9;--gradient-middle: #06b6d4;--gradient-end: #0038fd;--chart-1: #0038fd;--chart-2: #06b6d4;--chart-3: #10b981;--chart-4: #fbbf24;--chart-5: #f87171;--sidebar: #151934;--sidebar-foreground: #f1f5f9;--sidebar-primary: #00e7d9;--sidebar-primary-foreground: #0a0e27;--sidebar-accent: #1e2540;--sidebar-accent-foreground: #f1f5f9;--sidebar-border: #2d3659;--sidebar-ring: #00e7d9;--radius: .625rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;color-scheme:dark}html[lang=zh],html[lang^=zh-],html[lang=ja],html[lang=ko],html[lang=vi]{--font-main: "PingFang SC", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Microsoft YaHei", "Yu Gothic UI", "Meiryo", "Malgun Gothic", "Apple SD Gothic Neo", "Noto Sans CJK SC", "Noto Sans CJK JP", "Noto Sans CJK KR", "Noto Sans", system-ui, sans-serif}html{font-size:max(100%,min(100vw / 160,100vh / 80));box-sizing:border-box}*,*:before,*:after{box-sizing:inherit;border-color:var(--border)}body{margin:0;font-family:var(--font-main);font-size:var(--font-size);color:var(--foreground);background:var(--background);transition:color .2s,background .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,label,textarea,select{font-family:var(--font-main);font-size:var(--font-size);font-weight:var(--font-weight-medium);line-height:1.5;color:var(--foreground);outline:none}input,textarea,select{background:var(--input-background);border-radius:var(--radius);border:1px solid var(--border);padding:.5em 1em;transition:border-color .2s,background-color .2s}option,optgroup{color:var(--foreground);background-color:var(--input-background)}option:disabled,select:disabled{color:var(--muted-foreground)}::placeholder{color:var(--muted-foreground);opacity:1}input:focus,textarea:focus,select:focus{border-color:var(--primary);background:var(--input)}:focus{outline:2px solid var(--ring);outline-offset:2px}:focus:not(:focus-visible){outline:none}.chart-1{color:var(--chart-1)}.chart-2{color:var(--chart-2)}.chart-3{color:var(--chart-3)}.chart-4{color:var(--chart-4)}.chart-5{color:var(--chart-5)}::-webkit-scrollbar{width:.625rem;height:.625rem}::-webkit-scrollbar-track{background:var(--muted);border-radius:var(--radius)}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:var(--radius);border:2px solid var(--muted)}::-webkit-scrollbar-thumb:hover{background:var(--secondary)}.toast-action{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.5rem}.toast-action__link{border:none;background:none;padding:0;font:inherit;font-weight:600;color:inherit;text-decoration:underline;cursor:pointer}.dialog-error{margin:.75rem 0 0;padding:.6rem .75rem;border:1px solid var(--danger-border);border-radius:var(--radius-sm);background:var(--danger-surface);color:var(--danger);font-size:.875rem;line-height:1.5}.dialog-note{color:var(--muted-foreground);font-size:.875rem}:where(input[type=checkbox],input[type=radio]){width:.8125rem;height:.8125rem}:where(svg.lucide[width="8"]){width:.5rem;height:.5rem}:where(svg.lucide[width="9"]){width:.5625rem;height:.5625rem}:where(svg.lucide[width="10"]){width:.625rem;height:.625rem}:where(svg.lucide[width="11"]){width:.6875rem;height:.6875rem}:where(svg.lucide[width="12"]){width:.75rem;height:.75rem}:where(svg.lucide[width="13"]){width:.8125rem;height:.8125rem}:where(svg.lucide[width="14"]){width:.875rem;height:.875rem}:where(svg.lucide[width="15"]){width:.9375rem;height:.9375rem}:where(svg.lucide[width="16"]){width:1rem;height:1rem}:where(svg.lucide[width="17"]){width:1.0625rem;height:1.0625rem}:where(svg.lucide[width="18"]){width:1.125rem;height:1.125rem}:where(svg.lucide[width="19"]){width:1.1875rem;height:1.1875rem}:where(svg.lucide[width="20"]){width:1.25rem;height:1.25rem}:where(svg.lucide[width="21"]){width:1.3125rem;height:1.3125rem}:where(svg.lucide[width="22"]){width:1.375rem;height:1.375rem}:where(svg.lucide[width="23"]){width:1.4375rem;height:1.4375rem}:where(svg.lucide[width="24"]){width:1.5rem;height:1.5rem}:where(svg.lucide[width="25"]){width:1.5625rem;height:1.5625rem}:where(svg.lucide[width="26"]){width:1.625rem;height:1.625rem}:where(svg.lucide[width="27"]){width:1.6875rem;height:1.6875rem}:where(svg.lucide[width="28"]){width:1.75rem;height:1.75rem}:where(svg.lucide[width="29"]){width:1.8125rem;height:1.8125rem}:where(svg.lucide[width="30"]){width:1.875rem;height:1.875rem}:where(svg.lucide[width="31"]){width:1.9375rem;height:1.9375rem}:where(svg.lucide[width="32"]){width:2rem;height:2rem}:where(svg.lucide[width="33"]){width:2.0625rem;height:2.0625rem}:where(svg.lucide[width="34"]){width:2.125rem;height:2.125rem}:where(svg.lucide[width="35"]){width:2.1875rem;height:2.1875rem}:where(svg.lucide[width="36"]){width:2.25rem;height:2.25rem}:where(svg.lucide[width="37"]){width:2.3125rem;height:2.3125rem}:where(svg.lucide[width="38"]){width:2.375rem;height:2.375rem}:where(svg.lucide[width="39"]){width:2.4375rem;height:2.4375rem}:where(svg.lucide[width="40"]){width:2.5rem;height:2.5rem}:where(svg.lucide[width="41"]){width:2.5625rem;height:2.5625rem}:where(svg.lucide[width="42"]){width:2.625rem;height:2.625rem}:where(svg.lucide[width="43"]){width:2.6875rem;height:2.6875rem}:where(svg.lucide[width="44"]){width:2.75rem;height:2.75rem}:where(svg.lucide[width="45"]){width:2.8125rem;height:2.8125rem}:where(svg.lucide[width="46"]){width:2.875rem;height:2.875rem}:where(svg.lucide[width="47"]){width:2.9375rem;height:2.9375rem}:where(svg.lucide[width="48"]){width:3rem;height:3rem}:where(svg.lucide[width="56"]){width:3.5rem;height:3.5rem}:where(svg.lucide[width="64"]){width:4rem;height:4rem}:where(svg.lucide[width="72"]){width:4.5rem;height:4.5rem}:where(svg.lucide[width="80"]){width:5rem;height:5rem}:where(svg.lucide[width="96"]){width:6rem;height:6rem}.btn{--btn-bg: transparent;--btn-color: var(--foreground);--btn-border: transparent;--btn-shadow: none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1rem;border-radius:var(--radius-md);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-color);font-family:var(--font-main);font-size:.875rem;font-weight:var(--font-weight-medium);line-height:1.4;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform .08s ease}.btn__icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;line-height:0;flex-shrink:0}.btn__icon svg{width:1rem;height:1rem;display:block}.btn--sm{padding:.4rem .75rem;font-size:.8rem}.btn--md{padding:.55rem 1rem}.btn--lg{padding:.7rem 1.25rem;font-size:.9rem}.btn--full{width:100%}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 .5rem 1.125rem #0f172a29}.btn:active:not(:disabled){transform:translateY(0);box-shadow:0 0 #0000}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.btn--primary{--btn-bg: var(--primary);--btn-color: var(--primary-foreground);--btn-border: var(--primary)}.btn--primary:hover:not(:disabled){--btn-bg: var(--secondary);--btn-border: var(--secondary)}.btn--secondary{--btn-bg: var(--secondary);--btn-color: var(--secondary-foreground);--btn-border: var(--secondary)}.btn--secondary:hover:not(:disabled){--btn-bg: var(--accent);--btn-border: var(--accent)}.btn--ghost{--btn-bg: transparent;--btn-color: var(--muted-foreground);--btn-border: transparent}.btn--ghost:hover:not(:disabled){--btn-bg: var(--muted);--btn-border: var(--muted)}.btn--outline{--btn-bg: transparent;--btn-color: var(--foreground);--btn-border: var(--border)}.btn--outline:hover:not(:disabled){--btn-bg: var(--muted)}.btn--save{--btn-bg: var(--chart-3);--btn-color: #ffffff;--btn-border: var(--chart-3)}.btn--save:hover:not(:disabled){--btn-bg: #0f9c73;--btn-border: #0f9c73}.btn--edit{--btn-bg: var(--secondary);--btn-color: var(--secondary-foreground);--btn-border: var(--secondary)}.btn--edit:hover:not(:disabled){--btn-bg: var(--primary);--btn-border: var(--primary);--btn-color: var(--primary-foreground)}.btn--delete{--btn-bg: var(--destructive);--btn-color: var(--destructive-foreground);--btn-border: var(--destructive)}.btn--delete:hover:not(:disabled){--btn-bg: var(--error-strong);--btn-border: var(--error-strong)}.btn--cancel{--btn-bg: var(--muted);--btn-color: var(--muted-foreground);--btn-border: var(--border)}.btn--cancel:hover:not(:disabled){--btn-bg: var(--accent);--btn-color: var(--accent-foreground)}.btn--icon{padding:.35rem;border-radius:var(--radius-full)}
