/* Chameleon visual language: forest, emerald and lime; financial semantics stay distinct. */
:root{
 --paper:#071912;--surface:#102b21;--ink:#f3f8ee;--muted:#adc3b3;--line:#345345;
 /* Sampled from the municipal homepage logo (dominant opaque fill):
    https://www.cm-benavente.pt/wp-content/uploads/2022/01/Logo_CMB_aldrabado.png */
 --benavente-green:#00735b;
 --brand-ramp:linear-gradient(105deg,var(--benavente-green) 0%,#43b884 52%,var(--accent) 100%);
 --brand-control:linear-gradient(105deg,var(--benavente-green) 0%,#54b27d 8%,#87dc78 56%,var(--accent) 100%);
 --accent:#b8f15a;--positive:#76edab;--negative:#ff858c;--caution:#ffce70;
 --forest:#b8f15a;--green:#50cda0;--sage:#789582;--ochre:#ffce70;--clay:#aacb6f;
 --soft:#183b2b;--warning:#302b20;--radius:18px;--shadow:0 14px 42px #030d0735;
 color-scheme:dark;
}
body{background:radial-gradient(ellipse at 95% 3%,#a4d74316,transparent 38%),radial-gradient(ellipse at 28% 0,#0f71482e,transparent 45%),var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.6}
h1,h2,h3{color:var(--ink)}h2{letter-spacing:-.45px}h3{letter-spacing:-.2px}
a{color:#def4cb}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-color:#c1ea9e;outline-offset:4px}
.sidebar,aside.sidebar{width:240px;padding:35px 17px 25px;background:radial-gradient(ellipse at 0 100%,#87b53022,transparent 54%),linear-gradient(155deg,var(--benavente-green) 0%,#0c4938 23%,#0a2118 57%,#1e3514);border-right:1px solid #65a38233;color:#fff;overflow-y:auto}
.brand{position:relative;padding:0 15px 28px;border-bottom-color:#82c2a02e;margin-bottom:20px}
.brand-logo {
  width: min(100%, 176px);
  padding: 10px 12px;
  background: #fff;
  border-radius: 8px;
}
.brand-logo img {
  display: block;
  width: 100%;
  height: auto;
}
.brand-budget .brand-year { margin-top: 2px; }
@media (max-width: 720px) {
  .sidebar .brand { align-items: center; gap: 16px; }
  .brand-logo { width: 130px; padding: 7px 10px; }
  .brand-budget .brand-title { margin: 0; font-size: 16px; }
  .brand-budget .brand-year { margin: 0; font-size: 30px; }
}
.brand-kicker{color:#bddfcd;font-size:10px;letter-spacing:2.2px;line-height:1.6}
.brand-title{font-size:25px;font-weight:700;letter-spacing:-.8px;line-height:1.17;color:#fff;margin-top:13px}
.brand-year{font-size:66px;font-weight:700;letter-spacing:-3px;color:var(--accent);line-height:1.1;margin-top:13px}
.nav{counter-reset:section;gap:6px}.nav button{counter-increment:section;position:relative;display:flex;align-items:center;gap:11px;color:#c9ded3;border:1px solid transparent;border-radius:10px;padding:12px 11px;font-size:12px;min-height:45px;font-weight:500}
.nav button::before{content:counter(section,decimal-leading-zero);color:#8bc0a4;font-size:10px;letter-spacing:.5px;min-width:15px;font-variant-numeric:tabular-nums}
.nav button:hover{background:#ffffff09;border-color:#82c2a02e;color:#fff}
.nav button.active{background:var(--brand-control);border-color:#cbf58b;box-shadow:0 6px 22px #9fd7461a;color:#102518;font-weight:700}
.nav button.active::before{color:#24442c}.sidebar-footer{padding:26px 15px 0;color:#b6d2c3;font-size:10px}.sidebar-footer span{color:#97b6a5}.sidebar-footer a{color:#def4cb}
main{margin-left:240px;padding:28px 38px 38px}
.topline{border-color:#609e7d35;margin-bottom:24px;padding-bottom:16px}.eyebrow{color:#b5d4c3;font-size:10px;letter-spacing:2px}
.status{background:#68b42624;border:1px solid #a4d27c42;color:#cceeaf;border-radius:30px;padding:5px 12px;letter-spacing:.9px}
.global-search-shell{position:relative;top:auto;background:linear-gradient(110deg,color-mix(in srgb,var(--benavente-green) 43%,#102b21),#25381c 95%);border:1px solid #66b58b36;border-top:1px solid #66b58b36;border-radius:14px;padding:15px 18px 13px;box-shadow:none;margin-bottom:30px}
.global-search-shell label{font-size:11px;color:#ddf2e7;letter-spacing:.1px}.global-search-shell p{color:#a8c7b6}.global-search-controls input{background:#092717;border-color:#34694d;color:#fff}.global-search-controls input::placeholder{color:#9cbbaa}
.page-head{position:relative;align-items:center;margin:0 0 30px;padding:5px 0 24px;border-bottom:1px solid #62a07f37}
.page-head::after{content:"";position:absolute;width:64px;height:3px;bottom:-2px;left:0;background:var(--brand-ramp);border-radius:3px}
.page-head h1{font-size:clamp(32px,3.4vw,51px);line-height:1.1;letter-spacing:-1.8px;font-weight:700;margin:5px 0 14px;color:#fff}
.lede{color:#b9d3c5;font-size:14px;line-height:1.65;max-width:800px}.head-actions{padding-top:0}
.button{background:#153a27;border:1px solid #45785d;color:#ebfbf2;border-radius:8px;min-height:39px;padding:8px 14px;font-size:12px}
.button:hover{background:#214733;border-color:#7baf7b;color:#fff}
.button.primary{background:var(--brand-control);border-color:#c8ee85;color:#102518;box-shadow:0 5px 18px #8dbf312a}
.button.primary:hover{background:linear-gradient(105deg,var(--benavente-green) 0%,#72c992 8%,#d0f780 100%);border-color:#d5f99d;color:#102518}
.text-link{color:#d3f0ba}.text-link:hover{color:#edf9e2}.muted{color:var(--muted)}
.metrics{gap:16px;margin-bottom:24px}.metric{position:relative;border-color:#60a17e3d;border-radius:16px;padding:23px 20px;background:linear-gradient(125deg,#173c2d,#1b3021);box-shadow:var(--shadow)}
.metric::before{content:"";display:block;width:27px;height:3px;border-radius:3px;background:var(--accent);margin-bottom:15px}
.metric-label{font-size:11px;line-height:1.5;color:#bcdaca;font-weight:500;margin-bottom:11px}.metric-value{font-size:34px;font-weight:700;letter-spacing:-1.3px;color:#fff;line-height:1.2}
.metric-detail{font-size:11px;color:#b0cbbd;line-height:1.5;margin-top:9px}.metric.warning .metric-value,.metric.negative .metric-value{color:#ffce70}
.metric.featured{background:linear-gradient(135deg,#306a4b,#38591b);border-color:#afd38f5c}.metric.featured .metric-value{color:#fff}
.metric.featured .metric-label,.metric.featured .metric-detail{color:#d1e4d1}.metric.featured::before{background:#c9edaa}
.panel{background:linear-gradient(115deg,#10301f,#13291d);border-color:#528b6d40;border-radius:18px;box-shadow:var(--shadow);padding:25px;margin-bottom:24px}
.panel-head{margin-bottom:23px}.panel-title{font-size:18px;font-weight:700;letter-spacing:-.45px;color:#f7fdfa}.subtitle{font-size:12px;color:#a7c7b6;line-height:1.6}
.grid-two{gap:24px;margin-bottom:24px}.chart-note{font-size:11px;color:#adc8ba;border-top-color:#53866b35}
.notice{background:linear-gradient(110deg,#1f311f,#1d301d);border-color:#82664466;border-left:3px solid #ffcb78;color:#ebd8bc;border-radius:12px;padding:17px 20px;font-size:12px}
.notice-title{color:#ffe0aa}.notice a,.notice button{color:#ffe0aa}.notice.neutral{background:#123a25;border-color:#418a63;border-left-color:#96dcb7;color:#cce7d9}.notice.neutral .notice-title{color:#f1fcf6}
.stacked-bar{height:28px;border-radius:8px;background:#1b402c}.stacked-segment{border-right-color:#10301f}.legend-row{border-bottom-color:#528b6d35;font-size:12px;padding:12px 0}
.legend button.legend-row:hover{background:#2b523d30}.legend-value{color:#f6fdf9}.legend-percent{color:#a7c6b5}.swatch{border-radius:3px}
.bar-row{color:#e5f6ed}.bar-top{font-size:12px}.bar-top strong{color:#f4fdf8}.bar-track{background:#1e412e;border-radius:5px;height:8px}.bar-fill{background:var(--brand-ramp);border-radius:5px}.bar-percent{color:#a8c7b6}
.filterbar{background:#102e1e;border-color:#2b4e3b;border-radius:13px;padding:18px}.field label{color:#bfdacc;font-size:11px}
.field input,.field select,input[type=search],select{background:#0a2718;border:1px solid #427158;color:#f1fcf6;border-radius:7px;font-size:13px;min-height:40px}
.field input::placeholder{color:#97b9a7}.field input:focus,.field select:focus{border-color:#aacf89}select option{background:#10301f;color:#f6fdf9}
.segmented{border-color:#3a664f;background:#0b2718;border-radius:10px;padding:4px;gap:4px}.segmented button{color:#b6d2c3;border-radius:7px}.segmented button:hover{color:#fff;background:#224532}.segmented button.active{background:var(--brand-control);color:#102518;box-shadow:none}
.results-summary,.results-head>span{color:#adc8ba}.results-summary strong{color:#f5fdf9}
.table-wrap{border-color:#2b4f3b;background:#0e2b1b;border-radius:13px;scrollbar-color:#68977e #0e2b1b}
table{font-size:12px;color:#e2f4ea}th{background:#163a27;color:#c0dccd;border-bottom-color:#3b6750;font-size:10px;letter-spacing:.75px;padding:14px 15px}td{border-bottom-color:#2b4f3b88;padding:16px 15px}tbody tr:hover{background:#1f433078}
.row-title,.row-title button{color:#f3fcf7;font-weight:600;font-size:13px}.row-meta{color:#a6c3b4;font-size:11px}.amount{color:#f3fdf8}.code{color:#afcdbd;font-size:11px}
.tag{background:#224432;border-color:#46745b;color:#d5e9de;border-radius:5px;font-size:10px;letter-spacing:0;padding:3px 7px}.tag.new{background:#183c37;border-color:#30745b;color:#8ee7b4}.tag.warning{background:#423325;border-color:#896c36;color:#ffdc8f}
.empty{background:#0e2b1b;border-color:#53896c;color:#bcd3c7;border-radius:12px}.empty strong{color:#f5fdf9}
.funding-line{color:#b7d3c4;border-bottom-color:#2b4f3b}.funding-line strong,.funding-line.total{color:#f4fdf8}
.mini-metrics{gap:16px}.mini-metrics>div{border-right-color:#3b644e}.mini-metrics .metric{background:#173826;border-color:#45725a;border-radius:12px;padding:17px 14px}.mini-metrics .metric::before{display:none}.mini-metrics strong,.mini-metrics .metric-value{color:#f6fdf9}.mini-metrics span{color:#b9d3c5}
.source-cards{gap:20px}.source-card{background:linear-gradient(130deg,#134229,#153015);border-color:#4c836644;border-radius:16px;padding:24px;color:#f6fdf9}.source-card:hover{background:linear-gradient(130deg,#165031,#1a371a);border-color:#8bb963}.source-card h2,.source-card h3{color:#fff}.source-card p{color:#b9d5c6}.source-card>span:last-child{color:#d3f0ba}
.method-list{color:#b9d4c6;font-size:13px}.method-list strong{color:#f3fcf7}details{background:#0f2e1d;border-color:#3a634d;border-radius:11px}summary{color:#eafbf2;padding:17px 20px}details[open] summary{border-bottom-color:#3a634d}
.year-bars .year-bar{background:#63bd63}.year-bars strong{color:#e8faf0}.year-bars label{color:#b1cdbe}
main>footer,footer{color:#8ebca3;border-top-color:#38624c;font-size:10px;line-height:1.7;margin-top:34px}
dialog#detail{background:linear-gradient(120deg,#123b25,#122912);border-color:#64987c70;border-radius:20px;color:#eafaf1;box-shadow:0 30px 100px #0009}
dialog::backdrop{background:#02140ab8;backdrop-filter:blur(7px)}.dialog-head{border-bottom-color:#406c55;padding:23px 28px}.dialog-head .eyebrow{color:#bbd5bb}
.close{background:#213e2e;border-color:#658c77;color:#eaf7ea;border-radius:7px}.close:hover{background:#284c28}
.detail-item{border-bottom-color:#39644d}.detail-item>span,.detail-item dt{color:#adccbb}.detail-item>strong,.detail-item dd{color:#f5fdf9}.dialog-footer{border-top-color:#3b644e}
.allocation-note{background:#1e392a;color:#cadfd4;border:1px solid #4b705c;border-radius:9px}.kpi-strip{border-top-color:#3b644e}.kpi-strip span{color:#b4cec0}.kpi-strip strong{color:#fff}
.funding-percentages span{background:#1a3d2a}.funding-source{background:#133422;border-color:#406c55;border-radius:10px}.funding-source span{color:#c6ddd1}.funding-source strong{color:#fff}.funding-source strong.not-indicated{color:#b9d5c6}
.funding-rp {
 --funding-tint:#a2edbb;
 --funding-accent:#217247;
}
.funding-ue {
 --funding-tint:#d5bcf4;
 --funding-accent:#694096;
}
.funding-em {
 --funding-tint:#ffd08b;
 --funding-accent:#885014;
}
:is(.funding-percentages, .funding-color-legend) > span:is(.funding-rp, .funding-ue, .funding-em),
.funding-source:is(.funding-rp, .funding-ue, .funding-em) {
 background:var(--funding-tint);
 border-left-color:var(--funding-accent);
 color:#15251c;
}
:is(.funding-rp, .funding-ue, .funding-em) > strong,
.funding-source:is(.funding-rp, .funding-ue, .funding-em) > :is(span, strong, .not-indicated) {
 color:inherit;
}
.funding-color-legend>span{padding:7px 12px;border-radius:6px;font-size:12px}
.theme-chips .button{background:#153725;border-color:#4a745e;color:#dff6ea}.theme-chips .button:hover{background:#1f421f;border-color:#9bce6e}.search-topic-note{color:#c0dbcd}.search-section-total{color:#ecfbec}.search-section-total span{color:#b7d0c3}.result-count{background:#224222;color:#e2ebdb}
#comparison-explorer,.legal-scenario,.legal-detail{scroll-margin-top:20px}
@media(min-width:1600px){main{padding:36px 54px}.metric-value{font-size:39px}.panel{padding:30px}.page-head h1{font-size:56px}}
@media(max-width:1250px){main{padding:25px}.metric{padding:20px 16px}.metric-value{font-size:29px}.panel{padding:21px}.page-head h1{font-size:38px}.sidebar,aside.sidebar{width:226px}main{margin-left:226px}}
@media(max-width:1000px){.sidebar,aside.sidebar{width:205px;padding:28px 13px}.nav button{font-size:11px;padding:11px 9px;gap:8px}.brand{padding-left:10px;padding-right:10px}.brand-title{font-size:23px}.brand-year{font-size:58px}main{margin-left:205px;padding:25px 22px}.metric-value{font-size:33px}.page-head{display:flex;align-items:flex-start}.page-head h1{font-size:36px}.head-actions{padding-top:7px}.grid-two{grid-template-columns:1fr}.source-cards{grid-template-columns:1fr}}
@media(max-width:720px){.sidebar,aside.sidebar{position:relative;width:100%;padding:21px 19px 0;overflow:visible;background:radial-gradient(ellipse at 95% 0,#87b53022,transparent 70%),linear-gradient(120deg,var(--benavente-green) 0%,#0c4938 33%,#1e3514)}.brand{padding:0 0 16px;margin-bottom:9px;gap:10px}.brand-kicker{font-size:9px;letter-spacing:2px}.brand-title{font-size:23px;margin-top:2px;line-height:1.3}.brand-year{font-size:25px;margin:0;letter-spacing:-1px;color:var(--accent)}.nav{padding-bottom:13px;gap:6px;overflow-x:auto}.nav button{padding:10px 12px;min-height:38px;font-size:11px}.nav button::before{font-size:9px;min-width:12px}.sidebar-footer{display:none}main{margin-left:0;padding:23px 16px 28px}.topline{margin-bottom:19px;padding-bottom:14px}.status{font-size:8px;padding:4px 8px}.eyebrow{font-size:9px;letter-spacing:1.3px}.global-search-shell{padding:14px;margin-bottom:25px;border-radius:12px}.global-search-controls input{font-size:16px}.global-search-shell p{font-size:10px}.page-head{display:block;margin-bottom:23px;padding-bottom:22px}.page-head h1{font-size:34px;letter-spacing:-1.2px}.lede{font-size:13px}.head-actions{padding-top:15px}.metrics{gap:12px}.metric{padding:17px 14px;border-radius:14px}.metric::before{margin-bottom:12px;width:22px}.metric-label{font-size:10px;min-height:29px;margin-bottom:8px}.metric-value{font-size:28px}.metric-detail{font-size:10px}.panel{padding:19px;border-radius:15px}.panel-title{font-size:17px}.subtitle{font-size:11px}.grid-two{gap:19px}.notice{padding:15px;font-size:11px;border-radius:11px}.field input,.field select,input[type=search],select{font-size:16px}.legend-row{font-size:12px}.bar-top{font-size:12px}.chart-note{font-size:10px}.row-title{font-size:12px}.row-meta{font-size:10px}.table-wrap table{min-width:640px}dialog#detail{width:calc(100% - 22px);border-radius:16px}.dialog-head{padding:20px 18px}.mini-metrics .metric{padding:14px 10px}.mini-metrics .metric-value{font-size:22px}.source-card h2{font-size:20px}#comparison-explorer{scroll-margin-top:20px}}
@media(max-width:380px){main{padding-left:12px;padding-right:12px}.metric-value{font-size:24px}.page-head h1{font-size:30px}.panel{padding:15px}.metric{padding-left:12px;padding-right:12px}}
@media print{
 :root{color-scheme:light;--paper:#fff;--surface:#fff;--ink:#111;--muted:#555;--line:#bbb;--accent:#4b8a14;--forest:#1c301c;--green:#4b7a4b;--soft:#eee;--positive:#18753c;--negative:#b42318;--caution:#765200}
 body,main{background:#fff;color:#111}main{margin:0;padding:0}.sidebar{display:none!important}
 h1,h2,h3,.page-head h1,.panel-title,.metric-value,.metric.featured .metric-value,.mini-metrics strong,.mini-metrics .metric-value,.row-title,.row-title button,.legend-value,.bar-top strong,.amount,.source-card h2,.source-card h3,.method-list strong,.search-section-total{color:#111}
 .page-head{border-bottom-color:#999}.page-head::after{display:none}.page-head h1{font-size:25pt}.lede,.subtitle,.metric-label,.metric-detail,.metric.featured .metric-label,.metric.featured .metric-detail,.row-meta,.chart-note,.code,.legend-percent,.bar-percent,.method-list,.source-card p,footer{color:#555}
 .metric,.metric.featured,.panel,.source-card,.table-wrap,details,.mini-metrics .metric{background:#fff;box-shadow:none;border-color:#bbb;border-radius:5px}.metric::before{display:none}.metric{padding:10px}.metric-value{font-size:18pt}.panel{padding:13px}
 table{color:#111}th{background:#eee;color:#333;border-color:#aaa}td{border-color:#ccc}tbody tr:hover{background:transparent}.notice,.notice.neutral{background:#fff;color:#333;border-color:#aaa}.notice-title,.notice.neutral .notice-title{color:#111}
 .tag,.tag.new,.tag.warning,.allocation-note{color:#333;background:#eee;border-color:#aaa}.funding-rp{--funding-tint:#e4f2e9;--funding-accent:#25834b}.funding-ue{--funding-tint:#eee5f7;--funding-accent:#7e4cb5}.funding-em{--funding-tint:#fff0dc;--funding-accent:#c8781b}
 .funding-percentages>span[class^="funding-"],.funding-color-legend>span{color:#111}.results-summary,.results-summary strong,summary{color:#333}.bar-track{background:#eee}
 .bar-row,.bar-top,.bar-top strong,.bar-top span,.funding-line,.funding-line strong,.funding-line.total,.source-card .eyebrow,.source-card>span:last-child{color:#222}
 .funding-source{background:#fff;border-color:#aaa}.funding-source strong,.funding-source span,.funding-source strong.not-indicated,.funding-source[class*="funding-rp"]>span,.funding-source[class*="funding-ue"]>span,.funding-source[class*="funding-em"]>span,.funding-source .not-indicated{color:#222}
}

.personnel-control {
 display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px;
 margin:0 0 20px; padding:15px 19px; background:var(--surface); border:1px solid var(--line); border-radius:12px;
}
.personnel-control h2 {margin:0; font-size:1rem; color:var(--ink)}
.personnel-control p {margin:4px 0 0; font-size:.84rem; color:var(--muted); line-height:1.45}
.personnel-options {display:flex; gap:4px; padding:3px; border:1px solid #719681; border-radius:10px; background:#0b2a20}
.personnel-options button {
 font:inherit; font-size:.875rem; font-weight:650; color:#e5f1e8; background:transparent; border:0;
 min-height:44px; padding:7px 15px; border-radius:7px; cursor:pointer;
}
.personnel-options button[aria-pressed="true"] {background:#c5ef81; color:#132508}
.personnel-options button[aria-pressed="false"]:hover {background:#27503d}
.personnel-options button:focus-visible {outline:3px solid white; outline-offset:1px}
@media(max-width:580px){
 .personnel-control {padding:14px}
 .personnel-options {width:100%}
 .personnel-options button {flex:1}
}
@media print {
 .personnel-control, .personnel-options {background:white; color:black; border-color:#999}
 .personnel-options button[aria-pressed="false"] {display:none}
 .personnel-options button[aria-pressed="true"] {color:black; background:white; min-height:0}
}
