/* A service landing page: one featured guide, specific questions, then news. */
#district-scene[data-district=hall]{background:var(--pw-color-canvas)}
#district-scene .hall-header{padding:var(--pw-space-2) var(--pw-space-5);border-bottom:1px solid var(--pw-color-line)}
#district-scene .hall-header button{font-size:var(--pw-text-sm)}
#district-scene .hall-header span{font-size:var(--pw-text-xs);color:var(--pw-color-ink-subtle);letter-spacing:.08em}
#district-scene .hall-heading{padding:var(--pw-space-5) var(--pw-space-6) var(--pw-space-4)}
#district-scene .hall-heading>small{font-size:var(--pw-text-xs);letter-spacing:.08em}
#district-scene .hall-heading h1{font-size:var(--pw-text-xl);font-weight:var(--pw-weight-strong);margin:var(--pw-space-2) 0 var(--pw-space-2)}
#district-scene .hall-heading p{font-size:var(--pw-text-sm)}
#district-scene .hall-tabs{padding:0 var(--pw-space-6);gap:var(--pw-space-6);border-bottom:1px solid var(--pw-color-line);justify-content:flex-start}
#district-scene .hall-tabs button{flex:none;border-radius:0;border:0;border-bottom:2px solid transparent;margin:0;background:transparent;color:var(--pw-color-ink-muted);min-height:46px;font-size:var(--pw-text-sm);padding:0 2px}
#district-scene .hall-tabs button[aria-pressed=true]{background:transparent;color:var(--pw-color-action);border-bottom-color:var(--pw-color-action)}
#district-scene .hall-body{padding:var(--pw-space-5) var(--pw-space-6)}
#district-scene .hall-start{position:relative;border-radius:var(--pw-radius-lg);padding:var(--pw-space-6) var(--pw-space-6);background:linear-gradient(90deg,color-mix(in srgb, var(--pw-color-action-deep) 96%, transparent),color-mix(in srgb, var(--pw-color-action-deep) 60%, transparent)),url('../../assets/districts/hall-cinematic-v1.webp') center/cover;color:var(--pw-brand-on-navy);overflow:hidden}
#district-scene .hall-start>small{color:var(--pw-brand-on-navy);font-size:var(--pw-text-xs);letter-spacing:.06em}
#district-scene .hall-start h2{margin:var(--pw-space-4) 0 var(--pw-space-2);font-size:var(--pw-text-xl);line-height:1.4;font-weight:var(--pw-weight-semibold);color:var(--pw-brand-on-navy)}
#district-scene .hall-start p{font-size:var(--pw-text-sm);color:var(--pw-brand-on-navy);margin:0 0 var(--pw-space-5)}
#district-scene .hall-start button{display:flex;gap:var(--pw-space-8);align-items:center;justify-content:space-between;background:var(--pw-color-surface);color:var(--pw-color-action-deep);border:0;border-radius:var(--pw-radius-md);min-height:46px;padding:var(--pw-space-3) var(--pw-space-4);font-size:var(--pw-text-sm);font-weight:var(--pw-weight-semibold)}
#district-scene .hall-help h2,#district-scene .hall-latest h2{font-size:var(--pw-text-base);margin:var(--pw-space-6) 0 var(--pw-space-2)}
#district-scene .hall-help>button{display:flex;align-items:center;justify-content:space-between;gap:var(--pw-space-4);width:100%;padding:var(--pw-space-4) 0;min-height:80px;border:0;border-bottom:1px solid var(--pw-color-line);background:none;color:var(--pw-color-ink)}
#district-scene .hall-help strong{font-size:var(--pw-text-sm);font-weight:var(--pw-weight-semibold);display:block;line-height:1.5}
#district-scene .hall-help small{display:block;margin-top:var(--pw-space-2);font-size:var(--pw-text-xs);line-height:1.5;color:var(--pw-color-ink-subtle)}
#district-scene .hall-help>button>span:last-child{color:var(--pw-color-ink-subtle);font-size:var(--pw-text-xl)}
#district-scene .hall-latest>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--pw-space-2)}
#district-scene .hall-latest>div button{background:none;border:0;color:var(--pw-color-action);min-height:44px;padding:var(--pw-space-1) 0;font-size:var(--pw-text-xs)}
#district-scene .hall-latest-item{width:100%;display:flex;gap:var(--pw-space-3);align-items:center;padding:var(--pw-space-4);background:var(--pw-color-canvas);border:0;border-radius:var(--pw-radius-md);color:var(--pw-color-action-deep)}
#district-scene .hall-latest-item time{font-size:var(--pw-text-xs);color:var(--pw-color-ink-subtle);flex-shrink:0}
#district-scene .hall-latest-item strong{font-size:var(--pw-text-sm);font-weight:var(--pw-weight-semibold);line-height:1.6;flex:1}
#district-scene .hall-account-hint{display:flex;align-items:center;justify-content:space-between;gap:var(--pw-space-2);margin-top:var(--pw-space-6);padding:var(--pw-space-4) 0;border-top:1px solid var(--pw-color-line);font-size:var(--pw-text-xs);color:var(--pw-color-ink-subtle)}
#district-scene .hall-account-hint button{font-size:var(--pw-text-xs);color:var(--pw-color-action);border:0;background:transparent;min-height:44px}
#district-scene .hall-footer{font-size:var(--pw-text-xs);letter-spacing:.1em;color:var(--pw-color-ink-subtle);padding:var(--pw-space-3) var(--pw-space-6) var(--pw-space-6)}
#district-scene .hall-section-caption{font-size:var(--pw-text-sm);color:var(--pw-color-ink-muted);line-height:1.6}
#district-scene .hall-rules details{padding:var(--pw-space-4) 0;border-bottom:1px solid var(--pw-color-line);scroll-margin-top:64px}
#district-scene .hall-rules summary{font-size:var(--pw-text-sm);font-weight:var(--pw-weight-semibold);line-height:1.6;cursor:pointer}
#district-scene .hall-rules h3{font-size:var(--pw-text-sm);margin:var(--pw-space-5) 0 var(--pw-space-2)}
#district-scene .hall-rules p{font-size:var(--pw-text-sm);color:var(--pw-color-ink-muted);line-height:1.9;margin:var(--pw-space-2) 0}
/* 规则手册：每个主题一张卡片，正文只放 2–4 条要点，公式与例外收进「规则详情」 */
#district-scene .hall-rules{display:grid;gap:var(--pw-space-2);margin-top:var(--pw-space-4)}
#district-scene .hall-rules details.rule-card{padding:var(--pw-space-3) var(--pw-space-4);border:1px solid var(--pw-color-line);border-radius:var(--pw-radius-md);background:var(--pw-color-surface)}
#district-scene .hall-rules .rule-facts{list-style:none;margin:var(--pw-space-2) 0 0;padding:0;display:grid;gap:var(--pw-space-1)}
#district-scene .hall-rules .rule-facts li{position:relative;padding-left:var(--pw-space-3);font-size:var(--pw-text-sm);line-height:1.6;color:var(--pw-color-ink)}
#district-scene .hall-rules .rule-facts li:before{content:"";position:absolute;left:2px;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--pw-color-action)}
#district-scene .hall-rules details.rule-more{padding:0;border:0;margin-top:var(--pw-space-2)}
#district-scene .hall-rules details.rule-more>summary{font-size:var(--pw-text-xs);font-weight:var(--pw-weight-semibold);color:var(--pw-color-action);min-height:32px;align-content:center}
#district-scene .hall-rules .rule-more ul{margin:var(--pw-space-1) 0 0;padding-left:var(--pw-space-4);display:grid;gap:var(--pw-space-1)}
#district-scene .hall-rules .rule-more li{font-size:var(--pw-text-xs);line-height:1.6;color:var(--pw-color-ink-muted)}
.hall-guide-steps .hall-guide-note{padding:var(--pw-space-1) 0 0;border-top:0}.hall-guide-note summary{font-size:var(--pw-text-sm);color:var(--pw-color-action);cursor:pointer}
#district-scene .hall-news button{border-top:0;border-bottom:1px solid var(--pw-color-line);padding:var(--pw-space-5) 0}
#district-scene .hall-news strong{font-size:var(--pw-text-base)}
.hall-example-bill{padding:var(--pw-space-4) var(--pw-space-5);border-radius:var(--pw-radius-lg);background:var(--pw-color-canvas);display:grid;gap:var(--pw-space-3);margin:var(--pw-space-5) 0}.hall-example-bill>span,.hall-example-bill>strong{display:flex;justify-content:space-between;gap:var(--pw-space-3);font-size:var(--pw-text-sm)}.hall-example-bill>span{color:var(--pw-color-ink-muted)}.hall-example-bill>strong{border-top:1px solid var(--pw-color-line);padding-top:var(--pw-space-4);color:var(--pw-color-action)}
.hall-guide-steps{list-style:none;padding:0 0 0 var(--pw-space-4);border-left:2px solid var(--pw-color-line);margin:var(--pw-space-8) 0}.hall-guide-steps li{padding:0 0 var(--pw-space-5) var(--pw-space-2)}.hall-guide-steps small{color:var(--pw-color-action);font-size:var(--pw-text-xs)}.hall-guide-steps h3{font-size:var(--pw-text-base);margin:var(--pw-space-2) 0}.hall-guide-steps p,.hall-guide-note p{font-size:var(--pw-text-sm);color:var(--pw-color-ink-muted);line-height:1.8}.hall-guide-note{padding:var(--pw-space-4) 0;border-top:1px solid var(--pw-color-line)}
@media(max-width:360px){#district-scene .hall-heading,#district-scene .hall-body{padding-left:var(--pw-space-4);padding-right:var(--pw-space-4)}#district-scene .hall-start{padding:var(--pw-space-5) var(--pw-space-4)}#district-scene .hall-start h2{font-size:var(--pw-text-xl)}#district-scene .hall-account-hint{font-size:var(--pw-text-xs)}}
/* 政务公开：聚合数据，游客可见 */
#district-scene .hall-tabs{gap:var(--pw-space-4);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
#district-scene .hall-tabs::-webkit-scrollbar{display:none}
#district-scene .hall-tabs button{white-space:nowrap}
#district-scene .hall-public-entry button{display:flex;align-items:center;justify-content:space-between;gap:var(--pw-space-3);width:100%;margin-top:var(--pw-space-4);padding:var(--pw-space-4) var(--pw-space-4);border:1px solid var(--pw-color-line);border-radius:var(--pw-radius-lg);background:linear-gradient(120deg,var(--pw-color-canvas),var(--pw-color-surface));color:var(--pw-color-ink)}
#district-scene .hall-public-entry small{display:block;font-size:var(--pw-text-xs);letter-spacing:.08em;color:var(--pw-color-action);margin-bottom:var(--pw-space-1)}
#district-scene .hall-public-entry strong{font-size:var(--pw-text-sm);font-weight:var(--pw-weight-semibold);line-height:1.5}
#district-scene .hall-public-entry>button>span:last-child{color:var(--pw-color-ink-subtle);font-size:var(--pw-text-xl)}
.public-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--pw-space-2);margin:var(--pw-space-3) 0 var(--pw-space-3)}
.public-summary div{padding:var(--pw-space-3);border-radius:var(--pw-radius-md);background:var(--pw-color-surface);border:1px solid var(--pw-color-line);color:var(--pw-color-ink);min-width:0}
.public-summary span,.public-summary small{display:block;font-size:var(--pw-text-xs);color:var(--pw-color-ink-muted)}.public-summary small{margin-top:var(--pw-space-1)}
.public-summary b{display:block;font-size:var(--pw-text-base);margin-top:var(--pw-space-1);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.public-rule{display:flex;align-items:center;justify-content:space-between;gap:var(--pw-space-2);flex-wrap:wrap;padding:var(--pw-space-3) var(--pw-space-3);border-radius:var(--pw-radius-md);background:var(--pw-color-canvas);color:var(--pw-color-ink);margin-bottom:var(--pw-space-2)}
.public-rule span{font-size:var(--pw-text-xs);color:var(--pw-color-ink-muted)}.public-rule b{font-size:var(--pw-text-sm);flex:1}.public-rule button{border:0;background:transparent;color:var(--pw-color-action);font-size:var(--pw-text-xs);min-height:44px;padding:0}
.public-sectors{display:grid;gap:var(--pw-space-2);margin:var(--pw-space-3) 0 var(--pw-space-2)}.public-sectors div{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:var(--pw-space-1) var(--pw-space-2);padding:var(--pw-space-3) var(--pw-space-3);border-radius:var(--pw-radius-md);background:var(--pw-color-surface);border:1px solid var(--pw-color-line);color:var(--pw-color-ink)}
.public-sectors span{grid-row:1/3;font-size:var(--pw-text-sm);font-weight:var(--pw-weight-semibold)}.public-sectors i{display:block;height:8px;border-radius:var(--pw-radius-sm);background:var(--pw-color-action);min-width:4px}.public-sectors div:last-child i{background:var(--pw-color-gold)}.public-sectors b{font-size:var(--pw-text-xs);font-weight:var(--pw-weight-semibold);color:var(--pw-color-ink-muted);font-variant-numeric:tabular-nums}
.public-cities{display:grid;gap:var(--pw-space-2);margin:var(--pw-space-3) 0 var(--pw-space-2)}.public-city{padding:var(--pw-space-3) var(--pw-space-3);border-radius:var(--pw-radius-md);background:var(--pw-color-surface);border:1px solid var(--pw-color-line);color:var(--pw-color-ink)}
.public-city-head{display:flex;justify-content:space-between;align-items:center;gap:var(--pw-space-2)}.public-city-head strong{font-size:var(--pw-text-sm)}.public-city-head em{font-style:normal;font-variant-numeric:tabular-nums;font-weight:var(--pw-weight-semibold);font-size:var(--pw-text-sm)}
.public-city-bar{height:6px;border-radius:var(--pw-radius-sm);background:var(--pw-color-canvas);margin:var(--pw-space-2) 0 var(--pw-space-1);overflow:hidden}.public-city-bar i{display:block;height:100%;background:var(--pw-color-action)}
.public-city small{display:block;font-size:var(--pw-text-xs);color:var(--pw-color-ink-muted);line-height:1.6}
.public-ledger{margin:var(--pw-space-3) 0 var(--pw-space-2);padding:var(--pw-space-3) 0;border-top:1px solid var(--pw-color-line)}.public-ledger summary{font-size:var(--pw-text-sm);font-weight:var(--pw-weight-semibold);cursor:pointer;min-height:44px;align-content:center}
@media(min-width:700px){.public-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:360px){#district-scene .hall-tabs{gap:var(--pw-space-3);padding:0 var(--pw-space-4)}#district-scene .hall-tabs button{font-size:var(--pw-text-xs)}}

/* 合约升级投票（GOV01，MVP_PRD_V0.4） */
#district-scene .gov-flow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--pw-space-1);margin:var(--pw-space-1) 0 var(--pw-space-3);font-size:var(--pw-text-xs)}
#district-scene .gov-flow span{background:var(--pw-color-canvas);color:var(--pw-color-action);border-radius:var(--pw-radius-round);padding:2px var(--pw-space-2)}
#district-scene .gov-flow i{font-style:normal;color:var(--pw-color-ink-subtle)}
#district-scene .gov-card{background:var(--pw-color-surface);border:1px solid var(--pw-color-line);border-radius:var(--pw-radius-lg);padding:var(--pw-space-4) var(--pw-space-4);margin:0 0 var(--pw-space-3)}
#district-scene .gov-card header{display:grid;gap:var(--pw-space-1);margin-bottom:var(--pw-space-2)}
#district-scene .gov-card header small{font-size:var(--pw-text-xs);color:var(--pw-color-ink-subtle);letter-spacing:.02em}
#district-scene .gov-card h3{margin:0;font-size:var(--pw-text-base);line-height:1.45}
#district-scene .gov-status{justify-self:start;font-size:var(--pw-text-xs);font-weight:var(--pw-weight-bold);border-radius:var(--pw-radius-round);padding:2px var(--pw-space-2);background:var(--pw-color-canvas-edge);color:var(--pw-color-success)}
#district-scene .gov-card.is-timelock .gov-status{background:var(--pw-color-canvas-edge);color:var(--pw-color-gold)}
#district-scene .gov-card.is-candidate{border-style:dashed}
#district-scene .gov-card.is-candidate .gov-status{background:var(--pw-color-canvas);color:var(--pw-color-ink-muted)}
#district-scene .gov-card>p{font-size:var(--pw-text-sm);color:var(--pw-color-ink-muted);margin:0 0 var(--pw-space-2)}
#district-scene .gov-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--pw-space-2) var(--pw-space-3);margin:0 0 var(--pw-space-3)}
#district-scene .gov-facts dt{font-size:var(--pw-text-xs);color:var(--pw-color-ink-subtle)}
#district-scene .gov-facts dd{margin:2px 0 0;font-size:var(--pw-text-sm);font-weight:var(--pw-weight-semibold);color:var(--pw-color-ink)}
#district-scene .gov-meter{display:grid;gap:var(--pw-space-1);margin-bottom:var(--pw-space-2)}
#district-scene .gov-meter>span{font-size:var(--pw-text-xs);color:var(--pw-color-ink-muted);margin-top:var(--pw-space-1)}
#district-scene .gov-meter small{font-size:var(--pw-text-xs);color:var(--pw-color-ink-subtle)}
#district-scene .gov-bar{position:relative;height:8px;border-radius:var(--pw-radius-round);background:var(--pw-color-canvas);overflow:visible}
#district-scene .gov-bar i{position:absolute;inset:0 auto 0 0;border-radius:var(--pw-radius-round);background:var(--pw-color-action)}
#district-scene .gov-bar b{position:absolute;top:-3px;width:2px;height:14px;background:var(--pw-brand-navy-surface)}
#district-scene .gov-mine{font-size:var(--pw-text-xs);color:var(--pw-color-ink-muted);background:var(--pw-color-surface-elevated);border-radius:var(--pw-radius-sm);padding:var(--pw-space-2) var(--pw-space-2);margin:var(--pw-space-2) 0 0}
#district-scene .gov-mine code{font-size:var(--pw-text-xs)}
#district-scene .gov-vote{display:grid;gap:var(--pw-space-2);margin-top:var(--pw-space-1)}
#district-scene .gov-vote p,#district-scene .gov-vote label{font-size:var(--pw-text-xs);color:var(--pw-color-ink-muted);margin:0}
#district-scene .gov-vote label{display:flex;gap:var(--pw-space-2);align-items:flex-start}
#district-scene .gov-rules{font-size:var(--pw-text-sm);color:var(--pw-color-ink-muted);margin-top:var(--pw-space-1)}
#district-scene .gov-rules summary{cursor:pointer;font-weight:var(--pw-weight-semibold);color:var(--pw-color-ink)}
#district-scene .gov-rules li{margin:var(--pw-space-1) 0}
#district-scene .gov-more{font-size:var(--pw-text-xs);color:var(--pw-color-ink-muted)}
#district-scene .gov-more summary{cursor:pointer;color:var(--pw-color-action);min-height:32px;align-content:center}
#district-scene .gov-more ul,#district-scene .gov-rules ul{margin:var(--pw-space-1) 0 0;padding-left:var(--pw-space-4)}
#district-scene .gov-rules li{font-size:var(--pw-text-xs);line-height:1.6}
/* 规则手册：问题检索 */
#district-scene .hall-rules details.rule-card{padding-bottom:var(--pw-space-1)}
#district-scene #hall-rule-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--pw-space-2);margin:var(--pw-space-2) 0 0}
#district-scene #hall-rule-search label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#district-scene #hall-rule-query{width:100%;min-width:0;min-height:44px;padding:0 var(--pw-space-3);border:1px solid var(--pw-color-line);border-radius:var(--pw-radius-md);background:var(--pw-color-surface);color:var(--pw-color-ink);font-size:var(--pw-text-sm)}
#district-scene #hall-rule-search button{min-height:44px;margin:0;padding:0 var(--pw-space-3);border-radius:var(--pw-radius-md);font-size:var(--pw-text-sm)}
#district-scene #hall-rule-result{display:flex;flex-wrap:wrap;gap:var(--pw-space-1);margin:var(--pw-space-2) 0 0;padding:0;border:0;background:transparent}
#district-scene #hall-rule-result>button{min-height:36px;margin:0;padding:var(--pw-space-1) var(--pw-space-3);border:1px solid var(--pw-color-line);border-radius:var(--pw-radius-round);background:var(--pw-color-surface);color:var(--pw-color-action);font-size:var(--pw-text-xs)}
#district-scene #hall-rule-result h3,#district-scene #hall-rule-result p{flex-basis:100%;margin:0;color:var(--pw-color-ink)}
#district-scene #hall-rule-result h3{font-size:var(--pw-text-sm)}#district-scene #hall-rule-result p{font-size:var(--pw-text-sm);line-height:1.6;color:var(--pw-color-ink-muted)}
