/* ========================================
   CRAQUES DO FUTURO — CSS Principal
   Preto + Laranja | Design Editorial Bold
   ======================================== */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap');

:root {
  --bg: #0a0a0a;
  --bg-2: #111111;
  --surface: rgba(255,255,255,.04);
  --surface-hover: rgba(255,255,255,.07);
  --border: rgba(255,255,255,.09);
  --border-strong: rgba(255,255,255,.15);

  --text: rgba(255,255,255,.94);
  --muted: rgba(255,255,255,.55);
  --muted-2: rgba(255,255,255,.35);

  --brand: #FF5500;
  --brand-2: #FF8040;
  --brand-glow: rgba(255,85,0,.22);

  --shadow: 0 20px 60px rgba(0,0,0,.6);
  --radius: 16px;
  --radius-lg: 24px;
  --container: 1160px;

  --font-display: 'Barlow Condensed', sans-serif;
  --font-body: 'DM Sans', system-ui, sans-serif;
  --bg-3: #161616;
  --yellow: #fbbf24;
  --sidebar-w: 220px;
  --radius-sm: 10px;
  --green: #4ade80;
  --red: #f87171;
}

/* ====== BASE ====== */
*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; }

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--text);
  background: var(--bg);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

.container {
  width: min(var(--container), calc(100% - 40px));
  margin: 0 auto;
}

.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); border: 0;
}

.skip-link {
  position: absolute; top: 10px; left: 10px;
  background: #1a1a1a; color: #fff;
  padding: 10px 14px; border-radius: 10px;
  border: 1px solid var(--border);
  transform: translateY(-200%);
  transition: transform .2s;
  z-index: 999;
}
.skip-link:focus { transform: translateY(0); }

/* ====== HEADER ====== */
.site-header {
  position: sticky;
  top: 0; z-index: 80;
  background: rgba(10,10,10,.96);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--border);
}

.header-top {
  padding: 16px 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.header-brand {
  display: flex;
  align-items: center;
  justify-content: center;
}

.brand {
  display: flex;
  align-items: center;
  gap: 16px;
}

.brand-logo {
  height: 68px;
  width: auto;
  object-fit: contain;
}

.brand-text { display: flex; flex-direction: column; gap: 3px; }

.brand-main {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
}

.brand-sub {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--brand);
  line-height: 1;
}

/* Nav row */
.header-nav { padding: 12px 0; }

.nav-wrapper {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
}

.nav-toggle {
  display: none;
  justify-self: start;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 12px;
  padding: 10px 12px;
  color: var(--text);
  cursor: pointer;
}

.nav-toggle-lines {
  display: block;
  width: 20px; height: 14px;
  position: relative;
}
.nav-toggle-lines::before,
.nav-toggle-lines::after {
  content: "";
  position: absolute; left: 0; right: 0;
  height: 2px;
  background: rgba(255,255,255,.85);
  border-radius: 2px;
}
.nav-toggle-lines::before { top: 2px; }
.nav-toggle-lines::after { bottom: 2px; }

.site-nav {
  position: static !important;
  transform: none !important;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 16px;
  width: 100%;
}

.site-nav ul {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  list-style: none;
  padding: 0; margin: 0;
}

.site-nav a {
  display: inline-flex;
  padding: 8px 12px;
  border-radius: 10px;
  color: var(--muted);
  border: 1px solid transparent;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: .2px;
  transition: background .15s, border-color .15s, color .15s;
}

.site-nav a:hover {
  color: var(--text);
  background: var(--surface);
  border-color: var(--border);
}

.site-nav a[aria-current="page"] {
  color: var(--brand-2);
  background: rgba(255,85,0,.08);
  border-color: rgba(255,85,0,.2);
}

.nav-cta {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 10px;
}

.nav-cta .btn-primary {
  color: #000 !important;
}

.nav-cta .btn-primary:hover {
  background: transparent !important;
  border-color: var(--brand) !important;
  color: var(--brand) !important;
  box-shadow: 0 8px 28px rgba(255,85,0,.25) !important;
}

/* ====== BUTTONS ====== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 12px;
  padding: 10px 18px;
  border: 1px solid var(--border-strong);
  background: var(--surface);
  color: var(--text);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  white-space: nowrap;
  transition: transform .12s, background .12s, border-color .12s, box-shadow .12s;
}

.btn:hover {
  transform: translateY(-1px);
  background: var(--surface-hover);
  border-color: var(--border-strong);
  box-shadow: 0 8px 24px rgba(0,0,0,.3);
}

.btn:active { transform: translateY(0); }

.btn-primary {
  background: var(--brand);
  border-color: var(--brand);
  color: #000;
}

.btn-primary:hover {
  background: transparent;
  border-color: var(--brand);
  color: var(--brand);
  box-shadow: 0 8px 28px rgba(255,85,0,.25);
}

.btn-ghost {
  background: transparent;
}

.btn-lg {
  padding: 13px 24px;
  border-radius: 14px;
  font-size: 15px;
}

/* ====== UTILITY ====== */
.muted { color: var(--muted); }
.pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 14px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
  width: fit-content;
  margin: 0 0 18px;
}
.pill .dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 4px rgba(255,85,0,.18);
}

.badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: rgba(255,255,255,.85);
  font-weight: 600;
  font-size: 13px;
}

/* ====== INDEX: HERO ====== */
.hero {
  padding: 80px 0 60px;
  position: relative;
  overflow: hidden;
}

.hero::before {
  content: '';
  position: absolute;
  top: -200px; left: -200px;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(255,85,0,.12) 0%, transparent 65%);
  pointer-events: none;
}

.hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}

.hero-eyebrow-line {
  width: 40px; height: 3px;
  background: var(--brand);
  border-radius: 2px;
}

.hero-eyebrow-text {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--brand);
}

.hero-headline {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(52px, 7vw, 88px);
  line-height: 0.95;
  letter-spacing: -1px;
  text-transform: uppercase;
  margin: 0 0 28px;
}

.hero-headline span {
  color: var(--brand);
  display: block;
}

.hero-lead {
  font-size: 17px;
  color: var(--muted);
  max-width: 50ch;
  line-height: 1.65;
  margin: 0 0 36px;
}

.hero-grid-home {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 40px;
}

.hero-stats {
  display: flex;
  gap: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--border);
}

.hero-stat-value {
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 900;
  color: var(--brand);
  line-height: 1;
}

.hero-stat-label {
  font-size: 12px;
  color: var(--muted);
  font-weight: 500;
  margin-top: 4px;
  max-width: 10ch;
}

/* Photo collage for index */
.hero-visual {
  position: relative;
}

.hero-photo-main {
  width: 100%;
  aspect-ratio: 4/5;
  max-height: 480px;
  object-fit: cover;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
}

.hero-photo-badge {
  position: absolute;
  bottom: 24px;
  left: -24px;
  background: var(--brand);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 10px 18px;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(255,85,0,.4);
}

.hero-photo-float {
  position: absolute;
  top: -20px;
  right: -20px;
  width: 140px;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--radius);
  border: 3px solid var(--bg);
  box-shadow: var(--shadow);
}

/* Slider for hero */
.slider-wrap {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  width: 100%;
  aspect-ratio: 4/5;
  max-height: 480px;
}

.slider-track {
  display: flex;
  height: 100%;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
}

.slider-track img {
  min-width: 100%;
  height: 100%;
  object-fit: cover;
}

.slider-btn {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  background: rgba(0,0,0,.55);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  width: 44px; height: 44px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 20px;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(6px);
  transition: background .2s;
}
.slider-btn:hover { background: rgba(0,0,0,.75); }
.slider-btn.prev { left: 14px; }
.slider-btn.next { right: 14px; }

/* ====== SECTIONS ====== */
.section { padding: 80px 0; }
.section-sm { padding: 60px 0; }

.section-label {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.section-label-line {
  width: 32px; height: 2px;
  background: var(--brand);
  border-radius: 2px;
}

.section-label-text {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--brand);
}

.section-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(32px, 4.5vw, 52px);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -.5px;
  margin: 0 0 14px;
}

.section-sub {
  color: var(--muted);
  font-size: 16px;
  max-width: 60ch;
  margin: 0;
}

.section-head { margin-bottom: 48px; }

/* Divider line */
.divider { border: 0; border-top: 1px solid var(--border); margin: 0; }

/* ====== CARDS ====== */
.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.card {
  background: var(--bg-2);
  padding: 32px 28px;
  transition: background .2s;
}

.card:hover { background: #161616; }

.card-number {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--brand);
  margin-bottom: 16px;
}

.card h3 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 20px;
  text-transform: uppercase;
  letter-spacing: .5px;
  margin: 0 0 12px;
}

.card p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
  margin: 0;
}

.card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 20px;
  font-size: 13px;
  font-weight: 600;
  color: var(--brand-2);
  letter-spacing: .3px;
  transition: gap .15s;
}
.card-link:hover { gap: 10px; }

/* ====== METRICS ====== */
.metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  background: var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.metric {
  background: var(--bg-2);
  padding: 36px 24px;
  text-align: center;
  position: relative;
}

.metric-value {
  font-family: var(--font-display);
  font-size: 44px;
  font-weight: 900;
  color: var(--brand);
  line-height: 1;
  margin-bottom: 8px;
}

.metric-label {
  font-size: 13px;
  color: var(--muted);
  font-weight: 500;
}

/* ====== FEATURE ROW ====== */
.feature-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.feature-row.reverse { direction: rtl; }
.feature-row.reverse > * { direction: ltr; }

.feature-image {
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: var(--bg-2);
}

/* ====== SPONSOR TIERS ====== */
.tiers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.tier {
  background: var(--bg-2);
  padding: 36px 28px;
  position: relative;
  transition: background .2s;
}

.tier.highlight {
  background: #161616;
}

.tier-badge {
  display: inline-flex;
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.tier-bronze .tier-badge { border-color: #cd7f32; color: #cd7f32; }
.tier-prata .tier-badge { border-color: #aaa; color: #aaa; }
.tier-ouro .tier-badge { border-color: #f5c518; color: #f5c518; }

.tier-value {
  font-family: var(--font-display);
  font-size: 38px;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 24px;
}

.tier-benefits {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tier-benefits li {
  font-size: 14px;
  color: var(--muted);
  padding-left: 20px;
  position: relative;
}

.tier-benefits li::before {
  content: '→';
  position: absolute;
  left: 0;
  color: var(--brand);
}

/* ====== CTA BOX ====== */
.cta-box {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 64px 56px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.cta-box::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(255,85,0,.1) 0%, transparent 70%);
  pointer-events: none;
}

.cta-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(28px, 3.5vw, 42px);
  text-transform: uppercase;
  line-height: 1;
  margin: 0 0 12px;
}

.cta-sub {
  color: var(--muted);
  font-size: 15px;
  max-width: 55ch;
  margin: 0;
}

.cta-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 220px;
}

/* ====== SOBRE — PAGE HERO ====== */
.page-hero {
  padding: 0;
  min-height: 440px;
  display: flex;
  align-items: stretch;
}

.page-hero-inner {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 0;
  width: 100%;
  min-height: 440px;
}

.page-hero-copy {
  padding: 80px 60px 80px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.page-hero-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(44px, 6vw, 76px);
  text-transform: uppercase;
  line-height: 0.95;
  letter-spacing: -1px;
  margin: 0 0 24px;
}

.page-hero-title em {
  font-style: normal;
  color: var(--brand);
}

.page-hero-lead {
  font-size: 16px;
  color: var(--muted);
  max-width: 52ch;
  line-height: 1.65;
  margin: 0 0 36px;
}

.page-hero-note {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 13px;
  color: var(--muted);
}

.page-hero-panel {
  background: var(--brand);
  padding: 48px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 28px;
}

.panel-item-label {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgba(0,0,0,.5);
  margin-bottom: 4px;
}

.panel-item-value {
  font-size: 14px;
  color: rgba(0,0,0,.85);
  font-weight: 600;
  line-height: 1.5;
}

.panel-divider { border: 0; border-top: 1px solid rgba(0,0,0,.15); }

/* Values grid */
.values-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2px;
  background: var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.value-card {
  background: var(--bg-2);
  padding: 32px 24px;
  transition: background .2s;
}

.value-card:hover { background: #161616; }

.value-icon {
  width: 40px; height: 40px;
  background: rgba(255,85,0,.12);
  border: 1px solid rgba(255,85,0,.2);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
  margin-bottom: 16px;
}

.value-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 18px;
  text-transform: uppercase;
  letter-spacing: .5px;
  margin: 0 0 8px;
  color: var(--brand-2);
}

.value-text {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
  margin: 0;
}

/* Governance */
.gov-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.gov-card {
  background: var(--bg-2);
  padding: 36px 32px;
}

.gov-number {
  font-family: var(--font-display);
  font-size: 56px;
  font-weight: 900;
  color: rgba(255,85,0,.15);
  line-height: 1;
  margin-bottom: -8px;
}

.gov-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: .5px;
  margin: 0 0 12px;
}

.gov-text {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.65;
  margin: 0;
}

/* ====== PROJETO PAGE ====== */
.projeto-hero {
  background: var(--bg-2);
  border-bottom: 1px solid var(--border);
  padding: 0;
}

.projeto-hero-inner {
  display: grid;
  grid-template-columns: 1fr 380px;
  min-height: 460px;
}

.projeto-hero-copy {
  padding: 80px 60px 80px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid var(--border);
}

.projeto-hero-sidebar {
  padding: 48px 40px;
  background: #111;
  display: flex;
  flex-direction: column;
  gap: 24px;
  justify-content: center;
}

.sidebar-block {}

.sidebar-label {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--brand);
  margin-bottom: 8px;
}

.sidebar-value {
  font-size: 14px;
  color: rgba(255,255,255,.78);
  line-height: 1.55;
}

.sidebar-sep { border: 0; border-top: 1px solid var(--border); }

/* Method steps */
.steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  background: var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  counter-reset: step;
}

.step {
  background: var(--bg-2);
  padding: 28px 24px;
  counter-increment: step;
  position: relative;
  transition: background .2s;
}

.step:hover { background: #161616; }

.step::before {
  content: counter(step, decimal-leading-zero);
  font-family: var(--font-display);
  font-size: 40px;
  font-weight: 900;
  color: rgba(255,85,0,.12);
  position: absolute;
  top: 16px; right: 16px;
  line-height: 1;
}

.step-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 17px;
  text-transform: uppercase;
  letter-spacing: .4px;
  margin: 0 0 8px;
}

.step-text {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
  margin: 0;
}

/* Budget table */
.budget-table {
  width: 100%;
  border-collapse: collapse;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
}

.budget-table th {
  background: var(--brand);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 14px 20px;
  text-align: left;
}

.budget-table td {
  padding: 16px 20px;
  font-size: 14px;
  color: var(--muted);
  border-bottom: 1px solid var(--border);
}

.budget-table tr:last-child td { border-bottom: 0; }
.budget-table tr:nth-child(odd) td { background: var(--bg-2); }
.budget-table tr:nth-child(even) td { background: #0f0f0f; }

.budget-table td:first-child { color: var(--text); font-weight: 500; }
.budget-table td:last-child { color: var(--brand-2); font-weight: 600; }

.budget-total {
  background: #161616;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 2px;
}

.budget-total-label {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--muted);
}

.budget-total-value {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 900;
  color: var(--brand);
}

/* ====== FOOTER ====== */
.site-footer {
  border-top: 1px solid var(--border);
  padding: 48px 0 36px;
  background: var(--bg-2);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr .8fr;
  gap: 48px;
  align-items: start;
}

.footer-brand-name {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 20px;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 4px;
}

.footer-brand-sub { color: var(--muted); font-size: 13px; }

.footer-copy {
  margin: 16px 0 0;
  color: var(--muted-2);
  font-size: 12px;
  line-height: 1.65;
}

.footer-col-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 16px;
}

.footer-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-links a {
  color: var(--muted);
  font-size: 14px;
  transition: color .15s;
}

.footer-links a:hover { color: var(--text); }

/* ====== RESPONSIVE ====== */
@media (max-width: 980px) {
  .header-brand { justify-content: flex-start; }
  .nav-wrapper { grid-template-columns: auto 1fr; }
  .nav-toggle { display: inline-flex; }

  .site-nav {
    display: none;
    position: absolute !important;
    left: 16px; right: 16px;
    top: 56px;
    grid-template-columns: 1fr;
    background: rgba(10,10,10,.97);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 16px;
    box-shadow: var(--shadow);
    z-index: 100;
  }

  .site-nav.is-open { display: grid; }

  .site-nav ul {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }

  .site-nav a { justify-content: center; }

  .nav-cta {
    justify-self: unset;
    margin-top: 4px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .hero-grid-home,
  .feature-row,
  .page-hero-inner,
  .projeto-hero-inner { grid-template-columns: 1fr; }

  .page-hero-copy,
  .projeto-hero-copy { padding: 48px 0; }

  .page-hero-panel { padding: 40px 24px; }

  .cards, .tiers, .values-grid, .gov-grid { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr 1fr; }
  .metrics { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }

  .cta-box {
    grid-template-columns: 1fr;
    padding: 40px 28px;
    gap: 28px;
  }

  .hero-photo-badge { left: 12px; }
  .hero-photo-float { display: none; }
}

@media (max-width: 600px) {
  .hero-headline { font-size: 48px; }
  .steps { grid-template-columns: 1fr; }
  .metrics { grid-template-columns: 1fr 1fr; }
  .nav-cta { grid-template-columns: 1fr; }
  .section { padding: 56px 0; }
}


/* ========================================
   ESTILOS ESPECÍFICOS POR PÁGINA
   Migrados dos <style> inline
   ======================================== */


/* ====== PAGE: APOIADOR (apoiador.php) ====== */

    /* ====== PAGE-SPECIFIC: APOIADOR ====== */

    /* Hero */
    .apoiador-hero {
      position: relative;
      padding: 80px 0 72px;
      overflow: hidden;
    }
    .apoiador-hero::before {
      content: '';
      position: absolute;
      top: -160px; right: -120px;
      width: 600px; height: 600px;
      background: radial-gradient(circle, rgba(255,85,0,.14) 0%, transparent 68%);
      pointer-events: none;
    }
    .apoiador-hero::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(255,85,0,.35), transparent);
    }
    .apoiador-hero-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 72px;
      align-items: center;
    }
    .apoiador-headline {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(48px, 6vw, 80px);
      line-height: 0.94;
      letter-spacing: -1px;
      text-transform: uppercase;
      margin: 0 0 28px;
    }
    .apoiador-headline .accent { color: var(--brand); display: block; }
    .apoiador-lead {
      font-size: 16px;
      color: var(--muted);
      line-height: 1.7;
      max-width: 46ch;
      margin: 0 0 36px;
    }
    .apoiador-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }

    /* Impact counters */
    .impact-rail {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 2px;
      background: var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
    }
    .impact-cell {
      background: var(--bg-2);
      padding: 28px 24px;
      text-align: center;
      transition: background .2s;
    }
    .impact-cell:hover { background: #161616; }
    .impact-cell-value {
      font-family: var(--font-display);
      font-size: 44px;
      font-weight: 900;
      color: var(--brand);
      line-height: 1;
      margin-bottom: 6px;
    }
    .impact-cell-label {
      font-size: 12px;
      color: var(--muted);
      letter-spacing: .5px;
      text-transform: uppercase;
      font-weight: 500;
    }

    /* Section titles */
    .section { padding: 72px 0; }
    .section-tag {
      font-family: var(--font-display);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--brand);
      margin-bottom: 10px;
    }
    .section-title {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(34px, 4vw, 52px);
      line-height: 1;
      letter-spacing: -0.5px;
      text-transform: uppercase;
      margin: 0 0 16px;
    }
    .section-lead {
      font-size: 15px;
      color: var(--muted);
      max-width: 60ch;
      line-height: 1.65;
      margin: 0 0 48px;
    }

    /* PIX BLOCK */
    .pix-block {
      background: var(--bg-2);
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 48px;
      align-items: center;
      padding: 48px 52px;
      position: relative;
      overflow: hidden;
    }
    .pix-block::before {
      content: 'PIX';
      position: absolute;
      right: -20px; top: -20px;
      font-family: var(--font-display);
      font-size: 140px;
      font-weight: 900;
      color: rgba(255,85,0,.04);
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }
    .pix-title {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: 36px;
      text-transform: uppercase;
      letter-spacing: -.5px;
      margin: 0 0 8px;
    }
    .pix-title span { color: var(--brand); }
    .pix-desc {
      font-size: 15px;
      color: var(--muted);
      line-height: 1.65;
      max-width: 48ch;
      margin: 0 0 28px;
    }
    .pix-key-row {
      display: flex;
      align-items: center;
      gap: 12px;
      background: rgba(255,85,0,.07);
      border: 1px solid rgba(255,85,0,.2);
      border-radius: var(--radius);
      padding: 14px 20px;
      width: fit-content;
    }
    .pix-key-label {
      font-family: var(--font-display);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--brand);
    }
    .pix-key-value {
      font-size: 15px;
      font-weight: 600;
      color: var(--text);
      letter-spacing: .3px;
    }
    .pix-copy-btn {
      background: transparent;
      border: 1px solid rgba(255,85,0,.3);
      border-radius: 8px;
      padding: 6px 12px;
      color: var(--brand);
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      font-family: var(--font-body);
      transition: background .15s, border-color .15s;
    }
    .pix-copy-btn:hover {
      background: rgba(255,85,0,.1);
      border-color: var(--brand);
    }
    /* QR Code frame */
    .pix-qr-frame {
      width: 200px;
      height: 200px;
      background: #fff;
      border-radius: var(--radius);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
      flex-shrink: 0;
      box-shadow: 0 0 0 6px rgba(255,85,0,.15), 0 20px 40px rgba(0,0,0,.4);
      position: relative;
    }
    .pix-qr-placeholder {
      width: 140px;
      height: 140px;
      background: #f3f3f3;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: 6px;
      border: 2px dashed #ccc;
    }
    .pix-qr-placeholder svg { opacity: .4; }
    .pix-qr-placeholder-text {
      font-size: 9px;
      color: #999;
      font-weight: 600;
      letter-spacing: .5px;
      text-transform: uppercase;
      text-align: center;
      line-height: 1.3;
    }
    .pix-qr-label {
      font-size: 9px;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      color: #FF5500;
      font-family: var(--font-display);
    }

    /* SPONSOR TIERS */
    .tiers {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2px;
      background: var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
    }
    .tier-card {
      background: var(--bg-2);
      padding: 40px 32px;
      display: flex;
      flex-direction: column;
      position: relative;
      transition: background .2s;
    }
    .tier-card:hover { background: #141414; }
    .tier-card.is-featured { background: #131313; }
    .tier-badge {
      position: absolute;
      top: 20px; right: 20px;
      font-family: var(--font-display);
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      background: var(--brand);
      color: #fff;
      padding: 4px 10px;
      border-radius: 999px;
    }
    .tier-medal {
      font-size: 36px;
      margin-bottom: 16px;
      line-height: 1;
    }
    .tier-name {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: 28px;
      text-transform: uppercase;
      letter-spacing: .5px;
      margin: 0 0 4px;
    }
    .tier-price {
      font-family: var(--font-display);
      font-size: 44px;
      font-weight: 900;
      line-height: 1;
      margin-bottom: 4px;
    }
    .tier-period {
      font-size: 13px;
      color: var(--muted);
      margin-bottom: 28px;
    }
    .tier-divider {
      width: 40px; height: 2px;
      border-radius: 2px;
      margin-bottom: 24px;
    }
    .tier-perks {
      list-style: none;
      padding: 0; margin: 0 0 32px;
      display: flex;
      flex-direction: column;
      gap: 12px;
      flex: 1;
    }
    .tier-perks li {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      font-size: 14px;
      color: var(--muted);
      line-height: 1.45;
    }
    .tier-perks li::before {
      content: '✓';
      font-size: 12px;
      font-weight: 700;
      flex-shrink: 0;
      margin-top: 1px;
    }
    .tier-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      border-radius: 12px;
      padding: 12px 20px;
      font-family: var(--font-body);
      font-weight: 600;
      font-size: 14px;
      cursor: pointer;
      transition: transform .12s, box-shadow .12s, background .12s;
      border: 1px solid;
      text-align: center;
      width: 100%;
    }
    .tier-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0,0,0,.3); }

    /* OTHER WAYS */
    .other-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2px;
      background: var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
    }
    .other-card {
      background: var(--bg-2);
      padding: 32px 28px;
      transition: background .2s;
    }
    .other-card:hover { background: #141414; }
    .other-icon {
      font-size: 32px;
      margin-bottom: 16px;
      line-height: 1;
    }
    .other-title {
      font-family: var(--font-display);
      font-weight: 800;
      font-size: 20px;
      text-transform: uppercase;
      letter-spacing: .4px;
      margin: 0 0 10px;
      color: var(--brand-2);
    }
    .other-desc {
      font-size: 14px;
      color: var(--muted);
      line-height: 1.65;
      margin: 0;
    }

    /* TESTIMONIAL RIBBON */
    .quote-ribbon {
      padding: 64px 0;
      background: var(--bg-2);
      border-top: 1px solid var(--border);
      border-bottom: 1px solid var(--border);
      position: relative;
      overflow: hidden;
    }
    .quote-ribbon::before {
      content: '❝';
      position: absolute;
      left: 50%; top: 50%;
      transform: translate(-50%, -50%);
      font-size: 280px;
      color: rgba(255,85,0,.04);
      font-family: Georgia, serif;
      line-height: 1;
      pointer-events: none;
    }
    .quote-inner {
      text-align: center;
      max-width: 740px;
      margin: 0 auto;
    }
    .quote-text {
      font-family: var(--font-display);
      font-size: clamp(22px, 3vw, 32px);
      font-weight: 700;
      line-height: 1.35;
      color: var(--text);
      margin: 0 0 20px;
    }
    .quote-text em { color: var(--brand); font-style: normal; }
    .quote-author {
      font-size: 13px;
      color: var(--muted);
      letter-spacing: 1.5px;
      text-transform: uppercase;
      font-weight: 600;
    }

    /* CONTACT CTA */
    .contact-cta {
      background: var(--brand);
      border-radius: var(--radius-lg);
      padding: 56px 52px;
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 40px;
      align-items: center;
      position: relative;
      overflow: hidden;
    }
    .contact-cta::before {
      content: '';
      position: absolute;
      right: -80px; top: -80px;
      width: 320px; height: 320px;
      border-radius: 50%;
      background: rgba(255,255,255,.07);
      pointer-events: none;
    }
    .contact-cta::after {
      content: '';
      position: absolute;
      right: 60px; bottom: -60px;
      width: 180px; height: 180px;
      border-radius: 50%;
      background: rgba(255,255,255,.05);
      pointer-events: none;
    }
    .cta-title {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(28px, 3vw, 42px);
      line-height: 1.05;
      text-transform: uppercase;
      letter-spacing: -.5px;
      color: #fff;
      margin: 0 0 10px;
    }
    .cta-sub {
      font-size: 15px;
      color: rgba(255,255,255,.8);
      margin: 0;
      line-height: 1.6;
    }
    .cta-actions { display: flex; gap: 12px; align-items: center; flex-shrink: 0; }
    .btn-white {
      background: #fff;
      border-color: #fff;
      color: var(--brand);
    }
    .btn-white:hover {
      background: rgba(255,255,255,.9);
      border-color: rgba(255,255,255,.9);
      box-shadow: 0 10px 32px rgba(0,0,0,.2);
      color: var(--brand);
    }
    .btn-outline-white {
      background: transparent;
      border-color: rgba(255,255,255,.45);
      color: #fff;
    }
    .btn-outline-white:hover {
      background: rgba(255,255,255,.1);
      border-color: rgba(255,255,255,.7);
    }

    /* Responsive */
    @media (max-width: 980px) {
      .apoiador-hero-inner { grid-template-columns: 1fr; gap: 40px; }
      .impact-rail { grid-template-columns: repeat(2, 1fr); }
      .tiers, .other-grid { grid-template-columns: 1fr; }
      .pix-block { grid-template-columns: 1fr; gap: 32px; padding: 36px 28px; }
      .pix-qr-frame { margin: 0 auto; }
      .contact-cta { grid-template-columns: 1fr; padding: 40px 28px; }
      .cta-actions { flex-direction: column; width: 100%; }
      .cta-actions .btn { width: 100%; justify-content: center; }
    }
    @media (max-width: 600px) {
      .impact-rail { grid-template-columns: 1fr 1fr; }
      .pix-key-row { flex-wrap: wrap; }
    }


/* ====== PAGE: CONTATO (contato.php) ====== */

    /* ===== Contato — estilos específicos ===== */

    .contato-hero {
      padding: 72px 0 64px;
      border-bottom: 1px solid var(--border);
      position: relative;
      overflow: hidden;
    }
    .contato-hero::before {
      content: '';
      position: absolute;
      top: -120px; right: -120px;
      width: 500px; height: 500px;
      background: radial-gradient(circle, rgba(255,85,0,.09), transparent 65%);
      pointer-events: none;
    }

    /* Grid principal da página */
    .contato-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 2px;
      background: var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
    }

    .contato-bloco {
      background: var(--bg-2);
      padding: 40px 36px;
    }

    .bloco-label {
      font-family: var(--font-display);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--brand);
      margin-bottom: 16px;
    }

    .bloco-title {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: 26px;
      text-transform: uppercase;
      letter-spacing: .3px;
      margin: 0 0 8px;
    }

    .bloco-sub {
      color: var(--muted);
      font-size: 14px;
      margin: 0 0 28px;
      line-height: 1.6;
    }

    /* WhatsApp card */
    .wa-card {
      display: flex;
      align-items: center;
      gap: 28px;
      padding: 24px 24px;
      background: rgba(37,211,102,.06);
      border: 1px solid rgba(37,211,102,.2);
      border-radius: var(--radius);
      margin-bottom: 16px;
    }

    .wa-qr {
      flex-shrink: 0;
      width: 100px;
      height: 100px;
      border-radius: 10px;
      overflow: hidden;
      border: 2px solid rgba(37,211,102,.25);
      background: #111;
    }

    .wa-qr img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .wa-info {}

    .wa-hint {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: #25d366;
      margin-bottom: 6px;
    }

    .wa-numero {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: 22px;
      color: var(--text);
      margin: 0 0 14px;
    }

    .btn-whatsapp {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 11px 20px;
      background: #25d366;
      border: none;
      border-radius: 12px;
      color: #fff;
      font-family: var(--font-body);
      font-weight: 700;
      font-size: 14px;
      cursor: pointer;
      text-decoration: none;
      transition: background .15s, transform .1s, box-shadow .15s;
    }
    .btn-whatsapp:hover {
      background: #20ba59;
      transform: translateY(-1px);
      box-shadow: 0 8px 24px rgba(37,211,102,.3);
    }
    .btn-whatsapp svg { width: 18px; height: 18px; fill: #fff; flex-shrink: 0; }

    /* Email card */
    .email-card {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      padding: 22px 24px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      flex-wrap: wrap;
    }

    .email-info {}
    .email-hint {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 4px;
    }
    .email-addr {
      font-family: var(--font-display);
      font-size: 20px;
      font-weight: 800;
      color: var(--text);
    }

    .btn-email {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 10px 18px;
      background: var(--surface);
      border: 1px solid var(--border-strong);
      border-radius: 12px;
      color: var(--text);
      font-family: var(--font-body);
      font-weight: 700;
      font-size: 13px;
      text-decoration: none;
      white-space: nowrap;
      transition: background .15s, transform .1s;
    }
    .btn-email:hover {
      background: rgba(255,255,255,.07);
      transform: translateY(-1px);
    }

    /* Horário de atendimento */
    .horario-list {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-top: 24px;
    }
    .horario-item {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 12px 18px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 10px;
      font-size: 14px;
    }
    .horario-dia { font-weight: 600; color: var(--text); }
    .horario-val { color: var(--muted); }

    /* Mapas */
    .mapas-section {}

    .mapas-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 2px;
      background: var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
    }

    .mapa-card {
      background: var(--bg-2);
      display: flex;
      flex-direction: column;
    }

    .mapa-info {
      padding: 24px 28px 20px;
    }

    .mapa-label {
      font-family: var(--font-display);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--brand);
      margin-bottom: 8px;
    }

    .mapa-nome {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: 20px;
      text-transform: uppercase;
      margin: 0 0 4px;
    }

    .mapa-endereco {
      font-size: 13px;
      color: var(--muted);
      margin: 0;
      line-height: 1.5;
    }

    .mapa-embed {
      width: 100%;
      height: 280px;
      border: none;
      display: block;
      filter: grayscale(30%) contrast(1.05);
    }

    .mapa-footer {
      padding: 14px 28px;
      border-top: 1px solid var(--border);
    }

    .mapa-link {
      font-size: 13px;
      font-weight: 600;
      color: var(--brand-2);
      transition: color .15s;
    }
    .mapa-link:hover { color: var(--brand); }

    /* Responsivo */
    @media (max-width: 980px) {
      .contato-grid { grid-template-columns: 1fr; }
      .mapas-grid   { grid-template-columns: 1fr; }
      .wa-card      { flex-direction: column; align-items: flex-start; }
      .wa-qr        { width: 120px; height: 120px; }
    }

    @media (max-width: 600px) {
      .contato-bloco { padding: 28px 20px; }
      .mapa-embed    { height: 220px; }
    }


/* ====== PAGE: FREQUÊNCIA (frequencia.php) ====== */

/* ===== FREQUÊNCIA — estilos específicos ===== */
.freq-hero {
  padding: 56px 0 48px;
  border-bottom: 1px solid var(--border);
}
.freq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 768px) { .freq-grid { grid-template-columns: 1fr; } }

/* FILTROS */
.freq-filters {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 32px;
  padding: 16px 20px;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.freq-filters select,
.freq-filters input[type="date"] {
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--text);
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 14px;
  font-family: var(--font-body);
}

/* TABELA RESUMO */
.freq-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.freq-table th {
  text-align: left;
  padding: 10px 14px;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--border);
}
.freq-table td {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,.05);
  vertical-align: middle;
}
.freq-table tr:hover td { background: rgba(255,255,255,.02); }
.freq-table .nome-cell { font-weight: 600; }
.freq-table .nome-cell small { display: block; color: var(--muted); font-size: 12px; font-weight: 400; }

/* BADGE DE FREQUÊNCIA */
.freq-pct {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-family: var(--font-display);
  font-size: 15px;
}
.freq-bar {
  width: 60px;
  height: 6px;
  background: var(--bg-2);
  border-radius: 99px;
  overflow: hidden;
}
.freq-bar-fill {
  height: 100%;
  border-radius: 99px;
  transition: width .3s;
}
.pct-ok   { color: #22c55e; }
.pct-warn { color: #f59e0b; }
.pct-bad  { color: #ef4444; }
.fill-ok   { background: #22c55e; }
.fill-warn { background: #f59e0b; }
.fill-bad  { background: #ef4444; }

/* CHIPS */
.chip {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
}
.chip-presente   { background: rgba(34,197,94,.12);  color: #22c55e; }
.chip-falta      { background: rgba(239,68,68,.12);  color: #ef4444; }
.chip-justif     { background: rgba(245,158,11,.12); color: #f59e0b; }

/* FORMULÁRIO DE CHAMADA */
.chamada-box {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 32px;
}
.chamada-aluno-row {
  display: grid;
  grid-template-columns: 2fr 120px 120px 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
@media (max-width: 640px) {
  .chamada-aluno-row { grid-template-columns: 1fr 1fr; }
}
.chamada-aluno-nome { font-weight: 600; font-size: 14px; }
.chamada-aluno-cat  { font-size: 12px; color: var(--muted); margin-top: 2px; }

.toggle-presente {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  font-size: 14px;
}
.toggle-presente input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--brand);
  cursor: pointer;
}

/* HISTÓRICO PESSOAL */
.hist-calendar {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));
  gap: 6px;
  margin-top: 20px;
}
.hist-day {
  aspect-ratio: 1;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  border: 1px solid transparent;
  position: relative;
}
.hist-day-num { font-family: var(--font-display); font-size: 14px; }
.hist-day-lbl { font-size: 9px; text-transform: uppercase; letter-spacing: .5px; margin-top: 1px; }
.hd-presente { background: rgba(34,197,94,.15);  border-color: rgba(34,197,94,.3);  color: #22c55e; }
.hd-falta    { background: rgba(239,68,68,.15);  border-color: rgba(239,68,68,.3);  color: #ef4444; }
.hd-justif   { background: rgba(245,158,11,.15); border-color: rgba(245,158,11,.3); color: #f59e0b; }
.hd-sem-reg  { background: rgba(255,255,255,.03); border-color: var(--border); color: var(--muted); }
.hd-futuro   { background: transparent; border-color: transparent; color: rgba(255,255,255,.15); }

/* STATS RÁPIDOS */
.freq-stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 32px;
}
@media (max-width: 640px) { .freq-stats-row { grid-template-columns: repeat(2, 1fr); } }
.freq-stat-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px;
  text-align: center;
}
.freq-stat-val {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 900;
  line-height: 1;
}
.freq-stat-lbl {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: .5px;
}

.msg { padding: 12px 20px; border-radius: 8px; font-size: 14px; margin-bottom: 20px; }
.msg-ok   { background: rgba(34,197,94,.12); border: 1px solid rgba(34,197,94,.3); color: #22c55e; }
.msg-erro { background: rgba(239,68,68,.12); border: 1px solid rgba(239,68,68,.3); color: #ef4444; }

.link-voltar {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--muted);
  text-decoration: none;
  margin-bottom: 20px;
}
.link-voltar:hover { color: var(--brand); }


/* ====== PAGE: IMPACTO (impacto.php) ====== */

    /* ===== Estilos específicos da página de Impacto ===== */

    /* Hero com fundo texturizado */
    .impacto-hero {
      padding: 80px 0;
      position: relative;
      overflow: hidden;
      border-bottom: 1px solid var(--border);
    }

    .impacto-hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 700px 400px at 10% 50%, rgba(255,85,0,.10) 0%, transparent 60%),
        radial-gradient(ellipse 500px 300px at 90% 20%, rgba(255,85,0,.07) 0%, transparent 60%);
      pointer-events: none;
    }

    /* Número grande decorativo de fundo */
    .impacto-hero-bg-text {
      position: absolute;
      right: -40px;
      top: 50%;
      transform: translateY(-50%);
      font-family: var(--font-display);
      font-size: clamp(180px, 22vw, 280px);
      font-weight: 900;
      color: rgba(255,85,0,.05);
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }

    /* Grid de atividades com ícone */
    .activities-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2px;
      background: var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
    }

    .activity-card {
      background: var(--bg-2);
      padding: 32px 28px;
      transition: background .2s;
    }

    .activity-card:hover { background: #161616; }

    .activity-icon {
      font-size: 28px;
      margin-bottom: 16px;
      display: block;
    }

    .activity-num {
      font-family: var(--font-display);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 3px;
      color: var(--brand);
      margin-bottom: 8px;
    }

    .activity-title {
      font-family: var(--font-display);
      font-weight: 800;
      font-size: 20px;
      text-transform: uppercase;
      letter-spacing: .4px;
      margin: 0 0 10px;
    }

    .activity-desc {
      font-size: 13.5px;
      color: var(--muted);
      line-height: 1.65;
      margin: 0;
    }

    /* Timeline de ações realizadas */
    .actions-list {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 2px;
      background: var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
    }

    .action-item {
      background: var(--bg-2);
      padding: 24px 24px;
      transition: background .2s;
      position: relative;
    }

    .action-item:hover { background: #161616; }

    .action-tag {
      display: inline-flex;
      padding: 3px 10px;
      border-radius: 999px;
      border: 1px solid rgba(255,85,0,.25);
      background: rgba(255,85,0,.07);
      color: var(--brand-2);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: .5px;
      margin-bottom: 12px;
    }

    .action-title {
      font-family: var(--font-display);
      font-weight: 800;
      font-size: 18px;
      text-transform: uppercase;
      letter-spacing: .3px;
      margin: 0 0 8px;
    }

    .action-desc {
      font-size: 13px;
      color: var(--muted);
      line-height: 1.6;
      margin: 0;
    }

    /* Quotes / depoimentos */
    .quotes-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2px;
      background: var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
    }

    .quote-card {
      background: var(--bg-2);
      padding: 36px 32px;
    }

    .quote-mark {
      font-family: var(--font-display);
      font-size: 64px;
      font-weight: 900;
      color: var(--brand);
      line-height: .8;
      margin-bottom: 16px;
      display: block;
      opacity: .6;
    }

    .quote-text {
      font-size: 15px;
      color: rgba(255,255,255,.78);
      line-height: 1.7;
      margin: 0 0 24px;
      font-style: italic;
    }

    .quote-author {
      font-family: var(--font-display);
      font-weight: 800;
      font-size: 16px;
      text-transform: uppercase;
      letter-spacing: .5px;
      margin: 0;
    }

    .quote-role {
      font-size: 12px;
      color: var(--muted);
      margin: 4px 0 0;
    }

    /* Galeria */
    .gallery-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 4px;
      border-radius: var(--radius-lg);
      overflow: hidden;
    }

    .gallery-item {
      position: relative;
      aspect-ratio: 4/3;
      overflow: hidden;
      cursor: pointer;
      background: var(--bg-2);
    }

    .gallery-item img {
      width: 100%; height: 100%;
      object-fit: cover;
      transition: transform .4s ease;
    }

    .gallery-item:hover img { transform: scale(1.05); }

    .gallery-caption {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      padding: 20px 14px 12px;
      background: linear-gradient(to top, rgba(0,0,0,.75), transparent);
      font-size: 12px;
      color: rgba(255,255,255,.85);
      font-weight: 500;
      opacity: 0;
      transition: opacity .3s;
    }

    .gallery-item:hover .gallery-caption { opacity: 1; }

    /* Placeholder de galeria (quando não há fotos) */
    .gallery-placeholder {
      background: var(--bg-2);
      border: 2px dashed rgba(255,85,0,.2);
      border-radius: var(--radius-lg);
      padding: 64px 40px;
      text-align: center;
    }

    .gallery-placeholder-icon {
      font-size: 48px;
      margin-bottom: 20px;
      opacity: .5;
    }

    .gallery-placeholder-title {
      font-family: var(--font-display);
      font-weight: 800;
      font-size: 22px;
      text-transform: uppercase;
      margin: 0 0 10px;
      color: var(--muted);
    }

    .gallery-placeholder-text {
      font-size: 14px;
      color: var(--muted-2);
      max-width: 60ch;
      margin: 0 auto 24px;
      line-height: 1.65;
    }

    .gallery-placeholder-code {
      display: inline-block;
      background: #161616;
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 14px 20px;
      font-family: monospace;
      font-size: 13px;
      color: var(--brand-2);
      text-align: left;
      line-height: 1.8;
    }

    /* Lightbox simples */
    .lightbox {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.92);
      z-index: 1000;
      align-items: center;
      justify-content: center;
      padding: 24px;
    }

    .lightbox.active { display: flex; }

    .lightbox-img {
      max-width: 90vw;
      max-height: 85vh;
      object-fit: contain;
      border-radius: 12px;
    }

    .lightbox-caption {
      position: absolute;
      bottom: 24px;
      left: 50%; transform: translateX(-50%);
      background: rgba(0,0,0,.7);
      padding: 8px 20px;
      border-radius: 999px;
      font-size: 14px;
      color: rgba(255,255,255,.85);
      white-space: nowrap;
    }

    .lightbox-close {
      position: absolute;
      top: 20px; right: 24px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.15);
      color: #fff;
      width: 44px; height: 44px;
      border-radius: 50%;
      font-size: 20px;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
    }

    .lightbox-nav {
      position: absolute;
      top: 50%; transform: translateY(-50%);
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.15);
      color: #fff;
      width: 52px; height: 52px;
      border-radius: 50%;
      font-size: 24px;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
    }

    .lightbox-prev { left: 20px; }
    .lightbox-next { right: 20px; }

    /* Responsivo */
    @media (max-width: 980px) {
      .activities-grid,
      .actions-list,
      .quotes-grid { grid-template-columns: 1fr; }
      .gallery-grid { grid-template-columns: repeat(2, 1fr); }
    }

    @media (max-width: 560px) {
      .gallery-grid { grid-template-columns: 1fr 1fr; }
    }
    /* ===== GALERIA DE VÍDEOS — Shorts/Reels ===== */

    .shorts-wrapper {
      position: relative;
    }

    /* Feed com scroll horizontal snap */
    .shorts-feed {
      display: flex;
      gap: 14px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      padding-bottom: 12px;
      scrollbar-width: thin;
      scrollbar-color: var(--brand) rgba(255,255,255,.06);
    }
    .shorts-feed::-webkit-scrollbar { height: 3px; }
    .shorts-feed::-webkit-scrollbar-track { background: rgba(255,255,255,.04); border-radius: 2px; }
    .shorts-feed::-webkit-scrollbar-thumb { background: var(--brand); border-radius: 2px; }

    /* Card 9:16 */
    .short-card {
      flex: 0 0 210px;
      scroll-snap-align: start;
      position: relative;
      aspect-ratio: 9/16;
      border-radius: var(--radius);
      overflow: hidden;
      background: var(--bg-2);
      border: 1px solid var(--border);
      cursor: pointer;
      transition: transform .2s, box-shadow .2s, border-color .2s;
    }
    .short-card:hover {
      transform: translateY(-5px) scale(1.01);
      box-shadow: 0 20px 48px rgba(0,0,0,.6);
      border-color: rgba(255,85,0,.4);
    }

    /* Thumbnail YouTube via img */
    .short-thumb {
      width: 100%; height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .4s ease;
    }
    .short-card:hover .short-thumb { transform: scale(1.04); }

    /* Gradiente e info na base */
    .short-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top,
        rgba(0,0,0,.92) 0%,
        rgba(0,0,0,.4) 40%,
        rgba(0,0,0,.0) 70%);
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 14px 12px;
    }

    .short-tag {
      display: inline-flex;
      width: fit-content;
      padding: 3px 9px;
      border-radius: 999px;
      background: var(--brand);
      color: #000;
      font-size: 9px;
      font-weight: 800;
      letter-spacing: .8px;
      text-transform: uppercase;
      margin-bottom: 6px;
    }

    .short-titulo {
      font-family: var(--font-display);
      font-size: 13px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .3px;
      color: #fff;
      line-height: 1.25;
      margin: 0;
      text-shadow: 0 1px 4px rgba(0,0,0,.6);
    }

    /* Ícone de play no centro */
    .short-play-icon {
      position: absolute;
      top: 50%; left: 50%;
      transform: translate(-50%, -50%);
      width: 48px; height: 48px;
      background: rgba(255,85,0,.9);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      backdrop-filter: blur(4px);
      transition: opacity .25s, transform .25s;
      box-shadow: 0 4px 20px rgba(255,85,0,.4);
    }
    .short-play-icon svg { width: 18px; height: 18px; fill: #fff; margin-left: 3px; }
    .short-card:hover .short-play-icon {
      opacity: 0;
      transform: translate(-50%, -50%) scale(.7);
    }

    /* Instagram card estilizado (sem thumb) */
    .short-ig-card {
      width: 100%; height: 100%;
      position: relative;
      overflow: hidden;
    }

    .short-ig-bg {
      position: absolute; inset: 0;
      background: linear-gradient(135deg,
        #f09433 0%, #e6683c 25%,
        #dc2743 50%, #cc2366 75%,
        #bc1888 100%);
      opacity: .85;
    }

    .short-ig-logo {
      position: absolute;
      top: 50%; left: 50%;
      transform: translate(-50%, -55%);
      width: 56px; height: 56px;
      display: flex; align-items: center; justify-content: center;
    }

    .short-ig-logo svg {
      width: 56px; height: 56px;
      filter: drop-shadow(0 2px 8px rgba(0,0,0,.3));
    }

    .short-ig-label {
      position: absolute;
      bottom: 50%; left: 50%;
      transform: translate(-50%, 32px);
      font-family: var(--font-display);
      font-size: 13px; font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: rgba(255,255,255,.9);
    }

    /* Badge colorido por plataforma */
    .short-source-badge {
      position: absolute;
      top: 10px; right: 10px;
      width: 28px; height: 28px;
      border-radius: 8px;
      display: flex; align-items: center; justify-content: center;
      backdrop-filter: blur(8px);
      border: 1px solid rgba(255,255,255,.2);
    }

    .short-source-youtube   { background: rgba(255,0,0,.7); }
    .short-source-instagram { background: rgba(188,24,136,.7); }
    .short-source-local     { background: rgba(0,0,0,.5); }

    /* Setas de nav + hint */
    .shorts-controls {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 16px;
      flex-wrap: wrap;
      gap: 10px;
    }
    .shorts-hint {
      display: flex;
      align-items: center;
      gap: 7px;
      font-size: 12px;
      color: var(--muted-2);
    }
    .shorts-hint svg { animation: nudgeX 1.8s ease-in-out infinite; }
    @keyframes nudgeX {
      0%,100% { transform: translateX(0); }
      50%      { transform: translateX(5px); }
    }
    .shorts-arrows { display: flex; gap: 8px; }
    .shorts-arrow {
      width: 38px; height: 38px;
      border-radius: 50%;
      border: 1px solid var(--border-strong);
      background: var(--surface);
      color: var(--text);
      font-size: 18px;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background .15s, border-color .15s, color .15s, transform .12s;
    }
    .shorts-arrow:hover {
      background: var(--brand);
      border-color: var(--brand);
      color: #000;
      transform: scale(1.08);
    }

    /* Modal vídeo expandido */
    .video-modal {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.95);
      z-index: 3000;
      align-items: center;
      justify-content: center;
      padding: 20px;
      animation: fadeInModal .2s ease;
    }
    @keyframes fadeInModal {
      from { opacity: 0; }
      to   { opacity: 1; }
    }
    .video-modal.ativo { display: flex; }

    .video-modal-box {
      position: relative;
      width: min(380px, 88vw);
      aspect-ratio: 9/16;
      background: #000;
      border-radius: var(--radius-lg);
      overflow: hidden;
      box-shadow: 0 40px 100px rgba(0,0,0,.9), 0 0 0 1px rgba(255,85,0,.2);
      animation: popIn .25s cubic-bezier(.34,1.56,.64,1);
    }
    @keyframes popIn {
      from { transform: scale(.85); opacity: 0; }
      to   { transform: scale(1);   opacity: 1; }
    }

    .video-modal-box iframe,
    .video-modal-box video {
      width: 100%; height: 100%;
      border: none;
      display: block;
    }

    .video-modal-close {
      position: absolute;
      top: -12px; right: -12px;
      width: 36px; height: 36px;
      border-radius: 50%;
      background: var(--brand);
      border: 2px solid #000;
      color: #000;
      font-size: 16px;
      font-weight: 900;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      z-index: 10;
      transition: transform .15s, background .15s;
      line-height: 1;
    }
    .video-modal-close:hover { transform: scale(1.15); background: var(--brand-2); }

    .video-modal-footer {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      padding: 20px 16px 16px;
      background: linear-gradient(to top, rgba(0,0,0,.95), transparent);
    }
    .video-modal-tag {
      font-size: 9px; font-weight: 800; letter-spacing: 1px;
      text-transform: uppercase; color: var(--brand);
      margin-bottom: 4px;
    }
    .video-modal-titulo {
      font-family: var(--font-display);
      font-size: 15px; font-weight: 900;
      text-transform: uppercase; color: #fff;
      margin: 0; line-height: 1.2;
    }

    /* Placeholder de vídeos */
    .videos-placeholder {
      background: var(--bg-2);
      border: 2px dashed rgba(255,85,0,.18);
      border-radius: var(--radius-lg);
      padding: 60px 40px;
      text-align: center;
    }
    .videos-placeholder-icon { font-size: 50px; display: block; margin-bottom: 18px; opacity: .6; }
    .videos-placeholder-title {
      font-family: var(--font-display);
      font-weight: 800; font-size: 22px;
      text-transform: uppercase;
      color: var(--muted); margin: 0 0 10px;
    }
    .videos-placeholder-desc {
      font-size: 14px; color: var(--muted-2);
      max-width: 54ch; margin: 0 auto 28px; line-height: 1.7;
    }
    .videos-code {
      display: inline-block;
      background: #161616;
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 16px 22px;
      font-family: monospace; font-size: 12px;
      color: var(--brand-2); text-align: left; line-height: 2;
    }

    /* Responsivo */
    @media (max-width: 600px) {
      .short-card { flex: 0 0 155px; }
      .video-modal-box { width: 90vw; }
    }


/* ====== PAGE: HOME / INDEX (index.php) ====== */

    .pub-slider-wrap {
      position: relative;
      border-radius: var(--radius-lg);
      overflow: hidden;
      border: 1px solid var(--border);
      background: #0d0d0d;
    }
    .pub-slider-track {
      display: flex;
      transition: transform .5s cubic-bezier(.4,0,.2,1);
    }
    .pub-slide {
      min-width: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 16px;
      padding: 48px 24px;
      text-decoration: none;
      color: inherit;
      transition: background .2s;
    }
    a.pub-slide:hover { background: rgba(255,85,0,.04); }
    .pub-slide img {
      max-height: 100px;
      max-width: 340px;
      width: auto;
      object-fit: contain;
      filter: brightness(.85);
      transition: filter .2s;
    }
    a.pub-slide:hover img { filter: brightness(1); }
    .pub-nome {
      font-family: var(--font-display);
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--muted);
    }
    .pub-btn {
      position: absolute;
      top: 50%; transform: translateY(-50%);
      background: rgba(0,0,0,.55);
      border: 1px solid rgba(255,255,255,.18);
      color: #fff;
      width: 40px; height: 40px;
      border-radius: 50%;
      cursor: pointer;
      font-size: 18px;
      display: flex; align-items: center; justify-content: center;
      backdrop-filter: blur(6px);
      transition: background .2s;
    }
    .pub-btn:hover { background: rgba(0,0,0,.8); }
    .pub-prev { left: 12px; }
    .pub-next { right: 12px; }
    .pub-dots {
      position: absolute;
      bottom: 12px; left: 50%; transform: translateX(-50%);
      display: flex; gap: 6px;
    }
    .pub-dot {
      width: 7px; height: 7px;
      border-radius: 50%;
      background: rgba(255,255,255,.25);
      border: none; cursor: pointer;
      padding: 0; transition: background .2s, transform .2s;
    }
    .pub-dot.active { background: var(--brand); transform: scale(1.3); }
    /* CTA fallback */
    .pub-cta-fallback {
      display: flex;
      align-items: center;
      gap: 20px;
      padding: 28px 32px;
      border: 1px dashed rgba(255,85,0,.3);
      border-radius: var(--radius-lg);
      background: transparent;
      text-decoration: none;
      color: inherit;
      transition: border-color .2s, background .2s;
      flex-wrap: wrap;
    }
    .pub-cta-fallback:hover { border-color: var(--brand); background: rgba(255,85,0,.04); }
    .pub-cta-icon { font-size: 36px; flex-shrink: 0; }
    .pub-cta-title { font-family: var(--font-display); font-weight: 800; font-size: 18px; }
    .pub-cta-sub { font-size: 13px; color: var(--muted); margin-top: 4px; }


/* ====== PAGE: PARCEIROS (parceiros.php) ====== */

/* ===== PARCEIROS — estilos específicos ===== */
.parceiros-hero {
  padding: 72px 0 64px;
  border-bottom: 1px solid var(--border);
}

/* GRID DE PARCEIROS */
.parceiros-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 48px;
}

.parceiro-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color .2s, transform .2s;
  text-decoration: none;
  color: inherit;
}
.parceiro-card:hover {
  border-color: var(--brand);
  transform: translateY(-3px);
}

.parceiro-logo-wrap {
  background: #111;
  padding: 28px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  border-bottom: 1px solid var(--border);
}
.parceiro-logo-wrap img {
  max-height: 72px;
  max-width: 100%;
  object-fit: contain;
  filter: brightness(.9);
  transition: filter .2s;
}
.parceiro-card:hover .parceiro-logo-wrap img {
  filter: brightness(1);
}

.parceiro-body {
  padding: 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.parceiro-nome {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 16px;
  letter-spacing: .3px;
}
.parceiro-desc {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.5;
  flex: 1;
}
.parceiro-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--brand);
  margin-top: 8px;
  text-decoration: none;
}

/* CARD VAZIO — "Anuncie aqui" */
.parceiro-card-cta {
  background: transparent;
  border: 1px dashed rgba(255,85,0,.3);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 40px 24px;
  text-align: center;
  text-decoration: none;
  color: inherit;
  transition: border-color .2s, background .2s;
  min-height: 220px;
}
.parceiro-card-cta:hover {
  border-color: var(--brand);
  background: rgba(255,85,0,.04);
}
.parceiro-card-cta .cta-icon {
  font-size: 32px;
  opacity: .5;
}
.parceiro-card-cta .cta-label {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 15px;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--muted);
}
.parceiro-card-cta .cta-sub {
  font-size: 12px;
  color: var(--muted);
  opacity: .7;
}
.parceiro-card-cta .cta-btn {
  margin-top: 4px;
  padding: 7px 18px;
  font-size: 12px;
}

/* SEÇÃO DE BENEFÍCIOS */
.beneficios-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
  margin-top: 32px;
}
.beneficio-item {
  padding: 20px;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.beneficio-icon { font-size: 24px; margin-bottom: 8px; }
.beneficio-titulo {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 14px;
  margin-bottom: 4px;
}
.beneficio-desc { font-size: 13px; color: var(--muted); line-height: 1.5; }


/* ====== PAGE: TRANSPARÊNCIA (transparencia.php) ====== */

    /* ===== Transparência — estilos específicos ===== */

    .transp-hero {
      padding: 72px 0 56px;
      border-bottom: 1px solid var(--border);
      position: relative;
      overflow: hidden;
    }
    .transp-hero::before {
      content: '';
      position: absolute;
      top: -160px; left: -160px;
      width: 600px; height: 600px;
      background: radial-gradient(circle, rgba(255,85,0,.09), transparent 65%);
      pointer-events: none;
    }

    /* Seletores de ano */
    .year-tabs {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-top: 36px;
    }
    .year-tab {
      padding: 8px 20px;
      border-radius: 999px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--muted);
      font-family: var(--font-display);
      font-weight: 700;
      font-size: 15px;
      letter-spacing: 1px;
      cursor: pointer;
      text-decoration: none;
      transition: background .15s, border-color .15s, color .15s;
    }
    .year-tab:hover { color: var(--text); border-color: var(--border-strong); }
    .year-tab.active {
      background: var(--brand);
      border-color: var(--brand);
      color: #fff;
    }

    /* Cards de totais */
    .totais-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2px;
      background: var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
      margin-bottom: 48px;
    }
    .total-card {
      background: var(--bg-2);
      padding: 32px 28px;
    }
    .total-label {
      font-family: var(--font-display);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
      margin-bottom: 10px;
    }
    .total-label.entrada { color: #4ade80; }
    .total-label.saida   { color: #f87171; }
    .total-label.saldo   { color: var(--brand); }
    .total-value {
      font-family: var(--font-display);
      font-size: clamp(24px, 3vw, 36px);
      font-weight: 900;
      line-height: 1;
    }
    .total-value.positivo { color: #4ade80; }
    .total-value.negativo { color: #f87171; }
    .total-value.neutro   { color: var(--brand); }

    /* Tabela de meses */
    .meses-table {
      width: 100%;
      border-collapse: collapse;
      border-radius: var(--radius-lg);
      overflow: hidden;
      border: 1px solid var(--border);
    }
    .meses-table thead tr {
      background: var(--brand);
    }
    .meses-table th {
      padding: 14px 20px;
      text-align: left;
      font-family: var(--font-display);
      font-weight: 700;
      font-size: 12px;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: #fff;
    }
    .meses-table th:not(:first-child) { text-align: right; }
    .meses-table td {
      padding: 16px 20px;
      font-size: 14px;
      border-bottom: 1px solid var(--border);
      vertical-align: middle;
    }
    .meses-table tr:last-child td { border-bottom: 0; }
    .meses-table tr:nth-child(odd)  td { background: var(--bg-2); }
    .meses-table tr:nth-child(even) td { background: #0f0f0f; }
    .meses-table tr:hover td { background: #161616; cursor: pointer; }
    .meses-table td:not(:first-child) { text-align: right; }
    .meses-table .td-mes {
      font-weight: 600;
      color: var(--text);
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .mes-dot {
      width: 8px; height: 8px;
      border-radius: 50%;
      background: var(--brand);
      flex-shrink: 0;
    }
    .td-entrada { color: #4ade80; font-weight: 600; }
    .td-saida   { color: #f87171; font-weight: 600; }
    .td-saldo-pos { color: #4ade80; font-weight: 700; }
    .td-saldo-neg { color: #f87171; font-weight: 700; }
    .td-ver {
      color: var(--brand-2);
      font-size: 13px;
      font-weight: 600;
      white-space: nowrap;
    }

    /* Barra visual de uso do mês */
    .bar-wrap {
      width: 80px;
      height: 4px;
      background: rgba(255,255,255,.08);
      border-radius: 2px;
      overflow: hidden;
      display: inline-block;
      vertical-align: middle;
      margin-left: 8px;
    }
    .bar-fill {
      height: 100%;
      border-radius: 2px;
      background: var(--brand);
    }

    /* Painel de detalhes do mês */
    .detalhe-panel {
      background: var(--bg-2);
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
      margin-top: 24px;
    }
    .detalhe-header {
      padding: 20px 28px;
      border-bottom: 1px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      flex-wrap: wrap;
    }
    .detalhe-title {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: 20px;
      text-transform: uppercase;
      letter-spacing: .5px;
      margin: 0;
    }
    .detalhe-close {
      font-size: 13px;
      color: var(--muted);
      text-decoration: none;
      padding: 6px 14px;
      border: 1px solid var(--border);
      border-radius: 8px;
      transition: color .15s, border-color .15s;
    }
    .detalhe-close:hover { color: var(--text); border-color: var(--border-strong); }

    .detalhe-table {
      width: 100%;
      border-collapse: collapse;
    }
    .detalhe-table th {
      padding: 12px 28px;
      text-align: left;
      font-family: var(--font-display);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: var(--muted);
      background: rgba(255,255,255,.02);
      border-bottom: 1px solid var(--border);
    }
    .detalhe-table th:last-child { text-align: right; }
    .detalhe-table td {
      padding: 14px 28px;
      font-size: 14px;
      border-bottom: 1px solid rgba(255,255,255,.04);
      color: var(--muted);
    }
    .detalhe-table tr:last-child td { border-bottom: 0; }
    .detalhe-table td:first-child {
      width: 24px;
    }
    .detalhe-table td:last-child {
      text-align: right;
      font-weight: 600;
    }
    .tipo-pill {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 3px 10px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .5px;
      white-space: nowrap;
    }
    .tipo-entrada {
      background: rgba(74,222,128,.1);
      border: 1px solid rgba(74,222,128,.25);
      color: #4ade80;
    }
    .tipo-saida {
      background: rgba(248,113,113,.1);
      border: 1px solid rgba(248,113,113,.25);
      color: #f87171;
    }

    /* Vazio */
    .empty-state {
      text-align: center;
      padding: 72px 24px;
      color: var(--muted);
    }
    .empty-icon { font-size: 40px; margin-bottom: 16px; }
    .empty-title {
      font-family: var(--font-display);
      font-size: 20px;
      font-weight: 800;
      text-transform: uppercase;
      margin: 0 0 8px;
      color: rgba(255,255,255,.4);
    }
    .empty-sub { font-size: 14px; margin: 0; }

    /* Info estatuto */
    .estatuto-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2px;
      background: var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
    }
    .estatuto-card {
      background: var(--bg-2);
      padding: 28px 24px;
    }
    .estatuto-label {
      font-family: var(--font-display);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--brand);
      margin-bottom: 10px;
    }
    .estatuto-value {
      font-size: 14px;
      color: var(--muted);
      line-height: 1.65;
      margin: 0;
    }
    .estatuto-value strong { color: rgba(255,255,255,.8); }

    @media (max-width: 980px) {
      .totais-grid, .estatuto-grid { grid-template-columns: 1fr; }
      .meses-table th:nth-child(3),
      .meses-table td:nth-child(3) { display: none; }
    }
    @media (max-width: 600px) {
      .meses-table th:nth-child(4),
      .meses-table td:nth-child(4) { display: none; }
      .detalhe-table td, .detalhe-table th { padding: 12px 16px; }
    }



/* ========================================
   PÁGINAS STANDALONE (Admin + Aluno)
   Não usam header.php — têm <link> próprio
   ======================================== */


/* ====== STANDALONE: ADMIN (admin.php) ====== */

/* LAYOUT */
    .admin-layout{display:flex;min-height:100vh;}

    /* SIDEBAR */
    .sidebar{width:var(--sidebar-w);background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;overflow-y:auto;z-index:100;}
    .sidebar-brand{padding:22px 20px 18px;border-bottom:1px solid var(--border);}
    .sidebar-brand-name{font-family:var(--font-display);font-weight:900;font-size:19px;text-transform:uppercase;color:var(--brand);line-height:1.15;}
    .sidebar-brand-sub{font-size:11px;color:var(--muted);margin-top:3px;}
    .sidebar-nav{padding:14px 10px;flex:1;}
    .snav-item{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:background .15s,color .15s;margin-bottom:2px;border:none;background:none;width:100%;text-align:left;}
    .snav-item:hover{background:rgba(255,255,255,.05);color:var(--text);}
    .snav-item.active{background:rgba(255,85,0,.12);color:var(--brand-2);}
    .snav-icon{font-size:15px;flex-shrink:0;}
    .snav-badge{margin-left:auto;font-size:11px;background:rgba(255,85,0,.15);color:var(--brand-2);padding:1px 7px;border-radius:999px;}

    /* Sub-nav colapsável */
    .sidebar-sub{padding:2px 0 4px 34px;display:none;}
    .sidebar-sub.open{display:block;}
    .sub-year{font-size:11px;font-weight:700;letter-spacing:1.5px;color:var(--muted);padding:5px 8px 3px;cursor:pointer;display:flex;align-items:center;gap:5px;border-radius:8px;transition:color .15s;text-transform:uppercase;}
    .sub-year:hover{color:var(--text);}
    .sub-year .arr{font-size:9px;transition:transform .2s;display:inline-block;}
    .sub-year.expanded .arr{transform:rotate(90deg);}
    .sub-months{display:none;padding-left:6px;}
    .sub-months.open{display:block;}
    .sub-month{display:block;padding:4px 10px;border-radius:8px;font-size:12px;color:var(--muted);transition:background .12s,color .12s;}
    .sub-month:hover{color:var(--text);background:rgba(255,255,255,.04);}
    .sub-month.active{color:var(--brand-2);font-weight:600;}

    .sidebar-sep{height:1px;background:var(--border);margin:10px 10px;}
    .sidebar-footer{padding:14px 18px;border-top:1px solid var(--border);font-size:12px;color:var(--muted);}
    .sidebar-footer strong{color:var(--text);}
    .sidebar-footer a{color:var(--red);}

    /* MAIN */
    .main-content{margin-left:var(--sidebar-w);flex:1;display:flex;flex-direction:column;}

    /* TOPBAR */
    .topbar{background:var(--bg-2);border-bottom:1px solid var(--border);padding:0 36px;display:flex;align-items:center;justify-content:space-between;height:58px;position:sticky;top:0;z-index:50;}
    .topbar-title{font-family:var(--font-display);font-weight:900;font-size:21px;text-transform:uppercase;letter-spacing:.3px;}
    .topbar-title em{color:var(--brand);font-style:normal;}
    .topbar-actions{display:flex;gap:8px;align-items:center;}

    /* CONTENT */
    .content{padding:28px 36px;}

    /* BOTÕES */
    .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 17px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-family:var(--font-body);font-weight:600;font-size:13px;cursor:pointer;transition:background .12s,transform .1s;white-space:nowrap;}
    .btn:hover{background:rgba(255,255,255,.08);transform:translateY(-1px);}
    .btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;}
    .btn-primary:hover{background:var(--brand-2);border-color:var(--brand-2);}
    .btn-danger{background:rgba(248,113,113,.1);border-color:rgba(248,113,113,.25);color:var(--red);}
    .btn-danger:hover{background:rgba(248,113,113,.2);}
    .btn-sm{padding:5px 11px;font-size:12px;border-radius:8px;}

    /* CARD */
    .card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:22px 26px;margin-bottom:22px;}
    .card-title{font-family:var(--font-display);font-weight:800;font-size:16px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:18px;}

    /* RESUMO */
    .resumo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:22px;}
    .resumo-item{background:var(--bg-2);padding:18px 20px;}
    .resumo-label{font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;margin-bottom:6px;}
    .resumo-value{font-family:var(--font-display);font-size:26px;font-weight:900;line-height:1;}
    .c-green{color:var(--green);} .c-red{color:var(--red);} .c-brand{color:var(--brand);}

    /* FORM */
    .form-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:13px;align-items:end;}
    .form-group{display:flex;flex-direction:column;}
    label{display:block;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
    input[type=text],input[type=password],input[type=number],select,textarea{font-family:var(--font-body);background:rgba(255,255,255,.05);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);padding:9px 12px;font-size:13px;width:100%;transition:border-color .15s;outline:none;}
    input:focus,select:focus,textarea:focus{border-color:var(--brand);background:rgba(255,85,0,.03);}
    select option{background:#1a1a1a;}
    textarea{resize:vertical;min-height:76px;}

    /* TABELA */
    .data-table{width:100%;border-collapse:collapse;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);}
    .data-table thead{background:rgba(255,255,255,.04);}
    .data-table th{padding:10px 13px;text-align:left;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;}
    .data-table td{padding:12px 13px;font-size:13px;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle;}
    .data-table tr:last-child td{border-bottom:none;}
    .data-table tr:hover td{background:rgba(255,255,255,.015);}
    .pill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;}
    .pill-entrada{background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.25);color:var(--green);}
    .pill-saida{background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.25);color:var(--red);}

    /* MSG */
    .msg{padding:11px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;margin-bottom:18px;border:1px solid;}
    .msg-ok{background:rgba(74,222,128,.08);border-color:rgba(74,222,128,.25);color:var(--green);}
    .msg-erro{background:rgba(248,113,113,.08);border-color:rgba(248,113,113,.25);color:var(--red);}

    /* VAZIO */
    .empty{text-align:center;padding:44px;color:var(--muted);}
    .empty-icon{font-size:34px;margin-bottom:10px;}

    /* ALUNOS */
    .aluno-foto{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--brand);}
    .aluno-fph{width:36px;height:36px;border-radius:50%;background:rgba(255,85,0,.12);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:15px;}
    .badge-pos{display:inline-block;background:rgba(255,85,0,.1);border:1px solid rgba(255,85,0,.2);color:var(--brand-2);padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;}
    .badge-on{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:rgba(74,222,128,.1);color:var(--green);border:1px solid rgba(74,222,128,.25);}
    .badge-off{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:rgba(248,113,113,.1);color:var(--red);border:1px solid rgba(248,113,113,.25);}

    /* AVALIAÇÕES */
    .av-selector{display:grid;grid-template-columns:1fr 1fr 1fr;gap:13px;align-items:end;margin-bottom:24px;}
    .av-section-label{font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--brand);padding:18px 0 12px;border-top:1px solid var(--border);margin-top:8px;}
    .av-section-label:first-of-type{border-top:none;padding-top:0;}
    .av-metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:18px;}
    .av-metric-label{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}

    /* Estrelas */
    .stars-row{display:flex;gap:3px;margin-top:2px;}
    .star-btn{background:none;border:none;cursor:pointer;font-size:21px;padding:0;line-height:1;transition:transform .1s;filter:grayscale(1) opacity(.25);}
    .star-btn:hover,.star-btn.on{filter:none;transform:scale(1.18);}

    /* Contador */
    .counter-row{display:flex;align-items:center;gap:7px;margin-top:4px;}
    .c-btn{width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.07);border:1px solid var(--border-strong);color:var(--text);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s;}
    .c-btn:hover{background:rgba(255,255,255,.14);}
    .c-val{font-family:var(--font-display);font-size:22px;font-weight:900;min-width:26px;text-align:center;}
    .c-emoji{font-size:17px;}

    /* Aluno selecionado info */
    .av-aluno-bar{display:flex;align-items:center;gap:13px;padding:14px 18px;background:rgba(255,85,0,.05);border:1px solid rgba(255,85,0,.14);border-radius:var(--radius-sm);margin-bottom:22px;}

    /* Histórico */
    .hist-card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 18px;margin-bottom:10px;}
    .hist-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
    .hist-period{font-family:var(--font-display);font-size:14px;font-weight:800;text-transform:uppercase;color:var(--brand-2);}
    .hist-metrics{display:flex;flex-wrap:wrap;gap:12px;}
    .hist-m{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);}
    .hist-ml{font-size:11px;}

    /* ===== LOGIN SPLIT ===== */
    .login-split{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;}
    @media(max-width:768px){.login-split{grid-template-columns:1fr;}}

    /* Painel visual esquerdo */
    .login-visual{position:relative;background:#0a0a0a;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:48px;}
    @media(max-width:768px){.login-visual{display:none;}}
    .login-visual-svg{position:absolute;inset:0;width:100%;height:100%;opacity:.18;}
    .login-visual-glow{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(255,85,0,.35) 0%,transparent 70%);pointer-events:none;}
    .login-visual-badge{position:relative;z-index:2;display:inline-flex;align-items:center;gap:10px;background:rgba(255,85,0,.12);border:1px solid rgba(255,85,0,.3);border-radius:999px;padding:6px 16px;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--brand);margin-bottom:20px;}
    .login-visual-title{position:relative;z-index:2;font-family:var(--font-display);font-size:52px;font-weight:900;text-transform:uppercase;line-height:.95;color:#fff;margin-bottom:16px;}
    .login-visual-title em{color:var(--brand);font-style:normal;display:block;}
    .login-visual-sub{position:relative;z-index:2;font-size:13px;color:rgba(255,255,255,.4);line-height:1.6;max-width:280px;}

    /* Painel do formulário direito */
    .login-form-panel{background:var(--bg-2);display:flex;flex-direction:column;justify-content:center;padding:64px 56px;}
    @media(max-width:1100px){.login-form-panel{padding:48px 36px;}}
    @media(max-width:768px){.login-form-panel{padding:40px 24px;min-height:100vh;}}
    .login-eyebrow{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--brand);margin-bottom:12px;}
    .login-title{font-family:var(--font-display);font-weight:900;font-size:36px;text-transform:uppercase;color:var(--text);line-height:1;margin-bottom:6px;}
    .login-sub{color:var(--muted);font-size:13px;margin-bottom:36px;line-height:1.6;}
    .login-form{display:flex;flex-direction:column;gap:16px;}
    .login-back{margin-top:28px;font-size:12px;text-align:center;}
    .login-back a{color:var(--muted);text-decoration:none;transition:color .15s;}
    .login-back a:hover{color:var(--brand);}

    /* Campo animado SVG */
    @keyframes pulse-line{0%,100%{opacity:.4}50%{opacity:.9}}
    @keyframes drift{0%{transform:translateY(0)}50%{transform:translateY(-8px)}100%{transform:translateY(0)}}
    .field-line{animation:pulse-line 3s ease-in-out infinite;}
    .field-line:nth-child(2){animation-delay:.5s;}
    .field-line:nth-child(3){animation-delay:1s;}
    .field-ball{animation:drift 2.5s ease-in-out infinite;}

    /* SENHA */
    .senha-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:13px;align-items:end;}

    @media(max-width:900px){
      .sidebar{display:none;} .main-content{margin-left:0;}
      .content{padding:16px;} .topbar{padding:0 16px;}
      .form-grid{grid-template-columns:1fr 1fr;}
      .resumo-grid{grid-template-columns:1fr;}
      .av-selector{grid-template-columns:1fr 1fr;}
      .senha-grid{grid-template-columns:1fr;}
    }
    @media(max-width:520px){
      .form-grid,.av-metrics-grid{grid-template-columns:1fr;}
    }


/* ====== STANDALONE: ÁREA DO ALUNO (aluno.php) ====== */
/* CONTAINER */
.container{max-width:1100px;margin:0 auto;padding:0 24px;}

/* BOTÕES extras do aluno */
.btn-ghost{background:transparent;border-color:var(--border-strong);}
.btn-full{width:100%;margin-top:8px;}
.btn-lg{padding:11px 22px;font-size:14px;}

/* FORM extras do aluno */
input[type=date],input[type=tel],input[type=email]{font-family:var(--font-body);background:rgba(255,255,255,.05);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);padding:9px 12px;font-size:13px;width:100%;transition:border-color .15s;outline:none;}
input[type=date]:focus,input[type=tel]:focus,input[type=email]:focus{border-color:var(--brand);background:rgba(255,85,0,.03);}
label .req{color:var(--brand);}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
@media(max-width:520px){.form-grid-2,.form-grid-3{grid-template-columns:1fr;}}

/* SEÇÃO-DIVISOR */
.form-section-title{font-family:var(--font-display);font-size:11px;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--brand);padding:18px 0 12px;border-top:1px solid var(--border);margin-top:8px;}
.form-section-title:first-of-type{border-top:none;padding-top:0;margin-top:0;}

/* UPLOAD FOTO */
.foto-upload{border:2px dashed var(--border-strong);border-radius:12px;padding:24px;text-align:center;cursor:pointer;transition:border-color .15s;}
.foto-upload:hover{border-color:var(--brand);}
.foto-upload-icon{font-size:32px;margin-bottom:8px;}
.foto-upload-text{font-size:13px;color:var(--muted);}
.foto-preview{width:80px;height:80px;border-radius:50%;object-fit:cover;border:2px solid var(--brand);margin:0 auto 8px;display:none;}
input[type=file]{display:none;}

/* PERFIL */
.perfil-wrap{padding:40px 0 80px;}
.perfil-header{display:flex;align-items:center;gap:24px;margin-bottom:32px;}
.perfil-foto{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--brand);flex-shrink:0;}
.perfil-foto-placeholder{width:96px;height:96px;border-radius:50%;background:rgba(255,85,0,.12);border:3px solid var(--brand);display:flex;align-items:center;justify-content:center;font-size:36px;flex-shrink:0;}
.perfil-nome{font-family:var(--font-display);font-size:36px;font-weight:900;text-transform:uppercase;line-height:1;margin-bottom:4px;}
.perfil-sub{color:var(--muted);font-size:14px;}
.perfil-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 32px;margin-bottom:18px;}
.perfil-card-title{font-family:var(--font-display);font-size:11px;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--brand);margin-bottom:18px;}
.perfil-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;}
.perfil-item label{font-size:10px;letter-spacing:1.5px;color:var(--muted);margin-bottom:3px;}
.perfil-item .valor{font-size:15px;font-weight:600;}
.badge-posicao{display:inline-block;background:rgba(255,85,0,.12);border:1px solid rgba(255,85,0,.25);color:var(--brand-2);padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;}

/* AUTH SPLIT (login/cadastro) */
.auth-split{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;}
@media(max-width:768px){.auth-split{grid-template-columns:1fr;}}
.auth-visual{position:relative;background:#0a0a0a;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:48px;}
@media(max-width:768px){.auth-visual{display:none;}}
.auth-visual-svg{position:absolute;inset:0;width:100%;height:100%;opacity:.18;}
.auth-visual-glow{position:absolute;top:35%;left:50%;transform:translate(-50%,-50%);width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(255,85,0,.3) 0%,transparent 70%);pointer-events:none;}
.auth-visual-badge{position:relative;z-index:2;display:inline-flex;align-items:center;gap:10px;background:rgba(255,85,0,.12);border:1px solid rgba(255,85,0,.3);border-radius:999px;padding:6px 16px;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--brand);margin-bottom:20px;}
.auth-visual-title{position:relative;z-index:2;font-family:var(--font-display);font-size:52px;font-weight:900;text-transform:uppercase;line-height:.95;color:#fff;margin-bottom:16px;}
.auth-visual-title em{color:var(--brand);font-style:normal;display:block;}
.auth-visual-sub{position:relative;z-index:2;font-size:13px;color:rgba(255,255,255,.4);line-height:1.6;max-width:280px;}
.auth-form-panel{background:var(--bg-2);display:flex;flex-direction:column;justify-content:center;padding:64px 56px;}
@media(max-width:1100px){.auth-form-panel{padding:48px 36px;}}
@media(max-width:768px){.auth-form-panel{padding:32px 20px;min-height:100vh;}}
.auth-eyebrow{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--brand);margin-bottom:12px;}
.auth-title{font-family:var(--font-display);font-weight:900;font-size:36px;text-transform:uppercase;color:var(--text);line-height:1;margin-bottom:6px;}
.auth-sub{color:var(--muted);font-size:13px;margin-bottom:28px;line-height:1.6;}
.auth-tabs{display:flex;gap:6px;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:12px;padding:4px;margin-bottom:28px;}
.auth-tab{flex:1;text-align:center;padding:10px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;color:var(--muted);text-decoration:none;transition:background .15s,color .15s;}
.auth-tab.active{background:var(--brand);color:#fff;}
.login-back{margin-top:28px;font-size:12px;text-align:center;}
.login-back a{color:var(--muted);transition:color .15s;}
.login-back a:hover{color:var(--brand);}

@keyframes pulse-line{0%,100%{opacity:.4}50%{opacity:.9}}
@keyframes drift{0%{transform:translateY(0)}50%{transform:translateY(-8px)}100%{transform:translateY(0)}}
.field-line{animation:pulse-line 3s ease-in-out infinite;}
.field-line:nth-child(2){animation-delay:.5s;}
.field-line:nth-child(3){animation-delay:1s;}
.field-ball{animation:drift 2.5s ease-in-out infinite;}