/* Coverage page */
.covpage{max-width:1320px;
  --c-l2:#1b7a33;--c-l1:#8fca9c;--c-t:#a3a39e;--c-v:#d2d2cc;--c-n:#e9e9e4;--c-bg:#e9e9e5;--c-sea:#f6f6f3;--c-edge:#fff;
  --c-cell-l:#16702e;--c-cell-t:#6f6f6a;--glass:rgba(255,255,255,.78);--glass-line:rgba(17,17,17,.08);--glass-sh:0 8px 28px rgba(0,0,0,.10),0 1px 3px rgba(0,0,0,.08)}
[hidden]{display:none!important}
.cov{margin-top:44px}
.cov-map{position:relative;height:clamp(560px,80vh,860px);border-radius:28px;overflow:hidden;background:var(--c-sea);
  box-shadow:inset 0 0 0 1px rgba(17,17,17,.07);touch-action:none;user-select:none;-webkit-user-select:none;isolation:isolate}
#m,#cv{position:absolute;inset:0;width:100%;height:100%;display:block}
#m{cursor:grab}#m.drag{cursor:grabbing}
#cv{pointer-events:none}
#m path{vector-effect:non-scaling-stroke;stroke-linejoin:round}
#m .bg{fill:var(--c-bg);stroke:var(--c-edge);stroke-width:.8}
#m .c{stroke:var(--c-edge);stroke-width:.9;cursor:pointer;transition:fill .3s,opacity .45s}
#m .k-l2{fill:var(--c-l2)}#m .k-l1{fill:var(--c-l1)}#m .k-t{fill:var(--c-t)}#m .k-v{fill:var(--c-v)}#m .k-n{fill:var(--c-n)}
#m .c.hov{filter:brightness(.93)}
#m.focus .c{opacity:.3}
#m.focus .c.on{opacity:.22}
#m .r{stroke:var(--c-edge);stroke-width:1;cursor:pointer;opacity:.55;transition:opacity .3s}
#m .r.hov{opacity:.75}
#m .r.on{opacity:.85}
#m.cellson .r{opacity:.24}#m.cellson .r.hov{opacity:.36}#m.cellson .r.on{opacity:.34}
#m.fine .r,#m.fine.cellson .r{opacity:.1}#m.fine .c,#m.fine.focus .c{opacity:.14}
#m .hl{fill:none;stroke:var(--ink);stroke-width:2.2;pointer-events:none;opacity:.9}
#m .hh{fill:none;stroke:var(--ink);stroke-width:1.4;pointer-events:none;opacity:.45}

/* floating controls */
.m-top{position:absolute;left:12px;top:12px;display:flex;gap:8px;z-index:4;width:min(380px,calc(100% - 468px))}
.m-btn,.m-search,.zoom,.scale,.mode,.tip,.sheet{background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6);
  box-shadow:var(--glass-sh),inset 0 0 0 1px var(--glass-line)}
.m-btn{flex:none;width:44px;height:44px;border:0;border-radius:999px;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:transform .15s}
.m-btn:active,.zoom button:active{transform:scale(.94)}
.m-search{position:relative;flex:1;height:44px;border-radius:999px;display:flex;align-items:center;gap:8px;padding:0 14px;color:var(--soft)}
.m-search input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:15px;color:var(--ink);outline:none;height:100%}
.m-search input::placeholder{color:var(--faint)}
.m-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.m-search:focus-within{box-shadow:var(--glass-sh),inset 0 0 0 2px var(--ink)}
.qres{position:absolute;left:0;right:0;top:52px;list-style:none;margin:0;padding:6px;border-radius:18px;background:var(--surface);box-shadow:var(--glass-sh),inset 0 0 0 1px var(--glass-line);max-height:340px;overflow:auto}
.qres li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;cursor:pointer;font-size:14px;color:var(--ink)}
.qres li small{margin-left:auto;color:var(--faint);font-size:12px;white-space:nowrap}
.qres li i{width:10px;height:10px;border-radius:3px;flex:none;background:var(--fill)}
.qres li.city i{border-radius:50%;background:none;box-shadow:inset 0 0 0 2px var(--soft)}
.qres li[aria-selected=true],.qres li:hover{background:var(--fill)}
.qres .none{color:var(--faint);cursor:default}
.zoom{position:absolute;right:392px;top:12px;z-index:4;display:flex;flex-direction:column;border-radius:16px;overflow:hidden}
.zoom button{width:44px;height:44px;border:0;background:none;color:var(--ink);display:grid;place-items:center;cursor:pointer}
.zoom button+button{box-shadow:inset 0 1px 0 var(--glass-line)}
.zoom button:hover{background:rgba(127,127,127,.12)}
.m-foot{position:absolute;left:12px;bottom:12px;z-index:3;display:flex;gap:8px;align-items:center;pointer-events:none}
.scale,.mode{white-space:nowrap}
.scale{display:flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:700;color:var(--soft);font-variant-numeric:tabular-nums}
.scale i{display:block;height:6px;border:2px solid currentColor;border-top:0;border-radius:0 0 2px 2px;transition:width .2s}
.mode{height:30px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:700;color:var(--soft);display:flex;align-items:center;gap:7px;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.mode.show{opacity:1;transform:none}
.mode b{width:8px;height:8px;border-radius:50%;background:var(--c-cell-l)}
.tip{position:absolute;z-index:5;pointer-events:none;padding:9px 12px;border-radius:14px;font-size:13px;line-height:1.35;max-width:260px;
  opacity:0;transform:translateY(4px) scale(.98);transition:opacity .15s,transform .15s}
.tip.show{opacity:1;transform:none}.tip b{display:block}.tip span{color:var(--soft)}

/* panel: floating card (desktop), bottom sheet (mobile) */
.sheet{position:absolute;z-index:4;top:12px;right:12px;bottom:12px;width:368px;border-radius:24px;display:flex;flex-direction:column;overflow:hidden;touch-action:auto;user-select:text;-webkit-user-select:text}
.grab{display:none}
.sheet-body{flex:1;overflow:auto;padding:22px 22px 26px;overscroll-behavior:contain;scrollbar-width:thin}
.sheet h2{font-size:28px;letter-spacing:-.03em;line-height:1.1}
.sheet .sub{display:flex;flex-wrap:wrap;gap:2px 6px;font-size:12.5px;font-weight:700;color:var(--faint);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}
.sheet .sub button{all:unset;cursor:pointer;color:var(--soft)}.sheet .sub button:hover{color:var(--ink)}
.sheet .sub em{font-style:normal;color:var(--faint)}
.qline{margin-top:6px;font-size:13.5px;color:var(--soft);font-variant-numeric:tabular-nums}
.chip{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font-size:13px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--fill)}
.chip i,.cov-legend i,.rlist i{width:10px;height:10px;border-radius:3px;flex:none}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.kpis div{background:var(--fill);border-radius:14px;padding:11px 13px;min-width:0}
.kpis b{display:block;font-size:21px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpis span{font-size:12px;color:var(--soft)}
.desc{margin-top:16px;font-size:15px;line-height:1.5;color:var(--soft)}
.bar{margin-top:12px}.bar small{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--soft);margin-bottom:5px}
.bar div{height:6px;border-radius:6px;background:var(--fill);overflow:hidden}.bar div i{display:block;height:100%;border-radius:6px;background:var(--c-l2);transition:width .5s}
.bar.t div i{background:var(--c-t)}
.sheet h3{font-size:15px;margin:22px 0 10px}
.rlist,.flist{list-style:none;display:grid;gap:6px;margin:0;padding:0}
.rlist li{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:12px;background:var(--fill);font-size:14px;cursor:pointer;transition:transform .12s}
.rlist li:hover{filter:brightness(.97)}.rlist li:active{transform:scale(.985)}
.rlist li em{font-style:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rlist li span{margin-left:auto;flex:none;color:var(--soft);font-size:12px;font-variant-numeric:tabular-nums}
.flist li{padding:10px 12px;border-radius:12px;background:var(--fill);font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.flist li b{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.flist li small{display:block;color:var(--soft);font-size:12px;margin-top:2px}
.rt{font-size:10.5px;font-weight:800;letter-spacing:.04em;padding:2px 6px;border-radius:6px;background:var(--c-l2);color:#fff;text-transform:uppercase}
.more{margin-top:10px;border:0;background:none;font:inherit;font-size:14px;font-weight:700;color:var(--ink);border-bottom:2px solid var(--dot);cursor:pointer;padding:0 0 2px}
.cities-t{display:flex;flex-wrap:wrap;gap:6px}
.cities-t span{font-size:13px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--fill);display:inline-flex;align-items:center;gap:6px}
.cities-t i{width:8px;height:8px;border-radius:50%;border:2px solid}

.cov-under{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-top:16px}
.cov-legend{list-style:none;display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13.5px;color:var(--soft);margin:0;padding:0}
.cov-legend li{display:flex;align-items:center;gap:7px}
.cov-legend i.dt{border-radius:50%;width:8px;height:8px}
.cov-legend i.ci{border-radius:50%;border:2px solid}
.cov-legend i.ha{border-radius:50%;width:12px;height:12px;opacity:.35}
.cov-toggle{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;cursor:pointer}
.cov-toggle input{accent-color:#1b7a33;width:16px;height:16px}
.cov-h{font-size:clamp(28px,3.4vw,40px);letter-spacing:-.03em;margin-top:90px}
.cov-tablewrap{margin-top:22px;overflow:auto;background:var(--surface);border-radius:var(--radius);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.cov-table{width:100%;min-width:760px;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.cov-table th{text-align:left;font-size:12px;line-height:1.3;color:var(--soft);font-weight:700;padding:14px 12px 10px;cursor:pointer;user-select:none;vertical-align:bottom}
.cov-table th.s::after{content:" ↓"}.cov-table th.s.up::after{content:" ↑"}
.cov-table td{padding:10px 12px;border-top:1px solid var(--line);white-space:nowrap}
.cov-table tr[data-iso]{cursor:pointer}.cov-table tr[data-iso]:hover td{background:var(--fill)}
.cov-table td:first-child{font-weight:700}
.cov-table td i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:8px;vertical-align:-1px}
.cov-table .num{text-align:right}
.cov-method{max-width:46em}.cov-method p{margin-top:14px;font-size:16px;color:var(--soft);line-height:1.55}
.cov-date{font-size:13px!important;color:var(--faint)!important}

@media (max-width:820px){
  .cov{margin-top:32px;margin-left:-12px;margin-right:-12px}
  .cov-map{height:min(78svh,720px);min-height:520px;border-radius:24px}
  .m-top{width:calc(100% - 76px)}
  .sheet{top:auto;left:8px;right:8px;bottom:8px;width:auto;height:calc(100% - 72px);border-radius:24px;
    transform:translateY(calc(100% - var(--peek,150px)));transition:transform .42s cubic-bezier(.2,.8,.2,1)}
  .sheet.open{transform:none}
  .sheet.dragging{transition:none}
  .grab{display:flex;justify-content:center;align-items:center;flex:none;height:22px;border:0;background:none;cursor:grab;touch-action:none;padding:0}
  .grab i{width:38px;height:5px;border-radius:5px;background:var(--faint);opacity:.6}
  .sheet-body{padding:0 18px 22px;overflow:hidden}
  .sheet.open .sheet-body{overflow:auto}
  .sheet h2{font-size:24px}
  .m-foot{bottom:calc(var(--peek,150px) + 16px)}
  .zoom{top:64px;right:12px}
  .zoom #zhome{display:none}
}
@media (prefers-color-scheme:dark){
  .covpage{--c-l2:#2f9e4f;--c-l1:#2a5e3a;--c-t:#6a6a6e;--c-v:#3e3e41;--c-n:#2b2b2d;--c-bg:#242426;--c-sea:#161618;--c-edge:#111;--c-cell-l:#43d36c;--c-cell-t:#a2a2a7;
    --glass:rgba(36,36,38,.72);--glass-line:rgba(255,255,255,.08);--glass-sh:0 10px 30px rgba(0,0,0,.45),0 1px 3px rgba(0,0,0,.4)}
  .cov-map{box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
  .cov-tablewrap{box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
  #m .hl,#m .hh{stroke:#fff}
}
@media (max-width:820px){.sheet:not(.open) .sheet-body{touch-action:none}}
