@charset "UTF-8";:root{--m-primary: #4648d4;--m-primary-container: #6063ee;--m-on-primary: #ffffff;--m-surface: #fcf8ff;--m-surface-bright: #fcf8ff;--m-surface-container-lowest: #ffffff;--m-surface-container-low: #f5f2fe;--m-surface-container: #efecf8;--m-surface-container-high: #e9e6f3;--m-surface-container-highest: #e4e1ed;--m-surface-indigo: #eef2ff;--m-surface-bg: #f8fafc;--m-on-surface: #1b1b23;--m-on-surface-variant: #464554;--m-outline: #767586;--m-outline-variant: #c7c4d7;--m-secondary: #b4136d;--m-error: #ba1a1a;--c-grad-start: #6366f1;--c-grad-end: #a855f7;--gradient-hero: linear-gradient(135deg, #6366f1 0%, #a855f7 100%);--gradient-brand: linear-gradient(135deg, #4648d4 0%, #6063ee 100%);--c-gold: #f59e0b;--c-emerald: #10b981;--c-blue: #3b82f6;--c-rose: #f43f5e;--c-success: #047857;--c-success-bg: #d1fae5;--c-success-border: #a7f3d0;--c-danger: #be123c;--c-danger-bg: #ffe4e6;--c-danger-border: #fecdd3;--c-warn: #b45309;--c-warn-bg: #fef3c7;--c-warn-border: #fde68a;--c-info: #1d4ed8;--c-info-bg: #dbeafe;--c-info-border: #bfdbfe;--bg: var(--m-surface-container-low);--surface: var(--m-surface-container-lowest);--surface-muted: var(--m-surface-container-low);--surface-alt: var(--m-surface-bg);--surface-indigo: var(--m-surface-indigo);--brand: var(--m-primary);--brand-fg: #ffffff;--accent: var(--m-primary);--accent-strong: var(--m-primary);--accent-hover: #3a3cc0;--accent-tint: var(--m-surface-indigo);--text: var(--m-on-surface);--text-strong: var(--m-on-surface);--text-muted: var(--m-on-surface-variant);--text-faint: var(--m-outline);--border: var(--m-surface-container-highest);--border-strong: var(--m-outline-variant);--ring: var(--m-primary);--on-brand: #ffffff;--on-brand-muted: rgba(255, 255, 255, .85);--on-brand-border: rgba(255, 255, 255, .25);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Inter", ui-monospace, "SFMono-Regular", monospace;--font-serif: "Inter", Georgia, "Times New Roman", serif;--fs-display: 2rem;--fs-h1: 1.5rem;--fs-h2: 1.25rem;--fs-h3: 1.0625rem;--fs-body: 1rem;--fs-sm: .875rem;--fs-xs: .75rem;--lh-tight: 1.15;--lh-snug: 1.35;--lh-body: 1.6;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-8: 3rem;--sp-10: 4rem;--r-xs: 6px;--r-sm: 8px;--r: 12px;--r-lg: 16px;--r-xl: 24px;--r-pill: 9999px;--sh-sm: 0 1px 2px rgba(27, 27, 35, .04), 0 1px 3px rgba(27, 27, 35, .06);--sh: 0 4px 16px -4px rgba(27, 27, 35, .08), 0 2px 6px -2px rgba(27, 27, 35, .05);--sh-lg: 0 20px 40px -10px rgba(27, 27, 35, .12);--sh-primary: 0 10px 24px -6px rgba(70, 72, 212, .4);--sh-focus: 0 0 0 3px rgba(70, 72, 212, .2);--ease: cubic-bezier(.2, .6, .2, 1);--dur-1: .12s;--dur-2: .2s;--dur-3: .28s;--z-header: 40;--z-dropdown: 60;--z-modal: 100;--z-toast: 1000;--container: 1440px;--sidebar-w: 260px;--header-h: 88px;--gutter: 24px}[data-theme=dark]{--bg: #131320;--surface: #1c1c2a;--surface-muted: #232338;--surface-indigo: #232357;--brand: #6063ee;--brand-fg: #ffffff;--accent: #c0c1ff;--accent-strong: #6063ee;--text: #e7e5f2;--text-strong: #f6f4ff;--text-muted: #b6b3c8;--text-faint: #8a8799;--border: #2c2c44;--border-strong: #3a3a57;--sh-sm: 0 1px 2px rgba(0, 0, 0, .4);--sh: 0 6px 16px -4px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/material-symbols.woff2) format("woff2")}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:1.375rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"opsz" 24}.material-symbols-outlined.fill{font-variation-settings:"FILL" 1}h1,h2,h3,h4,h5,h6{margin:0 0 var(--sp-3);color:var(--text-strong);font-weight:700;line-height:var(--lh-snug);letter-spacing:-.01em}h1{font-size:var(--fs-h1);line-height:var(--lh-tight)}h2{font-size:var(--fs-h2);font-weight:600}h3{font-size:var(--fs-h3);font-weight:600}p{margin:0 0 var(--sp-3)}a{color:var(--accent-strong);text-decoration:none;transition:color var(--dur-1) var(--ease)}a:hover{color:var(--accent-hover)}code,kbd,samp,.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1,"cv01" 1}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{font-family:inherit;font-size:var(--fs-sm);color:var(--text-strong);background:var(--surface-muted);border:1px solid transparent;border-radius:var(--r);padding:.7rem .85rem;min-height:46px;width:100%;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),background var(--dur-1) var(--ease)}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){background:var(--m-surface-container)}textarea{min-height:6rem;line-height:var(--lh-body)}select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:2.2rem}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;background:var(--surface);border-color:var(--accent);box-shadow:var(--sh-focus)}input[type=checkbox],input[type=radio]{appearance:none;-webkit-appearance:none;width:20px;height:20px;min-height:0;margin:0;padding:0;flex:none;display:inline-grid;place-content:center;border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;vertical-align:-4px;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}input[type=checkbox]{border-radius:6px}input[type=radio]{border-radius:50%}input[type=checkbox]:before{content:"";width:12px;height:12px;background:#fff;transform:scale(0);transition:transform var(--dur-1) var(--ease);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}input[type=radio]:before{content:"";width:9px;height:9px;border-radius:50%;background:#fff;transform:scale(0);transition:transform var(--dur-1) var(--ease)}input[type=checkbox]:hover,input[type=radio]:hover{border-color:var(--accent)}input[type=checkbox]:checked,input[type=radio]:checked{background:var(--brand);border-color:var(--brand)}input[type=checkbox]:checked:before,input[type=radio]:checked:before{transform:scale(1)}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:none;box-shadow:var(--sh-focus)}input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.5;cursor:not-allowed}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}label{color:var(--text-strong)}button{font-family:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--text-strong);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-pill);padding:.6rem 1.1rem;cursor:pointer;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),opacity var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}button:hover:not(:disabled){background:var(--surface-muted)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}table{border-collapse:collapse;width:100%}th{text-align:left;font-weight:600;color:var(--text-strong)}th,td{padding:var(--sp-3);border-bottom:1px solid var(--border)}hr{border:0;border-top:1px solid var(--border);margin:var(--sp-5) 0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-tint);color:var(--accent-strong)}*{scrollbar-width:thin;scrollbar-color:var(--m-surface-container-highest) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--m-surface-container-highest);border-radius:var(--r-pill);border:2px solid transparent;background-clip:padding-box}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.page{max-width:var(--container);margin:0 auto}.page__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}.page__title{margin:0;font-size:var(--fs-h1);font-weight:700;color:var(--text-strong);letter-spacing:-.02em}.page__sub{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);color:var(--text-muted)}.cluster{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:var(--sp-4)}.grid-cards{display:grid;gap:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.cluster--end{justify-content:flex-end}.cluster--between{justify-content:space-between}.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--sp-5);align-items:start}@media(max-width:920px){.detail-grid{grid-template-columns:1fr}}.label{font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.icon-tile{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:var(--r);background:var(--surface-indigo);color:var(--brand);flex:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:600;line-height:1;padding:.7rem 1.2rem;min-height:44px;border:1px solid transparent;border-radius:var(--r-pill);background:var(--surface-muted);color:var(--text-strong);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),opacity var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}.btn:hover{background:var(--m-surface-container)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:var(--sh-focus)}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}.btn--primary{background:var(--brand);color:#fff;box-shadow:var(--sh-primary)}.btn--primary:hover{background:var(--accent-hover);opacity:.95}.btn--brand{background:var(--brand);color:#fff}.btn--ghost{background:transparent;border-color:var(--border-strong);color:var(--text)}.btn--ghost:hover{background:var(--surface-muted)}.btn--quiet{background:transparent;color:var(--text-muted)}.btn--quiet:hover{background:var(--surface-muted);color:var(--text-strong)}.btn--danger{background:var(--c-danger);color:#fff}.btn--sm{min-height:34px;padding:.4rem .85rem;font-size:var(--fs-xs)}.btn--block{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}.card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-5) var(--sp-5) var(--sp-4)}.card__title{margin:0;font-size:var(--fs-h2);font-weight:600;color:var(--text-strong)}.card__body{padding:0 var(--sp-5) var(--sp-5)}.panel{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden}.panel--accent:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--gradient-hero)}.hero{position:relative;overflow:hidden;background:var(--gradient-hero);color:#fff;border-radius:var(--r-xl);padding:var(--sp-6);box-shadow:var(--sh-primary)}.hero__title{margin:0;color:#fff;font-size:var(--fs-display);font-weight:700;letter-spacing:-.02em}.hero__sub{margin:var(--sp-2) 0 0;color:#ffffffe6;font-size:var(--fs-sm);max-width:52ch}.kpi{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:var(--sp-5)}.kpi__label{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.kpi__value{display:block;margin-top:var(--sp-3);font-family:var(--font-sans);font-feature-settings:"tnum" 1;font-size:var(--fs-display);font-weight:700;line-height:1;letter-spacing:-.02em;color:var(--text-strong)}.kpi__sub{margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted)}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.data-table th{text-align:left;font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:var(--sp-3);border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:var(--sp-3);border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.data-table tbody tr{transition:background var(--dur-1) var(--ease)}.data-table tbody tr:hover{background:var(--surface-muted)}.data-table .num{font-feature-settings:"tnum" 1;text-align:right;white-space:nowrap;color:var(--text-strong)}.data-table .muted{color:var(--text-faint)}.badge{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:600;line-height:1;padding:.36em .7em;border-radius:var(--r-pill);border:1px solid transparent}.badge--success{color:var(--c-success);background:var(--c-success-bg)}.badge--danger{color:var(--c-danger);background:var(--c-danger-bg)}.badge--warn{color:var(--c-warn);background:var(--c-warn-bg)}.badge--info{color:var(--c-info);background:var(--c-info-bg)}.badge--neutral{color:var(--text-muted);background:var(--surface-muted);border-color:var(--border)}.badge--accent{color:var(--brand);background:var(--surface-indigo)}.badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor}.tag-code{font-family:var(--font-mono);font-feature-settings:"tnum" 1;font-size:var(--fs-xs);font-weight:600;letter-spacing:.01em;color:var(--brand);background:var(--surface-indigo);border-radius:var(--r-sm);padding:.22em .55em}.meter{position:relative;height:8px;background:var(--m-surface-container-highest);border-radius:var(--r-pill);overflow:hidden}.meter__fill{position:absolute;inset:0 auto 0 0;background:var(--gradient-hero);border-radius:inherit;transition:width var(--dur-3) var(--ease)}.field{display:flex;flex-direction:column;gap:var(--sp-2)}.field__label{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:600;color:var(--text-strong)}.field__hint{font-size:var(--fs-xs);color:var(--text-muted)}.field__error{display:flex;align-items:center;gap:.35em;font-size:var(--fs-xs);font-weight:500;color:var(--c-danger)}.empty-state{text-align:center;padding:var(--sp-8) var(--sp-5);border:1px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface);color:var(--text-muted)}.empty-state__title{font-weight:600;color:var(--text);margin-bottom:var(--sp-1)}.alert{display:flex;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-radius:var(--r);font-size:var(--fs-sm);border:1px solid var(--c-danger-border);background:var(--c-danger-bg);color:var(--c-danger)}.alert--success{border-color:var(--c-success-border);background:var(--c-success-bg);color:var(--c-success)}.alert--warn{border-color:var(--c-warn-border);background:var(--c-warn-bg);color:var(--c-warn)}.alert--info{border-color:var(--c-info-border);background:var(--c-info-bg);color:var(--c-info)}.empty-state__icon{font-size:2.5rem;color:var(--text-faint);margin-bottom:var(--sp-2)}.banner{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-radius:var(--r);font-size:var(--fs-sm);border:1px solid transparent}.banner .material-symbols-outlined{font-size:1.1rem}.banner--ok{background:var(--c-success-bg);color:var(--c-success);border-color:var(--c-success-border)}.banner--info{background:var(--c-info-bg);color:var(--c-info);border-color:var(--c-info-border)}.banner--warn{background:var(--c-warn-bg);color:var(--c-warn);border-color:var(--c-warn-border)}.brandmark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:var(--r);background:var(--surface-indigo);color:var(--brand);font-family:var(--font-sans);font-weight:700;font-size:.95rem;letter-spacing:-.03em;flex:none}.brandmark .material-symbols-outlined{font-size:1.375rem}.live{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.3rem .7rem;border-radius:var(--r-pill);background:#f43f5e1a;color:var(--c-rose);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.live__dot{width:8px;height:8px;border-radius:50%;background:var(--c-rose);animation:live-pulse 1.6s var(--ease) infinite}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.35}}.toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3) var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}.toolbar__field{display:flex;flex-direction:column;gap:var(--sp-1);flex:1 1 180px;min-width:150px;max-width:280px}.toolbar__field--grow{max-width:none;flex-grow:2}.toolbar__field>.label{margin:0}.toolbar__actions{display:flex;gap:var(--sp-2);align-items:center;margin-left:auto}.toolbar__count{font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);font-feature-settings:"tnum" 1}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-4)}.form-grid--narrow{grid-template-columns:minmax(0,440px)}.form-grid__full{grid-column:1/-1}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden}.table-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border)}.table-card__title{margin:0;font-size:var(--fs-h3);font-weight:600;color:var(--text-strong)}.table-scroll{width:100%;overflow-x:auto}.table-card .data-table th{background:var(--surface-muted)}.table-card .data-table th:first-child,.table-card .data-table td:first-child{padding-left:var(--sp-5)}.table-card .data-table th:last-child,.table-card .data-table td:last-child{padding-right:var(--sp-5)}.table-card .data-table tbody tr:last-child td{border-bottom:0}
