:root{--page:#f9f9f7;--surface-1:#fcfcfb;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#898781;--gridline:#e1e0d9;--border:#0b0b0b1a;--good:#0ca30c;--good-bg:#e3f6e3;--critical:#d03b3b;--critical-bg:#fbe7e7;--warning:#b8790a;--warning-bg:#fef3dc;--accent:#2a78d6;--accent-bg:#e8f0fc;--series-blue:#2a78d6;--series-aqua:#1baf7a;--series-yellow:#eda100;--series-green:#008300;--series-violet:#4a3aa7;--series-red:#e34948;--series-magenta:#e87ba4;--series-orange:#eb6834;--brand-orange:#f2a742;--brand-orange-bg:#fdf1de;--brand-green:#7bc36f;--brand-blue:#4a80b8;--radius:10px;--shadow:0 1px 2px #0b0b0b0f, 0 1px 1px #0b0b0b0a}@media (prefers-color-scheme:dark){:root{--page:#0d0d0d;--surface-1:#1a1a19;--text-primary:#fff;--text-secondary:#c3c2b7;--text-muted:#898781;--gridline:#2c2c2a;--border:#ffffff1a;--good:#0ca30c;--good-bg:#0ca30c2e;--critical:#e66767;--critical-bg:#e667672e;--warning:#fab219;--warning-bg:#fab21929;--accent:#3987e5;--accent-bg:#3987e52e;--series-blue:#3987e5;--series-aqua:#199e70;--series-yellow:#c98500;--series-green:#008300;--series-violet:#9085e9;--series-red:#e66767;--series-magenta:#d55181;--series-orange:#d95926;--brand-orange:#f2a742;--brand-orange-bg:#f2a74229;--brand-green:#7bc36f;--brand-blue:#5c93cc}}*{box-sizing:border-box}html,body{height:100%}body{background:var(--page);color:var(--text-primary);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}#root{min-height:100vh}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{background:linear-gradient(90deg, var(--brand-orange-bg) 0%, transparent 55%);border-bottom:3px solid var(--brand-orange);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 2rem;display:flex}.app-header-brand{align-items:center;gap:.75rem;display:flex}.app-logo{object-fit:contain;filter:drop-shadow(0 1px 2px #0b0b0b40);z-index:1;width:72px;height:72px;margin-bottom:-20px;position:relative}.app-title{letter-spacing:-.01em;margin:0;font-size:1.35rem;font-weight:700}.app-nav{border-bottom:1px solid var(--gridline);gap:.25rem;margin-top:1.25rem;padding:0 2rem;display:flex}.app-nav button{all:unset;cursor:pointer;color:var(--text-secondary);border-bottom:2px solid #0000;padding:.65rem 1rem;font-size:.88rem;transition:color .12s,border-color .12s}.app-nav button:hover{color:var(--text-primary)}.app-nav button.active{color:var(--text-primary);border-bottom-color:var(--accent);font-weight:600}.app-main{flex:1;padding:1.5rem 2rem 2.5rem}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.section-title{margin:0 0 .25rem;font-size:1.05rem;font-weight:600}.section-subtitle{color:var(--text-secondary);max-width:60ch;margin:0 0 1.1rem;font-size:.85rem}.field{color:var(--text-secondary);flex-direction:column;gap:.32rem;font-size:.78rem;display:flex}.field-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}input,select,button{font-family:inherit;font-size:.88rem}input[type=date],input[type=text],input[type=number],select{border:1px solid var(--gridline);background:var(--surface-1);color:var(--text-primary);border-radius:8px;min-width:150px;padding:.5rem .6rem}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{border:1px solid var(--gridline);background:var(--surface-1);color:var(--text-primary);cursor:pointer;border-radius:8px;padding:.55rem 1rem;transition:border-color .12s,color .12s,opacity .12s}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){opacity:.88;color:#fff}button.chip{border-radius:999px;padding:.4rem .75rem;font-size:.82rem}button.chip.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);font-weight:600}table.data-table{border-collapse:collapse;width:100%;font-size:.86rem}.data-table th{text-align:left;border-bottom:1px solid var(--gridline);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;padding:.6rem .65rem;font-size:.74rem;font-weight:600}.data-table td{border-bottom:1px solid var(--gridline);font-variant-numeric:tabular-nums;padding:.6rem .65rem}.data-table tbody tr:hover{background:var(--accent-bg)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.dashboard-top-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:1rem;display:grid}.ledger-columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;display:grid}.stat-tile{border-radius:var(--radius);border:1px solid var(--border);padding:1rem 1.15rem}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:.74rem}.stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:.3rem;font-size:1.55rem;font-weight:700}.stat-sub{color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-top:.2rem;font-size:.84rem}.banner{border-radius:8px;padding:.75rem 1rem;font-size:.88rem}.banner.good{background:var(--good-bg);color:var(--text-primary)}.banner.critical{background:var(--critical-bg);color:var(--text-primary)}.banner.warning{background:var(--warning-bg);color:var(--text-primary)}.text-muted{color:var(--text-secondary);font-size:.85rem}.stack{flex-direction:column;gap:1.5rem;display:flex}@media print{.app-header,.app-nav,.no-print{display:none!important}.app-main{padding:0}.card{box-shadow:none;border:none;padding:0}}@media (width<=640px){.app-header{padding:.7rem 1rem}.app-logo{width:32px;height:32px}.app-title{font-size:1.1rem}.app-nav{gap:0;padding:0 1rem}.app-nav button{padding:.6rem .7rem;font-size:.82rem}.app-main{padding:1rem 1rem 2rem}.card{padding:1rem}.field-row{gap:.6rem}.field-row>.field,.field-row>label{flex:100%}.field input[type=date],.field input[type=text],.field input[type=number],.field select{width:100%;min-width:0}.stat-grid{grid-template-columns:1fr}.stat-value{font-size:1.3rem}}
