:root{--app-accent: #2362a2;--app-accent-light: #e8f1fa;--gov-color-primary: #2362a2;--gov-color-primary-200: #e8f1fa;--gov-color-primary-400: #3b82f6;--gov-color-primary-600: #1a4971;--gov-color-secondary: #6b7280;--gov-color-success: #16a34a;--gov-color-error: #dc2626;--gov-color-warning: #f59e0b}*{box-sizing:border-box}body{margin:0;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:linear-gradient(135deg,#f8fafc,#e2e8f0);min-height:100vh;color:#1f2937;line-height:1.5}.app-header{background:linear-gradient(135deg,var(--app-accent) 0%,#1a4971 100%);color:#fff;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 20px #2362a24d}.app-header h1{margin:0 0 .5rem;font-size:2.5rem;font-weight:700}.app-header p{margin:0;opacity:.9;font-size:1.1rem}.container{max-width:1400px;margin:0 auto;padding:0 1.5rem 2rem}.column-toggles{background:#fff;border-radius:12px;padding:1rem 1.5rem;margin-bottom:1rem;box-shadow:0 2px 12px #0000000f}.column-toggles-label{font-weight:600;color:#374151;margin-right:1rem;font-size:.9rem}.column-toggles-list{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:.75rem}.column-toggle{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;padding:.375rem .75rem;border-radius:6px;transition:background .2s;font-size:.875rem;-webkit-user-select:none;user-select:none}.column-toggle:hover{background:#f3f4f6}.column-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--app-accent);cursor:pointer}.column-toggle-text{color:#4b5563}.column-toggle:has(input:checked) .column-toggle-text{color:#1f2937;font-weight:500}.data-table-wrapper{background:#fff;border-radius:12px;box-shadow:0 4px 24px #00000014;overflow:hidden;margin-bottom:2rem}.data-table{width:100%;border-collapse:collapse;font-size:.95rem}.data-table th{background:var(--app-accent);color:#fff;padding:1rem .75rem;text-align:left;font-weight:600;position:sticky;top:0;z-index:10}.data-table th:first-child{min-width:200px}.data-table td{padding:.875rem .75rem;border-bottom:1px solid #e5e7eb}.data-table tbody tr:hover{background:var(--app-accent-light)}.data-table tbody tr:last-child td{border-bottom:none}.number-cell{text-align:right;font-variant-numeric:tabular-nums;font-family:Roboto Mono,monospace}.category-cell{font-weight:500;color:#1f2937}.note-row{background:#f9fafb}.note-row:hover{background:#f3f4f6!important}.note-cell-full{font-size:.8rem;color:#6b7280;padding:.5rem .75rem!important;border-bottom:2px solid #e5e7eb!important;font-style:italic}.highlight-row{background:linear-gradient(90deg,#fef3c7,#fde68a)}.highlight-row:hover{background:linear-gradient(90deg,#fde68a,#fcd34d)!important}.summary-row{background:#f0fdf4;font-weight:600}.summary-row:hover{background:#dcfce7!important}.ratio-row{background:#faf5ff}.ratio-row:hover{background:#f3e8ff!important}.filters-section{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 12px #0000000f}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;align-items:end}.person-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.person-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 16px #00000014;transition:transform .2s,box-shadow .2s;cursor:pointer;border:2px solid transparent;overflow:visible;position:relative}.person-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #0000001f}.person-card.selected{border-color:var(--app-accent);background:var(--app-accent-light)}.person-card h3{margin:0 0 1rem;color:var(--app-accent);font-size:1.25rem;text-align:center;display:flex;align-items:center;justify-content:center;gap:.5rem;overflow:visible;position:relative}.person-card-info{display:inline-flex;align-items:center;justify-content:center;color:#9ca3af;cursor:help;transition:color .2s}.person-card-info:hover{color:var(--app-accent)}.tooltip-wrapper{position:relative;display:inline-flex;align-items:center}.tooltip-trigger{display:inline-flex;cursor:help}.tooltip-trigger:focus{outline:2px solid var(--app-accent);outline-offset:2px;border-radius:50%}.tooltip-popup{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);z-index:9999;pointer-events:none;animation:tooltipShow .2s ease-out}.tooltip-content{display:block;width:320px;max-width:90vw;padding:12px 16px;background:#1e293b;color:#fff;font-size:.8rem;font-weight:400;line-height:1.5;border-radius:8px;box-shadow:0 4px 20px #00000040;text-align:left}.tooltip-arrow{position:absolute;left:50%;top:100%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #1e293b}@keyframes tooltipShow{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.person-card-content{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.person-card-stats{flex:1}.person-card .salary{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.person-card .state-cost{color:#dc2626}.person-card .remaining{color:#16a34a}.stat-label{font-size:.8rem;color:#6b7280;margin-bottom:.125rem}.mini-pie-container{flex-shrink:0;text-align:center}.mini-pie-svg{width:90px;height:90px}.mini-pie-segment{transition:stroke-dashoffset .6s ease-out}.mini-pie-text{font-size:1rem;font-weight:700;fill:#1f2937}.mini-pie-label{font-size:.65rem;color:#6b7280;text-transform:uppercase;letter-spacing:.03em;margin-top:.25rem}.person-card-breakdown{border-top:1px solid #e5e7eb;padding-top:.75rem;margin-top:.5rem}.breakdown-row{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.85rem}.breakdown-row.total{font-weight:600;color:#1f2937}.breakdown-color{width:10px;height:10px;border-radius:2px;flex-shrink:0}.breakdown-color.state{background:#dc2626}.breakdown-color.remaining{background:#16a34a}.breakdown-label{flex:1;color:#4b5563}.breakdown-value{font-weight:600;font-variant-numeric:tabular-nums;font-size:.85rem}.breakdown-value.state-cost{color:#dc2626}.breakdown-value.remaining{color:#16a34a}.breakdown-divider{height:1px;background:#e5e7eb;margin:.5rem 0}.app-footer{margin-top:3rem;padding:1.5rem 2rem;background:#f9fafb;border-top:1px solid #e5e7eb;text-align:center}.app-footer p{margin:0;font-size:.875rem;color:#6b7280}.app-footer a{color:var(--app-accent);text-decoration:none;font-weight:500}.app-footer a:hover{text-decoration:underline}.footnotes-section{background:#f9fafb;border-radius:12px;padding:1.5rem;margin-top:2rem}.footnotes-section h3{margin:0 0 1rem;color:#374151}.footnote{font-size:.875rem;color:#4b5563;margin-bottom:.75rem;padding-left:1rem;border-left:3px solid #d1d5db}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.loading-spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:var(--app-accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-container{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:2rem;text-align:center;color:#dc2626}.table-scroll{overflow-x:auto}.year-badge{display:inline-block;background:#fff3;padding:.25rem .75rem;border-radius:20px;font-size:.9rem;margin-left:1rem}.format-number{color:#1f2937}.format-percent{color:#7c3aed;font-weight:600}.tabs-container{margin-bottom:1.5rem}.chart-container{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 24px #00000014;margin-bottom:2rem}.bar-chart{display:flex;flex-direction:column;gap:.75rem}.bar-row{display:flex;align-items:center;gap:1rem}.bar-label{width:200px;font-size:.875rem;color:#374151;flex-shrink:0}.bar-container{flex:1;height:28px;background:#e5e7eb;border-radius:4px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--app-accent) 0%,#3b82f6 100%);border-radius:4px;transition:width .5s ease-out;display:flex;align-items:center;justify-content:flex-end;padding-right:.5rem;color:#fff;font-size:.75rem;font-weight:600;min-width:fit-content}.bar-fill.state-cost-bar{background:linear-gradient(90deg,#dc2626,#ef4444)}.bar-fill.remaining-bar{background:linear-gradient(90deg,#16a34a,#22c55e)}.bar-value{width:100px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:#1f2937}.tabs-nav{display:flex;gap:0;background:#fff;border-radius:12px;padding:.5rem;box-shadow:0 2px 12px #0000000f;margin-bottom:1.5rem}.tab-button{flex:1;padding:.875rem 1.5rem;border:none;background:transparent;font-size:1rem;font-weight:500;color:#6b7280;cursor:pointer;border-radius:8px;transition:all .2s}.tab-button:hover{background:#f3f4f6;color:#374151}.tab-button.active{background:var(--app-accent);color:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;border:2px solid transparent}.btn-primary{background:var(--app-accent);color:#fff;border-color:var(--app-accent)}.btn-primary:hover{background:#1a4971;border-color:#1a4971}.btn-outline{background:transparent;color:var(--app-accent);border-color:var(--app-accent)}.btn-outline:hover{background:var(--app-accent-light)}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.input-field{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:border-color .2s}.input-field:focus{outline:none;border-color:var(--app-accent)}.input-field::placeholder{color:#9ca3af}@media(max-width:768px){.app-header h1{font-size:1.75rem}.person-cards{grid-template-columns:repeat(2,1fr)}.person-card{padding:1rem}.person-card h3{font-size:1rem;margin-bottom:.75rem}.person-card-content{flex-direction:column;gap:.75rem}.mini-pie-svg{width:70px;height:70px}.person-card .salary{font-size:1.1rem}.breakdown-row,.breakdown-value{font-size:.75rem}.bar-label{width:120px;font-size:.75rem}.data-table{font-size:.85rem}.data-table th,.data-table td{padding:.5rem}.tabs-nav{flex-wrap:wrap}.tab-button{flex:1 1 45%}}.note-with-tooltips{position:relative}.footnote-ref{color:var(--app-accent);font-weight:600}.footnote-ref.has-tooltip{cursor:help;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.footnote-ref.has-tooltip:hover{color:#1a4971;background:var(--app-accent-light);border-radius:2px;padding:0 2px;margin:0 -2px}.footnote-tooltip{position:fixed;z-index:1000;max-width:400px;padding:.75rem 1rem;background:#1f2937;color:#fff;font-size:.85rem;line-height:1.5;border-radius:8px;box-shadow:0 10px 40px #0000004d;pointer-events:none;animation:tooltipFadeIn .15s ease-out;margin-top:-8px}.footnote-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:8px solid transparent;border-top-color:#1f2937}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%,-100%) translateY(4px)}to{opacity:1;transform:translate(-50%,-100%) translateY(0)}}.pie-charts-section{margin-top:2rem}.pie-charts-section h3{margin:0 0 .5rem;color:#374151;font-size:1.5rem}.pie-charts-subtitle{margin:0 0 1.5rem;color:#6b7280;font-size:.95rem}.pie-charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.pie-chart-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 16px #00000014;text-align:center}.pie-chart-card h4{margin:0 0 1rem;color:var(--app-accent);font-size:1.1rem}.pie-chart-container{display:flex;justify-content:center;margin-bottom:1rem}.pie-chart-svg{width:180px;height:180px}.pie-segment{transition:stroke-dashoffset .8s ease-out}.pie-center-text{font-size:1.5rem;font-weight:700;fill:#1f2937}.pie-center-label{font-size:.7rem;fill:#6b7280;text-transform:uppercase;letter-spacing:.05em}.pie-legend{text-align:left}.pie-legend-item{display:flex;align-items:center;gap:.5rem;padding:.375rem 0;font-size:.875rem}.pie-legend-item.total{font-weight:600;color:#1f2937}.pie-legend-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.pie-legend-color.state-color{background:#dc2626}.pie-legend-color.remaining-color{background:#16a34a}.pie-legend-label{flex:1;color:#4b5563}.pie-legend-value{font-weight:600;font-variant-numeric:tabular-nums;color:#1f2937}.pie-legend-divider{height:1px;background:#e5e7eb;margin:.5rem 0}@media(max-width:768px){.pie-charts-grid{grid-template-columns:repeat(2,1fr)}.pie-chart-svg{width:140px;height:140px}.pie-chart-card{padding:1rem}}
