/* Bold Performance Schools data table (bold-table.js). Everything is scoped to .bpt (and .bpt-pop, the
   filter checklist, which sits on the body). EK12 2026 Brand Guide tokens only: Comfortaa Bold title,
   Inter Bold labels, Inter Light body, navy text, the blues for lines and surfaces, yellow only for the
   Bold badge (navy text on it). The look follows the Labs table: eyebrow headers that sort on a click and
   the list-filter chip. */
@import url("https://fonts.googleapis.com/css2?family=Comfortaa:wght@700&family=Inter:wght@300;700&display=swap");
.bpt, .bpt-pop {
  --ek12-blue: #224798; --ek12-light-blue: #94bdfd; --ek12-yellow: #f7ca27;
  --ek12-db1: #0E1C3D; --ek12-db2: #142B5B; --ek12-db4: #597198;
  --ek12-lb1: #7A91C1; --ek12-lb2: #d3daea; --ek12-lb3: #bfd7fe; --ek12-lb4: #dfebfe; --surface-inset: #f5f8ff;
  --bpt-shadow-sm: 0 1px 3px rgb(14 28 61 / .08), 0 1px 2px rgb(14 28 61 / .04);
  --bpt-shadow-md: 0 4px 14px rgb(14 28 61 / .08);
  --bpt-body: Inter, "Segoe UI", system-ui, sans-serif;
  font-family: var(--bpt-body); font-weight: 300; font-size: 15px; line-height: 1.55; color: var(--ek12-db1); text-align: left;
}
.bpt, .bpt *, .bpt-pop, .bpt-pop * { box-sizing: border-box; }
/* Squarespace's base styles give search boxes content-box sizing, which pushed the search field 26px wider than its row. */
.bpt input, .bpt select, .bpt button, .bpt-pop input, .bpt-pop button { box-sizing: border-box !important; max-width: 100%; }
/* Squarespace's site animations hold headings and paragraphs at opacity 0 until they scroll into view and
   never reach content a script draws later. Nothing in this block animates. */
.bpt, .bpt * { opacity: 1 !important; animation: none !important; transform: none !important; }
.bpt { max-width: 1200px; margin: 0 auto; }
.bpt [hidden], .bpt-pop[hidden] { display: none !important; }
.bpt p { margin: 0; max-width: none; }
.bpt .bpt-eyebrow { font: 700 13px/1.3 var(--bpt-body); letter-spacing: .14em; text-transform: uppercase; color: var(--ek12-blue); margin: 0 0 10px; }
.bpt h2 { font-family: Comfortaa, Inter, sans-serif !important; font-weight: 700 !important; font-size: 28px; line-height: 1.2; letter-spacing: 0; text-transform: none; color: var(--ek12-blue); margin: 0 0 12px; }
.bpt .bpt-intro, .bpt:not(.bpt-live) > p:not(.bpt-eyebrow) { font: 300 17px/1.6 var(--bpt-body); color: var(--ek12-db1); margin: 0 0 22px; max-width: 68ch; }
.bpt-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.bpt-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 14px; }
.bpt-search { flex: 1 1 240px; max-width: 340px; margin: 0; display: block; }
.bpt .bpt-search input { width: 100%; height: auto; font: 300 15px/1.4 var(--bpt-body); color: var(--ek12-db1); background: #ffffff; border: 1px solid var(--ek12-lb3); border-radius: 10px; padding: 9px 12px; margin: 0; outline: none; -webkit-appearance: none; appearance: none; box-shadow: none; }
.bpt .bpt-search input::placeholder { color: var(--ek12-db4); }
.bpt .bpt-search input:focus { border-color: var(--ek12-blue); box-shadow: 0 0 0 3px rgb(148 189 253 / .55); }
/* The Labs summary line: schools, Bold Performance count, how many are shown. */
/* The Labs year picker sits first, then the summary pushed to the right beside the export button. */
.bpt-year { display: inline-flex; margin: 0; }
.bpt .bpt-year select { font: 700 14.5px/1.3 var(--bpt-body); letter-spacing: 0; text-transform: none; color: var(--ek12-db1); background: #ffffff; border: 1px solid var(--ek12-lb3); border-radius: 10px; padding: 7px 10px; margin: 0; width: auto; height: auto; cursor: pointer; }
.bpt .bpt-year option { font-weight: 300; }
.bpt-summary { font-size: 14px; color: var(--ek12-db4); margin-left: auto; }
.bpt.is-narrow .bpt-summary { margin-left: 0; flex-basis: 100%; order: 3; }
.bpt-summary b { font-weight: 700; color: var(--ek12-db4); }
.bpt .bpt-btn, .bpt-pop .bpt-btn { display: inline-flex; align-items: center; gap: 6px; font: 700 13.5px/1.2 var(--bpt-body); letter-spacing: 0; text-transform: none; color: var(--ek12-blue); background: #ffffff; border: 1px solid var(--ek12-lb3); border-radius: 10px; padding: 8px 14px; margin: 0; cursor: pointer; min-height: 0; width: auto; box-shadow: none; }
.bpt .bpt-btn:hover, .bpt-pop .bpt-btn:hover, .bpt .bpt-btn.active { background: var(--ek12-lb4); border-color: var(--ek12-blue); }
.bpt .bpt-btn.bpt-solid { background: var(--ek12-blue); border-color: var(--ek12-blue); color: #ffffff; }
.bpt .bpt-btn.bpt-solid:hover { background: var(--ek12-db2); border-color: var(--ek12-db2); }
.bpt .bpt-btn:focus-visible, .bpt .bpt-sort:focus-visible, .bpt .bpt-filter:focus-visible, .bpt select:focus-visible { outline: 3px solid var(--ek12-light-blue); outline-offset: 2px; }
.bpt .bpt-btn svg { width: 14px; height: 14px; }
.bpt .bpt-btn:disabled { background: var(--ek12-lb2); border-color: var(--ek12-lb2); color: var(--ek12-lb1); cursor: default; }

.bpt-card { background: #ffffff; border: 1px solid var(--ek12-lb2); border-radius: 16px; box-shadow: var(--bpt-shadow-sm); overflow: hidden; }
.bpt .bpt-table { width: 100%; border-collapse: collapse; border-spacing: 0; margin: 0; border: 0; font-size: 14.5px; table-layout: auto; }
.bpt .bpt-table th, .bpt .bpt-table td { padding: 10px 12px; text-align: left; vertical-align: middle; border: 0; border-bottom: 1px solid var(--ek12-lb2); background: transparent; font-family: var(--bpt-body); font-weight: 300; color: var(--ek12-db1); line-height: 1.4; }
.bpt .bpt-table thead th { background: var(--surface-inset); border-bottom: 1px solid var(--ek12-lb3); white-space: nowrap; }
.bpt .bpt-table tbody tr:last-child th, .bpt .bpt-table tbody tr:last-child td { border-bottom: 0; }
.bpt .bpt-table tbody tr:hover th, .bpt .bpt-table tbody tr:hover td { background: var(--surface-inset); }
/* Bold schools carry a tint, as in Labs (there a pale yellow; here Light Blue 4 at 45%, since the brand allows no yellow ground). */
.bpt .bpt-table tbody tr.is-bold th, .bpt .bpt-table tbody tr.is-bold td { background: rgb(223 235 254 / .45); }
.bpt .bpt-table tbody tr.is-bold:hover th, .bpt .bpt-table tbody tr.is-bold:hover td { background: rgb(223 235 254 / .8); }
.bpt .bpt-table .num { text-align: center; white-space: nowrap; }
/* Seven columns in a 1024px page column: Type and LEA stay on one line, School and Prior Bold take the squeeze. */
.bpt .bpt-table .c-type, .bpt .bpt-table .c-lea { white-space: nowrap; }
.bpt .bpt-table tbody th.c-name, .bpt .bpt-table td.c-ppae { font-weight: 700; }
.bpt .bpt-table tbody th.c-name { font-size: 14.5px; }
.bpt .bpt-table td.c-prior { font-size: 14px; }
.bpt-th { display: inline-flex; align-items: center; gap: 4px; }
.bpt .bpt-sort { display: inline-flex; align-items: center; gap: 4px; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; color: var(--ek12-db4); font: 700 12px/1.3 var(--bpt-body); letter-spacing: .12em; text-transform: uppercase; min-height: 0; width: auto; box-shadow: none; }
.bpt .bpt-sort:hover { color: var(--ek12-db1); }
.bpt .bpt-filter { display: inline-flex; align-items: center; background: none; border: 0; padding: 2px; margin: 0; cursor: pointer; color: var(--ek12-lb1); border-radius: 5px; min-height: 0; width: auto; box-shadow: none; }
.bpt .bpt-filter:hover, .bpt .bpt-filter.active { color: var(--ek12-blue); background: var(--ek12-lb4); }
.bpt-badge { display: inline-block; font: 700 11.5px/1.3 var(--bpt-body); letter-spacing: .14em; text-transform: uppercase; color: var(--ek12-db1); background: var(--ek12-yellow); border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
.bpt-quiet { font-size: 13.5px; color: var(--ek12-db4); white-space: nowrap; }
.bpt .bpt-table .bpt-none td { text-align: center; color: var(--ek12-db4); padding: 26px 14px; }
.bpt-more { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 0; }
.bpt-more:empty { display: none; }
.bpt .bpt-note { font: 300 13.5px/1.55 var(--bpt-body); color: var(--ek12-db4); margin: 18px 0 0; max-width: 84ch; }
.bpt .bpt-note.bpt-top { margin: 0 0 12px; }
.bpt .bpt-src { font: 300 12.5px/1.5 var(--bpt-body); color: var(--ek12-db4); margin: 6px 0 0; max-width: 84ch; }

/* The controls a narrow layout needs in place of the header row. */
.bpt-phone { display: none; }
.bpt-sortby { display: inline-flex; align-items: center; gap: 8px; margin: 0; font: 700 12px/1.3 var(--bpt-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ek12-db4); }
.bpt .bpt-sortby select { font: 300 15px/1.3 var(--bpt-body); letter-spacing: 0; text-transform: none; color: var(--ek12-db1); background: #ffffff; border: 1px solid var(--ek12-lb3); border-radius: 10px; padding: 7px 10px; margin: 0; width: auto; height: auto; max-width: 190px; }
.bpt .bpt-sortby option { font-weight: 300; }
.bpt .bpt-dir { padding: 8px 10px; }

/* Under 760px of its own width (the script sets is-narrow): one card per school, label and value on each line. */
.bpt.is-narrow .bpt-phone { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; }
.bpt.is-narrow .bpt-card { background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
.bpt.is-narrow .bpt-table, .bpt.is-narrow .bpt-table tbody, .bpt.is-narrow .bpt-table tr, .bpt.is-narrow .bpt-table th, .bpt.is-narrow .bpt-table td { display: block; width: auto; }
.bpt.is-narrow .bpt-table thead { display: none; }
.bpt.is-narrow .bpt-table tbody tr { background: #ffffff; border: 1px solid var(--ek12-lb2); border-radius: 16px; box-shadow: var(--bpt-shadow-sm); padding: 14px 16px; margin: 0 0 12px; }
.bpt.is-narrow .bpt-table tbody tr:hover th, .bpt.is-narrow .bpt-table tbody tr:hover td, .bpt.is-narrow .bpt-table tbody tr.is-bold th, .bpt.is-narrow .bpt-table tbody tr.is-bold td { background: transparent; }
.bpt.is-narrow .bpt-table tbody tr.is-bold { background: rgb(223 235 254 / .45); }
.bpt.is-narrow .bpt-table tbody th.c-name { padding: 0 0 8px; border: 0; font-size: 17px; line-height: 1.3; }
.bpt.is-narrow .bpt-table tbody td { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 5px 0; border: 0; text-align: right; white-space: normal; }
.bpt.is-narrow .bpt-table tbody td::before { content: attr(data-label); flex: none; text-align: left; font: 700 11.5px/1.4 var(--bpt-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ek12-db4); }
.bpt.is-narrow .bpt-table tbody td.is-blank { display: none; }
.bpt.is-narrow .bpt-table .bpt-none td { display: block; text-align: left; padding: 0; }
.bpt.is-narrow .bpt-table .bpt-none td::before { content: none; }
.bpt.is-narrow h2 { font-size: 24px; }
.bpt.is-narrow .bpt-search { max-width: none; flex-basis: 100%; }

/* The filter checklist. */
.bpt-pop { position: fixed; z-index: 100000; min-width: 220px; max-width: min(340px, calc(100vw - 16px)); max-height: min(320px, calc(100vh - 24px)); overflow-y: auto; background: #ffffff; border: 1px solid var(--ek12-lb3); border-radius: 10px; box-shadow: var(--bpt-shadow-md); padding: 12px; font-size: 14px; }
.bpt-pop .bpt-checks { display: flex; flex-direction: column; gap: 8px; }
.bpt-pop .bpt-checks label { display: flex; align-items: center; gap: 8px; margin: 0; cursor: pointer; font: 300 14px/1.35 var(--bpt-body); color: var(--ek12-db1); }
.bpt-pop .bpt-checks input { accent-color: var(--ek12-blue); width: 15px; height: 15px; margin: 0; flex: none; }
.bpt-pop input[type="text"] { display: block; width: 100%; font: 300 14px/1.4 var(--bpt-body); color: var(--ek12-db1); background: #ffffff; border: 1px solid var(--ek12-lb3); border-radius: 10px; padding: 7px 10px; margin: 0; outline: none; box-shadow: none; }
.bpt-pop input[type="text"]:focus { border-color: var(--ek12-blue); box-shadow: 0 0 0 3px rgb(148 189 253 / .55); }
.bpt-pop .bpt-popclear[hidden] { display: none; }
.bpt-pop .bpt-popclear { margin-top: 12px; padding: 5px 12px; font-size: 12.5px; }