:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--plane:#f9f9f7;--surface:#fcfcfb;--surface-sunken:#f2f2ef;--ink:#0b0b0b;--ink-secondary:#52514e;--ink-muted:#898781;--border:#0b0b0b1a;--border-strong:#c3c2b7;--grid:#e1e0d9;--brand:#2a78d6;--brand-strong:#1c5cab;--brand-wash:#eaf2fd;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#008300;--series-7:#4a3aa7;--series-8:#e34948;--good:#0ca30c;--good-text:#006300;--warning:#fab219;--serious:#ec835a;--critical:#d03b3b;--radius:10px;--radius-sm:6px;--shadow:0 1px 2px #0b0b0b0d, 0 1px 8px #0b0b0b0a;--font:system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);background:var(--plane);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:22px}h2{font-size:17px}h3{font-size:14px}p{margin:0}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:inherit;cursor:pointer}.btn{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:7px;padding:8px 14px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-sunken)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong)}.btn-danger{color:var(--critical);border-color:#d03b3b59}.btn-danger:hover:not(:disabled){background:#d03b3b12}.btn-sm{padding:5px 10px;font-size:13px}.btn-ghost{color:var(--ink-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-sunken)}input,select,textarea{color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;min-width:0;max-width:100%;padding:8px 10px;font-family:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #2a78d626}input[type=date],input[type=time]{appearance:none;min-height:38px}input[type=checkbox]{width:auto;accent-color:var(--brand)}textarea{resize:vertical;min-height:76px}label{color:var(--ink-secondary);font-size:13px;font-weight:500}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field-help{color:var(--ink-muted);font-size:12px}.field-error{color:var(--critical);font-size:12px;font-weight:500}.field input.invalid,.field select.invalid,.field textarea.invalid{border-color:var(--critical)}.required-mark{color:var(--critical)}.shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:232px;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:18px 18px 16px;display:flex}.brand-mark{background:var(--brand);color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:15px;font-weight:700;display:grid}.brand-name{letter-spacing:-.02em;font-size:15px;font-weight:650}.brand-sub{color:var(--ink-muted);font-size:11px}.nav{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.nav-group{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);padding:14px 10px 6px;font-size:11px;font-weight:600}.nav-item{border-radius:var(--radius-sm);color:var(--ink-secondary);align-items:center;gap:9px;padding:8px 10px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-sunken);text-decoration:none}.nav-item.active{background:var(--brand-wash);color:var(--brand-strong)}.nav-icon{text-align:center;flex-shrink:0;width:17px}.sidebar-footer{border-top:1px solid var(--border);padding:12px}.user-chip{align-items:center;gap:9px;margin-bottom:8px;display:flex}.avatar{background:var(--surface-sunken);width:30px;height:30px;color:var(--ink-secondary);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:600;display:grid}.user-name{font-size:13px;font-weight:600;line-height:1.2}.user-role{color:var(--ink-muted);font-size:11px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:5;justify-content:space-between;align-items:center;height:58px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-title{font-size:15px;font-weight:600}.topbar-sub{color:var(--ink-muted);font-size:12px}.content{flex:1;padding:24px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.page-sub{color:var(--ink-secondary);margin-top:3px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow-x:hidden}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.card-body{padding:16px}.card-title{font-size:14px;font-weight:600}.card-sub{color:var(--ink-muted);font-size:12px}.filters-toggle{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-size:14px;font-weight:600}.grid{gap:16px;display:grid}.grid-kpi{grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr))}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row-end{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.spacer{flex:1}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);border-top:3px solid var(--series-1);min-width:0;padding:14px 16px}.stat-label{color:var(--ink-secondary);font-size:12px;font-weight:500}.stat-scope{color:var(--ink-muted);margin-top:1px;font-size:11px}.stat-value{letter-spacing:-.025em;margin-top:8px;font-size:27px;font-weight:650;line-height:1.1}.stat-unit{color:var(--ink-muted);margin-left:3px;font-size:13px;font-weight:500}.stat-delta{align-items:center;gap:5px;margin-top:6px;font-size:12px;font-weight:600;display:flex}.delta-up{color:var(--good-text)}.delta-down{color:var(--critical)}.delta-flat{color:var(--ink-muted)}.hero-figure{letter-spacing:-.03em;overflow-wrap:anywhere;font-size:clamp(24px,3.2vw,40px);font-weight:650;line-height:1.05}.stat-wide{grid-column:span 2}@media (width<=720px){.stat-wide{grid-column:span 1}}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);padding:9px 14px;font-size:11px;font-weight:600}tbody td{border-bottom:1px solid var(--grid);vertical-align:middle;padding:10px 14px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-sunken)}td input.invalid,td select.invalid{border-color:var(--critical)}tr.row-invalid td{background:#d03b3b0f}.cell-date{flex-direction:column;gap:3px;min-width:130px;display:flex}.row-selected>td{background:var(--surface-sunken)}.row-form-row:hover,.row-form-row>td{background:var(--surface)}.row-form-cell{border-bottom:1px solid var(--border);padding:0}.row-form{padding:16px 14px 20px;position:sticky;left:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.badge{background:var(--surface-sunken);color:var(--ink-secondary);border:1px solid var(--border);white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.badge-good{color:var(--good-text);background:#0ca30c17;border-color:#0ca30c40}.badge-warning{color:#7a5200;background:#fab21924;border-color:#fab21959}.badge-critical{color:var(--critical);background:#d03b3b14;border-color:#d03b3b40}.badge-neutral{color:var(--ink-secondary)}.alert{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);align-items:flex-start;gap:11px;padding:11px 13px;display:flex}.alert+.alert{margin-top:8px}.alert-icon{flex-shrink:0;font-size:14px;line-height:1.35}.alert-title{font-size:13px;font-weight:600}.alert-detail{color:var(--ink-secondary);margin-top:1px;font-size:12px}.alert-critical{border-left:3px solid var(--critical)}.alert-serious{border-left:3px solid var(--serious)}.alert-warning{border-left:3px solid var(--warning)}.alert-good{border-left:3px solid var(--good)}.banner{border-radius:var(--radius-sm);align-items:center;gap:8px;padding:10px 13px;font-size:13px;font-weight:500;display:flex}.banner-error{color:var(--critical);background:#d03b3b14;border:1px solid #d03b3b40}.banner-success{color:var(--good-text);background:#0ca30c14;border:1px solid #0ca30c40}.banner-info{background:var(--brand-wash);color:var(--brand-strong);border:1px solid #2a78d640}.meter{background:var(--surface-sunken);border-radius:4px;min-width:70px;height:7px;overflow:hidden}.meter-fill{background:var(--brand);border-radius:4px;height:100%}.login-shell{background:linear-gradient(160deg, var(--brand-wash) 0%, var(--plane) 55%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:100%;max-width:396px;padding:28px}.login-head{text-align:center;margin-bottom:22px}.login-head .brand-mark{border-radius:11px;width:42px;height:42px;margin:0 auto 12px;font-size:19px}.filter-select{width:210px;max-width:100%}.filter-select-sm{width:120px;max-width:100%}.filter-select-md{width:150px;max-width:100%}.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.muted{color:var(--ink-muted)}.secondary{color:var(--ink-secondary)}.small{font-size:12px}.tabular{font-variant-numeric:tabular-nums}.strong{font-weight:600}.empty-state{text-align:center;color:var(--ink-muted);padding:40px 20px}.empty-state-icon{margin-bottom:8px;font-size:26px}.divider{background:var(--border);height:1px;margin:14px 0}.chip-list{flex-wrap:wrap;gap:5px;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px;min-width:0;display:grid}.full-width{grid-column:1/-1}.form-section{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:12px;padding:14px;display:flex}.form-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;font-weight:650}.form-section-amount input{max-width:240px}.check-row{cursor:pointer;align-items:flex-start;gap:8px;font-weight:400;display:flex}.check-row input[type=checkbox]{flex-shrink:0;margin-top:3px}.spinner{border:2px solid var(--grid);border-top-color:var(--brand);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{color:var(--ink-muted);justify-content:center;align-items:center;gap:10px;padding:44px;display:flex}.chart-tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 11px;font-size:12px;box-shadow:0 4px 14px #0b0b0b1f}.chart-tooltip-label{margin-bottom:4px;font-weight:600}.chart-tooltip-row{color:var(--ink-secondary);align-items:center;gap:6px;display:flex}.chart-legend{color:var(--ink-secondary);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-swatch{border-radius:3px;flex-shrink:0;width:10px;height:10px}.itemized{flex-direction:column;gap:12px;display:flex}.itemized-count{flex-direction:column;gap:4px;max-width:220px;display:flex}.itemized-rows{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken);flex-direction:column;gap:8px;padding:10px;display:flex}.itemized-row-label{color:var(--ink-secondary);flex-shrink:0;min-width:74px;font-size:12px;font-weight:600}.group-item{border-bottom:1px dashed var(--border);padding-bottom:12px}.group-item:last-child{border-bottom:none;padding-bottom:0}.group-item .form-grid{margin-top:6px}.builder-field{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken);padding:14px}.builder-field+.builder-field{margin-top:10px}.builder-field-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.drag-order{color:var(--ink-muted);min-width:20px;font-size:12px;font-weight:600}.nav-overlay,.nav-toggle,.nav-close{display:none}@media (width<=860px){.sidebar{z-index:30;height:100dvh;transition:transform .22s;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:0 0 40px #0b0b0b2e}.sidebar.open{transform:translate(0)}.nav-overlay{z-index:20;opacity:0;pointer-events:none;background:#0b0b0b66;transition:opacity .22s;display:block;position:fixed;inset:0}.nav-overlay.visible{opacity:1;pointer-events:auto}.nav-toggle{padding:7px 10px;font-size:19px;line-height:1;display:inline-flex}.nav-close{margin-left:auto;display:inline-flex}.sidebar-brand{padding-right:12px}.content{padding:16px}.topbar{padding:0 12px}.topbar-sub{display:none}}@media (width<=640px){h1{font-size:19px}.content{padding:12px}.card-body{padding:13px}.grid,.stack{gap:12px}.page-header{flex-direction:column;align-items:stretch;gap:12px}.page-header .row{width:100%}.filter-select,.filter-select-sm,.filter-select-md{flex:140px;width:auto}input,select,textarea{font-size:16px}.btn{min-height:42px;padding:10px 14px}.btn-sm{min-height:36px;padding:7px 11px}.nav-item{padding:11px 10px}.stat{padding:12px 13px}.stat-value{font-size:24px}.hero-figure{font-size:38px}thead th,tbody td{padding:9px 11px}.card-header{flex-wrap:wrap;padding:12px 13px}.login-card{padding:22px}.row-end{justify-content:stretch}.row-end .btn{flex:1;justify-content:center}.schedule-filters{display:none}.schedule-filters.is-open{display:block}.card-body-collapsible{padding:0}}
