:root{color-scheme:light;--color-background: #eef1f8;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-border: #d6def3;--color-border-strong: #b3c0e6;--color-text-primary: #10162a;--color-text-secondary: #3d4666;--color-text-muted: #5a6584;--color-brand: #35408a;--color-brand-hover: #2b3470;--color-brand-active: #212858;--color-brand-contrast: #ffffff;--color-focus-ring: #35408a;--color-premium: #6b552a;--color-premium-tint: #e8dfc8;--status-good: #0ca30c;--status-good-text: #006300;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--status-critical-text: #b73434;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--chart-surface: #ffffff;--shadow-1: 0 1px 2px rgba(16, 22, 42, .07);--shadow-2: 0 2px 8px rgba(16, 22, 42, .09);--shadow-3: 0 4px 16px rgba(16, 22, 42, .11);--shadow-4: 0 12px 32px rgba(16, 22, 42, .16);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--font-family-base: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-family-heading: "Sora", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-family-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--motion-fast: .12s;--motion-base: .18s;--motion-slow: .28s;--motion-easing-standard: cubic-bezier(.2, 0, 0, 1);--sidebar-width: 248px;--topbar-height: 56px}:root[data-theme=dark]{color-scheme:dark;--color-background: #0d1220;--color-surface: #161b2e;--color-surface-raised: #1d2338;--color-border: #2a3350;--color-border-strong: #3b4568;--color-text-primary: #e6ecf7;--color-text-secondary: #b7c0da;--color-text-muted: #98a2c4;--color-brand: #6b82d6;--color-brand-hover: #7f93de;--color-brand-active: #5468bd;--color-brand-contrast: #10162a;--color-focus-ring: #6b82d6;--color-premium: #d9c9a0;--color-premium-tint: #2e2a1e;--status-good: #0ca30c;--status-good-text: #38b438;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--status-critical-text: #df7a7a;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--chart-surface: #161b2e;--shadow-1: 0 1px 2px rgba(0, 0, 4, .32);--shadow-2: 0 2px 8px rgba(0, 0, 4, .4);--shadow-3: 0 4px 16px rgba(0, 0, 4, .48);--shadow-4: 0 12px 32px rgba(0, 0, 4, .56)}@media (prefers-color-scheme: dark){:root:where(:not([data-theme=light])){color-scheme:dark;--color-background: #0d1220;--color-surface: #161b2e;--color-surface-raised: #1d2338;--color-border: #2a3350;--color-border-strong: #3b4568;--color-text-primary: #e6ecf7;--color-text-secondary: #b7c0da;--color-text-muted: #98a2c4;--color-brand: #6b82d6;--color-brand-hover: #7f93de;--color-brand-active: #5468bd;--color-brand-contrast: #10162a;--color-focus-ring: #6b82d6;--color-premium: #d9c9a0;--color-premium-tint: #2e2a1e;--status-good: #0ca30c;--status-good-text: #38b438;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--status-critical-text: #df7a7a;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--chart-surface: #161b2e;--shadow-1: 0 1px 2px rgba(0, 0, 4, .32);--shadow-2: 0 2px 8px rgba(0, 0, 4, .4);--shadow-3: 0 4px 16px rgba(0, 0, 4, .48);--shadow-4: 0 12px 32px rgba(0, 0, 4, .56)}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-family-base);font-size:.875rem;line-height:1.375rem;color:var(--color-text-primary);background:var(--color-background);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--font-family-heading)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--color-brand)}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;font-weight:600;font-size:.875rem;cursor:pointer;transition:background-color var(--motion-fast) var(--motion-easing-standard),border-color var(--motion-fast) var(--motion-easing-standard),opacity var(--motion-fast) var(--motion-easing-standard);white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--color-brand);color:var(--color-brand-contrast)}.btn-primary:hover:not(:disabled){background:var(--color-brand-hover)}.btn-primary:active:not(:disabled){background:var(--color-brand-active)}.btn-secondary{background:var(--color-surface-raised);border-color:var(--color-border-strong);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-background)}.btn-ghost{background:transparent;color:var(--color-text-primary)}.btn-ghost:hover:not(:disabled){background:var(--color-border)}.btn-danger{background:var(--status-critical);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.btn-icon{width:36px;height:36px;padding:0}.btn-loading-spinner{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field-label{font-size:.8125rem;font-weight:600;color:var(--color-text-secondary)}.field-hint{font-size:.75rem;color:var(--color-text-muted)}.field-error{font-size:.75rem;color:var(--status-critical-text);font-weight:500}.input{height:40px;padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface-raised);color:var(--color-text-primary)}.input::placeholder{color:var(--color-text-muted)}.input:disabled{opacity:.6;cursor:not-allowed}.input[aria-invalid=true]{border-color:var(--status-critical)}.combobox{position:relative}.combobox-menu{position:absolute;top:calc(100% + var(--space-1));left:0;right:0;z-index:50;max-height:280px;overflow-y:auto;background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-3);padding:var(--space-1)}.combobox-option{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:.8125rem;color:var(--color-text-primary)}.combobox-option-sub{font-size:.75rem;color:var(--color-text-muted)}.combobox-option:hover,.combobox-option.is-active{background:var(--color-surface-hover, var(--color-border))}.combobox-option.is-create{color:var(--color-accent, var(--color-text-primary));font-weight:600}.combobox-empty{padding:var(--space-2) var(--space-3);font-size:.8125rem;color:var(--color-text-muted)}.card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:var(--space-6)}.card-title{font-family:var(--font-family-heading);font-size:1rem;font-weight:600;margin-bottom:var(--space-1)}.card-subtitle{font-size:.8125rem;color:var(--color-text-muted)}.metric-card{display:flex;flex-direction:column;gap:var(--space-2)}.metric-card-label{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.metric-card-value{font-family:var(--font-family-heading);font-size:1.75rem;font-weight:700;font-variant-numeric:tabular-nums}.metric-card-delta{font-size:.8125rem;font-weight:600}.metric-card-delta.is-positive{color:var(--status-good-text)}.metric-card-delta.is-negative{color:var(--status-critical-text)}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:auto;background:var(--color-surface-raised)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table thead th{text-align:left;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-surface-raised)}.data-table tbody td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--color-background)}.data-table .numeric{font-variant-numeric:tabular-nums;text-align:right}.status-chip{display:inline-flex;align-items:center;gap:var(--space-1);height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;border:1px solid transparent}.status-chip .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-chip.status-good{color:var(--status-good-text);background:color-mix(in srgb,var(--status-good) 14%,transparent)}.status-chip.status-good .dot{background:var(--status-good)}.status-chip.status-warning{color:var(--color-text-primary);background:color-mix(in srgb,var(--status-warning) 22%,transparent)}.status-chip.status-warning .dot{background:var(--status-warning)}.status-chip.status-serious{color:var(--color-text-primary);background:color-mix(in srgb,var(--status-serious) 22%,transparent)}.status-chip.status-serious .dot{background:var(--status-serious)}.status-chip.status-critical{color:var(--status-critical-text);background:color-mix(in srgb,var(--status-critical) 14%,transparent)}.status-chip.status-critical .dot{background:var(--status-critical)}.status-chip.status-neutral{color:var(--color-text-secondary);background:var(--color-background);border-color:var(--color-border)}.status-chip.status-neutral .dot{background:var(--color-text-muted)}.state-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-2);padding:var(--space-12) var(--space-6);color:var(--color-text-secondary)}.state-panel-icon{color:var(--color-text-muted);margin-bottom:var(--space-2)}.state-panel-title{font-family:var(--font-family-heading);font-size:1rem;font-weight:600;color:var(--color-text-primary)}.state-panel-description{font-size:.875rem;max-width:380px}.state-panel.is-error .state-panel-icon{color:var(--status-critical)}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg,var(--color-border) 0%,var(--color-background) 50%,var(--color-border) 100%);background-size:200% 100%;animation:skeleton-sweep 1.4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}}@keyframes skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.session-expiry-banner{position:fixed;top:var(--space-4);left:50%;transform:translate(-50%);z-index:1100;display:flex;align-items:center;gap:var(--space-4);background:var(--color-surface-raised);border:1px solid var(--status-warning);border-radius:var(--radius-md);box-shadow:var(--shadow-3);padding:var(--space-3) var(--space-4);font-size:.8125rem;color:var(--color-text-primary)}.toast-viewport{position:fixed;bottom:var(--space-6);right:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2);z-index:1000;width:340px}.toast{display:flex;align-items:flex-start;gap:var(--space-2);background:var(--color-surface-raised);border:1px solid var(--color-border);border-left:3px solid var(--color-brand);border-radius:var(--radius-md);box-shadow:var(--shadow-3);padding:var(--space-3) var(--space-4);font-size:.8125rem}.toast.toast-success{border-left-color:var(--status-good)}.toast.toast-warning{border-left-color:var(--status-warning)}.toast.toast-error{border-left-color:var(--status-critical)}.toast-title{font-weight:600;color:var(--color-text-primary)}.toast-description{color:var(--color-text-secondary)}.toast-dismiss{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:0;line-height:1}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--topbar-height) 1fr;grid-template-areas:"sidebar topbar" "sidebar main";height:100vh;background:var(--color-background)}.app-topbar{grid-area:topbar;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.app-main{grid-area:main;overflow:auto;padding:var(--space-8)}.app-sidebar{grid-area:sidebar;display:flex;flex-direction:column;background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-4);gap:var(--space-1)}.app-sidebar-brand{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);font-family:var(--font-family-heading);font-weight:700;font-size:1.0625rem;color:var(--color-text-primary)}.app-sidebar-brand .brand-mark{width:28px;height:28px;border-radius:var(--radius-md);background:var(--color-brand);color:var(--color-brand-contrast);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem}.nav-item{display:flex;align-items:center;gap:var(--space-3);height:38px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;text-decoration:none}.nav-item:hover{background:var(--color-background);color:var(--color-text-primary)}.nav-item.is-active{background:color-mix(in srgb,var(--color-brand) 14%,transparent);color:var(--color-brand);font-weight:600}.page-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-6)}.page-title{font-family:var(--font-family-heading);font-size:1.5rem;font-weight:700}.page-subtitle{font-size:.875rem;color:var(--color-text-muted);margin-top:var(--space-1)}.grid{display:grid;gap:var(--space-4)}.grid-metrics{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.dialog{border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-4);padding:0;width:min(520px,calc(100vw - var(--space-8)));color:var(--color-text-primary);background:var(--color-surface-raised)}.dialog:not([open]){display:none}.dialog::backdrop{background:#0b0b0b73}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border)}.dialog-title{font-family:var(--font-family-heading);font-size:1.0625rem;font-weight:700}.dialog-description{font-size:.8125rem;color:var(--color-text-muted);margin-top:var(--space-1)}.dialog-body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);max-height:60vh;overflow-y:auto}.dialog-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border)}.drawer{position:fixed;top:0;right:0;left:auto;margin:0;height:100vh;max-height:100vh;width:min(480px,100vw);border:none;border-left:1px solid var(--color-border);box-shadow:var(--shadow-4);padding:0;background:var(--color-surface-raised);color:var(--color-text-primary);display:flex;flex-direction:column}.drawer:not([open]){display:none}.drawer::backdrop{background:#0b0b0b73}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0}.drawer-title{font-family:var(--font-family-heading);font-size:1.0625rem;font-weight:700}.drawer-description{font-size:.8125rem;color:var(--color-text-muted);margin-top:var(--space-1)}.drawer-body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6);overflow-y:auto;flex:1}.drawer-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0}.detail-section-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:var(--space-3)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4)}.detail-item-label{font-size:.75rem;color:var(--color-text-muted)}.detail-item-value{font-size:.875rem;color:var(--color-text-primary)}.tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6);overflow-x:auto}.tab{background:none;border:none;border-bottom:2px solid transparent;padding:var(--space-3) var(--space-2);font-size:.875rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;margin-bottom:-1px;white-space:nowrap;flex-shrink:0}.tab:hover{color:var(--color-text-primary)}.tab.is-active{color:var(--color-brand);border-bottom-color:var(--color-brand)}.checkbox-row{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;color:var(--color-text-primary);cursor:pointer}.checkbox-input{width:16px;height:16px;accent-color:var(--color-brand);cursor:pointer}.permission-group{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.permission-group-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.inline-fields{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.percentage-input-wrap{position:relative;display:flex;align-items:center}.percentage-input{padding-right:28px}.percentage-input-suffix{position:absolute;right:var(--space-3);color:var(--color-text-muted);font-size:.875rem;pointer-events:none}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-background)}.auth-card{width:380px;display:flex;flex-direction:column;gap:var(--space-4)}.auth-brand{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.auth-brand .brand-mark{width:28px;height:28px;border-radius:var(--radius-md);background:var(--color-brand);color:var(--color-brand-contrast);display:flex;align-items:center;justify-content:center;font-family:var(--font-family-heading);font-weight:700;font-size:.875rem;flex-shrink:0}
