@font-face{font-family:Mukta;src:url('Mukta-400.ttf');font-weight:400;font-display:swap}
@font-face{font-family:Mukta;src:url('Mukta-600.ttf');font-weight:600;font-display:swap}
@font-face{font-family:Mukta;src:url('Mukta-700.ttf');font-weight:700;font-display:swap}
@font-face{font-family:Martel;src:url('Martel-700.ttf');font-weight:700;font-display:swap}
:root{
 --ink:#1e3045;--muted:#586b7d;--line:#dce4ec;--paper:#fff;
 --surface:#f7f9fc;--selected:#edf3f9;--accent:#265c8a;--gold:#846018;
 --body:Mukta,'Kohinoor Devanagari',sans-serif;
 --heading:Martel,'Devanagari Sangam MN',serif;
}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);font:17px/1.5 var(--body);background:var(--surface)}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--accent);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mast{height:64px;display:flex;justify-content:space-between;align-items:center;padding:0 24px;border-bottom:1px solid var(--line);position:relative;z-index:1001;background:var(--paper)}
.identity{display:flex;align-items:center;gap:18px}
.brand-lockup{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}
.brand-mark{display:block;width:32px;height:32px;flex-shrink:0}
.brand{font:700 23px/1.4 var(--heading);letter-spacing:-.02em}
.place{font-size:14px;color:var(--muted);border-left:1px solid var(--line);padding-left:18px}
.header-right{display:flex;align-items:center;gap:20px}
.year{font-size:14px;color:var(--muted)}
.langs{display:flex;gap:2px;background:var(--surface);padding:3px;border-radius:5px}
.langs button{border:0;background:transparent;padding:4px 12px;font-size:14px;border-radius:3px}
.langs button[aria-pressed=true]{background:var(--accent);color:#fff}
.workspace{display:grid;grid-template-columns:420px 1fr;height:calc(100dvh - 64px);min-height:0}
.ledger{display:flex;flex-direction:column;border-right:1px solid var(--line);min-height:0;background:var(--paper);z-index:700}
.ledger-top{padding:18px 22px 14px;flex-shrink:0;max-height:65%;overflow:auto;scrollbar-width:thin}
.ward-row{display:flex;justify-content:space-between;align-items:center;gap:18px}
.ledger h1{font:600 25px/1.4 var(--body);margin:0}
select{border:1px solid var(--line);border-radius:5px;background:var(--paper);padding:6px 10px;font-size:15px;max-width:100%;min-height:36px}
.ward-row select{min-width:102px;font-weight:600;color:var(--accent)}
.ward-summary{margin:10px 0 12px;border-bottom:1px solid var(--line)}
.ward-summary summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0 10px;list-style:none;cursor:pointer;font-size:14px;color:var(--muted)}
.ward-summary summary::-webkit-details-marker{display:none}
.summary-toggle{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 4px 4px}
.ward-summary[open] .summary-toggle{transform:rotate(225deg);margin-bottom:-3px}
.summary-body{padding:2px 0 12px}
.budget-lines>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:7px 0}
.budget-lines span{color:var(--muted);font-size:14px;max-width:205px}
.budget-lines strong{font-size:18px;font-weight:600;white-space:nowrap}
.micro{font-size:13px;line-height:1.5;color:var(--muted);margin:10px 0}
.counts{font-size:13px;line-height:1.6;color:var(--muted)}
.counts b{font-weight:600;color:var(--ink)}
.view-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px}
.view-switch{display:flex;gap:2px;background:var(--surface);padding:3px;border-radius:5px}
.view-switch button{border:0;background:transparent;padding:4px 14px;font-size:14px;border-radius:3px}
.view-switch button[aria-pressed=true]{background:var(--accent);color:#fff}
.download{border:1px solid var(--line);background:var(--paper);color:var(--accent);padding:5px 12px;border-radius:5px;font-size:14px;white-space:nowrap}
.download:disabled{color:var(--muted);cursor:wait}
.ledger[data-view=list] .chart-view,.ledger[data-view=charts] :is(.search-label,#search,.filters,.results-head,.project-list){display:none}
.chart-view{flex:1;overflow:auto;min-height:0;padding:4px 16px 16px;border-top:1px solid var(--line);scrollbar-width:thin;overscroll-behavior:contain}
.chart-view>.micro{margin:10px 6px}
.chart{padding:12px 0 10px;border-top:1px solid var(--line)}
.chart h3{font:600 16px/1.4 var(--body);margin:0 6px 4px}
.bar-row{display:grid;grid-template-columns:1fr 7.5em;grid-template-areas:"label label" "track value";gap:2px 10px;align-items:center;width:100%;text-align:left;border:0;background:none;padding:6px;border-radius:4px}
button.bar-row:hover{background:var(--surface)}
.bar-label{grid-area:label;font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.bar-track{grid-area:track;height:10px}
.bar-track i{display:block;height:100%;min-width:2px;background:var(--accent);border-radius:0 4px 4px 0}
.bar-value{grid-area:value;font-size:14px;font-weight:600;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.chart.compact .bar-row{grid-template-columns:4em 1fr 7.5em;grid-template-areas:"label track value";padding:3px 6px}
.chart.compact .bar-row:not(.active) i{background:#b7c3cf}
.chart.compact .bar-row.active .bar-label{font-weight:600}
.search-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
input{display:block;width:100%;border:1px solid var(--line);padding:8px 12px;background:var(--surface);border-radius:5px;font-size:16px;min-height:42px}
input::placeholder{color:var(--muted);opacity:1}
.filters{display:grid;grid-template-columns:1fr 1.1fr;gap:8px;margin-top:8px}
.filters select{font-size:14px;min-width:0}
.results-head{padding:10px 22px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-shrink:0}
.results-head button{border:0;background:none;color:var(--accent);text-decoration:underline;font-size:13px;padding:0}
.project-list{flex:1;overflow:auto;min-height:0;scrollbar-width:thin;overscroll-behavior:contain}
.project-row{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-left:3px solid transparent;background:var(--paper);padding:15px 19px 14px}
.project-row:hover{background:var(--surface)}
.project-row.selected{border-left-color:var(--accent);background:var(--selected)}
.project-row:focus-visible{outline-offset:-3px}
.rowtop{font-size:12px;color:var(--muted);margin-bottom:5px}
.project-main{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.project-row h2{font:600 19px/1.5 var(--body);margin:0;min-width:0;overflow-wrap:anywhere}
.rowamount{font-size:21px;font-weight:600;line-height:1.4;white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0}
.project-row.selected .rowamount{color:var(--accent)}
.rowbottom{display:flex;justify-content:space-between;gap:10px;font-size:12px;align-items:baseline;color:var(--muted);margin-top:10px}
.location-status{color:var(--muted)}
.location-status.available{color:var(--accent)}
.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;vertical-align:middle;margin-right:5px}
.ledger-foot{padding:9px 22px;font-size:12px;line-height:1.4;border-top:1px solid var(--line);background:var(--surface);flex-shrink:0}
.ledger-foot span{color:var(--muted);margin-right:8px}
.ledger-foot a{margin-right:12px;white-space:nowrap}
.ledger-foot p{font-size:11px;color:var(--muted);margin:4px 0 0}
.map-stage{position:relative;min-width:0;overflow:hidden}
#map{height:100%;width:100%;background:#e7edf2}
.map-heading{position:absolute;top:18px;left:18px;z-index:600;background:var(--paper);box-shadow:0 2px 12px #1e304512;display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:5px;font-size:15px}
.location-dot{width:7px;height:7px;background:var(--accent);border-radius:50%}
.map-heading button{margin-left:10px;padding:1px 0 1px 12px;border:0;border-left:1px solid var(--line);background:none;font-size:13px;color:var(--muted)}
.map-key{position:absolute;bottom:28px;left:18px;z-index:600;background:#ffffffed;border-radius:4px;padding:8px 11px;display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted);max-width:calc(100% - 36px)}
.map-key>span{display:flex;align-items:center;gap:7px}
.boundary-key{width:18px;height:0;border-top:2px solid var(--accent)}
.site-key{display:block;width:11px;height:11px;border:2px solid var(--gold);background:#e5cf86;border-radius:50%}
.trace-key{width:18px;height:0;border-top:3px dashed #77548b}
.map-hint{position:absolute;top:77px;left:18px;z-index:500;font-size:13px;background:#ffffffed;color:var(--muted);padding:5px 9px;max-width:420px;border-radius:4px}
.tile-error{position:absolute;top:122px;left:20px;z-index:600;background:#fff2d8;padding:8px 12px;font-size:13px;max-width:350px}
.detail{position:absolute;z-index:800;right:20px;bottom:28px;width:390px;max-height:calc(100% - 100px);overflow:auto;box-shadow:0 6px 30px #1e304522;border:1px solid var(--line);border-radius:7px;background:var(--paper);padding:27px 25px 21px;scrollbar-width:thin}
.detail[hidden]{display:none}
.close{position:absolute;top:7px;right:11px;border:0;background:none;font-family:Arial,sans-serif;color:var(--muted);font-size:23px;line-height:1;padding:5px}
.detail .type{font-size:12px;color:var(--muted);margin:0 25px 7px 0}
.detail h2{font:600 23px/1.5 var(--body);margin:0 0 15px}
.detail .money{font-size:34px;line-height:1.3;font-weight:600;color:var(--accent)}
.detail .money-label{font-size:13px;color:var(--muted);margin:3px 0 16px}
.detail dl{margin:0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.detail dl>div{display:flex;justify-content:space-between;gap:15px;margin:7px 0;font-size:14px}
.detail dt{color:var(--muted);flex-shrink:0}
.detail dd{margin:0;text-align:right}
.detail .location-note{font-size:15px;line-height:1.6;padding:13px 0 4px}
.detail .evidence{font-size:13px;color:var(--muted);line-height:1.6;margin-top:6px}
.detail .source-link{display:inline-block;font-size:14px;margin-top:11px}
.detail .recenter{margin-top:15px;background:var(--accent);color:#fff;padding:9px 14px;border:0;border-radius:4px;font-size:14px}
.empty{font-size:15px;color:var(--muted);padding:25px}
.ward-number{color:var(--muted);background:#ffffffe8;border:1px solid #b4c2cf;border-radius:50%;width:24px!important;height:24px!important;text-align:center;font:600 15px/24px var(--body);box-shadow:0 1px 4px #2221}
.ward-number.active{background:var(--accent);border-color:var(--accent);color:#fff}
.site-marker{background:var(--gold);border:3px solid var(--paper);box-shadow:0 0 0 2px var(--gold);border-radius:50%;width:17px!important;height:17px!important}
.site-price{background:#fff9e9;color:#5f4717;border:1px solid #a9853a;padding:2px 7px;border-radius:3px;white-space:nowrap;font:600 14px var(--body);margin-left:14px;margin-top:-17px;width:max-content}
.leaflet-tooltip{font:16px/1.5 var(--body);background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 2px 12px #2222;padding:10px 14px;border-radius:4px}
.leaflet-tooltip strong{font-size:19px;font-weight:600}
.leaflet-tooltip .hint{font-size:12px;color:var(--muted)}
.leaflet-tooltip.exhibit-label{font-size:12px;padding:2px 6px;background:#fffffff2;border:1px solid #b4c2cf;box-shadow:none}
.leaflet-tooltip.exhibit-label:before{display:none}
.leaflet-container{font-family:var(--body)}
.leaflet-control-zoom a{background:var(--paper)!important;color:var(--ink)!important}
.leaflet-control-attribution{font:10px/1.5 Arial,sans-serif;background:#fffc!important;max-width:100%;white-space:normal}
.mobile-switch{display:none}
@media(min-width:1500px){.workspace{grid-template-columns:460px 1fr}.ledger-top{padding-left:26px;padding-right:26px}.project-row{padding-left:23px;padding-right:23px}}
@media(max-width:1100px){.workspace{grid-template-columns:370px 1fr}.project-main{gap:12px}.project-row h2{font-size:18px}.rowamount{font-size:19px}.detail{right:12px;bottom:26px;width:calc(100% - 24px);max-width:390px}.map-heading{left:13px;top:15px}.map-hint{left:13px;top:73px;max-width:calc(100% - 80px)}.map-key{left:12px;font-size:11px;gap:10px}.place{display:none}}
@media(max-width:700px){
 .mast{height:60px;padding:0 16px}.brand-lockup{gap:7px}.brand-mark{width:28px;height:28px}.brand{font-size:21px}.header-right{gap:8px}.year{font-size:12px}.langs button{font-size:12px;padding:5px 8px}
 .mobile-switch{display:flex;height:44px;padding:0 15px;border-bottom:1px solid var(--line);gap:18px;background:var(--paper);position:relative;z-index:1001}
 .mobile-switch button{border:0;border-bottom:2px solid transparent;background:none;padding:7px 9px;font-size:16px;color:var(--muted)}
 .mobile-switch button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
 .workspace{display:block;height:calc(100dvh - 104px);min-height:0}.map-stage{height:100%}.ledger{display:none;height:100%;border:0}
 .workspace.show-list .ledger{display:flex}.workspace.show-list .map-stage{display:none}
 .ledger-top{padding:14px 18px 12px;max-height:60%}.ledger h1{font-size:23px}.ward-summary{margin:5px 0 10px}.ward-summary summary{padding:6px 0 9px}
 .results-head{padding:8px 18px}.project-row{padding:14px 15px}.project-row h2{font-size:19px}.rowamount{font-size:20px}.project-main{gap:12px}.ledger-foot{padding:8px 18px}
 .map-heading{top:12px;left:12px;font-size:14px;padding:9px 11px;max-width:calc(100% - 58px)}.map-heading button{font-size:12px;padding-left:10px;margin-left:4px}
 .map-hint{top:65px;left:12px;font-size:12px;max-width:calc(100% - 24px)}.map-key{bottom:24px;left:10px;padding:6px 9px}
 .detail{width:100%;max-width:none;right:0;bottom:0;border-radius:12px 12px 0 0;max-height:59%;padding:25px 22px 20px;box-shadow:0 -5px 25px #1e304522}
 .detail h2{font-size:22px;margin-bottom:10px}.detail .money{font-size:32px}.detail .money-label{margin-bottom:10px}.detail dl{padding:8px 0}.detail .location-note{padding-top:10px}
 .map-stage:has(.detail:not([hidden])) .map-key{display:none}.map-stage:has(.detail:not([hidden])) .leaflet-bottom{bottom:60%}
 .leaflet-control-attribution{font-size:9px}.map-stage:has(.detail:not([hidden])) .map-hint{display:none}
 .leaflet-tooltip{font-size:14px;max-width:240px;white-space:normal}.ward-number{font-size:13px;width:22px!important;height:22px!important;line-height:22px}.leaflet-top.leaflet-right{top:4px}
}
@media(max-width:359px){.mast{padding:0 10px}.brand-lockup{gap:6px}.brand-mark{width:25px;height:25px}.brand{font-size:18px}.header-right{gap:4px}.year{font-size:11px}.langs button{padding:4px 6px}.project-main{display:block}.rowamount{display:block;margin-top:4px}.rowbottom{gap:5px;font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
