:root{--p-ink:var(--theme-text);--p-navy:var(--theme-header);--p-indigo:var(--theme-primary);--p-cyan:var(--theme-secondary);--p-amber:var(--theme-accent);--p-red:var(--theme-danger);--p-bg:var(--theme-page);--p-line:var(--theme-line);--p-muted:var(--theme-muted)}
body{background:linear-gradient(180deg,var(--theme-subtle) 0,var(--theme-subtle) 32rem);color:var(--p-ink)}
.priority-header{padding:1rem clamp(1rem,3vw,2.5rem);background:var(--p-navy);color:var(--theme-inverse);border-bottom:4px solid var(--p-amber);display:flex;align-items:center;justify-content:space-between;gap:1rem}.priority-brand{display:flex;align-items:center;gap:.85rem}.priority-brand p{margin:0 0 .2rem;color:var(--theme-muted);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.priority-brand h1{margin:0;font-size:clamp(1.25rem,2vw,1.8rem)}.rank-mark{width:54px;height:48px;display:flex;align-items:end;justify-content:center;gap:3px}.rank-mark span{width:14px;display:grid;place-items:center;background:var(--theme-primary);color:var(--theme-text);font-size:.7rem;font-weight:850;border-radius:3px 3px 0 0}.rank-mark span:nth-child(1){height:38px;background:var(--theme-primary)}.rank-mark span:nth-child(2){height:29px}.rank-mark span:nth-child(3){height:21px}.module-nav{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.module-nav a{color:var(--theme-text);text-decoration:none;border:1px solid var(--theme-line);border-radius:5px;padding:.4rem .52rem;font-size:.8rem}.export-button{background:var(--p-amber);color:var(--theme-inverse)}
.priority-controls{position:sticky;top:0;z-index:12;padding:.7rem clamp(1rem,3vw,2.5rem);background:var(--theme-panel);border-bottom:1px solid var(--p-line);box-shadow:0 5px 18px color-mix(in srgb,var(--theme-shadow-colour) 7.06%,transparent)}.priority-controls .filter-grid{grid-template-columns:1.35fr repeat(5,minmax(130px,1fr)) auto;padding:0}.scope-row{margin-top:.5rem;color:var(--p-muted);font-size:.86rem}.priority-main{max-width:1640px;margin:auto;padding:1.2rem clamp(1rem,3vw,2.5rem) 3rem}.panel{border-radius:10px;border-color:var(--p-line);box-shadow:0 9px 28px color-mix(in srgb,var(--theme-shadow-colour) 5.1%,transparent)}.boundary-panel{display:grid;grid-template-columns:1.35fr 1.45fr auto;gap:1rem;align-items:center;border-left:6px solid var(--p-amber)}.boundary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.boundary-grid span{padding:.7rem;background:var(--theme-subtle);border:1px solid var(--p-line);border-radius:7px;font-size:.78rem}.boundary-grid b{display:block;color:var(--p-indigo)}.muted-copy{color:var(--p-muted)}
.policy-grid{display:grid;grid-template-columns:1.65fr .8fr;gap:1rem}.policy-grid>*{min-width:0}.weight-state{display:grid;justify-items:end;gap:.25rem}.weight-total{font-size:1.4rem;color:var(--p-indigo)}.weight-total.invalid{color:var(--p-red)}.simulation-state{padding:.22rem .5rem;border-radius:999px;background:var(--theme-subtle);color:var(--theme-text);font-size:.72rem;font-weight:800}.simulation-state.pending{background:var(--theme-warning-soft);color:var(--theme-warning)}.simulation-state.invalid{background:var(--theme-success-soft);color:var(--theme-success)}.simulation-rule{margin:.65rem 0;padding:.65rem .75rem;border-left:4px solid var(--p-indigo);background:var(--theme-subtle);color:var(--p-muted);font-size:.82rem}.weight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.weight-control{display:grid;grid-template-columns:minmax(0,1fr) 82px 58px;align-items:center;gap:.6rem;padding:.55rem .65rem;background:var(--theme-subtle);border:1px solid var(--p-line);border-radius:7px}.weight-control label{font-size:.83rem;color:var(--p-ink)}.weight-control small{display:block;color:var(--p-muted);font-weight:400}.weight-control input[type=number]{text-align:right}.weight-lock{display:flex;align-items:center;justify-content:flex-end;gap:.25rem;color:var(--p-muted);font-size:.7rem}.weight-lock input{width:auto;min-height:auto}.weight-warning{min-height:1.5rem;margin-top:.6rem;color:var(--p-red);font-weight:750}.weight-warning.valid{color:var(--theme-success)}.button-row{display:flex;flex-wrap:wrap;gap:.55rem}.button.primary{background:var(--p-indigo);color:var(--theme-inverse)}.button:disabled{cursor:not-allowed;opacity:.48}.movement-list{display:grid;gap:.5rem}.movement-item{display:grid;grid-template-columns:42px 1fr auto;gap:.55rem;align-items:center;padding:.55rem;border-bottom:1px solid var(--p-line)}.movement-value{font-weight:850;color:var(--p-indigo)}.movement-value.down{color:var(--p-red)}
.comparison-panel{margin-top:1rem}.comparison-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}.comparison-kpis article{padding:.7rem;border:1px solid var(--p-line);border-radius:8px;background:var(--theme-subtle)}.comparison-kpis span{display:block;color:var(--p-muted);font-size:.76rem}.comparison-kpis strong{display:block;margin-top:.18rem;font-size:1.35rem;color:var(--p-indigo)}.comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:.8rem}.comparison-grid>article{min-width:0;padding:.75rem;border:1px solid var(--p-line);border-radius:8px}.comparison-grid h3{margin-top:0}.comparison-list{display:grid;gap:.4rem}.comparison-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;padding:.42rem 0;border-bottom:1px solid var(--theme-line);font-size:.78rem}.comparison-row:last-child{border:0}.comparison-row small{display:block;color:var(--p-muted)}.comparison-row b.positive{color:var(--theme-success)}.comparison-row b.negative{color:var(--p-red)}.contribution-comparison{margin-top:.7rem;padding-top:.65rem;border-top:1px dashed var(--p-line)}.contribution-comparison h4{margin:.1rem 0 .5rem}.contribution-compare-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,52px);gap:.35rem;padding:.3rem 0;border-bottom:1px solid var(--theme-line);font-size:.73rem}.contribution-compare-row.head{color:var(--p-muted);font-weight:750}.contribution-compare-row span:not(:first-child){text-align:right}
.ranking-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,.68fr);gap:1rem;margin-top:1rem}.ranking-grid>*{min-width:0}.ranking-panel{overflow:hidden}.table-shell{width:100%;overflow:auto;max-height:680px}.table-shell tbody tr{cursor:pointer}.detail-panel{position:sticky;top:8.7rem;align-self:start;max-height:82vh;overflow:auto}.badge{display:inline-block;padding:.23rem .5rem;border-radius:999px;background:var(--theme-subtle);color:var(--theme-text);font-size:.72rem;font-weight:780}.badge.high{background:var(--theme-danger-soft);color:var(--theme-danger)}.badge.medium{background:var(--theme-warning-soft);color:var(--theme-warning)}.badge.good{background:var(--theme-success-soft);color:var(--theme-success)}.badge.verify{background:var(--theme-danger-soft);color:var(--theme-danger)}.rank-cell{font-size:1.1rem;font-weight:850;color:var(--p-indigo)}
.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.65rem}.category-card{padding:.8rem;border:1px solid var(--p-line);border-top:4px solid var(--p-indigo);border-radius:8px;background:var(--theme-panel)}.category-card strong{display:block;font-size:1.7rem}.category-card p{color:var(--p-muted);font-size:.78rem;margin-bottom:0}.district-grid{display:grid;grid-template-columns:1.65fr .75fr;gap:1rem}.district-grid>*{min-width:0}.district-bars{display:grid;gap:.55rem}.district-bar{display:grid;grid-template-columns:minmax(100px,1fr) 2fr 48px;gap:.5rem;align-items:center;font-size:.8rem}.district-bar i{height:10px;background:var(--theme-subtle);border-radius:999px;overflow:hidden}.district-bar i span{display:block;height:100%;background:linear-gradient(90deg,var(--p-indigo),var(--p-cyan));border-radius:inherit}.district-bar b{text-align:right}
.detail-section{padding-top:.8rem;margin-top:.8rem;border-top:1px solid var(--p-line)}.score-number{font-size:2.4rem;font-weight:880;color:var(--p-indigo)}.contribution-list{display:grid;gap:.45rem}.contribution-row{display:grid;grid-template-columns:minmax(125px,1fr) 2fr 48px;gap:.45rem;align-items:center;font-size:.78rem}.contribution-row i{height:9px;background:var(--theme-subtle);border-radius:999px;overflow:hidden}.contribution-row i span{display:block;height:100%;background:var(--p-cyan);border-radius:inherit}.evidence-list{margin:.4rem 0 0;padding-left:1.1rem}.evidence-list li{margin-bottom:.25rem}.intervention-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.65rem}.intervention-card{padding:.8rem;border:1px solid var(--p-line);border-left:4px solid var(--p-cyan);border-radius:8px;background:var(--theme-panel)}.intervention-card small{color:var(--p-muted)}
dialog{width:min(980px,calc(100% - 2rem));max-height:calc(100vh - 2rem);border:0;border-radius:10px;padding:1.2rem;box-shadow:0 30px 90px color-mix(in srgb,var(--theme-shadow-colour) 40.0%,transparent)}dialog::backdrop{background:color-mix(in srgb,var(--theme-overlay) 80.0%,transparent)}.dialog-head{display:flex;justify-content:space-between;gap:1rem}.icon-button{width:42px;min-height:42px;border:0;border-radius:50%;font-size:1.45rem;cursor:pointer}.method-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.method-card{padding:.8rem;background:var(--theme-subtle);border:1px solid var(--p-line);border-radius:7px}.method-card h3{color:var(--p-indigo)}.toast{display:none;position:fixed;right:1rem;bottom:1rem;z-index:30;padding:.8rem 1rem;background:var(--p-navy);color:var(--theme-inverse);border-radius:7px}.toast.show{display:block}
.reason-route-list{display:grid;gap:.5rem}.reason-route-list>a{display:flex;justify-content:space-between;gap:.75rem;padding:.65rem;border:1px solid var(--p-line);border-radius:7px;background:var(--theme-subtle);color:var(--p-ink);text-decoration:none}.reason-route-list>a:hover{border-color:var(--p-indigo)}.reason-route-list span{display:grid}.reason-route-list small{color:var(--p-muted)}.reason-route-list b{align-self:center;color:var(--p-indigo);font-size:.76rem}.priority-action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.8rem}.priority-action-grid a{display:grid;padding:.65rem;border:1px solid var(--p-line);border-radius:7px;text-decoration:none;background:var(--theme-panel);color:var(--p-ink)}.priority-action-grid small{color:var(--p-muted)}
@media(max-width:1200px){.priority-header,.boundary-panel{display:block}.module-nav,.boundary-grid{margin-top:1rem}.priority-controls .filter-grid{grid-template-columns:repeat(4,1fr)}.ranking-grid{grid-template-columns:minmax(0,1fr) 330px}}
@media(max-width:920px){.priority-controls{position:static}.priority-controls .filter-grid{grid-template-columns:repeat(2,1fr)}.policy-grid,.ranking-grid,.district-grid{display:block}.policy-grid>.panel+.panel,.ranking-grid>.panel+.panel,.district-grid>.panel+.panel{margin-top:1rem}.detail-panel{position:static;max-height:none}.ranking-grid>.panel,.district-grid>.panel{min-width:0;max-width:100%;overflow:hidden}.comparison-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.comparison-grid{grid-template-columns:1fr}}
@media(max-width:640px){.priority-controls .filter-grid,.boundary-grid,.weight-grid,.method-grid,.priority-action-grid{grid-template-columns:1fr}.weight-control{grid-template-columns:minmax(0,1fr) 78px 54px}.reason-route-list>a{display:grid}.button-row{display:grid}.category-grid,.comparison-kpis{grid-template-columns:1fr}.panel-heading,.dialog-head{display:block}.weight-state{justify-items:start;margin-top:.5rem}.table-shell{max-height:none}}

/* Menjaga seluruh isi panel alasan prioritas tetap dapat dijangkau. */
.ranking-grid>.panel.detail-panel{min-height:0;max-height:calc(100dvh - 10rem);overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;touch-action:pan-y}
.ranking-grid>.panel.detail-panel:focus-visible{outline:3px solid var(--focus,var(--theme-focus));outline-offset:3px}
.ranking-grid>.panel.detail-panel::-webkit-scrollbar{width:10px}.ranking-grid>.panel.detail-panel::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--theme-primary);background-clip:padding-box}.ranking-grid>.panel.detail-panel::-webkit-scrollbar-track{background:var(--theme-subtle)}
@media(min-width:921px){.ranking-grid{align-items:stretch}.ranking-grid>.ranking-panel,.ranking-grid>.detail-panel{height:min(58dvh,500px);max-height:min(58dvh,500px)}.ranking-grid>.ranking-panel{display:flex;flex-direction:column;padding:.55rem!important}.ranking-grid>.ranking-panel .panel-heading{margin:0!important}.ranking-grid>.ranking-panel .panel-heading>div{display:flex;align-items:baseline;gap:.55rem;min-width:0}.ranking-grid>.ranking-panel .panel-heading .section-kicker{margin:0;font-size:.64rem;white-space:nowrap}.ranking-grid>.ranking-panel .panel-heading h2{margin:0;font-size:1.05rem!important;white-space:nowrap}.ranking-grid>.ranking-panel .panel-heading p.muted-copy{display:none}.ranking-grid>.ranking-panel .dt-toolbar{margin:.18rem 0;padding:.22rem .4rem}.ranking-grid>.ranking-panel .dt-toolbar label{gap:0;font-size:0}.ranking-grid>.ranking-panel .dt-toolbar input[type=search],.ranking-grid>.ranking-panel .dt-toolbar select,.ranking-grid>.ranking-panel .dt-toolbar button,.ranking-grid>.ranking-panel .dt-toolbar .dt-column-summary{min-height:32px;padding:4px 8px;font-size:12px}.ranking-grid>.ranking-panel .table-shell{flex:1 1 auto;min-height:0;max-height:none}.ranking-grid>.ranking-panel table.data-table th,.ranking-grid>.ranking-panel table.data-table td{padding:3px 8px;line-height:1.15;font-size:12.5px}.ranking-grid>.ranking-panel #rankingRows td:nth-child(2) strong,.ranking-grid>.ranking-panel #rankingRows td:nth-child(2) small{display:inline}.ranking-grid>.ranking-panel #rankingRows td:nth-child(2) small{margin-left:.4rem}.ranking-grid>.ranking-panel .profile-link{margin-top:0}.ranking-grid>.detail-panel{position:relative;top:auto;align-self:stretch}}
@media(max-width:920px){.ranking-grid>.panel.detail-panel{position:relative;top:auto;max-height:min(72dvh,680px);overflow-y:auto!important}}

/* Hierarki Modul 11: daftar desa adalah sajian utama; KPI hanya ringkasan pemindai. */
@media(min-width:921px){
  #priorityKpis{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:.45rem!important;margin:.55rem 0 0}
  #priorityKpis>.kpi-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label value" "detail detail";align-items:center;min-height:68px!important;padding:.55rem .7rem!important;border-radius:9px!important}
  #priorityKpis .kpi-label{grid-area:label;margin:0;font-size:.68rem;line-height:1.2}
  #priorityKpis .kpi-value{grid-area:value;margin:0;font-size:clamp(1rem,1.35vw,1.35rem)!important;line-height:1}
  #priorityKpis .kpi-detail{grid-area:detail;margin:.18rem 0 0;font-size:.66rem;line-height:1.25}
  .category-summary-panel{padding:.75rem .85rem;margin-top:.75rem}
  .category-summary-panel .panel-heading{align-items:center;margin-bottom:.4rem}
  .category-summary-panel .panel-heading h2{margin:.08rem 0;font-size:1.05rem!important}
  .category-summary-panel .panel-heading>span{font-size:.7rem}
  .category-summary-panel .section-kicker{font-size:.64rem}
  .category-summary-panel .category-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:.4rem}
  .category-summary-panel .category-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.18rem .4rem;align-items:center;padding:.45rem .55rem;border-top-width:2px}
  .category-summary-panel .category-card span{font-size:.68rem;line-height:1.2}
  .category-summary-panel .category-card strong{font-size:1.15rem;line-height:1}
  .category-summary-panel .category-card p{grid-column:1/-1;margin:.08rem 0 0;font-size:.61rem;line-height:1.22}
}
@media(min-width:921px) and (max-width:1200px){.category-summary-panel .category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.advanced-simulator{margin-top:1rem;border:1px solid var(--p-line);border-left:6px solid var(--p-indigo);border-radius:10px;background:var(--theme-panel);overflow:hidden}.advanced-simulator>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;cursor:pointer}.advanced-simulator>summary span{display:grid}.advanced-simulator>summary b{color:var(--p-indigo);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.advanced-simulator>summary small{max-width:620px;color:var(--p-muted)}.advanced-simulator-body{padding:0 1rem 1rem;border-top:1px solid var(--p-line)}.scenario-picker{display:grid;gap:.3rem;max-width:420px;margin:1rem 0;font-weight:750}.scenario-picker select{width:100%}@media(max-width:640px){.advanced-simulator>summary{display:grid}.advanced-simulator-body{padding-inline:.65rem}}
