:root{--ground:#f4f5f2;--surface:#ffffff;--surface-2:#fafaf8;--line:#dce0da;--line-soft:#eef0ec;--ink:#16211c;--ink-2:#3e4a44;--muted:#55605a;--brand:#0e6b53;--brand-ink:#0a4f3d;--brand-soft:#e9f4ef;--nav:#13241e;--nav-2:#1e3a31;--nav-ink:#dce7e2;--warn:#6b3f0c;--warn-soft:#fbf0e1;--bad:#7a231e;--bad-soft:#fbe9e7;--info:#1f4a7a;--info-soft:#e6eef8;--radius:12px;--mono:"IBM Plex Mono",ui-monospace,monospace;--sans:"IBM Plex Sans",system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:14px}a{color:var(--brand)}a:hover{color:var(--brand-ink)}h1{font-size:24px}h1,h2{margin:0}h2{font-size:16px}.muted{color:var(--muted)}.num{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}th.num{font-family:var(--sans)}.shell{flex-wrap:wrap;min-height:100vh}.nav,.shell{display:flex}.nav{flex:1 1 232px;max-width:100%;background:var(--nav);padding:20px 14px;flex-direction:column;gap:16px}.nav,.nav a{color:var(--nav-ink)}.nav a{text-decoration:none;padding:9px 12px;border-radius:6px;display:block}.nav a.active{background:var(--nav-2);color:#fff;font-weight:600}.nav .group{font-size:11px;color:#8fa79e;text-transform:uppercase;letter-spacing:.06em;padding:10px 12px 2px}.brand{display:flex;align-items:center;gap:10px;padding:0 8px;color:#fff;font-weight:700;font-size:17px}.brand i{width:32px;height:32px;border-radius:8px;background:#2fa37f;color:#0b1a15;display:grid;place-items:center;font-style:normal}.main{flex:999 1 560px;min-width:0;padding:24px 28px 48px;flex-direction:column;gap:18px}.main,.row{display:flex}.row{flex-wrap:wrap;gap:12px;align-items:center}.between{justify-content:space-between}.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.kpi .label{font-size:13px;color:var(--muted)}.kpi .value{font-family:var(--mono);font-size:22px;margin-top:6px}.btn,button{font:inherit;min-height:40px;padding:0 14px;border-radius:8px;border:1px solid #b9cfc6;background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.btn.primary,button.primary{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}button.danger{color:var(--bad);border-color:#e8c2be}button:disabled{opacity:.55;cursor:default}label.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}input,select,textarea{font:inherit;font-size:14px;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:0 10px;min-height:38px;background:#fff}textarea{padding:8px 10px}input.num{text-align:right}.tabs{display:flex;flex-wrap:wrap;gap:6px}.tabs button{border-radius:20px;min-height:36px;font-size:13px;border-color:var(--line)}.tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line);font-weight:600}td,th{padding:10px 12px}td{border-bottom:1px solid var(--line-soft);vertical-align:top}tr.total td{font-weight:600;border-top:1px solid var(--ink)}td input,td select{width:100%;min-width:80px}.chip{border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600;white-space:nowrap;display:inline-block}.chip.ok{background:var(--brand-soft);color:var(--brand-ink)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.info{background:var(--info-soft);color:var(--info)}.chip.plain{background:var(--line-soft);color:var(--ink-2)}.alert{border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.45}.alert.bad{background:var(--bad-soft);color:var(--bad)}.alert.info{background:var(--info-soft);color:var(--info)}.alert.ok{color:var(--brand-ink)}.alert.ok,.drop{background:var(--brand-soft)}.drop{border:2px dashed #7db8a4;border-radius:14px;padding:22px}.statement{max-width:900px}.statement h3{text-align:center;margin:0;font-size:17px}.statement .sub{text-align:center;color:var(--muted);font-size:13px;margin-bottom:18px}.statement td.label.indent{padding-left:28px}