/*
  Regional Intelligence Dashboard — Premium Education UI v66.1.1 (rounded controls and form refinements)
  Visual-only layer; Release 1 application behaviour and data interfaces remain intact.
  Scoped to the deployed dashboard. Do not delete the original rollback bundle.
*/
:root {
  --ri-navy:#061b3a;
  --ri-accent:#0891b2;
  --ri-outline:#e2e8f0;
  --ri-card-radius:18px;
  --ri-control-radius:13px;
  --ri-card-shadow:0 6px 22px rgba(15,23,42,.055);
  --ri-focus: #0891b2;
}
html { scroll-padding-top:82px; }
#root, #root > div, main { min-width:0; }
body { -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
:where(button,a,input,select,textarea):focus-visible {
  outline:2px solid var(--ri-focus);
  outline-offset:2px;
}
main > header.sticky {
  z-index:30;
  min-height:64px;
  padding-block:10px!important;
  box-shadow:0 1px 0 rgba(6,27,58,.045)!important;
  border-bottom:1px solid var(--ri-outline);
}
html:not(.dark-theme) main > header.sticky { background:rgba(255,255,255,.97)!important; }
/* Sidebar: keep iconography already rendered by React; no duplicate icons injected. */
.premium-sidebar { min-width:0; }
.premium-sidebar-brand { gap:9px!important; padding-bottom:11px!important; }
.premium-government-logo { width:47px!important; height:47px!important; padding:6px!important; border-radius:11px!important; }
.premium-menu-search { min-height:41px; margin-top:12px!important; padding:8px 10px!important; border-radius:9px!important; }
.premium-menu-search input { min-width:0; min-height:27px; }
.premium-menu-search > span.text-sky-300 {
  flex:0 0 19px;
  width:19px;
  height:19px;
  overflow:hidden;
  font-size:0;
  line-height:0;
  background:center / 19px 19px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237dd3fc' stroke-width='1.85' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.8' cy='10.8' r='6.5'/%3E%3Cpath d='m16 16 5 5'/%3E%3C/svg%3E");
}
.premium-nav-scroll { margin-top:11px!important; padding-bottom:12px!important; }
.premium-nav-scroll.space-y-5 > :not([hidden]) ~ :not([hidden]) { margin-top:10px!important; }
.premium-nav-group-button { min-height:28px!important; padding:3px 1px 6px!important; font-size:10.5px!important; letter-spacing:.065em!important; }
.premium-group-dot { width:5px!important; height:5px!important; }
.premium-nav-panel { border-radius:11px!important; overflow:hidden; }
.premium-nav-item {
  min-height:45px!important;
  padding:7px 9px!important;
  gap:9px!important;
  transition:background-color .15s ease,color .15s ease!important;
}
.premium-nav-item:hover { transform:none!important; }
.premium-nav-icon { width:32px!important; height:32px!important; border-radius:9px!important; box-shadow:inset 0 0 0 1px rgba(148,163,184,.14)!important; }
.premium-nav-icon svg { width:19px!important; height:19px!important; }
.premium-nav-label { font-size:12.8px!important; line-height:1.25!important; font-weight:780!important; }
.premium-nav-arrow { font-size:0!important; width:9px; height:13px; display:flex; align-items:center; flex:0 0 9px; opacity:.7; }
.premium-nav-arrow::after { content:""; width:7px; height:7px; display:block; border-top:1.8px solid currentColor; border-right:1.8px solid currentColor; transform:rotate(45deg); }
.premium-nav-item-active { box-shadow:inset 3px 0 #38bdf8!important; }
/* Page rhythm: eliminate excessive whitespace without hiding information. */
main > div[class*="p-4"] { padding:18px!important; }
main > div[class*="p-4"] > :first-child { margin-top:0; }
main .grid.gap-4 { gap:13px!important; }
main .grid.gap-3 { gap:11px!important; }
main .mb-6 { margin-bottom:18px!important; }
main .mb-5 { margin-bottom:15px!important; }
main .mb-4 { margin-bottom:14px!important; }
main .mt-6 { margin-top:18px!important; }
main .mt-5 { margin-top:16px!important; }
main .mt-4 { margin-top:13px!important; }
/* Cards: neutral education palette, content-driven heights and consistent edge treatment. */
main :is(section,article,div)[class*="rounded-2xl"][class*="bg-white"],
main :is(section,article,div)[class*="rounded-xl"][class*="bg-white"][class*="border"] {
  border-radius:var(--ri-card-radius)!important;
}
main :is(section,article,div)[class*="shadow-"][class*="bg-white"][class*="border"] {
  box-shadow:var(--ri-card-shadow)!important;
}
main :is(section,article,div).p-5[class*="bg-white"][class*="border"] { padding:16px!important; }
main :is(section,article,div).p-6[class*="border"] { padding:18px!important; }
main .group[class*="border-t-4"] {
  min-height:0!important;
  padding:14px!important;
  border-radius:12px!important;
  box-shadow:var(--ri-card-shadow)!important;
  transition:box-shadow .16s ease,border-color .16s ease!important;
}
main .group[class*="border-t-4"]:hover { box-shadow:0 8px 26px rgba(15,23,42,.09)!important; }
main .group[class*="border-t-4"] p.mt-3 { margin-top:9px!important; }
main .group[class*="border-t-4"] p.mt-2 { margin-top:7px!important; }
main .group[class*="border-t-4"] [class*="text-2xl"] { line-height:1.22; font-variant-numeric:tabular-nums; }
main .group[class*="border-t-4"] [class*="line-clamp-2"] { line-height:1.35; }
main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] {
  padding:19px 20px!important;
  margin-bottom:18px!important;
  border-radius:14px!important;
}
main div[class*="bg-gradient-to-br"] h1 { font-size:clamp(1.45rem,2vw,1.95rem)!important; line-height:1.16!important; margin-top:7px!important; }
main div[class*="bg-gradient-to-br"] p[class*="leading-6"] { line-height:1.48!important; margin-top:7px!important; }
/* Charts & infographic blocks remain readable while using less vertical space. */
main .infographic-card { padding:15px!important; border-radius:13px!important; box-shadow:var(--ri-card-shadow)!important; }
main section[class*="shadow-"] > .mt-5.h-72 { height:15.5rem!important; margin-top:14px!important; }
main .recharts-wrapper, main .recharts-responsive-container { min-width:0; }
/* Dense tables: retain horizontal scrolling rather than compressing columns. */
main .overflow-auto:has(> table),main .overflow-x-auto { -webkit-overflow-scrolling:touch; overscroll-behavior-inline:contain; }
main table { width:100%; border-collapse:separate; border-spacing:0; font-size:12.75px; }
main table thead th { padding:10px 12px!important; font-size:10.5px; letter-spacing:.045em; line-height:1.35; }
main table tbody td { padding:10px 12px!important; vertical-align:middle; line-height:1.4; }
main table tbody tr:hover { background-color:rgba(8,145,178,.035); }
main table tbody td button, main table tbody td a[role="button"] {
  min-height:36px!important;
  padding:7px 12px!important;
  border-radius:8px!important;
  font-size:12px;
}
main table tbody td span.rounded-full,
main table tbody td [class*="rounded-full"] { min-height:28px!important; padding:5px 10px!important; border-radius:8px!important; }
/* Controls: narrow affordances, clear labels, and reliable focus states. */
main :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  max-width:100%;
  min-height:39px;
  border-radius:var(--ri-control-radius)!important;
}
main textarea { min-height:85px; resize:vertical; }
main button,main a[role="button"] { border-radius:var(--ri-control-radius)!important; }
main :is(button,a[role="button"]) { max-width:100%; }
main button:disabled { cursor:not-allowed; }
main label { min-width:0; }
main :is(td,th,article,section) { overflow-wrap:break-word; }
/* Images: never stretch school crests, official seals, or real user photographs. */
main img { max-width:100%; object-fit:contain; }
main img[class*="rounded-full"] { aspect-ratio:1 / 1; object-fit:cover; }
main img[class*="object-cover"] { object-fit:cover; }
main .min-w-0 { min-width:0; }
/* Keep modal headers, scroll containers and overlay controls operable. */
main [role="dialog"] { max-width:min(100%,960px); }
@media (min-width:1024px) {
  .premium-sidebar {
    position:sticky!important;
    top:0;
    height:100vh;
    height:100dvh;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    padding:15px!important;
  }
  .premium-nav-scroll { min-height:0; flex:1; overflow-y:auto; }
  main > div[class*="p-4"] { padding:19px 22px!important; }
}
@media (max-width:1023.98px) {
  .premium-sidebar { height:100vh; height:100dvh; display:flex; flex-direction:column; overflow:hidden; }
  .premium-nav-scroll { min-height:0; flex:1; overflow-y:auto; }
  main > header.sticky { padding:9px 14px!important; }
  main > div[class*="p-4"] { padding:14px!important; }
}
@media (max-width:639.98px) {
  main > header.sticky { min-height:57px; gap:8px; }
  main > header.sticky > div:first-of-type { min-width:0; }
  main > header.sticky p { max-width:35vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  main .grid.gap-4 { gap:11px!important; }
  main .grid.gap-3 { gap:10px!important; }
  main > div[class*="p-4"] { padding:11px!important; }
  main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] { padding:14px!important; }
  main div[class*="bg-gradient-to-br"] h1 { font-size:1.45rem!important; }
  main :is(section,article,div).p-5[class*="bg-white"][class*="border"] { padding:13px!important; }
  main .group[class*="border-t-4"] { padding:12px!important; }
  main table thead th,main table tbody td { padding:9px 10px!important; }
  main table tbody td button,main table tbody td a[role="button"] { min-height:44px!important; }
  main :is(button,a[role="button"]) { min-height:40px; }
  main :is(input:not([type="checkbox"]):not([type="radio"]),select) { min-height:42px; }
  .premium-nav-item { min-height:46px!important; }
}
@media (prefers-reduced-motion:reduce) {
  .premium-nav-item, main .group[class*="border-t-4"] { transition:none!important; }
}
@media print {
  .premium-sidebar, main > header.sticky { display:none!important; }
  main > div[class*="p-4"] { padding:0!important; }
  main :is(section,article,div)[class*="shadow-"] { box-shadow:none!important; }
}

/* v66.1 QA: Correct Add/Edit School modal on phones. This modal is mounted
   into document.body by the established Release 1 workflow, not into main. */
#regdash-school-overlay { box-sizing:border-box; }
#regdash-school-overlay > div { box-sizing:border-box; }
#regdash-school-form { box-sizing:border-box; }
#regdash-school-form :is(input,select,textarea) {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  max-width:100%;
}
#regdash-school-form > div[style*="grid-template-columns"] > * { min-width:0; }
@media (max-width: 700px) {
  #regdash-school-overlay { padding:12px!important; }
  #regdash-school-overlay > div {
    width:100%!important;
    max-width:100%!important;
    max-height:calc(100dvh - 24px)!important;
    border-radius:12px!important;
  }
  #regdash-school-overlay > div > div:first-child {
    padding:17px!important;
    gap:10px!important;
    align-items:start!important;
  }
  #regdash-school-overlay > div > div:first-child > div > div:first-child {
    font-size:clamp(20px,5.5vw,26px)!important;
    line-height:1.2!important;
  }
  #regdash-school-overlay > div > div:first-child > div > div:nth-child(2) {
    font-size:13px!important;
    line-height:1.45!important;
    margin-top:6px!important;
  }
  #regdash-school-overlay > div > div:first-child > button {
    flex-shrink:0;
    padding:10px 12px!important;
    font-size:12px!important;
    border-radius:9px!important;
  }
  #regdash-school-form { padding:16px!important; }
  #regdash-school-form > div[style*="grid-template-columns"] {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
  }
  #regdash-school-form > div[style*="grid-template-columns"] > div { min-width:0; }
  #regdash-school-form > div:last-child { gap:9px!important; }
  #regdash-school-form > div:last-child > button {
    min-height:44px;
    padding:11px 14px!important;
    border-radius:9px!important;
  }
}
@media (max-width: 479.98px) {
  #regdash-school-overlay > div > div:first-child { padding:15px!important; }
  #regdash-school-form { padding:15px!important; }
  #regdash-school-form > div[style*="grid-template-columns"] {
    grid-template-columns:minmax(0,1fr)!important;
  }
  #regdash-school-form label { min-width:0; }
  #regdash-school-form input, #regdash-school-form select { min-height:46px; }
}
@media (max-width: 639.98px) {
  /* Prevent data-driven chart cards from expanding the root viewport when the
     slide-out menu opens; internal scroll containers remain scrollable. */
  /* Recharts labels set an intrinsic minimum width. Constrain the three-card
     grid track so responsive cards cannot widen the entire document. */
  main .grid:has(> .infographic-card) { grid-template-columns:minmax(0,1fr)!important; }
  main .infographic-card { min-width:0!important;max-width:100%!important; }
  main .infographic-card > .flex.items-start.justify-between { flex-wrap:wrap;gap:7px; }
  main .recharts-responsive-container { max-width:100%!important; }
}


/* v66.1.1 — Premium rounded controls, forms and spatial rhythm.
   Scoped presentation-only rules. No new icons, buttons, data fetches or event handlers. */
:root {
  --ri-surface:#ffffff;
  --ri-surface-subtle:#f8fbff;
  --ri-input-border:#d8e4f0;
  --ri-soft-shadow:0 4px 16px rgba(8,28,59,.042),0 14px 32px rgba(8,28,59,.035);
}
/* Keep the header anchored; unify compact command controls without touching status pills. */
main > header.sticky :is(button,a):not([class*="rounded-full"]) {
  border-radius:13px!important;
  transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease;
}
main > header.sticky button:focus-visible {outline:2px solid #0891b2;outline-offset:2px;}
.premium-menu-search {border-radius:13px!important;}
.premium-nav-panel {border-radius:15px!important;}
.premium-nav-icon {border-radius:11px!important;}
.premium-nav-item {border-radius:9px!important;}
.premium-sidebar-brand .premium-government-logo {border-radius:13px!important;}
/* Section headings and panels: compact, content-led, no artificial matching heights. */
main h1 {letter-spacing:-.036em;}
main h2,main h3 {letter-spacing:-.023em;}
main section[class*="bg-white"][class*="border"],
main article[class*="bg-white"][class*="border"] {
  border-color:#e1e9f3;
  box-shadow:var(--ri-soft-shadow)!important;
}
main .grid > :is(section,article,div)[class*="bg-white"][class*="border"] {min-width:0;align-self:start;}
/* The hero was unnecessarily tall because controls, score and title were far apart. */
main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] {
  padding:16px 20px!important;
  margin-bottom:14px!important;
  border-radius:18px!important;
  box-shadow:var(--ri-soft-shadow)!important;
}
main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] > .flex {
  gap:12px!important;
}
main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] h1 {
  margin-top:5px!important;
  font-size:clamp(1.45rem,1.95vw,1.88rem)!important;
}
main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] p[class*="leading-6"] {
  margin-top:5px!important;
  line-height:1.42!important;
}
main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] .flex.flex-col.items-start.gap-3 {
  gap:8px!important;
}
main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] .flex.items-center.gap-3.rounded-xl {
  border-radius:14px!important;
  padding:7px 11px!important;
  box-shadow:0 3px 12px rgba(8,28,59,.05)!important;
}
main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] .flex.flex-wrap.gap-3 {
  gap:7px!important;
}
main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] select {
  min-height:37px!important;
  padding-block:7px!important;
}
/* Tighter but readable metrics; no equal-height stretching. */
main .group[class*="border-t-4"] {
  padding:13px!important;
  border-radius:17px!important;
  box-shadow:var(--ri-soft-shadow)!important;
}
main .group[class*="border-t-4"] p.mt-3 {margin-top:7px!important;}
main .group[class*="border-t-4"] [class*="text-2xl"] {letter-spacing:-.035em;}
main .infographic-card {border-radius:17px!important;}
/* Rounded buttons. Semantic colours and descriptive labels are preserved. */
main button:not([class*="rounded-full"]),
main a[role="button"]:not([class*="rounded-full"]) {
  border-radius:13px!important;
  line-height:1.32;
}
main :is(button,a[role="button"]):not(:disabled) {transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease;}
main :is(button,a[role="button"]):not(:disabled):focus-visible {box-shadow:0 0 0 3px rgba(8,145,178,.15);}
/* Action rows and filter controls: clean aligned boundaries and consistent touch sizes. */
main table tbody td :is(button,a[role="button"]) {border-radius:11px!important;}
main table thead th {padding-block:9px!important;}
main table tbody td {padding-block:9px!important;}
main table :is(button,a) {white-space:normal;overflow-wrap:anywhere;}
main :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  border-radius:13px!important;
  min-width:0;
  background-clip:padding-box;
  transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
main :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):not([aria-invalid="true"]):focus-visible {
  box-shadow:0 0 0 3px rgba(8,145,178,.13);
}
main label {line-height:1.45;}
main :is(input,textarea)::placeholder {color:#91a1b6;opacity:1;}
main textarea {line-height:1.5;}
main [class*="bg-slate-50"][class*="rounded-xl"][class*="border"] {border-radius:14px!important;}
main [class*="bg-cyan-50"][class*="rounded-2xl"][class*="border"] {border-radius:15px!important;}
main .grid.gap-4 {gap:12px!important;}
main .grid.gap-3 {gap:10px!important;}
main .mb-6 {margin-bottom:15px!important;}
main .mb-5 {margin-bottom:13px!important;}
main .mb-4 {margin-bottom:12px!important;}
main .mt-6 {margin-top:15px!important;}
main .mt-5 {margin-top:13px!important;}
main .mt-4 {margin-top:11px!important;}
/* The legacy school dialog is portal-mounted outside main and contains inline styles. */
#regdash-school-overlay > div {
  border-radius:20px!important;
  box-shadow:0 20px 65px rgba(4,23,53,.23)!important;
}
#regdash-school-overlay > div > div:first-child {
  padding:19px 22px 17px!important;
  gap:12px!important;
}
#regdash-school-overlay > div > div:first-child > div > div:first-child {
  font-size:clamp(21px,2.3vw,27px)!important;
  letter-spacing:-.03em;
}
#regdash-school-overlay > div > div:first-child > div > div:nth-child(2) {
  margin-top:6px!important;
  font-size:13px!important;
  line-height:1.45!important;
  font-weight:650!important;
}
#regdash-school-overlay > div > div:first-child > button,
#regdash-school-form > div:last-child > button {
  border-radius:13px!important;
  padding:10px 16px!important;
  min-height:40px;
}
#regdash-school-form {padding:19px 22px 22px!important;}
#regdash-school-form > div[style*="grid-template-columns"] {gap:13px!important;}
#regdash-school-form label {gap:6px!important;font-size:11.5px!important;letter-spacing:.035em!important;}
#regdash-school-form :is(input,select,textarea) {
  padding:11px 13px!important;
  min-height:43px;
  font-size:14px!important;
  border-radius:13px!important;
}
#regdash-school-form :is(input,select,textarea):focus-visible {
  outline:2px solid #0891b2!important;
  outline-offset:1px;
  box-shadow:0 0 0 3px rgba(8,145,178,.12);
}
#regdash-school-form > div[style*="margin:24px"] {margin-top:17px!important;}
#regdash-school-form > div:last-child {margin-top:19px!important;padding-top:14px!important;}
@media (min-width:1024px) {
  main > div[class*="p-4"] {padding:16px 20px!important;}
  main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] > .flex {align-items:center!important;}
}
@media (max-width:1023.98px) {
  main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] {padding:14px 16px!important;}
}
@media (max-width:639.98px) {
  main > div[class*="p-4"] {padding:10px!important;}
  main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] {padding:13px!important;margin-bottom:12px!important;}
  main div[class*="bg-gradient-to-br"][class*="rounded-2xl"][class*="border"] > .flex {gap:10px!important;}
  main .group[class*="border-t-4"] {padding:12px!important;}
  main :is(button,a[role="button"]) {min-height:40px;}
  main table tbody td :is(button,a[role="button"]) {min-height:42px!important;}
  #regdash-school-overlay > div {border-radius:17px!important;}
  #regdash-school-overlay > div > div:first-child {padding:14px!important;}
  #regdash-school-form {padding:14px!important;}
  #regdash-school-form :is(input,select,textarea) {min-height:45px;}
}
@media (prefers-reduced-motion: reduce) {
  main :is(button,a[role="button"],input,select,textarea),
  main > header.sticky :is(button,a) {transition:none!important;}
}

/* v66.1.2 narrow-phone containment: prevent long report source identifiers
   inside chart card headings from widening the entire viewport. */
@media (max-width: 639.98px) {
  main .infographic-card > .flex.items-start > :first-child {min-width:0;flex:1 1 0%;}
  main .infographic-card :is(h3,p) {min-width:0;max-width:100%;overflow-wrap:anywhere;}
}
