:root{--ink:#13231f;--muted:#6b7974;--paper:#f4f1e9;--panel:#fffdf8;--line:#dedbd1;--green:#1d6b50;--mint:#b9e6cd;--orange:#ee8a4a;--shadow:0 10px 30px rgba(25,48,39,.07)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Segoe UI,Arial,sans-serif}.topbar{height:72px;padding:0 max(24px,calc((100vw - 1440px)/2));display:flex;align-items:center;gap:24px;background:var(--ink);color:white}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;font-weight:800;font-size:18px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--mint);color:var(--ink);font-size:22px}.file-state{margin-left:auto;color:#c9d4d0;font-size:13px}.status-dot{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#65d596}.upload-button,.primary-button{cursor:pointer;border:0;border-radius:9px;background:var(--mint);color:var(--ink);padding:11px 16px;font-weight:750}.dashboard{max-width:1440px;margin:auto;padding:38px 24px 64px}.hero{display:flex;justify-content:space-between;align-items:end;margin-bottom:26px}.eyebrow,.panel-title span,.kpi-card span{font-size:11px;letter-spacing:.12em;font-weight:800;color:var(--green)}h1{font-family:Georgia,serif;font-size:42px;line-height:1;margin:7px 0 10px}h2{font-family:Georgia,serif;font-size:22px;margin:5px 0 0}.hero p:last-child{color:var(--muted);margin:0}.text-button{border:0;background:transparent;color:var(--green);font-weight:750;cursor:pointer}.filters{display:grid;grid-template-columns:1.45fr repeat(3,1fr) auto;gap:12px;padding:16px;background:#e9e6dd;border:1px solid var(--line);border-radius:14px;margin-bottom:18px}.filters label{font-size:11px;font-weight:750;color:var(--muted)}select,input{width:100%;margin-top:7px;padding:10px;border:1px solid #d6d5cd;border-radius:8px;background:var(--panel);color:var(--ink)}.date-pair{display:flex;align-items:center;gap:7px}.date-pair input{min-width:0}.reset-button{align-self:end;height:38px;border:1px solid #ccc8bd;border-radius:8px;background:transparent;color:var(--green);font-weight:750;cursor:pointer}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.kpi-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow)}.kpi-card.accent{background:var(--green);color:white}.kpi-card.accent span,.kpi-card.accent small{color:#c5e1d4}.kpi-card strong{display:block;font-family:Georgia,serif;font-size:32px;margin:12px 0 7px}.kpi-card small{color:var(--muted)}.visual-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:14px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow);min-width:0}.trend-panel{min-height:355px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-title select{width:auto;margin:0}.chart{height:250px}.chart svg{width:100%;height:100%;overflow:visible}.grid-line{stroke:#e7e4db;stroke-width:1}.trend-line{fill:none;stroke:var(--green);stroke-width:3}.trend-area{fill:url(#areaGradient)}.chart-label{fill:var(--muted);font-size:11px}.bar-chart{display:grid;gap:14px}.bar-row{display:grid;grid-template-columns:minmax(90px,1fr) 2.2fr auto;gap:12px;align-items:center;font-size:13px}.bar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{height:9px;background:#e7e5dd;border-radius:99px;overflow:hidden}.bar-fill{height:100%;border-radius:99px;background:var(--orange)}.bar-value{font-variant-numeric:tabular-nums;font-weight:750}.table-panel{margin-top:14px}.table-wrap{max-height:350px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:11px;letter-spacing:.05em;position:sticky;top:0;background:var(--panel)}th,td{padding:11px;border-bottom:1px solid #ebe8df}td:nth-child(5){font-weight:750}dialog{border:0;border-radius:16px;padding:0;max-width:520px;width:calc(100% - 32px);box-shadow:0 24px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(12,25,21,.64)}dialog form{padding:24px}.dialog-title{display:flex;justify-content:space-between}.dialog-title h2{font-size:26px}.dialog-title button{border:0;background:none;font-size:25px;cursor:pointer}.mapping-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:22px 0}.mapping-fields label{font-size:12px;font-weight:750}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.secondary-button{border:1px solid var(--line);background:white;border-radius:9px;padding:10px 16px}.toast{position:fixed;right:22px;bottom:22px;background:var(--ink);color:white;padding:13px 18px;border-radius:9px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}.toast.visible{opacity:1;transform:none}@media(max-width:900px){.filters{grid-template-columns:1fr 1fr}.kpi-grid{grid-template-columns:1fr 1fr}.visual-grid{grid-template-columns:1fr}.topbar{gap:12px}.file-state{display:none}}@media(max-width:560px){.dashboard{padding:26px 14px}.topbar{padding:0 14px}.brand span:last-child{display:none}h1{font-size:34px}.filters,.kpi-grid{grid-template-columns:1fr}.hero{align-items:start}.mapping-fields{grid-template-columns:1fr}.bar-row{grid-template-columns:100px 1fr}.bar-value{display:none}}
