:root{--bg: #f3f5f7;--surface: #ffffff;--ink: #16243a;--muted: #5d6b82;--line: #d7dee8;--primary: #1d4f91;--primary-strong: #123a6e;--primary-soft: #eaf1fb;--accent: #2f8f6e;--warning: #9f5a00;--danger: #ab2a2a;--radius: 14px;--shadow: 0 8px 24px rgb(22 36 58 / 8%);--gradient-hero: linear-gradient(135deg, #1d4f91 0%, #123a6e 100%)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;line-height:1.45}a{color:var(--primary);text-decoration-thickness:1px;text-underline-offset:.15em}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--primary-strong);outline-offset:2px}.skip-link{position:fixed;top:-4rem;left:.75rem;z-index:2000;padding:.6rem 1.1rem;border-radius:0 0 var(--radius) var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--primary-strong);font-size:.9rem;font-weight:600;text-decoration:none;transition:top .15s ease-in-out}.skip-link:focus{top:0}.top-band{background:var(--primary-strong);box-shadow:0 1px #00000014}.brand-chip{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:.92rem;text-decoration:none;color:#fff}.brand-mark{width:22px;height:22px;border-radius:6px;flex:none}.brand-chip:hover,.brand-chip:focus{color:#d9e6fb;text-decoration:underline}.top-band-meta{color:#ffffffc7}.top-band-action{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .9rem;border-radius:999px;font-size:.85rem;font-weight:600;color:#fff;background:#ffffff1a;border:1px solid rgb(255 255 255 / 22%);text-decoration:none;white-space:nowrap;transition:background-color .18s ease,color .18s ease,border-color .18s ease}.top-band-action:hover,.top-band-action:focus{background:#fff;color:var(--primary-strong);border-color:#fff;text-decoration:none}.top-band-action svg{width:14px;height:14px;flex:none}.hero{padding-top:1rem}.county-hero,.about-page .hero{background:var(--primary-soft);border-bottom:1px solid var(--line)}.hero-gradient{background:var(--gradient-hero);color:#fff;position:relative;overflow:hidden}.hero-gradient:after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 88% 12%,rgb(255 255 255 / 10%),transparent 55%);pointer-events:none}.hero-gradient .container{position:relative}.hero-gradient .kicker{color:#bcd3f5}.hero-gradient h1{color:#fff}.hero-gradient .lede{color:#ffffffdb}.hero-gradient .hero-meta{color:#ffffffb8}.kicker{margin:0;font-weight:700;font-size:.85rem;color:var(--primary);text-transform:uppercase;letter-spacing:.04em}h1{margin:0;color:var(--ink)}.lede{max-width:76ch;margin:0;color:var(--muted)}.hero-meta{margin-top:.5rem;color:var(--muted);font-size:.92rem}.stat-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #16243a1f}.hero-gradient .stat-card{background:#ffffff1a;border:1px solid rgb(255 255 255 / 20%);box-shadow:none}.hero-gradient .stat-card.stat-fresh{border-left:3px solid var(--accent)}.hero-gradient .stat-label{color:#ffffffad}.hero-gradient .stat-value{color:#fff}.stat-label{margin:0;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}.stat-value{margin:0;color:var(--ink);font-weight:700;font-size:1rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel:not(.map-panel):not(.controls):not(.offenders-panel){transition:transform .18s ease,box-shadow .18s ease}.panel:not(.map-panel):not(.controls):not(.offenders-panel):hover{transform:translateY(-2px);box-shadow:0 12px 28px #16243a1f}.controls .card-body{display:flex;flex-direction:column;min-height:0}.form-label{margin:0;font-weight:600;color:var(--ink)}.form-control,.form-select,.btn{min-height:44px}.form-control,.form-select{border-color:#c7d2e2}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem #1d4f9129}.combobox-wrap{position:relative}.combobox-listbox{position:absolute;z-index:1100;top:calc(100% + 4px);left:0;right:0;margin:0;padding:.35rem;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px #16243a29;max-height:min(60vh,360px);overflow-y:auto}.combobox-option{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.55rem .65rem;border-radius:8px;cursor:pointer}.combobox-option-name{font-weight:600;color:var(--ink)}.combobox-option-count{font-size:.82rem;color:var(--muted);white-space:nowrap}.combobox-option:hover,.combobox-option.active{background:var(--primary-soft)}.btn-primary{--bs-btn-bg: var(--primary);--bs-btn-border-color: var(--primary);--bs-btn-hover-bg: var(--primary-strong);--bs-btn-hover-border-color: var(--primary-strong);--bs-btn-active-bg: #0f2f58;--bs-btn-active-border-color: #0f2f58;--bs-btn-focus-shadow-rgb: 29, 79, 145;font-weight:600}.btn-outline-primary{--bs-btn-color: var(--primary);--bs-btn-border-color: var(--primary);--bs-btn-hover-bg: var(--primary);--bs-btn-hover-border-color: var(--primary);--bs-btn-active-bg: var(--primary-strong);--bs-btn-active-border-color: var(--primary-strong);--bs-btn-focus-shadow-rgb: 29, 79, 145}.muted{color:var(--muted);font-size:.92rem}.county-list,.result-list{margin:0;padding:0;list-style:none;display:grid;gap:.75rem}.county-grid,#nearbySchoolsList{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.county-card,.county-item,.result-item{border:1px solid var(--line);border-radius:12px;background:#fff}.county-card{box-shadow:0 2px 10px #16243a0d}.county-home-button{display:flex;flex-direction:column;gap:.2rem;width:100%;height:100%;padding:.68rem .78rem;border-radius:12px;border:1px solid var(--line);color:var(--ink);text-decoration:none;background:#fff;transition:background-color .18s ease,color .18s ease,border-color .18s ease}.county-home-button:hover,.county-home-button:focus{color:#fff;background:var(--primary);border-color:var(--primary);text-decoration:none}.county-home-name{font-size:.94rem;font-weight:700;line-height:1.25}.county-home-count{font-size:.82rem;color:var(--muted)}.county-home-button:hover .county-home-count,.county-home-button:focus .county-home-count{color:#eef4ff}.county-item,.result-item{padding:.8rem}.county-item a{color:inherit;text-decoration:none}.county-item:hover,.county-item:focus-within,.county-card:hover,.county-card:focus-within{border-color:#bccadd;box-shadow:0 8px 20px #16243a1a}.county-item h3,.result-item h3{margin:0;font-size:1rem}.county-item p,.result-item p{margin:.2rem 0 0;color:var(--muted);font-size:.9rem}.school-type-badge{display:inline-block;margin-left:.4rem;padding:.05rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;vertical-align:middle;text-transform:uppercase;letter-spacing:.02em}.school-type-badge-public{background:#e6f3ee;color:#0a7f5a}.school-type-badge-private{background:#eae6fb;color:#5b3fbf}.school-type-badge-childcare{background:#fdeee0;color:#b1560f}.school-data-note{display:block;margin-top:.15rem;font-size:.78rem;color:var(--muted);font-weight:400;text-transform:none;letter-spacing:normal}.school-result-limit{max-width:76ch;color:var(--muted);font-size:.84rem}.school-card-link{display:flex;flex-direction:column;gap:.5rem;text-decoration:none;color:inherit;height:100%}.school-name{font-weight:600;font-size:.95rem;line-height:1.35;margin:0}.school-meta{margin:0;padding:0;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;color:var(--muted);font-size:.82rem}.school-distance{margin-top:auto;margin-bottom:0;padding:0;font-weight:600;color:var(--primary);font-size:.88rem}.map-panel .card-body,.offenders-panel .card-body,.nearby-schools-panel .card-body{min-height:0}.map{width:100%;min-height:520px;border:1px solid var(--line);border-radius:12px;background:#eef2f7}.state-page .leaflet-interactive{cursor:pointer}.map-empty-state{color:var(--muted);font-size:.92rem}.legend{display:flex;flex-wrap:wrap;gap:.75rem;color:var(--muted);font-size:.88rem}.site-footer{background:var(--primary-soft);border-top:3px solid transparent;border-image:var(--gradient-hero) 1}.footer-brand{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:700;color:var(--primary-strong);text-decoration:none}.footer-brand:hover,.footer-brand:focus{text-decoration:underline}.footer-heading{margin-bottom:.65rem;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary-strong)}.footer-text{font-size:.85rem;line-height:1.55;color:var(--muted)}.footer-nav{display:grid;gap:.4rem;margin:0;padding:0;list-style:none;font-size:.85rem}.footer-nav a{color:var(--muted);text-decoration:none}.footer-nav a:hover,.footer-nav a:focus{color:var(--primary);text-decoration:underline}.footer-baseline{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem 1.5rem;margin-top:1.75rem;padding-top:1rem;border-top:1px solid rgb(29 79 145 / 15%);font-size:.78rem;color:var(--muted)}.dot{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:.35rem}.dot.offender{background:var(--danger)}.dot.school{background:var(--primary)}.dot.school-private{background:#5b3fbf}.dot.school-childcare{background:#d9691c}.dot.county-1{background:#a8c4e6}.dot.county-2{background:#6f9dd3}.dot.county-3{background:#3f77b8}.dot.county-4{background:#1d4f91}.dot.county-5{background:#123a6e}.legend-title{font-weight:600;color:var(--ink)}.table-wrap{width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.top-band-links{display:flex;align-items:center;gap:.35rem}.top-band-links a{padding:.36rem .7rem;border-radius:999px;color:#ffffffd1;font-size:.84rem;font-weight:600;text-decoration:none}.top-band-links a:hover,.top-band-links a:focus,.top-band-links a[aria-current=page]{color:#fff;background:#ffffff1f}.schools-explore-hero{background:linear-gradient(135deg,#eaf1fb,#eef8f4);border-bottom:1px solid var(--line)}.schools-explore-page .panel:hover{transform:none}.search-status-row{min-height:1.4rem}.school-search-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.school-search-card{min-width:0;border:1px solid var(--line);border-radius:11px;background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}.school-search-card:hover,.school-search-card:focus-within{border-color:#aebed4;box-shadow:0 5px 14px #16243a17}.school-search-card-link{display:flex;justify-content:space-between;gap:1rem;height:100%;padding:.9rem 1rem;color:inherit;text-decoration:none}.school-search-card-link:hover .school-search-name,.school-search-card-link:focus .school-search-name{color:var(--primary);text-decoration:underline}.school-search-card-main{min-width:0}.school-search-name,.school-search-location{display:block}.school-search-name{overflow-wrap:anywhere;font-weight:700;line-height:1.25}.school-search-location{margin:.22rem 0 .45rem;color:var(--muted);font-size:.84rem}.school-search-card .school-type-badge,.ranking-table .school-type-badge{margin-left:0}.school-search-count{display:flex;flex:0 0 94px;flex-direction:column;justify-content:center;align-items:flex-end;color:var(--muted);text-align:right;font-size:.72rem}.school-search-count strong{color:var(--primary-strong);font-size:1.25rem;line-height:1}.search-prompt{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;border:1px dashed #b8c6d8;border-radius:11px;color:var(--muted);text-align:center}.search-prompt strong{color:var(--ink)}.distribution-highlight{padding:.75rem .9rem;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;background:#eef8f4;color:#255b49;font-size:.9rem}.distribution-list{display:grid;gap:.52rem;margin:0;padding:0;list-style:none}.distribution-item{display:grid;grid-template-columns:82px minmax(100px,1fr) 62px 54px;gap:.65rem;align-items:center;font-size:.82rem}.distribution-label{color:var(--muted)}.distribution-track{height:9px;overflow:hidden;border-radius:999px;background:#e6ebf2}.distribution-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#4f86c6)}.distribution-percent{color:var(--muted);text-align:right}.rankings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.ranking-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.82rem}.ranking-col-position{width:52px}.ranking-col-type{width:154px}.ranking-col-count{width:72px}.ranking-table th,.ranking-table td{padding:.55rem .45rem;border-bottom:1px solid var(--line);vertical-align:middle;text-align:left}.ranking-table th{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}.ranking-position{color:var(--muted);font-weight:700;text-align:center!important}.ranking-school-link{display:block;max-width:34ch;overflow-wrap:anywhere;font-weight:700}.ranking-location{display:block;margin-top:.1rem;color:var(--muted);font-size:.74rem}.ranking-count-cell{position:relative;overflow:hidden;text-align:right!important}.ranking-count-cell strong{position:relative;z-index:1}.ranking-bar{position:absolute;inset:0 auto 0 0;width:var(--bar-width);border-radius:5px;background:#dce8f7}.methodology-facts{display:grid;gap:.55rem}.methodology-facts p{display:flex;align-items:baseline;gap:.65rem;margin:0;padding-bottom:.55rem;border-bottom:1px solid var(--line)}.methodology-facts strong{min-width:70px;color:var(--primary-strong)}.methodology-facts span{color:var(--muted);font-size:.84rem}@media(max-width:1199.98px){.rankings-grid{grid-template-columns:1fr}}@media(max-width:767.98px){.top-band-links a:first-child{display:none}.school-search-results{grid-template-columns:1fr}.school-search-card-link{padding:.8rem}.ranking-table{min-width:600px}.distribution-item{grid-template-columns:70px minmax(60px,1fr) 52px;gap:.45rem}.distribution-percent{display:none}}.offender-table{width:100%;border-collapse:collapse;min-width:920px;background:#fff}.offender-table th,.offender-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.55rem .5rem;font-size:.9rem}.offender-table th{position:sticky;top:0;background:#eff3f8;color:#233852;font-size:.8rem;letter-spacing:.02em;text-transform:uppercase;z-index:1}.offender-table tbody tr:nth-child(2n){background:#fbfcfe}.heading-short{display:none}.offender-identity{display:inline-flex;flex-direction:column;align-items:center;gap:.3rem;color:var(--ink);text-decoration:none}.offender-photo{width:56px;height:70px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#f4f6f9}.offender-photo-placeholder{display:none;align-items:center;justify-content:center;width:56px;height:70px;border-radius:6px;border:1px dashed var(--line);background:#f4f6f9;color:var(--muted);font-size:.62rem;text-align:center}.offender-photo-placeholder.is-shown{display:flex}.details-link{display:inline-block;padding:.1rem .5rem;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.72rem;font-weight:600;line-height:1.5}.offender-identity:hover .details-link,.offender-identity:focus-visible .details-link{background:var(--primary);color:#fff}.popup-photo{width:92px;height:116px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#f4f6f9}.map-label{background:#fffffff0;border:1px solid rgb(22 36 58 / 14%);border-radius:999px;box-shadow:0 3px 10px #16243a17;color:#233852;font-size:.72rem;line-height:1.1;padding:.22rem .45rem;white-space:nowrap}.map-label:before{display:none}.map-label-school{color:var(--primary);font-weight:700}.map-label-county{color:var(--primary-strong);font-weight:700}.map-label-offender{color:var(--danger)}.name-last{display:inline}.name-first{display:block;margin-top:.02rem}.back-link{color:var(--primary-strong);text-decoration:none}.back-link:hover,.back-link:focus{text-decoration:underline}.school-layout>[class*=col-]{display:flex}.school-page .offenders-panel,.school-page .map-panel,.school-page .nearby-schools-panel{width:100%}.school-page .offenders-panel .card-body,.school-page .map-panel .card-body{display:flex;flex-direction:column;height:100%;min-height:0}.school-page .school-results-scroll{flex:0 0 auto;min-height:auto;max-height:none;overflow:visible}.school-page .offender-table{min-width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}.school-page .offender-table th{top:0;z-index:2;background:linear-gradient(180deg,#f5f8fc,#edf2f8);color:#1f3d5d;font-size:.75rem;letter-spacing:.04em;padding:.62rem .65rem;border-bottom:1px solid #d1d9e4}.school-page .offender-table td{padding:.7rem .65rem;vertical-align:top}.school-page .offender-table tbody tr{transition:background-color .16s ease}.school-page .offender-table tbody tr:hover{background:#f8fbff}.school-page .offender-table th:nth-child(1),.school-page .offender-table td:nth-child(1){width:104px}.school-page .offender-table th:nth-child(2),.school-page .offender-table td:nth-child(2){width:25%}.school-page .offender-table th:nth-child(3),.school-page .offender-table td:nth-child(3){width:45%}.school-page .offender-table th:nth-child(4),.school-page .offender-table td:nth-child(4){width:120px}.school-page .offender-name-cell{font-weight:600;line-height:1.25}.school-page .offender-verified{margin-top:.25rem;color:var(--muted);font-size:.75rem;font-weight:400}.school-page .offense-count-badge{display:inline-block;margin-left:.35rem;padding:.05rem .45rem;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.68rem;font-weight:600;white-space:nowrap;vertical-align:middle}.school-page .offense-text{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.school-page .offense-text.offense-pending{font-style:italic;opacity:.85}.school-page .distance-cell{white-space:nowrap}.school-page .distance-pill{display:inline-flex;align-items:baseline;min-width:3.4ch;padding:.2rem .6rem;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-weight:700;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.school-page .distance-pill .unit{margin-left:.15rem;font-size:.66rem;font-weight:600;opacity:.7}.school-page .distance-pill.distance-close{background:#f8e2e2;color:var(--danger)}.school-page .distance-pill.distance-mid{background:#f7e8d4;color:var(--warning)}.school-page #schoolMap{flex:0 0 auto;min-height:460px}.how-step-number{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-bottom:.65rem;border-radius:999px;background:var(--primary-soft);color:var(--primary-strong);font-size:.95rem;font-weight:700}.how-note{margin:1.75rem 0 0;padding:.85rem 1.05rem;border-left:3px solid var(--primary);border-radius:0 10px 10px 0;background:var(--primary-soft);font-size:.85rem}.how-strip-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem 1.25rem;margin:0;padding:0;list-style:none}.how-strip-step{display:flex;align-items:flex-start;gap:.6rem}.how-strip-step .how-step-number{flex:0 0 auto;width:1.75rem;height:1.75rem;margin-bottom:0;font-size:.85rem}.how-strip-title{display:block;font-size:.92rem;font-weight:700;line-height:1.25}.how-strip-text{display:block;font-size:.84rem;color:var(--muted)}@media(max-width:767.98px){.how-strip-steps{grid-template-columns:1fr;gap:.75rem}}@media(max-width:991.98px){.map,.school-page #schoolMap{min-height:360px}.school-page .school-results-scroll{max-height:none}}@media(max-width:768px){.hero{padding-top:.75rem}h1{font-size:clamp(1.5rem,6.2vw,2.2rem)}.lede{font-size:.97rem}.panel{border-radius:12px}.legend{font-size:.82rem}.offender-table{min-width:600px}.school-page .offender-table{min-width:380px}.school-page .offender-table th:nth-child(1),.school-page .offender-table td:nth-child(1){width:62px}.school-page .offender-table th:nth-child(2),.school-page .offender-table td:nth-child(2){width:34%}.school-page .offender-table th:nth-child(3),.school-page .offender-table td:nth-child(3){width:38%}.school-page .offender-table th:nth-child(4),.school-page .offender-table td:nth-child(4){width:62px}.school-page .distance-pill{padding:.15rem .4rem}.school-page .distance-pill .unit{display:none}.offender-table th,.offender-table td{padding:.48rem .4rem;font-size:.82rem}.offender-photo,.offender-photo-placeholder{width:46px;height:58px}.offender-photo-placeholder{font-size:.55rem}.details-link{padding:.1rem .4rem;font-size:.66rem}.popup-photo{width:76px;height:96px}.map-label{font-size:.64rem;max-width:140px;overflow:hidden;text-overflow:ellipsis}}@media(max-width:640px){.hero-meta{font-size:.82rem}.map{min-height:300px}.state-page .map{min-height:340px}.school-page #schoolMap{min-height:320px}.offender-table{min-width:520px}.school-page .offender-table{min-width:0}.school-page .offender-table th,.school-page .offender-table td{padding:.45rem .3rem}.school-page .offender-table th:nth-child(1),.school-page .offender-table td:nth-child(1){width:56px}.school-page .offender-table th:nth-child(4),.school-page .offender-table td:nth-child(4){width:46px}.school-page .distance-pill{min-width:0;padding:.15rem .3rem}.school-page .offender-name-cell,.school-page .offense-text{overflow-wrap:anywhere}.school-page .heading-long{display:none}.school-page .heading-short{display:inline}}
