:root{color-scheme:light;--ink:#263731;--ink-soft:#42564f;--muted:#6d7974;--paper:#f6f0e4;--paper-deep:#eee5d5;--surface:#fffdf8;--forest:#466b5c;--forest-dark:#2f5044;--sage:#dce8dc;--sage-light:#edf3eb;--terracotta:#d96c4b;--terracotta-dark:#9e4b36;--terracotta-soft:#f6dfd4;--sky:#78939d;--mustard:#e5c36b;--line:#d8d0c1;--line-dark:#c3b9aa;--shadow:0 18px 54px rgba(47,66,58,.11)}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{min-width:320px;margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:"BIZ UDPGothic","Noto Sans JP","Yu Gothic UI",system-ui,sans-serif;font-size:16px;line-height:1.75}a{color:var(--forest-dark);text-underline-offset:.2em}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid #6f7ed5;outline-offset:3px}.AppHeader{border-bottom:1px solid var(--line);background:var(--surface)}.AppHeader__inner{display:grid;min-height:64px;width:min(100% - 24px,820px);margin:auto;align-items:center;gap:8px}.AppHeader[data-variant=home] .AppHeader__inner{grid-template-columns:minmax(0,1fr) 48px}.AppHeader[data-variant=detail] .AppHeader__inner{grid-template-columns:48px minmax(0,1fr) 48px}.AppHeader[data-variant=list] .AppHeader__inner{grid-template-columns:minmax(0,1fr) auto}.AppHeader__brand{font-weight:900;text-decoration:none}.AppHeader__action,.BackAction{display:grid;min-width:48px;min-height:48px;padding:0;border:0;background:transparent;color:var(--ink);place-items:center}.AppHeader__action{text-decoration:underline}.AppHeader__current{color:var(--muted);font-weight:700}.BackAction{cursor:pointer;font-size:20px}.page{display:grid;gap:24px;width:min(100% - 24px,820px);margin:auto;padding:32px 0 64px}.SectionHeading{display:grid;gap:8px}.SectionHeading__eyebrow{margin:0;color:var(--terracotta-dark);font-size:14px;font-weight:900}.SectionHeading h1,.SectionHeading h2{margin:0;line-height:1.35}.SectionHeading h1{font-size:clamp(28px,6vw,44px)}.SectionHeading h2{font-size:clamp(22px,5vw,30px)}.SectionHeading__lead{max-width:680px;margin:0;color:var(--ink-soft)}.metric-fact{display:grid;gap:16px;padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.metric-value{margin:0;color:var(--forest-dark);font-size:clamp(42px,11vw,70px);font-weight:900;line-height:1}.CompactMetadataRow{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;padding:8px 0;border-block:1px solid var(--line);font-size:14px;line-height:1.65}.CompactMetadataRow>div{display:flex;gap:4px}.CompactMetadataRow dt{color:var(--muted);font-weight:700}.CompactMetadataRow dd{margin:0}.MetricTable{overflow-x:auto}.MetricTable table{width:100%;border-collapse:collapse}.MetricTable caption{text-align:left;font-weight:800;margin-bottom:8px}.MetricTable th,.MetricTable td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:right}.MetricTable th:first-child,.MetricTable td:first-child{text-align:left}.ComparisonLens{display:grid;gap:8px}.ComparisonLens label{font-weight:800}.ComparisonLens select{width:100%;min-height:48px;padding:8px 12px;border:2px solid var(--line-dark);border-radius:10px;background:#fff;color:var(--ink);font-size:16px}.ComparisonLens__summary{margin:0}.Notice{padding:16px;border-left:4px solid var(--terracotta);border-radius:4px 12px 12px 4px;background:var(--terracotta-soft)}.Notice p{margin:0}.SourceDisclosure summary{display:flex;min-height:48px;align-items:center;font-weight:800;cursor:pointer}.SourceDisclosure__panel{display:grid;gap:10px;padding:16px;border-radius:12px;background:var(--sage-light)}.SourceDisclosure__panel h3,.SourceDisclosure__panel p,.SourceDisclosure__panel ul{margin:0}.RouteLink{min-height:48px;display:inline-flex;align-items:center;text-decoration:underline}.metric-selector{display:grid;gap:8px}.metric-selector select{min-height:48px;padding:8px 12px;border:2px solid var(--line-dark);border-radius:10px;background:#fff}.feedback-form{display:grid;gap:18px;padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}.feedback-form fieldset{display:grid;gap:12px;margin:0;padding:0;border:0}.feedback-form textarea{width:100%;min-height:110px}.feedback-form button{min-height:48px}.feedback-form :disabled{cursor:not-allowed;opacity:.72}footer{padding:0 12px 32px;text-align:center;color:var(--muted);font-size:14px}@media(max-width:359px){.page{width:min(100% - 20px,820px)}.metric-fact{padding:16px}}@media(min-width:720px){.page{gap:32px;padding-top:48px}.metric-fact{padding:28px}.ComparisonLens{max-width:360px}}@media(min-width:1200px){.page{padding-top:56px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media(forced-colors:active){.metric-fact,.Notice,.feedback-form{border:1px solid CanvasText}}


/* v0.10: finance numbers and Phase A civic records vertical slice. */
.FinanceContents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.FinanceContents a{display:grid;min-height:48px;padding:8px;border-radius:9px;background:var(--sage-light);font-weight:800;line-height:1.35;text-align:center;text-decoration:none;place-items:center}
.FinanceSection{display:grid;gap:16px;scroll-margin-top:16px}
.FinanceSection>.metric-fact+.metric-fact{margin-top:0}
.ProcessMap{display:grid;gap:0;margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
.ProcessMap>div{display:grid;grid-template-columns:7em minmax(0,1fr);gap:12px;padding:13px 16px;border-bottom:1px solid var(--line)}
.ProcessMap>div:last-child{border-bottom:0}.ProcessMap dt{font-weight:900}.ProcessMap dd{margin:0;color:var(--ink-soft)}
.sort-label{margin:0;font-weight:800}.timeline-list{display:grid;gap:16px;margin:0;padding:0;list-style:none}
.timeline-item{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
.timeline-item h3,.timeline-item p{margin:0}.timeline-item h3{font-size:1.25rem;line-height:1.45}
.date-block{display:flex;flex-wrap:wrap;gap:8px}.typed-date{display:inline-flex;flex-direction:column;gap:2px}.typed-date__label{color:var(--muted);font-size:.78rem;font-weight:700}
.badge-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}.badge{display:inline-flex;min-width:0;align-items:baseline;gap:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--ink);font-weight:400;line-height:1.65;cursor:default}.badge>span{display:none}.badge--process{background:transparent}.process-cancelled-text-pattern{font-style:italic;text-decoration:none}.source-link{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.source-link__publisher{font-weight:700}.source-link__checked{color:var(--muted);font-size:.9rem}.source-action{display:inline;color:var(--civic-source-link,var(--accent,var(--forest-dark)));font-weight:400;text-decoration:underline;text-underline-offset:.2em;overflow-wrap:anywhere}
.visually-hidden{position:fixed;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:374px){.FinanceContents{grid-template-columns:1fr}.ProcessMap>div{grid-template-columns:1fr;gap:2px}}
@media(min-width:1200px){.timeline-item{grid-template-columns:128px minmax(0,1fr);gap:24px;padding:28px}.timeline-item>.date-block{grid-column:1;grid-row:1 / span 5}.timeline-item>.badge-row,.timeline-item>h3,.timeline-item>.timeline-item__summary,.timeline-item>.source-link{grid-column:2}}

/* v0.11.23: population-to-finance entry integration. */
.FinanceEntryFlow,
.fiscal-entry-card,
.citywide-growth,
.local-area-detail,
.fiscal-summary-list,
.fiscal-mini-explainers,
.fiscal-mini-explainer,
.fiscal-question-cards,
.metric-card,
.fiscal-question-card,
.comparison-control,
.disclosure-block,
.context-strip {
  display: grid;
  gap: 12px;
  min-inline-size: 0;
}

.FinanceEntryFlow {
  gap: 20px;
}

.context-strip {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
}

.context-strip p,
.local-facts p {
  margin: 0;
}

.context-strip span,
.local-facts span,
.local-facts small,
.metric-card span,
.fiscal-question-card span {
  display: block;
  color: var(--muted);
  font-size: .9rem;
  font-weight: 700;
}

.context-strip strong,
.local-facts strong {
  display: block;
  overflow-wrap: anywhere;
  font-size: 1.05rem;
  line-height: 1.35;
}

.citywide-growth,
.fiscal-entry-card,
.fiscal-contrast,
.comparison-control,
.local-area-detail {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
}

.fiscal-entry-card {
  gap: 16px;
  background: var(--surface);
}

.section-kicker,
.answer-label {
  margin: 0;
  color: var(--terracotta-dark);
  font-size: .9rem;
  font-weight: 900;
}

.citywide-growth h3,
.local-area-detail h3,
.fiscal-contrast h3,
.fiscal-entry-card h2 {
  margin: 0;
  line-height: 1.35;
}

.answer-grid {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.primary-value {
  margin: 0;
  color: var(--forest-dark);
  font-size: clamp(2.2rem, 9vw, 3.4rem);
  font-weight: 900;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.primary-value span:last-child {
  margin-inline-start: 4px;
  font-size: 1.15rem;
  font-weight: 800;
}

.meta-note,
.section-note,
.comparison-summary {
  margin: 0;
  color: var(--muted);
}

.fiscal-publication-note {
  margin: 0;
  padding: 12px;
  border: 1px solid #d6c49a;
  border-inline-start: 4px solid #8a6324;
  border-radius: 8px;
  background: #fff9e8;
  color: var(--ink);
}

.fiscal-publication-note a {
  display: inline-block;
  margin-inline-end: 12px;
  color: var(--forest-dark);
  font-weight: 400;
  text-decoration: underline;
  text-underline-offset: .2em;
  overflow-wrap: anywhere;
}

.local-facts {
  display: grid;
  gap: 10px;
}

.local-facts p,
.metric-card,
.fiscal-question-card {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.metric-card p,
.fiscal-question-card p {
  margin: 0;
}

.metric-question {
  color: var(--forest-dark);
  font-weight: 900;
}

.entry-metric-value {
  margin: 0;
  color: var(--ink);
  font-size: 1.55rem;
  font-weight: 900;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.fiscal-question-cards {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}

.fiscal-mini-explainer {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.metric-card button,
.fiscal-mini-explainer button,
.disclosure-block button {
  display: flex;
  min-block-size: 48px;
  inline-size: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-weight: 800;
  text-align: start;
}

.metric-card button::after,
.fiscal-mini-explainer button::after,
.disclosure-block button::after {
  content: "+";
  flex: 0 0 auto;
  font-size: 1.2rem;
  line-height: 1;
}

.metric-card button[aria-expanded="true"]::after,
.fiscal-mini-explainer button[aria-expanded="true"]::after,
.disclosure-block button[aria-expanded="true"]::after {
  content: "-";
}

[data-disclosure-panel] {
  display: grid;
  gap: 8px;
  padding: 12px;
  border-inline-start: 3px solid var(--line);
}

.js-ready [data-disclosure-panel][hidden] {
  display: none;
}

.select-shell {
  inline-size: 100%;
  max-inline-size: 360px;
}

.comparison-summary {
  font-size: .95rem;
}

.comparison-result {
  margin: 0;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.base-caveat {
  margin: 0;
  padding: 12px;
  border: 1px solid #b9d6d9;
  border-inline-start: 4px solid var(--forest);
  border-radius: 8px;
  background: var(--sage-light);
}

.source-action--wide {
  overflow-wrap: anywhere;
}

@media (min-width: 700px) {
  .local-facts,
  .fiscal-summary-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (forced-colors: active) {
  .context-strip,
  .citywide-growth,
  .fiscal-entry-card,
  .fiscal-contrast,
  .comparison-control,
  .fiscal-publication-note,
  .local-area-detail,
  .metric-card,
  .fiscal-question-card,
  .fiscal-mini-explainer,
  .base-caveat {
    border: 1px solid CanvasText;
  }
}

[data-general-definition] summary{min-height:48px;padding:10px 0;cursor:pointer;text-decoration:underline;text-underline-offset:.2em}

[data-council-questions] summary,[data-council-vote] summary{min-height:48px;padding:10px 0;cursor:pointer}
