/* Budget-law analysis: scoped additions to the existing dashboard. */
.legal-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 23px}
.legal-card{--legal-accent:#7c8879;--legal-tint:#f1f4ed;background:#fff;border:1px solid var(--line,#dfe5dd);border-top:3px solid var(--legal-accent);border-radius:8px;padding:18px 17px 16px;min-width:0;box-shadow:var(--shadow,0 2px 3px #19312606)}
.legal-card.status-fail,.legal-verdict.status-fail{--legal-accent:#ad4e42;--legal-tint:#faf0ed}
.legal-card.status-pass,.legal-verdict.status-pass{--legal-accent:#3d7650;--legal-tint:#edf4e9}
.legal-card.status-unknown,.legal-verdict.status-unknown{--legal-accent:#7a8578;--legal-tint:#f1f3ee}
.legal-card.status-conditional,.legal-verdict.status-conditional{--legal-accent:#ab813d;--legal-tint:#fbf4e5}
.legal-card h2,.legal-card h3{font-size:13px;line-height:1.45;margin:11px 0 9px;font-weight:700;color:#202b27;letter-spacing:0}
.legal-card p{font-size:11px;line-height:1.6;color:#596653;margin:9px 0 0}
.legal-status{display:inline-block;max-width:100%;border:1px solid var(--legal-accent,#7c8879);border-radius:4px;background:var(--legal-tint,#f1f4ed);padding:3px 7px;font-size:9px;line-height:1.4;font-weight:700;color:#202b27;letter-spacing:.2px}
.legal-status.status-fail{border-color:#ad4e42;background:#faf0ed}.legal-status.status-pass{border-color:#3d7650;background:#edf4e9}.legal-status.status-unknown{border-color:#7a8578;background:#f1f3ee}.legal-status.status-conditional{border-color:#ab813d;background:#fbf4e5}
.legal-amount{display:block;font-size:25px;line-height:1.15;font-weight:600;letter-spacing:-.7px;font-variant-numeric:tabular-nums;color:#202b27;margin:10px 0 4px;overflow-wrap:anywhere}
.legal-amount small{font-size:12px;font-weight:400;letter-spacing:0}
.legal-card .legal-note{font-size:10px;line-height:1.55;margin-top:9px}
.legal-subnav{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 23px;padding-bottom:18px;border-bottom:1px solid var(--line,#dfe5dd)}
.legal-subnav a{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border:1px solid #cdd8c7;border-radius:5px;background:#fff;color:#28432d;font-size:11px;font-weight:600;text-decoration:none;line-height:1.4}
.legal-subnav a:hover{background:#eaf0e4;border-color:#8da883}.legal-subnav a:focus-visible{outline:3px solid #b28d44;outline-offset:3px}
.legal-scenario{scroll-margin-top:150px}.legal-scenario h2{font-size:19px;line-height:1.35;margin-bottom:9px;letter-spacing:-.25px}.legal-scenario h3{font-size:14px;line-height:1.4;margin:22px 0 12px}.legal-scenario>.legal-note{margin:0 0 18px;max-width:950px}
.legal-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 19px;margin:20px 0 23px}
.legal-field{min-width:0;display:flex;flex-direction:column;gap:6px}.legal-field.wide{grid-column:1/-1}
.legal-field label{display:block;font-size:11px;line-height:1.45;font-weight:700;color:#374c34}
.legal-field input,.legal-field select,.legal-evidence input,.legal-evidence textarea{display:block;width:100%;max-width:100%;min-height:40px;border:1px solid #bdcdb5;border-radius:5px;background:#fff;padding:9px 11px;color:#202b27;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.45}
.legal-field input[type=number]{font-variant-numeric:tabular-nums}.legal-field input::placeholder,.legal-evidence input::placeholder,.legal-evidence textarea::placeholder{color:#7c8975;opacity:1}
.legal-field input:focus,.legal-field select:focus,.legal-evidence input:focus,.legal-evidence textarea:focus{border-color:#567d47;outline:2px solid #dce9d1;outline-offset:1px}
.legal-field input:disabled,.legal-field select:disabled{background:#eef2e8;color:#62705a;cursor:not-allowed}.legal-field input[aria-invalid=true],.legal-field select[aria-invalid=true]{border-color:#ad4e42;background:#fff9f7;outline-color:#efd4ce}
.legal-field small{font-size:10px;line-height:1.5;color:#64715d;display:block}.legal-field .legal-input-unit{position:relative}.legal-field .legal-input-unit input{padding-right:29px}.legal-field .legal-input-unit span{position:absolute;right:11px;top:10px;font-size:12px;color:#5b7051}
.legal-evidence{margin:17px 0}.legal-evidence label{display:block;font-size:11px;line-height:1.5;font-weight:700;color:#374c34;margin-bottom:6px}.legal-evidence textarea{min-height:85px;resize:vertical}.legal-evidence small{display:block;margin-top:6px;font-size:10px;color:#64715d}
.legal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:17px 0 20px}.legal-actions .button{min-height:38px}.legal-actions .legal-saved{margin-left:5px}
.legal-saved{font-size:10px;line-height:1.5;color:#65735d}.legal-note{font-size:11px;line-height:1.65;color:#5c6b53}.legal-note strong{color:#2b4429}.legal-note a{color:#2d5229;text-underline-offset:3px}.legal-note:empty,.legal-saved:empty{display:none}
.legal-results{margin:18px 0;overflow-x:auto;border:1px solid var(--line,#dfe5dd);border-radius:7px;background:#fff;scrollbar-width:thin;scrollbar-color:#a9b8a2 #edf1e9}.legal-results table{width:100%;border-collapse:collapse;font-size:12px}.legal-results th{font-size:10px;letter-spacing:.25px;line-height:1.4;white-space:normal;padding:12px 14px;background:#eef2e9;color:#52654a}.legal-results td{padding:13px 14px;vertical-align:top;line-height:1.5;border-bottom:1px solid #e4ebde}.legal-results tr:last-child td{border-bottom:0}.legal-results td.numeric,.legal-results th.numeric{font-variant-numeric:tabular-nums;white-space:nowrap}.legal-results td:first-child{min-width:165px}.legal-results td .legal-note{margin:5px 0 0;font-size:10px}.legal-results .legal-status{font-size:9px;white-space:normal}.legal-results .legal-formula{margin:7px 0 0;padding:8px 10px;font-size:10px}
.legal-formula{font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.7;font-variant-numeric:tabular-nums;color:#30452d;background:#edf2e7;border:1px solid #dbe5d2;border-left:3px solid #8da47f;border-radius:4px;padding:12px 15px;margin:15px 0;overflow-wrap:anywhere}.legal-formula strong{color:#1c381e}.legal-formula code{font-family:Arial,Helvetica,sans-serif;font-size:inherit}
.legal-detail{border:1px solid var(--line,#dfe5dd);border-radius:6px;background:#fff;margin:13px 0;scroll-margin-top:150px}.legal-detail summary{padding:14px 17px;font-size:12px;line-height:1.5;font-weight:600;color:#2f482c;cursor:pointer}.legal-detail[open] summary{border-bottom:1px solid var(--line,#dfe5dd);background:#f7f9f3;border-radius:6px 6px 0 0}.legal-detail>p,.legal-detail>ul,.legal-detail>.legal-note,.legal-detail>.legal-formula,.legal-detail>.legal-list{margin:15px 18px}.legal-detail>.legal-results{margin:15px 18px 18px}.legal-detail>.legal-form-grid{margin:18px}.legal-detail>.legal-actions{margin:16px 18px}
.legal-list{display:grid;grid-template-columns:minmax(140px,.55fr) minmax(0,1.45fr);gap:0;margin:13px 0;font-size:11px;line-height:1.6}.legal-list dt{font-weight:700;color:#385032;padding:10px 13px 10px 0;border-bottom:1px solid #e7eddf}.legal-list dd{margin:0;padding:10px 0;border-bottom:1px solid #e7eddf;color:#5a6b51}.legal-list dt:last-of-type,.legal-list dd:last-of-type{border-bottom:0}.legal-list a{color:#2d5229}
.legal-badge{display:inline-block;max-width:100%;padding:3px 7px;border:1px solid #ccd9c2;border-radius:3px;background:#eef4e8;color:#385231;font-size:9px;font-weight:600;line-height:1.4}.legal-badge+.legal-badge{margin-left:4px}
.legal-validation{padding:12px 15px;border:1px solid #dfbbb3;border-left:3px solid #ad4e42;border-radius:5px;background:#faf0ed;color:#713d32;font-size:11px;line-height:1.6;margin:14px 0}.legal-validation strong{display:block;color:#69362c;margin-bottom:4px}.legal-validation:empty{display:none}.legal-validation ul{margin:5px 0 0;padding-left:18px}
.legal-verdict{--legal-accent:#7c8879;--legal-tint:#f1f4ed;background:var(--legal-tint);border:1px solid #d9e0d2;border-left:4px solid var(--legal-accent);border-radius:6px;padding:17px 19px;margin:20px 0;color:#202b27;font-size:12px;line-height:1.65}.legal-verdict h3{font-size:15px;line-height:1.4;margin:0 0 8px;color:#202b27}.legal-verdict p{margin:6px 0 0}.legal-verdict .legal-status{margin:0 0 8px}.legal-verdict .legal-amount{margin:9px 0 8px}.legal-verdict .legal-note{color:#4f5e47}
.legal-chart{margin:17px 0}.legal-chart meter{width:100%;height:15px;display:block;accent-color:#517c41}.legal-chart>div{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#5b6d51;margin-top:5px}.legal-chart meter::-webkit-meter-bar{background:#e8eedf;border:0;border-radius:4px}.legal-chart meter::-webkit-meter-optimum-value{background:#517c41;border-radius:4px}.legal-chart meter::-webkit-meter-suboptimum-value{background:#ab813d;border-radius:4px}.legal-chart meter::-webkit-meter-even-less-good-value{background:#ad4e42;border-radius:4px}
@media(max-width:1100px){.legal-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.legal-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 17px}.legal-card{padding:17px}.legal-amount{font-size:25px}.legal-results th,.legal-results td{padding:11px 12px}}
@media(max-width:700px){.legal-summary{gap:10px;margin-bottom:19px}.legal-card{padding:14px 12px;border-radius:6px}.legal-card h2,.legal-card h3{font-size:12px;margin-top:10px}.legal-card p{font-size:10px}.legal-amount{font-size:22px;letter-spacing:-.7px}.legal-status{font-size:8px;padding:3px 6px}.legal-form-grid{grid-template-columns:1fr;gap:16px;margin:17px 0}.legal-field label{font-size:11px}.legal-field input,.legal-field select,.legal-evidence input,.legal-evidence textarea{font-size:16px;min-height:43px}.legal-field small{font-size:10px}.legal-scenario h2{font-size:17px}.legal-scenario h3{font-size:13px}.legal-subnav{gap:6px;padding-bottom:15px;margin-bottom:18px}.legal-subnav a{font-size:10px;padding:7px 9px;min-height:33px}.legal-actions{gap:7px}.legal-actions .button{flex:1;min-width:120px;font-size:11px;white-space:normal;line-height:1.4}.legal-actions .legal-saved{flex-basis:100%;margin:4px 0 0}.legal-results table{min-width:570px}.legal-results th{font-size:9px}.legal-results td{font-size:11px;padding:11px}.legal-results td:first-child{min-width:155px}.legal-results .legal-status{font-size:8px}.legal-formula{font-size:11px;padding:11px 12px}.legal-note{font-size:10px}.legal-detail summary{font-size:11px;padding:13px 14px}.legal-detail>p,.legal-detail>ul,.legal-detail>.legal-note,.legal-detail>.legal-formula,.legal-detail>.legal-list{margin:13px 14px}.legal-detail>.legal-results{margin:13px 14px}.legal-detail>.legal-form-grid{margin:15px 14px}.legal-detail>.legal-actions{margin:14px}.legal-list{grid-template-columns:1fr;font-size:10px}.legal-list dt{padding:10px 0 3px;border-bottom:0}.legal-list dd{padding:0 0 10px}.legal-validation{padding:11px 13px;font-size:10px}.legal-verdict{padding:14px;font-size:11px;margin:18px 0}.legal-verdict h3{font-size:14px}.legal-scenario,.legal-detail{scroll-margin-top:185px}}
@media(max-width:380px){.legal-summary{grid-template-columns:1fr}.legal-card{padding:15px}.legal-amount{font-size:25px}.legal-status{font-size:9px}.legal-card h2,.legal-card h3{font-size:13px}}
@media print{.legal-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.legal-card{padding:10px;border-color:#aaa;box-shadow:none;break-inside:avoid}.legal-card h2,.legal-card h3{font-size:10pt}.legal-card p,.legal-note{font-size:8pt;color:#333}.legal-amount{font-size:17pt}.legal-status,.legal-badge{font-size:7pt;color:#000}.legal-subnav,.legal-actions,.legal-scenario .legal-form-grid,.legal-evidence,.legal-saved,.legal-field input,.legal-field select,.legal-field textarea{display:none!important}.legal-scenario h2{font-size:13pt;break-after:avoid}.legal-scenario h3{font-size:10pt;break-after:avoid}.legal-results{overflow:visible;border-color:#aaa}.legal-results table{min-width:0!important;table-layout:auto;width:100%;font-size:8pt}.legal-results td:first-child{min-width:0}.legal-results th,.legal-results td{font-size:8pt;padding:7px;white-space:normal!important;overflow-wrap:anywhere}.legal-results thead{display:table-header-group}.legal-results tr{break-inside:avoid}.legal-results td.numeric,.legal-results th.numeric{white-space:normal!important}.legal-formula{font-size:8pt;background:#f5f5f5;border-color:#aaa;break-inside:avoid}.legal-detail{break-inside:auto}.legal-detail summary{font-size:9pt;break-after:avoid}.legal-list{font-size:8pt}.legal-verdict,.legal-validation{font-size:9pt;break-inside:avoid}.legal-verdict h3{font-size:11pt}.legal-status,.legal-card,.legal-verdict,.legal-badge,.legal-chart meter{print-color-adjust:exact;-webkit-print-color-adjust:exact}.legal-chart{break-inside:avoid}}

#legal-metrics-result,#legal-exceptions{scroll-margin-top:165px}
@media print{.legal-verdict .legal-form-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))}.legal-scenario{display:none!important}}

/* Traffic-light states remain explicit in both text and colour. */
.legal-card.status-pass,.legal-verdict.status-pass,.legal-status.status-pass,.legal-result-value.status-pass,.legal-status-legend .status-pass{--legal-accent:#166534;--legal-tint:#e8f5eb;--legal-state-ink:#166534;--legal-pill-bg:#166534;--legal-pill-ink:#fff}
.legal-card.status-fail,.legal-verdict.status-fail,.legal-status.status-fail,.legal-result-value.status-fail,.legal-status-legend .status-fail{--legal-accent:#b42318;--legal-tint:#ffebe7;--legal-state-ink:#a32016;--legal-pill-bg:#b42318;--legal-pill-ink:#fff}
.legal-card.status-unknown,.legal-verdict.status-unknown,.legal-status.status-unknown,.legal-result-value.status-unknown,.legal-status-legend .status-unknown,.legal-card.status-conditional,.legal-verdict.status-conditional,.legal-status.status-conditional,.legal-result-value.status-conditional,.legal-status-legend .status-conditional{--legal-accent:#a66b00;--legal-tint:#fff4bf;--legal-state-ink:#714b00;--legal-pill-bg:#ffe38a;--legal-pill-ink:#714b00}
.legal-card.status-not_required,.legal-verdict.status-not_required,.legal-status.status-not_required,.legal-result-value.status-not_required,.legal-status-legend .status-not_required,.legal-card.status-not-required,.legal-status.status-not-required{--legal-accent:#7a8178;--legal-tint:#f0f2ee;--legal-state-ink:#4d574b;--legal-pill-bg:#e2e6df;--legal-pill-ink:#3e483c}
.legal-card{background:var(--legal-tint,#f0f2ee);border-top-width:5px;border-top-color:var(--legal-accent,#7a8178)}
.legal-card .legal-amount,.legal-verdict .legal-amount{color:var(--legal-state-ink,#4d574b);font-weight:700}
.legal-card .legal-status,.legal-verdict .legal-status,.legal-status.status-pass,.legal-status.status-fail,.legal-status.status-unknown,.legal-status.status-conditional,.legal-status.status-not_required,.legal-status.status-not-required{background:var(--legal-pill-bg,#e2e6df);color:var(--legal-pill-ink,#3e483c);border-color:var(--legal-accent,#7a8178);font-weight:700;padding:4px 8px;letter-spacing:.1px}
.legal-result-value{font-weight:700;font-variant-numeric:tabular-nums}
.legal-result-value.status-pass,.legal-result-value.status-fail,.legal-result-value.status-unknown,.legal-result-value.status-conditional,.legal-result-value.status-not_required{color:var(--legal-state-ink,#4d574b)}
.legal-status-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 20px;font-size:11px;line-height:1.5;color:#3d4939}
.legal-status-legend>span,.legal-status-legend>div,.legal-status-legend .legal-legend-item{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:6px 10px;border:1px solid var(--legal-accent,#b7c1b0);border-left-width:4px;border-radius:4px;background:var(--legal-tint,#f0f2ee);color:var(--legal-state-ink,#4d574b);font-weight:600}
.legal-status-legend .legal-status{margin:0}
@media(max-width:700px){.legal-status-legend{font-size:10px;gap:7px;margin-bottom:17px}.legal-status-legend>span,.legal-status-legend>div,.legal-status-legend .legal-legend-item{padding:5px 8px}.legal-card .legal-status{padding:4px 6px}}
@media print{.legal-status-legend{font-size:8pt;margin-bottom:12px;break-inside:avoid}.legal-status-legend>span,.legal-status-legend>div,.legal-status-legend .legal-legend-item,.legal-result-value{print-color-adjust:exact;-webkit-print-color-adjust:exact}.legal-card{border-top-color:var(--legal-accent,#7a8178)}}
