.modal-backdrop:has(.district-workspace){padding:0;background:#183e34}
.modal.wide:has(>.district-workspace){width:100%;height:100%;max-height:100dvh;border:0;border-radius:0;background:#f3f4e9;overflow:hidden}
.modal:has(>.district-workspace)>.modal-close{display:none}
.district-workspace{--dc-ink:#214b41;--dc-muted:#566d60;--dc-line:#d2dbcb;height:100%;display:flex;flex-direction:column;color:var(--dc-ink);font-family:inherit}
.district-topline{flex:none;display:flex;align-items:center;gap:clamp(15px,3vw,55px);padding:13px clamp(16px,2.5vw,44px);background:#214b41;color:#fcf8e5;border-bottom:3px solid #c4ad72;position:relative;z-index:1}
.district-heading{display:flex;align-items:center;gap:14px;margin-right:auto}
.district-city-icon{display:grid;place-items:center;width:43px;height:43px;border:1px solid #94aa88;border-radius:12px;color:#e7c984;font:700 32px/1 Georgia,serif}
.district-kicker,.district-lot-index{font-size:10px;font-weight:800;line-height:1.5;letter-spacing:.12em;text-transform:uppercase}
.district-topline .district-kicker{color:#cdddc0}
.modal .district-workspace h2{font-size:clamp(22px,2.1vw,34px);font-weight:700;line-height:1.12;color:#fff9e8;margin:1px 0 0;letter-spacing:-.035em}
.district-header-stats{display:flex;gap:clamp(16px,2.5vw,40px);line-height:1.15}
.district-header-stats>span{font-size:11px;color:#c5d7bf}
.district-header-stats b{display:block;margin-top:4px;font-size:clamp(14px,1.25vw,19px);color:#fff8e5;font-variant-numeric:tabular-nums}
.district-workspace .district-exit{padding:7px 13px;min-height:35px;font-size:12px;border:1px solid #7a9989;border-radius:8px;background:#305a4e;color:#fff9e8}
.district-exit span{font-size:17px;line-height:1}
.district-body{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) clamp(250px,22vw,342px)}
.district-map-frame{min-width:0;min-height:0;position:relative;isolation:isolate;overflow:hidden;background-color:#bdcfae;background-image:radial-gradient(#a9bc9a .7px,transparent .85px);background-size:8px 8px}
.district-scroll-map{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#829a86 #c4d4b7}
.district-map-surface{width:100%;height:100%;min-width:100%;min-height:100%}
.district-city-art{display:block;width:100%;height:100%;overflow:visible;font-family:inherit}
.district-map-caption,.district-map-key,.district-map-tools{position:absolute;background:#f9f9edee;border:1px solid #9eaf95;box-shadow:0 2px 7px #294d3920}
.district-map-caption{top:14px;left:16px;border-radius:7px;padding:6px 11px;display:grid;pointer-events:none}
.district-map-caption .district-kicker{color:#63806a;font-size:8px}
.district-map-caption strong{font-size:12px}
.district-map-tools{bottom:16px;right:16px;display:flex;border-radius:8px;overflow:hidden}
.district-map-tools button{appearance:none;border:0;color:var(--dc-ink);background:#fbfbec;font:600 22px/1 system-ui;width:38px;height:36px;padding:0;cursor:pointer}
.district-map-tools button+button{border-left:1px solid var(--dc-line)}
.district-map-tools button:disabled{color:#8a9b89;background:#e7ecde;cursor:default}
.district-map-tools button:focus-visible{outline-offset:-3px}
.district-map-key{display:flex;gap:12px;left:16px;bottom:16px;pointer-events:none;font-size:10px;font-weight:700;padding:7px 10px;border-radius:6px}
.district-map-key span{display:inline-flex;align-items:center;gap:5px}
.district-map-key i{display:inline-block;width:16px;height:5px;border-radius:3px}
.key-road{background:#75847d}.key-walk{background:#e2d9bc;border:1px solid #c6bfa7}.key-cycle{background:#81ab97}
.district-command{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;background:#f8f8ee;border-left:1px solid #b8c7b1;scrollbar-width:thin;scrollbar-color:#a1af9b transparent}
.district-inspector{padding:clamp(15px,1.6vw,25px);border-bottom:1px solid var(--dc-line);background:#fcfcf3}
.district-inspector-head{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#637969}
.district-lot-index{font-size:10px;letter-spacing:.09em;color:#526c5a;background:#e8efdf;border:1px solid #d3dfcc;padding:3px 8px;border-radius:20px}
.district-project-heading{display:flex;align-items:center;gap:10px;margin:13px 0 4px}
.district-project-icon{display:flex;align-items:center;justify-content:center;flex:0 0 58px;height:58px;border-radius:12px;background:#eef1e4}
.district-project-heading h3{margin:3px 0 0;font-size:clamp(17px,1.4vw,23px);line-height:1.15;color:var(--dc-ink);letter-spacing:-.035em}
.district-state{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:650;color:#61745c}
.district-state::before{content:'';width:7px;height:7px;border:1.5px solid #8d9f7a;background:#e0eacf;border-radius:50%}
.district-state.open::before{background:#62896a;border-color:#62896a}
.district-state.working::before{background:#e0ad60;border-color:#a47e3a}
.modal .district-inspector .district-benefit{font-size:12px;color:#526c58;line-height:1.45;margin:9px 0 15px}
.district-select-label{display:block;font-size:11px;color:#526c58;font-weight:750;margin:0 0 6px}
.district-inspector select{display:block;width:100%;min-width:0;background:#fffef8;color:#244a41;border:1px solid #aebfaa;border-radius:7px;padding:9px 6px;line-height:1.3;font-family:inherit;font-size:12px;font-weight:600}
.district-finances{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3px;margin:13px 0}
.district-finances>div+div{border-left:1px solid var(--dc-line);padding-left:10px}
.district-finances small,.district-finances b{display:block}
.district-finances small,.district-work-status small,.district-note{font-size:11px;color:#647866;line-height:1.45}
.district-finances b{font-size:19px;font-variant-numeric:tabular-nums}
.district-finances em{font-size:11px;font-style:normal;font-weight:500}
.district-workspace .district-fund,.district-workspace .district-demolish{width:100%;min-height:38px;font-size:13px}
.district-workspace .district-demolish{background:#f9f0df;color:#785333;border:1px solid #d9c6a8;margin-top:12px}
.district-detail-line,.district-work-status>div{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;line-height:1.5}
.district-detail-line{padding:6px 0;border-top:1px solid var(--dc-line)}
.district-note{display:block;margin-top:6px}
.district-work-status{border:1px solid #dfcfaa;border-radius:8px;background:#f8efdb;padding:10px}
.district-work-status>div{color:#775d36}
.district-work-status progress{display:block;width:100%;height:8px;background:#deceb0;color:#a87e3c;accent-color:#a87e3c;border:0;border-radius:5px;margin:8px 0 6px}
.district-work-status progress::-webkit-progress-bar{border-radius:5px;background:#dfd1b4}
.district-work-status progress::-webkit-progress-value{border-radius:5px;background:#ad8342}
.district-lot{cursor:pointer;outline:none}
.district-lot:focus-visible .district-site-boundary,.district-lot:hover .district-site-boundary{stroke:#34594b;stroke-width:3;stroke-dasharray:none}
.district-dozer{animation:district-doze 1.9s ease-in-out infinite alternate}
.district-worker.dw-0{animation:district-worker-step 2.2s ease-in-out infinite alternate}
.district-worker.dw-1{animation:district-worker-step 1.85s ease-in-out infinite alternate-reverse}
.district-arm{animation:district-hammer .55s ease-in-out infinite alternate;transform-origin:3px -10px}
.district-hook{animation:district-lift 2.4s ease-in-out infinite alternate}
@keyframes district-doze{from{transform:translate(-9px,-4px)}to{transform:translate(9px,3px)}}
@keyframes district-worker-step{0%,28%{transform:translate(-2px,0)}75%,100%{transform:translate(2px,2px)}}
@keyframes district-hammer{to{transform:rotate(-22deg)}}
@keyframes district-lift{to{transform:translateY(-8px)}}
@media(min-width:1700px){.district-topline{padding-block:18px}.district-body{grid-template-columns:minmax(0,1fr) 350px}.district-inspector{padding:24px}}
@media(max-width:900px) and (orientation:portrait){
  .district-body{display:flex;flex-direction:column;overflow:hidden;background:#f8f8ee}
  .district-map-frame{flex:1;min-height:0;border-bottom:1px solid #b8c7b1}
  .district-command{flex:0 1 clamp(255px,41dvh,316px);min-height:0;border-left:0;overflow:auto}
  .district-topline{gap:9px;padding:9px 11px}.district-heading{gap:8px}
  .district-city-icon{width:31px;height:34px;border-radius:8px;font-size:24px}
  .district-topline .district-kicker{font-size:7.5px}.modal .district-workspace h2{font-size:20px}
  .district-header-stats{gap:7px}.district-header-stats>span:first-child{display:none}.district-header-stats>span{font-size:9px}.district-header-stats b{font-size:13px}
  .district-workspace .district-exit{min-height:32px;padding:4px 7px;font-size:10px;gap:3px}
  .district-inspector{padding:13px 15px}.district-inspector-head .district-kicker{font-size:9px}
  .district-project-heading{margin:6px 0 3px}.district-project-icon{height:45px;flex-basis:45px}.district-project-icon svg{width:45px;height:45px}
  .modal .district-inspector .district-benefit{margin:4px 0 10px}
  .district-finances{margin:10px 0}.district-finances>div+div{padding-left:13px}
  .district-map-caption{top:8px;left:8px;padding:4px 7px}.district-map-caption strong{font-size:10px}
  .district-map-tools{bottom:8px;right:8px}.district-map-tools button{width:33px;height:32px}
  .district-map-key{left:8px;bottom:8px;gap:8px;font-size:9px;padding:5px 7px}
}
@media(max-height:560px) and (orientation:landscape){
  .district-topline{padding:5px 12px;gap:14px}.district-city-icon{width:30px;height:30px;font-size:23px}.district-heading{gap:8px}.district-topline .district-kicker{font-size:7px}.modal .district-workspace h2{font-size:18px}
  .district-header-stats>span{font-size:9px}.district-header-stats b{font-size:12px}.district-exit{min-height:28px!important}
  .district-body{grid-template-columns:minmax(0,1fr) clamp(202px,28vw,278px)}.district-inspector{padding:10px}.district-project-heading{margin:6px 0}.district-project-icon{flex-basis:40px;height:40px}.district-project-icon svg{width:40px;height:40px}
  .district-project-heading h3{font-size:16px}.district-map-caption{top:6px;left:7px}.district-map-key{bottom:6px;left:7px}.district-map-tools{bottom:6px;right:7px}
}
@media(prefers-reduced-motion:reduce){.district-dozer,.district-worker,.district-arm,.district-hook{animation:none!important}}

.district-next-project{margin-top:12px;padding-top:10px;border-top:1px solid var(--dc-line)}

.district-pane-tabs{display:none}
@media(max-width:900px) and (orientation:portrait),(max-height:620px) and (orientation:landscape){
  .district-pane-tabs{position:sticky;top:0;z-index:1;display:flex;gap:4px;align-items:center;padding:4px 8px;background:#e7edde;border-bottom:1px solid #c6d1bc}
  .district-pane-tabs button{padding:5px 9px;border:1px solid transparent;border-radius:5px;background:transparent;color:#526653;font:650 11.5px/1.25 system-ui,sans-serif;cursor:pointer}
  .district-pane-tabs button[aria-pressed=true]{background:#fcfcf2;border-color:#bcc9b5;color:#254f40}
  .district-command[data-district-pane=site] .life-panel,.district-command[data-district-pane=life] .district-inspector{display:none}
  .district-command .life-panel{border:0;border-radius:0}
}
