:root{--bg: #0f1419;--surface: #1a2332;--surface-2: #243044;--border: #2d3f56;--text: #e8edf4;--text-muted: #8b9cb3;--accent: #3b82f6;--accent-2: #10b981;--warning: #f59e0b;--danger: #ef4444;--legacy: #6366f1;--funded: #10b981;--catchup: #06b6d4;--other: #f59e0b;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;color:var(--text);background:var(--bg)}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:var(--bg)}#root{min-height:100vh}h1,h2,h3,h4{font-weight:600;letter-spacing:-.02em}.app{max-width:1400px;margin:0 auto;padding:1.25rem 1.5rem 2rem}.app-header{margin-bottom:1.25rem;padding:1.25rem 1.25rem 0}.app-header-text{margin-bottom:1rem;min-width:0}.app-eyebrow{color:var(--accent);font-size:.7rem;font-weight:600;letter-spacing:.08em;margin-bottom:.35rem;text-transform:uppercase}.app-header h1{font-size:1.5rem;line-height:1.2;margin-bottom:.35rem}.app-subtitle{color:var(--text-muted);font-size:.875rem;line-height:1.45;max-width:640px}.tab-bar{border-top:1px solid var(--border);display:flex;gap:.25rem;margin:0 -1.25rem;padding:0 1rem}.tab-button{background:transparent;border:1px solid transparent;border-radius:8px 8px 0 0;color:var(--text-muted);cursor:pointer;display:flex;flex-direction:column;gap:.1rem;min-width:120px;padding:.625rem 1rem .75rem;text-align:left;transition:background .15s,border-color .15s,color .15s}.tab-button:hover{background:#ffffff08;color:var(--text)}.tab-button.active{background:var(--bg);border-color:var(--border);border-bottom-color:var(--bg);color:var(--text);margin-bottom:-1px;position:relative;z-index:1}.tab-label{font-size:.875rem;font-weight:600}.tab-hint{color:var(--text-muted);font-size:.68rem}.tab-button.active .tab-hint{color:#7c8fa8}.header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header h1{font-size:1.75rem;margin-bottom:.5rem}.header p{color:var(--text-muted);max-width:900px}@media(max-width:768px){.tab-bar{overflow-x:auto}.tab-button{min-width:108px}}.tab-panel{animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.section-intro{color:var(--text-muted);font-size:.875rem;margin-bottom:1.25rem;max-width:800px}.controls-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1100px){.controls-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.controls-grid{grid-template-columns:1fr}}.control-group-panel h3{color:var(--accent);font-size:.95rem;margin-bottom:.35rem}.group-description{color:var(--text-muted);font-size:.75rem;margin-bottom:1rem}.control-hint{color:var(--text-muted);font-size:.7rem;margin-bottom:.25rem}.checkbox-label{align-items:center;cursor:pointer;display:flex!important;gap:.5rem;justify-content:flex-start!important}.personas-layout,.government-layout{display:flex;flex-direction:column;gap:1.5rem}.government-overview-row{align-items:stretch;display:grid;gap:1.25rem;grid-template-columns:minmax(280px,1fr) minmax(0,2fr)}.government-metrics-panel .metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}@media(max-width:1100px){.government-overview-row{grid-template-columns:1fr}}.persona-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.persona-card{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;cursor:pointer;padding:1rem;text-align:left;transition:border-color .15s,box-shadow .15s;width:100%}.persona-card:hover{border-color:var(--accent)}.persona-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.persona-card h4{font-size:.95rem;margin-bottom:.35rem}.persona-description{color:var(--text-muted);font-size:.75rem;margin-bottom:.75rem}.persona-metrics{display:flex;flex-direction:column;gap:.35rem}.persona-metric-row{display:flex;font-size:.8rem;justify-content:space-between}.persona-metric-row span{color:var(--text-muted)}.layout{display:grid;grid-template-columns:340px 1fr;gap:1.5rem;align-items:start}@media(max-width:1100px){.layout{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.panel h2{font-size:.75rem;margin-bottom:1rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.controls-panel{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}.control-section{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.control-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.control-section h3{font-size:.85rem;margin-bottom:.75rem;color:var(--accent)}.control-group{margin-bottom:.75rem}.control-group--inline{align-items:center;display:grid;gap:.5rem .75rem;grid-template-columns:minmax(7rem,11rem) minmax(0,1fr) auto}.control-group--inline .control-hint{grid-column:1 / -1;margin-bottom:0}.control-group--inline label{color:var(--text-muted);font-size:.8rem;margin-bottom:0}.control-group--inline .value{color:var(--text);font-size:.8rem;font-weight:500;min-width:3.5rem;text-align:right;white-space:nowrap}.control-group--inline input[type=range]{min-width:0;width:100%}.control-group label{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted);margin-bottom:.25rem}.control-group label span.value{color:var(--text);font-weight:500}.control-group input[type=range]{width:100%;accent-color:var(--accent)}.control-group input[type=number],.control-group select{width:100%;padding:.4rem .5rem;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem}.control-group input[type=checkbox]{accent-color:var(--accent);margin-right:.5rem}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:1.5rem}.metric-card{background:var(--surface-2);border-radius:8px;padding:.875rem;border:1px solid var(--border)}.metric-card .label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem}.metric-card .value{font-size:1.1rem;font-weight:600}.metric-card .value.positive{color:var(--accent-2)}.metric-card .value.negative{color:var(--danger)}.charts-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}.chart-panel{min-height:360px}.chart-panel h3{font-size:1rem;margin-bottom:.25rem}.chart-panel .subtitle{font-size:.8rem;color:var(--text-muted);margin-bottom:1rem}.uprating-selector-table{border-collapse:collapse;font-size:.78rem;width:100%}.uprating-selector-table th,.uprating-selector-table td{padding:.45rem .35rem;text-align:center}.uprating-selector-table th[scope=row]{color:var(--text-muted);font-weight:500;text-align:left}.uprating-selector-table thead th{color:var(--text-muted);font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.uprating-selector-option{align-items:center;cursor:pointer;display:inline-flex;justify-content:center}.uprating-selector-option input[type=radio]{accent-color:var(--accent);cursor:pointer;height:1rem;width:1rem}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.chart-footnote{color:var(--text-muted);font-size:.8rem;margin-top:.75rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:900px){.two-col{grid-template-columns:1fr}}.legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem;font-size:.75rem}.legend-item{display:flex;align-items:center;gap:.35rem}.expenditure-tooltip{background:#243044;border:1px solid #2d3f56;border-radius:8px;font-size:.78rem;padding:.65rem .75rem}.expenditure-tooltip-label{color:var(--text-muted);font-size:.72rem;margin-bottom:.45rem}.expenditure-tooltip-row{align-items:center;display:grid;gap:.5rem;grid-template-columns:auto 1fr auto;margin-top:.25rem}.expenditure-tooltip-row--muted{color:var(--text-muted);font-size:.72rem;grid-template-columns:1fr auto}.expenditure-tooltip-row--saving{border-top:1px solid var(--border);margin-top:.45rem;padding-top:.45rem}.expenditure-tooltip-row--saving.positive strong{color:var(--accent-2)}.expenditure-tooltip-row--saving.negative strong{color:var(--danger)}.expenditure-tooltip-dot{border-radius:50%;height:8px;width:8px}.legend-dot{width:10px;height:10px;border-radius:2px}.control-group-panel--wide{grid-column:1 / -1}.means-test-layout{align-items:start;display:grid;gap:2rem;grid-template-columns:minmax(0,640px) minmax(200px,1fr);margin-top:.5rem}.means-test-phase-in{padding-top:.25rem}.means-test-phase-in-note{color:var(--text-muted);font-size:.75rem;line-height:1.45;margin:.75rem 0 0}.means-test-editor{margin-top:0;max-width:none}.means-test-grid{align-items:center;display:grid;gap:.5rem .75rem;grid-template-columns:6.5rem 6.5rem minmax(140px,1fr) 2rem}.means-test-grid--header{color:var(--text-muted);font-size:.7rem;font-weight:600;letter-spacing:.03em;margin-bottom:.25rem;text-transform:uppercase}.means-test-grid--row+.means-test-grid--row{margin-top:.35rem}.means-test-input{background:var(--bg);border:1px solid var(--border);border-radius:4px;box-sizing:border-box;color:var(--text);font-size:.8rem;min-width:0;padding:.35rem .5rem;width:100%}.means-test-open{color:var(--text-muted);font-size:.8rem}.means-test-entitlement{align-items:center;display:flex;gap:.5rem;min-width:0}.means-test-entitlement input[type=range]{accent-color:var(--accent);flex:1;min-width:0}.means-test-entitlement span{flex-shrink:0;font-size:.8rem;min-width:2.5rem;text-align:right}.means-test-remove{background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:.15rem .45rem}.means-test-remove:hover{border-color:var(--danger);color:var(--danger)}.means-test-actions{display:flex;gap:.5rem;margin-top:.75rem}.means-test-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-size:.75rem;padding:.4rem .75rem}.means-test-btn:hover{border-color:var(--accent)}.means-test-btn--muted{color:var(--text-muted)}.core-question{margin-top:2rem;padding:1.25rem;background:linear-gradient(135deg,#1e3a5f,#1a2332);border:1px solid var(--border);border-radius:12px}.core-question blockquote{font-style:italic;color:var(--text);margin-bottom:.75rem;font-size:.95rem}.core-question p{font-size:.85rem;color:var(--text-muted)}.recharts-default-tooltip{background:var(--surface-2)!important;border:1px solid var(--border)!important;border-radius:8px!important}
