:root { --bg:#FBF8F1; --ink:#1E2A3F; --muted:#5A6678; --hair:#E4DCC9; --navy:#12254A; --acc:#B5521F; --tint:#EEF1F7; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.5 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; -webkit-text-size-adjust:100%; }
header { background:var(--navy); color:#fff; padding:14px 16px; }
.in { max-width:760px; margin:0 auto; }
.brand { display:flex; align-items:center; gap:12px; }
.brand img { width:46px; height:46px; border-radius:10px; background:#FBF8F1; object-fit:contain; }
.brand b { letter-spacing:.12em; font-size:20px; display:block; }
.brand small { display:block; color:#E8C48A; letter-spacing:.1em; font-size:11px; font-weight:600; }
h1 { font-size:26px; line-height:1.2; margin:20px 16px 4px; max-width:760px; margin-inline:auto; padding-inline:16px; }
.sub { margin:0 auto; padding:0 16px 8px; max-width:760px; color:var(--muted); font-size:14.5px; }
.bar { position:sticky; top:0; z-index:5; background:var(--bg); border-bottom:1px solid var(--hair); padding:10px 16px; }
.chips { display:flex; gap:8px; overflow-x:auto; max-width:760px; margin:0 auto; -webkit-overflow-scrolling:touch; }
.chip { flex:none; font:inherit; font-size:14px; font-weight:600; color:var(--navy); background:#fff; border:1px solid #c9d1e3; border-radius:99px; padding:8px 16px; cursor:pointer; }
.chip[aria-pressed="true"] { background:var(--navy); border-color:var(--navy); color:#fff; }
main { max-width:760px; margin:0 auto; padding:8px 16px 140px; }
.mill { background:#fff; border:1px solid var(--hair); border-radius:16px; margin:14px 0; overflow:hidden; }
.mill h2 { margin:0; padding:14px 16px; font-size:17px; background:var(--tint); display:flex; justify-content:space-between; gap:10px; align-items:baseline; }
.mill h2 small { font-weight:500; color:var(--muted); font-size:13px; }
.grp { padding:8px 16px 2px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--acc); }
table { width:100%; border-collapse:collapse; }
td { padding:10px 16px; border-top:1px solid #efe9da; font-size:15.5px; vertical-align:baseline; }
td.c { font-weight:700; width:64px; white-space:nowrap; }
td.d { color:var(--muted); font-size:14px; }
td.r { text-align:right; font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums; }
.note { font-size:13.5px; color:var(--muted); margin:16px 2px; }
.cta { position:fixed; left:0; right:0; bottom:0; background:#fff; border-top:1px solid var(--hair); padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px)); }
.cta .in { display:flex; gap:10px; }
.btn { flex:1; text-align:center; text-decoration:none; font-weight:700; font-size:15px; padding:13px 10px; border-radius:99px; border:1px solid var(--navy); color:var(--navy); background:#fff; }
.btn.p { background:#1F7A4D; border-color:#1F7A4D; color:#fff; }
.btn.n { background:var(--navy); color:#fff; }
.err { padding:30px 16px; text-align:center; color:var(--muted); }
@media print { header { background:#fff; color:#000; } .bar,.cta { display:none; } .mill { break-inside:avoid; } }
.tap { margin:6px 2px 0; font-size:13.5px; color:var(--muted); }
tr[data-k] { cursor:pointer; }
tr[data-k]:hover td, tr[data-k]:focus-visible td { background:#F6F3EA; }
tr[data-k]:focus-visible { outline:2px solid var(--navy); outline-offset:-2px; }
.chg { display:block; font-size:12px; font-weight:700; margin-top:1px; }
.chg.up { color:#B5503C; } .chg.dn { color:#2F7D4F; }
#dt { position:fixed; inset:0; z-index:20; background:rgba(10,20,40,.55); display:flex; align-items:flex-end; justify-content:center; }
#dt[hidden] { display:none; }
.dtb { background:#fff; width:100%; max-width:640px; max-height:92vh; overflow-y:auto; border-radius:18px 18px 0 0; padding:20px 18px calc(20px + env(safe-area-inset-bottom,0px)); position:relative; }
@media (min-width:700px) { #dt { align-items:center; } .dtb { border-radius:18px; } }
.dtb .x { position:absolute; top:12px; right:12px; width:36px; height:36px; border-radius:99px; border:0; background:var(--tint); font-size:22px; line-height:1; cursor:pointer; color:var(--ink); }
.dtb h3 { margin:0 44px 2px 0; font-size:20px; line-height:1.25; }
.dtb .ml { margin:0; color:var(--muted); font-size:14px; }
.rng { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:18px 0 6px; flex-wrap:wrap; }
.rng b { font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--acc); }
.rng span { display:flex; gap:4px; background:var(--tint); border-radius:99px; padding:3px; }
.rng button { font:inherit; font-size:13px; font-weight:600; border:0; background:transparent; color:var(--navy); border-radius:99px; padding:5px 12px; cursor:pointer; }
.rng button[aria-pressed="true"] { background:var(--navy); color:#fff; }
.ch { width:100%; height:auto; display:block; }
.ch .gl { stroke:#ECE6D6; stroke-width:1; }
.ch .yl, .ch .xl { fill:#5A6678; font-size:12px; font-family:inherit; }
.ch .ar { fill:#12254A; fill-opacity:.07; }
.ch .ln { fill:none; stroke:#12254A; stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; }
.ch .pt { fill:#fff; stroke:#12254A; stroke-width:2; } .ch .pt.last { fill:#12254A; }
.stats { display:flex; gap:8px 18px; flex-wrap:wrap; font-size:14px; color:var(--muted); margin-top:4px; }
.stats b { color:var(--ink); font-variant-numeric:tabular-nums; }
.building { background:var(--tint); border-radius:12px; padding:14px; color:var(--muted); font-size:14px; margin:6px 0 0; }
.al { margin-top:20px; border-top:1px solid var(--hair); padding-top:16px; }
.al h4 { margin:0; font-size:17px; } .al > p { margin:4px 0 12px; color:var(--muted); font-size:14px; }
.ag { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.ag label { display:flex; flex-direction:column; gap:4px; font-size:13px; font-weight:600; color:var(--muted); min-width:0; }
.ag .f2 { grid-column:1 / -1; }
.ag input, .ag select { font:inherit; font-size:16px; color:var(--ink); background:#fff; border:1px solid #D9D1BE; border-radius:10px; padding:10px 12px; width:100%; min-width:0; }
.ag input:focus, .ag select:focus { outline:2px solid var(--navy); outline-offset:1px; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.go { margin-top:12px; width:100%; font:inherit; font-weight:700; font-size:15px; padding:13px; border-radius:99px; border:0; background:var(--navy); color:#fff; cursor:pointer; }
.go:disabled { opacity:.6; }
.aerr { color:#A63D3D; font-size:14px; margin:8px 0 0; }
.adone { background:#E7F1EA; color:#1F5E3B; border-radius:12px; padding:14px; font-weight:600; margin:0; }

.cta .btn { white-space:nowrap; }
@media (max-width:420px) { .cta .in { gap:6px; } .cta .btn { font-size:14px; padding:12px 4px; } }

/* filters + PDF */
#flt { max-width:760px; margin:0 auto; padding:10px 16px 0; }
#flt .in { display:grid; gap:8px; }
#flt .fr { display:flex; align-items:center; gap:8px; min-width:0; }
#flt .fl { flex:none; width:48px; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--acc); }
#flt .chips2 { display:flex; gap:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding:2px 0; min-width:0; scrollbar-width:thin; }
.chip.sm { font-size:13px; padding:6px 12px; }
.fq { flex:1 1 auto; min-width:0; font:inherit; font-size:16px; color:var(--ink); background:#fff; border:1px solid #c9d1e3; border-radius:99px; padding:9px 16px; }
.fq:focus, .fs:focus { outline:2px solid var(--navy); outline-offset:1px; }
.fs { flex:none; font:inherit; font-size:14px; color:var(--navy); background:#fff; border:1px solid #c9d1e3; border-radius:99px; padding:9px 12px; max-width:46%; }
#flt .act { justify-content:space-between; flex-wrap:wrap; }
.fsum { font-size:13px; color:var(--muted); flex:1 1 auto; }
.lnk { font:inherit; font-size:13px; font-weight:700; color:var(--navy); background:none; border:0; text-decoration:underline; cursor:pointer; padding:6px 4px; }
.pdfb { font:inherit; font-size:14px; font-weight:700; color:#fff; background:var(--acc); border:0; border-radius:99px; padding:10px 18px; cursor:pointer; }
.pdfb:disabled { opacity:.6; }
.low { display:inline-block; margin-inline-end:8px; font-size:11px; font-weight:700; color:#1F5E3B; background:#E7F1EA; border-radius:99px; padding:1px 8px; vertical-align:middle; }
@media print { #flt { display:none; } }

td.c { width:92px; }
.star { all:unset; cursor:pointer; box-sizing:border-box; min-width:30px; min-height:30px; display:inline-flex; align-items:center; justify-content:center; margin-inline-end:4px; font-size:19px; line-height:1; color:#b9b1a0; border-radius:8px; }
.star[aria-pressed="true"] { color:#d08a1c; }
.star:focus-visible { outline:2px solid var(--navy); }
.chip:disabled { opacity:.5; cursor:default; }
.fhint { font-size:12.5px; color:#5a6678; align-self:center; margin-inline-start:8px; }
