@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Sora:wght@500;600;700&display=swap";:root{--ink-900: #172834;--ink-700: #2f4858;--ink-600: #476273;--teal-700: #056878;--canvas-100: #f0f5f4;--canvas-200: #f8f7f1;font-family:Manrope,sans-serif;line-height:1.5;font-weight:500;color:var(--ink-900);text-rendering:optimizeLegibility;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 10% 15%,rgba(8,107,124,.16),transparent 40%),radial-gradient(circle at 85% 0%,rgba(242,175,96,.18),transparent 36%),linear-gradient(180deg,var(--canvas-100),var(--canvas-200))}#root{min-height:100vh;width:100%}.app-shell{position:relative;max-width:1160px;margin:0 auto;padding:3rem 1.5rem 3.25rem}.aurora{position:absolute;inset:1rem 5rem auto;height:14rem;border-radius:999px;background:radial-gradient(circle at 10% 50%,rgba(4,116,134,.3),transparent 46%),radial-gradient(circle at 60% 40%,rgba(234,166,90,.35),transparent 50%),radial-gradient(circle at 85% 40%,rgba(20,65,88,.22),transparent 48%);filter:blur(20px);opacity:.9;animation:drift 12s ease-in-out infinite alternate;pointer-events:none}@keyframes drift{0%{transform:translateY(-8px) scale(.99)}to{transform:translateY(10px) scale(1.02)}}.hero{position:relative;z-index:1;margin-bottom:1.8rem}.kicker{margin:0;font-family:Sora,sans-serif;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--teal-700);font-weight:700}.hero h1{margin:.55rem 0 0;font-family:Sora,sans-serif;font-size:clamp(1.85rem,4vw,3.2rem);line-height:1.08;color:var(--ink-900);max-width:16ch}.hero-copy{max-width:68ch;margin-top:.95rem;color:var(--ink-700)}.jump-to-ranking{margin-top:.8rem;min-height:2.35rem;border-radius:999px;border:1px solid rgba(8,96,112,.35);background:#fffffff0;color:var(--ink-900);font-family:Manrope,sans-serif;font-weight:700;padding:.48rem .95rem;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,transform .14s ease}.jump-to-ranking:hover{border-color:#08607099;background:#e7f8faf0;transform:translateY(-1px)}.controls{position:relative;z-index:5;display:grid;grid-template-columns:minmax(220px,.88fr) minmax(280px,1.12fr) auto;gap:1rem;align-items:end;padding:1rem;margin-bottom:1rem;border-radius:1rem;background:linear-gradient(148deg,#f7fbfce6,#eff6f8eb);box-shadow:0 14px 35px #0f3a521c;border:1px solid rgba(6,84,96,.16)}.control{display:grid;gap:.38rem;min-width:0}.control-bracket{max-width:320px}.control-district{min-width:0}.label-title{font-size:.8rem;font-weight:700;color:var(--ink-700);letter-spacing:.03em;text-transform:uppercase}select{width:100%;min-width:0;min-height:2.6rem;border-radius:.75rem;border:1px solid rgba(14,93,110,.3);background:#fffffff2;color:var(--ink-900);padding:.52rem .8rem;font-size:.95rem;font-family:Manrope,sans-serif}select:focus{outline:3px solid rgba(18,118,135,.25);border-color:#12768780}.control-helper{color:var(--ink-600);font-size:.8rem;line-height:1.3}.n-badge{display:inline-flex;align-items:center;gap:.45rem;justify-self:end;align-self:center;white-space:nowrap;border-radius:999px;background:#0560701f;border:1px solid rgba(5,96,112,.22);color:var(--teal-700);font-weight:700;padding:.54rem .9rem}.district-filter{position:relative;z-index:6;justify-self:end;align-self:end}.district-filter summary{list-style:none;cursor:pointer}.district-filter summary::-webkit-details-marker{display:none}.district-filter summary:after{content:"▾";font-size:.82rem;color:var(--teal-700);transition:transform .14s ease}.district-filter[open] summary:after{transform:rotate(180deg)}.district-filter-menu{position:absolute;top:calc(100% + .6rem);right:0;z-index:30;width:min(360px,calc(100vw - 2rem));padding:.85rem;border-radius:1rem;border:1px solid rgba(8,96,112,.18);background:#fffffff7;box-shadow:0 18px 36px #0c2a3829;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.district-filter-intro{margin:0;color:var(--ink-700);font-size:.88rem;line-height:1.4}.district-filter-actions{display:flex;justify-content:flex-end;margin-top:.75rem}.district-filter-reset{min-height:2rem;border-radius:999px;border:1px solid rgba(8,96,112,.2);background:#ecf8fad9;color:#0f5f75;font-family:Manrope,sans-serif;font-size:.85rem;font-weight:700;padding:.4rem .8rem;cursor:pointer}.district-filter-reset:disabled{cursor:not-allowed;opacity:.55}.district-filter-list{display:grid;gap:.55rem;margin-top:.8rem;max-height:18rem;overflow-y:auto;padding-right:.15rem}.district-filter-option{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;padding:.55rem .6rem;border-radius:.8rem;border:1px solid rgba(13,89,103,.12);background:#f8fcfbe6;cursor:pointer}.district-filter-option input{margin-top:.2rem;accent-color:#006d77}.district-filter-option-copy{display:grid;gap:.14rem;min-width:0}.district-filter-option-name{color:var(--ink-900);font-size:.9rem;font-weight:700}.district-filter-option-status{color:var(--ink-600);font-size:.8rem}.district-filter-empty{margin:.8rem 0 0;color:var(--ink-700);font-size:.88rem}.chart-panel{position:relative;z-index:1;border-radius:1.2rem;background:linear-gradient(180deg,#ffffffd6,#fbfcf8eb);border:1px solid rgba(32,87,98,.17);box-shadow:0 16px 35px #0b29371a;padding:1rem}.chart-wrap{width:100%;min-height:530px;display:grid;gap:.75rem}.plot-layer{position:relative;width:100%;height:100%}.plotly-container{width:100%;height:530px}.plotly-container-passive{pointer-events:none}.chart-touch-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;border:0;padding:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.chart-touch-overlay:focus,.chart-touch-overlay:focus-visible,.chart-touch-overlay:active{outline:none;background:transparent}.hover-card{position:absolute;z-index:20;pointer-events:none;width:300px;border-radius:.75rem;background:#fffffff2;border:1px solid rgba(19,95,109,.25);box-shadow:0 10px 24px #0b283529;padding:.55rem .7rem}.hover-card-sheet{position:static;width:100%;pointer-events:auto;box-shadow:0 10px 24px #0b28351f}.hover-card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.hover-card-year{margin:0;font-weight:700;color:var(--ink-900);font-size:.83rem}.hover-card-close{min-height:1.9rem;border-radius:999px;border:1px solid rgba(8,96,112,.2);background:#ecf8fae0;color:#0f5f75;font-family:Manrope,sans-serif;font-size:.8rem;font-weight:700;padding:.28rem .7rem;cursor:pointer}.hover-card-row{margin:.2rem 0;display:grid;gap:.1rem}.hover-card-label{font-size:.78rem;color:var(--ink-700);font-weight:700}.hover-card-value{font-size:.8rem;color:var(--ink-900)}.hover-card-exclusion-note{font-size:.77rem;color:#8b4d11;font-weight:700}.hover-card-delta{font-size:.78rem;color:var(--teal-700);font-weight:700}.hover-card-cumulative{font-size:.78rem;color:var(--ink-700)}.hover-card-cumulative-delta{font-size:.78rem;color:#0b8065;font-weight:700}.methodology-note{margin:.75rem 0 0;color:var(--ink-600);font-size:.88rem}.tooltip-explainer{margin:.45rem 0 0;padding-left:1.1rem;color:var(--ink-700);font-size:.86rem;line-height:1.35;display:grid;gap:.25rem}.touch-tooltip-note{margin:.1rem 0 0;color:var(--ink-600);font-size:.84rem}.methodology-note-emphasis{color:#0f5f75;font-weight:700}.methodology-note-placeholder{visibility:hidden}.negotiation-panel{position:relative;z-index:1;margin-top:1rem;border-radius:1.2rem;background:linear-gradient(180deg,#ffffffd9,#f5f9fce6);border:1px solid rgba(32,87,98,.16);box-shadow:0 16px 35px #0b293714;padding:1rem}.ranking-controls{display:grid;gap:.9rem}.ranking-top-controls{display:grid;grid-template-columns:minmax(220px,360px) minmax(220px,360px);gap:1.1rem 1.8rem;align-items:end}.ranking-top-controls .control{min-width:0}.ranking-top-controls select{width:100%;min-width:0}.ranking-bracket-control,.ranking-rankby-control{width:100%}.ranking-yearline-group{display:grid;gap:.35rem}.ranking-yearline-label{margin:0;color:var(--ink-700);font-size:.9rem}.ranking-yearline{position:relative;height:44px;cursor:ew-resize;-webkit-user-select:none;user-select:none}.ranking-yearline-track{position:absolute;left:0;right:0;top:50%;height:4px;border-radius:999px;background:#0a5a673d;transform:translateY(-50%)}.ranking-yearline-fill{position:absolute;left:0;top:50%;height:4px;border-radius:999px;background:#086070cc;transform:translateY(-50%)}.ranking-yearline-thumb{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;border:2px solid rgba(8,96,112,.75);background:#fff;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0f3a5240}.negotiation-heading h2{margin:.85rem 0 0;font-family:Sora,sans-serif;font-size:1.14rem;color:var(--ink-900)}.negotiation-heading p{margin:.45rem 0 0;color:var(--ink-700);font-size:.9rem}.negotiation-subnote{margin:.45rem 0 0;color:var(--ink-600);font-size:.86rem}.negotiation-empty{margin:.75rem 0 0;color:var(--ink-700)}.negotiation-table-wrap{margin-top:.8rem;overflow-x:auto}.negotiation-table{width:100%;border-collapse:collapse;min-width:760px;background:#ffffffc7;border-radius:.8rem;overflow:hidden}.negotiation-table th,.negotiation-table td{padding:.58rem .62rem;text-align:left;border-bottom:1px solid rgba(24,82,95,.12);font-size:.85rem;white-space:nowrap}.negotiation-table th{font-family:Sora,sans-serif;color:var(--ink-900);background:#e6f5f7b8;font-size:.76rem;letter-spacing:.03em;text-transform:uppercase}.ranking-district-cell{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.ranking-district-badge{display:inline-flex;align-items:center;min-height:1.35rem;padding:0 .45rem;border-radius:999px;background:#e2f0f2f2;border:1px solid rgba(8,96,112,.14);color:var(--ink-700);font-size:.74rem;font-weight:700}.negotiation-table tr:last-child td{border-bottom:none}.negotiation-table tr.under-county td{background:#ffeeee7a}.negotiation-table tr.above-county td{background:#ecfdf76b}.negotiation-table tr.ranking-row-highlight td{box-shadow:inset 0 0 0 1px #145c836b}.negotiation-table tr.ranking-row-highlight td:first-child{box-shadow:inset 4px 0 #145c83e6,inset 0 0 0 1px #145c836b}.negotiation-table tr.ranking-row-highlight td:nth-child(2){font-weight:800;color:#114f71}.negotiation-table tr.ranking-row-actionable{cursor:pointer}.negotiation-table tr.ranking-row-actionable:hover td{box-shadow:inset 0 0 0 1px #145c833d}.negotiation-table tr.ranking-row-actionable:focus-visible td{box-shadow:inset 0 0 0 2px #145c8385}.methodology-panel{position:relative;z-index:1;margin-top:1rem;border-radius:1.2rem;background:linear-gradient(180deg,#ffffffd9,#f5faf9e6);border:1px solid rgba(32,87,98,.16);box-shadow:0 16px 35px #0b293714;padding:1.2rem 1rem 1.1rem}.downloads-panel{position:relative;z-index:1;margin-top:1rem;border-radius:1.2rem;background:linear-gradient(180deg,#ffffffdb,#f6f9f4eb);border:1px solid rgba(32,87,98,.16);box-shadow:0 16px 35px #0b293714;padding:1.15rem 1rem 1.1rem}.download-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:.85rem}.download-card{display:grid;gap:.18rem;padding:.85rem .9rem;border-radius:.9rem;border:1px solid rgba(10,96,112,.2);background:#ffffffe0;color:inherit;text-decoration:none;box-shadow:0 10px 22px #0d2c380d;transition:transform .14s ease,border-color .14s ease,background-color .14s ease}.download-card:hover{transform:translateY(-1px);border-color:#08607061;background:#f7fcfbf2}.download-card-kicker{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-700);font-weight:700}.download-card strong{font-family:Sora,sans-serif;font-size:1rem;color:var(--ink-900)}.download-card span:last-child{color:var(--ink-700);font-size:.88rem}.source-links{margin-top:1rem}.source-links h3{margin:0;font-family:Sora,sans-serif;font-size:1rem;color:var(--ink-900)}.source-link-list{display:grid;gap:.65rem;margin-top:.7rem}.source-link-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.75rem .8rem;border-radius:.85rem;border:1px solid rgba(13,89,103,.14);background:#ffffffc7}.source-link-copy{min-width:0}.source-link-name{margin:0;font-weight:700;color:var(--ink-900);font-size:.92rem}.source-link-meta{margin:.2rem 0 0;color:var(--ink-700);font-size:.84rem}.source-link-anchor{display:inline-flex;align-items:center;justify-content:center;min-height:2.25rem;padding:.45rem .8rem;border-radius:999px;border:1px solid rgba(8,96,112,.28);background:#ecf8fae6;color:#0f5f75;font-weight:700;font-size:.88rem;text-decoration:none;white-space:nowrap}.source-link-anchor:hover{border-color:#0860706b;background:#e1f4f7f5}.assumptions-drawer,.downloads-drawer{border-radius:.95rem;border:1px solid rgba(11,89,103,.2);background:#fff9;padding:.55rem .72rem}.assumptions-drawer summary,.downloads-drawer summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:.15rem}.assumptions-drawer summary::-webkit-details-marker,.downloads-drawer summary::-webkit-details-marker{display:none}.assumptions-drawer summary span:first-child,.downloads-drawer summary span:first-child{font-family:Sora,sans-serif;font-size:1.06rem;color:var(--ink-900)}.assumptions-summary-note,.downloads-summary-note{color:var(--ink-600);font-size:.84rem}.assumptions-content,.downloads-content{margin-top:.6rem;padding-top:.35rem;border-top:1px solid rgba(21,88,101,.13)}.downloads-intro{margin:.35rem 0 0;color:var(--ink-700);font-size:.93rem}.downloads-note{margin:.85rem 0 0;padding:.7rem .8rem;border-radius:.8rem;background:#e7f4f6c7;border:1px solid rgba(8,96,112,.15);color:var(--ink-700);font-size:.9rem}.assumptions-content h3,.downloads-content h3{margin:1rem 0 .55rem;font-family:Sora,sans-serif;font-size:1rem;color:var(--ink-900)}.stipend-group-title{margin:.85rem 0 .45rem;font-family:Sora,sans-serif;font-size:.93rem;color:var(--ink-900)}.assumptions-content p{margin:.45rem 0;color:var(--ink-700);font-size:.93rem}.selected-bracket-note{margin:0;padding:.52rem .62rem;border-radius:.65rem;border:1px solid rgba(8,96,112,.24);background:#e4f4f7b8;color:#0f5f75;font-weight:700}.stipend-intro{margin:.35rem 0 .65rem}.stipend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.stipend-item{border-radius:.8rem;border:1px solid rgba(14,93,110,.18);background:#ffffffd9;padding:.6rem .65rem}.stipend-head{margin:0;display:flex;justify-content:space-between;gap:.5rem;color:var(--ink-900);font-weight:700;font-size:.86rem}.stipend-sub{margin:.22rem 0 0;color:var(--ink-700);font-size:.84rem}.stipend-status{margin:.28rem 0 0;font-size:.82rem;font-weight:600}.stipend-item-included{border-color:#0a826740;background:#e9fcf5b3}.stipend-item-included .stipend-status{color:#127354}.stipend-item-omitted{border-color:#99601840;background:#fff7ebbf}.stipend-item-omitted .stipend-status{color:#8b4d11}.empty-state{border:1px dashed rgba(21,101,116,.36);border-radius:.95rem;padding:2.4rem 1.2rem;text-align:center;background:#ffffffb8}.empty-state h2{margin:0;font-family:Sora,sans-serif;color:var(--ink-900)}.empty-state p{margin:.65rem auto 0;max-width:58ch;color:var(--ink-700)}@media (max-width: 900px){.controls{grid-template-columns:1fr}.n-badge,.district-filter{justify-self:start}.ranking-top-controls,.download-grid,.stipend-grid{grid-template-columns:1fr}}@media (max-width: 640px){.app-shell{padding:2.25rem .85rem 2.5rem}.hero h1{max-width:unset}.chart-wrap,.plotly-container{min-height:440px;height:440px}.chart-touch-overlay{touch-action:pan-y!important}.source-link-item{grid-template-columns:1fr}.source-link-anchor{width:100%}.district-filter-menu{left:0;right:auto;width:min(100%,calc(100vw - 1.7rem))}}
