:root{--blue:#2563eb;--ink:#0f172a;--muted:#64748b;--line:#dbe4ef;--bg:#eff6ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #93c5fd;outline-offset:3px}.shell{width:min(1120px,100%);margin:auto;padding:0 24px}.topbar{background:#ffffffef;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.nav{height:78px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:850;font-size:17px}.brand small{display:block;color:var(--muted);font-weight:500;font-size:12px}.logo{display:grid;place-items:center;background:var(--blue);color:#fff;width:52px;height:52px;border-radius:16px;font-weight:900;font-size:26px}.logo.small{width:40px;height:40px;border-radius:12px;font-size:22px}.main{padding-top:40px;padding-bottom:48px}.heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px}.eyebrow{color:var(--blue);font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px}h1{font-size:clamp(26px,4vw,36px);line-height:1.2;letter-spacing:-.035em;margin:0 0 10px}h2{font-size:19px;letter-spacing:-.02em;margin:0}h3{font-size:17px;margin:0}.muted{color:var(--muted);margin:0;font-size:14px}.tag{color:#1d4ed8;background:#dbeafe;border:1px solid #bfdbfe;padding:7px 12px;border-radius:999px;font-size:12px;font-weight:750;white-space:nowrap}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 6px 24px #0f172a04}.filters{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end}.field label,.login-form label{display:block;font-weight:700;font-size:13px;margin-bottom:7px}.control{width:100%;min-width:0;padding:11px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:var(--ink);min-height:46px}.control:focus{outline:3px solid #dbeafe;border-color:var(--blue)}.btn{border:0;border-radius:10px;padding:12px 18px;cursor:pointer;font-weight:750;min-height:44px;white-space:nowrap}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-soft{background:#e8f0ff;color:#1d4ed8}.btn:disabled{opacity:.55;cursor:wait}.source-status{display:flex;gap:10px;flex-wrap:wrap;margin:17px 0}.source{font-size:12px;font-weight:650;display:flex;gap:7px;align-items:center}.dot{width:7px;height:7px;border-radius:50%;background:#16a34a}.source.failed .dot{background:#dc2626}.source.failed{color:#b91c1c}.notice{padding:13px 16px;border:1px solid;border-radius:12px;font-size:14px;margin:16px 0}.notice-info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.notice-warn{background:#fffbeb;border-color:#fde68a;color:#92400e}.notice-err{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0 16px}.stat p{color:var(--muted);font-size:13px;margin:0 0 8px}.stat strong{display:block;font-size:40px;letter-spacing:-.045em;line-height:1.2}.stat:first-child{background:var(--blue);border-color:var(--blue);color:#fff}.stat:first-child p,.stat:first-child span{color:#dbeafe}.stat span{display:block;margin-top:8px;font-size:12px;color:var(--muted)}.village-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.village{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#ffffff88;border:1px solid var(--line);padding:14px 18px;border-radius:12px}.village span{font-size:13px;color:#475569}.village strong{font-size:21px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:34px 0 15px}.section-heading .muted{font-size:12px}.day{padding:0;overflow:hidden;margin-bottom:20px}.day-header{padding:19px 22px;display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.day-header p{margin:3px 0 0;color:var(--muted);font-size:12px}.day-total{text-align:right;font-size:12px;color:var(--muted)}.day-total strong{display:block;font-size:23px;color:var(--blue)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:570px;font-size:14px}th,td{padding:16px 20px;border-bottom:1px solid #edf2f7;text-align:right;vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;color:var(--muted)}th:first-child,td:first-child{text-align:left;width:38%}td:last-child,th:last-child{font-weight:800;background:#f8fbff}td:first-child{font-weight:650}td small{display:block;font-weight:400;font-size:11px;color:var(--muted);margin-top:3px}tfoot td{font-weight:800;background:#f8fafc;border-bottom:0}.empty{text-align:center;padding:55px 24px;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:18px;margin-bottom:7px}.footnote{color:var(--muted);font-size:12px;line-height:1.7;margin:20px 0 0}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eaf2ff,#ecfeff)}.login-card{max-width:440px;width:100%;background:#fff;padding:36px;border:1px solid var(--line);border-radius:24px;box-shadow:0 24px 70px #0f172a15}.login-card .eyebrow{margin-top:24px}.login-form{margin-top:28px}.login-form .btn{width:100%;margin-top:14px;display:flex;justify-content:space-between}.login-card .footnote{text-align:center}@media(max-width:640px){.shell{padding-left:16px;padding-right:16px}.main{padding-top:25px}.nav{height:68px}.heading{align-items:flex-start;flex-direction:column;gap:8px}.heading .tag{font-size:11px}.filters{grid-template-columns:1fr 1fr;padding:16px;gap:12px}.filters .btn{grid-column:1/-1}.stats{gap:10px}.stat{padding:16px 12px}.stat strong{font-size:30px}.stat p{font-size:11px}.stat span{font-size:10px}.village-totals{grid-template-columns:1fr;gap:8px}.village{padding:11px 16px}.section-heading{align-items:flex-start;flex-direction:column;gap:5px}.day-header{padding:16px}.day-total strong{font-size:21px}.day-header h3{font-size:15px}.login-card{padding:28px}h1{font-size:28px}.source-status{gap:9px 15px}}

.table-hint{display:none}@media(max-width:640px){.table-hint{display:block;font-size:11px;color:#64748b;padding:10px 16px;margin:0;border-bottom:1px solid #edf2f7}}
