@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');

:root {
  --bg:#f6f7f2;
  --paper:#fff;
  --ink:#263e34;
  --muted:#66726a;
  --line:#e4e8df;
  --green:#3c6752;
  --pale:#e9eee4;
  --orange:#de865f;
  --radius:19px
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:14px;
  line-height:1.55
}
button,input,select {
  font:inherit;
  color:inherit
}
button,a,input,select,summary {
  -webkit-tap-highlight-color:transparent
}
button,a {
  touch-action:manipulation
}
button {
  cursor:pointer
}
a {
  color:inherit;
  text-decoration:none
}
button {
  border:0;
  background:none
}
button:disabled {
  opacity:.5;
  cursor:wait
}
:focus-visible {
  outline:3px solid #bc6d40;
  outline-offset:4px
}
[hidden] {
  display:none!important
}
.skip {
  position:fixed;
  top:-100px;
  left:20px;
  background:white;
  padding:12px;
  z-index:100
}
.skip:focus {
  top:12px
}
.sidebar {
  width:244px;
  position:fixed;
  inset:0 auto 0 0;
  padding:35px 22px 22px;
  background:#f0f2eb;
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
  z-index:20
}
.brand {
  display:flex;
  align-items:center;
  font-family:Manrope,system-ui,sans-serif;
  font-size:23px;
  font-weight:800;
  letter-spacing:-1.3px;
  white-space:nowrap
}
.brand>span:not(.brand-icon) {
  font-weight:500
}
.brand i {
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--orange);
  margin:13px 0 0 3px
}
.brand-icon {
  background:var(--green);
  color:#fff;
  border-radius:10px;
  width:34px;
  height:36px;
  text-align:center;
  line-height:36px;
  margin-right:10px;
  font-size:23px;
  letter-spacing:-4px;
  padding-right:3px
}
.brand-icon span {
  color:#cddac9
}
.side-caption {
  font-size:14px;
  letter-spacing:1.5px;
  margin:15px 0 40px 3px;
  color:var(--muted)
}
nav {
  display:grid;
  gap:9px
}
.nav-item {
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 11px;
  border-radius:9px;
  color:#626e63;
  font-size:14px;
  font-weight:550
}
.nav-item>span {
  font-size:21px;
  line-height:1;
  width:23px;
  text-align:center
}
.nav-item.active {
  color:var(--ink);
  background:#dfe7d9
}
.nav-item:hover {
  background:#e5ebdf
}
.side-note {
  margin-top:auto;
  padding:22px 16px;
  border:1px solid #dce2d4;
  border-radius:13px;
  background:#e9ede1
}
.small-spark {
  color:var(--green);
  font-size:31px
}
.side-note h3 {
  font-size:14px;
  font-weight:600;
  line-height:1.5;
  margin:7px 0
}
.side-note p {
  font-size:14px;
  color:var(--muted)
}
.text-button {
  padding:0;
  font-size:14px;
  font-weight:650;
  color:var(--green)
}
.text-button:hover {
  text-decoration:underline
}
.side-note .text-button {
  font-size:14px
}
.side-footer {
  font-size:14px;
  margin-top:26px;
  color:var(--muted)
}
.side-footer small {
  display:block;
  font-size:14px;
  margin:8px 0 0 13px
}
.status-dot {
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#62846b;
  margin-right:5px
}
.shell {
  margin-left:244px
}
.topbar {
  height:78px;
  padding:0 42px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}
.breadcrumb {
  font-size:14px;
  color:var(--muted)
}
.breadcrumb span {
  margin:0 12px;
  color:#a4ada4
}
.breadcrumb strong {
  font-weight:500;
  color:var(--ink)
}
.outline-button {
  border:1px solid #dce2d7;
  background:transparent;
  border-radius:8px;
  padding:8px 13px;
  font-size:14px;
  display:flex;
  gap:8px;
  align-items:center
}
.outline-button:hover {
  background:var(--pale)
}
main {
  max-width:1460px;
  margin:auto;
  padding:33px 42px 0
}
.intro {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:30px
}
.eyebrow {
  font-size:14px;
  letter-spacing:1.8px;
  font-weight:650;
  color:var(--muted)
}
.intro .eyebrow {
  display:flex;
  align-items:center;
  gap:7px
}
.intro .eyebrow>span {
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--orange)
}
h1,h2,h3 {
  font-family:Manrope,system-ui,sans-serif
}
h1 {
  font-size:clamp(30px,3.1vw,47px);
  line-height:1.2;
  font-weight:650;
  letter-spacing:-1.9px;
  margin:17px 0 13px
}
h1 em {
  font-style:normal;
  color:#75947b
}
.intro p {
  font-size:14px;
  color:var(--muted);
  margin:0
}
.intro-art {
  position:relative;
  flex-shrink:0;
  width:245px;
  height:166px;
  margin-right:15px;
  background:radial-gradient(ellipse at center,#e9edde 0,#e9edde 48%,transparent 49%)
}
.art-sun {
  position:absolute;
  right:31px;
  top:0;
  color:#c98d55;
  font-size:45px;
  transform:rotate(12deg)
}
.building {
  position:absolute;
  width:124px;
  height:85px;
  bottom:26px;
  left:55px;
  display:flex;
  align-items:center;
  justify-content:space-evenly;
  border:1px solid #9aaf92;
  border-bottom:6px double #82997d;
  background:#e1e7d3;
  transform:rotate(-5deg)
}
.building i {
  position:absolute;
  top:-32px;
  left:-7px;
  width:137px;
  height:38px;
  background:#b9caa9;
  clip-path:polygon(50% 0,100% 83%,100% 100%,0 100%,0 83%)
}
.building b {
  font-size:35px;
  font-weight:400;
  color:#7e9676
}
.building footer {
  position:absolute;
  bottom:-11px;
  height:4px;
  width:145px;
  background:#a8ba99
}
.art-caption {
  position:absolute;
  bottom:0;
  left:30px;
  font-size:14px;
  color:#7c8d74;
  letter-spacing:1.8px
}
.commune-bar {
  display:flex;
  align-items:center;
  gap:23px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px 17px;
  margin-bottom:29px
}
.search-wrap {
  position:relative;
  flex:1;
  min-width:0
}
.search-wrap label {
  display:block;
  color:var(--muted);
  font-size:14px;
  margin-bottom:3px
}
.search-wrap input {
  border:0;
  outline-offset:2px;
  background:transparent;
  width:100%;
  font-size:14px;
  padding:3px 0
}
.search-wrap input::placeholder {
  color:#7b847b
}
.commune-meta {
  display:flex;
  align-items:center;
  gap:10px;
  border-left:1px solid var(--line);
  padding-left:25px;
  min-width:210px
}
.pin {
  font-size:24px;
  color:var(--green)
}
.commune-meta strong {
  font-size:14px
}
.commune-meta small {
  display:block;
  font-size:14px;
  color:var(--muted)
}
.year-label {
  font-size:14px;
  color:var(--muted);
  border-left:1px solid var(--line);
  padding-left:23px
}
select {
  display:block;
  border:0;
  background:transparent;
  font-size:14px;
  font-weight:600;
  padding:4px 18px 4px 0;
  cursor:pointer
}
.search-results {
  position:absolute;
  top:calc(100% + 15px);
  left:-10px;
  right:-10px;
  min-width:280px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 12px 30px #263e3420;
  border-radius:12px;
  padding:8px;
  z-index:30;
  max-height:350px;
  overflow:auto
}
.search-option {
  display:block;
  width:100%;
  text-align:left;
  padding:10px;
  border-radius:7px
}
.search-option:hover,.search-option[aria-selected=true] {
  background:var(--pale)
}
.search-option strong {
  display:block;
  font-size:14px
}
.search-option small {
  color:var(--muted)
}
.search-message {
  padding:14px;
  font-size:14px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:15px
}
.section-heading h2 {
  font-size:17px;
  font-weight:650;
  letter-spacing:-.4px;
  margin:0
}
.section-heading>span {
  font-size:14px;
  color:var(--muted)
}
.source-pill {
  padding:5px 10px;
  border:1px solid #dce4d4;
  border-radius:20px;
  background:#eff3e9;
  font-size:14px!important
}
.kpi-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:13px;
  margin-bottom:20px
}
.kpi {
  padding:19px 19px 16px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
  position:relative
}
.kpi:first-child {
  background:#eaf0e4;
  border-color:#dce6d5
}
.kpi-label {
  font-size:14px;
  color:var(--muted);
  display:flex;
  justify-content:space-between;
  gap:5px
}
.kpi strong {
  display:block;
  font-family:Manrope,system-ui,sans-serif;
  font-size:27px;
  font-weight:650;
  letter-spacing:-1px;
  margin:12px 0 8px;
  font-variant-numeric:tabular-nums
}
.kpi small {
  font-size:14px;
  color:var(--muted);
  line-height:1.5;
  display:block
}
.kpi-help {
  color:#74856f;
  border:1px solid #cfd9c8;
  border-radius:50%;
  font-size:14px;
  width:15px;
  height:15px;
  line-height:13px;
  text-align:center;
  padding:0
}
.explore-grid {
  display:grid;
  grid-template-columns:minmax(0,2.65fr) minmax(235px,1fr);
  gap:20px
}
.panel {
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  overflow:hidden
}
.panel-heading {
  display:flex;
  justify-content:space-between;
  gap:15px;
  align-items:center
}
.allocation {
  padding:23px 23px 0
}
.panel h2 {
  font-size:17px;
  font-weight:650;
  letter-spacing:-.45px;
  margin:5px 0 0
}
.panel-sub {
  font-size:14px;
  color:var(--muted);
  margin:10px 0 18px
}
.segmented {
  display:flex;
  padding:3px;
  border:1px solid var(--line);
  border-radius:7px;
  white-space:nowrap;
  background:#f7f8f4;
  gap:2px
}
.segmented button {
  font-size:14px;
  padding:6px 9px;
  border-radius:5px;
  color:var(--muted)
}
.segmented button.selected {
  background:#fff;
  color:var(--ink);
  box-shadow:0 1px 3px #253b3215
}
.allocation-body {
  display:grid;
  grid-template-columns:.95fr 1fr;
  align-items:center;
  gap:25px;
  min-height:315px;
  padding-bottom:23px
}
.donut-wrap {
  text-align:center;
  min-width:0
}
.donut {
  width:100%;
  max-width:245px;
  aspect-ratio:1;
  border-radius:50%;
  margin:auto;
  display:grid;
  place-items:center;
  background:#edf0e8;
  position:relative;
  transform:rotate(-90deg)
}
.donut-center {
  background:#fff;
  border-radius:50%;
  width:72%;
  height:72%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  transform:rotate(90deg);
  text-align:center;
  padding:10px;
  box-shadow:0 0 0 5px white
}
.donut-center>span {
  font-size:14px;
  color:var(--muted)
}
.donut-center strong {
  font-family:Manrope,system-ui,sans-serif;
  font-size:31px;
  font-weight:650;
  letter-spacing:-1.5px;
  line-height:1.7
}
.donut-center small {
  color:var(--muted);
  font-size:14px
}
.chart-hint {
  display:block;
  margin-top:21px;
  font-size:14px;
  color:#84907e
}
.categories {
  display:grid;
  gap:6px
}
.category {
  padding:6px 4px;
  text-align:left;
  width:100%;
  border-radius:7px
}
.category:hover {
  background:#f4f6f0
}
.category-line {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:14px
}
.category-dot {
  width:7px;
  height:7px;
  border-radius:50%;
  flex-shrink:0
}
.category-label {
  flex:1
}
.category-amount {
  font-weight:600;
  font-variant-numeric:tabular-nums;
  white-space:nowrap
}
.category-bar {
  height:3px;
  background:#f0f2ec;
  margin:6px 0 0 14px;
  border-radius:4px;
  overflow:hidden
}
.category-bar i {
  display:block;
  height:100%;
  border-radius:4px
}
.panel-foot {
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:9px;
  align-items:center;
  padding:14px 0;
  font-size:14px;
  color:var(--muted)
}
.panel-foot button {
  font-size:14px
}
.insight-panel {
  border-radius:var(--radius);
  background:#e8eedf;
  padding:24px;
  display:flex;
  flex-direction:column
}
.insight-top {
  display:flex;
  justify-content:space-between;
  align-items:center
}
.insight-top .eyebrow {
  font-size:14px;
  letter-spacing:1.4px
}
.insight-icon {
  font-size:24px;
  color:#688463
}
.insight-panel h2 {
  font-size:25px;
  font-weight:500;
  letter-spacing:-.8px;
  line-height:1.3;
  margin:15px 0 12px
}
.insight-panel h2 em {
  font-style:normal;
  color:#65815b
}
.insight-panel p {
  font-size:14px;
  color:#63735d;
  margin:0
}
.hundred-amount {
  display:flex;
  flex-direction:column;
  margin:17px 0 13px
}
.hundred-amount strong {
  font-size:31px;
  font-family:Manrope,system-ui,sans-serif;
  font-weight:650;
  letter-spacing:-1.3px
}
.hundred-amount span {
  font-size:14px;
  color:#63735d
}
.coin-grid {
  display:grid;
  grid-template-columns:repeat(10,1fr);
  gap:4px;
  max-width:200px
}
.coin-grid i {
  aspect-ratio:1;
  border-radius:2px;
  background:#d3dcc8
}
.coin-grid i.filled {
  background:#6b8a66
}
.insight-panel>small {
  font-size:14px;
  color:#65735d;
  margin:10px 0 18px;
  max-width:190px
}
.insight-panel>button {
  padding:12px 14px;
  background:#fff;
  border:1px solid #d7e0ce;
  border-radius:8px;
  font-size:14px;
  font-weight:600;
  display:flex;
  justify-content:space-between;
  margin-top:auto
}
.insight-panel .insight-note {
  font-size:14px;
  margin-top:9px
}
.bottom-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:20px;
  margin-top:20px
}
.small-panel {
  padding:22px
}
.mini-trend {
  display:flex;
  align-items:end;
  gap:14px;
  height:115px;
  padding-top:15px;
  margin-bottom:13px
}
.mini-col {
  display:flex;
  flex-direction:column;
  justify-content:end;
  align-items:center;
  flex:1;
  height:100%;
  font-size:14px;
  color:var(--muted);
  gap:4px
}
.mini-col i {
  display:block;
  background:#bed0b4;
  border-radius:4px 4px 0 0;
  width:100%;
  max-width:55px;
  min-height:2px
}
.mini-col:last-child i {
  background:#71926b
}
.mini-col b {
  font-size:14px;
  font-weight:500;
  white-space:nowrap
}
.source-card p {
  font-size:14px;
  color:var(--muted);
  max-width:390px;
  line-height:1.8;
  margin:16px 0
}
.source-card a {
  font-size:14px;
  font-weight:600;
  color:var(--green)
}
.source-card small {
  display:block;
  color:var(--muted);
  font-size:14px;
  margin-top:12px
}
.main-footer {
  padding:27px 0 21px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:14px;
  color:var(--muted)
}
.main-footer b {
  padding:0 7px;
  font-weight:400
}
.main-footer button {
  font-size:14px
}
.full-panel {
  padding:27px;
  margin-bottom:20px
}
.full-panel h2 {
  margin-bottom:15px
}
.muted {
  color:var(--muted);
  font-size:14px
}
.trend-chart {
  display:flex;
  gap:20px;
  align-items:end;
  height:280px;
  margin:40px 0 25px;
  border-bottom:1px solid var(--line)
}
.trend-chart .mini-col {
  gap:9px
}
.trend-chart .mini-col i {
  max-width:90px
}
.trend-chart .mini-col b {
  font-size:14px
}
.trend-chart .mini-col.negative i {
  background:#c98161
}
.table-scroll {
  overflow:auto
}
table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:14px
}
th,td {
  padding:13px 10px;
  border-bottom:1px solid var(--line);
  white-space:nowrap
}
th {
  font-weight:600;
  background:#f7f9f3
}
td:not(:first-child),th:not(:first-child) {
  text-align:right
}
.compare-search {
  max-width:440px;
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 15px;
  margin:25px 0
}
.empty-text {
  padding:40px 5px;
  color:var(--muted);
  font-size:14px
}
.learn-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.learn-grid p {
  font-size:14px;
  color:var(--muted);
  line-height:1.8
}
.glossary details {
  border-top:1px solid var(--line);
  padding:15px 0
}
.glossary summary {
  cursor:pointer;
  font-weight:600
}
.glossary p {
  font-size:14px;
  color:var(--muted);
  max-width:750px
}
/* The town and chart stay in motion only while the commune request is pending. */
.city-loading {
  display:grid; grid-template-columns:180px minmax(0,1fr); align-items:center; gap:38px;
  padding:36px 42px; margin:0 0 28px; min-height:290px; overflow:hidden;
  background:radial-gradient(circle at 8% 20%,#d5e9df 0,transparent 42%),linear-gradient(120deg,#edf6ef,#f9f7ed);
  border:1px solid #bdd8ca; border-radius:24px; box-shadow:0 12px 35px #285d4d08; scroll-margin-top:24px;
}
.city-loading-art { position:relative; width:180px; height:190px; }
.city-loading-orbit { position:absolute; inset:5px 0; border:1px dashed #9ec5b1; border-radius:50%; }
.city-loading-orbit::after { content:''; position:absolute; top:12px; left:23px; width:12px; height:12px; border-radius:50%; background:#d99a55; box-shadow:0 0 0 6px #d99a551c; }
.city-loading-town { position:absolute; width:146px; height:128px; left:16px; top:28px; }
.city-loading-chart { position:absolute; right:-8px; bottom:6px; display:flex; align-items:flex-end; gap:5px; height:58px; padding:12px; background:#fffdf7; border:1px solid #d5dfcf; border-radius:13px; box-shadow:0 6px 15px #264d4012; }
.city-loading-chart i { width:9px; height:19px; border-radius:3px; background:#3d927b; transform-origin:bottom; }
.city-loading-chart i:nth-child(2) { height:29px; background:#74a5cf; }
.city-loading-chart i:nth-child(3) { height:23px; background:#d99a55; }
.city-loading-chart i:nth-child(4) { height:34px; background:#ad8bc7; }
.city-loading-spark { position:absolute; top:2px; right:6px; color:#ba8245; font-size:30px; }
.city-loading-copy { min-width:0; }
.city-loading-copy .eyebrow { color:#426c59; font-size:13px; letter-spacing:1.6px; }
.city-loading h2 { font-size:clamp(25px,2.5vw,35px); line-height:1.25; letter-spacing:-.8px; margin:12px 0; overflow-wrap:anywhere; }
.city-loading h2 span { color:#27735f; }
.city-loading p { color:#48645d; font-size:17px; line-height:1.65; margin:0 0 20px; max-width:640px; }
.city-loading small { color:#4e695f; font-size:14px; display:block; margin-top:13px; }
.city-loading-track { height:6px; max-width:480px; border-radius:20px; overflow:hidden; background:#d5e5da; }
.city-loading-track span { display:block; height:100%; width:38%; border-radius:inherit; background:linear-gradient(90deg,#3d927b,#77ac99); }
@keyframes city-loading-orbit { to { transform:rotate(360deg); } }
@keyframes city-loading-bars { 0%,100% { transform:scaleY(.5); } 50% { transform:scaleY(1); } }
@keyframes city-loading-scan { 0% { transform:translateX(-110%); } 100% { transform:translateX(370%); } }
@media(prefers-reduced-motion:no-preference) {
  .city-loading:not([hidden]) { animation:reveal-up .25s ease-out; }
  .city-loading-orbit { animation:city-loading-orbit 9s linear infinite; }
  .city-loading-chart i { animation:city-loading-bars 1.3s ease-in-out infinite; }
  .city-loading-chart i:nth-child(2) { animation-delay:.15s; }
  .city-loading-chart i:nth-child(3) { animation-delay:.3s; }
  .city-loading-chart i:nth-child(4) { animation-delay:.45s; }
  .city-loading-track span { animation:city-loading-scan 1.7s ease-in-out infinite; }
}
@media(max-width:900px) { .city-loading { scroll-margin-top:220px; } }
@media(max-width:650px) {
  .city-loading { grid-template-columns:1fr; gap:12px; padding:24px 22px; }
  .city-loading-art { width:80px; height:80px; }
  .city-loading-town { width:65px; height:60px; left:8px; top:8px; }
  .city-loading-chart,.city-loading-spark { display:none; }
  .city-loading h2 { font-size:26px; }
}
@media print { .city-loading { display:none!important; } }

/* Economy: statistical periods remain visible alongside the budget context. */
.eco-hero{display:grid;grid-template-columns:1fr 210px;gap:36px;padding:38px;border:1px solid #c9dcd7;border-radius:24px;background:linear-gradient(120deg,#e4f1e8,#e8eff9);overflow:hidden;margin-bottom:24px}
.eco-hero h2{font-size:clamp(28px,3vw,40px);line-height:1.2;margin:15px 0}.eco-hero p{max-width:740px;font-size:19px;line-height:1.6}.eco-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.eco-tags span{background:#ffffff9e;border:1px solid #d2dfd7;border-radius:20px;padding:7px 12px;font-size:14px}
.eco-skyline{display:flex;align-items:end;gap:10px;position:relative;min-height:180px;padding-top:36px;border-bottom:3px solid #6c9d89}.eco-skyline i{flex:1;height:45%;min-height:65px;background:#75ac95;border-radius:9px 9px 0 0;background-image:repeating-linear-gradient(0deg,transparent 0 20px,#ffffff60 21px 26px,transparent 27px 40px)}.eco-skyline i:nth-child(2){height:85%;background-color:#6d9dcc}.eco-skyline i:nth-child(3){height:65%;background-color:#af91c1}.eco-skyline i:nth-child(4){height:100%;background-color:#c6a061}.eco-skyline b{position:absolute;right:10px;top:-8px;font-size:55px;color:#bb9351;font-weight:400}
.eco-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.eco-toolbar>p{max-width:800px;line-height:1.6}.eco-toolbar>div{display:flex;flex-wrap:wrap;gap:10px}.eco-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.eco-metric{padding:27px;border:1px solid #cce1d4;border-radius:20px;background:#e8f3eb;min-width:0;height:100%}.eco-metric:nth-child(2){background:#eaf1fa;border-color:#d5e0f0}.eco-metric:nth-child(3){background:#faf0df;border-color:#e9dcc0}.eco-icon{display:block;font-size:30px;color:#3f8c76;margin-bottom:12px}.eco-metric>.eyebrow{display:block;line-height:1.5}.eco-metric>strong{display:block;font-size:clamp(28px,3vw,39px);margin:12px 0;line-height:1.25}.eco-year{font-size:15px;font-weight:700}.eco-metric p{font-size:17px;line-height:1.6;margin-top:14px}.eco-citation{border-top:1px solid #9db5ac55;padding-top:12px;margin-top:16px;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.eco-citation>a{font-weight:650}.eco-citation>span{display:block;color:#526b65;font-size:13px;margin-top:5px}.eco-error{padding:12px;background:#fff1e9;border:1px solid #ebc5ae;border-radius:9px;color:#8b4b31}
.eco-reading{padding:24px 28px;border-left:4px solid #589d85;border-radius:0 16px 16px 0;background:#f0f4e7;margin:26px 0;font-size:18px;line-height:1.7}.eco-reading>.eco-citation{border:0;margin-top:5px;padding-top:0}.eco-chart-panel,.eco-sectors{margin:26px 0;padding:30px}.eco-chart-panel h3,.eco-sectors h3,.eco-questions-section>h3{font-size:25px;margin:10px 0}.eco-chart-panel .section-heading{align-items:start}.eco-chart-panel label{display:grid;gap:6px;font-size:15px;min-width:240px}.eco-chart-panel select{width:100%;font:inherit;padding:12px;border:1px solid #b9cdc2;border-radius:10px;background:white;color:inherit}.eco-chart-panel>p{font-size:17px;line-height:1.6}.eco-legend{display:flex;flex-wrap:wrap;gap:20px;margin:24px 0 10px}.eco-legend>span{display:flex;align-items:center;gap:8px;font-size:16px}.eco-legend i{width:12px;height:12px;border-radius:50%}.eco-chart-scroll{overflow:auto}.eco-chart-scroll svg{width:100%;min-width:620px;display:block}.eco-chart-scroll text{fill:#506460;font:14px sans-serif}.eco-gridline{stroke:#dfe7e0;stroke-width:1}.eco-line{fill:none!important;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.eco-series-0{stroke:#388d77;fill:#388d77;background:#388d77}.eco-series-1{stroke:#6497cc;fill:#6497cc;background:#6497cc}.eco-data-table{margin-top:22px}.eco-data-table summary{font-weight:650;cursor:pointer}.eco-data-table .table-scroll{overflow:auto;margin-top:14px}.eco-data-table table{width:100%;border-collapse:collapse;font-size:16px;text-align:left}.eco-data-table td,.eco-data-table th{border-bottom:1px solid #dfe5dc;padding:12px}
.eco-sector{margin:20px 0}.eco-sector>div:first-child{display:flex;justify-content:space-between;gap:24px;align-items:start;font-size:17px;margin-bottom:8px}.eco-sector-track{height:9px;background:#f0f2eb;border-radius:10px;overflow:hidden}.eco-sector-track i{display:block;height:100%;border-radius:inherit;background:var(--sector-color)}.eco-local-life{display:grid;grid-template-columns:1fr 1.3fr;gap:24px;margin:28px 0}.eco-local-life .eco-metric{background:#eaf0fa;border-color:#ccdbed}.eco-association-card{padding:30px;border:1px solid #d8c7e5;border-radius:20px;background:#f4edf9;height:100%}.eco-association-card h3{font-size:25px;line-height:1.4;margin:12px 0}.eco-association-count{display:block;font-size:38px;margin:20px 0;color:#77518e}.eco-association-card p{font-size:17px;line-height:1.65}.eco-association-limit{padding:18px;border:1px solid #dacbe5;background:#fffcff;border-radius:13px;margin:20px 0}.eco-association-limit strong{color:#715083}.eco-association-limit p{margin:10px 0 0}.eco-questions-section{margin-top:40px}.eco-questions-section>p{font-size:18px;line-height:1.6}.eco-questions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}.eco-question{display:flex;flex-direction:column;border:1px solid #dacfe3;border-top:4px solid #a282b8;border-radius:18px;background:#fff;padding:25px}.eco-question h3{font-size:22px;line-height:1.4;margin:16px 0}.eco-question p{font-size:16px;line-height:1.65}.eco-question details{margin:14px 0 24px}.eco-question summary{font-weight:650;cursor:pointer}.eco-question button{margin-top:auto}.eco-method{margin-top:30px;padding:26px;border:1px dashed #becdc1;border-radius:16px;background:#f6f7ef}.eco-method p{line-height:1.7;font-size:16px}.eco-method h3{font-size:22px}
@media(prefers-reduced-motion:no-preference){.eco-skyline i{animation:eco-grow .75s ease-out both;transform-origin:bottom}.eco-skyline i:nth-child(2){animation-delay:.1s}.eco-skyline i:nth-child(3){animation-delay:.2s}.eco-skyline i:nth-child(4){animation-delay:.3s}.eco-sector-track i{animation:eco-grow .7s ease-out both;transform-origin:left}.eco-dot{animation:reveal-up .5s ease-out}@keyframes eco-grow{from{transform:scale(.75);opacity:.3}to{transform:scale(1);opacity:1}}}
@media(max-width:1200px){.eco-metrics{grid-template-columns:1fr}.eco-metric>strong{font-size:36px}.eco-local-life{grid-template-columns:1fr}.eco-questions{grid-template-columns:1fr}.eco-hero{grid-template-columns:1fr 150px}.eco-toolbar{align-items:start;flex-direction:column}}
@media(max-width:650px){.eco-hero{grid-template-columns:1fr;padding:25px}.eco-skyline{display:none}.eco-chart-panel,.eco-sectors,.eco-association-card,.eco-metric{padding:22px}.eco-chart-panel .section-heading{display:block}.eco-chart-panel label{margin-top:20px;min-width:0}.eco-sector>div:first-child{font-size:16px}.eco-tags span{font-size:12px}.eco-metric .eco-citation{font-size:14px}.eco-toolbar>div{width:100%}}
.loading-message,.error-message {
  padding:18px 20px;
  border-radius:12px;
  margin-bottom:20px;
  background:#e9eee4;
  color:#3c6752;
  font-size:14px
}
.error-message {
  background:#faeee6;
  color:#824627
}
.error-message button {
  margin-left:15px;
  text-decoration:underline;
  font-weight:600
}
#workspace[aria-busy=true] {
  opacity:.45;
  pointer-events:none
}
dialog {
  border:1px solid var(--line);
  border-radius:20px;
  padding:35px;
  max-width:500px;
  width:calc(100% - 30px);
  color:var(--ink);
  box-shadow:0 20px 80px #19332e20
}
dialog::backdrop {
  background:#19332e66;
  backdrop-filter:blur(3px)
}
dialog h2 {
  font-size:25px;
  line-height:1.3;
  margin:18px 0
}
#detail-value {
  display:block;
  font-family:Manrope,system-ui,sans-serif;
  font-size:36px;
  letter-spacing:-1px
}
dialog p {
  color:var(--muted);
  font-size:14px;
  line-height:1.8
}
#detail-extra {
  background:var(--pale);
  padding:15px;
  border-radius:10px;
  font-size:14px;
  margin:20px 0
}
.dialog-close {
  position:absolute;
  right:15px;
  top:10px;
  font-size:25px
}
.primary-button {
  background:var(--green);
  color:#fff;
  border-radius:8px;
  padding:11px 18px;
  font-size:14px
}
#toast {
  position:fixed;
  bottom:22px;
  left:50%;
  transform:translateX(-50%);
  background:var(--ink);
  color:white;
  padding:12px 22px;
  border-radius:10px;
  z-index:99;
  box-shadow:0 5px 20px #0002;
  font-size:14px;
  max-width:90vw
}
.skeleton {
  height:118px;
  background:linear-gradient(100deg,#e9ede4 25%,#f3f5ef 45%,#e9ede4 65%);
  background-size:300% 100%;
  animation:shimmer 1.5s infinite;
  border-radius:13px
}
@keyframes shimmer {
  to {
    background-position:-150% 0
  }
  
}
@media(min-width:1600px) {
  main {
    padding-top:45px
  }
  .intro {
    margin-bottom:40px
  }
  .allocation-body {
    min-height:365px
  }
  .donut {
    max-width:285px
  }
  .categories {
    gap:10px
  }
  
}
@media(max-width:1200px) {
  .sidebar {
    width:215px;
    padding:30px 16px 20px
  }
  .shell {
    margin-left:215px
  }
  .topbar {
    padding:0 27px
  }
  main {
    padding:27px 27px 0
  }
  .explore-grid {
    grid-template-columns:minmax(0,1fr) 220px;
    gap:15px
  }
  .allocation {
    padding:20px 17px 0
  }
  .allocation-body {
    gap:15px;
    grid-template-columns:1fr
  }
  .donut {
    max-width:210px
  }
  .categories {
    grid-template-columns:1fr 1fr;
    gap:5px 15px
  }
  .chart-hint {
    margin:12px 0
  }
  .panel-heading {
    align-items:start
  }
  .kpi {
    padding:15px
  }
  .kpi strong {
    font-size:24px
  }
  .insight-panel {
    padding:20px
  }
  .insight-panel h2 {
    font-size:25px
  }
  .coin-grid {
    margin:15px 0
  }
  .insight-panel>small {
    margin-bottom:30px
  }
  
}
@media(max-width:900px) {
  .sidebar {
    position:static;
    width:auto;
    padding:18px 22px;
    background:var(--bg);
    border-right:0;
    border-bottom:1px solid var(--line)
  }
  .brand {
    font-size:23px
  }
  .side-caption,.side-note,.side-footer {
    display:none
  }
  .sidebar nav {
    display:flex;
    gap:6px;
    margin-top:15px;
    overflow:auto
  }
  .nav-item {
    white-space:nowrap;
    font-size:14px;
    padding:9px 12px
  }
  .nav-item>span {
    font-size:16px;
    width:15px
  }
  .shell {
    margin:0
  }
  .topbar {
    height:55px;
    padding:0 24px
  }
  .intro-art {
    width:205px;
    margin-right:0
  }
  .intro-art .building {
    left:35px
  }
  .art-caption {
    left:10px
  }
  main {
    padding:26px 24px 0
  }
  .kpi-grid {
    grid-template-columns:repeat(4,1fr)
  }
  .kpi strong {
    font-size:22px
  }
  .commune-meta {
    min-width:180px;
    padding-left:15px
  }
  .allocation-body {
    grid-template-columns:1fr
  }
  .panel-foot {
    flex-wrap:wrap
  }
  .learn-grid {
    grid-template-columns:1fr;
    gap:0
  }
  
}
@media(max-width:620px) {
  .sidebar {
    padding:15px 17px 10px
  }
  .nav-item {
    font-size:14px;
    gap:6px;
    padding:8px
  }
  .nav-item>span {
    display:none
  }
  .topbar {
    padding:0 18px
  }
  .breadcrumb {
    font-size:14px
  }
  .outline-button {
    font-size:14px;
    padding:7px 10px
  }
  .outline-button span {
    display:none
  }
  main {
    padding:25px 17px 0
  }
  .intro {
    margin-bottom:23px
  }
  .intro-art {
    width:105px;
    height:115px;
    margin:0 0 15px 4px;
    transform:scale(.85);
    transform-origin:right center
  }
  .intro-art .building {
    left:0;
    width:100px;
    height:65px
  }
  .building i {
    width:110px;
    left:-6px
  }
  .building footer {
    width:115px
  }
  .building b {
    font-size:27px
  }
  .art-sun {
    font-size:35px;
    right:0;
    top:-16px
  }
  .art-caption {
    display:none
  }
  h1 {
    font-size:33px;
    letter-spacing:-1.5px
  }
  .intro .eyebrow {
    font-size:14px;
    letter-spacing:1px
  }
  .intro p {
    font-size:14px;
    max-width:230px
  }
  .commune-bar {
    flex-wrap:wrap;
    gap:13px;
    padding:12px 14px;
    margin-bottom:24px
  }
  .commune-bar>.search-wrap {
    flex-basis:100%;
    border-bottom:1px solid var(--line);
    padding-bottom:7px
  }
  .commune-meta {
    border:0;
    padding-left:0;
    flex:1
  }
  .year-label {
    padding-left:15px
  }
  .kpi-grid {
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:16px
  }
  .kpi strong {
    font-size:26px;
    margin:8px 0 5px
  }
  .section-heading h2 {
    font-size:16px
  }
  .section-heading>span:not(.source-pill) {
    max-width:130px;
    text-align:right;
    font-size:14px
  }
  .source-pill {
    font-size:14px!important;
    padding:4px 7px
  }
  .explore-grid,.bottom-grid {
    grid-template-columns:1fr;
    gap:16px
  }
  .allocation {
    padding:20px 16px 0
  }
  .panel h2 {
    font-size:16px
  }
  .panel-heading {
    gap:9px
  }
  .segmented button {
    padding:6px;
    font-size:14px
  }
  .allocation-body {
    grid-template-columns:1fr;
    gap:20px
  }
  .donut {
    max-width:235px;
    margin-top:9px
  }
  .categories {
    grid-template-columns:1fr
  }
  .category-line {
    font-size:14px
  }
  .category {
    padding:8px 4px
  }
  .category-bar {
    margin-top:7px;
    height:4px
  }
  .insight-panel {
    padding:24px;
    position:relative
  }
  .insight-panel h2 {
    font-size:28px
  }
  .insight-panel>p {
    max-width:230px
  }
  .coin-grid {
    width:190px
  }
  .insight-panel>button {
    margin-top:0
  }
  .insight-panel>small {
    margin:0 0 20px
  }
  .bottom-grid {
    margin-top:16px
  }
  .main-footer {
    font-size:14px
  }
  .main-footer button {
    font-size:14px
  }
  .full-panel {
    padding:20px
  }
  .trend-chart {
    gap:8px;
    height:210px
  }
  .trend-chart .mini-col b {
    font-size:14px
  }
  .trend-chart .mini-col {
    font-size:14px
  }
  .panel-heading label {
    font-size:14px
  }
  .panel-heading select {
    font-size:14px;
    max-width:150px
  }
  .search-results {
    min-width:0
  }
  .mini-trend {
    gap:8px
  }
  .intro-art {
    flex-shrink:0
  }
  .glossary summary {
    font-size:14px
  }
  
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation:none!important;
    scroll-behavior:auto!important
  }
  
}
@media print {
  .sidebar,.topbar,.commune-bar,.main-footer,.segmented,.insight-panel button,.panel-foot button,.search-results {
    display:none!important
  }
  .shell {
    margin:0
  }
  main {
    padding:0
  }
  .panel,.kpi,.insight-panel {
    break-inside:avoid
  }
  .explore-grid {
    grid-template-columns:2fr 1fr
  }
  body {
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact
  }
  .tab-panel[hidden] {
    display:none!important
  }
  
}

/* The track is a span: block layout is required for its explicit height. */
.category-bar {
  display:block
}


#workspace[aria-busy=true] .explore-grid,#workspace[aria-busy=true] .bottom-grid,#workspace[aria-busy=true] #evolution,#workspace[aria-busy=true] #comparer {
  display:none
}

@media(max-width:350px) {
  .intro-art {
    display:none
  }
  .commune-meta {
    min-width:0
  }
  .explore-grid {
    grid-template-columns:minmax(0,1fr)
  }
  .panel-heading {
    flex-wrap:wrap
  }
  .mini-trend {
    gap:4px
  }
  .mini-col b {
    font-size:14px
  }
  
}


/* Citizen investigation workspace */
.sidebar { overflow-y:auto; padding-top:28px; }
.side-caption { margin-bottom:24px; }
.sidebar nav { gap:4px; }
.nav-item { font-size:14px; padding:10px 9px; gap:8px; }
.nav-count { margin-left:auto; font-size:14px; background:#fff9; border-radius:5px; padding:1px 6px; }
.side-note { margin-top:28px; padding:16px; }
.side-note h3 { font-size:14px; }
.side-footer { margin-top:auto; padding-top:24px; }
.civic-intro { padding-top:34px; padding-bottom:30px; gap:20px; }
.civic-intro h1 { font-size:clamp(29px,3.2vw,49px); line-height:1.18; letter-spacing:-1.8px; margin:16px 0; }
.civic-intro p { max-width:590px; font-size:14px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:22px; align-items:center; margin-top:24px; }
.primary-button { display:inline-flex; align-items:center; justify-content:center; gap:14px; line-height:1.5; }
.civic-mark { flex:0 0 180px; padding:10px 12px 20px; }
.paper-mark { transform:rotate(7deg); position:relative; background:#fffef8; border:1px solid #ccd5c8; border-radius:3px; width:140px; height:167px; padding:18px; box-shadow:8px 8px 0 #e2e8d9; }
.paper-mark>span { font-size:14px; letter-spacing:1.2px; }
.paper-mark i { display:block; width:70%; height:1px; background:#c4cec0; margin-top:15px; }
.paper-mark b { position:absolute; font-size:43px; font-weight:500; right:16px; top:38px; color:#56775a; background:#fffef8; }
.mark-stamp { position:absolute; bottom:10px; right:-25px; transform:rotate(-16deg); width:82px; height:82px; border:1.5px solid #b56b41; border-radius:50%; color:#a45e37; display:grid; place-content:center; text-align:center; font-size:14px; font-weight:700; letter-spacing:1px; background:#faf3e7ed; }
.territory-strip { display:flex; flex-wrap:wrap; gap:12px 25px; align-items:center; border-top:1px solid var(--line); padding:14px 0 20px; font-size:14px; }
.territory-active { font-weight:650; color:var(--green); }
.territory-strip button { text-align:left; padding:0; color:var(--muted); font-size:14px; }
.territory-strip button span { color:var(--green); margin-left:12px; text-decoration:underline; text-underline-offset:3px; }
.coverage-notice { display:flex; align-items:center; flex-wrap:wrap; gap:10px 15px; margin:3px 0 25px; padding:14px 16px; border:1px solid #dce2d6; background:#eff2e9; border-radius:9px; }
.coverage-notice p { flex:1; min-width:180px; margin:0; font-size:14px; color:#536354; }
.badge { display:inline-block; width:fit-content; padding:4px 9px; border-radius:5px; background:#e6eee3; color:#3b5e41; font-size:14px; line-height:1.5; font-weight:600; white-space:normal; }
.badge.amber { color:#80542c; background:#f5e9d6; }
.section-heading>div h2 { margin:5px 0 0; }
.section-heading { flex-wrap:wrap; gap:12px; }
.section-description { color:var(--muted); line-height:1.85; max-width:820px; margin:0 0 25px; font-size:14px; }
.action-banner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; background:#e7eddf; padding:24px 26px; border:1px solid #d5dfcd; border-radius:var(--radius); margin-top:20px; }
.action-banner h2 { font-size:21px; margin:5px 0; }
.action-banner p { font-size:14px; color:var(--muted); margin:4px 0; }
.ledger-tools,.dossier-toolbar { display:flex; flex-wrap:wrap; gap:15px; align-items:end; justify-content:space-between; margin-bottom:18px; }
.ledger-tools label,.dossier-toolbar label { display:flex; flex-direction:column; gap:7px; font-size:14px; font-weight:600; }
.ledger-tools label:first-child { flex:1; min-width:190px; max-width:480px; }
.ledger-tools input,.ledger-tools select,.dossier-toolbar select,.field-label input,.field-label select,.field-label textarea { border:1px solid #ced8c8; background:#fff; border-radius:8px; padding:11px 12px; font:inherit; font-size:14px; color:var(--ink); width:100%; min-width:0; }
.ledger-tools input { background:#f8faf5; }
.ledger-table th,.ledger-table td { padding:17px 12px; }
.ledger-table th:first-child { min-width:230px; background:transparent; }
.ledger-table th small { display:block; font-weight:400; color:var(--muted); font-size:14px; margin:4px 0; }
.ledger-table thead th:first-child { background:#f7f9f3; }
.ledger-name { padding:0; text-align:left; font-size:14px; font-weight:650; }
.ledger-name:hover { text-decoration:underline; }
.origin-label { font-size:14px; color:#71736b; font-weight:400; }
.money-cell { font-variant-numeric:tabular-nums; font-weight:600; }
.row-action { border:1px solid #cdd8c5; border-radius:7px; background:#f5f8ef; color:#3e6348; font-size:14px; padding:9px 12px; line-height:1.5; }
.row-action:hover { background:#e5eddb; }
.inline-link { font-size:14px; text-decoration:underline; text-underline-offset:3px; color:var(--green); }
.document-note { display:flex; gap:15px; padding:2px 12px; color:var(--muted); max-width:850px; font-size:14px; }
.document-note>span { font-size:27px; color:var(--orange); }
.document-note p { margin:0; line-height:1.85; }
.document-note a { text-decoration:underline; }
.method-disclosure { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:15px 0; margin-bottom:25px; font-size:14px; }
.method-disclosure summary,.signal-card summary,.request-details summary { cursor:pointer; font-weight:600; }
.method-disclosure p { max-width:850px; color:var(--muted); }
.signal-list { display:grid; gap:18px; }
.signal-card { display:flex; gap:24px; padding:26px; }
.signal-number { font-family:Manrope,system-ui,sans-serif; font-size:30px; color:#8c9c86; font-weight:400; line-height:1; padding-top:4px; }
.signal-content { min-width:0; flex:1; }
.signal-card h3 { font-size:20px; margin:10px 0; line-height:1.4; }
.signal-card p { font-size:14px; line-height:1.8; }
.signal-limit { background:#f7f7f1; border-left:2px solid #c2cbb6; padding:12px 15px; margin:18px 0; font-size:14px; }
.signal-limit p { color:var(--muted); margin:4px 0 0; }
.signal-card details { font-size:14px; color:var(--muted); }
.signal-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:15px; padding-top:20px; }
.local-note { background:#edf1e6; color:#53654a; padding:13px 17px; font-size:14px; border-radius:8px; margin-bottom:22px; }
.storage-warning { background:#f8e9d9; color:#804b27; }
.dossier-card { margin-bottom:20px; overflow:hidden; }
.dossier-card>summary { padding:21px 24px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; gap:15px; }
.dossier-card>summary::after { content:'−'; font-size:22px; }
.dossier-card:not([open])>summary::after { content:'+'; }
.dossier-card>summary>span:first-child { flex:1; }
.dossier-card summary small { font-size:14px; color:var(--muted); display:block; font-weight:400; }
.dossier-card summary strong { font-size:17px; display:block; margin-top:5px; }
.dossier-body { padding:0 24px 24px; }
.saved-fact { padding:18px; border-radius:9px; background:#f5f7ef; margin-bottom:22px; }
.saved-fact p { margin:8px 0; font-size:14px; }
.saved-fact small { display:block; color:var(--muted); font-size:14px; margin-top:8px; }
.field-label { display:flex; flex-direction:column; gap:8px; font-size:14px; font-weight:600; margin:18px 0; }
.field-label textarea { font-weight:400; line-height:1.7; resize:vertical; min-height:80px; }
.request-details { border:1px solid var(--line); border-radius:9px; padding:15px; margin:18px 0; font-size:14px; }
.followup-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.followup-grid .field-label { margin-bottom:0; }
.dossier-actions { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; align-items:center; margin-top:20px; }
.save-feedback { min-height:20px; }
.empty-state { padding:45px 25px; text-align:center; }
.empty-state h3 { font-size:21px; margin:12px 0; }
.empty-state p { font-size:14px; color:var(--muted); max-width:500px; margin:15px auto 25px; }
.empty-icon { font-size:42px; color:#8b9c80; }
.evidence-chain { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:26px 0; }
.evidence-chain article { border:1px solid var(--line); border-radius:14px; padding:23px; background:#fff; }
.evidence-chain article>span { font-size:28px; color:#819777; }
.evidence-chain h3 { font-size:19px; margin:14px 0 10px; }
.evidence-chain p { font-size:14px; color:var(--muted); line-height:1.8; }
.evidence-chain small,.evidence-chain a { font-size:14px; color:var(--green); }
.evidence-chain a { text-decoration:underline; }
.integrity-action { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; }
.integrity-action>div { flex:1; min-width:220px; }
.integrity-action p { color:var(--muted); font-size:14px; max-width:650px; }
.coverage-table th,.coverage-table td { white-space:normal; text-align:left!important; min-width:150px; vertical-align:top; }
.coverage-table th:first-child { min-width:220px; }
.coverage-table caption { text-align:left; margin-bottom:18px; font-weight:600; }
#detail-question { margin-bottom:12px; width:100%; }
.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; }
.tab-panel { scroll-margin-top:15px; }
#workspace[aria-busy=true] #registre,#workspace[aria-busy=true] #vigilance { visibility:hidden; }
@media(min-width:1550px) { .civic-intro h1 { font-size:49px; } }
@media(max-width:1100px) {
  .civic-mark { display:none; }
  .evidence-chain { grid-template-columns:1fr; }
  .evidence-chain article { display:block; }
}
@media(max-width:760px) {
  .sidebar { padding:16px 18px; overflow:visible; }
  .sidebar nav { display:flex; overflow-x:auto; flex-wrap:nowrap; width:100%; gap:5px; padding-bottom:5px; }
  .nav-item { white-space:nowrap; flex:0 0 auto; font-size:14px; }
  .nav-item>span { font-size:17px; width:auto; }
  .nav-count { font-size:14px; }
  .civic-intro { padding-top:24px; padding-bottom:24px; }
  .civic-intro h1 { font-size:34px; letter-spacing:-1px; }
  .civic-intro p { font-size:14px; }
  .civic-intro p br { display:none; }
  .hero-actions { gap:15px; margin-top:20px; }
  .territory-strip { gap:8px; }
  .territory-strip button { line-height:1.8; }
  .territory-strip button span { margin-left:0; display:block; }
  .action-banner { padding:20px; }
  .signal-card { padding:20px; gap:12px; }
  .signal-number { font-size:21px; }
  .signal-card h3 { font-size:18px; }
  .section-description { font-size:14px; }
  .dossier-card>summary { padding:18px; flex-wrap:wrap; }
  .dossier-card>summary>span:first-child { flex-basis:100%; }
  .dossier-body { padding:0 18px 18px; }
  .followup-grid { grid-template-columns:1fr; gap:0; }
  .evidence-chain { gap:12px; }
  .document-note { padding:0; }
  .coverage-notice { align-items:start; }
  .coverage-notice p { flex-basis:100%; }
}
@media(max-width:400px) {
  .civic-intro h1 { font-size:28px; }
  .signal-number { display:none; }
  .ledger-tools label:first-child { min-width:0; flex-basis:100%; }
  .hero-actions .primary-button { width:100%; }
}
@media print {
  .hero-actions,.territory-strip,.dossier-toolbar,.dossier-actions,.local-note,#dossier-export,.dossier-body button { display:none!important; }
  .dossier-card { break-inside:auto; }
  .dossier-card textarea { min-height:120px; }
}

/* Motion: short feedback, progressive reading, and a full reduced-motion fallback. */
:root { --ease-out:cubic-bezier(.2,.75,.25,1); }
@keyframes reveal-up {
  from { opacity:0; transform:translateY(16px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes chart-arrive {
  from { opacity:.2; transform:scale(.88) rotate(-90deg); }
  to { opacity:1; transform:scale(1) rotate(-90deg); }
}
@keyframes bar-grow {
  from { transform:scaleY(.06); opacity:.2; }
  to { transform:scaleY(1); opacity:1; }
}
@keyframes line-grow {
  from { transform:scaleX(0); }
  to { transform:scaleX(1); }
}
@keyframes paper-float {
  0%,100% { transform:translateY(0) rotate(7deg); }
  50% { transform:translateY(-7px) rotate(4deg); }
}
@keyframes stamp-arrive {
  from { opacity:0; transform:rotate(-28deg) scale(1.3); }
  to { opacity:1; transform:rotate(-16deg) scale(1); }
}
@keyframes ripple-expand {
  from { transform:translate(-50%,-50%) scale(0); opacity:.25; }
  to { transform:translate(-50%,-50%) scale(1); opacity:0; }
}
@keyframes toast-arrive {
  from { opacity:0; translate:0 12px; }
  to { opacity:1; translate:0 0; }
}
@keyframes question-added {
  0% { box-shadow:0 0 0 0 #75966466; }
  100% { box-shadow:0 0 0 12px #75966400; }
}
@media(prefers-reduced-motion:no-preference) {
  .civic-intro .eyebrow { animation:reveal-up .5s var(--ease-out) both; }
  .civic-intro h1 { animation:reveal-up .65s .08s var(--ease-out) both; }
  .civic-intro p { animation:reveal-up .65s .15s var(--ease-out) both; }
  .hero-actions { animation:reveal-up .65s .23s var(--ease-out) both; }
  .paper-mark { animation:paper-float 5s ease-in-out 2; }
  .mark-stamp { animation:stamp-arrive .6s .35s var(--ease-out) both; }
  .tab-panel:not([hidden]) { animation:reveal-up .38s var(--ease-out); }
  .kpi,.signal-card,.evidence-chain article { animation:reveal-up .55s var(--ease-out) backwards; animation-delay:calc(var(--motion-index, 0) * 65ms); }
  .kpi:nth-child(2),.signal-card:nth-child(2),.evidence-chain article:nth-child(2) { --motion-index:1; }
  .kpi:nth-child(3),.signal-card:nth-child(3),.evidence-chain article:nth-child(3) { --motion-index:2; }
  .kpi:nth-child(4),.signal-card:nth-child(4) { --motion-index:3; }
  .signal-card:nth-child(n+5) { --motion-index:4; }
  .donut { animation:chart-arrive .85s var(--ease-out) both; }
  .category-bar i { transform-origin:left; animation:line-grow .8s var(--ease-out) both; }
  .mini-col i { transform-origin:bottom; animation:bar-grow .85s var(--ease-out) both; animation-delay:calc(var(--motion-index, 0) * 45ms); }
  .coin-grid i { animation:reveal-up .35s var(--ease-out) both; animation-delay:calc(var(--coin-index, 0) * 5ms); }
  .ledger-table tbody tr { animation:reveal-up .35s var(--ease-out) both; animation-delay:calc(var(--motion-index, 0) * 35ms); }
  .scroll-reveal.is-revealed { animation:reveal-up .65s var(--ease-out) both; }
  .dossier-card.just-added { animation:question-added .8s ease-out; }
  dialog[open] { animation:reveal-up .25s var(--ease-out); }
  dialog[open]::backdrop { animation:toast-arrive .2s ease-out; }
  #toast:not([hidden]) { animation:toast-arrive .25s var(--ease-out); }
  .nav-item,.primary-button,.row-action,.outline-button,.category,.kpi,.signal-card,.evidence-chain article,.dossier-card,.segmented button,.brand-icon { transition:transform .22s var(--ease-out), background .2s, border-color .2s, box-shadow .22s, color .2s; }
  .nav-count { transition:background .2s, transform .2s; }
  .nav-item.active .nav-count { animation:reveal-up .3s var(--ease-out); }
  .primary-button:active,.row-action:active,.outline-button:active { transform:scale(.97); }
  .category:active { transform:scale(.985); }
  .field-label input,.field-label textarea,.ledger-tools input { transition:border-color .2s, box-shadow .2s; }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .nav-item:hover { transform:translateX(3px); }
  .primary-button:hover { transform:translateY(-2px); box-shadow:0 7px 18px #314e3324; }
  .primary-button>span { transition:transform .2s var(--ease-out); }
  .primary-button:hover>span { transform:translateX(4px); }
  .row-action:hover,.outline-button:hover { transform:translateY(-2px); }
  .kpi:hover,.evidence-chain article:hover { transform:translateY(-4px); box-shadow:0 9px 24px #243b2910; border-color:#bdccb3; }
  .signal-card:hover { transform:translateY(-2px); box-shadow:0 9px 24px #243b290b; }
  .category:hover { transform:translateX(3px); }
  .brand:hover .brand-icon { transform:rotate(-7deg); }
}
.field-label input:focus,.field-label textarea:focus,.ledger-tools input:focus { border-color:#79956c; box-shadow:0 0 0 3px #79956c15; }
.primary-button,.row-action,.outline-button { position:relative; overflow:hidden; isolation:isolate; }
.click-ripple { position:absolute; border-radius:50%; pointer-events:none; background:currentColor; animation:ripple-expand .55s ease-out forwards; z-index:-1; }
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .click-ripple { display:none; }
}
@media print { *,*::before,*::after { animation:none!important; transition:none!important; } }

/* Color provides landmarks; labels always carry the meaning as well. */
:root { --bg:#faf9f3; --ink:#243e40; --muted:#637274; --green:#2c7567; --pale:#e4f0e8; --orange:#d77b54; --line:#e4e7df; }
.sidebar { background:#f0f3ea; }
.brand-icon,.primary-button { background:#2c7567; }
.nav-item.active { color:#205e53; background:#d8ebe0; box-shadow:inset 3px 0 #3d8d77; }
.nav-item[data-tab=registre]>span { color:#477cb1; }
.nav-item[data-tab=vigilance]>span { color:#ae6337; }
.nav-item[data-tab=dossier]>span { color:#8264a0; }
.nav-item[data-tab=integrite]>span { color:#427e78; }
.civic-intro h1 em { color:#2d8a76; }
.civic-intro { margin-bottom:0; padding-top:22px; }
.civic-intro h1 { font-size:clamp(29px,3.2vw,46px); }
.civic-intro>div:first-child { flex:1; }
.civic-mark { flex:0 0 260px; padding:0; }
.citizen-illustration { width:100%; height:auto; overflow:visible; }
.illustration-caption { display:block; text-align:center; font-size:14px; letter-spacing:1px; color:#64756c; margin-top:3px; }
.citizen-path { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0 0 22px; }
.path-card { display:flex; gap:12px; align-items:center; padding:17px 15px; border:1px solid transparent; border-radius:13px; text-align:left; }
.path-card>span:nth-child(2) { flex:1; min-width:0; }
.path-card small { display:block; font-size:14px; letter-spacing:1px; font-weight:700; margin-bottom:6px; }
.path-card strong { display:block; font-size:14px; line-height:1.45; }
.path-card>span>span { display:block; font-size:14px; margin-top:4px; color:#596c70; }
.path-card>b { align-self:start; font-size:16px; font-weight:400; }
.path-blue { background:#e9f1fb; border-color:#d7e4f4; color:#32608e; }
.path-peach { background:#fff0df; border-color:#f1dfc6; color:#9c582d; }
.path-purple { background:#f0ebf9; border-color:#e1d7ee; color:#76528f; }
.path-icon { flex:0 0 35px; width:35px; height:35px; display:grid; place-items:center; }
.path-icon svg { width:30px; height:30px; }
.territory-strip { font-size:14px; padding-top:12px; }
.kpi { padding-top:19px; min-height:166px; border-width:1px; }
.kpi-total,.kpi-total:first-child { background:#e5f3eb; border-color:#cae3d4; }
.kpi-habitant { background:#eaf2fb; border-color:#d6e3f3; }
.kpi-dette { background:#fff0e5; border-color:#f2dece; }
.kpi-epargne { background:#f1ebf9; border-color:#e3d8ef; }
.kpi-pictogram { display:grid; place-items:center; width:27px; height:27px; border-radius:8px; margin-bottom:10px; font-size:20px; background:#fff9; color:#267460; font-weight:500; }
.kpi-habitant .kpi-pictogram { color:#427bad; }
.kpi-dette .kpi-pictogram { color:#aa6337; }
.kpi-epargne .kpi-pictogram { color:#80569e; }
.kpi-label { color:#425b5e; font-weight:600; }
.kpi strong { margin:7px 0 4px; }
.kpi small { color:#586a6c; }
.plain-reading { display:flex; align-items:start; gap:12px; margin:0 0 24px; padding:0 7px; font-size:14px; color:#546769; line-height:1.9; }
.plain-reading>span:first-child { color:#d38354; font-size:25px; line-height:1.3; }
.coverage-notice { background:#f4f3e9; border-color:#e9e5cf; }
.coverage-notice .badge { background:#e9e4cb; color:#645c37; }
.insight-panel { background:#f2e9c9; border-color:#e9dcae; }
.insight-panel h2 em { color:#87622c; }
.coin-grid i { background:#e1d8b9; }
.coin-grid i.filled { background:#a58143; }
.action-banner { background:#e0eee8; border-color:#c8dfd2; }
.section-heading>div .eyebrow { color:#547d7c; }
.signal-card { border-top:3px solid #e6b376; }
.signal-number { color:#c1854f; }
.signal-limit { background:#f3f5ed; border-color:#7da793; }
.dossier-card { border-top:3px solid #b8a0d1; }
.saved-fact { background:#edf3fa; }
.local-note { background:#efebf7; color:#6b567d; }
.storage-warning { background:#f8e9d9; color:#804b27; }
.evidence-chain article:nth-child(1) { background:#eaf2fb; border-color:#d4e2f2; }
.evidence-chain article:nth-child(2) { background:#f2ecfa; border-color:#dfd3ed; }
.evidence-chain article:nth-child(3) { background:#e8f2e8; border-color:#d4e4d1; }
.evidence-chain article>span { font-weight:650; color:#587aa2; }
.evidence-chain article:nth-child(2)>span { color:#8c66ad; }
.evidence-chain article:nth-child(3)>span { color:#65895e; }
body:not([data-view=explorer]) .civic-intro,body:not([data-view=explorer]) .citizen-path { display:none; }
body:not([data-view=explorer]) .territory-strip { border-top:0; }
@keyframes illustration-bob { 0%,100% { translate:0 0; } 50% { translate:0 -5px; } }
@keyframes illustration-peek { from { opacity:0; translate:12px 10px; } to { opacity:1; translate:0 0; } }
@media(prefers-reduced-motion:no-preference) {
  .illustration-receipt { animation:illustration-bob 4s ease-in-out 3; }
  .illustration-glass { animation:illustration-peek .9s .2s var(--ease-out) both; }
  .illustration-orbit { animation:illustration-bob 3s ease-in-out 3; }
  .path-card { animation:reveal-up .55s var(--ease-out) backwards; transition:transform .25s var(--ease-out),box-shadow .25s; }
  .path-card:nth-child(2) { animation-delay:.12s; }
  .path-card:nth-child(3) { animation-delay:.2s; }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .path-card:hover { transform:translateY(-4px); box-shadow:0 8px 18px #344e5510; }
  .path-card:active { transform:translateY(0) scale(.98); }
}
@media(min-width:1101px) and (max-width:1320px) {
  .civic-mark { flex-basis:195px; }
  .path-card { gap:8px; padding:14px 10px; }
  .path-icon { flex-basis:26px; width:26px; }
  .path-icon svg { width:25px; }
}
@media(max-width:1100px) {
  .civic-mark { display:block; flex-basis:175px; }
  .civic-intro h1 { font-size:33px; }
  .path-card { flex-wrap:wrap; }
  .path-card>span:nth-child(2) { flex-basis:calc(100% - 50px); }
  .path-card>b { display:none; }
}
@media(max-width:620px) {
  .civic-mark { display:none; }
  .civic-intro h1 { font-size:30px; }
  .citizen-path { grid-template-columns:1fr; gap:8px; margin-top:0; }
  .path-card { padding:12px 15px; flex-wrap:nowrap; }
  .path-card>span:nth-child(2) { flex-basis:auto; }
  .path-card>b { display:block; }
  .path-card small { margin-bottom:3px; }
  .path-card>span>span { font-size:14px; }
  .path-card strong { font-size:14px; }
  .kpi { min-height:155px; padding:14px; }
  .kpi strong { font-size:24px; }
  .kpi-label { font-size:14px; }
  .kpi small { font-size:14px; }
  .plain-reading { font-size:14px; }
}

/* Readability scale: 18px text, 16px controls, 14px minimum secondary labels. */
:root { --muted:#536466; }
body { font-size:18px; line-height:1.65; }
.sidebar { width:280px; padding:28px 18px 22px; }
.shell { margin-left:280px; }
.side-caption { font-size:14px; letter-spacing:1px; }
.nav-item { font-size:16px; padding:12px 10px; gap:10px; line-height:1.4; }
.nav-item>span { font-size:23px; flex:0 0 24px; }
.nav-count { font-size:14px; }
.side-note h3 { font-size:18px; line-height:1.5; }
.side-note p,.side-note .text-button { font-size:16px; }
.side-footer,.side-footer small { font-size:14px; }
.side-footer { line-height:1.6; }
.breadcrumb { font-size:16px; }
main { max-width:1540px; padding:36px 36px 0; }
.civic-intro h1 { font-size:clamp(34px,3.5vw,52px); }
.civic-intro p,.section-description { font-size:18px; line-height:1.7; }
.civic-intro .eyebrow { font-size:14px; }
.eyebrow { letter-spacing:1.3px; }
.primary-button,.row-action,.outline-button,.text-button,.inline-link { font-size:16px; }
.primary-button,.outline-button,.row-action { min-height:44px; padding:10px 16px; }
.hero-actions { gap:18px; }
.path-card { align-items:start; padding:20px 16px; gap:12px; }
.path-card strong { font-size:18px; }
.path-card small { font-size:14px; letter-spacing:.5px; }
.path-card>span>span { font-size:15px; line-height:1.55; }
.path-icon { flex-basis:32px; }
.territory-strip,.territory-strip button { font-size:15px; line-height:1.6; }
.territory-strip { gap:10px 20px; }
.commune-bar { padding:17px 20px; gap:20px; }
.search-wrap label,.year-label,.commune-meta small { font-size:15px; }
.search-wrap input,select,.commune-meta strong,.search-option strong { font-size:18px; }
.search-wrap input { min-height:42px; }
.commune-meta { min-width:210px; }
.search-option small,.search-message { font-size:15px; }
.section-heading h2,.panel h2,.full-panel h2,.small-panel h2 { font-size:25px; line-height:1.35; letter-spacing:-.4px; }
.section-heading { gap:16px; margin-bottom:20px; }
.section-heading>span,.source-pill { font-size:14px!important; }
.badge { font-size:14px; padding:5px 10px; }
.coverage-notice p { font-size:16px; line-height:1.6; }
.kpi-grid { gap:16px; }
.kpi { padding:22px; min-height:196px; }
.kpi-label { font-size:16px; line-height:1.45; align-items:start; }
.kpi-help { width:24px; height:24px; flex:0 0 24px; line-height:22px; font-size:15px; }
.kpi strong { font-size:36px; line-height:1.4; margin:12px 0 5px; letter-spacing:-1px; }
.kpi small { font-size:15px; line-height:1.55; }
.kpi-pictogram { width:34px; height:34px; font-size:25px; }
.plain-reading { font-size:17px; line-height:1.7; margin-bottom:30px; }
.explore-grid { grid-template-columns:minmax(0,2.3fr) minmax(295px,1fr); gap:24px; }
.allocation { padding:28px 26px 0; }
.panel-heading { flex-wrap:wrap; gap:18px; }
.panel-sub { font-size:17px; line-height:1.65; margin:16px 0 25px; }
.segmented button { font-size:15px; min-height:40px; padding:8px 12px; }
.allocation-body { grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr); gap:28px; padding-bottom:28px; }
.donut { max-width:280px; }
.donut-center>span,.donut-center small { font-size:14px; line-height:1.45; }
.donut-center strong { font-size:36px; line-height:1.6; letter-spacing:-1.3px; }
.chart-hint { font-size:15px; line-height:1.5; }
.categories { gap:10px; }
.category { padding:10px 5px; }
.category-line { font-size:17px; align-items:start; gap:10px; }
.category-label { line-height:1.45; }
.category-amount { font-size:17px; font-weight:650; }
.category-dot { width:10px; height:10px; flex:0 0 10px; margin-top:7px; }
.category-bar { height:5px; margin-top:10px; }
.panel-foot { flex-wrap:wrap; gap:14px; padding:20px 0; font-size:15px; }
.panel-foot .text-button { font-size:15px; }
.insight-panel { padding:28px; }
.insight-panel h2 { font-size:36px; line-height:1.22; }
.insight-panel>p { font-size:17px; line-height:1.65; }
.insight-panel>small,.insight-panel .insight-note { font-size:14px; line-height:1.6; max-width:none; }
.insight-panel>button { font-size:16px; min-height:46px; padding:12px 14px; }
.hundred-amount strong { font-size:46px; }
.hundred-amount span { font-size:16px; }
.coin-grid { width:100%; max-width:250px; gap:6px; margin:22px 0 14px; }
.action-banner h2 { font-size:25px; }
.action-banner p { font-size:17px; }
.mini-trend { height:170px; gap:16px; overflow-x:auto; }
.mini-col { min-width:64px; font-size:14px; }
.mini-col b,.trend-chart .mini-col b { font-size:14px; }
.trend-chart { overflow-x:auto; gap:20px; }
.trend-chart .mini-col { min-width:78px; font-size:15px; }
.source-card p { font-size:17px; line-height:1.7; }
.source-card a { font-size:16px; }
.source-card small { font-size:14px; }
.small-panel { padding:26px; min-width:0; }
.muted,.empty-text { font-size:16px; }
.ledger-tools label,.dossier-toolbar label,.field-label { font-size:16px; }
.ledger-tools input,.ledger-tools select,.dossier-toolbar select,.field-label input,.field-label select,.field-label textarea { font-size:17px; padding:12px; }
.ledger-name { font-size:17px; }
.ledger-table th small,.origin-label { font-size:14px; }
.ledger-table th small { white-space:normal; }
.ledger-table th:first-child { min-width:270px; }
.ledger-table th,.ledger-table td { padding:20px 14px; }
.table-scroll table { font-size:16px; }
.document-note,.signal-card p,.method-disclosure,.method-disclosure p { font-size:17px; }
.signal-card { padding:28px; }
.signal-card h3 { font-size:25px; }
.signal-card details,.signal-limit { font-size:16px; }
.signal-footer .inline-link { font-size:16px; }
.local-note,.saved-fact p,.request-details,.evidence-chain p,.integrity-action p,.learn-grid p,.glossary p { font-size:17px; line-height:1.7; }
.saved-fact small,.dossier-card summary small { font-size:15px; }
.dossier-card summary strong { font-size:23px; }
.evidence-chain h3 { font-size:23px; }
.evidence-chain small,.evidence-chain a { font-size:16px; }
.glossary summary { font-size:18px; }
.main-footer,.main-footer button { font-size:14px; }
.main-footer { flex-wrap:wrap; }
.loading-message,.error-message,dialog p { font-size:17px; }
#detail-extra { font-size:16px; line-height:1.7; }
#toast { font-size:16px; line-height:1.5; }
@media(max-width:1500px) and (min-width:901px) {
  .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .allocation-body { grid-template-columns:1fr; }
  .categories { grid-template-columns:1fr; }
  .citizen-path { grid-template-columns:1fr; }
  .path-card { align-items:center; }
  .path-card>span:nth-child(2) { flex-basis:auto; }
  .path-card>b { display:block; }
  .civic-mark { flex-basis:170px; }
  .civic-intro h1 { font-size:38px; }
}
@media(max-width:1200px) and (min-width:901px) {
  .explore-grid { grid-template-columns:minmax(0,1fr); }
  .allocation-body { grid-template-columns:230px minmax(0,1fr); }
  .bottom-grid { grid-template-columns:1fr; }
}
@media(max-width:900px) {
  .sidebar { width:auto; padding:20px; }
  .sidebar nav { gap:8px; }
  .nav-item { flex:0 0 auto; font-size:16px; min-height:46px; }
  .shell { margin:0; }
  main { padding:24px 20px 0; }
  .topbar { height:auto; min-height:68px; padding:12px 20px; flex-wrap:wrap; }
  .civic-intro h1 { font-size:38px; }
  .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .explore-grid,.bottom-grid,.allocation-body { grid-template-columns:1fr; }
  .categories { grid-template-columns:1fr; }
  .citizen-path { grid-template-columns:1fr; }
  .path-card { align-items:center; }
  .path-card>span:nth-child(2) { flex-basis:auto; }
  .path-card>b { display:block; }
  .commune-bar { flex-wrap:wrap; gap:16px; }
  .commune-bar>.search-wrap { flex-basis:100%; border-bottom:1px solid var(--line); padding-bottom:10px; }
  .commune-meta { flex:1; border:0; padding:0; min-width:0; }
  .section-heading>span:not(.source-pill) { max-width:none; text-align:left; }
}
@media(max-width:620px) {
  .civic-intro h1 { font-size:34px; }
  .civic-intro p { font-size:18px; max-width:none; }
  .civic-intro .eyebrow { font-size:14px; }
  .path-card strong { font-size:18px; }
  .path-card>span>span { font-size:15px; }
  .kpi { padding:18px 15px; }
  .kpi strong { font-size:30px; }
  .kpi-label { font-size:16px; }
  .kpi small { font-size:15px; }
  .kpi-grid { gap:12px; }
  .section-heading h2,.panel h2 { font-size:24px; }
  .allocation { padding:24px 20px 0; }
  .category-line,.category-amount { font-size:16px; }
  .category-label { white-space:normal; }
  .insight-panel { padding:26px; }
  .insight-panel h2 { font-size:34px; }
  .insight-panel>p { max-width:none; }
  .full-panel { padding:22px 18px; }
  .signal-card { padding:24px 20px; }
  .signal-card h3 { font-size:23px; }
  .dossier-card>summary { padding:20px; }
  .dossier-card summary strong { font-size:22px; }
  .plain-reading,.section-description { font-size:17px; }
  .main-footer,.main-footer button { font-size:14px; }
}
@media(max-width:380px) {
  .kpi-grid { grid-template-columns:1fr; }
  .category-line { flex-wrap:wrap; }
  .category-amount { margin-left:auto; }
  .civic-intro h1 { font-size:32px; }
  .dossier-body { padding:0 15px 20px; }
}

/* Source map: readable summaries first, documentary detail on demand. */
.data-citation { display:flex; flex-direction:column; align-items:flex-start; gap:5px; padding-top:12px; margin-top:12px; border-top:1px solid #b5c5be80; font-size:14px; line-height:1.55; font-weight:450; color:#455d59; }
.data-citation a,.data-provenance a { color:#285d61; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.citation-links { display:flex; flex-wrap:wrap; gap:5px 14px; }
.data-provenance { border:1px solid #d1ded7; border-radius:14px; background:#edf4ef; padding:18px 22px; margin:0 0 26px; font-size:15px; line-height:1.65; }
.data-provenance>strong,.data-provenance>span { display:block; }
.data-provenance>strong { font-size:17px; }
.data-provenance details { margin-top:10px; }
.data-provenance summary { cursor:pointer; font-size:15px; text-decoration:underline; text-underline-offset:3px; }
.data-provenance p { max-width:1000px; }
.data-age-warning { padding:12px 14px; background:#fff1d5; border-left:4px solid #a96c1e; color:#694318; font-weight:650; }
body[data-view="sources"] .data-provenance,body[data-view="dossier"] .data-provenance { display:none; }
.kpi .data-citation { margin-top:auto; padding-top:12px; }
.kpi { display:flex; flex-direction:column; }
.kpi small { margin-bottom:14px; }
.signal-footer .data-citation { margin:0; flex:1; }
#detail-citation { margin-bottom:22px; }
body[data-view="sources"] .commune-bar,
body[data-view="sources"] .territory-strip,
body[data-view="sources"] .coverage-notice { display:none; }
.source-status-note { padding:24px 28px; background:#e5f2eb; border:1px solid #bbd7c8; border-radius:18px; margin:24px 0; }
.source-status-note>strong { font-size:20px; }
.source-status-note p { margin:8px 0 12px; font-size:17px; max-width:1000px; }
.source-roadmap { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:26px 0; }
.source-roadmap li { display:flex; align-items:start; gap:14px; border-radius:16px; padding:22px 18px; background:#e8effa; }
.source-roadmap li:nth-child(2) { background:#fff0e5; }
.source-roadmap li:nth-child(3) { background:#efe9f8; }
.source-roadmap li>b { background:#fff9; font-size:22px; line-height:40px; text-align:center; flex:0 0 40px; border-radius:50%; }
.source-roadmap strong { display:block; font-size:18px; line-height:1.5; margin-bottom:8px; }
.source-roadmap span { display:block; font-size:16px; line-height:1.6; }
.source-filters { display:flex; gap:20px; padding:24px; background:white; border:1px solid var(--line); border-radius:18px; margin-top:34px; }
.source-filters label { font-size:16px; font-weight:650; flex:1; min-width:0; display:grid; gap:8px; }
.source-filters label:first-child { flex:1.6; }
.source-filters input,.source-filters select { width:100%; min-height:48px; padding:10px 14px; font-size:17px; background:#fafbf8; border:1px solid #b9c6c0; border-radius:9px; }
.source-results { font-size:16px; color:var(--muted); margin:18px 0; }
.source-catalog { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; margin-bottom:36px; }
.source-entry { --source-accent:#2a6d5a; --source-tint:#edf6f0; min-width:0; border:1px solid #d5e2dc; border-top:4px solid var(--source-accent); border-radius:15px; background:white; overflow:hidden; }
.source-entry[data-family="marches"],.source-entry[data-family="territoires"] { --source-accent:#3b67a4; --source-tint:#edf2fb; }
.source-entry[data-family="acteurs"],.source-entry[data-family="decisions"] { --source-accent:#79549d; --source-tint:#f2edf8; }
.source-entry[data-family="aides"],.source-entry[data-family="controle"] { --source-accent:#9c572b; --source-tint:#fcf0e7; }
.source-entry[data-family="services"] { --source-accent:#2d7077; --source-tint:#eaf6f6; }
.source-entry summary { display:block; padding:24px; cursor:pointer; list-style:none; }
.source-entry summary::-webkit-details-marker { display:none; }
.source-entry summary:hover { background:var(--source-tint); }
.source-entry-top { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; color:var(--source-accent); font-size:14px; font-weight:650; margin-bottom:18px; }
.source-entry-state { background:var(--source-tint); border-radius:6px; padding:3px 9px; }
.source-entry summary>strong { font-size:22px; font-family:Manrope,system-ui,sans-serif; font-weight:750; line-height:1.45; display:block; margin-bottom:12px; }
.source-entry-description { font-size:17px; line-height:1.7; display:block; }
.source-entry-open { color:var(--source-accent); display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:16px; font-weight:650; margin-top:20px; }
.source-entry-open b { font-size:25px; line-height:1; }
.source-entry[open] .source-entry-open b { transform:rotate(45deg); }
.source-entry[open] summary { background:var(--source-tint); }
.source-entry-body { padding:22px 24px 26px; border-top:1px solid var(--line); font-size:17px; }
.source-entry-body dl { margin:0; }
.source-entry-body dt { font-weight:700; font-size:16px; margin-top:14px; }
.source-entry-body dt:first-child { margin-top:0; }
.source-entry-body dd { margin:5px 0 0; }
.source-entry-limit { background:#f5f6f1; border-radius:9px; padding:16px; margin:20px 0; font-size:16px; }
.source-entry-limit strong { display:block; margin-bottom:6px; }
.source-entry-links { display:flex; flex-direction:column; gap:14px; }
.source-entry-links a { font-size:16px; color:var(--source-accent); text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.source-method { margin-top:24px; font-size:18px; }
.source-method p { max-width:1000px; }
.source-chain { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin:25px 0; }
.source-chain span { background:#e8f1ec; border-radius:9px; padding:10px 16px; font-weight:650; font-size:17px; }
.source-chain span:nth-of-type(2n) { background:#e9effa; }
.source-chain span:last-child { background:#fff0e5; }
.source-method summary { cursor:pointer; font-weight:650; font-size:18px; }
.source-method li { margin:14px 0; font-size:17px; }
@media(min-width:901px) and (max-width:1200px) { .source-roadmap { grid-template-columns:1fr; } }
@media(max-width:700px) {
  .source-catalog,.source-roadmap { grid-template-columns:1fr; }
  .source-filters { flex-direction:column; padding:20px; }
  .source-status-note { padding:22px; }
  .source-entry summary,.source-entry-body { padding:22px; }
  .source-entry summary>strong { font-size:21px; }
  .source-method ul { padding-left:22px; }
}
@media(prefers-reduced-motion:no-preference) {
  .source-entry-open b { transition:transform .2s ease; }
  .source-entry[open] .source-entry-body { animation:reveal-up .3s var(--ease-out) both; }
}

/* Official documents and the printable citizen kit. */
body[data-view="connexions"] .data-provenance,body[data-view="kit"] .data-provenance{display:none}
.connection-hero,.kit-heading{display:flex;align-items:center;justify-content:space-between;gap:36px;padding:40px 0 35px}
.connection-hero h2,.kit-heading h2{font-size:clamp(34px,4vw,54px);letter-spacing:-2px;line-height:1.1;margin:15px 0 20px}
.connection-hero h2 em,.kit-heading h2 em{font-style:normal;color:#378573}
.connection-hero p,.kit-heading p{max-width:660px;font-size:18px;line-height:1.7}
.connection-orbit{width:270px;height:240px;position:relative;flex-shrink:0;background:radial-gradient(circle,#d8e9df 35%,transparent 36%);border:1px dashed #a1b9a7;border-radius:50%;margin-right:30px}
.connection-orbit>span{position:absolute;inset:63px 0 auto;text-align:center;font:italic 90px Georgia,serif;color:#2d7668}
.connection-orbit i{position:absolute;font-style:normal;border:1px solid #b8cfc0;background:#fffef7;border-radius:12px;padding:10px 18px;box-shadow:0 8px 24px #253c3912;animation:connection-float 5s ease-in-out infinite}
.connection-orbit i:nth-of-type(1){left:-25px;top:28px;background:#e0e8fc}.connection-orbit i:nth-of-type(2){right:-24px;top:88px;background:#f9e0cf;animation-delay:-2s}.connection-orbit i:nth-of-type(3){bottom:0;left:55px;background:#f6ebba;animation-delay:-1s}.connection-orbit b{position:absolute;right:38px;top:12px;font-size:35px;color:#ad7550}
@keyframes connection-float{50%{transform:translateY(-7px)}}
.connections-index{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:12px 0 24px}
.connection-index-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:8px;padding:22px;border:1px solid #bdcfc5;border-radius:17px;background:#e6f0e9;color:#284e44;transition:transform .2s,box-shadow .2s}
.connection-index-item:nth-child(2){background:#f8edc9;border-color:#e8dbaa}.connection-index-item:nth-child(3){background:#e7edfa;border-color:#cad7ef}.connection-index-item:nth-child(4){background:#eee7f6;border-color:#d4c5e6}
.connection-index-item:hover{transform:translateY(-3px);box-shadow:0 8px 24px #1c403411}.connection-index-item strong{font-size:18px}.connection-index-item small{font-size:14px;line-height:1.5}.connection-symbol{font-size:28px;line-height:1}
.connection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.connection-toolbar p{flex:1;font-size:15px}.connection-toolbar button{flex-shrink:0}
.connected-section{padding:30px;margin:30px 0;scroll-margin-top:30px}.connection-limit{background:#f3f5ed;border-left:3px solid #94b29a;padding:16px 20px;font-size:16px;line-height:1.7}.connection-feeds{font-size:15px;padding:8px 0 20px}.connection-feeds a{overflow-wrap:anywhere}.connection-search{display:block;font-size:15px;font-weight:650;margin:10px 0 20px}.connection-search input{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid #cbd5cd;border-radius:10px;font-size:17px}
.connected-record{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:16px 24px;padding:26px 0;border-top:1px solid #dce4dc}.connected-record h3{font-size:21px;line-height:1.4;margin:10px 0}.connected-record p{font-size:15px}.record-amount{text-align:right;padding-top:10px}.record-amount strong{display:block;font-size:27px;letter-spacing:-1px}.record-amount span,.record-amount small{display:block;font-size:14px;line-height:1.5;margin-top:6px}.record-details,.record-actions{grid-column:1/-1}.record-details p{margin-top:0}.record-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:15px}.record-actions a,.annex-card a,.elected-list a,.supplier-identity a{color:#286a5e;text-decoration:underline;text-underline-offset:3px}
.supplier-list{display:flex;flex-wrap:wrap;gap:12px}.supplier-list>div{background:#f1f6f0;border-radius:10px;padding:12px 18px;max-width:100%}.supplier-list span{font-size:15px;display:block}.supplier-identity{font-size:15px;max-width:500px;overflow-wrap:anywhere}.supplier-identity strong,.supplier-identity a,.supplier-identity small{display:block;margin-top:7px}.supplier-identity small{font-size:14px}.connection-pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin:25px 0 0}
.annex-grid,.elected-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.annex-card{background:#eef1f9;border:1px solid #d2daed;border-radius:14px;padding:23px}.annex-card h3{font-size:18px}.annex-card>strong{font-size:26px;display:block;margin-top:15px}.annex-card p,.annex-card small,.annex-card a{font-size:14px;display:block}.elected-list summary{padding:18px;background:#efeaf6;border-radius:10px;cursor:pointer;font-weight:650}.elected-grid article{padding:15px 18px;border:1px solid #e0d9ec;border-radius:12px}.elected-grid h3{font-size:17px}.elected-grid p{font-size:15px;margin:5px 0}.elected-grid small,.elected-grid a{font-size:14px;display:block;margin-top:6px}
.audit-note{border:1px solid #d4bd85;background:#fff4d6;padding:24px;border-radius:15px;margin:25px 0;font-size:17px}.audit-note strong{font-size:21px}
.kit-teaser{display:flex;align-items:center;justify-content:space-between;gap:30px;background:#1d4e43;color:#f8f7e7;border-radius:22px;padding:40px;margin:30px 0;overflow:hidden}.kit-teaser h2{font-size:clamp(25px,3vw,36px);line-height:1.2;letter-spacing:-1px;margin:16px 0}.kit-teaser p{max-width:600px;color:#d9e6da}.kit-teaser .eyebrow{color:#d8d5a1}.kit-teaser .primary-button{background:#f0d995;color:#244e43;border-color:#f0d995;margin-top:14px}.kit-teaser-paper{background:#fffdf0;color:#315d51;padding:26px;width:240px;flex-shrink:0;transform:rotate(7deg);box-shadow:10px 12px #12372e;position:relative;transition:transform .35s}.kit-teaser:hover .kit-teaser-paper{transform:rotate(2deg) translateY(-3px)}.kit-teaser-paper>span{font-size:12px;letter-spacing:2px}.kit-teaser-paper strong{display:block;font:30px/1.2 Georgia,serif;margin:20px 0}.kit-teaser-paper i{display:block;height:5px;background:#c5d7c8;margin:10px 0;width:80%}.kit-teaser-paper i+i{width:60%}.kit-teaser-paper b{position:absolute;right:15px;bottom:15px;font-size:40px;color:#ba805a}
.kit-stamp{width:160px;height:160px;border:1px solid #b2c8b6;border-radius:50%;display:grid;place-content:center;text-align:center;font-size:60px;line-height:1;color:#407e6b;flex-shrink:0;transform:rotate(8deg);margin-right:40px}.kit-stamp small{font:12px/1.6 system-ui;letter-spacing:2px;margin-top:10px}
.kit-builder{display:grid;grid-template-columns:310px minmax(0,1fr);gap:30px;align-items:start}.kit-controls{padding:24px;position:sticky;top:24px}.kit-controls h3{font-size:23px;line-height:1.3;margin:15px 0}.kit-controls .muted{font-size:14px;line-height:1.65}.kit-choice{display:flex;align-items:flex-start;gap:12px;padding:16px 0;border-top:1px solid #d9e1d8;cursor:pointer}.kit-choice input{width:20px;height:20px;accent-color:#34796a;margin-top:3px;flex-shrink:0}.kit-choice strong{font-size:16px;line-height:1.5;display:block}.kit-choice small{font-size:13px;display:block;margin-top:5px;line-height:1.5;color:#596d65}.kit-controls .field-label{margin-top:25px}.kit-actions{display:flex;flex-direction:column;gap:12px;margin-top:22px}.kit-actions .primary-button,.kit-actions .outline-button{justify-content:center}.kit-actions .text-button{text-align:left;white-space:normal;line-height:1.6}.kit-preview-label{display:block;margin-bottom:15px}#kit-feedback{font-size:14px;line-height:1.6}.kit-preview-wrap{min-width:0}
@media(min-width:1600px){.kit-builder{grid-template-columns:330px minmax(0,900px);justify-content:center}}
@media(max-width:1250px){.connections-index{grid-template-columns:repeat(2,minmax(0,1fr))}.kit-builder{grid-template-columns:1fr}.kit-controls{position:static}.kit-controls #kit-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.kit-actions{flex-direction:row;flex-wrap:wrap}.kit-preview-wrap{max-width:850px;width:100%;margin:auto}.kit-stamp{margin-right:0}.connection-orbit{transform:scale(.85);margin-right:0}.connected-record{grid-template-columns:minmax(0,1fr) 200px}}
@media(max-width:760px){.connection-hero,.kit-heading{padding:20px 0;gap:15px}.connection-orbit,.kit-stamp{display:none}.connection-hero h2,.kit-heading h2{font-size:36px;letter-spacing:-1.3px}.connections-index{gap:9px}.connection-index-item{padding:16px}.connection-index-item strong{font-size:16px}.connection-toolbar{align-items:flex-start;flex-direction:column;gap:8px}.connected-section{padding:20px 16px}.connected-record{grid-template-columns:1fr;gap:8px}.record-amount{text-align:left;padding-bottom:15px}.record-actions{align-items:flex-start;flex-direction:column}.annex-grid,.elected-grid{grid-template-columns:1fr}.connection-pagination{gap:9px;font-size:14px}.connection-pagination .outline-button{padding:10px;font-size:14px}.kit-teaser{padding:28px 24px}.kit-teaser-paper{display:none}.kit-controls #kit-choices{grid-template-columns:1fr}.kit-actions{flex-direction:column}.kit-preview-label{font-size:12px}.kit-builder{gap:22px}.kit-controls{padding:22px}.connection-limit{padding:14px}.connection-hero p{font-size:17px}}
@media(prefers-reduced-motion:reduce){.connection-orbit i{animation:none}.connection-index-item,.kit-teaser-paper{transition:none}.connection-index-item:hover,.kit-teaser:hover .kit-teaser-paper{transform:none}}
@media print{body[data-view="kit"] .sidebar,body[data-view="kit"] .topbar,body[data-view="kit"] main>:not(#kit),body[data-view="kit"] .kit-heading,body[data-view="kit"] .kit-controls,body[data-view="kit"] .kit-preview-label,body[data-view="kit"] #toast{display:none!important}body[data-view="kit"] .shell,body[data-view="kit"] main,body[data-view="kit"] #kit,body[data-view="kit"] .kit-builder,body[data-view="kit"] .kit-preview-wrap,body[data-view="kit"] #kit-preview{display:block!important;margin:0!important;padding:0!important;max-width:none!important;width:100%!important}body[data-view="kit"]{background:white!important}}

/* Preparing a citizen's question: evidence stays beside the means of contact. */
.dossier-purpose{background:#e6f0e9;padding:24px;border-radius:14px;margin:22px 0}
.dossier-purpose>strong{font-size:20px}.dossier-purpose p{margin:10px 0}.dossier-purpose small{display:block;font-size:15px;line-height:1.6}
.dossier-purpose button{margin:18px 0 10px}.dossier-purpose>span{display:block;font-size:14px;color:#4c645a}
.kit-choice-group{padding-bottom:18px}.kit-prepare{font-size:15px;line-height:1.5;margin-left:32px;text-align:left}
#outreach-dialog{max-width:1160px;width:calc(100% - 40px);max-height:92dvh;padding:0;border:0;border-radius:24px;background:#fbfbf5;overflow-y:auto;overscroll-behavior:contain}
#outreach-dialog [hidden]{display:none!important}
.outreach-header{padding:34px 42px 28px;background:#214f44;color:#f8f7eb;position:relative}
.outreach-header .eyebrow{color:#d1e0c4}.outreach-header h2{font-size:clamp(28px,3vw,40px);letter-spacing:-1.4px;line-height:1.15;margin:15px 0}
.outreach-header h2 em{color:#efd78d;font-family:Georgia,serif;font-weight:400}
#outreach-context{color:#e0e9dd;font-size:16px;margin:0;max-width:800px;line-height:1.6}
.outreach-header .dialog-close{color:white;width:44px;height:44px;right:15px;top:15px;font-size:30px}
.outreach-content{padding:32px 42px}
.outreach-channels{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.outreach-channels legend{font-size:14px;letter-spacing:1.2px;font-weight:700;margin-bottom:17px}
.outreach-channels label{position:relative;cursor:pointer;min-width:0}
.outreach-channels input{position:absolute;opacity:0;width:1px;height:1px}
.outreach-channels span{border:2px solid #d6dfd4;border-radius:14px;padding:18px;display:block;height:100%;background:white;transition:border-color .2s,background .2s,transform .2s}
.outreach-channels input:checked+span{border-color:#2a7966;background:#e6f1e8;box-shadow:0 4px 0 #2a79661a}
.outreach-channels input:focus-visible+span{outline:3px solid #9969bd;outline-offset:3px}
.outreach-channels b{display:block;font-size:28px;line-height:1.1;color:#347563;margin-bottom:10px}
.outreach-channels strong{display:block;font-size:18px;line-height:1.4}.outreach-channels small{display:block;font-size:14px;line-height:1.6;margin-top:8px;color:#4f645b}
.outreach-note{background:#f6edcd;border:1px solid #e4d8ac;border-radius:12px;padding:16px 20px;font-size:16px;line-height:1.65;margin:20px 0;color:#5b512e}
#outreach-dialog a{color:#216c5b;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.outreach-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;margin-top:34px;align-items:start}
.outreach-grid>section{min-width:0}#outreach-dialog h3{font-size:25px;line-height:1.25;letter-spacing:-.6px;margin:14px 0 20px}
.outreach-evidence>div>div{padding:18px 20px;border-radius:12px;margin:13px 0}
.outreach-evidence strong{font-size:17px}.outreach-evidence p{font-size:16px;line-height:1.65;margin:8px 0 0}
.outreach-fact{background:#e7eef8}.outreach-why{background:#e5efe5}.outreach-boundary{background:#efe9f5}
.outreach-evidence details{padding:17px 0;border-bottom:1px solid #d7e0d6}
#outreach-dialog summary{font-size:16px;font-weight:650;cursor:pointer;line-height:1.6}
.outreach-recipient{padding:25px;background:white;border:1px solid #dbe1d7;border-radius:17px}
#outreach-service{color:#244f43;font-weight:650;font-size:18px;line-height:1.6}
#outreach-dialog .outreach-small{font-size:14px;line-height:1.65;color:#53685f}
.outreach-verified{padding:17px;background:#edf5ed;border:1px solid #c8dfce;border-radius:10px;margin:18px 0}
.outreach-verified strong,.outreach-verified span,.outreach-verified small,.outreach-verified a{display:block;font-size:14px;line-height:1.6;margin:4px 0}
.outreach-verified strong{font-size:16px;color:#276b4c}
.outreach-personal{border-top:1px solid #dbe1d7;padding-top:20px;margin-top:25px}
.outreach-editor{border-top:1px solid #d7dfd3;margin-top:32px;padding-top:30px}
.outreach-editor>details{margin:16px 0}
#outreach-suggestion{width:100%;padding:16px;border:1px solid #bdccbf;border-radius:10px;font:inherit;font-size:16px;line-height:1.65;margin:10px 0}
.outreach-footer{padding:22px 42px;background:#eef1e8;border-top:1px solid #d7dfd3}
.outreach-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.outreach-actions button{font-size:16px;min-height:44px;white-space:normal}
#outreach-feedback{font-size:16px;color:#275b4e;margin:12px 0}
#outreach-email-help{display:block;font-size:14px;line-height:1.6;max-width:900px;color:#50645a}
#outreach-dialog button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:760px){
  #outreach-dialog{width:calc(100% - 16px);max-height:96dvh;border-radius:16px}
  .outreach-header{padding:30px 24px 24px}.outreach-header h2{padding-right:18px;font-size:29px}
  .outreach-content{padding:24px 20px}.outreach-channels{grid-template-columns:1fr;gap:10px}
  .outreach-channels span{padding:14px 16px;display:grid;grid-template-columns:32px 1fr;column-gap:12px}
  .outreach-channels b{grid-row:1/3;margin:4px 0 0}.outreach-channels small{margin-top:4px}.outreach-channels strong{font-size:17px}
  .outreach-grid{grid-template-columns:1fr;gap:25px;margin-top:25px}.outreach-recipient{padding:20px}
  .outreach-footer{padding:22px 20px}.outreach-actions{align-items:stretch;flex-direction:column}
  .outreach-actions button{justify-content:center}.outreach-note{padding:14px;font-size:15px}
}
@media(prefers-reduced-motion:reduce){.outreach-channels span{transition:none}}

.outreach-checks{padding-left:22px;font-size:15px;line-height:1.7;color:#405e50}.outreach-checks li+li{margin-top:8px}

/* Financial reading, expense history and comparable municipalities. */
.bilan-teaser{display:flex;align-items:center;justify-content:space-between;gap:32px;margin:28px 0;padding:32px;background:#e6eef9;border:1px solid #ceddf1;border-radius:24px;overflow:hidden}
.bilan-teaser h2{font-size:clamp(24px,2.4vw,34px);margin:8px 0}.bilan-teaser p{max-width:700px}
.insights-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.insights-actions button{min-height:48px}
.bilan-mark{position:relative;flex:0 0 180px;height:150px;display:flex;align-items:flex-end;gap:10px;padding:20px;border-bottom:2px solid #a4bbd9;transform:rotate(-6deg)}
.bilan-mark span{position:absolute;left:3px;top:-18px;font:700 50px Manrope,sans-serif;color:#4a719f}.bilan-mark i{width:28px;background:#739fd0;border-radius:8px 8px 0 0;height:40%}.bilan-mark i:nth-of-type(2){height:66%;background:#9cb7df}.bilan-mark i:nth-of-type(3){height:53%;background:#b9aad5}.bilan-mark i:nth-of-type(4){height:93%;background:#3d9c86}
.assessment-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:28px 0}.assessment-heading h2{font:750 clamp(28px,3vw,44px)/1.2 Manrope,sans-serif;margin:12px 0}.assessment-heading p{margin-bottom:0}
.assessment-seal{flex:0 0 auto;text-align:center;border:1px solid #b7d8cd;background:#e7f2ed;padding:18px 24px;border-radius:50%}.assessment-seal strong{font-size:16px}
.assessment-summary{background:#fffaf0;border:1px solid #eddfb9;border-radius:22px;padding:30px;margin-bottom:24px}.assessment-summary>p:not(.muted){font-size:21px;line-height:1.65;margin:12px 0}.assessment-summary .muted{margin-bottom:0}
.assessment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:26px}.assessment-card{padding:26px;border:1px solid #cfddd6;border-radius:22px;background:#e9f3ef;min-width:0;animation:insights-enter .45s ease both}.assessment-card:nth-child(2){animation-delay:.07s}.assessment-card:nth-child(3){animation-delay:.14s}.assessment-card:nth-child(4){animation-delay:.21s}.assessment-net{background:#ecf1fa;border-color:#d0dcef}.assessment-debt{background:#f2edf9;border-color:#ddd2ed}.assessment-equipment{background:#fff0e7;border-color:#eddbc9}
.assessment-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.assessment-card-top>span:first-child{font:700 28px Manrope,sans-serif;opacity:.65}.assessment-card .badge{font-size:14px;background:#ffffff96;white-space:normal}.assessment-card h3{font-size:21px;margin:18px 0 10px}.assessment-value{font:750 clamp(28px,3vw,42px)/1.3 Manrope,sans-serif;display:block;letter-spacing:-1px}.assessment-card p{line-height:1.65}.assessment-detail{border-top:1px solid #263e3420;padding-top:16px}.assessment-card details{margin-top:18px}.assessment-card summary,.peer-profile summary,.history-details summary{cursor:pointer;font-weight:650}.assessment-card .data-citation{border-top-color:#263e3420}.assessment-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:24px 0}.assessment-context>div{border-left:3px solid #98b9ab;padding-left:18px}.assessment-limits h2{font-size:28px}
.insights-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:18px;margin:26px 0}.insights-controls label{display:flex;flex-direction:column;gap:8px;font-weight:600;max-width:100%}.insights-controls select{background:white;border:1px solid #cbd5ce;border-radius:10px;padding:11px 35px 11px 14px;max-width:100%;min-height:48px}.insights-controls>button{min-height:48px}.expense-history{margin-bottom:26px}
.history-legend{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.history-key{display:flex;align-items:center;gap:9px;border:1px solid #cfdbd2;border-radius:10px;padding:9px 12px;font-size:16px;background:#fff;transition:background .18s,opacity .18s}.history-key i{height:12px;width:12px;border-radius:4px;flex:0 0 auto}.history-key>span{margin-left:7px}.history-key[aria-pressed=false]{background:#f1f2ef;color:#717870;border-style:dashed}.history-key[aria-pressed=false] i{opacity:.4}.history-key:hover{background:#eff5f0}
.history-scroll{overflow-x:auto;max-width:100%;padding:10px 0}.history-scroll svg{display:block;width:100%;min-width:750px}.history-scroll svg rect{transition:opacity .18s}.history-scroll svg rect:hover{opacity:.72}.history-tick{font:16px 'DM Sans',sans-serif;fill:#51695b}.history-year{font:650 18px 'DM Sans',sans-serif;fill:#263e34}.history-total{font:600 15px 'DM Sans',sans-serif;fill:#263e34}.history-details{margin:24px 0;border:1px solid var(--line);padding:18px;border-radius:12px}.history-details table{margin-top:18px}.history-details td,.history-details th{white-space:nowrap}.history-details caption{text-align:left;padding:12px 0}
.peers-panel{background:linear-gradient(130deg,#f0f7f3,#f2f5fc);margin-bottom:26px}.peers-symbol{font-size:64px;color:#6986b3;line-height:1}.peer-profile{padding:20px;background:#ffffffb3;border:1px solid #d8e3dc;border-radius:14px}.peer-profile>p{margin:8px 0 16px}.profile-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.profile-chip{font-size:15px;padding:6px 10px;background:#e9efeb;border-radius:7px}.peer-profile details p,.peer-profile details a{overflow-wrap:anywhere}.peer-count{margin:26px 0 18px}.peer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.peer-card{background:white;border:1px solid #d3e0d8;border-radius:18px;padding:22px;display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0;animation:insights-enter .4s ease both}.peer-card h3{font-size:24px;margin:0;overflow-wrap:anywhere}.peer-card>strong{font-size:24px}.peer-card>strong span{font-size:16px;font-weight:500}.peer-card p{margin:0;font-size:16px}.peer-card small{font-size:15px;color:#56675d;margin-bottom:8px}.peer-card button{margin-top:auto;width:100%;white-space:normal;min-height:48px;font-size:16px}.peer-card>a{font-size:15px;text-decoration:underline;text-underline-offset:3px}.peer-caution{border-left:3px solid #b19a65;padding-left:16px;margin:24px 0 0;font-size:16px;line-height:1.65}
.comparison-heading{margin-top:28px;padding:24px;border-radius:18px;background:#eef4f8}.comparison-heading h3{font:700 30px Manrope,sans-serif;margin:10px 0}.comparison-heading h3 span{font-weight:400;color:var(--muted)}.comparison-heading p{margin:10px 0}.comparison-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}#comparison{scroll-margin-top:30px}#comparison table caption{text-align:left;font-size:16px;padding:22px 0 12px}#comparison>details{margin:20px 0}#comparison summary{cursor:pointer}.comparison-post-title{font-size:25px;margin-top:36px}.compare-post{padding:20px 0;border-bottom:1px solid var(--line)}.compare-post h4{display:flex;align-items:center;gap:10px;font-size:18px;margin:0 0 14px}.compare-post h4 i{width:12px;height:12px;flex:0 0 auto;border-radius:4px}.compare-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.compare-bar-cell{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;min-width:0}.compare-bar-cell>span{font-size:16px;overflow-wrap:anywhere}.compare-bar-cell>strong{font-size:18px}.compare-track{grid-column:1/-1;height:12px;background:#f0f2ed;border-radius:5px;overflow:hidden}.compare-track i{height:100%;display:block;border-radius:5px;transition:width .45s ease}
@keyframes insights-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.peer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.assessment-context{grid-template-columns:1fr}.bilan-mark{display:none}.peer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.assessment-grid,.peer-grid,.comparison-sources{grid-template-columns:1fr}.assessment-heading{align-items:flex-start}.assessment-seal{padding:12px;border-radius:14px;font-size:14px}.assessment-seal strong{font-size:13px}.assessment-summary,.assessment-card,.bilan-teaser{padding:22px}.assessment-summary>p:not(.muted){font-size:18px}.assessment-heading h2{font-size:29px}.insights-controls{display:grid;grid-template-columns:1fr}.insights-controls select{width:100%}.history-key{font-size:14px;padding:8px}.compare-bars{grid-template-columns:1fr;gap:15px}.comparison-heading{padding:20px}.comparison-heading h3{font-size:26px}.insights-actions>*{width:100%}.history-details{padding:12px}.peers-symbol{font-size:46px}}
@media(prefers-reduced-motion:reduce){.assessment-card,.peer-card{animation:none}.compare-track i,.history-key,.history-scroll svg rect{transition:none}}
.insights-actions .secondary-button,.insights-controls .secondary-button,#peer-retry{padding:11px 18px;border:1px solid #bccfc3;border-radius:10px;background:#ffffffa8;font-weight:600}.insights-actions .secondary-button:hover,.insights-controls .secondary-button:hover,#peer-retry:hover{background:#e7f0e9}
.history-mobile-hint{display:none}
@media(max-width:1000px){.history-mobile-hint{display:block;font-size:15px;color:#536a5d;margin:16px 0 0}}

/* A single commune selection stays visible above the navigation. */
.sidebar{overflow:hidden;padding-bottom:0}
.sidebar-head{flex:0 0 auto;min-width:0;padding-bottom:18px;border-bottom:1px solid #dce5d9}
.sidebar-head .side-caption{margin-bottom:19px}
.sidebar-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 0 22px;scrollbar-width:thin}
.sidebar-body .side-note{margin-top:24px}
.commune-switcher{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:8px;text-align:left;padding:16px;background:#dcefe5;border:1px solid #aacdba;border-radius:15px;box-shadow:0 3px 10px #315e4610;transition:background .18s,border-color .18s}
.commune-switcher:hover{background:#d0e8dc;border-color:#76ac91}
.commune-switcher-label{font-size:12px;font-weight:750;letter-spacing:1.2px;color:#386651}
.commune-switcher-name{display:flex;align-items:flex-start;gap:8px;min-width:0}
.commune-switcher-name>span{font-size:24px;line-height:1.25;color:#31745b}
.commune-switcher-name strong{font:750 21px/1.35 Manrope,system-ui,sans-serif;overflow-wrap:anywhere;letter-spacing:-.4px}
.commune-switcher-meta{font-size:14px;line-height:1.5;color:#426653}
.commune-switcher-action{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;font-weight:700;border-top:1px solid #96bea566;padding-top:10px;margin-top:3px;color:#245a42}
.commune-switcher-short{display:none}
.commune-switcher[data-state="loading"]{background:#eaf0eb}
.commune-switcher[data-state="error"]{background:#fff0e2;border-color:#d9bc96}
.breadcrumb{display:flex;align-items:baseline;flex-wrap:wrap;min-width:0;row-gap:4px}
.breadcrumb-city{font-size:inherit;font-weight:700;padding:0;text-align:left;color:#2c7059;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;overflow-wrap:anywhere}
.breadcrumb-city:hover{text-decoration-style:solid}
.commune-bar .commune-meta{border:0;padding:0;flex:1;min-width:0}
.commune-bar .commune-meta strong{overflow-wrap:anywhere}
.commune-bar-change{flex:0 0 auto;font-size:16px;min-height:44px}
#city-dialog{width:min(600px,calc(100% - 32px));max-width:600px;max-height:88dvh;padding:32px;border-radius:22px;overflow-y:auto;overscroll-behavior:contain}
#city-dialog>.eyebrow{display:block;padding-right:24px;font-size:12px}
#city-dialog h2{font-size:30px;margin:16px 0 12px}
#city-dialog .dialog-close{width:44px;height:44px;right:10px;top:10px}
#city-dialog .city-dialog-current{font-size:15px;background:#eaf3ec;border-radius:10px;padding:12px 15px;color:#305c47}
#city-dialog .search-wrap{margin-top:22px}
#city-dialog .search-wrap label{font-size:16px;font-weight:650;color:var(--ink);margin-bottom:8px}
#city-dialog #city-search{font-size:19px;border:1px solid #a9c3b2;background:white;border-radius:11px;padding:13px 15px;min-height:52px}
#city-dialog .search-results{position:static;min-width:0;width:100%;margin-top:10px;max-height:36dvh;box-shadow:none;border-color:#d0ddd3}
#city-dialog .search-option{padding:12px;min-height:60px}
#city-dialog .search-option strong{white-space:normal;overflow-wrap:anywhere}
#city-dialog #city-search-help,#city-dialog .city-search-source{font-size:14px;line-height:1.6}
#city-dialog .city-search-source{padding-top:16px;border-top:1px solid var(--line);margin-bottom:0}
#city-dialog .city-search-source a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:900px){
  .sidebar{position:sticky;inset:auto;top:0;z-index:25;padding:12px 20px 0;background:#f0f3ea;box-shadow:0 4px 16px #263e3409}
  .sidebar-head{padding-bottom:10px;border:0}
  .sidebar-head .brand{font-size:23px;margin-bottom:12px}
  .sidebar-head .brand-icon{width:32px;height:34px;font-size:23px;line-height:34px}
  .sidebar-body{overflow:visible;padding:0;flex:none;min-width:0}
  .sidebar-body nav{margin-top:0;margin-bottom:0;padding-bottom:10px;scrollbar-width:thin}
  .commune-switcher{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name action" "meta action";column-gap:12px;row-gap:2px;padding:10px 13px;border-radius:12px}
  .commune-switcher-label,.commune-switcher-full{display:none}
  .commune-switcher-short{display:inline}
  .commune-switcher-name{grid-area:name;gap:6px}
  .commune-switcher-name strong{font-size:18px;line-height:1.35}
  .commune-switcher-name>span{font-size:20px}
  .commune-switcher-meta{grid-area:meta;font-size:13px}
  .commune-switcher-action{grid-area:action;border:0;padding:0;margin:0;gap:8px;font-size:14px}
  .commune-bar-change{order:3;flex-basis:100%;text-align:left;border-top:1px solid var(--line);padding-top:12px}
  .topbar .breadcrumb{font-size:15px}
  main{scroll-margin-top:220px}
}
@media(max-width:620px){
  .sidebar{padding:10px 16px 0}
  .sidebar-body .nav-item{font-size:15px;min-height:42px}
  #city-dialog{padding:25px 20px;max-height:92dvh}
  #city-dialog h2{font-size:26px}
}
@media(prefers-reduced-motion:reduce){.commune-switcher{transition:none}}
@media print{#city-dialog{display:none!important}}

/* Parcours de preuve: readable evidence, never a completeness or suspicion score. */
body[data-view="enquete"] .data-provenance{display:none}
.evidence-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:40px 0 32px}.evidence-hero>div:first-child{max-width:760px}.evidence-hero h2{font-size:clamp(35px,4.2vw,60px);letter-spacing:-2px;line-height:1.08;margin:17px 0 24px}.evidence-hero h2 em{font-style:normal;color:#378573}.evidence-hero p{font-size:19px;line-height:1.65;max-width:680px}.evidence-hero>div>strong{display:block;font-size:17px;margin-top:20px;color:#476c60}
.evidence-art{display:grid;grid-template-columns:32px 76px;align-items:center;gap:15px;position:relative;width:220px;padding:20px;flex-shrink:0;transform:rotate(5deg)}.evidence-art:before{content:"";position:absolute;top:25px;bottom:35px;left:88px;width:2px;background:#bdcfc0;z-index:-1}.evidence-art>i{font:italic 16px Georgia,serif;color:#718474}.evidence-art>span{display:grid;place-items:center;width:76px;height:65px;background:#dceee6;border:1px solid #a5cdbd;border-radius:14px;font-size:38px;box-shadow:5px 5px #c5d6c8;animation:evidence-arrive .7s ease backwards}.evidence-art>span:nth-of-type(2){background:#ebe2f7;border-color:#c5b1de;animation-delay:.12s}.evidence-art>span:nth-of-type(3){background:#f9ecc1;border-color:#dcc990;animation-delay:.24s}.evidence-art>b{position:absolute;right:-8px;top:65px;font:italic 26px/1.2 Georgia,serif;color:#557666;transform:rotate(-12deg)}
.evidence-controls{padding:26px;margin-bottom:28px}.evidence-controls>label,.evidence-controls summary,.evidence-controls form>label{font-size:17px;font-weight:700}.evidence-controls select{display:block;width:100%;max-width:100%;padding:15px;border-radius:11px;border:1px solid #b8cfc5;background:#fff;font-size:18px;margin-top:10px;color:#25443f}.evidence-controls p{font-size:15px}.evidence-controls details{border-top:1px solid var(--line);padding-top:17px;margin-top:20px}.evidence-controls summary{cursor:pointer;color:#377466}.evidence-controls form{padding:20px 0 0}.evidence-controls form>div{display:flex;gap:14px;margin:12px 0}.evidence-controls input{flex:1;min-width:0;padding:14px;font-size:18px;border:1px solid #b8cfc5;border-radius:10px}
.evidence-case{padding:28px 32px;background:#214c43;color:#fffdf2;border-radius:20px 20px 0 0}.evidence-case .eyebrow{color:#cdddb1}.evidence-case h3{font-size:26px;line-height:1.4;margin:15px 0}.evidence-case p{font-size:16px;color:#d2e2d8}.evidence-case a{font-size:16px;color:#f0db9a;text-underline-offset:4px}.evidence-path{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:30px;background:#eef3ec;border:1px solid #cfddce;border-top:0;border-radius:0 0 20px 20px}.evidence-node{background:#fffef7;border:1px solid #cfddce;border-radius:15px;padding:22px;position:relative;min-width:0;animation:evidence-arrive .5s calc(var(--step)*.1s) both}.evidence-node+.evidence-node:before{content:'→';position:absolute;left:-21px;top:50%;font-size:22px;color:#4a7f6c}.evidence-node-top{display:flex;align-items:center;gap:10px;font-size:15px}.evidence-node-top b{display:grid;place-items:center;font-size:24px;width:40px;height:40px;background:#e1eee7;border-radius:10px}.evidence-node>strong{display:block;font-size:22px;line-height:1.35;margin-top:20px;overflow-wrap:anywhere}.evidence-node>p{font-size:15px;line-height:1.6;margin:10px 0}.evidence-node small{display:block;font-size:14px;line-height:1.55;color:#526b61;border-top:1px solid #dce4d7;padding-top:12px;overflow-wrap:anywhere}.evidence-node.market{background:#fcf1cd;border-color:#e4d6a5}.evidence-node.market .evidence-node-top b{background:#ecd99e}.evidence-node.company{background:#efe9f7;border-color:#d4c7e5}.evidence-node.company .evidence-node-top b{background:#dfd2ee}
.evidence-reading{display:flex;gap:15px;align-items:center;padding:10px 18px}.evidence-reading>span{font-size:35px;color:#749481}.evidence-reading p{font-size:16px;line-height:1.65}.evidence-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:10px 0 30px}.evidence-source{background:white;border:1px solid #d4dfd6;border-top:4px solid #79a291;padding:22px;border-radius:15px;min-width:0}.evidence-source.source-bodacc{border-top-color:#a88dc7}.evidence-source.source-joafe{border-top-color:#d3ae4f}.evidence-source h4{font-size:21px;line-height:1.4;margin:12px 0}.evidence-source .eyebrow{font-size:12px;letter-spacing:1px}.evidence-source-state{display:block;font-size:17px;color:#337462}.evidence-source>p,.evidence-source details{font-size:15px;line-height:1.65}.evidence-source summary{cursor:pointer;text-decoration:underline;text-underline-offset:4px}.evidence-source[aria-busy=true] .evidence-source-state{animation:evidence-pulse 1.5s ease-in-out infinite}
.evidence-bottom{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px;align-items:start}.evidence-timeline{padding:28px}.evidence-timeline h3{font-size:25px;margin:12px 0}.evidence-timeline ol{list-style:none;margin:28px 0 0;padding:0}.evidence-timeline li{position:relative;border-left:2px solid #dce4d7;padding:0 0 28px 25px;margin-left:8px;overflow-wrap:anywhere}.evidence-timeline li:last-child{border-color:transparent;padding-bottom:0}.event-dot{position:absolute;left:-7px;top:3px;background:#759f90;width:12px;height:12px;border:3px solid white;outline:1px solid #759f90;border-radius:50%}.event-bodacc .event-dot{background:#a88dc7;outline-color:#a88dc7}.event-joafe .event-dot{background:#d3ae4f;outline-color:#d3ae4f}.evidence-timeline time{font-weight:700;font-size:16px}.evidence-timeline li>small{font-size:14px;margin-left:12px;color:#627569}.evidence-timeline h4{font-size:19px;line-height:1.4;margin:12px 0 7px}.evidence-timeline li p{font-size:16px;line-height:1.6}.evidence-timeline li a{font-size:14px;display:inline-block;margin-right:15px}.evidence-source a,.evidence-timeline a{color:#286a5e;text-underline-offset:4px;overflow-wrap:anywhere}
.evidence-next{padding:30px;border-radius:20px;background:#f5ebc6;border:1px solid #e4d7a6}.evidence-next>h3{font-size:27px;line-height:1.3;margin:16px 0 24px}.evidence-next ul{list-style:none;padding:0}.evidence-next li{display:flex;gap:10px;align-items:baseline;font-size:17px;line-height:1.6;padding:11px 0;border-bottom:1px solid #e1d6b0}.evidence-next li span{color:#ad8540}.evidence-next>p{font-size:15px;line-height:1.65}.evidence-next>small{font-size:14px;display:block;line-height:1.6;margin-top:10px}.evidence-question{border:1px solid #dfd1a5;background:#fffdf2;padding:22px;border-radius:14px;margin:22px 0}.evidence-question strong{font-size:19px}.evidence-question p{font-size:17px;line-height:1.7}.evidence-question small{display:block;font-size:14px;line-height:1.6}.evidence-question button{margin-top:22px;max-width:100%;white-space:normal}
.evidence-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:30px;border:1px solid #cfddce;border-radius:18px;margin-top:30px;background:#e9f1e8}.evidence-actions>div{flex:1;min-width:220px}.evidence-actions strong{font-size:21px}.evidence-actions p{font-size:15px;line-height:1.6;margin:8px 0 0}.evidence-empty{text-align:center;padding:50px;border:1px dashed #b9cbbd;border-radius:20px}.evidence-empty>span{font-size:70px;color:#789785}.evidence-empty h3{font-size:25px}.evidence-empty p{font-size:18px}.evidence-teaser{display:flex;align-items:center;gap:20px;border:1px solid #aac8b5;border-radius:16px;padding:24px;margin:0 0 26px;background:#e4eedc;width:100%;text-align:left;color:#285c4e}.evidence-teaser>span{font-size:40px}.evidence-teaser div{flex:1}.evidence-teaser strong{font-size:21px}.evidence-teaser p{font-size:16px;line-height:1.5;margin:8px 0 0}.evidence-teaser>b{font-size:27px}.source-entry-implementation{padding:14px;background:#f0f4ec;border-radius:10px;font-size:16px;line-height:1.6}
.connections-index{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.record-actions{flex-wrap:wrap}
@keyframes evidence-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes evidence-pulse{50%{opacity:.5}}
@media(max-width:1100px){.evidence-art{display:none}.evidence-path{padding:18px;gap:15px}.evidence-node{padding:16px}.evidence-node>strong{font-size:20px}.evidence-node+.evidence-node:before{left:-17px}.evidence-bottom{grid-template-columns:1fr}.evidence-source-grid{gap:12px}.evidence-source{padding:18px}}
@media(max-width:650px){.evidence-hero{padding:24px 0;gap:0}.evidence-hero h2{font-size:38px}.evidence-hero p{font-size:17px}.evidence-hero .eyebrow{font-size:12px}.evidence-controls,.evidence-case,.evidence-timeline,.evidence-next{padding:22px}.evidence-controls form>div{flex-direction:column}.evidence-path,.evidence-source-grid{grid-template-columns:1fr}.evidence-node+.evidence-node:before{content:'↓';left:50%;top:-22px;font-size:20px}.evidence-path{gap:22px}.evidence-node>strong{font-size:23px}.evidence-node>p,.evidence-node small{font-size:16px}.evidence-case h3{font-size:23px}.evidence-actions{padding:22px}.evidence-actions>button{width:100%}.evidence-timeline .panel-heading{flex-wrap:wrap}.evidence-reading{padding:10px 0}.evidence-teaser{padding:20px}.evidence-teaser strong{font-size:19px}.evidence-teaser>span{display:none}.connections-index{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.evidence-art>span,.evidence-node,.evidence-source[aria-busy=true] .evidence-source-state{animation:none}}
.evidence-path.evidence-direct{grid-template-columns:1fr}

/* One continuous frame keeps a question and its personal follow-up together. */
.dossier-thread {
  margin:28px 0;
  border:1px solid #cbb9df;
  border-left:5px solid #8b66a8;
  border-radius:20px;
  background:#f7f3fb;
  overflow:hidden;
  box-shadow:0 5px 18px #5035680b;
  transition:border-color .2s,box-shadow .2s;
}
.dossier-question { padding:26px; background:linear-gradient(125deg,#eee6f7,#f6f1fb); }
.question-editor-heading { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.question-editor-icon { width:50px; height:50px; flex:0 0 auto; display:grid; place-items:center; color:#fff; background:#80599b; border-radius:14px; box-shadow:0 4px 0 #69478218; font:750 25px/1 Manrope,sans-serif; }
.question-editor-heading>div { flex:1; min-width:0; }
.question-editor-label { display:block; font-size:23px; line-height:1.35; font-weight:750; color:#49335f; cursor:text; }
.question-editor-heading p { margin:6px 0 0; font-size:16px; line-height:1.5; color:#685574; }
.question-editor-tag { flex:0 0 auto; padding:6px 11px; border:1px solid #cdbbdf; border-radius:30px; background:#ffffff91; color:#644b78; font-size:14px; font-weight:650; }
.dossier-question textarea { display:block; width:100%; max-width:100%; min-width:0; min-height:220px; padding:20px 22px; border:1.5px solid #bca5d0; border-radius:12px; background:#fffefd; color:var(--ink); font:400 18px/1.75 'DM Sans',sans-serif; resize:vertical; box-shadow:inset 0 2px 5px #49335f06; transition:border-color .2s,box-shadow .2s; scroll-margin-top:30px; }
.dossier-question textarea:focus { outline:3px solid #9675b24d; outline-offset:3px; border-color:#80599b; box-shadow:0 0 0 1px #80599b; }
.dossier-thread:focus-within { border-color:#9875b5; border-left-color:#744a91; box-shadow:0 6px 22px #50356813; }
.question-editor-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:18px; }
.question-editor-footer>span { max-width:480px; font-size:15px; line-height:1.6; color:#685574; }
.question-editor-footer .row-action { flex:0 0 auto; background:#80599b; border-color:#80599b; color:white; padding:12px 18px; font-size:16px; }
.question-editor-footer .row-action:hover { background:#694582; border-color:#694582; }
.dossier-question .request-details { margin:24px 0 0; padding:17px 18px; border-color:#d3c3e1; background:#ffffff9c; color:#59406e; }
.dossier-question .request-details>summary { cursor:pointer; font-weight:650; }
.dossier-actions { justify-content:flex-end; }
@media(max-width:650px) {
  .dossier-thread { border-left-width:4px; border-radius:15px; margin:24px 0; }
  .dossier-question { padding:20px 16px; }
  .question-editor-heading { display:grid; grid-template-columns:42px minmax(0,1fr); align-items:start; gap:12px; margin-bottom:17px; }
  .question-editor-icon { width:42px; height:42px; border-radius:12px; }
  .question-editor-label { font-size:21px; }
  .question-editor-heading p { font-size:15px; }
  .question-editor-tag { grid-column:2; justify-self:start; margin-left:0; }
  .dossier-question textarea { min-height:260px; padding:16px; font-size:18px; line-height:1.7; scroll-margin-top:220px; }
  .question-editor-footer { flex-direction:column; align-items:stretch; gap:14px; }
  .question-editor-footer .row-action { width:100%; text-align:center; }
}
@media(prefers-reduced-motion:reduce) { .dossier-thread,.dossier-question textarea { transition:none; } }
@media print { .dossier-thread { box-shadow:none; border-color:#8b66a8; } .dossier-question { background:white; } .question-editor-tag,.question-editor-footer .row-action { display:none; } }

.dossier-followup { position:relative; padding:30px 26px 26px; border-top:1px dashed #baa2ce; background:#f7f3fb; }
.dossier-followup::before { content:'↓'; position:absolute; top:-15px; left:36px; display:grid; place-items:center; width:30px; height:30px; border:1px solid #cbb9df; border-radius:50%; background:#f7f3fb; color:#80599b; font-size:19px; }
.followup-heading { display:flex; gap:16px; align-items:center; }
.followup-icon { display:grid; place-items:center; width:50px; height:50px; flex:0 0 auto; background:#e7dbf1; color:#694582; border:1px solid #c6add9; border-radius:14px; font:750 25px/1 Manrope,sans-serif; }
.followup-heading h3 { margin:0; font-size:23px; line-height:1.4; color:#49335f; }
.followup-heading p { margin:3px 0 0; font-size:15px; color:#685574; }
.followup-help { font-size:16px; line-height:1.7; color:#685574; margin:18px 0 0; max-width:850px; }
.dossier-followup .field-label { color:#49335f; }
.dossier-followup .field-label input,.dossier-followup .field-label select,.dossier-followup .field-label textarea { border-color:#cbb9df; background:#fffefd; }
.dossier-followup .field-label input:focus,.dossier-followup .field-label select:focus,.dossier-followup .field-label textarea:focus { outline:3px solid #9675b24d; outline-offset:2px; border-color:#80599b; }
.dossier-followup .save-feedback { font-size:15px; padding-top:16px; border-top:1px solid #ded1e8; margin-bottom:0; color:#685574; }
@media(max-width:650px) { .dossier-followup { padding:28px 16px 20px; } .dossier-followup::before { left:22px; } .followup-heading { align-items:flex-start; gap:12px; } .followup-icon { width:42px; height:42px; border-radius:12px; } .followup-heading h3 { font-size:21px; } }
@media print { .dossier-followup { background:white; } }

/* Vigilance: measured changes, missing evidence and integrity checks stay distinct. */
.vigilance-hero { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:36px; border:1px solid #e6cbb6; border-radius:24px; background:linear-gradient(115deg,#f9e6d3,#fbf0d7); }
.vigilance-hero h2 { font:750 clamp(30px,3.5vw,46px)/1.2 Manrope,sans-serif; letter-spacing:-1.4px; margin:17px 0; }
.vigilance-hero h2 span { display:block; margin-top:12px; font-size:clamp(22px,2.5vw,30px); font-weight:500; color:#97602d; letter-spacing:-.6px; }
.vigilance-hero p { max-width:740px; font-size:19px; line-height:1.7; margin-bottom:0; }
.vigilance-symbol { font-size:110px; color:#b06a3a; padding:0 15px; }
.vigilance-intro { font-size:16px; color:var(--muted); margin:20px 0 26px; line-height:1.7; }
.vigilance-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-bottom:26px; }
.vigilance-summary-card { position:relative; display:flex; flex-direction:column; align-items:flex-start; text-align:left; padding:24px; border:1px solid #e6cbb6; border-radius:18px; background:#fcf0e5; transition:transform .2s,border-color .2s; }
.vigilance-summary-card.documents { background:#eaf3f6; border-color:#c4d8e2; }
.vigilance-summary-card.integrite { background:#f0eaf7; border-color:#d6c7e4; }
.vigilance-summary-card:hover { transform:translateY(-3px); border-color:#9e8065; }
.vigilance-summary-card[aria-pressed=true] { outline:2px solid #526e64; outline-offset:3px; }
.vigilance-summary-card>span:first-child { position:absolute; right:21px; top:16px; font-size:32px; opacity:.55; }
.vigilance-summary-card>strong { font:750 35px/1.3 Manrope,sans-serif; padding-right:30px; margin-bottom:12px; }
.vigilance-summary-card.integrite>strong { font-size:25px; min-height:45px; display:flex; align-items:center; }
.vigilance-summary-card>b { font-size:19px; }
.vigilance-summary-card>small { font-size:16px; line-height:1.5; margin:9px 0 20px; }
.vigilance-summary-link { font-size:14px; font-weight:650; margin-top:auto; }
.vigilance-method { line-height:1.7; }
.vigilance-method a { text-decoration:underline; text-underline-offset:4px; }
.vigilance-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin:30px 0 18px; }
.vigilance-toolbar label { font-weight:650; font-size:17px; display:flex; flex-direction:column; gap:9px; }
.vigilance-toolbar select { background:#fff; border:1px solid #b9ccbf; border-radius:10px; font-size:18px; padding:12px 36px 12px 15px; min-height:48px; }
.vigilance-toolbar p { font-size:16px; color:var(--muted); line-height:1.6; }
.vigilance-coverage { padding:16px 20px; border-left:3px solid #9bb2a5; background:#edf2ec; font-size:15px; line-height:1.7; margin-bottom:28px; }
.vigilance-card { padding:30px; border-top:4px solid #d19a62; margin-bottom:26px; min-width:0; animation:evidence-arrive .4s ease both; }
.vigilance-card.documents { border-top-color:#81a5ba; }
.vigilance-card.integrity { border-top-color:#a589bf; }
.vigilance-card .badge { font-size:14px; white-space:normal; }
.vigilance-card h3 { font-size:27px; line-height:1.4; letter-spacing:-.5px; margin:17px 0; }
.vigilance-card p { font-size:17px; line-height:1.75; }
.vigilance-card-main { display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,.65fr); gap:30px; align-items:center; }
.vigilance-card-main>div:only-child { grid-column:1/-1; }
.vigilance-fact { margin:0; }
.vigilance-chart { background:#fcf4ea; padding:22px; border-radius:14px; }
.vigilance-chart>span { font-size:12px; letter-spacing:1px; font-weight:700; color:#835530; }
.vigilance-chart>strong { display:block; font:750 33px Manrope,sans-serif; color:#9a552a; margin:8px 0 18px; }
.vigilance-bar { margin:13px 0; }
.vigilance-bar>div { display:flex; justify-content:space-between; gap:12px; font-size:15px; margin-bottom:7px; }
.vigilance-bar i { display:block; background:#e7ded2; height:10px; border-radius:10px; overflow:hidden; }
.vigilance-bar i span { display:block; height:100%; background:#829cb8; border-radius:10px; }
.vigilance-bar i .current { background:#d29150; }
.vigilance-chart>small { font-size:13px; color:#755c48; }
.vigilance-reading { display:grid; grid-template-columns:1fr 1fr; gap:26px; margin:26px 0; }
.vigilance-reading>div { border-left:3px solid #a7c7b9; padding-left:17px; }
.vigilance-reading>div+div { border-color:#d5c4a6; }
.vigilance-reading strong { font-size:17px; }
.vigilance-reading p { margin:8px 0 0; font-size:16px; }
.vigilance-rule { font-size:16px; line-height:1.7; }
.vigilance-rule summary { cursor:pointer; font-weight:650; color:#44675c; }
.vigilance-sources { display:flex; flex-direction:column; align-items:flex-start; gap:9px; margin:24px 0; padding-top:20px; border-top:1px solid var(--line); font-size:15px; line-height:1.6; overflow-wrap:anywhere; }
.vigilance-sources a { text-decoration:underline; text-underline-offset:4px; color:#307567; }
.vigilance-sources small { font-size:14px; color:var(--muted); }
.vigilance-question { padding:24px; border:1px solid #d0bdde; border-left:4px solid #a185b6; border-radius:15px; background:#f3edf8; }
.vigilance-question .eyebrow { font-size:12px; color:#725187; }
.vigilance-question p { font-size:18px; margin:14px 0 22px; }
.vigilance-question>div { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-top:20px; border-top:1px solid #ddcfe8; }
.vigilance-question>div>span { font-size:15px; line-height:1.6; }
.vigilance-question .row-action { flex-shrink:0; background:#80599b; color:white; border-color:#80599b; padding:12px 16px; font-size:16px; }
.vigilance-question .row-action:hover { background:#694582; }
.vigilance-question>small { display:block; margin-top:18px; font-size:14px; line-height:1.6; color:#685574; }
.vigilance-proof { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; padding:0; list-style:none; margin:26px 0; }
.vigilance-proof li { display:flex; gap:12px; align-items:flex-start; padding:18px; background:#f2edf7; border-radius:12px; font-size:16px; font-weight:650; }
.vigilance-proof b { color:#86649c; font-size:24px; }
.vigilance-proof small { display:block; font-size:14px; line-height:1.6; font-weight:400; margin-top:8px; }
.vigilance-empty { padding:30px; font-size:18px; line-height:1.7; }
@media(max-width:1100px) { .vigilance-symbol { display:none; } .vigilance-card-main { grid-template-columns:1fr; } .vigilance-chart { max-width:100%; } .vigilance-question>div { flex-wrap:wrap; } .vigilance-proof { grid-template-columns:1fr; } }
@media(max-width:650px) { .vigilance-hero { padding:24px; } .vigilance-hero p { font-size:17px; } .vigilance-summary,.vigilance-reading { grid-template-columns:1fr; } .vigilance-summary-card { padding:20px; } .vigilance-summary-card>strong { margin-bottom:6px; } .vigilance-summary-card>small { margin-bottom:12px; } .vigilance-toolbar { align-items:stretch; flex-direction:column; gap:10px; } .vigilance-toolbar select { max-width:100%; } .vigilance-card { padding:21px 18px; } .vigilance-card h3 { font-size:24px; } .vigilance-question { padding:20px 16px; } .vigilance-question .row-action { width:100%; white-space:normal; } .vigilance-chart { padding:18px; } .vigilance-coverage { padding:14px; } }
@media(prefers-reduced-motion:reduce) { .vigilance-card { animation:none; } .vigilance-summary-card { transition:none; } }

.political-context { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:20px 24px; border:1px solid #d5dbea; border-radius:15px; background:#f0f2f8; margin:0 0 28px; }
.political-context[hidden] { display:none; }
.political-context>div { display:flex; align-items:center; flex-wrap:wrap; gap:9px 16px; font-size:16px; }
.political-context-label { width:100%; font-size:12px; font-weight:700; letter-spacing:1px; color:#5a6580; }
.political-context small { flex-basis:100%; font-size:14px; color:#5c6677; line-height:1.6; }
.political-context .text-button { flex:0 0 auto; font-size:15px; max-width:220px; text-align:left; }
.political-badge { display:inline-flex; align-items:center; flex-wrap:wrap; gap:8px; background:#fffdfb; border:1px solid #d7dae0; border-radius:8px; padding:8px 11px; font-size:16px; font-weight:700; line-height:1.4; }
.political-badge i { width:12px; height:12px; flex-shrink:0; border-radius:50%; background:var(--party-color,#7b8584); }
.political-badge small { font-size:13px; font-weight:500; color:#5b6773; flex-basis:auto; }
.politics-explanation { background:#edf0f7; border:1px solid #cdd6e6; padding:26px; border-radius:18px; margin:24px 0; }
.politics-explanation strong { font-size:23px; }
.politics-explanation p,.politics-legend { font-size:16px; line-height:1.7; }
.politics-explanation summary { font-size:16px; font-weight:650; cursor:pointer; }
.politics-timeline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:28px 0; align-items:start; }
.political-election { padding:24px; min-width:0; border:1px solid #d7dfe0; border-top:5px solid var(--party-color); border-radius:17px; background:#fff; }
.political-election.relevant { box-shadow:0 0 0 3px #c9d7e7; }
.political-election-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.political-election-top>strong { font:750 32px Manrope,sans-serif; }
.political-election-top>span { font-size:13px; padding:5px 9px; background:#e8eef7; border-radius:5px; }
.political-election h3 { font-size:19px; line-height:1.55; margin:18px 0; }
.political-election p { font-size:16px; line-height:1.65; }
.political-list-name { font-weight:650; }
.political-election details { border-top:1px solid var(--line); padding-top:18px; margin-top:20px; }
.political-election summary { font-size:16px; font-weight:650; cursor:pointer; line-height:1.5; }
.political-result { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:20px 0; border-bottom:1px solid var(--line); font-size:15px; line-height:1.6; }
.political-result .political-badge { font-size:14px; }
.political-sources { display:flex; flex-direction:column; align-items:flex-start; gap:12px; font-size:14px; line-height:1.6; margin-top:22px; overflow-wrap:anywhere; }
.political-sources a,.politics-legend a { text-decoration:underline; text-underline-offset:3px; color:#326c64; }
.political-sources small { font-size:13px; color:var(--muted); }
.political-programmes { padding:32px; margin-top:36px; }
.political-programmes h2 { font-size:29px; margin:15px 0; }
.political-programmes p { font-size:17px; line-height:1.8; }
.political-programmes>.outline-button { display:inline-block; white-space:normal; margin:12px 0; }
body[data-view=politique] .political-context { display:none; }
@media(max-width:1250px) { .politics-timeline { grid-template-columns:1fr; } }
@media(max-width:650px) { .political-context { padding:20px; align-items:flex-start; flex-direction:column; } .politics-explanation,.political-election,.political-programmes { padding:22px; } .political-programmes h2 { font-size:25px; } }
/* Official controls are a documentary layer, separate from computed budget signals. */
.control-panel { margin:28px 0 34px; border:1px solid #b8cadc; border-top:5px solid #668cb3; border-radius:22px; background:linear-gradient(125deg,#e9f1fa,#f3f0f8); padding:30px; }
.control-heading { display:flex; justify-content:space-between; gap:24px; align-items:center; }
.control-heading .eyebrow { color:#496986; }
.control-heading h3 { font-size:28px; line-height:1.35; margin:12px 0; letter-spacing:-.6px; }
.control-heading p { font-size:18px; margin:0; line-height:1.6; }
.control-symbol { display:grid; place-items:center; background:#d9e6f4; color:#4c759c; border-radius:22px; min-width:74px; height:86px; font-size:49px; transform:rotate(5deg); }
.control-notice { margin:24px 0 12px; padding:18px 20px; background:#ffffffb8; border-left:4px solid #7c9ab8; border-radius:0 12px 12px 0; display:grid; gap:5px; font-size:16px; line-height:1.6; }
.control-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:18px 0; }
.control-toolbar p { font-size:16px; line-height:1.6; margin:0; }
.control-toolbar button { flex-shrink:0; background:#fff; white-space:normal; }
.control-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.control-report { min-width:0; background:#fff; padding:24px; border:1px solid #cad5e1; border-radius:16px; box-shadow:0 5px 16px #335e8410; }
.control-report-top { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; align-items:center; }
.control-report-top .badge { background:#e9f0f8; color:#365c82; font-size:14px; white-space:normal; }
.control-report time { font-size:15px; font-weight:650; color:#526579; }
.control-report h4 { font-size:23px; line-height:1.4; margin:18px 0 9px; }
.control-institution { color:#526579; font-size:14px; letter-spacing:.3px; line-height:1.6; }
.control-period { display:grid; gap:6px; padding:14px; margin:20px 0; border-radius:10px; background:#f4f6fa; font-size:15px; line-height:1.6; }
.control-documents { display:grid; gap:20px; }
.control-documents>div { display:grid; gap:10px; }
.control-documents strong { color:#365c82; font-size:17px; }
.control-documents a,.control-source-links a { font-size:16px; line-height:1.6; text-underline-offset:4px; overflow-wrap:anywhere; }
.control-documents p,.control-documents small { margin:0; font-size:15px; line-height:1.65; color:#536466; }
.control-question { margin-top:22px; border-radius:12px; background:#f1ebf8; border:1px solid #d8c5e7; padding:17px; }
.control-question summary { color:#654183; font-size:17px; font-weight:700; line-height:1.6; cursor:pointer; }
.control-question p { font-size:16px; line-height:1.75; }
.control-question button { width:100%; background:#7f579b; white-space:normal; font-size:16px; }
.control-question small { display:block; font-size:14px; line-height:1.65; margin-top:14px; }
.control-date-details { font-size:14px; line-height:1.7; margin-top:18px; color:#536466; }
.control-method { margin-top:24px; padding-top:20px; border-top:1px solid #c6d3e1; font-size:15px; line-height:1.75; }
.control-method summary { font-size:17px; font-weight:650; cursor:pointer; }
.control-source-links { display:flex; flex-wrap:wrap; gap:12px 24px; }
.control-empty { grid-column:1/-1; padding:24px; border-radius:14px; background:#fff; font-size:17px; line-height:1.7; }
@media(max-width:1150px) { .control-results { grid-template-columns:1fr; } .control-toolbar { align-items:flex-start; flex-direction:column; } }
@media(max-width:650px) { .control-panel { padding:20px 14px; } .control-symbol { display:none; } .control-heading h3 { font-size:25px; } .control-report { padding:20px 16px; } .control-report h4 { font-size:22px; } .control-toolbar button { width:100%; } .control-question { padding:16px 12px; } }

.account-actions{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:650px){.account-actions button{padding:9px}.account-actions button span{display:none}}

.consent{position:fixed;bottom:18px;right:18px;max-width:430px;padding:22px;border:1px solid #bfcebb;border-radius:18px;background:#fafff5;box-shadow:0 10px 50px #24434426;z-index:100;font:16px/1.5 system-ui,sans-serif;color:#244344}.consent p{margin:10px 0 16px}.consent .actions{display:flex;gap:12px}.consent button{font:inherit;color:#326959;background:white;border:1px solid #a7c2ac;padding:10px 16px;border-radius:9px;cursor:pointer}@media(max-width:650px){.consent{left:14px;right:14px;bottom:14px;max-width:none}}

/* Official tricolour signature, shared across public and member pages. */
.brand img{display:block;width:100%;max-width:246px;height:auto}.brand{min-width:0}.report-logo{display:block;width:180px;height:auto;margin-bottom:24px}
