:root{--social-ink:var(--theme-text);--social-plum:var(--theme-special);--social-plum-2:var(--theme-special);--social-rose:var(--theme-secondary);--social-amber:var(--theme-accent);--social-blue:var(--theme-primary);--social-paper:var(--theme-page);--social-soft:var(--theme-subtle);--social-line:var(--theme-line);--social-muted:var(--theme-muted);--social-good:var(--theme-success);--shadow:0 16px 38px color-mix(in srgb,var(--theme-shadow-colour) 10.0%,transparent)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,var(--theme-subtle) 0,var(--theme-panel) 20rem);color:var(--social-ink);font-family:Inter,"Segoe UI",Arial,sans-serif}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:99;padding:.7rem 1rem;background:var(--theme-panel);color:var(--social-plum);border-radius:8px}.skip-link:focus{top:1rem}.social-header{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;gap:1rem;align-items:center;padding:1rem clamp(1rem,4vw,3.5rem);background:linear-gradient(112deg,var(--theme-header),var(--theme-header) 55%,var(--theme-header));color:var(--theme-inverse);box-shadow:0 10px 28px color-mix(in srgb,var(--theme-shadow-colour) 22.0%,transparent)}.social-header p{margin:0 0 .2rem;color:var(--theme-muted);font-size:.73rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.social-header h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.35rem,2.7vw,2.25rem);font-weight:700}.social-mark{position:relative;width:52px;height:44px}.social-mark span{position:absolute;top:3px;width:22px;height:22px;border-radius:50%;background:var(--social-amber)}.social-mark span:nth-child(2){right:0;background:var(--theme-primary)}.social-mark i{position:absolute;left:4px;right:4px;bottom:0;height:22px;border-radius:24px 24px 8px 8px;background:var(--theme-panel)}.module-nav{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;flex-wrap:wrap}.module-nav a{padding:.48rem .64rem;border-radius:8px;color:var(--theme-text);font-size:.78rem;font-weight:750;text-decoration:none}.module-nav a:hover,.module-nav a:focus-visible{background:color-mix(in srgb,var(--theme-panel) 10.98%,transparent)}.button{border:0;border-radius:9px;padding:.66rem .9rem;background:var(--social-plum);color:var(--theme-inverse);font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}.button.quiet{border:1px solid var(--social-line);background:var(--theme-panel);color:var(--social-plum)}.export-button{background:var(--social-amber);color:var(--theme-text)}.social-controls{position:sticky;top:0;z-index:20;padding:.75rem clamp(1rem,4vw,3.5rem);border-bottom:1px solid var(--social-line);background:color-mix(in srgb,var(--theme-subtle) 96.0%,transparent);backdrop-filter:blur(14px)}.social-filter-grid{display:grid;grid-template-columns:1.5fr repeat(6,minmax(125px,1fr)) auto;gap:.55rem;align-items:end}.social-filter-grid label{display:grid;gap:.28rem;color:var(--social-muted);font-size:.69rem;font-weight:800}.social-filter-grid input,.social-filter-grid select{min-width:0;width:100%;height:38px;padding:0 .65rem;border:1px solid var(--social-line);border-radius:8px;background:var(--theme-panel);color:var(--social-ink);font:inherit;font-size:.78rem}.scope-row{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:.55rem}.scope-row span{padding:.28rem .52rem;border-radius:999px;background:var(--social-soft);color:var(--social-plum);font-size:.68rem;font-weight:750}.social-main{display:grid;gap:1rem;max-width:1680px;margin:auto;padding:1rem clamp(1rem,4vw,3.5rem) 2.5rem}.panel{min-width:0;padding:1rem;border:1px solid var(--social-line);border-radius:16px;background:color-mix(in srgb,var(--theme-panel) 96.0%,transparent);box-shadow:var(--shadow)}.social-intro{display:grid;grid-template-columns:minmax(300px,1.4fr) 1fr auto;gap:1rem;align-items:center;border-left:7px solid var(--social-rose)}.section-kicker{margin:0 0 .25rem;color:var(--social-rose);font-size:.68rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.panel h2,.social-intro h2{margin:.05rem 0 .35rem;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.15rem,2vw,1.65rem)}.social-intro p:not(.section-kicker),.panel-note{margin:.25rem 0;color:var(--social-muted);font-size:.82rem;line-height:1.55}.source-lanes{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem}.source-lanes span{display:grid;gap:.25rem;padding:.55rem;border:1px solid var(--social-line);border-radius:10px;color:var(--social-muted);font-size:.65rem;font-weight:750}.source-lanes b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--social-plum);color:var(--theme-inverse)}.social-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem}.social-kpis article{min-height:108px;padding:.8rem;border:1px solid var(--social-line);border-radius:14px;background:linear-gradient(145deg,var(--theme-panel),var(--theme-subtle))}.social-kpis small{display:block;color:var(--social-muted);font-size:.68rem}.social-kpis strong{display:block;margin:.35rem 0;color:var(--social-plum);font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;line-height:1.05}.social-workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.65fr);gap:1rem;align-items:start}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.panel-heading>span{padding:.32rem .55rem;border-radius:999px;background:var(--social-soft);color:var(--social-plum);font-size:.65rem;font-weight:800}.layer-buttons,.cross-controls{display:flex;gap:.35rem;flex-wrap:wrap;margin:.65rem 0}.layer-buttons button,.cross-controls button{padding:.48rem .7rem;border:1px solid var(--social-line);border-radius:999px;background:var(--theme-panel);color:var(--social-muted);font:inherit;font-size:.72rem;font-weight:800;cursor:pointer}.layer-buttons button.active,.cross-controls button.active{border-color:var(--social-plum);background:var(--social-plum);color:var(--theme-inverse)}.map-legend{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:var(--social-muted);font-size:.68rem}.map-legend i{height:8px;flex:1;border-radius:999px;background:linear-gradient(90deg,var(--theme-subtle),var(--theme-primary),var(--theme-primary))}.district-tiles{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:.42rem;margin-top:.55rem}.district-tile{min-width:0;padding:.62rem;border:1px solid color-mix(in srgb,var(--theme-line) 50.2%,transparent);border-radius:10px;background:var(--tile);color:var(--tile-ink);text-align:left;cursor:pointer}.district-tile strong,.district-tile span,.district-tile small{display:block}.district-tile strong{overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.district-tile span{margin:.25rem 0;font-family:Georgia,"Times New Roman",serif;font-size:1.25rem;font-weight:800}.district-tile small{font-size:.6rem}.village-detail{position:sticky;top:8.3rem;max-height:calc(100vh - 9.2rem);overflow:auto}.detail-head{display:flex;justify-content:space-between;gap:1rem}.detail-head h2{margin:.08rem 0}.detail-score{display:grid;place-items:center;min-width:64px;height:64px;border-radius:50%;background:var(--social-plum);color:var(--theme-inverse);font-family:Georgia,"Times New Roman",serif;font-size:1.25rem;font-weight:800}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.42rem;margin:.7rem 0}.detail-stat{padding:.55rem;border-radius:9px;background:var(--social-soft)}.detail-stat small,.trace-field small{display:block;color:var(--social-muted);font-size:.63rem}.detail-stat strong,.trace-field strong{font-size:.76rem}.detail-section{padding:.65rem 0;border-top:1px solid var(--social-line)}.detail-section h3,.panel h3{margin:0 0 .45rem;font-size:.87rem}.tag-row{display:flex;gap:.3rem;flex-wrap:wrap}.tag{padding:.3rem .45rem;border-radius:999px;background:var(--theme-subtle);color:var(--theme-text);font-size:.63rem;font-weight:750}.tag.plum{background:var(--social-soft);color:var(--social-plum)}.reason-list{margin:.35rem 0;padding-left:1.1rem;color:var(--social-muted);font-size:.72rem;line-height:1.45}.detail-rule{border:1px solid var(--social-line);border-radius:9px;margin:.35rem 0;padding:.45rem}.detail-rule summary{font-size:.72rem;font-weight:800;cursor:pointer}.trace-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-top:.45rem}.trace-field{padding:.45rem;border-radius:7px;background:var(--theme-subtle)}.detail-actions{display:flex;gap:.45rem}.structure-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:.7rem}.structure-card{min-width:0;padding:.75rem;border-radius:12px;background:linear-gradient(145deg,var(--theme-subtle),var(--theme-panel));border:1px solid var(--social-line)}.structure-card header{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}.structure-card header span{color:var(--social-muted);font-size:.68rem}.structure-card details{border-top:1px solid var(--social-line);padding:.48rem 0}.structure-card summary{font-size:.78rem;font-weight:850;cursor:pointer}.leaf-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;padding:.5rem 0;border-top:1px dashed var(--theme-line)}.leaf-line strong{font-size:.73rem}.leaf-line small{display:block;margin-top:.18rem;color:var(--social-muted);font-size:.62rem}.vulnerability-totals{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;margin:.75rem 0}.vulnerability-total{padding:.75rem;border:1px solid var(--social-line);border-radius:11px}.vulnerability-total strong{display:block;color:var(--social-plum);font-size:1.25rem}.vulnerability-total small{color:var(--social-muted);font-size:.65rem}.two-column-analysis{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ranking-list,.district-bars{display:grid;gap:.35rem}.rank-row,.district-bar{display:grid;grid-template-columns:minmax(100px,1fr) 2fr auto;gap:.45rem;align-items:center;font-size:.72rem}.rank-row button,.district-bar button{border:0;background:none;color:var(--social-plum);font:inherit;font-weight:800;text-align:left;cursor:pointer}.mini-track{height:7px;border-radius:999px;background:var(--theme-subtle);overflow:hidden}.mini-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--social-rose),var(--social-plum))}.mini-value{font-weight:850}.priority-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem;margin:.75rem 0}.priority-chip{display:flex;align-items:center;gap:.45rem;padding:.6rem;border-left:5px solid var(--priority);border-radius:9px;background:var(--theme-subtle)}.priority-chip strong{font-size:1.15rem}.priority-chip span{font-size:.65rem;font-weight:750}.table-scroll{max-width:100%;overflow:auto}.table-link{border:0;background:none;color:var(--social-plum);font:inherit;font-weight:850;cursor:pointer;text-align:left}.priority-label{display:inline-block;padding:.25rem .38rem;border-radius:6px;background:var(--theme-subtle);font-size:.65rem;font-weight:800}.quality-ok{color:var(--social-good);font-weight:800}.quality-warn{color:var(--theme-warning);font-weight:800}.cross-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.45fr);gap:1rem}.scatter-wrap{min-width:0}.scatter-wrap svg{display:block;width:100%;height:auto;border:1px solid var(--social-line);border-radius:12px;background:var(--theme-panel)}.scatter-grid{stroke:var(--theme-line);stroke-width:1}.scatter-axis{fill:var(--social-muted);font-size:12px}.scatter-label{fill:var(--social-ink);font-size:13px;font-weight:700}.scatter-point{cursor:pointer;stroke:var(--theme-line);stroke-width:1.5;opacity:.78}.scatter-point.high{fill:var(--social-rose)}.scatter-point.regular{fill:var(--social-blue)}.scatter-point:hover{opacity:1;stroke:var(--social-ink);stroke-width:2}.scatter-legend{display:flex;gap:1rem;margin-top:.45rem;color:var(--social-muted);font-size:.68rem}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:.25rem}.dot.high{background:var(--social-rose)}.dot.regular{background:var(--social-blue)}.compact-table{display:grid;gap:.35rem}.compact-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;padding:.5rem;border-radius:8px;background:var(--social-soft);font-size:.7rem}.compact-row button{border:0;background:none;color:var(--social-plum);font:inherit;font-weight:850;text-align:left;cursor:pointer}.heatmap-scroll{max-width:100%;overflow:auto}.social-heatmap{display:grid;grid-template-columns:150px repeat(17,34px);min-width:max-content}.heat-cell{display:grid;place-items:center;min-height:32px;border-right:1px solid var(--theme-line);border-bottom:1px solid var(--theme-line);font-size:.6rem}.heat-label{position:sticky;left:0;z-index:2;justify-items:start;padding:.25rem .45rem;background:var(--theme-subtle)}.heat-label button{border:0;background:none;color:var(--social-plum);font:inherit;font-weight:800;cursor:pointer}.heat-head{background:var(--theme-primary);color:var(--theme-inverse);font-weight:850}.issue-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:.7rem 0}.issue-card{padding:.7rem;border:1px solid var(--social-line);border-radius:11px}.issue-card strong{display:block;color:var(--social-rose);font-size:1.25rem}.issue-card small{color:var(--social-muted);font-size:.65rem}.recommendation-note{padding:.75rem 1rem;border-left:5px solid var(--social-amber);border-radius:9px;background:var(--theme-subtle);color:var(--theme-muted);font-size:.75rem;line-height:1.45}.recommendation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-top:.75rem}.recommendation-card{min-width:0;padding:.7rem;border:1px solid var(--social-line);border-radius:11px}.recommendation-card header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem}.recommendation-card h3{min-width:0;overflow-wrap:anywhere}.recommendation-card p{margin:.35rem 0;color:var(--social-muted);font-size:.69rem}.recommendation-card dl{display:grid;grid-template-columns:95px minmax(0,1fr);gap:.25rem;margin:0;font-size:.68rem}.recommendation-card dt{color:var(--social-muted)}.recommendation-card dd{min-width:0;margin:0;font-weight:750;overflow-wrap:anywhere}.intervention-tag{color:var(--social-plum);font-size:.62rem;font-weight:850}dialog{width:min(780px,calc(100% - 2rem));max-height:88vh;border:0;border-radius:16px;padding:0;box-shadow:0 24px 80px color-mix(in srgb,var(--theme-shadow-colour) 35.0%,transparent)}dialog::backdrop{background:color-mix(in srgb,var(--theme-overlay) 72.16%,transparent);backdrop-filter:blur(4px)}dialog form{padding:1rem}.dialog-head{display:flex;justify-content:space-between;gap:1rem}.dialog-head h2{margin:.1rem 0}.icon-button{width:36px;height:36px;border:1px solid var(--social-line);border-radius:50%;background:var(--theme-panel);font-size:1.4rem;cursor:pointer}.dialog-actions{text-align:right;margin-top:1rem}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.method-block{padding:.65rem;border-radius:9px;background:var(--social-soft)}.method-block h3{margin:0 0 .3rem;font-size:.8rem}.method-block p{margin:0;color:var(--social-muted);font-size:.72rem;line-height:1.45}.toast{position:fixed;right:1rem;bottom:1rem;z-index:50;max-width:330px;padding:.75rem 1rem;border-radius:10px;background:var(--theme-primary);color:var(--theme-inverse);font-size:.75rem;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}footer{display:flex;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,3.5rem);background:var(--theme-footer);color:var(--theme-text);font-size:.72rem}
@media(max-width:1350px){.social-filter-grid{grid-template-columns:repeat(4,1fr)}.search-wide{grid-column:span 2}.social-kpis{grid-template-columns:repeat(4,1fr)}.district-tiles{grid-template-columns:repeat(5,1fr)}.recommendation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){.social-header{grid-template-columns:auto 1fr}.module-nav{grid-column:1/-1;justify-content:flex-start}.social-workspace,.cross-grid{grid-template-columns:1fr}.village-detail{position:static;max-height:none}.district-tiles{grid-template-columns:repeat(4,1fr)}.vulnerability-totals{grid-template-columns:repeat(3,1fr)}.priority-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.social-controls{position:static}.social-filter-grid{grid-template-columns:1fr 1fr}.search-wide{grid-column:1/-1}.social-intro{grid-template-columns:1fr}.source-lanes{grid-template-columns:1fr 1fr}.social-kpis{grid-template-columns:1fr 1fr}.district-tiles{grid-template-columns:1fr 1fr}.structure-grid,.two-column-analysis{grid-template-columns:1fr}.issue-grid{grid-template-columns:1fr 1fr}.recommendation-grid{grid-template-columns:1fr}.priority-summary{grid-template-columns:1fr 1fr}.social-main{padding-left:1rem;padding-right:1rem}}
@media(max-width:470px){.social-header{grid-template-columns:1fr}.social-mark{display:none}.social-filter-grid,.social-kpis,.vulnerability-totals,.issue-grid,.priority-summary,.detail-grid,.method-grid{grid-template-columns:1fr}.search-wide{grid-column:auto}.district-tiles{grid-template-columns:1fr}.source-lanes{grid-template-columns:1fr 1fr}.trace-grid{grid-template-columns:1fr}.module-nav{overflow:auto;flex-wrap:nowrap;padding-bottom:.25rem}.module-nav a,.module-nav button{white-space:nowrap}.recommendation-card dl{grid-template-columns:82px minmax(0,1fr)}footer{display:block}}

/* Keep territorial KPI tiles and supplemental ratios inside their panels. */
.district-tiles{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:.5rem}
.district-tile{min-width:0;min-height:96px;overflow:hidden}
.district-tile strong,.district-tile span,.district-tile small{min-width:0;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.district-tile strong{overflow:visible;text-overflow:clip}
.ratio-formula{margin:.4rem 0;padding:.45rem .6rem;border-left:3px solid var(--social-blue);background:var(--theme-subtle);color:var(--theme-text);font-size:.7rem;font-weight:750}
.vulnerability-total{min-width:0}
.vulnerability-total strong,.vulnerability-total small,.vulnerability-total em{display:block;overflow-wrap:anywhere}
.vulnerability-total em{margin-top:.35rem;color:var(--social-blue);font-size:.62rem;font-style:normal;font-weight:800}

/* Keep the supplemental village ranking and 21-district distribution visually balanced. */
.two-column-analysis{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:1.25rem}
#vulnerabilityDistricts{grid-template-columns:repeat(3,minmax(0,1fr));gap:.22rem .65rem}
#vulnerabilityDistricts .district-bar{grid-template-columns:minmax(0,1fr) auto;gap:.18rem .35rem;align-content:start;padding:.1rem 0}
#vulnerabilityDistricts .district-bar button{grid-column:1/-1;min-height:0;padding:0;line-height:1.2}
#vulnerabilityDistricts .district-bar .mini-track{grid-column:1}
@media(max-width:1100px){#vulnerabilityDistricts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.two-column-analysis{grid-template-columns:minmax(0,1fr)}}
