/* =========================================================
   AreaWise — v5.0 presentation redesign
   Loaded AFTER base/layout/area/area-tabs/responsive.
   Redesigns typography, spacing, hierarchy, cards, map layout
   and dashboard while preserving every class and feature.
   ========================================================= */

/* ---------- 1. Design tokens ---------- */
:root{
  /* Brand + semantic colour */
  --ink:#0b1c30;            /* primary text */
  --navy:#10233d;           /* headings */
  --muted:#475467;          /* secondary text */
  --subtle:#667085;         /* tertiary text */
  --faint:#8792a5;          /* faint metadata (never < 12px) */

  --green:#0d9f4b;          /* primary / positive (single source of truth) */
  --green-strong:#087a3c;   /* hover / dark */
  --green-soft:#e9f6ee;     /* green tint background */
  --blue:#006398;           /* secondary / accent / info */
  --blue-soft:#e9f2f9;
  --red:#ba1a1a;            /* warning / negative */
  --red-soft:#fbecec;
  --amber:#946200;          /* caution */
  --amber-soft:#fbf4e4;

  /* Surfaces */
  --bg:#f5f7f6;             /* light grey page background */
  --surface:#ffffff;        /* white cards */
  --surface-2:#eef1ef;      /* subtle fill / hover */

  /* Lines */
  --line:#e5e9e6;
  --line-strong:#d3dad5;

  /* Type scale (brief spec) */
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  --fs-h1:36px;
  --fs-h2:28px;
  --fs-h3:22px;
  --fs-h4:18px;
  --fs-body:16px;
  --fs-secondary:14px;
  --fs-label:13px;
  --fs-small:12px;          /* hard floor — no 8–11px */

  /* Radius (consistent) */
  --r-sm:10px;
  --r-md:14px;
  --r-lg:18px;
  --r-pill:999px;

  /* Elevation */
  --shadow-sm:0 1px 2px rgba(16,24,40,.06);
  --shadow:0 6px 20px rgba(16,24,40,.08);
  --shadow-lg:0 14px 40px rgba(16,24,40,.14);

  /* Spacing */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px;
  --sp-5:20px; --sp-6:24px; --sp-7:32px; --sp-8:40px;
}

/* ---------- 2. Base ---------- */
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font);
  font-size:var(--fs-body);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{color:var(--navy);letter-spacing:-.02em;line-height:1.15;margin:0 0 .4em}
h1{font-size:var(--fs-h1);font-weight:800}
h2{font-size:var(--fs-h2);font-weight:700}
h3{font-size:var(--fs-h3);font-weight:700}
h4{font-size:var(--fs-h4);font-weight:700}

/* Eyebrow / kicker */
.eyebrow,.area-kicker{
  font-size:var(--fs-label) !important;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--green) !important;
}

/* ---------- 3. Header ---------- */
.site-header{
  height:70px;
  background:var(--surface);
  border-bottom:1px solid var(--line);
  box-shadow:var(--shadow-sm);
}
.brand{font-size:24px;font-weight:800;color:var(--navy)}
.brand .logo{background:var(--green);border-radius:var(--r-sm)}
.site-nav a{font-size:var(--fs-secondary);font-weight:600;color:var(--muted)}
.site-nav a:hover{color:var(--ink)}
.site-nav a.active{color:var(--green);font-weight:700}
.site-header .actions button{font-size:var(--fs-secondary);font-weight:600}

/* Header search */
.header-search{
  background:var(--surface-2);
  border:1px solid var(--line);
  border-radius:var(--r-pill);
  height:40px;
}
.header-search input{font-size:var(--fs-secondary)}
.header-search:focus-within{background:#fff;border-color:var(--green)}

/* ---------- 4. Area head (dashboard header) ---------- */
.area-page{max-width:1360px;margin:auto;padding:var(--sp-7) 28px var(--sp-8)}
.area-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-5);margin:var(--sp-5) 0 var(--sp-6)}
.area-head h1{font-size:var(--fs-h1);margin:.35em 0 .15em}
.area-head p{font-size:var(--fs-secondary);color:var(--muted);margin:0}
.back{font-size:var(--fs-secondary);color:var(--muted);text-decoration:none}
.back:hover{color:var(--green)}

.area-actions button{padding:11px 18px;border-radius:var(--r-sm);font-size:var(--fs-secondary);font-weight:700}
.primary{background:var(--green);color:#fff;border:1px solid var(--green)}
.primary:hover{background:var(--green-strong);border-color:var(--green-strong)}
.secondary{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink)}
.secondary:hover{border-color:var(--green);color:var(--green)}

/* ---------- 5. Map / School Explorer layout (60 / 40) ---------- */
.area-map-top{margin:var(--sp-5) 0 var(--sp-6)}
.map-top-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-5);margin-bottom:var(--sp-4)}
.map-top-head h2{font-size:var(--fs-h2)}
.map-filter-note{font-size:var(--fs-secondary) !important;color:var(--muted)}

/* Full-bleed explorer: widen the detail panel for readability (map stays dominant) */
body.ws-schools-active .school-explorer-grid{
  grid-template-columns:380px minmax(0,1fr) !important;
  background:var(--surface);
}
@media(min-width:1500px){
  body.ws-schools-active .school-explorer-grid{
    grid-template-columns:420px minmax(0,1fr) !important;
  }
}
body.ws-schools-active .school-explorer-side{
  border-right:1px solid var(--line) !important;
  background:var(--surface);
}

/* Map canvas presentation */
.area-map-top #areaMap{border-radius:var(--r-lg);border:1px solid var(--line);overflow:hidden}

/* Layer pills (POI toggles) */
.layer-pills{gap:var(--sp-2)}
.layer-pills span{
  border:1px solid var(--line);
  border-radius:var(--r-pill);
  background:var(--surface);
  color:var(--muted);
  font-size:var(--fs-small);
  font-weight:600;
  padding:8px 12px;
}
.layer-pills input:checked+span{
  border-color:var(--green);
  background:var(--green-soft);
  color:var(--green-strong);
}

/* ---------- 6. Dashboard: map filter toolbar ---------- */
.school-map-filter{
  border:1px solid var(--line-strong);
  background:var(--surface);
  color:var(--ink);
  border-radius:var(--r-pill);
  padding:8px 13px;
  font-size:var(--fs-small);
  font-weight:700;
  box-shadow:var(--shadow-sm);
}
.school-map-filter.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.school-map-filter.active span{color:#c7d3e4}
.school-map-filter:hover:not(.active){border-color:var(--green);color:var(--green-strong)}
.school-more-select{font-size:var(--fs-small);border-radius:var(--r-pill)}
.school-drawer-trigger{background:var(--navy);border-radius:var(--r-pill);font-size:var(--fs-small)}
.school-drawer-trigger b{background:#fff;color:var(--navy)}

.school-results-meta{font-size:var(--fs-secondary);color:var(--muted)}
.school-results-meta b{color:var(--navy);font-size:var(--fs-secondary)}
.school-filter{font-size:var(--fs-small);border-radius:var(--r-pill);padding:7px 12px}
.school-filter.active{background:var(--navy);border-color:var(--navy);color:#fff}

/* ---------- 7. School cards (decision-first) ---------- */
.school-map-card{
  flex:0 0 252px;
  border:1px solid var(--line-strong);
  background:var(--surface);
  border-radius:var(--r-md);
  padding:15px 16px;
  text-align:left;
  box-shadow:var(--shadow-sm);
  min-height:132px;
}
.school-map-card:hover{border-color:var(--green);box-shadow:var(--shadow)}
.school-map-card.selected{border:2px solid var(--green);background:var(--green-soft)}

/* phase badge */
.school-map-card .sc-phase{
  display:inline-block;
  background:var(--surface-2);
  color:var(--muted);
  border-radius:var(--r-pill);
  padding:2px 9px;
  font-size:var(--fs-small);
  font-weight:700;
  margin-bottom:7px;
}
.school-map-card b{
  display:block;
  font-size:var(--fs-secondary);
  color:var(--navy);
  line-height:1.25;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.school-map-card .sc-meta{
  display:block;
  font-size:var(--fs-small);
  color:var(--muted);
  margin-top:3px;
}
.school-map-card .sc-dist{
  display:block;
  font-size:var(--fs-h4);
  font-weight:800;
  color:var(--green-strong);
  margin-top:7px;
}
.school-map-card.selected .sc-dist{color:var(--green)}

/* drawer rows */
.school-drawer-row{padding:12px 6px;grid-template-columns:1fr auto;border-bottom:1px solid var(--line)}
.school-drawer-row b{font-size:var(--fs-secondary);color:var(--navy)}
.school-drawer-row small{font-size:var(--fs-small);color:var(--muted);margin-top:4px}
.school-drawer-row .sdr-dist{font-size:var(--fs-secondary);color:var(--green-strong);font-weight:800}
.school-drawer-row .sdr-name{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.school-drawer-row .sc-tag{font-size:var(--fs-small);font-weight:800;padding:2px 8px;border-radius:var(--r-pill);white-space:nowrap}
.school-drawer-row .sc-tag-rec{background:var(--green-soft);color:var(--green-strong)}
.school-drawer-row .sc-tag-rev{background:var(--amber-soft);color:var(--amber)}

/* ---------- 8. School detail panel ---------- */
.school-profile-compact{padding:22px 20px 28px}
.school-profile-head{padding-bottom:16px;border-bottom:1px solid var(--line)}
.school-profile-head h3{font-size:var(--fs-h3);line-height:1.2;margin:8px 0 4px;color:var(--navy)}
.school-profile-head p{font-size:var(--fs-secondary);color:var(--muted)}
.school-profile-badges{gap:6px;margin-top:10px}
.school-profile-badges span{background:var(--green-soft);color:var(--green-strong);border-radius:var(--r-pill);padding:5px 10px;font-size:var(--fs-small);font-weight:700}

.school-facts span,.school-facts b{font-size:var(--fs-secondary);padding:8px 0}
.school-facts span{color:var(--muted)}
.school-facts b{color:var(--ink)}

.school-accordion>summary{font-size:var(--fs-secondary);font-weight:700;color:var(--navy);padding:15px 12px}
.school-profile-compact .school-accordion>summary{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm)}
.school-profile-compact .school-accordion[open]>summary{background:var(--blue-soft);border-color:#cfe2f0}
.school-profile-compact .school-accordion-body{background:var(--surface);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r-sm) var(--r-sm)}

.school-placeholder{font-size:var(--fs-secondary);background:var(--surface-2);border-radius:var(--r-sm);padding:12px}
.school-profile-source{font-size:var(--fs-small);color:var(--faint);margin-top:14px}
.school-detail-panel{border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;background:var(--surface)}
.school-detail-top h3{font-size:var(--fs-h3)}
.school-detail-grid>div{background:var(--surface-2);border-radius:var(--r-sm);padding:14px}
.school-detail-grid small{font-size:var(--fs-small);color:var(--muted)}
.school-detail-grid strong{font-size:var(--fs-secondary);color:var(--navy)}
.school-detail-sections article{border:1px solid var(--line);border-radius:var(--r-md);padding:18px}
.school-detail-sections h4{font-size:var(--fs-h4)}
.school-detail-sections p{font-size:var(--fs-secondary);color:var(--muted)}
.school-detail-source{font-size:var(--fs-small);color:var(--faint)}

/* admissions + inspection cards */
.admissions-loading,.admissions-empty,.admissions-error{font-size:var(--fs-secondary);border-radius:var(--r-sm);padding:14px}
.admission-metric{background:var(--surface-2);border-radius:var(--r-md);padding:14px}
.admission-metric strong{color:var(--navy);font-size:22px}
.admission-metric span{color:var(--muted);font-size:var(--fs-small);margin-top:6px}
.admission-metrics{gap:10px}
.admissions-demand{font-size:var(--fs-secondary);padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm)}
.admissions-note,.school-data-note{font-size:var(--fs-small) !important;color:var(--faint) !important}
.admissions-history summary{font-size:var(--fs-secondary);font-weight:700;color:var(--green-strong)}
.admissions-history table{font-size:var(--fs-small)}
.admission-distance .distance-main{font-size:20px;color:var(--navy)}
.admission-distance .distance-secondary{font-size:var(--fs-small);color:var(--faint)}
.allocation-distance .distance-main{font-size:var(--fs-secondary)}
.allocation-distance .distance-secondary{font-size:var(--fs-small)}
.school-profile-compact .allocation-criterion b{font-size:var(--fs-secondary)}
.school-profile-compact .allocation-criterion>div:first-child span{font-size:var(--fs-small)}
.school-profile-compact .allocation-criterion-value>strong,.school-profile-compact .allocation-outcome b{font-size:var(--fs-secondary)}
.school-profile-compact .allocation-outcome span{font-size:var(--fs-small)}
.school-profile-compact .allocation-section-title{font-size:var(--fs-small)}

/* ---------- 9. Tabs ---------- */
.area-tabs-shell{border-bottom:1px solid var(--line);background:var(--surface)}
.area-tab{font-size:var(--fs-secondary);font-weight:700;color:var(--muted);padding:14px 20px 12px}
.area-tab:hover{color:var(--ink);background:var(--surface-2)}
.area-tab.active{color:var(--green-strong);border-bottom-color:var(--green)}
.tab-intro p{font-size:var(--fs-secondary);color:var(--muted)}
.tab-placeholder{padding:24px;border-radius:var(--r-md)}
.tab-placeholder small{font-size:var(--fs-small);font-weight:800;color:var(--green-strong)}
.tab-placeholder p{font-size:var(--fs-secondary)}
.more-link-card{border:1px solid var(--line);border-radius:var(--r-md);padding:20px;background:var(--surface)}
.more-link-card b{font-size:var(--fs-secondary)}
.more-link-card span{font-size:var(--fs-small);color:var(--muted)}

/* ---------- 10. Neighbourhood cards ---------- */
.neighbourhood-section{margin:var(--sp-7) 0}
.neighbourhood-head{margin-bottom:var(--sp-4)}
.neighbourhood-head h2{font-size:var(--fs-h2)}
.neighbourhood-head p{font-size:var(--fs-secondary);color:var(--muted);max-width:640px}
.neighbourhood-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}
.nearby-card{
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:18px;
  background:var(--surface);
  min-height:0;
  box-shadow:var(--shadow-sm);
}
.nearby-card h3{font-size:var(--fs-h4);margin:0}
.nearby-card .radius{font-size:var(--fs-small);color:var(--muted);background:var(--surface-2);border-radius:var(--r-pill);padding:4px 9px}
.nearby-item{padding:11px 0;border-top:1px solid var(--line)}
.nearby-item b{font-size:var(--fs-secondary)}
.nearby-item small{font-size:var(--fs-small);color:var(--faint);margin-top:2px}
.nearby-distance{font-size:var(--fs-small);font-weight:700;color:var(--green-strong)}
.nearby-loading{font-size:var(--fs-secondary);color:var(--faint)}
.nearby-source{font-size:var(--fs-small);color:var(--faint)}

/* ---------- 11. Housing / data cards / transactions ---------- */
.area-layout{grid-template-columns:minmax(0,1fr) 300px;gap:var(--sp-6)}
.stat-grid{grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}
.data-card{
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:18px;
  background:var(--surface);
  box-shadow:var(--shadow-sm);
}
.data-card small{font-size:var(--fs-small);color:var(--muted);margin:0 0 6px}
.data-card strong{font-size:26px;color:var(--navy)}
.data-card em{font-size:var(--fs-small);color:var(--faint);font-style:normal}
.transactions{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;margin-top:var(--sp-4);background:var(--surface)}
.transaction-row{grid-template-columns:1.5fr .8fr .8fr;border-bottom:1px solid var(--line)}
.transaction-row>*{padding:13px 16px;font-size:var(--fs-secondary)}
.transaction-row.head{background:var(--surface-2);font-weight:700;color:var(--navy)}
.side-card{border:1px solid var(--line);border-radius:var(--r-md);padding:18px;background:var(--surface)}
.side-card h3{font-size:var(--fs-h4)}
.side-card p{font-size:var(--fs-secondary);color:var(--muted)}
.council-box{border:1px solid var(--line);border-radius:var(--r-md);padding:20px;background:var(--surface)}
.council-box a{font-size:var(--fs-small)}

/* ---------- 12. Property / Council Tax / Energy ---------- */
.property-council-section{margin:var(--sp-7) 0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:24px}
.pc-head h2{font-size:var(--fs-h2)}
.pc-head p{font-size:var(--fs-secondary);color:var(--muted)}
.pc-select-label{font-size:var(--fs-small);font-weight:700;color:var(--muted)}
.pc-select-wrap select{font-size:var(--fs-secondary);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:13px 40px 13px 14px}
.pc-source{font-size:var(--fs-small);color:var(--faint)}
.pc-list{gap:8px}
.property-option{border:1px solid var(--line);border-radius:var(--r-sm);padding:14px}
.property-option strong{font-size:var(--fs-secondary)}
.property-option small{font-size:var(--fs-small);color:var(--faint)}
.property-option:hover{border-color:var(--green);background:var(--green-soft)}
.selected-home{border:1px solid #bfe4ca;border-radius:var(--r-md);padding:20px;background:var(--surface)}
.selected-home-title small{font-size:var(--fs-small);font-weight:800;color:var(--green-strong)}
.selected-home-title h3{font-size:var(--fs-h3)}
.selected-home-title p{font-size:var(--fs-secondary);color:var(--muted)}
.home-stat span{font-size:var(--fs-small);color:var(--muted)}
.home-stat strong{font-size:22px;color:var(--navy)}
.home-stat small{font-size:var(--fs-small);color:var(--faint)}
.ct-summary span{font-size:var(--fs-small);color:var(--muted)}
.ct-summary b{font-size:var(--fs-secondary)}

.energy-estimator{border:1px solid var(--line);border-radius:var(--r-md);padding:18px;background:var(--surface)}
.energy-kicker{font-size:var(--fs-small);font-weight:800;color:var(--green-strong)}
.energy-head h4{font-size:var(--fs-h4)}
.energy-head p{font-size:var(--fs-secondary);color:var(--muted)}
.energy-badge{font-size:var(--fs-small);color:var(--green-strong);background:var(--green-soft);border-radius:var(--r-pill);padding:6px 10px}
.energy-property-facts>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px}
.energy-property-facts span{font-size:var(--fs-small);color:var(--faint)}
.energy-property-facts b{font-size:var(--fs-secondary)}
.energy-people>b{font-size:var(--fs-secondary)}
.people-picker button{border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:11px 15px;font-size:var(--fs-secondary);font-weight:700}
.people-picker button.active{background:var(--green);border-color:var(--green);color:#fff}
.energy-result{padding:16px;border-radius:var(--r-md);background:var(--green-soft)}
.energy-result span{font-size:var(--fs-small);color:var(--green-strong)}
.energy-result strong{font-size:26px;color:var(--green-strong)}
.energy-result small{font-size:var(--fs-small);color:var(--muted)}
.energy-note{font-size:var(--fs-small) !important;color:var(--faint) !important}
.property-disclaimer{font-size:var(--fs-small) !important;color:var(--faint) !important}

/* ---------- 13. Footer ---------- */
.site-footer{background:var(--surface);border-top:1px solid var(--line);font-size:var(--fs-small);color:var(--muted)}
.site-footer a{color:var(--muted)}

/* ---------- 14. Buttons / controls (global floor) ---------- */
button,input,select{font-family:inherit}
.transactions-toggle{font-size:var(--fs-secondary);border-radius:var(--r-sm)}
.nearby-retry-btn{font-size:var(--fs-secondary)}

/* ---------- 15. Global "no tiny text" floor ----------
   Any rule still using a sub-12px size is bumped to 12px.
   Uses :where() to keep specificity low so nothing here wins
   over a more specific, intentional rule above. */
:where(.nearby-item small,.nearby-distance,.nearby-source,.data-card em,.property-source-note,
.property-option small,.property-disclaimer,.energy-note,.school-profile-source,
.school-placeholder,.tab-placeholder small,.school-detail-source,.admissions-note,
.school-data-note,.admission-distance .distance-secondary,.allocation-distance .distance-secondary,
.admissions-history td small,.pc-source,.selected-home-title small,.home-stat small,
.ct-summary span,.energy-result span,.energy-result small,.energy-kicker,.energy-badge,
.energy-property-facts span,.school-profile-compact .allocation-criterion>div:first-child span,
.school-profile-compact .admissions-history-count,.map-filter-note){
  font-size:var(--fs-small) !important;
}

/* ---------- 16. Full-bleed explorer re-assertion ----------
   The explorer (v4.9.1) applies body.ws-schools-active rules with
   higher specificity; re-assert the redesign sizes so they win. */
body.ws-schools-active .school-map-card{flex-basis:252px !important}
body.ws-schools-active .school-map-card b{font-size:var(--fs-secondary) !important}
body.ws-schools-active .school-map-card .sc-phase{font-size:var(--fs-small) !important}
body.ws-schools-active .school-map-card .sc-meta{font-size:var(--fs-small) !important}
body.ws-schools-active .school-map-card .sc-dist{font-size:var(--fs-h4) !important}
body.ws-schools-active .school-accordion>summary{font-size:var(--fs-secondary) !important}
body.ws-schools-active .school-facts span,
body.ws-schools-active .school-facts b{font-size:var(--fs-secondary) !important}
body.ws-schools-active .school-profile-head h3{font-size:var(--fs-h3) !important}
body.ws-schools-active .school-profile-head p{font-size:var(--fs-secondary) !important}
body.ws-schools-active .school-profile-compact{padding:22px 20px 30px !important}

/* ---------- 17. Explicit !important tiny-text catch-ups ----------
   Original CSS used !important on a few 8–9.5px rules that the
   :where() floor (zero specificity) cannot override. */
.school-profile-compact .admissions-note{font-size:var(--fs-small) !important;color:var(--faint) !important}

/* Mobile micro-text floor (responsive.css uses !important on 9–10px) */
@media(max-width:800px){
  .mobile-map-label,.map-status,.hint,.quick,.quick button,
  .promise-grid small,.mobile-value-strip small,.mobile-value-strip strong,
  .searchbox>button{font-size:var(--fs-small) !important}
  .searchbox>button{padding:0 14px !important}
}

/* ===== V2 — decision-first overview (hero verdict + dashboard + summary) ===== */
.area-head-sub{color:var(--muted);font-size:var(--fs-body);margin:.15rem 0 0}
.area-verdict{
  display:inline-flex;align-items:center;gap:.5rem;
  margin-top:.7rem;padding:.45rem .95rem;
  font-size:var(--fs-secondary);font-weight:800;color:var(--ink);
  background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-pill);
  box-shadow:var(--shadow-sm);
}
.area-verdict::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--green)}
.area-decision{margin-top:2px}
.area-verdict-loading{color:var(--muted);border-color:var(--line)}
.area-verdict-loading::before{background:var(--faint);animation:aw-pulse 1.2s ease-in-out infinite}
@keyframes aw-pulse{0%,100%{opacity:.35}50%{opacity:1}}
.area-reasons{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.reason-chip{font-size:var(--fs-small);font-weight:600;color:var(--ink);background:var(--green-soft);border:1px solid #bfe4ca;border-radius:var(--r-pill);padding:4px 12px;white-space:nowrap}

.area-overview{width:100%;box-sizing:border-box;max-width:1240px;margin:0 auto;padding:14px 24px 6px}
.glance-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.glance-card{
  display:flex;flex-direction:column;gap:.4rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  padding:18px 20px;box-shadow:var(--shadow-sm);
}
.glance-label{font-size:var(--fs-small);font-weight:600;color:var(--muted);letter-spacing:.01em}
.glance-card strong{font-size:var(--fs-h4);font-weight:800;color:var(--ink);line-height:1.15}
.glance-card small{font-size:var(--fs-small);color:var(--muted)}

.ai-summary{
  margin-top:12px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);padding:20px 22px;box-shadow:var(--shadow-sm);
}
.ai-summary-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.ai-summary-head .area-kicker{margin:0}
.ai-summary-head h2{margin:0;font-size:var(--fs-h3);font-weight:800;color:var(--ink);letter-spacing:-.01em}
.ai-summary-body{font-size:var(--fs-body);line-height:1.6;color:var(--ink);margin:0 0 12px;max-width:72ch}
.ai-summary-points{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ai-summary-points ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.ai-summary-points li{font-size:var(--fs-secondary);line-height:1.45;color:var(--ink);padding-left:22px;position:relative}
.ai-pros li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:800}
.ai-cons li::before{content:"✕";position:absolute;left:0;color:var(--red);font-weight:800}
body.ws-schools-active .area-overview{display:none}

@media(max-width:900px){
  .glance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .area-overview{padding:12px 16px 4px}
  .glance-grid{grid-template-columns:1fr 1fr;gap:8px}
  .glance-card{padding:12px 14px}
  .ai-summary{padding:16px}
  .ai-summary-points{grid-template-columns:1fr}
}

/* ===== Sprint 3 — Decision Intelligence ===== */
/* School decision card */
.sc-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:3px}
.sc-name{display:block;font-size:var(--fs-body);font-weight:800;color:var(--ink);line-height:1.25}
.sc-stars{display:block;font-size:var(--fs-small);letter-spacing:1px;color:#d97706;line-height:1;margin-top:2px}
.sc-meta{display:block;font-size:var(--fs-small);color:var(--muted);line-height:1.4;margin-top:2px}
.sc-adm{display:block;font-size:var(--fs-small);color:var(--ink);font-weight:600;margin-top:3px}
.sc-tag{font-size:var(--fs-small);font-weight:800;padding:2px 8px;border-radius:var(--r-pill);letter-spacing:.02em;white-space:nowrap}
.sc-tag-rec{background:var(--green-soft);color:var(--green-strong)}
.sc-tag-rev{background:var(--amber-soft);color:var(--amber)}

/* AI summary checklist */
.ai-checklist{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:7px}
.ai-checklist li{display:flex;gap:9px;font-size:var(--fs-secondary);line-height:1.45;color:var(--ink);align-items:flex-start}
.ai-checklist .ai-mark{font-weight:800;flex:0 0 auto}
.ai-checklist .ai-pos .ai-mark{color:var(--green)}
.ai-checklist .ai-neg .ai-mark{color:var(--amber)}
.ai-checklist .ai-loading{color:var(--muted);font-style:italic}

/* AI overall verdict + confidence + basis */
.ai-overall{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}
.ai-overall-label{font-size:var(--fs-small);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.ai-overall-verdict{font-size:var(--fs-h4);font-weight:800;color:var(--ink)}
.ai-confidence{font-size:var(--fs-small);font-weight:700;padding:2px 10px;border-radius:var(--r-pill)}
.ai-confidence-high{background:var(--green-soft);color:var(--green-strong)}
.ai-confidence-medium{background:var(--amber-soft);color:var(--amber)}
.ai-confidence-low{background:var(--surface-2);color:var(--muted)}
.ai-basis{margin-top:10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ai-basis-label{font-size:var(--fs-small);color:var(--muted)}
.ai-basis-chip{font-size:var(--fs-small);font-weight:700;color:var(--ink);background:var(--surface-2);padding:3px 10px;border-radius:var(--r-pill)}

/* Top picks strip */
.school-top-picks{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:6px 0;scrollbar-width:none}
.school-top-picks::-webkit-scrollbar{display:none}
.tp-head{font-size:var(--fs-small);font-weight:800;color:var(--ink);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.tp-chip{display:flex;flex-direction:column;gap:1px;padding:6px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);white-space:nowrap;cursor:pointer;text-align:left;flex:0 0 auto}
.tp-chip b{font-size:var(--fs-small);font-weight:800;color:var(--green-strong)}
.tp-chip span{font-size:var(--fs-small);color:var(--ink);font-weight:600}
.tp-chip:hover{border-color:var(--green)}
