:root {
  --navy: #061b3f;
  --navy-deep: #020b1c;
  --blue: #0877ed;
  --green: #18b95d;
  --red: #ee3946;
  --yellow: #f5b900;
  --ink: #081a35;
  --paper: #f4f8ff;
  --line: rgba(110, 158, 221, 0.22);
  --font-body: "Segoe UI", Arial, sans-serif;
  --font-display: "Segoe UI Variable Display", "Segoe UI", Arial, sans-serif;
  --page-gutter: clamp(22px, 6vw, 96px);
  --content-max-width: 1600px;
  --page-max: var(--content-max-width);
  --section-space-sm: clamp(28px, 2vw, 36px);
  --section-space-md: clamp(30px, 2.25vw, 36px);
  --section-space-lg: clamp(58px, 5.6vw, 78px);
  --module-padding-block: var(--section-space-md);
  --module-padding-inline: var(--page-gutter);
  --internal-hero-title-size: clamp(1.8rem, 2.4vw, 2.4rem);
  --internal-hero-description-size: .84rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background:
    radial-gradient(circle at 3% 18%, rgba(20, 121, 237, 0.08), transparent 23rem),
    radial-gradient(circle at 97% 45%, rgba(37, 191, 104, 0.07), transparent 24rem),
    #f6f9ff;
  font: 17px/1.57 var(--font-body);
  overflow-x: hidden;
}
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }

.site-header {
  position: fixed;
  z-index: 50;
  top: 14px;
  left: 0;
  width: 100%;
  pointer-events: none;
}
.header-inner {
  width: calc(100% - 6cm);
  max-width: var(--page-max);
  margin: auto;
  display: flex;
  align-items: stretch;
  gap: 10px;
}
.nav-panel,
.flag-button,
.theme-toggle,
.login-button {
  pointer-events: auto;
  border: 1px solid rgba(255,255,255,.45);
  box-shadow: 0 12px 35px rgba(0, 13, 42, .18);
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
}
.nav-panel {
  min-width: 0;
  flex: 1;
  min-height: 62px;
  padding: 8px 12px;
  display: flex;
  align-items: center;
  border-radius: 17px;
  background: rgba(236, 244, 255, .82);
}
.brand {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 9px;
  padding-right: 18px;
  font-family: var(--font-display);
  font-size: .98rem;
  font-weight: 800;
  white-space: nowrap;
}
.brand img,
.mini-brand img,
.footer-brand img,
.console-logo img {
  width: 37px;
  height: 37px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 2px rgba(74, 145, 236, .28), 0 4px 15px rgba(12, 54, 108, .16);
}
.desktop-nav {
  min-width: 0;
  flex: 1;
  display: flex;
  justify-content: space-around;
  align-items: stretch;
  border-left: 1px solid rgba(10, 46, 94, .1);
}
.desktop-nav a {
  position: relative;
  flex: 1;
  display: grid;
  place-items: center;
  padding: 0 13px;
  color: #0c2a52;
  font-size: .91rem;
  font-weight: 700;
  white-space: nowrap;
}
.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 25%;
  right: 25%;
  bottom: 2px;
  height: 2px;
  border-radius: 99px;
  background: var(--nav-color, var(--blue));
  transform: scaleX(0);
  transition: transform .25s ease;
}
.desktop-nav a:hover::after,
.desktop-nav a:focus-visible::after { transform: scaleX(1); }
.mobile-toggle { display: none; }
.language { position: relative; pointer-events: auto; }
.flag-button,
.theme-toggle,
.login-button {
  height: 62px;
  border-radius: 17px;
  color: white;
  background: rgba(4, 26, 62, .72);
}
.theme-toggle {
  position: relative;
  width: 62px;
  flex: 0 0 62px;
  display: grid;
  place-items: center;
  padding: 0;
  overflow: hidden;
  font-size: 1.2rem;
}
.theme-toggle span {
  position: absolute;
  display: grid;
  place-items: center;
  transition: opacity .25s ease, transform .35s ease;
}
.moon-icon { opacity: 0; transform: translateY(18px) rotate(-35deg); }
html[data-theme="light"] .sun-icon { opacity: 0; transform: translateY(-18px) rotate(45deg); }
html[data-theme="light"] .moon-icon { opacity: 1; transform: translateY(0) rotate(0); }
.flag-button {
  width: 86px;
  padding: 0 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 7px;
  font-weight: 800;
}
.flag-button b { font-size: .75rem; transition: transform .2s; }
.language.open .flag-button b { transform: rotate(180deg); }
.br-flag {
  position: relative;
  width: 27px;
  height: 19px;
  flex: 0 0 27px;
  overflow: hidden;
  display: inline-block;
  border-radius: 3px;
  background: transparent;
  box-shadow: 0 0 0 1px rgba(66,94,126,.25);
}
.br-flag::before,
.br-flag i { display: none; }
.br-flag img { width: 100%; height: 100%; object-fit: cover; }
.login-button {
  min-width: 104px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  transition: background .2s, transform .2s;
}
.login-button:hover { transform: translateY(-2px); background: rgba(20, 121, 237, .9); }
.language-menu {
  position: absolute;
  top: calc(100% + 9px);
  right: 0;
  width: 220px;
  padding: 8px;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 17px;
  color: #0c294e;
  background: rgba(239, 246, 255, .96);
  box-shadow: 0 20px 50px rgba(1, 18, 48, .25);
  transform: translateY(-8px);
  opacity: 0;
  visibility: hidden;
  transition: .2s ease;
}
.language.open .language-menu { transform: translateY(0); opacity: 1; visibility: visible; }
.language-title {
  padding: 4px 6px 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #6b7f9c;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.language-title button { border: 0; font-size: 1.4rem; color: #637791; background: transparent; }
.language-menu > button:not(.language-title button) {
  width: 100%;
  padding: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  border-radius: 10px;
  color: #183656;
  background: transparent;
  text-align: left;
  font-weight: 650;
}
.language-menu > button:hover,
.language-menu > button.selected { color: white; background: linear-gradient(135deg, #1679e8, #0d58bf); }
.language-menu > button.unavailable { position: relative; opacity: .48; cursor: not-allowed; }
.language-menu > button.unavailable::after { content: ""; position: absolute; left: 10px; right: 10px; top: 50%; height: 1px; background: #9aa7b7; transform: rotate(-3deg); }
.language-menu > button.unavailable:hover { color: inherit; background: transparent; }

/* Cabeçalho editorial e menu lateral */
.site-header {
  position: fixed;
  z-index: 70;
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  transform: none;
  color: #14233b;
  background: rgba(255,255,255,.98);
  border-bottom: 1px solid #dde5ef;
  box-shadow: 0 6px 24px rgba(3,21,48,.09);
  pointer-events: auto;
}
.header-primary {
  position: relative;
  height: 62px;
  padding: 0 clamp(18px,3.2vw,56px);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  border-bottom: 1px solid #e4eaf2;
}
.menu-trigger {
  width: max-content;
  padding: 10px 4px;
  display: inline-flex;
  align-items: center;
  gap: 11px;
  border: 0;
  color: #1a2b45;
  background: transparent;
  font-size: .82rem;
  font-weight: 720;
}
.menu-trigger i { color: #0b68df; font-size: 1.35rem; }
.menu-color-grid { width: 20px; height: 20px; display: grid !important; grid-template-columns: repeat(3,1fr); gap: 2px; }
.menu-color-grid b { display: block; border-radius: 1.5px; background: #1479ed; }
.menu-color-grid b:nth-child(2),
.menu-color-grid b:nth-child(7) { background: #f14545; }
.menu-color-grid b:nth-child(3),
.menu-color-grid b:nth-child(6) { background: #ffc12d; }
.menu-color-grid b:nth-child(4),
.menu-color-grid b:nth-child(8) { background: #25bf68; }
.menu-trigger:hover span { color: #0b68df; }
.header-brand {
  justify-self: center;
  padding: 0;
  color: #0a56bd;
  font-size: 1.18rem;
}
.header-brand img { width: 44px; height: 44px; padding: 6px; object-fit: contain !important; object-position: center; background: white; box-shadow: 0 0 0 2px #d9e7f5, 0 5px 16px rgba(13,86,189,.17); }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 9px; }
.header-actions .flag-button,
.header-actions .theme-toggle,
.header-actions .login-button {
  height: 40px;
  border: 1px solid #d5dfeb;
  border-radius: 11px;
  color: #17304f;
  background: #f8fbff;
  box-shadow: none;
  backdrop-filter: none;
}
.header-actions .flag-button { width: 59px; }
.header-actions .theme-toggle { width: 40px; flex-basis: 40px; }
.header-actions .login-button { min-width: 91px; padding: 0 18px; border-color: #0d68d8; color: white; background: #0d68d8; }
.header-actions .login-button:hover { color: white; background: #0755b6; }
.header-actions .language-menu { top: calc(100% + 13px); }
.header-secondary {
  height: 40px;
  padding: 0 clamp(18px,3.2vw,56px);
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: clamp(12px,4vw,62px);
  overflow-x: auto;
  border: 0;
  background: #fff;
  scrollbar-width: none;
}
.header-secondary::-webkit-scrollbar { display: none; }
.header-secondary a {
  position: relative;
  flex: 0 0 auto;
  padding: 0 8px;
  display: grid;
  place-items: center;
  color: #17304f;
  font-size: .76rem;
  font-weight: 780;
}
.header-secondary a::after { left: 8px; right: 8px; bottom: 0; }
.site-header + .site-menu-layer + main { padding-top: 102px; }
.site-header + .site-menu-layer + .school-shell { padding-top: 102px; }

.site-menu-layer { position: fixed; z-index: 100; inset: 0; }
.site-menu-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(2,10,24,.66); opacity: 0; transition: opacity .25s ease; }
.site-menu-drawer {
  position: absolute;
  inset: 0 auto 0 0;
  width: min(300px,calc(100vw - 34px));
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  color: #17243a;
  background: #fff;
  box-shadow: 22px 0 65px rgba(0,0,0,.27);
  transform: translateX(-102%);
  transition: transform .28s cubic-bezier(.2,.75,.25,1);
}
.site-menu-layer.open .site-menu-backdrop { opacity: 1; }
.site-menu-layer.open .site-menu-drawer { transform: translateX(0); }
.drawer-head { min-height: 86px; padding: 16px 14px 16px 20px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #e4e9ef; }
.drawer-account { min-width: 0; flex: 1; display: flex; align-items: center; gap: 13px; }
.drawer-account > i { width: 35px; height: 35px; display: grid; place-items: center; border: 1px solid #bdd5f3; border-radius: 50%; color: #0967dc; font-size: 1.05rem; }
.drawer-account span { min-width: 0; display: grid; line-height: 1.25; }
.drawer-account b { font-size: .88rem; }
.drawer-account small { color: #7b8796; font-size: .66rem; }
.close-site-menu { width: 38px; height: 38px; border: 0; border-radius: 50%; color: #58677a; background: #f0f4f8; font-size: 1.45rem; }
.drawer-navigation,
.drawer-utilities { padding: 13px; display: grid; gap: 4px; }
.drawer-navigation a,
.drawer-utilities a { min-height: 48px; padding: 9px 11px; display: flex; align-items: center; gap: 13px; border-radius: 9px; color: #293647; font-size: .86rem; font-weight: 720; }
.drawer-navigation a:hover,
.drawer-utilities a:hover { color: #095fc9; background: #eef6ff; }
.drawer-navigation a i,
.drawer-utilities a i { width: 31px; height: 31px; flex: 0 0 31px; display: grid; place-items: center; border-radius: 8px; color: white; background: var(--nav-color,#126ad7); font-size: .9rem; }
.drawer-navigation a:nth-child(2) i { background: #18a85b; }
.drawer-navigation a:nth-child(3) i { background: #ef8c19; }
.drawer-navigation a:nth-child(4) i { background: #8c4ed3; }
.drawer-utilities a i { color: #1769cd; background: #e9f3ff; }
.drawer-divider { height: 1px; background: #e3e8ee; }
.drawer-footer { margin-top: auto; padding: 22px 24px; display: grid; border-top: 1px solid #e3e8ee; background: #f7f9fc; }
.drawer-footer span { color: #17345d; font-size: .82rem; font-weight: 800; }
.drawer-footer small { color: #7c8b9e; font-size: .65rem; }
body.menu-open { overflow: hidden; }

.hero {
  position: relative;
  height: clamp(500px, 62vh, 580px);
  min-height: 500px;
  margin: clamp(12px, 1.5vw, 24px);
  overflow: hidden;
  border: 1px solid rgba(86, 139, 209, .3);
  border-radius: 26px;
  color: white;
  background: #031a42;
  box-shadow: 0 22px 60px rgba(0, 11, 35, .2);
}
#slides-container,
.hero-slide { position: absolute; inset: 0; }
.hero-slide {
  z-index: 0;
  display: grid;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.025);
  transition: opacity .7s ease, transform 1.1s ease, visibility .7s;
}
.hero-slide.active { z-index: 1; opacity: 1; visibility: visible; transform: scale(1); }
.slide-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.22) contrast(1.05) brightness(.94);
}
.hero-slide::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg,
      var(--carousel-overlay-start, rgba(3,26,66,.72)) 0%,
      var(--carousel-overlay-mid, rgba(3,26,66,.24)) 58%,
      var(--carousel-overlay-end, rgba(3,26,66,.32)) 100%),
    linear-gradient(0deg,var(--carousel-overlay-bottom, rgba(3,26,66,.52)),transparent 45%);
}
.hero-slide::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: auto -8% -45% auto;
  width: 50vw;
  height: 50vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(20,121,237,.26), transparent 67%);
}
.slide-copy {
  position: relative;
  z-index: 2;
  width: min(535px, calc(100% - 120px));
  margin: 65px 0 0 var(--page-gutter);
  padding: 25px 27px 24px;
  border: 1px solid rgba(105, 176, 255, .34);
  border-radius: 21px;
  background: linear-gradient(135deg, rgba(2,18,47,.88), rgba(4,22,55,.58));
  box-shadow: 0 20px 65px rgba(0, 8, 28, .4), inset 3px 0 0 var(--slide-color, var(--blue));
  backdrop-filter: blur(15px);
}
.slide-copy .eyebrow { color: #d9e9ff; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #166bda;
  font-size: .73rem;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 20px; height: 2px; background: currentColor; }
.eyebrow.green { color: #54df8a; }
.slide-copy h1 {
  max-width: 490px;
  margin: 13px 0 12px;
  font: 800 clamp(2.35rem, 4vw, 4.15rem)/.99 var(--font-display);
  letter-spacing: -.055em;
}
.slide-copy p { max-width: 470px; margin: 0 0 21px; color: #d9e6f8; font-size: 1rem; }
.primary-cta {
  width: max-content;
  min-width: 185px;
  padding: 13px 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  border-radius: 11px;
  color: white;
  background: linear-gradient(135deg, #197be9, #0858c4);
  box-shadow: 0 8px 22px rgba(12, 99, 210, .28);
  font-weight: 800;
}
.primary-cta:hover span { transform: translateX(4px); }
.primary-cta span { transition: transform .2s; }
.green-button { color: #031a25; background: linear-gradient(135deg, #4be18b, #1fbd64); box-shadow: 0 8px 24px rgba(37,191,104,.18); }
.carousel-arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 48px;
  height: 48px;
  display: flex;
  justify-content: center;
  align-items: center;
  place-items: center;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 50%;
  color: white;
  background: rgba(0,25,65,.38);
  backdrop-filter: blur(10px);
  font-size: 2rem;
  line-height: 1;
  transform: translateY(-50%);
  transition: background .2s, transform .2s;
}
.carousel-arrow:hover { background: rgba(20,121,237,.85); transform: translateY(-50%) scale(1.05); }
.previous { left: 22px; }
.next { right: 22px; }
.carousel-footer {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 13px;
  width: min(1320px, calc(100% - 135px));
  min-height: 103px;
  padding: 8px 5px 3px;
  overflow-x: auto;
  overflow-y: hidden;
  transform: translateX(-50%);
  scrollbar-width: none;
}
.carousel-footer::-webkit-scrollbar { display: none; }
.carousel-thumbnails {
  min-width: max-content;
  min-height: 91px;
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 8px;
}
.thumbnail-card {
  position: relative;
  width: 150px;
  height: 62px;
  flex: 0 0 150px;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(255,255,255,.64);
  border-radius: 9px;
  color: white;
  background: #061632;
  box-shadow: 0 8px 24px rgba(0,8,27,.32);
  transition: flex-basis .28s ease, width .28s ease, height .28s ease, border-color .2s, transform .2s;
}
.thumbnail-card:hover,
.thumbnail-card:focus-visible {
  width: 225px;
  height: 93px;
  flex-basis: 225px;
  z-index: 4;
  border-color: white;
  transform: translateY(-3px);
}
.thumbnail-card.active {
  border-color: var(--progress-color);
  box-shadow: 0 0 0 2px var(--progress-color), 0 10px 30px rgba(0,8,27,.4);
}
.thumbnail-card > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.54) saturate(1.2);
  transition: filter .25s, transform .35s;
}
.thumbnail-card:hover > img,
.thumbnail-card:focus-visible > img { filter: brightness(.68) saturate(1.3); transform: scale(1.04); }
.thumbnail-topic {
  position: absolute;
  z-index: 2;
  inset: 0 8px 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 7px;
  text-align: center;
  text-shadow: 0 2px 8px rgba(0,0,0,.7);
}
.thumbnail-topic small {
  flex: 0 0 auto;
  color: #cfe1f8;
  font-size: .58rem;
  font-weight: 800;
}
.thumbnail-topic b {
  max-width: 105px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.thumbnail-card:hover .thumbnail-topic b,
.thumbnail-card:focus-visible .thumbnail-topic b {
  max-width: 170px;
  white-space: normal;
  font-size: .78rem;
}
.thumbnail-time {
  content: "";
  position: absolute;
  z-index: 3;
  left: 5px;
  right: 5px;
  bottom: 4px;
  height: 3px;
  overflow: hidden;
  border-radius: 99px;
  background: rgba(255,255,255,.36);
}
.thumbnail-time::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 0;
  border-radius: inherit;
  background: var(--progress-color, white);
}
.thumbnail-card.complete .thumbnail-time::after { width: 100%; }
.thumbnail-card.active .thumbnail-time::after { animation: carousel-fill var(--item-duration, 6.5s) linear forwards; }
@keyframes carousel-fill { to { width: 100%; } }

.network-map {
  position: relative;
  padding: var(--module-padding-block) var(--module-padding-inline);
  overflow: hidden;
  color: white;
  background:
    radial-gradient(circle at 12% 5%, rgba(20,121,237,.24), transparent 26rem),
    radial-gradient(circle at 92% 90%, rgba(37,191,104,.12), transparent 25rem),
    #03132f;
}
.network-map::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .2;
  background-image: radial-gradient(#6ca5f3 1px, transparent 1px);
  background-size: 26px 26px;
}
.bahia-neural {
  min-height: clamp(620px, 70vh, 720px);
  display: grid;
  grid-template-columns: minmax(300px,.78fr) minmax(460px,1.22fr);
  align-items: center;
  gap: clamp(28px,5vw,90px);
}
.neural-copy { position: relative; z-index: 2; max-width: 610px; }
.neural-copy h2 { margin: 14px 0 18px; font: 800 clamp(2.5rem,4.5vw,4.8rem)/.96 var(--font-display); letter-spacing: -.055em; }
.neural-copy > p { margin: 0; color: #b3c7e3; font-size: 1rem; }
.neural-copy > small { margin-top: 25px; display: block; color: #6382aa; font-size: .67rem; font-weight: 760; letter-spacing: .09em; text-transform: uppercase; }
.neural-legend { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 18px; }
.neural-legend span { display: flex; align-items: center; gap: 9px; color: #a9bdd9; font-size: .72rem; }
.neural-legend span > b { font-weight: 500; }
.neural-legend i { width: 9px; height: 9px; border-radius: 50%; background: #26d3ff; box-shadow: 0 0 14px #26d3ff; }
.neural-legend span:nth-child(2) i { width: 24px; height: 2px; border-radius: 99px; background: #26d3ff; box-shadow: 0 0 9px rgba(38,211,255,.8); }
.neural-legend .school-node-colors { width: auto; height: auto; display: flex; gap: 4px; background: transparent; box-shadow: none; }
.neural-school-counter { width: max-content; margin-top: 18px; padding: 9px 12px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(62,211,255,.22); border-radius: 9px; color: #a9bdd9; background: rgba(4,27,59,.56); }
.neural-school-counter b { color: #54dc8c; font: 850 1.15rem var(--font-display); }
.neural-school-counter span { font-size: .69rem; }
.school-node-colors em { width: 8px; height: 8px; display: block; border-radius: 50%; }
.school-node-colors em:nth-child(1) { background: #ffc12d; box-shadow: 0 0 10px #ffc12d; }
.school-node-colors em:nth-child(2) { background: #2bdc78; box-shadow: 0 0 10px #2bdc78; }
.school-node-colors em:nth-child(3) { background: #ff425b; box-shadow: 0 0 10px #ff425b; }
.neural-stage {
  position: relative;
  z-index: 1;
  width: min(100%,600px);
  aspect-ratio: 1;
  justify-self: end;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(69,145,239,.3);
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(0,183,255,.12), transparent 44%),
    radial-gradient(circle at 18% 15%, rgba(69,60,184,.13), transparent 34%),
    #020918;
  box-shadow: 0 35px 95px rgba(0,0,0,.38), inset 0 0 80px rgba(13,79,157,.12);
}
.neural-stage::after { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; background: radial-gradient(circle at center, transparent 48%, rgba(0,0,7,.42) 100%); }
.neural-canvas { position: relative; z-index: 1; width: 100%; height: 100%; display: block; cursor: crosshair; touch-action: none; filter: drop-shadow(0 0 30px rgba(0,170,255,.12)); }
.neural-badge { position: absolute; z-index: 3; right: 8%; bottom: 12%; min-width: 128px; padding: 12px 14px; display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 8px; border: 1px solid rgba(79,174,238,.33); border-radius: 10px; background: rgba(3,22,52,.8); backdrop-filter: blur(12px); }
.neural-badge i { width: 8px; height: 8px; grid-row: 1/3; border-radius: 50%; background: #2bdc78; box-shadow: 0 0 13px #2bdc78; }
.neural-badge span { color: #84dfff; font-size: .58rem; font-weight: 850; letter-spacing: .12em; }
.neural-badge b { color: #ddecff; font-size: .72rem; }
.neural-hint { position: absolute; z-index: 3; left: 50%; bottom: 5%; color: rgba(95,223,255,.48); font-size: .58rem; font-weight: 750; letter-spacing: .22em; text-transform: uppercase; transform: translateX(-50%); transition: opacity .2s; }
.neural-stage.interacting .neural-hint { opacity: 0; }

.schools-section {
  position: relative;
  padding: 100px var(--page-gutter);
  overflow: hidden;
  color: #edf5ff;
  background:
    radial-gradient(circle at 0 100%, rgba(41,117,239,.18), transparent 27rem),
    radial-gradient(circle at 100% 0, rgba(96,61,210,.16), transparent 26rem),
    #040918;
}
.schools-section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .16;
  background-image: radial-gradient(#6ca5f3 1px, transparent 1px);
  background-size: 29px 29px;
}
.section-heading {
  position: relative;
  max-width: var(--page-max);
  margin: auto;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
}
.section-heading > div { max-width: 720px; }
.section-heading h2,
.results h2,
.journey h2 {
  margin: 12px 0;
  font: 800 clamp(2.1rem, 4vw, 3.8rem)/1.04 var(--font-display);
  letter-spacing: -.05em;
}
.section-heading p,
.results-head p,
.journey-copy p { margin: 0; color: #a9bcd7; }
.text-link { padding-bottom: 5px; border-bottom: 1px solid #4f70a3; font-weight: 750; white-space: nowrap; }
.text-link span { color: #4fa3ff; }
.school-filters {
  position: relative;
  max-width: var(--page-max);
  margin: 30px auto 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.school-filters button {
  padding: 7px 13px;
  border: 1px solid #273656;
  border-radius: 99px;
  color: #aebed8;
  background: transparent;
  font-size: .76rem;
  font-weight: 700;
}
.school-filters button:hover,
.school-filters button.active { border-color: #4d58ef; color: white; background: rgba(72,72,218,.27); }
.school-grid {
  position: relative;
  max-width: var(--page-max);
  margin: auto;
  display: grid;
  grid-template-columns: repeat(6, minmax(0,1fr));
  gap: 16px;
}
.school-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #202e4c;
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(15,25,49,.98), rgba(6,11,25,.98));
  box-shadow: 0 18px 50px rgba(0,0,0,.2);
  transition: transform .25s, border-color .25s;
  cursor: pointer;
  outline: 0;
}
.school-card:hover,
.school-card:focus-visible { transform: translateY(-6px); border-color: #5b83c5; box-shadow: 0 22px 55px rgba(0,0,0,.28), 0 0 0 2px rgba(53,133,238,.25); }
.school-visual {
  height: 185px;
  margin: 11px 11px 0;
  overflow: hidden;
  border-radius: 9px 9px 2px 2px;
  background: #dbe6f8;
}
.school-visual img { width: 100%; height: 100%; object-fit: cover; filter: saturate(1.05); }
.school-body { padding: 16px; }
.school-body small { color: var(--card-color, #63a8ff); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.school-body h3 { margin: 8px 0 7px; font: 750 1.08rem/1.25 var(--font-display); }
.school-body p { min-height: 49px; margin: 0; color: #9fb0ce; font-size: .82rem; }
.school-tags { margin-top: 15px; display: flex; flex-wrap: wrap; gap: 6px; }
.school-tags span { padding: 5px 8px; border: 1px solid #273654; border-radius: 5px; color: #8da4ca; font-size: .65rem; }
.school-card-open {
  margin-top: 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #dbeaff;
  font-size: .72rem;
  font-weight: 800;
}
.school-card-open b { color: var(--card-color); font-size: .9rem; }

.constellation {
  position: relative;
  min-height: clamp(640px, 72vh, 760px);
  padding: var(--module-padding-block) var(--module-padding-inline) 0;
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  grid-template-rows: 1fr auto;
  align-items: center;
  gap: 30px;
  overflow: hidden;
  color: white;
  background:
    radial-gradient(circle at 99% 5%, rgba(30,103,207,.29), transparent 32rem),
    radial-gradient(circle at 0 90%, rgba(25,181,104,.1), transparent 28rem),
    #051b43;
}
.constellation::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .48;
  background-image: radial-gradient(#76a9ee 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(90deg, black, transparent 44%, black);
  animation: star-breathe 4.8s ease-in-out infinite alternate;
}
.constellation-copy { position: relative; z-index: 2; padding: 12px 0; }
.constellation-copy h2 {
  max-width: 630px;
  margin: 18px 0 20px;
  font: 800 clamp(3rem, 5.4vw, 5.8rem)/.93 var(--font-display);
  letter-spacing: -.065em;
}
.constellation-copy h2 span,
.constellation-copy h2 strong { display: block; }
.constellation-copy h2 strong {
  color: #4fdb83;
  font-weight: inherit;
  text-shadow: 0 8px 35px rgba(37,191,104,.14);
}
.constellation-copy > p { max-width: 590px; margin: 0 0 26px; color: #c3d3ea; font-size: 1.05rem; }
.legend { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 18px; color: #a7bddb; font-size: .67rem; text-transform: uppercase; }
.legend span { display: flex; align-items: center; gap: 6px; }
.legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--legend-color); }
.orbit-scene {
  position: relative;
  z-index: 2;
  width: min(520px, 43vw);
  aspect-ratio: 1;
  justify-self: center;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(circle at center, rgba(34,104,207,.26), rgba(13,48,103,.08) 46%, transparent 72%);
  box-shadow: none;
  backdrop-filter: none;
}
.orbit-scene::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 24%, rgba(255,255,255,.7) 0 1px, transparent 1.7px),
    radial-gradient(circle at 82% 69%, rgba(116,177,255,.75) 0 1px, transparent 1.8px),
    radial-gradient(circle at 74% 18%, rgba(255,255,255,.55) 0 1px, transparent 1.6px),
    radial-gradient(circle at 28% 78%, rgba(82,218,138,.5) 0 1px, transparent 1.8px);
  animation: star-drift 7s ease-in-out infinite alternate;
}
.orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  border: 1px solid rgba(75,137,221,.32);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 40px rgba(20,121,237,.04);
  animation: orbit-glow 3.8s ease-in-out infinite alternate;
}
.orbit-one { width: 31%; height: 31%; }
.orbit-four { width: 46%; height: 46%; animation-delay: -.7s; }
.orbit-two { width: 62%; height: 62%; animation-delay: -1.2s; }
.orbit-three { width: 92%; height: 92%; animation-delay: -2.4s; }
.orbit-center {
  position: absolute;
  z-index: 4;
  left: 50%;
  top: 50%;
  width: 110px;
  height: 110px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: transparent;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 3px rgba(75,145,237,.72), 0 0 0 12px rgba(12,53,112,.5), 0 0 45px rgba(56,132,244,.55);
  animation: center-pulse 3.1s ease-in-out infinite;
}
.orbit-center img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.orbit-center span { position: absolute; inset: -38px; border: 1px dashed rgba(101,165,250,.3); border-radius: 50%; animation: rotate 20s linear infinite; }
@keyframes rotate { to { transform: rotate(360deg); } }
.planet-track {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: var(--track-size);
  height: var(--track-size);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transform-origin: center;
  animation: planet-orbit var(--orbit-speed) linear infinite;
}
.track-blue { --track-size: 92%; --orbit-speed: 23s; }
.track-green { --track-size: 62%; --orbit-speed: 15s; animation-direction: reverse; animation-delay: -4s; }
.track-red { --track-size: 46%; --orbit-speed: 11s; animation-delay: -6s; }
.track-yellow { --track-size: 31%; --orbit-speed: 8s; animation-direction: reverse; animation-delay: -2s; }
.planet {
  position: absolute;
  right: -8.5px;
  top: 50%;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: var(--planet);
  box-shadow: 0 0 20px var(--planet);
  transform: translateY(-50%);
  animation: planet-pulse 1.9s ease-in-out infinite alternate;
}
.p-blue { --planet: var(--blue); }
.p-green { --planet: var(--green); animation-delay: -.6s; }
.p-red { --planet: var(--red); animation-delay: -1.1s; }
.p-yellow { --planet: var(--yellow); animation-delay: -1.5s; }
.signal-card {
  position: absolute;
  z-index: 5;
  width: 190px;
  padding: 14px;
  border: 1px solid rgba(104,161,233,.48);
  border-radius: 11px;
  background: rgba(4,25,61,.87);
  box-shadow: 0 12px 28px rgba(0,8,24,.24);
  backdrop-filter: blur(8px);
  animation: signal-float 4s ease-in-out infinite;
}
.signal-card:nth-child(1) { left: 0; top: 22%; }
.signal-card:nth-child(2) { right: -1%; bottom: 17%; animation-delay: -1.3s; }
.signal-card:nth-child(3) { right: 3%; top: 9%; animation-delay: -2.6s; }
.signal-card small { color: #4ddb83; font-size: .58rem; font-weight: 800; letter-spacing: .12em; }
.signal-card b { margin-top: 4px; display: block; font-size: .86rem; }
.signal-card span { color: #8ea8cc; font-size: .63rem; }
@keyframes planet-orbit {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes planet-pulse {
  from { opacity: .78; box-shadow: 0 0 10px var(--planet); }
  to { opacity: 1; box-shadow: 0 0 27px var(--planet), 0 0 7px white; }
}
@keyframes center-pulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1); box-shadow: 0 0 0 3px rgba(75,145,237,.72), 0 0 0 12px rgba(12,53,112,.5), 0 0 38px rgba(56,132,244,.42); }
  50% { transform: translate(-50%, -50%) scale(1.045); box-shadow: 0 0 0 3px rgba(75,145,237,.9), 0 0 0 15px rgba(12,53,112,.35), 0 0 60px rgba(56,132,244,.72); }
}
@keyframes orbit-glow {
  from { border-color: rgba(75,137,221,.22); }
  to { border-color: rgba(94,158,241,.47); }
}
@keyframes signal-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@keyframes star-breathe {
  from { opacity: .32; }
  to { opacity: .58; }
}
@keyframes star-drift {
  from { opacity: .45; transform: translate3d(-3px, 2px, 0); }
  to { opacity: .82; transform: translate3d(4px, -3px, 0); }
}
.constellation-stats {
  position: relative;
  z-index: 3;
  grid-column: 1 / -1;
  align-self: end;
  max-width: var(--page-max);
  width: 100%;
  margin: 28px auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid rgba(117,163,223,.24);
  border-bottom: 0;
  border-radius: 18px 18px 0 0;
  background: rgba(5,23,57,.64);
  backdrop-filter: blur(14px);
}
.constellation-stats article { padding: 16px 24px; display: flex; justify-content: center; align-items: baseline; gap: 10px; border-right: 1px solid rgba(117,163,223,.2); }
.constellation-stats article:last-child { border-right: 0; }
.constellation-stats b { font: 800 1.55rem var(--font-display); }
.constellation-stats span { color: #9eb1ce; font-size: .72rem; }

.results {
  position: relative;
  padding: var(--module-padding-block) var(--module-padding-inline);
  overflow: hidden;
  background:
    radial-gradient(circle at 5% 0, rgba(20,121,237,.1), transparent 25rem),
    radial-gradient(circle at 100% 100%, rgba(255,193,45,.13), transparent 25rem),
    #eaf3ff;
}
.results-head { max-width: 790px; }
.results-head p { color: #526b8d; }
.metric-grid {
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid #a9c9f4;
  border-radius: 17px;
  overflow: hidden;
  background: rgba(255,255,255,.48);
  box-shadow: 0 25px 60px rgba(31,84,155,.08);
}
.metric-grid article {
  min-height: 138px;
  padding: 24px;
  border-right: 2px solid #628fc7;
  background: linear-gradient(145deg, rgba(255,255,255,.36), rgba(142,190,248,.16));
}
.metric-grid article:nth-child(4n) { border-right: 0; }
.metric-grid article:first-child { color: white; background: linear-gradient(135deg, #1377e4, #0753b8); }
.metric-grid article:last-child { border-right: 0; }
.metric-grid b { display: block; font: 800 clamp(1.9rem, 3vw, 3rem) var(--font-display); }
.metric-grid span { color: #516985; }
.metric-grid article:first-child span { color: #d9eaff; }

.journey {
  padding: var(--module-padding-block) var(--module-padding-inline);
  color: white;
  background: linear-gradient(135deg, #07152d, #0c2855);
}
.journey-copy { max-width: 770px; }
.journey-grid { margin-top: 36px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; border-radius: 15px; overflow: hidden; background: rgba(126,166,219,.2); }
.journey-grid article { min-height: 185px; padding: 26px; background: #0a1d3c; }
.journey-grid b { color: #597597; font: 800 1rem var(--font-display); }
.journey-grid i { width: 12px; height: 12px; margin: 26px 0 16px; display: block; border-radius: 50%; background: var(--dot-color); box-shadow: 0 0 18px var(--dot-color); }
.blue-dot { --dot-color: var(--blue); }
.green-dot { --dot-color: var(--green); }
.red-dot { --dot-color: var(--red); }
.yellow-dot { --dot-color: var(--yellow); }
.journey-grid h3 { margin: 0 0 7px; font: 750 1.25rem var(--font-display); }
.journey-grid p { margin: 0; color: #9fb1ce; font-size: .86rem; }
.help-section {
  padding: var(--section-space-sm) var(--module-padding-inline);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  color: #092142;
  background:
    radial-gradient(circle at 0 0, rgba(20,121,237,.12), transparent 22rem),
    radial-gradient(circle at 100% 100%, rgba(37,191,104,.12), transparent 20rem),
    #f6faff;
}
.help-section h2 { margin: 8px 0 4px; font: 800 2.2rem var(--font-display); }
.help-section p { margin: 0; color: #617693; }
.help-section > a { padding: 14px 18px; border-radius: 10px; color: white; background: #0d63cb; font-weight: 800; white-space: nowrap; }

footer { color: #aec0d9; background: #020c1d; border-top: 4px solid #133d78; }
.footer-main {
  min-height: 104px;
  padding: 22px var(--page-gutter);
  display: grid;
  grid-template-columns: 1.2fr auto 1fr;
  align-items: center;
  gap: 24px;
}
.footer-brand { display: flex; align-items: center; gap: 11px; }
.footer-brand img { width: 35px; height: 35px; }
.footer-brand div { display: grid; }
.footer-brand b { color: white; font-family: var(--font-display); font-size: .95rem; }
.footer-brand span { font-size: .68rem; }
.social-links { display: flex; justify-content: center; gap: 7px; }
.social-links a {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid #355274;
  border-radius: 11px;
  color: #e8f2ff;
  background: rgba(255,255,255,.035);
  font-size: 1rem;
  font-weight: 800;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.social-links a:hover { color: white; border-color: #2f8afb; background: #1264c6; box-shadow: 0 8px 20px rgba(17,103,209,.28); transform: translateY(-3px); }
.social-links .social-instagram:hover { border-color: #e34d8d; background: linear-gradient(145deg,#6d39bc,#df3c82,#ef843d); }
.social-links .social-facebook:hover { background: #1877f2; }
.social-links .social-youtube:hover { background: #ff0033; }
.social-links .social-linkedin:hover { background: #0a66c2; }
.social-links .social-twitter-x:hover { background: #111; }
.social-links .social-tiktok:hover { background: #111; box-shadow: -2px 0 #25f4ee, 2px 0 #fe2c55; }
.social-links .social-telegram:hover { background: #229ed9; }
.social-links .social-whatsapp:hover { background: #25d366; }
.social-links .social-threads:hover { background: #111; }
.footer-links { display: flex; justify-content: end; flex-wrap: wrap; gap: 18px; font-size: .72rem; }
.footer-links a:hover { color: white; }
.footer-bottom { padding: 9px var(--page-gutter); border-top: 1px solid #15263e; color: #7186a5; font-size: .66rem; }

.support { position: fixed; z-index: 39; right: 18px; bottom: 17px; display: flex; align-items: end; gap: 9px; }
.support-buttons { display: grid; gap: 8px; justify-items: center; }
.support-buttons > button { width: 49px; height: 49px; border: 0; border-radius: 50%; color: white; background: linear-gradient(135deg,#1780f0,#0759c8); box-shadow: 0 12px 30px rgba(6,91,200,.3); font-weight: 900; }
.support-buttons .back-to-top { width: 42px; height: 42px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, visibility .2s, transform .2s; }
.support-buttons .back-to-top.visible { opacity: 1; visibility: visible; transform: translateY(0); }
.support-buttons .back-to-top i { font-size: 1.05rem; }
.support-card { padding: 12px 15px; display: grid; border: 1px solid #365171; border-radius: 12px; color: white; background: #071a35; box-shadow: 0 14px 38px rgba(0,0,0,.2); }
.support-card span { color: #8fa6c5; font-size: .72rem; }
.school-minimum-status { margin: 0; padding: 10px 16px; border-bottom: 1px solid #d9e4ef; color: #61758c; background: #f5f8fb; font-size: .7rem; }
.school-minimum-status.ready { color: #087348; background: #eaf9f1; }
.school-minimum-status.pending { color: #8a5a00; background: #fff8df; }
.report-field-label { display: inline-flex; align-items: center; gap: 7px; }
.field-info { display: inline-grid; place-items: center; width: 18px; height: 18px; padding: 0; border: 1px solid #1479ed; border-radius: 50%; background: rgba(20,121,237,.1); color: #1479ed; font: 800 .68rem/1 Arial, sans-serif; cursor: help; }
.field-info:hover, .field-info:focus-visible { background: #1479ed; color: #fff; outline: none; }
.editorial-console-tabs { margin: 18px 0; padding: 5px; display: flex; gap: 5px; border-radius: 10px; background: #eaf1f8; }
.editorial-console-tabs button { flex: 1; padding: 10px; border: 0; border-radius: 8px; color: #536d89; background: transparent; font-size: .72rem; font-weight: 800; }
.editorial-console-tabs button.active { color: white; background: #1479e7; box-shadow: 0 6px 16px rgba(20,121,231,.2); }
.editorial-card-editors { display: grid; gap: 13px; }
.editorial-console-card { padding: 18px; border: 1px solid #d6e3ef; border-radius: 12px; background: #fbfdff; }
.editorial-console-card > header { margin-bottom: 16px; display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.editorial-console-card > header span { color: #1479e7; font-size: .57rem; font-weight: 900; letter-spacing: .12em; }
.editorial-console-card > header h4 { margin: 4px 0 0; font-size: .85rem; }
.editorial-console-card.home-primary { border-color: #65b58a; box-shadow: inset 4px 0 #20a966; }
.editorial-card-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: end; gap: 6px; }
.editorial-console-card > header button { padding: 6px 9px; border-radius: 7px; font-size: .62rem; }
.editorial-console-card > header button.primary-choice { border: 1px solid #88add8; color: #145a9e; background: #edf5ff; }
.editorial-console-card > header button.primary-choice:disabled { border-color: #9ecdb3; color: #087348; background: #eaf9f1; opacity: 1; cursor: default; }
.editorial-console-card > header button.danger { border: 1px solid #e6bcc2; color: #b8323f; background: #fff5f6; }
.drawer-section-label { display: block; padding: 18px 14px 7px; color: #101820; font-size: .58rem; font-weight: 900; letter-spacing: .14em; }

.modal {
  position: fixed;
  z-index: 100;
  inset: 0;
  padding: 20px;
  display: grid;
  place-items: center;
  background: rgba(0,8,25,.76);
  backdrop-filter: blur(8px);
}
.login-dialog {
  width: min(860px, 100%);
  min-height: 520px;
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  overflow: hidden;
  border: 1px solid rgba(123,174,242,.3);
  border-radius: 24px;
  background: #f6f9ff;
  box-shadow: 0 30px 90px rgba(0,0,0,.42);
}
.login-art { position: relative; display: grid; place-items: center; overflow: hidden; background: #041b43; }
.login-art::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(135deg, rgba(2,16,44,.45), rgba(2,19,49,.72)); }
.login-art::after { content: ""; position: absolute; width: 330px; height: 330px; border: 1px solid rgba(57,136,241,.34); border-radius: 50%; box-shadow: 0 0 0 55px rgba(30,92,181,.08), 0 0 0 110px rgba(30,92,181,.05); }
.login-art .login-background { position: absolute; z-index: 0; inset: -8px; width: calc(100% + 16px); height: calc(100% + 16px); object-fit: cover; filter: blur(2px) brightness(.58) saturate(1.3); }
.login-art .login-art-logo { position: relative; z-index: 2; width: 155px; height: 155px; border: 9px solid white; border-radius: 50%; object-fit: cover; box-shadow: 0 15px 55px rgba(0,0,0,.32); }
.login-form { position: relative; padding: 35px 40px; }
.close-modal { position: absolute; top: 14px; right: 14px; width: 35px; height: 35px; border: 0; border-radius: 50%; color: #496079; background: #e5eef9; font-size: 1.35rem; }
.mini-brand { margin-bottom: 30px; display: flex; align-items: center; gap: 10px; }
.mini-brand b { font-family: var(--font-display); }
.login-form > span { color: #1472df; font-size: .68rem; font-weight: 800; letter-spacing: .15em; }
.login-form h2 { margin: 8px 0 5px; font: 800 2rem/1.05 var(--font-display); letter-spacing: -.04em; }
.login-form > p { margin: 0 0 22px; color: #6a7e98; }
.login-form form { display: grid; gap: 14px; }
.login-form label,
.editor-card label { display: grid; gap: 6px; color: #304a69; font-size: .82rem; font-weight: 750; }
.login-form input,
.editor-card input,
.editor-card textarea,
.editor-card select {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid #cad8e9;
  border-radius: 9px;
  outline: 0;
  color: #102844;
  background: white;
  font-size: .92rem;
  font-weight: 500;
}
.login-form input:focus,
.editor-card input:focus,
.editor-card textarea:focus,
.editor-card select:focus { border-color: #237ce1; box-shadow: 0 0 0 3px rgba(35,124,225,.11); }
.password { display: flex; border: 1px solid #cad8e9; border-radius: 9px; overflow: hidden; background: white; }
.password input { border: 0; }
.password button { padding: 0 12px; border: 0; color: #1468cc; background: transparent; font-size: .72rem; font-weight: 800; }
.login-links { display: flex; justify-content: space-between; align-items: center; }
.login-links label { display: flex; align-items: center; gap: 7px; }
.login-links input { width: auto; }
.login-links button { border: 0; color: #1266ca; background: transparent; font-size: .75rem; }
.form-message { min-height: 18px; margin: 0; color: #b85600; font-size: .75rem; }
.login-submit { padding: 13px 16px; display: flex; justify-content: space-between; border: 0; border-radius: 9px; color: white; background: #0b65ce; font-weight: 800; }
.login-form > small { margin-top: 18px; display: block; color: #8b9bb0; font-size: .65rem; }

.school-modal { z-index: 120; }
.school-dialog {
  position: relative;
  width: min(1180px, 100%);
  max-height: min(760px, calc(100vh - 40px));
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  overflow: hidden;
  border: 1px solid rgba(94, 142, 219, .46);
  border-radius: 22px;
  color: #ecf4ff;
  background: #050b19;
  box-shadow: 0 30px 90px rgba(0,0,0,.55), 0 0 55px rgba(39,85,189,.12);
}
.close-school-modal {
  position: absolute;
  z-index: 5;
  top: 14px;
  right: 14px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid #30415e;
  border-radius: 10px;
  color: white;
  background: rgba(5,13,29,.78);
  font-size: 1.4rem;
  backdrop-filter: blur(8px);
}
.school-modal-media {
  min-width: 0;
  padding: 44px 34px 26px;
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 14px;
  border-right: 1px solid #1b2c48;
  background:
    radial-gradient(circle at 15% 15%, rgba(41,101,218,.15), transparent 24rem),
    #030814;
}
.school-main-image {
  min-height: 390px;
  overflow: hidden;
  border: 1px solid #2b3f61;
  border-radius: 14px;
  background: #dfe9f8;
}
.school-main-image img { width: 100%; height: 100%; object-fit: cover; }
.school-gallery {
  display: flex;
  justify-content: center;
  gap: 9px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.school-gallery button {
  width: 88px;
  height: 55px;
  flex: 0 0 88px;
  overflow: hidden;
  padding: 0;
  border: 1px solid #314768;
  border-radius: 8px;
  opacity: .58;
  background: #0b1730;
  transition: opacity .2s, transform .2s, border-color .2s;
}
.school-gallery button:hover,
.school-gallery button.active { opacity: 1; border-color: #2e8bff; transform: translateY(-2px); }
.school-gallery img { width: 100%; height: 100%; object-fit: cover; }
.school-modal-content {
  min-width: 0;
  padding: 58px 38px 32px;
  overflow-y: auto;
  background:
    radial-gradient(circle at 100% 0, rgba(29,94,203,.15), transparent 23rem),
    linear-gradient(150deg, #081226, #050b18);
}
.school-modal-kicker {
  color: #52a7ff;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.school-modal-content h2 {
  margin: 9px 0 5px;
  font: 800 clamp(1.8rem, 3vw, 2.8rem)/1.02 var(--font-display);
  letter-spacing: -.045em;
}
.school-modal-place { margin: 0 0 20px; color: #7992b7; font-size: .78rem; }
.school-modal-description { margin: 0; color: #aebfda; font-size: .94rem; line-height: 1.7; }
.school-modal-facts { margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.school-modal-facts div { padding: 13px; display: grid; gap: 3px; border: 1px solid #20324e; border-radius: 9px; background: rgba(12,25,49,.68); }
.school-modal-facts small { color: #637a9c; font-size: .54rem; font-weight: 800; letter-spacing: .1em; }
.school-modal-facts b { color: #d9e7fa; font-size: .7rem; }
.school-modal-tags { margin-top: 17px; display: flex; flex-wrap: wrap; gap: 6px; }
.school-modal-tags span { padding: 5px 8px; border: 1px solid #2d4160; border-radius: 6px; color: #9bb1cf; font-size: .65rem; }
.school-modal-story { margin-top: 22px; display: grid; gap: 10px; }
.school-modal-story section { padding: 15px; border: 1px solid #203653; border-radius: 10px; background: rgba(11,28,55,.72); }
.school-modal-story small { color: #54a8ff; font-size: .54rem; font-weight: 850; letter-spacing: .12em; }
.school-modal-story h3 { margin: 7px 0 0; color: #e8f3ff; font: 700 .92rem/1.35 var(--font-display); }
.school-modal-story p { margin: 8px 0 0; color: #96acc8; font-size: .72rem; line-height: 1.55; white-space: pre-line; }
.school-modal-actions { margin-top: 25px; display: grid; gap: 9px; }
.school-modal-actions a,
.school-modal-actions button {
  min-height: 46px;
  padding: 11px 15px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 9px;
  border: 1px solid #2b456c;
  border-radius: 9px;
  color: #e9f3ff;
  background: transparent;
  font-size: .76rem;
  font-weight: 800;
}
.school-modal-actions a { border-color: #286bc6; background: linear-gradient(135deg,#166ecf,#0a4d9f); }
.school-modal-actions a:hover,
.school-modal-actions button:hover { border-color: #4a99ff; background-color: rgba(34,91,171,.22); }

.admin-console {
  position: fixed;
  z-index: 200;
  inset: 0;
  display: grid;
  grid-template-columns: 235px 1fr;
  color: #172b46;
  background: #eaf1f8;
}
.admin-console > aside { min-height: 0; padding: 21px 13px; display: flex; flex-direction: column; overflow: hidden; color: #c5d8ee; background: linear-gradient(180deg,#061f45,#021126); }
.console-logo { padding: 0 9px 22px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid #173154; }
.console-logo img { width: 38px; height: 38px; }
.console-logo div { display: grid; }
.console-logo b { color: white; font: 750 .98rem var(--font-display); }
.console-logo span { font-size: .7rem; }
.admin-console aside nav { margin-top: 22px; display: grid; gap: 5px; }
.admin-console aside nav button,
.console-links button { width: 100%; padding: 10px 12px; display: flex; align-items: center; gap: 10px; border: 0; border-radius: 8px; color: #aec4df; background: transparent; text-align: left; font-size: .87rem; font-weight: 680; }
.admin-console aside nav button:hover,
.admin-console aside nav button.active { color: white; background: #12366a; }
.console-links { margin-top: auto; display: grid; gap: 4px; border-top: 1px solid #173154; padding-top: 12px; }
.console-main { min-width: 0; height: 100vh; overflow: auto; }
.console-main > header {
  position: sticky;
  z-index: 5;
  top: 0;
  min-height: 75px;
  padding: 12px 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  border-bottom: 1px solid #d6e0ec;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
}
.console-main > header small { color: #7a8ca3; font-size: .62rem; font-weight: 800; letter-spacing: .09em; }
.console-main > header h2 { margin: 1px 0 0; font: 750 1.38rem var(--font-display); }
.console-main > header > div:last-child { display: flex; align-items: center; gap: 12px; }
.local-draft { color: #6f8298; font-size: .7rem; }
.local-draft i { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: var(--yellow); }
.save-content,
.add-item { padding: 9px 13px; border: 0; border-radius: 8px; color: white; background: #0c68d2; font-size: .76rem; font-weight: 800; }
.toast { position: fixed; z-index: 10; right: 28px; top: 85px; padding: 11px 15px; border-radius: 9px; color: white; background: #15804b; box-shadow: 0 12px 30px rgba(0,0,0,.16); font-size: .78rem; }
.console-body { width: 100%; margin: auto; padding: 28px; }
.console-panel { display: none; }
.console-panel.active { display: block; }
.welcome {
  padding: 27px 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-radius: 14px;
  color: white;
  background: radial-gradient(circle at 90% 0, rgba(61,137,238,.42), transparent 19rem), #082657;
}
.welcome span { color: #74b2ff; font-size: .63rem; font-weight: 800; letter-spacing: .14em; }
.welcome h3 { margin: 7px 0 3px; font: 750 1.55rem var(--font-display); }
.welcome p { margin: 0; color: #b5c8e1; font-size: .83rem; }
.completion { width: 88px; height: 88px; display: grid; place-content: center; border: 6px solid #3f8ee9; border-radius: 50%; text-align: center; }
.completion b { font-size: 1.25rem; }
.completion span { color: #b9cbe2; font-size: .58rem; letter-spacing: 0; }
.summary { margin-top: 17px; display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.summary article { padding: 18px; border: 1px solid #d8e2ee; border-radius: 12px; background: white; }
.summary article span { color: #71859e; font-size: .59rem; font-weight: 800; letter-spacing: .1em; }
.summary article b { margin-top: 8px; display: block; font: 800 1.7rem var(--font-display); }
.summary article p { margin: 0; color: #8193a8; font-size: .7rem; }
.prototype-note { margin-top: 17px; padding: 18px; border: 1px solid #bdd7f7; border-radius: 12px; background: #eaf4ff; }
.prototype-note p { margin: 4px 0 0; color: #57708e; font-size: .78rem; }
.editor-card { padding: 25px; border: 1px solid #d8e2ed; border-radius: 14px; background: white; }
.section-settings { margin-bottom: 16px; }
.collection-workspace {
  display: grid;
  grid-template-columns: minmax(235px, 285px) minmax(0, 1fr);
  align-items: start;
  gap: 16px;
}
.collection-sidebar {
  position: sticky;
  top: 102px;
  max-height: calc(100vh - 130px);
  padding: 17px;
  overflow-y: auto;
  border: 1px solid #d4dfec;
  border-radius: 14px;
  background: white;
  box-shadow: 0 12px 35px rgba(19,53,94,.05);
}
.collection-sidebar-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.collection-sidebar-title > div { display: grid; }
.collection-sidebar-title span { color: #1773da; font-size: .58rem; font-weight: 800; letter-spacing: .11em; }
.collection-sidebar-title b { font: 750 .93rem var(--font-display); }
.collection-sidebar > p { margin: 9px 0 14px; color: #7b8da4; font-size: .67rem; line-height: 1.45; }
.add-item.compact { width: 32px; height: 32px; padding: 0; display: grid; place-items: center; font-size: 1rem; }
.collection-list { display: grid; gap: 7px; }
.collection-record {
  position: relative;
  min-width: 0;
  width: 100%;
  padding: 8px;
  display: grid;
  grid-template-columns: 13px 45px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  border: 1px solid #d9e3ef;
  border-left: 3px solid transparent;
  border-radius: 9px;
  color: #203a59;
  background: #f9fbfe;
  text-align: left;
  transition: border-color .18s, background .18s, transform .18s, opacity .18s;
}
.collection-record:hover { border-color: #91b8eb; background: #f2f7fe; transform: translateX(2px); }
.collection-record.active {
  border-color: #93bdf1;
  border-left-color: #1977e5;
  background: #eaf4ff;
  box-shadow: 0 6px 18px rgba(28,103,197,.09);
}
.collection-record.disabled-record {
  opacity: .46;
  filter: grayscale(.85);
  background: #e8edf3;
}
.collection-record.disabled-record::after {
  content: "";
  position: absolute;
  left: 8px;
  right: 8px;
  top: 50%;
  height: 2px;
  border-radius: 2px;
  background: #7e8998;
  transform: rotate(-4deg);
  pointer-events: none;
}
.collection-record.linked { border-left-color: #18a85a; }
.collection-record.linked em { color: #13884a; font-weight: 850; }
.collection-record.dragging { opacity: .4; }
.collection-record.drag-over { border-color: #25a962; box-shadow: inset 0 0 0 2px rgba(37,169,98,.15); }
.drag-handle { color: #8095ad; font-size: .9rem; cursor: grab; }
.collection-record img { width: 45px; height: 36px; object-fit: cover; border-radius: 5px; background: #dfe8f3; }
.record-copy { min-width: 0; display: grid; }
.record-copy b,
.record-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.record-copy b { font-size: .7rem; }
.record-copy small { color: #7b8da6; font-size: .56rem; text-transform: uppercase; }
.collection-record em { color: #8aa0ba; font-size: .56rem; font-style: normal; }
.collection-detail { min-width: 0; }
.collection-detail .editor-group { margin-bottom: 0; }
.editor-title { margin-bottom: 22px; padding-bottom: 16px; border-bottom: 1px solid #e1e8f0; }
.editor-title.with-action { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.editor-title.with-status { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.editor-title span { color: #1773da; font-size: .61rem; font-weight: 800; letter-spacing: .12em; }
.editor-title h3 { margin: 3px 0 0; font: 750 1.34rem var(--font-display); }
.brand-settings-grid { display: grid; grid-template-columns: minmax(220px,.7fr) repeat(2,minmax(260px,1fr)); gap: 14px; align-items: stretch; }
.console-section-heading { margin: 30px 0 16px; padding-top: 24px; display: flex; align-items: end; justify-content: space-between; gap: 18px; border-top: 1px solid #e1e8f0; }
.console-section-heading > div { display: grid; gap: 3px; }
.console-section-heading span { color: #1773da; font-size: .58rem; font-weight: 850; letter-spacing: .12em; }
.console-section-heading h4 { margin: 0; font: 750 1.05rem var(--font-display); }
.console-section-heading small { color: #73869d; font-size: .65rem; }
.sortable-editor > .editor-group { position: relative; }
.sortable-editor .editor-actions { grid-column: 1 / -1; }
.console-search { min-height: 38px; margin: 10px 0 14px; padding: 0 11px; display: flex; align-items: center; gap: 8px; border: 1px solid #cbd8e5; border-radius: 9px; color: #6f849b; background: #fff; }
.console-search input { width: 100%; min-width: 0; border: 0; outline: 0; color: #18304e; background: transparent; font-size: .68rem; }
.visibility-toggle { display: grid; grid-template-columns: auto auto; align-items: center; column-gap: 9px; cursor: pointer; }
.visibility-toggle > span { grid-column: 1 / -1; color: #73869d; font-size: .55rem; }
.visibility-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.visibility-toggle i { position: relative; width: 38px; height: 21px; border-radius: 99px; background: #aab7c4; transition: .2s; }
.visibility-toggle i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 15px; height: 15px; border-radius: 50%; background: white; transition: .2s; }
.visibility-toggle input:checked + i { background: #158a51; }
.visibility-toggle input:checked + i::after { transform: translateX(17px); }
.visibility-toggle b { min-width: 64px; color: #50667e; font-size: .64rem; }
.icon-picker { margin-top: 7px; display: flex; flex-wrap: wrap; gap: 7px; }
.icon-picker button { width: 36px; height: 36px; padding: 0; display: grid; place-items: center; border: 1px solid #c7d5e4; border-radius: 8px; color: #5e7692; background: #fff; font-size: .95rem; }
.icon-picker button:hover,
.icon-picker button.active { color: white; border-color: #1479e7; background: #1479e7; box-shadow: 0 5px 13px rgba(20,121,231,.2); }
.icon-source a { color: #0d6ed8; font-weight: 750; }
.editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.section-editor { margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #e4eaf2; }
.editor-group { position: relative; margin-bottom: 14px; padding: 19px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; border: 1px solid #dce5ef; border-left: 4px solid var(--group-color,var(--blue)); border-radius: 10px; background: #f9fbfe; }
.editor-group.blue { --group-color: var(--blue); }
.editor-group.green { --group-color: var(--green); }
.editor-group.red { --group-color: var(--red); }
.editor-group.yellow { --group-color: var(--yellow); }
.editor-group > b { grid-column: 1/-1; color: #213b5b; font-size: .78rem; }
.editor-group label.full,
.editor-group .editor-actions,
.editor-group .image-field { grid-column: 1/-1; }
.editor-card textarea { min-height: 82px; resize: vertical; }
.editor-actions { display: flex; justify-content: end; gap: 7px; }
.editor-actions button { padding: 6px 10px; border: 1px solid #c8d6e6; border-radius: 7px; color: #31506f; background: white; font-size: .7rem; }
.editor-actions button.danger { color: #b82929; border-color: #f0c2c2; }
.image-field { padding: 10px; display: flex !important; flex-direction: row !important; justify-content: space-between; align-items: center; gap: 12px; border: 1px dashed #b9cbe0; border-radius: 8px; background: #f3f8fe; }
.image-field input { max-width: 320px; padding: 6px; font-size: .7rem; }
.image-preview { width: 84px; height: 50px; object-fit: cover; border-radius: 6px; background: #dfe8f3; }
.editor-subtitle { margin: 26px 0 12px; color: #2c4664; font: 750 .94rem var(--font-display); }
.editor-help { margin: -6px 0 12px; color: #788ca5; font-size: .72rem; }
.carousel-style-editor { grid-template-columns: repeat(2,minmax(0,1fr)); }
.settings-number-field > span { display: grid; grid-template-columns: minmax(0,1fr) 58px; align-items: center; gap: 8px; }
.settings-number-field output { padding: 11px 7px; border: 1px solid #bdd1e6; border-radius: 8px; color: #0d64be; background: #edf6ff; font-size: .72rem; font-weight: 850; text-align: center; }
.color-control {
  min-height: 44px;
  padding: 5px 10px 5px 6px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid #cad8e9;
  border-radius: 9px;
  background: white;
}
.editor-card .color-control input[type="color"] {
  width: 52px;
  height: 32px;
  padding: 2px;
  flex: 0 0 52px;
  border: 0;
  border-radius: 7px;
  box-shadow: none;
  cursor: pointer;
}
.color-control b { color: #5a708c; font: 650 .68rem var(--font-body); text-transform: uppercase; }
.editor-card label > small { color: #8193a9; font-weight: 500; }
.slide-overlay-settings {
  grid-column: 1/-1;
  padding: 14px;
  border: 1px solid #d6e2ef;
  border-radius: 10px;
  background: #f3f7fc;
}
.setting-toggle {
  position: relative;
  grid-template-columns: minmax(0,1fr) 42px !important;
  align-items: center;
  cursor: pointer;
}
.setting-toggle > span { display: grid; gap: 3px; }
.setting-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.setting-toggle > i {
  position: relative;
  width: 42px;
  height: 23px;
  border-radius: 999px;
  background: #aebed0;
  transition: background .18s ease;
}
.setting-toggle > i::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: white;
  box-shadow: 0 2px 6px rgba(14,38,70,.2);
  transition: transform .18s ease;
}
.setting-toggle input:checked + i { background: #1479e7; }
.setting-toggle input:checked + i::after { transform: translateX(19px); }
.slide-overlay-fields {
  margin-top: 13px;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  opacity: .42;
  filter: grayscale(.5);
  pointer-events: none;
  transition: opacity .18s ease, filter .18s ease;
}
.slide-overlay-settings.enabled .slide-overlay-fields { opacity: 1; filter: none; pointer-events: auto; }

.console-navigation {
  min-height: 0;
  flex: 1;
  align-content: start;
  overflow-y: auto;
  padding-right: 5px;
  scrollbar-width: thin;
  scrollbar-color: #2d629f rgba(3,17,38,.35);
}
.console-navigation::-webkit-scrollbar { width: 6px; }
.console-navigation::-webkit-scrollbar-track { background: rgba(3,17,38,.35); border-radius: 999px; }
.console-navigation::-webkit-scrollbar-thumb { background: #2d629f; border-radius: 999px; }
.console-nav-group {
  padding: 0 0 7px;
  border-bottom: 1px solid rgba(38,72,116,.5);
}
.console-nav-group + .console-nav-group { margin-top: 6px; }
.admin-console aside nav .nav-group-toggle {
  justify-content: space-between;
  color: #dce9fa;
  background: transparent;
}
.admin-console aside nav .nav-group-toggle:hover { background: rgba(35,79,139,.45); }
.nav-group-toggle > span { display: flex; align-items: center; gap: 10px; }
.nav-group-toggle i { color: #65a9ff; font-style: normal; }
.nav-group-toggle b { font-size: .85rem; transition: transform .2s ease; }
.console-nav-group.open .nav-group-toggle b { transform: rotate(180deg); }
.nav-group-items { display: none; gap: 3px; padding: 1px 0 0 8px; }
.console-nav-group.open .nav-group-items { display: grid; }
.admin-console aside nav .nav-group-items button {
  min-height: 34px;
  padding: 7px 9px;
  font-size: .76rem;
}
.nav-group-items button i {
  width: 18px;
  flex: 0 0 18px;
  color: #6484ac;
  font-style: normal;
  text-align: center;
}
.admin-console aside nav .nav-group-items button.active i { color: #75b3ff; }
.stage-nav-button small {
  margin-left: auto;
  padding: 2px 5px;
  border-radius: 999px;
  color: #8da9cb;
  background: rgba(5,22,49,.45);
  font-size: .55rem;
}
.stage-nav-button.complete small { color: #8bf0b5; background: rgba(17,118,68,.25); }
.nav-indicator,
.nav-status,
.console-main-destination small {
  margin-left: auto;
  padding: 2px 6px;
  border-radius: 999px;
  color: #9eb9d9;
  background: rgba(4,22,48,.5);
  font-size: .54rem;
  font-weight: 800;
}
.nav-status { color: #80dcaa; }
.admin-console aside nav .console-main-destination {
  margin-top: 3px;
  color: #d9e8fa;
  border: 1px solid rgba(72,112,163,.3);
  background: rgba(15,50,96,.35);
}
.admin-console aside nav .console-main-destination:hover,
.admin-console aside nav .console-main-destination.active { background: #1473db; border-color: #2589f2; }
.console-main-destination i { color: #65a9ff; font-style: normal; }
.console-main-destination.active i { color: white; }
.admin-console aside nav .console-subdestination {
  width: calc(100% - 18px);
  margin-left: 18px;
  border-style: dashed;
  color: #b9cee7;
  background: rgba(7,31,68,.46);
}

.workflow-badge,
.record-workflow {
  width: max-content;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: 999px;
  font-style: normal;
  font-weight: 850;
  white-space: nowrap;
}
.workflow-badge { padding: 6px 9px; font-size: .57rem !important; letter-spacing: .04em; text-transform: uppercase; }
.record-workflow { padding: 3px 6px; font-size: .5rem; }
.workflow-badge.draft,
.record-workflow.draft { color: #846000; background: #fff0b5; }
.workflow-badge.pending,
.record-workflow.pending { color: #0b5aaa; background: #ddecff; }
.workflow-badge.approved,
.record-workflow.approved { color: #087a43; background: #d9f7e7; }
.workflow-badge.changes-requested,
.record-workflow.changes-requested { color: #a52c3b; background: #ffe1e5; }

.report-deadline {
  min-height: 70px;
  padding: 15px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  border: 1px solid #d5e0e8;
  border-radius: 13px;
  background: rgba(255,255,255,.86);
}
.report-deadline-copy { display: flex; align-items: center; gap: 15px; }
.report-clock {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid #b7c9d9;
  border-radius: 50%;
  color: #0d6fd9;
  font-size: .88rem;
}
.report-deadline-copy div { display: grid; gap: 4px; }
.report-deadline-copy b { font-size: .78rem; }
.report-deadline-copy small { color: #70849b; font-size: .65rem; }
.deadline-period { color: #54708e; font-size: .58rem; font-weight: 700; }
.report-deadline { transition: border-color .2s, background .2s; }
.report-deadline.urgent { border-color: #ebcf7d; background: #fffaf0; }
.report-deadline.urgent .report-clock { color: #a56d00; border-color: #e7c765; }
.report-deadline.overdue { border-color: #e5aeb5; background: #fff5f6; }
.report-deadline.overdue .report-clock,
.report-deadline.overdue #report-deadline-title { color: #ad2e3d; }
.report-overall-progress { width: min(310px, 38%); display: grid; justify-items: end; gap: 6px; }
.report-overall-progress > span { color: #647b95; font-size: .63rem; text-align: right; }
.workflow-feedback { padding: 13px; border: 1px solid #efb8c0; border-radius: 9px; color: #8d2635; background: #fff2f4; }
.workflow-feedback b { font-size: .7rem; }
.workflow-feedback p { margin: 5px 0 0; font-size: .65rem; line-height: 1.5; }
.progress-track { height: 6px; overflow: hidden; border-radius: 999px; background: #dde6e6; }
.progress-track i { width: 0; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#0b6ee1,#2892ef); transition: width .25s ease; }
.progress-track.large { height: 8px; }
.report-dashboard-grid {
  margin-top: 16px;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(290px, 1fr);
  gap: 16px;
}
.registration-notice-card {
  margin-top: 16px;
  padding: 28px;
  border: 1px solid #d5e0e8;
  border-radius: 14px;
  color: #18304e;
  background: rgba(255,255,255,.92);
}
.registration-notice-heading { padding-bottom: 18px; display: flex; justify-content: space-between; align-items: start; gap: 20px; border-bottom: 1px solid #dce5ea; }
.registration-notice-heading span { color: #75889c; font-size: .6rem; font-weight: 850; letter-spacing: .13em; }
.registration-notice-heading h3 { margin: 7px 0 0; font: 600 1.35rem var(--font-display); }
.registration-notice-heading > small { padding: 7px 10px; border-radius: 999px; color: #0c6bcf; background: #e9f3ff; font-size: .6rem; font-weight: 800; }
#registration-notice-view { max-width: 1080px; padding-top: 22px; }
#registration-notice-view h4, #registration-notice-preview h4 { margin: 0 0 20px; color: #0b294f; font: 750 1.15rem/1.35 var(--font-display); }
#registration-notice-view .notice-greeting, #registration-notice-preview .notice-greeting { padding: 15px 17px; border-left: 4px solid #1479e7; border-radius: 0 9px 9px 0; color: #284867; background: #eef6ff; font-weight: 650; }
#registration-notice-view h5, #registration-notice-preview h5 { margin: 24px 0 10px; color: #153758; font: 750 .82rem var(--font-display); }
.notice-objectives { margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; list-style: none; }
.notice-objectives li { position: relative; padding: 15px 14px 15px 38px; border: 1px solid #d4e2ee; border-radius: 10px; color: #49627b; background: #f8fbfe; font-size: .7rem; line-height: 1.55; }
.notice-objectives li::before { content: "✓"; position: absolute; left: 14px; top: 14px; width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; color: white; background: #168454; font-size: .58rem; font-weight: 900; }
#registration-notice-view p, #registration-notice-preview p { margin: 0 0 15px; color: #536b84; font-size: .76rem; line-height: 1.7; }
#registration-notice-view a, #registration-notice-preview a { color: #076bd8; font-weight: 750; text-decoration: none; overflow-wrap: anywhere; }
.registration-notice-editor { padding-top: 22px; }
.registration-notice-builder { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(360px,.88fr); gap: 18px; align-items: start; }
.notice-builder-heading { margin-bottom: 13px; display: flex; justify-content: space-between; align-items: end; gap: 14px; }
.notice-builder-heading > div:first-child { display: grid; gap: 3px; }
.notice-builder-heading b { font-size: .82rem; }
.notice-builder-heading small { color: #74889c; font-size: .64rem; }
.notice-builder-heading > div:last-child { display: flex; gap: 7px; }
.notice-builder-heading select, .notice-builder-heading button { min-height: 38px; padding: 0 11px; border: 1px solid #c7d8e8; border-radius: 8px; font-size: .66rem; font-weight: 800; }
.notice-builder-heading select { color: #294b6e; background: white; }
.notice-builder-heading button { color: white; border-color: #1479e7; background: #1479e7; }
.registration-block-list { display: grid; gap: 10px; }
.registration-block-card { padding: 14px; border: 1px solid #d5e2ed; border-radius: 11px; background: #f9fbfd; }
.registration-block-card > header { margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.registration-block-card > header > div:first-child { display: grid; }
.registration-block-card > header span { color: #778ba0; font-size: .53rem; font-weight: 900; letter-spacing: .12em; }
.registration-block-card > header b { font-size: .75rem; }
.registration-block-card > header > div:last-child { display: flex; gap: 5px; }
.registration-block-card > header button { width: 31px; height: 29px; padding: 0; border: 1px solid #cbd9e6; border-radius: 6px; color: #315579; background: white; font-size: .62rem; }
.registration-block-card > header button.danger { width: auto; padding: 0 8px; color: #b32f3c; border-color: #e5bdc2; background: #fff6f7; }
.registration-block-card > header button:disabled { opacity: .35; cursor: default; }
.registration-block-card > label, .registration-block-fields label { display: grid; gap: 5px; margin: 0; color: #4b627b; font-size: .62rem; font-weight: 780; }
.registration-block-card select, .registration-block-card input, .registration-block-card textarea { width: 100%; padding: 9px 10px; resize: vertical; border: 1px solid #cbd9e4; border-radius: 7px; outline: 0; color: #17304e; background: white; font-size: .68rem; line-height: 1.5; }
.registration-block-card textarea { min-height: 74px; }
.registration-block-card input:focus, .registration-block-card textarea:focus, .registration-block-card select:focus { border-color: #1479e7; box-shadow: 0 0 0 3px rgba(20,121,231,.1); }
.registration-block-fields { margin-top: 10px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.registration-block-fields .full { grid-column: 1/-1; }
.registration-block-fields label small { color: #8193a5; font-weight: 500; }
.save-registration-notice { margin-top: 14px; padding: 11px 16px; border: 0; border-radius: 8px; color: white; background: #0d70db; font-size: .7rem; font-weight: 800; }
.registration-live-preview { position: sticky; top: 16px; overflow: hidden; border: 1px solid #ccdae7; border-radius: 12px; background: white; box-shadow: 0 15px 35px rgba(29,61,95,.08); }
.registration-live-preview > div { padding: 14px 16px; display: grid; gap: 3px; border-bottom: 1px solid #dbe5ed; background: #f5f9fd; }
.registration-live-preview > div span { color: #1479e7; font-size: .52rem; font-weight: 900; letter-spacing: .1em; }
.registration-live-preview > div b { font-size: .78rem; }
#registration-notice-preview { padding: 18px; }
.notice-link { padding: 13px 14px; display: flex; justify-content: space-between; align-items: center; gap: 12px; border: 1px solid #cfe0ef; border-radius: 9px; background: #f5faff; }
.notice-link span { min-width: 0; }
.notice-link a { flex: 0 0 auto; padding: 7px 10px; border-radius: 7px; color: white !important; background: #1479e7; font-size: .62rem; }
.report-card {
  min-height: 480px;
  padding: 25px;
  border: 1px solid #d5e0e8;
  border-radius: 14px;
  background: rgba(255,255,255,.9);
}
.report-card-title {
  min-height: 75px;
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 15px;
  border-bottom: 1px solid #dce5ea;
}
.report-card-title span,
.report-stage-heading span {
  color: #75889c;
  font-size: .6rem;
  font-weight: 850;
  letter-spacing: .13em;
}
.report-card-title h3 { margin: 8px 0 0; font: 500 1.35rem var(--font-display); }
.report-card-title > b {
  padding: 8px 11px;
  border-radius: 999px;
  color: #0769dd;
  background: #e9f3ff;
  font-size: .68rem;
}
.report-stage-row {
  width: 100%;
  min-height: 65px;
  padding: 10px 0;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) 44px;
  align-items: center;
  gap: 12px;
  border: 0;
  border-bottom: 1px solid #e0e7eb;
  color: #102746;
  background: transparent;
  text-align: left;
}
.report-stage-row:hover { color: #0769dc; }
.report-stage-number {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: #1479e7;
  font-size: .7rem;
  font-weight: 850;
}
.report-stage-row-copy { display: grid; gap: 8px; }
.report-stage-row-copy b { font-size: .72rem; }
.report-stage-row > strong { color: #38526d; font-size: .63rem; text-align: right; }
.report-pending-list { display: grid; }
.report-pending-item {
  min-height: 78px;
  padding: 15px 0;
  display: grid;
  grid-template-columns: 10px 1fr;
  align-content: center;
  gap: 12px;
  border-bottom: 1px solid #e1e8ec;
}
.report-pending-item > i { width: 7px; height: 7px; margin-top: 5px; border-radius: 50%; background: var(--pending-color,#ee4545); }
.report-pending-item div { display: grid; gap: 5px; }
.report-pending-item b { font-size: .7rem; }
.report-pending-item small { color: #73879e; font-size: .62rem; }
.report-pending-empty { padding: 35px 10px; color: #158751; text-align: center; font-size: .78rem; }
.continue-report {
  width: 100%;
  margin-top: 18px;
  padding: 13px 15px;
  display: flex;
  justify-content: space-between;
  border: 0;
  border-radius: 8px;
  color: white;
  background: #1379e7;
  font-size: .68rem;
  font-weight: 800;
}
.report-stage-header {
  margin-bottom: 16px;
  padding: 22px 25px;
  border: 1px solid #d5e0e8;
  border-radius: 14px;
  background: rgba(255,255,255,.9);
}
.report-stage-header > button {
  margin-bottom: 18px;
  padding: 0;
  border: 0;
  color: #1769bf;
  background: transparent;
  font-size: .7rem;
  font-weight: 750;
}
.report-stage-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.report-stage-heading h3 { margin: 7px 0 4px; font: 750 1.55rem var(--font-display); }
.report-stage-heading p { margin: 0 0 14px; color: #71859b; font-size: .75rem; }
.report-stage-status { min-width: 80px; display: grid; text-align: right; }
.report-stage-status b { color: #0d70db; font: 800 1.45rem var(--font-display); }
.report-stage-status span { color: #71849a; font-size: .62rem; }
.report-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.report-form-grid label {
  display: grid;
  gap: 7px;
  color: #3d5673;
  font-size: .68rem;
  font-weight: 750;
}
.report-form-grid label.full { grid-column: 1/-1; }
.report-form-grid input,
.report-form-grid select,
.report-form-grid textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #c9d8e8;
  border-radius: 8px;
  color: #18314f;
  background: #fbfdff;
  font: 500 .78rem var(--font-body);
}
.report-form-grid textarea { min-height: 105px; resize: vertical; }
.report-form-grid input:focus,
.report-form-grid select:focus,
.report-form-grid textarea:focus { outline: 2px solid rgba(18,118,226,.15); border-color: #4c91df; }
.report-checkbox {
  grid-template-columns: 18px 1fr !important;
  align-items: start;
  padding: 13px;
  border: 1px solid #d3dfec;
  border-radius: 8px;
  background: #f7faff;
}
.report-checkbox input { width: 16px; height: 16px; padding: 0; }
.report-autosave {
  margin-top: 20px;
  padding-top: 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  border-top: 1px solid #e0e7ee;
}
.report-autosave span { color: #71859c; font-size: .65rem; }
.report-autosave span i { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: #1bb96a; }
.report-autosave button {
  padding: 10px 13px;
  border: 0;
  border-radius: 8px;
  color: white;
  background: #0d69cf;
  font-size: .7rem;
  font-weight: 800;
}

.school-registry-workspace {
  min-height: calc(100vh - 132px);
  display: grid;
  grid-template-columns: minmax(290px, 340px) minmax(0,1fr);
  overflow: hidden;
  border: 1px solid #d5e0e8;
  border-radius: 15px;
  background: white;
}
.registry-sidebar { padding: 28px 22px; border-right: 1px solid #dbe4eb; background: #fbfdfc; }
.registry-title span,
.registry-preview > header span {
  color: #75899c;
  font-size: .59rem;
  font-weight: 850;
  letter-spacing: .13em;
}
.registry-title h3 { margin: 8px 0 5px; font: 500 1.7rem var(--font-display); }
.registry-title small { color: #71849a; font-size: .66rem; }
.add-report-school {
  width: 100%;
  margin: 22px 0 18px;
  padding: 13px;
  border: 0;
  border-radius: 9px;
  color: white;
  background: #1479e7;
  font-size: .72rem;
  font-weight: 800;
}
.registered-school-list { display: grid; gap: 10px; }
.registered-school-record {
  width: 100%;
  padding: 13px;
  display: grid;
  grid-template-columns: 45px minmax(0,1fr) 38px;
  align-items: center;
  gap: 11px;
  border: 1px solid #d4e0ec;
  border-radius: 11px;
  color: #1c3655;
  background: white;
  text-align: left;
}
.registered-school-record:hover,
.registered-school-record.active { border-color: #5d9ff0; background: #eaf4ff; box-shadow: 0 8px 22px rgba(24,103,198,.08); }
.registered-school-record img { width: 45px; height: 45px; object-fit: cover; border-radius: 9px; background: #dfe9f4; }
.registered-school-record > span { min-width: 0; display: grid; gap: 4px; }
.registered-school-record b,
.registered-school-record small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.registered-school-record b { font-size: .71rem; }
.registered-school-record small { color: #6f849c; font-size: .58rem; }
.registered-school-record .progress-track { height: 5px; display: block; overflow: hidden; border-radius: 999px; background: #dce5e6; }
.registered-school-record .progress-track em { height: 100%; display: block; border-radius: inherit; background: #1479e7; }
.registered-school-record > strong { color: #48627f; font-size: .62rem; text-align: right; }
.registry-preview { min-width: 0; background: #eef3f1; }
.registry-preview > header {
  min-height: 116px;
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #d8e2e6;
  background: white;
}
.registry-preview > header h3 { margin: 8px 0 0; font: 500 1.55rem var(--font-display); }
.registry-preview-mode { min-width: 190px; display: grid; justify-items: center; gap: 6px; }
.registry-preview-mode > small { max-width: 260px; color: #657b91; font-size: .6rem; line-height: 1.35; text-align: center; }
.preview-mode-switch { padding: 3px; display: flex; gap: 4px; border: 1px solid #c5d3df; border-radius: 9px; background: #edf3f7; }
.registry-preview > header .preview-mode-switch button { padding: 8px 10px; border: 1px solid transparent; transition: color .18s, background-color .18s, border-color .18s, box-shadow .18s; }
.registry-preview > header .preview-mode-switch button[data-school-preview-mode="static"] { color: #8a2934; border-color: #edb7bd; background: #fdebed; }
.registry-preview > header .preview-mode-switch button[data-school-preview-mode="editable"] { color: #6d5100; border-color: #e8c75e; background: #fff4c9; }
.registry-preview > header .preview-mode-switch button[data-school-preview-mode="static"]:hover { border-color: #d66b78; background: #f9d9dd; }
.registry-preview > header .preview-mode-switch button[data-school-preview-mode="editable"]:hover { border-color: #c99c1c; background: #ffeb9b; }
.registry-preview > header .preview-mode-switch button[data-school-preview-mode="static"].active { color: #fff; border-color: #8f2130; background: #ad3040; box-shadow: 0 4px 12px rgba(143,33,48,.3), inset 0 0 0 1px rgba(255,255,255,.2); }
.registry-preview > header .preview-mode-switch button[data-school-preview-mode="editable"].active { color: #2f2300; border-color: #946a00; background: #c69512; box-shadow: 0 4px 12px rgba(128,91,0,.28), inset 0 0 0 1px rgba(255,255,255,.28); }
.registry-preview > header .preview-mode-switch button[data-school-preview-mode="static"].active:hover { border-color: #781a27; background: #982837; }
.registry-preview > header .preview-mode-switch button[data-school-preview-mode="editable"].active:hover { border-color: #795500; background: #ad7f07; }
.registry-preview > header .preview-mode-switch button[data-school-preview-mode="static"]:focus-visible { outline: 3px solid rgba(200,71,85,.3); outline-offset: 2px; }
.registry-preview > header .preview-mode-switch button[data-school-preview-mode="editable"]:focus-visible { outline: 3px solid rgba(201,156,28,.34); outline-offset: 2px; }
.registry-preview > header > div:last-child { max-width: 68%; display: flex; justify-content: end; flex-wrap: wrap; gap: 8px; }
.registry-preview > header button {
  padding: 10px 13px;
  border: 1px solid #a9bfd7;
  border-radius: 8px;
  color: #174d85;
  background: white;
  font-size: .65rem;
  font-weight: 800;
}
.registry-preview > header button.primary { color: white; border-color: #1479e7; background: #1479e7; }
.registry-preview > header button.danger { color: #b52c37; border-color: #e5b9bf; }
.registry-preview > header .workflow-badge { align-self: center; }
.record-workflow { margin-top: 2px; }
.registered-school-record .record-workflow { justify-self: start; }
.school-page-preview {
  height: calc(100vh - 250px);
  min-height: 560px;
  overflow: hidden;
  background: #06152f;
}
.school-page-preview-frame { width: 100%; height: 100%; min-height: 560px; display: block; border: 0; background: #06152f; }
.generated-page-topbar {
  min-height: 42px;
  padding: 0 25px;
  display: flex;
  align-items: center;
  gap: 24px;
  color: white;
  background: #031733;
  font-size: .57rem;
}
.generated-page-topbar small { margin-left: auto; color: #9fb4d2; }
.generated-page-nav {
  min-height: 82px;
  padding: 14px 28px;
  display: flex;
  align-items: center;
  gap: 32px;
  color: #0c335e;
  background: white;
  font-size: .62rem;
  font-weight: 750;
}
.generated-page-nav > div { margin-right: auto; display: flex; align-items: center; gap: 10px; font-size: .9rem; }
.generated-page-nav img { width: 43px; height: 43px; object-fit: cover; border-radius: 50%; }
.generated-draft-banner {
  width: 100%;
  padding: 14px 26px;
  display: flex;
  justify-content: center;
  gap: 20px;
  border: 0;
  color: #805d00;
  background: #fff0b8;
  font-size: .61rem;
}
.generated-draft-banner:hover { background: #ffe898; }
.generated-draft-banner.approved { color: #0b6f42; background: #dff7e9; }
.generated-draft-banner.pending { color: #0e579f; background: #e1efff; }
.generated-draft-banner.changes-requested { color: #9b2b39; background: #ffe5e8; }
.generated-school-hero {
  min-height: 340px;
  padding: 55px 35px;
  display: flex;
  align-items: end;
  color: white;
  background:
    linear-gradient(90deg,rgba(4,39,82,.96),rgba(5,70,129,.82)),
    var(--preview-image) center/cover;
}
.preview-editable {
  position: relative;
  width: 100%;
  padding: 18px;
  border: 1px dashed transparent;
  border-radius: 12px;
  color: inherit;
  background: transparent;
  text-align: left;
}
.preview-editable:hover { border-color: #54a5ff; background: rgba(44,137,239,.09); box-shadow: inset 0 0 0 2px rgba(84,165,255,.16); }
.preview-editable:hover::after {
  content: "Editar no formulário";
  position: absolute;
  top: 9px;
  right: 9px;
  padding: 5px 7px;
  border-radius: 6px;
  color: white;
  background: #1479e7;
  font-size: .55rem;
  font-weight: 800;
}
.preview-profile { max-width: 720px; color: white; }
.preview-profile img { width: 76px; height: 76px; border: 7px solid white; border-radius: 50%; object-fit: cover; }
.preview-profile small { margin-top: 18px; display: block; color: #d4e8ff; font-size: .62rem; text-transform: uppercase; }
.preview-profile h2 { margin: 11px 0 7px; font: 500 2.2rem var(--font-display); }
.preview-profile p { margin: 0; color: #c9dcf4; }
.generated-hero-facts {
  margin-left: auto;
  display: flex;
  gap: 8px;
  align-self: end;
}
.generated-hero-facts span { min-width: 100px; padding: 12px; display: grid; border: 1px solid rgba(170,211,255,.24); border-radius: 10px; color: #c8daf1; background: rgba(2,22,52,.64); font-size: .58rem; backdrop-filter: blur(8px); }
.generated-hero-facts b { color: white; font: 800 1.2rem var(--font-display); }
.preview-editable em { color: #8ca2bd; font-style: normal; }
.preview-profile em { color: #b8d0ed; }
.generated-school-intro { padding: 26px 28px 8px; background: #f7faf9; }
.generated-school-intro .preview-editable { color: #153556; border-color: #d6e2e9; background: white; }
.generated-school-intro span { color: #1475dc; font-size: .57rem; font-weight: 850; letter-spacing: .1em; }
.generated-school-intro h3 { margin: 10px 0 7px; font: 700 1.3rem var(--font-display); }
.generated-school-intro p { max-width: 780px; margin: 0 0 10px; color: #587089; font-size: .76rem; line-height: 1.6; }
.generated-school-intro small { color: #7890a7; font-size: .62rem; }
.generated-preview-grid { padding: 28px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; background: #f7faf9; }
.generated-preview-grid .preview-editable { min-height: 155px; color: #153556; border-color: #d6e2e9; background: white; }
.generated-preview-grid span { color: #1475dc; font-size: .57rem; font-weight: 850; letter-spacing: .1em; }
.generated-preview-grid h3 { margin: 10px 0 7px; font: 700 1.05rem var(--font-display); }
.generated-preview-grid p { margin: 0; color: #647a92; font-size: .7rem; line-height: 1.55; }
.generated-preview-grid small { margin-top: 10px; display: block; color: #7b90a7; font-size: .61rem; line-height: 1.45; }
.generated-preview-grid .generated-project-feature { grid-column: 1/-1; min-height: 190px; background: linear-gradient(145deg,#eaf4ff,#fff); }
.generated-preview-footer { padding: 18px 28px; display: flex; justify-content: space-between; color: #71869b; background: white; font-size: .65rem; }
.report-image-field span { display: grid; gap: 4px; }
.report-image-field span small { color: #7a8da4; font-weight: 500; }
.linked-school-card {
  padding: 22px;
  border: 1px solid #b9d5f5;
  border-radius: 12px;
  background: linear-gradient(145deg,#f1f7ff,#fbfdff);
}
.linked-school-card > span { color: #1474d8; font-size: .6rem; font-weight: 850; letter-spacing: .12em; }
.linked-school-card > div:first-of-type { margin: 15px 0; display: flex; align-items: center; gap: 14px; }
.linked-school-card img { width: 88px; height: 66px; object-fit: cover; border-radius: 9px; }
.linked-school-card h3 { margin: 0 0 5px; font: 750 1.05rem var(--font-display); }
.linked-school-card p { margin: 0; color: #5c7390; font-size: .76rem; line-height: 1.55; }
.linked-common-fields { margin: 17px 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.linked-common-fields span { min-width: 0; padding: 11px; display: grid; gap: 4px; border: 1px solid #d3e1ef; border-radius: 8px; background: rgba(255,255,255,.72); }
.linked-common-fields small { color: #7890a8; font-size: .52rem; font-weight: 850; letter-spacing: .08em; }
.linked-common-fields b { overflow: hidden; color: #183b63; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.linked-extra-fields { margin-top: 18px; }
.linked-extra-fields label > small { margin-top: 5px; display: block; color: #7d90a4; font-size: .6rem; font-weight: 500; }
.linked-draft-note { margin-top: 14px !important; padding: 11px; border-left: 3px solid #f2b72b; border-radius: 6px; background: #fff9e8; }
.collection-empty { padding: 18px; border: 1px dashed #b8cce1; border-radius: 10px; color: #667f99; background: rgba(255,255,255,.58); font-size: .7rem; line-height: 1.5; }
.drag-handle.locked { cursor: default; opacity: .75; }
.linked-card-actions { margin-top: 18px; display: flex; gap: 8px; }
.linked-card-actions button {
  padding: 10px 12px;
  border: 1px solid #9dbfe7;
  border-radius: 8px;
  color: #125aa8;
  background: white;
  font-size: .69rem;
  font-weight: 800;
}
.linked-card-actions button:first-child { color: white; border-color: #1479e7; background: #1479e7; }

.user-record { grid-template-columns: 42px minmax(0,1fr) auto; }
.coordinator-group { display: grid; gap: 7px; }
.coordinator-group + .coordinator-group { margin-top: 13px; padding-top: 13px; border-top: 1px solid #dce5ee; }
.coordinator-group > header { padding: 0 3px 5px; display: flex; align-items: start; justify-content: space-between; gap: 8px; }
.coordinator-group > header div { min-width: 0; display: grid; gap: 2px; }
.coordinator-group > header b,
.coordinator-group > header small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.coordinator-group > header b { color: #173c65; font-size: .68rem; }
.coordinator-group > header small { color: #71869d; font-size: .56rem; }
.coordinator-group > header em { padding: 3px 6px; border-radius: 99px; color: #0a6a3b; background: #dcf5e7; font-size: .5rem; font-style: normal; font-weight: 850; white-space: nowrap; }
.management-group > header em { display: none; }
.mini-progress { width: 100%; height: 3px; margin-top: 5px; overflow: hidden; border-radius: 99px; background: #dce6ef; }
.mini-progress span { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#1479e7,#28a66a); }
.user-avatar,
.account-avatar {
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: white;
  background: linear-gradient(145deg,#1479e7,#0b4c9b);
  font-weight: 850;
}
.user-avatar { width: 40px; height: 40px; font-size: .67rem; }
.user-security-actions { display: flex; justify-content: space-between; gap: 9px; }
.user-security-actions button,
.account-actions button {
  padding: 10px 13px;
  border: 1px solid #9fbce0;
  border-radius: 8px;
  color: #14569e;
  background: white;
  font-size: .72rem;
  font-weight: 800;
}
.user-security-actions button.danger { color: #b52b38; border-color: #e6b7bd; }
.user-security-actions button:disabled { opacity: .45; cursor: not-allowed; }
.coordinator-monitor { margin-bottom: 18px; display: grid; gap: 14px; }
.coordinator-monitor > header { padding: 18px; display: flex; justify-content: space-between; align-items: start; gap: 18px; border: 1px solid #c9dbea; border-radius: 12px; background: linear-gradient(135deg,#f8fbff,#eef6ff); }
.coordinator-monitor > header > div { min-width: 0; }
.coordinator-monitor > header span,
.deadline-editor > div:first-child > span { color: #1472d8; font-size: .56rem; font-weight: 850; letter-spacing: .12em; }
.coordinator-monitor > header h4 { margin: 4px 0 2px; color: #163b64; font: 750 1.08rem var(--font-display); }
.coordinator-monitor > header p { margin: 0; color: #6c829a; font-size: .66rem; }
.deadline-state { padding: 7px 10px; border-radius: 99px; font-size: .58rem; white-space: nowrap; }
.deadline-state.on-time { color: #0b7744; background: #d9f5e6; }
.deadline-state.urgent { color: #8a6100; background: #fff0bd; }
.deadline-state.overdue { color: #aa2939; background: #ffe0e4; }
.coordinator-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.coordinator-kpis article { min-width: 0; padding: 14px; display: grid; gap: 3px; border: 1px solid #d4e1ec; border-radius: 10px; background: #fff; }
.coordinator-kpis small { color: #7890a7; font-size: .5rem; font-weight: 850; letter-spacing: .09em; }
.coordinator-kpis b { overflow: hidden; color: #173c65; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.coordinator-kpis span { overflow: hidden; color: #71859a; font-size: .56rem; text-overflow: ellipsis; white-space: nowrap; }
.coordinator-progress { padding: 14px; border: 1px solid #d6e2ed; border-radius: 10px; background: #fff; }
.coordinator-progress > span { display: flex; justify-content: space-between; gap: 12px; color: #3e5b78; font-size: .64rem; }
.coordinator-progress em { color: #0b67c9; font-style: normal; font-weight: 850; }
.coordinator-progress > i { height: 7px; margin-top: 9px; display: block; overflow: hidden; border-radius: 99px; background: #e2eaf1; }
.coordinator-progress > i b { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#1479e7,#24ad64); }
.coordinator-form-link { width: max-content; padding: 10px 14px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid #1673d8; border-radius: 9px; color: #fff; background: #1268c5; font-size: .68rem; font-weight: 800; }
.coordinator-form-link:hover { background: #0c55a8; }
.coordinator-form-link:disabled { opacity: .45; cursor: not-allowed; }
.deadline-editor { padding: 17px; display: grid; grid-template-columns: minmax(180px,1.2fr) repeat(2,minmax(150px,.7fr)); gap: 12px; align-items: end; border: 1px solid #cbdceb; border-left: 4px solid #1479e7; border-radius: 11px; background: #f8fbff; }
.deadline-editor h4 { margin: 4px 0 2px; color: #193d64; font: 750 .88rem var(--font-display); }
.deadline-editor p { margin: 0; color: #71869b; font-size: .6rem; }
.deadline-editor label { color: #526c85; font-size: .62rem; font-weight: 750; }
.deadline-editor input { width: 100%; margin-top: 6px; padding: 9px 10px; border: 1px solid #bfd1e2; border-radius: 8px; color: #173c61; background: white; font-size: .68rem; }
.deadline-summary { grid-column: 1 / 3; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.deadline-summary span { padding: 9px 11px; display: grid; border: 1px solid #d3e0eb; border-radius: 8px; background: white; }
.deadline-summary small { color: #7890a7; font-size: .48rem; font-weight: 850; }
.deadline-summary b { color: #244766; font-size: .66rem; }
#reset-user-deadline { padding: 10px 12px; border: 1px solid #91b8e3; border-radius: 8px; color: #0d5eb8; background: white; font-size: .65rem; font-weight: 800; }
.coordinator-activity { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 9px; }
.coordinator-activity > span { min-width: 0; padding: 12px; display: grid; grid-template-columns: 24px minmax(0,1fr); column-gap: 7px; border: 1px solid #d5e2ed; border-radius: 9px; background: #fff; }
.coordinator-activity i { grid-row: 1 / 3; color: #1479e7; }
.coordinator-activity b,
.coordinator-activity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.coordinator-activity b { color: #355472; font-size: .61rem; }
.coordinator-activity small { color: #7a8ea3; font-size: .53rem; }

.form-builder-layout {
  min-height: calc(100vh - 132px);
  display: grid;
  grid-template-columns: minmax(230px,280px) minmax(0,1fr);
  gap: 16px;
}
.form-stage-sidebar {
  position: sticky;
  top: 102px;
  max-height: calc(100vh - 130px);
  padding: 18px;
  overflow-y: auto;
  border: 1px solid #d4dfec;
  border-radius: 14px;
  background: white;
}
.form-stage-sidebar > div:first-child span { color: #1472d8; font-size: .6rem; font-weight: 850; letter-spacing: .12em; }
.form-stage-sidebar h3 { margin: 5px 0 15px; font: 750 1rem var(--font-display); }
#form-stage-list { display: grid; gap: 6px; }
#form-stage-list button {
  padding: 10px;
  display: grid;
  grid-template-columns: 27px minmax(0,1fr);
  align-items: center;
  gap: 9px;
  border: 1px solid #d7e2ee;
  border-radius: 9px;
  color: #254565;
  background: #f9fbfe;
  text-align: left;
}
#form-stage-list button.active { color: #0d5fbd; border-color: #79aef0; background: #eaf4ff; }
#form-stage-list button > i { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; color: white; background: #1479e7; font-size: .62rem; font-style: normal; }
#form-stage-list button > span { min-width: 0; display: grid; }
#form-stage-list b,
#form-stage-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#form-stage-list b { font-size: .7rem; }
#form-stage-list small { color: #7589a1; font-size: .58rem; }
.form-question-card {
  margin-top: 12px;
  padding: 17px;
  border: 1px solid #d8e3ee;
  border-left: 4px solid #1479e7;
  border-radius: 10px;
  background: #f9fbfe;
}
.form-question-card > header { margin-bottom: 13px; display: flex; justify-content: space-between; gap: 12px; }
.form-question-card > header b { font-size: .76rem; }
.form-question-card > header span { color: #8194aa; font-size: .58rem; }
.form-question-card > footer { margin-top: 13px; display: flex; justify-content: end; gap: 7px; }
.form-question-card > footer button {
  padding: 7px 9px;
  border: 1px solid #c6d6e8;
  border-radius: 7px;
  color: #315477;
  background: white;
  font-size: .65rem;
}
.form-question-card > footer button.danger { color: #b42c38; border-color: #e9bdc2; }
.form-question-card > footer button:disabled { opacity: .4; cursor: not-allowed; }

.account-layout { width: min(980px,100%); margin: auto; display: grid; grid-template-columns: 280px minmax(0,1fr); gap: 16px; }
.account-summary {
  min-height: 280px;
  padding: 28px 22px;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 18px;
  border-radius: 14px;
  color: white;
  background: radial-gradient(circle at 100% 0,rgba(55,143,245,.38),transparent 16rem),#082657;
  text-align: center;
}
.account-avatar { width: 82px; height: 82px; border: 6px solid rgba(255,255,255,.85); border-radius: 50%; font-size: 1.25rem; }
.account-summary small { color: #74b2ff; font-size: .6rem; font-weight: 850; letter-spacing: .12em; }
.account-summary h3 { margin: 8px 0 4px; font: 750 1.25rem var(--font-display); }
.account-summary p { margin: 0; color: #bdd0e8; font-size: .72rem; }
.account-actions { margin-top: 18px; display: flex; justify-content: end; }
.account-actions button { color: white; border-color: #1479e7; background: #1479e7; }

html[data-theme="light"] body {
  color: #102746;
  background:
    radial-gradient(circle at 0 20%, rgba(82,135,196,.035), transparent 25rem),
    radial-gradient(circle at 100% 60%, rgba(72,151,108,.025), transparent 25rem),
    #fbfaf7;
}
html[data-theme="light"] .flag-button,
html[data-theme="light"] .theme-toggle {
  color: #0c2e58;
  border-color: rgba(92,128,177,.35);
  background: rgba(240,247,255,.9);
  box-shadow: 0 12px 35px rgba(26,71,128,.13);
}
html[data-theme="light"] .nav-panel {
  border-color: rgba(138,156,159,.34);
  background: rgba(255,254,251,.94);
  box-shadow: 0 12px 32px rgba(51,76,73,.1);
}
html[data-theme="light"] .login-button {
  color: white;
  border-color: rgba(16,88,181,.55);
  background: rgba(10,91,192,.9);
}
html[data-theme="light"] .bahia-neural {
  color: #102746;
  background:
    radial-gradient(circle at 12% 5%, rgba(52,121,201,.1), transparent 26rem),
    radial-gradient(circle at 92% 90%, rgba(37,155,94,.08), transparent 25rem),
    #faf9f6;
}
html[data-theme="light"] .bahia-neural::before { opacity: .07; }
html[data-theme="light"] .neural-copy > p { color: #526c87; }
html[data-theme="light"] .neural-copy > small { color: #6c8196; }
html[data-theme="light"] .neural-legend span { color: #536c86; }
html[data-theme="light"] .neural-school-counter { border-color: #c7dbea; color: #536c86; background: rgba(255,255,255,.72); }
html[data-theme="light"] .schools-section {
  color: #102746;
  background:
    radial-gradient(circle at 0 100%, rgba(87,137,194,.08), transparent 27rem),
    radial-gradient(circle at 100% 0, rgba(101,145,116,.06), transparent 26rem),
    #fffdfa;
}
html[data-theme="light"] .schools-section::before { opacity: .055; }
html[data-theme="light"] .section-heading p { color: #5c708f; }
html[data-theme="light"] .text-link { border-color: #7b9dc9; }
html[data-theme="light"] .school-filters button { color: #536a8a; border-color: #b7cae2; background: rgba(255,255,255,.55); }
html[data-theme="light"] .school-filters button:hover,
html[data-theme="light"] .school-filters button.active { color: #174f9b; border-color: #5a87e9; background: #e2ebff; }
html[data-theme="light"] .school-card {
  border-color: #d5deda;
  background: #fffefa;
  box-shadow: 0 14px 34px rgba(49,75,69,.075);
}
html[data-theme="light"] .school-card:hover,
html[data-theme="light"] .school-card:focus-visible { border-color: #82a6c9; box-shadow: 0 18px 42px rgba(49,75,69,.11), 0 0 0 2px rgba(73,129,185,.12); }
html[data-theme="light"] .school-body h3 { color: #253b4f; }
html[data-theme="light"] .school-body p { color: #637276; }
html[data-theme="light"] .school-tags span { color: #5f7077; border-color: #d0dad8; background: rgba(248,250,247,.8); }
html[data-theme="light"] .school-card-open { color: #174d91; }
html[data-theme="light"] .constellation {
  color: #102746;
  background:
    radial-gradient(circle at 100% 5%, rgba(54,112,180,.1), transparent 32rem),
    radial-gradient(circle at 0 90%, rgba(41,145,86,.07), transparent 28rem),
    #faf9f6;
}
html[data-theme="light"] .constellation::before { opacity: .27; }
html[data-theme="light"] .constellation-copy > p { color: #526c90; }
html[data-theme="light"] .constellation-copy h2 strong { color: #18a75a; }
html[data-theme="light"] .legend { color: #526a8d; }
html[data-theme="light"] .orbit-scene {
  background: radial-gradient(circle at center, rgba(34,104,207,.2), rgba(101,157,231,.08) 46%, transparent 72%);
}
html[data-theme="light"] .orbit { border-color: rgba(41,108,197,.34); }
html[data-theme="light"] .signal-card {
  color: #153255;
  border-color: rgba(63,119,195,.42);
  background: rgba(245,250,255,.88);
  box-shadow: 0 12px 28px rgba(39,83,143,.14);
}
html[data-theme="light"] .signal-card small { color: #149c53; }
html[data-theme="light"] .signal-card span { color: #5d7391; }
html[data-theme="light"] .constellation-stats {
  border-color: rgba(74,121,184,.28);
  background: rgba(245,250,255,.76);
}
html[data-theme="light"] .constellation-stats article { border-color: rgba(74,121,184,.22); }
html[data-theme="light"] .constellation-stats span { color: #5b7190; }
html[data-theme="light"] .results {
  background:
    radial-gradient(circle at 5% 0, rgba(83,135,190,.07), transparent 25rem),
    radial-gradient(circle at 100% 100%, rgba(202,160,62,.06), transparent 25rem),
    #fffdfa;
}
html[data-theme="light"] .results-head p { color: #63747c; }
html[data-theme="light"] .metric-grid { border-color: #d9dfdc; background: #f4f2ec; box-shadow: 0 16px 36px rgba(68,73,67,.055); }
html[data-theme="light"] .metric-grid article {
  border-color: #879e9b;
  background: #fff;
}
html[data-theme="light"] .metric-grid article:nth-child(3),
html[data-theme="light"] .metric-grid article:nth-child(6) { background: #f4f2ec; }
html[data-theme="light"] .metric-grid article:first-child { background: linear-gradient(135deg,#2779c9,#1761ac); }
html[data-theme="light"] .metric-grid span { color: #65767c; }
html[data-theme="light"] .journey {
  color: #112948;
  background:
    radial-gradient(circle at 0 100%, rgba(20,121,237,.1), transparent 25rem),
    #faf9f6;
}
html[data-theme="light"] .journey-copy p { color: #5b708f; }
html[data-theme="light"] .journey-grid { background: rgba(79,124,184,.23); }
html[data-theme="light"] .journey-grid article { background: #fffefa; }
html[data-theme="light"] .journey-grid b { color: #7390b5; }
html[data-theme="light"] .journey-grid p { color: #5d7391; }
html[data-theme="light"] .help-section { background: #fffdfa; }
html[data-theme="light"] footer { color: #5c7075; border-top-color: #c4cfcb; background: #f4f3ef; }
html[data-theme="light"] .footer-brand b { color: #132c4e; }
html[data-theme="light"] .social-links a { color: #173f70; border-color: #aac1df; }
html[data-theme="light"] .footer-links a:hover { color: #0c5ebe; }
html[data-theme="light"] .footer-bottom { color: #667f9e; border-color: #c4d5e9; }
html[data-theme="light"] .support-card { color: #173253; border-color: #b4c9e3; background: #f4f9ff; }
html[data-theme="light"] .school-dialog {
  color: #142d4f;
  border-color: #9cb9df;
  background: #f6f9ff;
  box-shadow: 0 30px 90px rgba(40,78,132,.3);
}
html[data-theme="light"] .school-modal-media {
  border-color: #c6d6e9;
  background:
    radial-gradient(circle at 15% 15%, rgba(41,101,218,.11), transparent 24rem),
    #eaf2fd;
}
html[data-theme="light"] .school-modal-content {
  background:
    radial-gradient(circle at 100% 0, rgba(29,94,203,.1), transparent 23rem),
    linear-gradient(150deg,#f8fbff,#edf4fd);
}
html[data-theme="light"] .school-modal-place,
html[data-theme="light"] .school-modal-description { color: #58708f; }
html[data-theme="light"] .school-modal-facts div { border-color: #bfd0e5; background: rgba(255,255,255,.72); }
html[data-theme="light"] .school-modal-facts small { color: #7186a2; }
html[data-theme="light"] .school-modal-facts b { color: #294764; }
html[data-theme="light"] .school-modal-tags span { color: #58708f; border-color: #bacce3; }
html[data-theme="light"] .school-modal-story section { border-color: #bfd0e5; background: rgba(255,255,255,.7); }
html[data-theme="light"] .school-modal-story h3 { color: #244563; }
html[data-theme="light"] .school-modal-story p { color: #617a96; }
html[data-theme="light"] .school-modal-actions button { color: #23486f; border-color: #9db7d7; }
html[data-theme="light"] .close-school-modal { color: #173657; border-color: #a9bed9; background: rgba(239,246,255,.88); }
html[data-theme="dark"] body { background: #030d20; }
html[data-theme="dark"] .results {
  color: white;
  background:
    radial-gradient(circle at 5% 0, rgba(20,121,237,.2), transparent 25rem),
    radial-gradient(circle at 100% 100%, rgba(255,193,45,.1), transparent 25rem),
    #071a38;
}
html[data-theme="dark"] .results-head p { color: #9db2d0; }
html[data-theme="dark"] .metric-grid { border-color: #29466e; background: rgba(4,20,46,.7); box-shadow: 0 25px 60px rgba(0,0,0,.14); }
html[data-theme="dark"] .metric-grid article {
  border-color: #5e86b8;
  background: linear-gradient(145deg, rgba(15,39,76,.92), rgba(8,26,57,.9));
}
html[data-theme="dark"] .metric-grid article:first-child { background: linear-gradient(135deg,#1377e4,#0753b8); }
html[data-theme="dark"] .metric-grid span { color: #9db1ce; }
html[data-theme="dark"] .help-section {
  color: white;
  background:
    radial-gradient(circle at 0 0, rgba(20,121,237,.17), transparent 22rem),
    radial-gradient(circle at 100% 100%, rgba(37,191,104,.12), transparent 20rem),
    #081a38;
}
html[data-theme="dark"] .help-section p { color: #9eb2cf; }

/* Contraste textual padronizado em todo o portal. */
html[data-theme="light"] .neural-copy > p,
html[data-theme="light"] .neural-copy > small,
html[data-theme="light"] .neural-legend span,
html[data-theme="light"] .neural-school-counter,
html[data-theme="light"] .section-heading p,
html[data-theme="light"] .constellation-copy > p,
html[data-theme="light"] .legend,
html[data-theme="light"] .signal-card span,
html[data-theme="light"] .constellation-stats span,
html[data-theme="light"] .results-head p,
html[data-theme="light"] .metric-grid span,
html[data-theme="light"] .journey-copy p,
html[data-theme="light"] .journey-grid p,
html[data-theme="light"] .help-section p,
html[data-theme="light"] footer,
html[data-theme="light"] .footer-bottom,
html[data-theme="light"] .school-modal-place,
html[data-theme="light"] .school-modal-description,
html[data-theme="light"] .school-modal-facts small,
html[data-theme="light"] .school-modal-facts b,
html[data-theme="light"] .school-modal-tags span,
html[data-theme="light"] .school-modal-story p { color: #101820; }
html[data-theme="dark"] .neural-copy > p,
html[data-theme="dark"] .neural-copy > small,
html[data-theme="dark"] .neural-legend span,
html[data-theme="dark"] .neural-school-counter,
html[data-theme="dark"] .constellation-copy > p,
html[data-theme="dark"] .legend,
html[data-theme="dark"] .signal-card span,
html[data-theme="dark"] .constellation-stats span,
html[data-theme="dark"] .results-head p,
html[data-theme="dark"] .metric-grid span,
html[data-theme="dark"] .journey-copy p,
html[data-theme="dark"] .journey-grid p,
html[data-theme="dark"] .help-section p,
html[data-theme="dark"] footer,
html[data-theme="dark"] .footer-bottom { color: #fff; }

@media (max-width: 1200px) {
  :root { --page-gutter: 48px; }
  .header-inner { width: calc(100% - 96px); }
}

@media (max-width: 1400px) and (min-width: 1001px) {
  .school-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

@media (min-width: 1001px) and (max-height: 950px) {
  .hero { height: clamp(500px, 58vh, 540px); min-height: 500px; }
}

@media (min-width: 1001px) and (max-height: 800px) {
  .hero { height: clamp(420px, 56vh, 440px); min-height: 420px; }
  .slide-copy { margin-top: 34px; padding: 18px 22px 17px; }
  .slide-copy h1 { margin-block: 9px; font-size: clamp(2.2rem, 3.4vw, 3.55rem); }
  .slide-copy p { margin-bottom: 16px; font-size: .92rem; }
  .carousel-footer { bottom: 6px; min-height: 94px; }
  .carousel-thumbnails { min-height: 82px; }
}

@media (max-width: 1000px) {
  .brand span { display: none; }
  .brand { padding-right: 10px; }
  .school-grid { grid-template-columns: repeat(2,1fr); }
  .map-panel { min-height: 680px; }
  .map-school-selector { width: 300px; }
  .constellation { grid-template-columns: 1fr; padding-top: var(--section-space-lg); }
  .constellation-copy { text-align: center; }
  .constellation-copy h2,
  .constellation-copy > p { margin-left: auto; margin-right: auto; }
  .constellation-copy .primary-cta,
  .legend { margin-left: auto; margin-right: auto; justify-content: center; }
  .orbit-scene { width: min(560px, 90vw); }
  .metric-grid { grid-template-columns: repeat(2,1fr); }
  .metric-grid article:nth-child(2) { border-right: 0; }
  html[data-theme="light"] .metric-grid article:nth-child(n):not(:first-child) { background: #fff; }
  html[data-theme="light"] .metric-grid article:nth-child(4n):not(:first-child),
  html[data-theme="light"] .metric-grid article:nth-child(4n+1):not(:first-child) { background: #f4f2ec; }
  .journey-grid { grid-template-columns: repeat(2,1fr); }
  .footer-main { grid-template-columns: 1fr auto; }
  .footer-links { grid-column: 1/-1; justify-content: start; }
  .collection-workspace { grid-template-columns: 1fr; }
  .collection-sidebar { position: static; max-height: none; }
  .collection-list { display: flex; overflow-x: auto; padding-bottom: 5px; scrollbar-width: thin; }
  .collection-record { width: 235px; flex: 0 0 235px; }
  .brand-settings-grid { grid-template-columns: 1fr 1fr; }
  .brand-settings-grid > label:first-child { grid-column: 1 / -1; }
  .notice-objectives { grid-template-columns: 1fr; }
  .school-dialog { width: min(760px, 100%); grid-template-columns: 1fr; overflow-y: auto; }
  .school-modal-media { min-height: 430px; border-right: 0; border-bottom: 1px solid #1b2c48; }
  .school-main-image { min-height: 320px; }
  .school-modal-content { overflow: visible; }
  .report-dashboard-grid { grid-template-columns: 1fr; }
  .report-card { min-height: auto; }
  .school-registry-workspace { grid-template-columns: 1fr; }
  .registry-sidebar { border-right: 0; border-bottom: 1px solid #dbe4eb; }
  .registered-school-list { display: flex; overflow-x: auto; padding-bottom: 5px; }
  .registered-school-record { width: 280px; flex: 0 0 280px; }
  .coordinator-kpis { grid-template-columns: 1fr 1fr; }
  .deadline-editor { grid-template-columns: 1fr 1fr; }
  .deadline-editor > div:first-child { grid-column: 1 / -1; }
  .deadline-summary { grid-column: 1 / 2; }
  .coordinator-activity { grid-template-columns: 1fr; }
  .form-builder-layout { grid-template-columns: 1fr; }
  .form-stage-sidebar { position: static; max-height: none; }
  #form-stage-list { display: flex; overflow-x: auto; }
  #form-stage-list button { width: 210px; flex: 0 0 210px; }
  .account-layout { grid-template-columns: 1fr; }
  .account-summary { min-height: 220px; }
}

@media (max-width: 760px) {
  body { font-size: 16px; }
  .site-header { top: 9px; }
  .header-inner { width: calc(100% - 18px); gap: 6px; }
  .nav-panel { min-height: 55px; border-radius: 14px; }
  .brand img { width: 34px; height: 34px; }
  .mobile-toggle { margin-left: auto; display: block; border: 0; color: #0d315c; background: transparent; font-size: 1.15rem; }
  .desktop-nav {
    position: absolute;
    top: 64px;
    left: 0;
    right: 0;
    padding: 8px;
    display: none;
    border: 1px solid rgba(255,255,255,.6);
    border-radius: 14px;
    background: rgba(239,246,255,.97);
    box-shadow: 0 16px 35px rgba(0,20,50,.2);
  }
  .desktop-nav.open { display: grid; }
  .desktop-nav a { padding: 10px; display: block; }
  .flag-button,
  .theme-toggle,
  .login-button { height: 55px; border-radius: 14px; }
  .flag-button { width: 57px; }
  .theme-toggle { width: 47px; flex-basis: 47px; }
  .flag-button > span:nth-child(2),
  .flag-button b { display: none; }
  .login-button { min-width: 70px; padding: 0 12px; }
  .hero { min-height: clamp(590px, 76svh, 660px); height: auto; margin: 9px; border-radius: 18px; }
  .slide-copy { width: calc(100% - 50px); margin: 58px auto 0; padding: 20px; }
  .slide-copy h1 { font-size: clamp(2.1rem, 12vw, 3.3rem); }
  .carousel-arrow { top: auto; bottom: 112px; width: 40px; height: 40px; transform: none; }
  .carousel-arrow:hover { transform: translateY(-2px) scale(1.04); }
  .previous { left: 15px; }
  .next { right: 15px; }
  .carousel-footer {
    bottom: 8px;
    width: calc(100% - 20px);
    min-height: 90px;
    padding-inline: 5px;
  }
  .carousel-thumbnails { min-height: 80px; justify-content: start; }
  .thumbnail-card { width: 112px; height: 55px; flex-basis: 112px; }
  .thumbnail-card:hover,
  .thumbnail-card:focus-visible { width: 168px; height: 78px; flex-basis: 168px; }
  .thumbnail-topic b { max-width: 72px; font-size: .57rem; }
  .thumbnail-card:hover .thumbnail-topic b,
  .thumbnail-card:focus-visible .thumbnail-topic b { max-width: 120px; font-size: .66rem; }
  .schools-section,
  .network-map,
  .results,
  .journey { padding: 42px 20px; }
  .map-heading { align-items: start; flex-direction: column; }
  .map-count { min-width: 135px; }
  .map-panel { min-height: 720px; border-radius: 17px; }
  .map-background { object-position: 70% center; opacity: .58; }
  .map-school-selector { left: 15px; right: 15px; top: 15px; width: auto; max-height: 235px; overflow-y: auto; }
  .map-school-card { left: 15px; right: 15px; bottom: 75px; width: auto; }
  .map-pagination { left: 50%; bottom: 20px; transform: translateX(-50%); }
  .section-heading,
  .help-section { align-items: start; flex-direction: column; }
  .school-grid { grid-template-columns: 1fr; }
  .constellation { padding: 42px 20px 0; min-height: auto; }
  .constellation-copy h2 { font-size: clamp(2.8rem,14vw,4.2rem); }
  .orbit-scene { width: 100%; }
  .signal-card { width: 145px; padding: 10px; }
  .signal-card:nth-child(1) { left: 6px; }
  .signal-card:nth-child(2) { right: 6px; }
  .signal-card:nth-child(3) { display: none; }
  .orbit-center { width: 82px; height: 82px; }
  .orbit-center img { width: 100%; height: 100%; }
  .constellation-stats { grid-template-columns: 1fr; }
  .constellation-stats article { border-right: 0; border-bottom: 1px solid rgba(117,163,223,.2); }
  .metric-grid,
  .journey-grid { grid-template-columns: 1fr; }
  .metric-grid article,
  .metric-grid article:nth-child(2) { border-right: 0; border-bottom: 2px solid #628fc7; }
  html[data-theme="light"] .metric-grid article:nth-child(n):not(:first-child) { background: #fff; }
  html[data-theme="light"] .metric-grid article:nth-child(odd):not(:first-child) { background: #f4f2ec; }
  .help-section { padding: 34px 20px; }
  .footer-main { padding: 25px 20px; grid-template-columns: 1fr; }
  .social-links,
  .footer-links { justify-content: start; }
  .footer-bottom { padding: 9px 20px; }
  .login-dialog { grid-template-columns: 1fr; }
  .login-art { display: none; }
  .login-form { padding: 30px 24px; }
  .school-modal { padding: 10px; align-items: start; overflow-y: auto; }
  .school-dialog { max-height: none; margin: 12px 0; border-radius: 16px; }
  .school-modal-media { min-height: 0; padding: 54px 14px 16px; }
  .school-main-image { min-height: 220px; }
  .school-modal-content { padding: 28px 20px 22px; }
  .school-modal-facts { grid-template-columns: 1fr; }
  .school-gallery { justify-content: start; }
  .school-gallery button { width: 74px; height: 48px; flex-basis: 74px; }
  .admin-console { grid-template-columns: 66px 1fr; }
  .admin-console > aside { padding: 14px 8px; }
  .console-logo div,
  .admin-console aside nav button span,
  .stage-nav-button small,
  .nav-indicator,
  .nav-status,
  .console-main-destination small { display: none; }
  .console-logo { padding: 0 5px 16px; }
  .admin-console aside nav button { justify-content: center; font-size: 1rem; }
  .console-navigation { overflow-y: auto; }
  .nav-group-items { padding-left: 0; }
  .admin-console aside nav .nav-group-items button { padding-inline: 6px; }
  .nav-group-items button i { color: #a7bedb; }
  .console-links button { overflow: hidden; white-space: nowrap; font-size: 0; }
  .console-links button::first-letter { font-size: 1rem; }
  .console-main > header { padding: 10px 15px; }
  .local-draft { display: none; }
  .console-body { padding: 16px; }
  .editor-card { padding: 17px; }
  .collection-sidebar { padding: 14px; }
  .collection-record { width: 210px; flex-basis: 210px; }
  .editor-grid,
  .summary,
  .editor-group,
  .carousel-style-editor,
  .slide-overlay-fields,
  .report-form-grid { grid-template-columns: 1fr; }
  .report-form-grid label.full { grid-column: auto; }
  .report-deadline { align-items: stretch; flex-direction: column; }
  .report-overall-progress { width: 100%; justify-items: start; }
  .report-overall-progress > span { text-align: left; }
  .coordinator-monitor > header { flex-direction: column; }
  .coordinator-kpis,
  .deadline-editor { grid-template-columns: 1fr; }
  .deadline-editor > div:first-child,
  .deadline-summary { grid-column: auto; }
  .deadline-summary { grid-template-columns: 1fr 1fr; }
  .report-card,
  .report-stage-header { padding: 18px; }
  .report-stage-row { grid-template-columns: 30px minmax(0,1fr) 38px; gap: 8px; }
  .report-stage-heading { align-items: start; flex-direction: column; }
  .report-stage-status { text-align: left; }
  .report-autosave { align-items: stretch; flex-direction: column; }
  .registry-preview > header { align-items: stretch; flex-direction: column; }
  .registry-preview-mode { justify-items: start; }
  .registry-preview-mode > small { text-align: left; }
  .registry-preview > header > div:last-child { max-width: none; justify-content: start; flex-wrap: wrap; }
  .generated-page-nav > span { display: none; }
  .generated-page-topbar span { display: none; }
  .generated-draft-banner { align-items: start; flex-direction: column; gap: 5px; }
  .generated-preview-grid { grid-template-columns: 1fr; padding: 15px; }
  .generated-school-hero { min-height: 300px; padding: 35px 16px; align-items: stretch; flex-direction: column; }
  .generated-hero-facts { width: 100%; margin: 16px 0 0; align-self: auto; overflow-x: auto; }
  .generated-hero-facts span { min-width: 110px; }
  .generated-school-intro { padding: 15px 15px 0; }
  .linked-common-fields { grid-template-columns: 1fr; }
  .preview-profile h2 { font-size: 1.7rem; }
  .school-page-preview { height: 68vh; min-height: 480px; max-height: 68vh; }
  .school-page-preview-frame { min-height: 480px; }
  .user-security-actions,
  .linked-card-actions { align-items: stretch; flex-direction: column; }
  .form-question-card > footer { justify-content: start; flex-wrap: wrap; }
  .editor-title.with-action { align-items: stretch; flex-direction: column; }
  .editor-title.with-status,
  .console-section-heading { align-items: stretch; flex-direction: column; }
  .brand-settings-grid { grid-template-columns: 1fr; }
  .brand-settings-grid > label:first-child { grid-column: auto; }
  .welcome { align-items: start; gap: 20px; }
  .completion { display: none; }
}

/* Régua única do cabeçalho público: a página inicial é a referência. */
:root {
  --public-header-primary-height: 52px;
  --public-header-secondary-height: 36px;
  --public-header-logo-size: 36px;
  --public-header-action-height: 34px;
}
.site-header {
  height: calc(var(--public-header-primary-height) + var(--public-header-secondary-height) + 1px);
}
.site-header > .header-primary {
  width: 100%;
  height: var(--public-header-primary-height);
  min-height: var(--public-header-primary-height);
  max-height: var(--public-header-primary-height);
  padding-inline: clamp(18px,3.2vw,56px);
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
}
.site-header .menu-trigger { min-height: 34px; gap: 9px; font-size: .74rem; }
.site-header .menu-color-grid { width: 18px; height: 18px; flex: 0 0 18px; }
.site-header .header-brand { gap: 8px; font-size: 1rem; line-height: 1; }
.site-header .header-brand img {
  width: var(--public-header-logo-size);
  height: var(--public-header-logo-size);
  flex: 0 0 var(--public-header-logo-size);
}
.site-header .header-actions { min-width: 0; gap: 7px; }
.site-header .header-actions .flag-button,
.site-header .header-actions .theme-toggle,
.site-header .header-actions .login-button { height: var(--public-header-action-height); min-height: var(--public-header-action-height); max-height: var(--public-header-action-height); }
.site-header .header-actions .flag-button { width: 48px; }
.site-header .header-actions .theme-toggle { width: 34px; flex-basis: 34px; }
.site-header .header-actions .login-button { min-width: 74px; padding-inline: 14px; border-radius: 9px; font-size: .88rem; }
.site-header > .header-secondary {
  width: 100%;
  height: var(--public-header-secondary-height);
  min-height: var(--public-header-secondary-height);
  max-height: var(--public-header-secondary-height);
  padding-inline: clamp(18px,3.2vw,56px);
  gap: clamp(12px,4vw,62px);
}
.site-header > .header-secondary a { min-height: var(--public-header-secondary-height); padding-inline: 7px; font-size: .7rem; line-height: 1; }
.site-header + .site-menu-layer + main,
.site-header + .site-menu-layer + .school-shell { padding-top: calc(var(--public-header-primary-height) + var(--public-header-secondary-height) + 1px); }

@media (max-width: 760px) {
  :root {
    --public-header-primary-height: 58px;
    --public-header-secondary-height: 43px;
    --public-header-logo-size: 38px;
    --public-header-action-height: 42px;
    --internal-hero-title-size: clamp(1.8rem, 8vw, 2.25rem);
    --internal-hero-description-size: .84rem;
  }
  .site-header > .header-primary { padding-inline: 12px; grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; }
  .site-header .menu-trigger { min-height: 42px; padding-inline: 5px; }
  .site-header .header-brand { gap: 7px; font-size: .9rem; }
  .site-header .header-actions { gap: 5px; }
  .site-header .header-actions .flag-button { width: 51px; }
  .site-header .header-actions .theme-toggle { width: 42px; flex-basis: 42px; }
  .site-header .header-actions .login-button { min-width: 68px; padding-inline: 10px; font-size: 1rem; }
  .site-header > .header-secondary { padding-inline: 12px; justify-content: flex-start; gap: 22px; }
  .site-header > .header-secondary a { padding-inline: 4px; }
}

@media (max-width: 520px) {
  .site-header > .header-secondary { gap: 18px; }
}

.home-editorial { --page-bg:#071934; --surface:#0d2747; --muted:#f7fbff; --soft-shadow:0 18px 45px rgba(0,0,0,.18); --ink:#f7fbff; padding: var(--module-padding-block) var(--module-padding-inline); background: var(--page-bg); color: var(--ink); }
html[data-theme="light"] .home-editorial { --page-bg:#faf9f6; --surface:#fff; --muted:#111820; --soft-shadow:0 16px 38px rgba(46,70,97,.09); --ink:#101820; }
.editorial-heading { margin-bottom: 28px; }
.editorial-columns { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.editorial-column { min-width: 0; --editorial-color: #1479ed; }
.editorial-column.red-column { --editorial-color: #ef3e48; }
.editorial-column.green-column { --editorial-color: #20b968; }
.editorial-column.yellow-column { --editorial-color: #e6a600; }
.editorial-column > header { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding-bottom: 13px; border-bottom: 2px solid var(--editorial-color); }
.editorial-column > header h3 { margin: 0; color: var(--editorial-color); font-size: clamp(1.65rem,3vw,2.35rem); }
.editorial-column > header a { color: var(--muted); font-size: .72rem; font-weight: 800; text-decoration: none; }
.editorial-feature { margin: 22px 0 4px; overflow: hidden; border-radius: 17px; background: var(--surface); box-shadow: var(--soft-shadow); }
.editorial-feature img { display: block; width: 100%; height: 132px; object-fit: cover; background: #dbe8f5; }
.editorial-feature div { padding: 17px; border-top: 5px solid var(--editorial-color); }
.editorial-feature small { color: var(--editorial-color); font-size: .66rem; font-weight: 900; }
.editorial-feature h4 { margin: 8px 0; font-size: 1.18rem; line-height: 1.2; }
.editorial-feature p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.editorial-item { display: grid; gap: 5px; padding: 14px 4px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.editorial-item b { color: var(--editorial-color); line-height: 1.35; }
.editorial-item span { color: var(--muted); font-size: .72rem; }

@media (max-width: 900px) { .editorial-columns { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) {
  .constellation::before,
  .orbit-scene::after,
  .orbit,
  .orbit-center,
  .orbit-center span,
  .planet-track,
  .planet,
  .signal-card {
    animation: none !important;
  }
}

@media (max-width: 1000px) {
  .header-brand span { display: inline; }
  .bahia-neural { grid-template-columns: 1fr; text-align: center; }
  .neural-copy { max-width: 760px; margin: auto; }
  .neural-legend { justify-content: center; }
  .neural-school-counter { margin-inline: auto; }
  .neural-stage { width: min(650px,88vw); justify-self: center; }
}

@media (max-width: 760px) {
  .site-header { top: 0; left: 0; width: 100%; max-width: none; transform: none; }
  .header-primary { height: 58px; padding: 0 12px; grid-template-columns: auto 1fr auto; gap: 9px; }
  .menu-trigger { padding-inline: 5px; }
  .menu-trigger span { display: none; }
  .header-brand { justify-self: center; padding: 0; }
  .header-brand img { width: 38px; height: 38px; padding: 5px; }
  .header-brand span { font-size: .9rem; }
  .header-actions { gap: 5px; }
  .header-actions .flag-button,
  .header-actions .theme-toggle,
  .header-actions .login-button { height: 42px; border-radius: 9px; }
  .header-actions .flag-button { width: 51px; }
  .header-actions .theme-toggle { width: 42px; flex-basis: 42px; }
  .header-actions .login-button { min-width: 68px; padding: 0 10px; }
  .header-secondary.desktop-nav {
    position: static;
    inset: auto;
    height: 43px;
    padding: 0 12px;
    display: flex;
    justify-content: flex-start;
    gap: 22px;
    border: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
  }
  .header-secondary.desktop-nav a { padding: 0 4px; display: grid; }
  .site-header + .site-menu-layer + main { padding-top: 100px; }
  .site-menu-drawer { width: min(340px,calc(100vw - 24px)); }
  .bahia-neural { min-height: auto; gap: 34px; }
  .neural-copy h2 { font-size: clamp(2.4rem,12vw,3.7rem); }
  .neural-copy > p { font-size: .9rem; }
  .neural-stage { width: min(100%,560px); }
  .neural-badge { right: 6%; bottom: 10%; }
  .registration-notice-card { padding: 20px; }
  .registration-notice-heading { align-items: stretch; flex-direction: column; }
  .registration-notice-heading > small { width: max-content; }
  .registration-notice-builder { grid-template-columns: 1fr; }
  .registration-live-preview { position: static; }
  .notice-builder-heading { align-items: stretch; flex-direction: column; }
  .notice-builder-heading > div:last-child { flex-wrap: wrap; }
}

@media (max-width: 520px) {
  .header-brand span { display: none; }
  .header-actions .language { display: none; }
  .header-secondary.desktop-nav { gap: 18px; }
}

/* Retorno ao topo compartilhado pelas páginas públicas. */
.shared-back-to-top {
  position: fixed;
  z-index: 42;
  right: 18px;
  bottom: 18px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg,#1780f0,#0759c8);
  box-shadow: 0 12px 30px rgba(6,91,200,.3);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s ease,visibility .2s ease,transform .2s ease;
}
.shared-back-to-top.visible { opacity: 1; visibility: visible; transform: translateY(0); }
.shared-back-to-top:hover { background: linear-gradient(135deg,#2890ff,#0966db); transform: translateY(-2px); }
.shared-back-to-top i { font-size: 1.05rem; }

/* Leitura mais confortável no console; placeholders permanecem discretos. */
.admin-console { color: #10243e; }
.console-logo span { color: #d2e1f2; font-size: .75rem; }
.admin-console aside nav button,
.console-links button { font-size: .91rem; }
.admin-console aside nav .nav-group-items button { font-size: .81rem; }
.console-main > header small { color: #52677f; font-size: .68rem; }
.local-draft { color: #4f647c; font-size: .76rem; }
.welcome p { color: #d9e6f5; font-size: .88rem; }
.summary article span { color: #4e647e; font-size: .64rem; }
.summary article p { color: #5d7189; font-size: .76rem; }
.prototype-note p { color: #3f5875; font-size: .83rem; }
.collection-sidebar > p { color: #566c84; font-size: .73rem; }
.record-copy b { font-size: .76rem; }
.record-copy small,
.collection-record em { color: #5b7088; font-size: .62rem; }
.editor-title span { font-size: .66rem; }
.console-section-heading span { font-size: .63rem; }
.console-section-heading small { color: #50647b; font-size: .72rem; }
.editor-card label { color: #203a57; font-size: .88rem; }
.editor-card input,
.editor-card textarea,
.editor-card select { color: #081c34; font-size: .97rem; }
.editor-group > b { color: #142f4d; font-size: .84rem; }
.editor-actions button { color: #203f60; font-size: .76rem; }
.editor-subtitle { color: #1d3958; font-size: 1rem; }
.editor-help { color: #4e647c; font-size: .78rem; line-height: 1.5; }
.editor-card label > small { color: #5e7289; font-size: .75rem; }
.console-search { color: #526980; }
.console-search input { color: #102945; font-size: .76rem; }
.admin-console input::placeholder,
.admin-console textarea::placeholder { color: #93a2b3; font-weight: 400; opacity: .82; }

@media (max-width: 760px) {
  .shared-back-to-top { right: 14px; bottom: 14px; }
}
