:root{--blue-400: #60a5fa;--blue-500: #3b82f6;--blue-600: #2563eb;--blue-700: #1d4ed8;--blue-50: #eff6ff;--blue-100: #dbeafe;--slate-50: #f8fafc;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-400: #94a3b8;--slate-500: #64748b;--slate-700: #334155;--slate-900: #0f172a;--navy-950: #0c1324;--navy-900: #131c30;--navy-800: #1b2540;--navy-700: #27324d;--emerald-400: #34d399;--emerald-500: #10b981;--emerald-50: #ecfdf5;--amber-400: #fbbf24;--amber-500: #f59e0b;--amber-700: #b45309;--amber-50: #fffbeb;--red-400: #f87171;--red-500: #ef4444;--red-600: #dc2626;--red-50: #fef2f2}:root{color-scheme:light;--color-bg: var(--slate-50);--color-surface: #ffffff;--color-surface-muted: var(--slate-100);--color-border: var(--slate-200);--color-border-strong: var(--slate-300);--color-text: var(--slate-900);--color-text-body: var(--slate-700);--color-text-muted: var(--slate-500);--color-text-on-accent: #ffffff;--color-primary: var(--blue-600);--color-primary-hover: var(--blue-700);--color-primary-soft: var(--blue-50);--color-primary-soft-text: var(--blue-700);--color-success: var(--emerald-500);--color-success-soft: var(--emerald-50);--color-success-soft-text: #047857;--color-warning: var(--amber-500);--color-warning-soft: var(--amber-50);--color-warning-soft-text: var(--amber-700);--color-danger: var(--red-600);--color-danger-soft: var(--red-50);--color-danger-soft-text: #991b1b;--color-scrim: rgb(15 23 42 / .45);--focus-ring: 0 0 0 3px rgb(37 99 235 / .35);--shadow-sm: 0 1px 2px rgb(15 23 42 / .06);--shadow-md: 0 1px 3px rgb(15 23 42 / .08), 0 1px 2px rgb(15 23 42 / .04);--shadow-lg: 0 10px 25px -5px rgb(15 23 42 / .1), 0 8px 10px -6px rgb(15 23 42 / .05)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg: var(--navy-950);--color-surface: var(--navy-900);--color-surface-muted: var(--navy-800);--color-border: var(--navy-800);--color-border-strong: var(--navy-700);--color-text: var(--slate-100);--color-text-body: var(--slate-200);--color-text-muted: var(--slate-400);--color-text-on-accent: #ffffff;--color-primary: var(--blue-500);--color-primary-hover: var(--blue-400);--color-primary-soft: #1c2c4d;--color-primary-soft-text: #bfdbfe;--color-success: var(--emerald-400);--color-success-soft: #123a30;--color-success-soft-text: #6ee7b7;--color-warning: var(--amber-400);--color-warning-soft: #3a2a10;--color-warning-soft-text: #fcd34d;--color-danger: var(--red-400);--color-danger-soft: #3b1a1c;--color-danger-soft-text: #fca5a5;--color-scrim: rgb(2 6 23 / .65);--focus-ring: 0 0 0 3px rgb(59 130 246 / .45);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 1px 3px rgb(0 0 0 / .5), 0 1px 2px rgb(0 0 0 / .35);--shadow-lg: 0 10px 25px -5px rgb(0 0 0 / .6), 0 8px 10px -6px rgb(0 0 0 / .45)}}:root[data-theme=dark]{color-scheme:dark;--color-bg: var(--navy-950);--color-surface: var(--navy-900);--color-surface-muted: var(--navy-800);--color-border: var(--navy-800);--color-border-strong: var(--navy-700);--color-text: var(--slate-100);--color-text-body: var(--slate-200);--color-text-muted: var(--slate-400);--color-text-on-accent: #ffffff;--color-primary: var(--blue-500);--color-primary-hover: var(--blue-400);--color-primary-soft: #1c2c4d;--color-primary-soft-text: #bfdbfe;--color-success: var(--emerald-400);--color-success-soft: #123a30;--color-success-soft-text: #6ee7b7;--color-warning: var(--amber-400);--color-warning-soft: #3a2a10;--color-warning-soft-text: #fcd34d;--color-danger: var(--red-400);--color-danger-soft: #3b1a1c;--color-danger-soft-text: #fca5a5;--color-scrim: rgb(2 6 23 / .65);--focus-ring: 0 0 0 3px rgb(59 130 246 / .45);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 1px 3px rgb(0 0 0 / .5), 0 1px 2px rgb(0 0 0 / .35);--shadow-lg: 0 10px 25px -5px rgb(0 0 0 / .6), 0 8px 10px -6px rgb(0 0 0 / .45)}:root{--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-h2: 1.25rem;--text-h1: 1.5rem;--leading-tight: 1.25;--leading-normal: 1.5;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--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: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 999px;--container-max: 1280px;--container-md: 720px;--container-sm: 420px;--transition-fast: .15s ease}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--color-bg);color:var(--color-text-body);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,p,figure,blockquote{margin:0}h1,h2,h3,h4{color:var(--color-text);line-height:var(--leading-tight)}h1{font-size:var(--text-h1);font-weight:var(--weight-bold)}h2{font-size:var(--text-h2);font-weight:var(--weight-semibold)}h3{font-size:var(--text-lg);font-weight:var(--weight-semibold)}small{font-size:var(--text-sm);color:var(--color-text-muted)}ul,ol{margin:0}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}img,svg,video{display:block;max-width:100%}input,textarea,select,button{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}::selection{background:var(--color-primary-soft);color:var(--color-primary-soft-text)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body:has(dialog[open]){overflow:hidden}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-6)}.page{width:100%;max-width:var(--container-md);margin-inline:auto;padding:var(--space-8) var(--space-6)}.page--wide{max-width:var(--container-max)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.auth-shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-6)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6)}.form-card{width:100%;max-width:var(--container-sm);margin-inline:auto;padding:var(--space-8)}.form-card--wide{max-width:480px}.card h1{margin-bottom:var(--space-6)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);min-height:40px;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1;cursor:pointer;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.btn:hover{text-decoration:none}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-text-on-accent)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface-muted);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.btn-outlined{background:transparent;border-color:var(--color-border-strong);color:var(--color-text)}.btn-outlined:hover:not(:disabled){background:var(--color-surface-muted)}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff}.btn-sm{min-height:32px;padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-block{width:100%}.btn-icon{padding:0;width:40px;height:40px;border-radius:var(--radius-full)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.field input,.field textarea,.field select{padding:var(--space-2) var(--space-3);min-height:40px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field input::placeholder,.field textarea::placeholder{color:var(--color-text-muted)}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.field textarea{resize:vertical;min-height:4.5rem}.field--error input,.field--error textarea,.field--error select{border-color:var(--color-danger)}.field__error{font-size:var(--text-sm);color:var(--color-danger)}.field-row{display:flex;gap:var(--space-4)}.field-row .field{flex:1;min-width:0}.form-error{background:var(--color-danger-soft);color:var(--color-danger-soft-text);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6)}.form-footer{margin-top:var(--space-5);font-size:var(--text-sm);text-align:center;color:var(--color-text-muted)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1.4;background:var(--color-surface-muted);color:var(--color-text-muted)}.badge--primary{background:var(--color-primary-soft);color:var(--color-primary-soft-text)}.badge--success{background:var(--color-success-soft);color:var(--color-success-soft-text)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning-soft-text)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger-soft-text)}.card-metric{margin:0;font-size:var(--text-h1);font-weight:var(--weight-semibold);line-height:var(--leading-tight);font-variant-numeric:tabular-nums}.card-note{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.card-list{list-style:none;margin:var(--space-4) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.card-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-muted);font-size:var(--text-sm)}.card-row__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-row__meta{flex-shrink:0;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.chart-data{font-size:var(--text-sm)}.chart-data summary{cursor:pointer;color:var(--color-text-muted)}.chart-data__scroll{overflow:auto;max-block-size:360px;margin-block-start:var(--space-3)}.chart-data__table{inline-size:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;white-space:nowrap}.chart-data__table th,.chart-data__table td{padding:var(--space-2) var(--space-3);text-align:end;border-block-end:1px solid var(--color-border)}.chart-data__table thead th:first-child,.chart-data__table tbody th{text-align:start}.chart-data__table thead th{position:sticky;inset-block-start:0;background:var(--color-surface);color:var(--color-text-muted)}.chart-data__table tbody th{font-weight:var(--weight-regular)}.empty-state{color:var(--color-text-muted);padding:var(--space-8) 0;text-align:center}.skeleton{background:var(--color-surface-muted);border-radius:var(--radius-sm);animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.text-muted{color:var(--color-text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.menu-item{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text-body);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);text-align:left;cursor:pointer}.menu-item:hover{background:var(--color-surface-muted);color:var(--color-text)}.menu-item__icon{flex-shrink:0;font-size:var(--text-lg)}.btn-icon app-icon{font-size:var(--text-lg)}.menu-divider{height:1px;margin:var(--space-2) 0;border:0;background:var(--color-border)}gridster-preview{background:var(--color-primary-soft);border-radius:var(--radius-lg)}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent var(--color-border-strong)}
