@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--blue-0: #e7efff;--blue-1: #d0deff;--blue-2: #b8ceff;--blue-3: #a1bdff;--blue-4: #89adff;--blue-5: #729cff;--blue-6: #5a8cff;--blue-7: #3b66c9;--blue-8: #2d406c;--blue-9: #202a42;--purple-0: #f1eeff;--purple-3: #bdb3ff;--purple-4: #ab9fff;--purple-5: #9a8cff;--purple-6: #7c6aff;--purple-7: #5740ff;--purple-9: #231a6e;--green-0: #ddfaef;--green-3: #75eabe;--green-4: #53e4ae;--green-5: #31df9d;--green-6: #1fc989;--green-7: #1bac75;--red-0: #fce3e4;--red-3: #f07c84;--red-4: #ec4d5f;--red-5: #ea3943;--red-6: #d12b35;--red-7: #a62027;--orange-0: #ffeedd;--orange-3: #faa259;--orange-4: #f9902f;--orange-5: #f87d37;--orange-6: #dd6418;--turquoise-0: #e4f9f8;--turquoise-4: #7ae0dc;--turquoise-6: #45d3ce;--turquoise-7: #2ec2bd;--gray-0: #f8fafe;--gray-1: #f3f7fa;--gray-2: #e9f1f6;--gray-3: #dce9ef;--gray-4: #c4c7c9;--gray-5: #a2afc2;--gray-6: #677c9c;--gray-7: #3d4867;--gray-8: #2f3441;--gray-9: #1f2437;--dark-4: #4b5060;--dark-5: #3a3f4d;--dark-6: #2a2e39;--dark-7: #191f2d;--dark-8: #151b27;--dark-9: #131722;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .4);--shadow-md: 0 8px 20px rgba(0, 0, 0, .45);--shadow-lg: 0 20px 48px rgba(0, 0, 0, .5);--shadow-focus: 0 0 0 3px rgba(90, 140, 255, .35);--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-h1: 32px;--lh-h1: 40px;--fs-h2: 24px;--lh-h2: 32px;--fs-h3: 18px;--lh-h3: 24px;--fs-h4: 16px;--lh-h4: 20px;--fs-md: 14px;--lh-md: 20px;--fs-sm: 13px;--lh-sm: 18px;--fs-xs: 12px;--lh-xs: 16px;--fs-cap: 10px;--lh-cap: 14px;--ease: cubic-bezier(.2, .8, .2, 1);--dur-fast: .12s;--dur: .18s;--pad-x: 24px;--pad-y: 18px;--row-h: 34px;--card-pad: 18px;--sidebar-w: 224px}:root,[data-theme=dark]{--bg: var(--dark-9);--bg-subtle: var(--dark-8);--surface: var(--dark-7);--surface-2: var(--dark-6);--border: var(--dark-5);--border-strong: var(--dark-4);--divider: #2a2e39;--fg: #ffffff;--fg-1: #f3f7fa;--fg-2: #a2afc2;--fg-3: #677c9c;--fg-muted: #4b5060;--fg-inverse: #131722;--accent: var(--blue-6);--accent-hover: var(--blue-5);--accent-active: var(--blue-7);--accent-soft: rgba(90, 140, 255, .14);--accent-fg: #ffffff;--success: var(--green-6);--success-soft: rgba(31, 201, 137, .14);--danger: var(--red-5);--danger-soft: rgba(234, 57, 67, .14);--warning: var(--orange-5);--warning-soft: rgba(248, 125, 55, .14);--info: var(--turquoise-6);--info-soft: rgba(69, 211, 206, .14);--up: var(--green-6);--down: var(--red-5);--panel: var(--surface);--text: var(--fg-1);--muted: var(--fg-3)}[data-theme=light]{--bg: var(--gray-0);--bg-subtle: var(--gray-1);--surface: #ffffff;--surface-2: var(--gray-2);--border: var(--gray-3);--border-strong: var(--gray-4);--divider: var(--gray-2);--fg: #131722;--fg-1: var(--gray-9);--fg-2: var(--gray-7);--fg-3: var(--gray-6);--fg-muted: var(--gray-5);--fg-inverse: #ffffff;--accent-soft: var(--blue-0);--success-soft: var(--green-0);--danger-soft: var(--red-0);--warning-soft: var(--orange-0);--info-soft: var(--turquoise-0);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .06);--shadow-md: 0 6px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .1);--panel: var(--surface);--text: var(--fg-1);--muted: var(--fg-3)}*{box-sizing:border-box}html,body,#root{height:100%}html{background:var(--bg);color-scheme:dark}[data-theme=light]{color-scheme:light}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-md);color:var(--fg-1);background:var(--bg);font-feature-settings:"tnum","ss01";-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5{margin:0;color:var(--fg);font-family:var(--font-sans);letter-spacing:-.005em}h1{font:600 var(--fs-h1) / var(--lh-h1) var(--font-sans);letter-spacing:-.01em}h2{font:600 var(--fs-h2) / var(--lh-h2) var(--font-sans);margin-bottom:var(--space-4)}h3{font:600 var(--fs-h3) / var(--lh-h3) var(--font-sans)}h4{font:600 var(--fs-h4) / var(--lh-h4) var(--font-sans)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.tnum,.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono)}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;transition:grid-template-columns var(--dur) var(--ease)}.app-shell[data-sidebar=narrow]{--sidebar-w: 56px}.app-shell[data-density=compact]{--pad-x: 16px;--pad-y: 12px;--row-h: 28px;--card-pad: 14px}.app-shell[data-density=comfortable]{--pad-x: 28px;--pad-y: 22px;--row-h: 40px;--card-pad: 22px}.layout{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh;position:sticky;top:0;overflow:hidden}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:18px 18px 16px;border-bottom:1px solid var(--divider)}.sidebar-brand-mark{width:26px;height:26px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font:700 13px/1 var(--font-sans);letter-spacing:-.02em;flex-shrink:0}.sidebar-brand .brand-text{display:flex;flex-direction:column;line-height:1;min-width:0}.sidebar-brand .brand-line-1{font:700 14px/1 var(--font-sans);color:var(--fg);letter-spacing:-.01em}.sidebar-brand .brand-line-2{font:500 10px/1 var(--font-sans);color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}.sidebar-nav{flex:1;overflow-y:auto;padding:4px 8px 16px}.sidebar-section{padding:14px 12px 6px;font:600 10px/14px var(--font-sans);color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius-sm);color:var(--fg-2);cursor:pointer;font:500 13px/18px var(--font-sans);-webkit-user-select:none;user-select:none;position:relative;margin-bottom:1px;text-decoration:none;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.nav-item:hover{background:var(--surface-2);color:var(--fg);text-decoration:none}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.nav-item.active:before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:2px;background:var(--accent);border-radius:2px}.nav-item .nav-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.nav-item .nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item .nav-badge{background:var(--danger);color:#fff;font:600 10px/14px var(--font-sans);padding:1px 6px;border-radius:var(--radius-pill);min-width:18px;text-align:center}.sidebar-foot{border-top:1px solid var(--divider);padding:10px 14px;display:flex;align-items:center;gap:10px}.sidebar-foot .user-name{font:600 12px/16px var(--font-sans);color:var(--fg)}.sidebar-foot .user-sub{font:400 10px/14px var(--font-sans);color:var(--fg-3)}.app-shell[data-sidebar=narrow] .sidebar-brand{padding:18px 0 16px;justify-content:center}.app-shell[data-sidebar=narrow] .brand-text,.app-shell[data-sidebar=narrow] .sidebar-section,.app-shell[data-sidebar=narrow] .nav-label,.app-shell[data-sidebar=narrow] .nav-badge,.app-shell[data-sidebar=narrow] .sidebar-foot>*:not(.avatar){display:none}.app-shell[data-sidebar=narrow] .nav-item{justify-content:center;padding:8px}.topbar{display:flex;align-items:center;gap:14px;padding:0 var(--pad-x);height:52px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:5}.topbar .crumbs{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);min-width:0}.topbar .crumbs .root{color:var(--fg-3);font-weight:500}.topbar .crumbs .sep{color:var(--fg-muted)}.topbar .crumbs .leaf{color:var(--fg);font-weight:600}.topbar-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.topbar .env-chip{font:600 10px/14px var(--font-sans);text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent)}.topbar .env-chip[data-env=prod]{background:var(--danger-soft);color:var(--danger)}.topbar .env-chip[data-env=dev]{background:var(--warning-soft);color:var(--warning)}.main{display:flex;flex-direction:column;min-width:0;overflow-x:auto}.page{padding:var(--pad-y) var(--pad-x) 64px;min-width:0;flex:1}.page-title-row{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px}.page-title{font:600 24px/32px var(--font-sans);letter-spacing:-.005em;color:var(--fg);margin:0}.page-eyebrow{font:500 11px/14px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);margin-bottom:6px}.page-subtitle{font-size:var(--fs-sm);color:var(--fg-3);margin-top:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--card-pad)}.card-flat{background:transparent;border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--card-pad)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.card-title{font:600 14px/20px var(--font-sans);color:var(--fg);display:flex;align-items:center;gap:8px}.card-eyebrow{font:500 10px/14px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}.grid{display:grid;gap:14px}.grid-kpi{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-5{grid-template-columns:repeat(5,1fr)}@media (max-width: 1280px){.cols-4,.cols-5{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:1fr}}.kpi-label{font:500 11px/14px var(--font-sans);letter-spacing:.04em;color:var(--fg-3)}.kpi-value{font:600 28px/34px var(--font-sans);letter-spacing:-.01em;color:var(--fg);margin:4px 0;font-variant-numeric:tabular-nums}.kpi-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden;min-height:116px}.kpi-tile .kpi-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--fg-3)}.kpi-tile .unit{font-size:13px;color:var(--fg-3);font-weight:500;margin-left:4px}table,.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}th{font:500 10px/14px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3);text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:1;white-space:nowrap;-webkit-user-select:none;user-select:none;font-weight:500}th.num{text-align:right}td{padding:8px 12px;border-bottom:1px solid var(--divider);color:var(--fg-1);vertical-align:middle;font-variant-numeric:tabular-nums;text-align:left}td.num{text-align:right}tbody tr{transition:background var(--dur-fast) var(--ease)}tbody tr:hover td{background:#ffffff06}[data-theme=light] tbody tr:hover td{background:var(--gray-1)}tbody tr.row-active td,tbody tr.active td{background:var(--accent-soft)!important;box-shadow:inset 2px 0 0 var(--accent)}.tbl[data-style=zebra] tbody tr:nth-child(2n) td,.tbl-zebra tbody tr:nth-child(2n) td{background:#ffffff05}[data-theme=light] .tbl[data-style=zebra] tbody tr:nth-child(2n) td,[data-theme=light] .tbl-zebra tbody tr:nth-child(2n) td{background:var(--gray-1)}.delta-up{color:var(--up)}.delta-down{color:var(--down)}.delta-flat{color:var(--fg-3)}.delta-pill{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;border-radius:var(--radius-pill);font:600 11px/16px var(--font-sans);font-variant-numeric:tabular-nums}.delta-pill.up{background:var(--success-soft);color:var(--success)}.delta-pill.down{background:var(--danger-soft);color:var(--danger)}.cell-warn{background:#f87d371f;position:relative}.cell-warn:after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--orange-5)}.cell-error{background:#ea39431f}.cell-ok{background:#1fc98914}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filters input,.filters select{min-width:140px}input,select,textarea{font-family:inherit;color:var(--fg-1);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px 10px;font-size:var(--fs-sm);line-height:var(--lh-sm);outline:0;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}input::placeholder{color:var(--fg-3)}button{display:inline-flex;align-items:center;gap:6px;font-family:inherit;font:600 13px/18px var(--font-sans);color:var(--fg-1);background:var(--surface-2);border:1px solid var(--border);padding:6px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}button:hover{background:var(--surface);border-color:var(--border-strong)}button:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);color:#fff;border-color:transparent}.btn.primary:hover{background:var(--accent-hover);border-color:transparent}.btn.ghost{background:transparent;border:1px solid transparent;color:var(--fg-2)}.btn.ghost:hover{background:var(--surface-2);color:var(--fg);border-color:transparent}.btn.danger{background:transparent;color:var(--danger);border-color:transparent}.btn.danger:hover{background:var(--danger-soft)}.btn.sm{padding:4px 8px;font-size:12px}.btn.icon{width:30px;height:30px;padding:0;justify-content:center}.segmented{display:inline-flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:2px}.segmented button{background:transparent;border:0;color:var(--fg-2);padding:4px 10px;font:600 12px/16px var(--font-sans);border-radius:calc(var(--radius-md) - 3px)}.segmented button.on,.segmented button[aria-pressed=true]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-xs)}.tag{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 8px;border-radius:var(--radius-pill);font:500 10.5px/12px var(--font-sans);letter-spacing:.02em}.tag .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.tag.blue{background:#5a8cff24;color:var(--blue-4)}.tag.green{background:#1fc98924;color:var(--green-5)}.tag.red{background:#ea394324;color:var(--red-3)}.tag.orange{background:#f87d3724;color:var(--orange-4)}.tag.purple{background:#7c6aff24;color:var(--purple-4)}.tag.turq{background:#45d3ce24;color:var(--turquoise-4)}.tag.gray{background:var(--surface-2);color:var(--fg-2)}[data-theme=light] .tag.blue{color:var(--blue-7)}[data-theme=light] .tag.green{color:var(--green-7)}[data-theme=light] .tag.red{color:var(--red-7)}[data-theme=light] .tag.orange{color:var(--orange-6)}[data-theme=light] .tag.purple{color:var(--purple-7)}[data-theme=light] .tag.turq{color:var(--turquoise-7)}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);padding:2px 8px;font:500 11px/16px var(--font-sans);color:var(--fg-2)}.badge{display:inline-flex;align-items:center;height:18px;padding:0 8px;border-radius:var(--radius-pill);font:500 10.5px/12px var(--font-sans)}.badge-staff{background:#1fc98924;color:var(--green-5)}.badge-vendor{background:#5a8cff24;color:var(--blue-4)}.badge-left{background:#ea394324;color:var(--red-3)}.badge-external{background:#7c6aff24;color:var(--purple-4)}[data-theme=light] .badge-staff{color:var(--green-7)}[data-theme=light] .badge-vendor{color:var(--blue-7)}[data-theme=light] .badge-left{color:var(--red-7)}[data-theme=light] .badge-external{color:var(--purple-7)}.avatar{width:24px;height:24px;border-radius:var(--radius-pill);background:var(--blue-9);color:var(--blue-3);display:inline-flex;align-items:center;justify-content:center;font:600 10px/1 var(--font-sans);flex-shrink:0}[data-theme=light] .avatar{background:var(--blue-0);color:var(--blue-7)}.avatar.md{width:32px;height:32px;font-size:12px}.avatar.lg{width:40px;height:40px;font-size:14px}.dot{display:inline-block;width:6px;height:6px;border-radius:var(--radius-pill);background:currentColor}.divider{height:1px;background:var(--divider);margin:10px 0}.row{display:flex;align-items:center;gap:8px}.spacer{flex:1}.progress{display:block;width:100%;height:4px;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden;position:relative}.progress>span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width var(--dur) var(--ease)}.progress.over>span{background:var(--danger)}.progress.warn>span{background:var(--warning)}.progress.ok>span{background:var(--success)}.empty{padding:28px;text-align:center;color:var(--fg-3)}.skel{background:var(--surface-2);border-radius:4px;height:10px;display:inline-block}.scrollbox{overflow:auto}.scrollbox::-webkit-scrollbar,.scroll-x::-webkit-scrollbar{width:10px;height:10px}.scrollbox::-webkit-scrollbar-thumb,.scroll-x::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:var(--radius-pill);border:2px solid transparent;background-clip:padding-box}.scrollbox::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.scrollbox::-webkit-scrollbar-track,.scroll-x::-webkit-scrollbar-track{background:transparent}.kv{display:grid;grid-template-columns:140px 1fr;row-gap:8px;column-gap:12px;font-size:var(--fs-sm)}.kv .k{color:var(--fg-3);font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding-top:1px;font-weight:500}.kv .v{color:var(--fg-1)}.timeline{position:relative;padding-left:18px}.timeline:before{content:"";position:absolute;left:6px;top:4px;bottom:4px;width:1px;background:var(--border)}.timeline-item{position:relative;padding-bottom:12px}.timeline-item:before{content:"";position:absolute;left:-16px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface)}.matrix-cell{font-size:11px;line-height:1.25;white-space:nowrap;font-variant-numeric:tabular-nums;padding:6px 8px!important}.matrix-cell .l1{font-weight:600;color:var(--fg)}.matrix-cell .l2{color:var(--fg-3);font-size:10px}
