:root{--red:#cf1632;--red-dk:#a8102a;--charcoal:#363636;--black:#2b2b2b;--steel:#54585a;--muted:#7a7e80;--off:#f7f7fa;--rule:#dcdcdf;--rule-strong:#c1c1c1;--white:#ffffff;--good:#2e7d32;--warn:#b26a00;--bad:#cf1632;--py:#b9bcbf;--font:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,"Cascadia Mono",Consolas,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--off);color:var(--black);font-family:var(--font);font-size:15px;line-height:1.45}a{color:inherit}h1,h2,h3{margin:0;line-height:1.15}h1{font-size:28px;letter-spacing:-.01em}h1,h2{font-weight:700}h2{font-size:18px}h3{font-size:15px;font-weight:700}p{margin:0}button,input,select,textarea{font:inherit}.top{background:var(--charcoal);color:var(--white)}.top-inner{max-width:1280px;margin:0 auto;padding:0 20px;gap:22px;min-height:60px}.brand,.top-inner{display:flex;align-items:center}.brand{gap:12px;text-decoration:none;flex:none}.brand img{height:26px;width:auto;display:block}.brand span{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#d9d9d9;border-left:1px solid #5c5c5c;padding-left:12px}.nav{display:flex;gap:2px;overflow-x:auto;flex:1 1;scrollbar-width:none}.nav a{text-decoration:none;color:#e4e4e4;padding:19px 12px 17px;font-size:14px;white-space:nowrap;border-bottom:3px solid transparent}.nav a.on,.nav a:hover{color:var(--white)}.nav a.on{border-bottom-color:var(--red)}.who{display:flex;align-items:center;gap:12px;font-size:13px;flex:none}.who,.who a{color:#cfcfcf}.scopebar{background:var(--white);border-bottom:1px solid var(--rule)}.scopebar-inner{max-width:1280px;margin:0 auto;padding:8px 20px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--steel)}.scopebar select{border:1px solid var(--rule-strong);border-radius:4px;padding:4px 8px;background:var(--white)}.scopebar .viewing{font-weight:600;color:var(--black)}.pill{display:inline-block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:3px;background:var(--off);color:var(--steel);border:1px solid var(--rule)}.pill.red{background:#fbe7ea;color:var(--red-dk);border-color:#f2c2ca}main.page{max-width:1280px;margin:0 auto;padding:28px 20px 64px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);font-weight:700;margin-bottom:6px}.sub{color:var(--steel);margin-top:6px;max-width:760px}.asof{font-size:12px;color:var(--muted);text-align:right}.grid{display:grid;grid-gap:16px;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}@media (max-width:960px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-main,.g2{grid-template-columns:1fr}}@media (max-width:560px){.g3,.g4{grid-template-columns:1fr}h1{font-size:23px}}.card{background:var(--white);border:1px solid var(--rule);border-radius:6px;padding:18px 20px;min-width:0}.card+.card{margin-top:0}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;flex-wrap:wrap}.card-head p{font-size:13px;color:var(--muted)}.section{margin-top:28px}.section>h2{margin-bottom:12px}.kpi .label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel)}.kpi .value{font-size:30px;font-weight:700;margin-top:6px;letter-spacing:-.01em}.kpi .note{font-size:13px;color:var(--muted);margin-top:4px}.kpi.accent{border-top:4px solid var(--red)}.up{color:var(--good)}.down{color:var(--bad)}table.t{width:100%;border-collapse:collapse;font-size:14px}table.t th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);font-weight:600;padding:8px 10px;border-bottom:2px solid var(--charcoal);white-space:nowrap}table.t td{padding:9px 10px;border-bottom:1px solid var(--rule);vertical-align:top}table.t td.n,table.t th.n{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}table.t tr:hover td{background:#fafafb}table.t th button{all:unset;cursor:pointer}.tablewrap{overflow-x:auto}.small{font-size:12px;color:var(--muted)}.tag{display:inline-block;font-size:11px;font-weight:600;padding:2px 7px;border-radius:3px;white-space:nowrap}.tag.new{background:#e3f1fb;color:#0f5a8a}.tag.returning{background:#eef0fb;color:#3a46a0}.tag.growing{background:#e6f3e7;color:#22652a}.tag.steady{background:#f0f0f2;color:var(--steel)}.tag.declining{background:#fdf0e1;color:#8a4f00}.tag.lapsed{background:#fbe7ea;color:var(--red-dk)}.tag.inactive{background:#f0f0f2;color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--charcoal);background:var(--charcoal);color:var(--white);padding:8px 14px;border-radius:4px;cursor:pointer;text-decoration:none;font-size:14px}.btn.ghost{background:var(--white);color:var(--charcoal)}.btn.red{background:var(--red);border-color:var(--red)}.btn:disabled{opacity:.5;cursor:default}.field{display:grid;grid-gap:4px;gap:4px;margin-bottom:12px}.field label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--steel);font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--rule-strong);border-radius:4px;padding:8px 10px;background:var(--white);width:100%}.field textarea{min-height:84px;resize:vertical}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.filters input,.filters select{border:1px solid var(--rule-strong);border-radius:4px;padding:7px 10px;background:var(--white)}.chip{border:1px solid var(--rule-strong);background:var(--white);border-radius:20px;padding:5px 12px;cursor:pointer;font-size:13px}.chip.on{background:var(--charcoal);color:var(--white);border-color:var(--charcoal)}.notice{background:#fff8e6;border:1px solid #f0d9a0;color:#5e4500;border-radius:6px;padding:12px 14px;font-size:14px}.list-plain{list-style:none;padding:0;margin:0}.list-plain li{padding:10px 0;border-bottom:1px solid var(--rule)}.list-plain li:last-child{border-bottom:0}.bar{height:8px;background:#ececef;border-radius:4px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--red)}.foot{max-width:1280px;margin:0 auto;padding:0 20px 40px;font-size:12px;color:var(--muted)}.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.login-left{background:var(--charcoal);color:var(--white);padding:56px;display:flex;flex-direction:column;justify-content:space-between}.login-left img{width:220px;height:auto}.login-left h1{font-size:40px;margin-top:40px}.login-left p{color:#d0d0d0;margin-top:14px;max-width:460px;font-size:16px}.login-right{display:flex;align-items:center;justify-content:center;padding:40px 24px}.login-box{width:100%;max-width:380px}@media (max-width:860px){.login{grid-template-columns:1fr}.login-left{padding:32px 24px}.login-left h1{font-size:30px;margin-top:24px}}.mapbox{height:620px;border-radius:6px;overflow:hidden;border:1px solid var(--rule)}@media (max-width:700px){.mapbox{height:460px}}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--steel);margin-top:10px}.legend i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;vertical-align:-1px}