:root{
  --bg:#FAF8F5;--surface:#fff;--surface-2:#F4EFE8;--border:#E5DDD1;
  --text:#211C17;--text-2:#6B5F52;--text-3:#928576;
  --accent:#0F6E88;--accent-ink:#0A4F63;--accent-soft:#E2EEF2;
  --good:#2F7D53;--good-bg:#E7F3EC;--warn:#9C6B14;--warn-bg:#F8F0DD;--crit:#C0392B;--crit-bg:#FBEAE7;
  --font:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --disp:"Charter","Iowan Old Style",Georgia,serif;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#16120D;--surface:#211B14;--surface-2:#2B241B;--border:#3A3227;
  --text:#F0EAE1;--text-2:#AC9F8E;--text-3:#847767;
  --accent:#57B6D1;--accent-ink:#8FD3E6;--accent-soft:#173039;
  --good:#79C79A;--good-bg:#1D3126;--warn:#E3B463;--warn-bg:#362B16;--crit:#F1897E;--crit-bg:#3A211D;
}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.5}
.wrap{max-width:1120px;margin:0 auto;padding:26px 20px 70px}
.top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:22px}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);font-weight:600}
h1{font-family:var(--disp);font-size:28px;margin:4px 0 2px}
.sub{color:var(--text-2);font-size:13px}
.hint{color:var(--text-3);font-weight:400;font-size:13px}
.btn{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:8px 15px;font:inherit;font-size:13px;cursor:pointer}
.btn:hover{border-color:var(--accent)}
section{margin-bottom:26px}
.secrow{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.sec{font-family:var(--disp);font-size:16px;margin:0;display:flex;align-items:center;gap:8px}
.sec::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--accent)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:var(--surface);border:1px solid var(--border);color:var(--text-2);border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}
.chip:hover{border-color:var(--accent);color:var(--text)}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px}
.kpi .lab{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);font-weight:600}
.kpi .big{font-family:var(--disp);font-size:25px;font-weight:600}
.kpi .foot{font-size:12px;color:var(--text-2)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px}
.lcard h3{margin:0 0 8px;font-size:15px}
.metaRow{font-size:13px;color:var(--text-2);margin:4px 0}
.bar{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin:6px 0}
.bar>span{display:block;height:100%;background:var(--accent)}
.drill{cursor:pointer;border-bottom:1px dotted var(--text-3)}
.drill:hover{color:var(--accent);border-color:var(--accent)}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600}
.pill.act{background:var(--good-bg);color:var(--good)}
.pill.dev{background:var(--warn-bg);color:var(--warn)}
.pill.pau{background:var(--surface-2);color:var(--text-2)}
.pill.won{background:var(--good-bg);color:var(--good)}
.pill.lost{background:var(--crit-bg);color:var(--crit)}
.pill.open{background:var(--accent-soft);color:var(--accent-ink)}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.row{display:grid;grid-template-columns:150px 1fr 40px;align-items:center;gap:10px;margin:7px 0;font-size:13px;cursor:pointer}
.row:hover .n{color:var(--accent)}
.row .t{height:18px;background:var(--surface-2);border-radius:5px;overflow:hidden}
.row .t>span{display:block;height:100%;background:var(--accent);opacity:.85}
.row .v{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
table{width:100%;border-collapse:collapse;font-size:13px;min-width:720px}
.scroll{overflow-x:auto}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);padding:9px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
input,select{font:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);width:100%}
.linkbtn{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;font-size:12px;padding:0 4px}
.linkbtn.del{color:var(--crit)}
a.dl{color:var(--accent);text-decoration:none;font-weight:600}
a.dl:hover{text-decoration:underline}
footer{color:var(--text-3);font-size:12px;text-align:center;margin-top:24px}
.err{background:var(--warn-bg);color:var(--warn);padding:12px 16px;border-radius:10px;font-size:13px}
/* modal */
.overlay{position:fixed;inset:0;background:rgba(15,10,5,.5);display:none;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto;z-index:50}
.overlay.show{display:flex}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;max-width:820px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modalhead{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}
.modalhead h3{margin:0;font-family:var(--disp);font-size:17px}
.x{background:none;border:none;font-size:18px;color:var(--text-2);cursor:pointer}
#modalBody{padding:12px 20px 20px;max-height:70vh;overflow:auto}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid label{font-size:12px;color:var(--text-2);display:flex;flex-direction:column;gap:4px}
.form-grid .full{grid-column:1/-1}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
@media(max-width:720px){.cols2{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}}
