/* ============================================================
   Calendário acadêmico · /calendario

   Arquivo carregado só nesta rota. Depende dos tokens de base.css
   e pode usar tudo o que components.css já define (btn, eyebrow,
   section, wrap). As media queries ficam no fim do arquivo, sem
   risco de serem sobrescritas por regras de base.
   ============================================================ */

/* ---------- cores por tipo de data ---------- */
:root {
  --k-feriado: #e0322a;
  --k-recesso: #c8871f;
  --k-prova: #3c342e;
  --k-entrega: #c9552f;
  --k-evento: #3f7452;

  --k-feriado-soft: #fde8e3;
  --k-recesso-soft: #faefd8;
  --k-prova-soft: #e9e4dd;
  --k-entrega-soft: #fbe6dc;
  --k-evento-soft: #e4efe6;
}

html[data-theme="dark"] {
  --k-feriado: #ff6a5f;
  --k-recesso: #e8b352;
  --k-prova: #ded4c8;
  --k-entrega: #e88a63;
  --k-evento: #6fb489;

  --k-feriado-soft: #34130f;
  --k-recesso-soft: #33260f;
  --k-prova-soft: #2a2521;
  --k-entrega-soft: #331a12;
  --k-evento-soft: #16251a;
}

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

/* ============================================================
   HERÓI
   ============================================================ */

.cal-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(34px, 4.4vw, 62px) 0 clamp(46px, 5.4vw, 78px);
  background:
    radial-gradient(58% 78% at 88% 4%, rgba(224, 50, 42, 0.13), transparent 66%),
    radial-gradient(48% 66% at 2% 96%, rgba(217, 161, 60, 0.16), transparent 70%),
    linear-gradient(178deg, var(--paper) 0%, var(--paper-2) 100%);
  border-bottom: 1px solid var(--line-soft);
}

.cal-hero__glow span {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.cal-hero__glow span:nth-child(1) {
  width: 420px;
  height: 420px;
  right: -140px;
  top: -180px;
  background: radial-gradient(circle, rgba(224, 50, 42, 0.14), transparent 68%);
}
.cal-hero__glow span:nth-child(2) {
  width: 300px;
  height: 300px;
  left: -120px;
  bottom: -140px;
  border: 1px solid rgba(23, 19, 16, 0.07);
}
.cal-hero__glow span:nth-child(3) {
  width: 210px;
  height: 210px;
  left: 8%;
  top: 12%;
  border: 1px dashed rgba(23, 19, 16, 0.09);
}

.cal-hero__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}

.cal-hero__kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px 7px 12px;
  border-radius: 999px;
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
}
.cal-hero__kicker svg {
  color: var(--brand);
  flex: 0 0 auto;
}

.cal-hero h1 {
  margin: 18px 0 0;
  font-family: var(--font-display);
  font-size: clamp(38px, 5.2vw, 68px);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.035em;
  color: var(--ink);
}
.cal-hero h1 em {
  font-style: italic;
  color: var(--brand);
}

.cal-hero__lead {
  max-width: 46ch;
  margin: 20px 0 0;
  font-size: clamp(15px, 1.15vw, 16.5px);
  line-height: 1.62;
  color: var(--mute);
}

.cal-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}

.cal-hero__nums {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(20px, 3vw, 44px);
  margin: clamp(26px, 3vw, 38px) 0 0;
  padding-top: 22px;
  border-top: 1px solid var(--line-soft);
}
.cal-hero__nums div {
  min-width: 0;
}
.cal-hero__nums dt {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--mute);
}
.cal-hero__nums dd {
  margin: 6px 0 0;
  font-family: var(--font-display);
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--ink);
}

/* ---------- cartão da próxima data ---------- */

.cal-hero__side {
  display: grid;
  gap: 14px;
  min-width: 0;
}

.cal-next {
  position: relative;
  overflow: hidden;
  padding: clamp(22px, 2.4vw, 30px);
  border-radius: var(--radius-lg);
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
}
.cal-next::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--k-evento);
}
.cal-next[data-kind="feriado"]::after { background: var(--k-feriado); }
.cal-next[data-kind="recesso"]::after { background: var(--k-recesso); }
.cal-next[data-kind="prova"]::after { background: var(--k-prova); }
.cal-next[data-kind="entrega"]::after { background: var(--k-entrega); }

.cal-next__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.cal-next__eyebrow {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mute);
}
.cal-next__in {
  padding: 5px 11px;
  border-radius: 999px;
  background: var(--brand-soft);
  color: var(--brand-deep);
  font-size: 11.5px;
  font-weight: 700;
  white-space: nowrap;
}
html[data-theme="dark"] .cal-next__in { color: #ffb0a6; }

.cal-next__date {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 18px 0 0;
}
.cal-next__d {
  font-family: var(--font-display);
  font-size: clamp(52px, 5.6vw, 74px);
  font-weight: 500;
  line-height: 0.82;
  letter-spacing: -0.05em;
  color: var(--ink);
}
.cal-next__m {
  display: grid;
  gap: 2px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
  text-transform: capitalize;
}
.cal-next__m b {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--mute);
}

.cal-next__t {
  margin: 16px 0 0;
  font-family: var(--font-display);
  font-size: clamp(19px, 1.7vw, 23px);
  font-weight: 500;
  line-height: 1.24;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.cal-next__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-top: 16px;
}
.cal-next__seg {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  color: var(--mute);
}
.cal-next__seg svg { flex: 0 0 auto; opacity: 0.85; }

.cal-tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
  background: var(--k-evento-soft);
  color: var(--k-evento);
}
.cal-tag[data-kind="feriado"] { background: var(--k-feriado-soft); color: var(--k-feriado); }
.cal-tag[data-kind="recesso"] { background: var(--k-recesso-soft); color: var(--k-recesso); }
.cal-tag[data-kind="prova"] { background: var(--k-prova-soft); color: var(--k-prova); }
.cal-tag[data-kind="entrega"] { background: var(--k-entrega-soft); color: var(--k-entrega); }

/* atalhos de segmento do herói */
.cal-hero__feeds {
  display: grid;
  gap: 8px;
}
.cal-segjd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 12px 16px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid var(--line);
  color: var(--ink);
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: background 0.3s, border-color 0.3s, transform 0.3s var(--ease-out);
}
html[data-theme="dark"] .cal-segjd { background: rgba(255, 255, 255, 0.04); }
.cal-segjd:hover {
  background: var(--card);
  border-color: var(--ink);
  transform: translateX(3px);
}
.cal-segjd__n {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 500;
  color: var(--mute);
  white-space: nowrap;
}

/* ============================================================
   BLOCO INTERATIVO
   ============================================================ */

.cal-sec {
  padding-top: clamp(30px, 3.6vw, 48px);
  background: var(--paper);
}

.cal-shell {
  border-radius: calc(var(--radius-lg) + 4px);
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}

/* ---------- trilho de meses ---------- */

.cal-rail {
  display: flex;
  gap: 4px;
  padding: 12px clamp(12px, 1.6vw, 20px);
  background: var(--paper-2);
  border-bottom: 1px solid var(--line-soft);
  overflow-x: auto;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.cal-rail::-webkit-scrollbar { height: 4px; }
.cal-rail::-webkit-scrollbar-thumb { background: var(--line); border-radius: 4px; }

.cal-rail__b {
  flex: 1 0 auto;
  display: grid;
  gap: 1px;
  justify-items: center;
  min-width: 62px;
  padding: 9px 12px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--ink-soft);
  font: inherit;
  cursor: pointer;
  transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.cal-rail__b span {
  font-size: 12.5px;
  font-weight: 600;
  text-transform: capitalize;
  letter-spacing: 0.01em;
}
.cal-rail__b b {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--mute);
  font-variant-numeric: tabular-nums;
}
.cal-rail__b:hover { background: var(--card); border-color: var(--line); }
.cal-rail__b.is-active {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--paper);
}
.cal-rail__b.is-active b { color: rgba(251, 247, 240, 0.62); }

/* ---------- barra de ferramentas ---------- */

.cal-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  padding: clamp(16px, 1.8vw, 22px) clamp(18px, 2.2vw, 28px);
  border-bottom: 1px solid var(--line-soft);
}

.cal-tools__nav {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.cal-arrow {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--ink);
  cursor: pointer;
  flex: 0 0 auto;
  transition: background 0.25s, color 0.25s, border-color 0.25s, transform 0.25s;
}
.cal-arrow:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--paper);
  transform: translateY(-1px);
}

.cal-tools__now {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 500;
  letter-spacing: -0.025em;
  color: var(--ink);
  white-space: nowrap;
}
.cal-tools__now b {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--mute);
}

/* segmentos */
.cal-seg {
  display: inline-flex;
  padding: 3px;
  border-radius: 999px;
  background: var(--paper-2);
  border: 1px solid var(--line-soft);
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}
.cal-seg::-webkit-scrollbar { display: none; }

.cal-seg__b {
  flex: 0 0 auto;
  padding: 8px 15px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--ink-soft);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.25s, color 0.25s, box-shadow 0.25s;
}
.cal-seg__b:hover { color: var(--ink); }
.cal-seg__b.is-active {
  background: var(--brand);
  color: #fff;
  box-shadow: 0 8px 18px -10px rgba(224, 50, 42, 0.9);
}

/* ---------- filtros de tipo ---------- */

.cal-kinds {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 14px clamp(18px, 2.2vw, 28px);
  border-bottom: 1px solid var(--line-soft);
}
.cal-kinds__lbl {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
}
.cal-kinds__lbl svg { opacity: 0.7; }

.cal-kind {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--ink-soft);
  font: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.22s, border-color 0.22s, color 0.22s, opacity 0.22s;
}
.cal-kind__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--k-evento);
  flex: 0 0 auto;
}
.cal-kind[data-kind="feriado"] .cal-kind__dot { background: var(--k-feriado); }
.cal-kind[data-kind="recesso"] .cal-kind__dot { background: var(--k-recesso); }
.cal-kind[data-kind="prova"] .cal-kind__dot { background: var(--k-prova); }
.cal-kind[data-kind="entrega"] .cal-kind__dot { background: var(--k-entrega); }

.cal-kind b {
  font-size: 11px;
  font-weight: 700;
  color: var(--mute);
  font-variant-numeric: tabular-nums;
}
.cal-kind:hover { border-color: var(--ink); }
.cal-kind[aria-pressed="false"] {
  opacity: 0.42;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--mute);
}
.cal-kind[aria-pressed="false"] .cal-kind__dot { box-shadow: none; }

.cal-reset {
  margin-left: auto;
  padding: 6px 4px;
  border: 0;
  background: none;
  color: var(--brand);
  font: inherit;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.cal-reset:hover { color: var(--brand-deep); }

/* ---------- painel do mês ---------- */

.cal-panel { padding: clamp(18px, 2.2vw, 28px); }
.cal-panel[hidden] { display: none; }

.cal-panel__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}
.cal-panel__head h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(20px, 2vw, 25px);
  font-weight: 500;
  letter-spacing: -0.025em;
  color: var(--ink);
}
.cal-panel__head h3 span {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--mute);
  margin-left: 4px;
}
.cal-panel__count {
  margin: 0;
  font-size: 12.5px;
  color: var(--mute);
  white-space: nowrap;
}

/* a grade nunca deve gerar rolagem horizontal na página */
.cal-scroll {
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  overflow: hidden;
}

.cal-grid {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.cal-grid thead th {
  padding: 10px 4px;
  background: var(--paper-2);
  border-bottom: 1px solid var(--line-soft);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--mute);
  text-align: center;
}
.cal-wd--min { display: none; }

.cal-day {
  height: 96px;
  padding: 6px 4px 4px;
  vertical-align: top;
  border-right: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
  background: var(--card);
  transition: background 0.2s;
}
.cal-grid tr:last-child .cal-day { border-bottom: 0; }
.cal-day:nth-child(7n) { border-right: 0; }
.cal-day--void { background: var(--paper-2); opacity: 0.5; }
.cal-day.has-ev:hover { background: rgba(224, 50, 42, 0.03); }

.cal-day__n {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  margin: 0 auto 3px;
  border-radius: 50%;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-soft);
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.cal-day.has-ev .cal-day__n { color: var(--ink); font-weight: 700; }
.cal-day__n:hover { background: var(--line-soft); }
.cal-day.is-today .cal-day__n {
  background: var(--ink);
  color: var(--paper);
}

.cal-day__chips {
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: hidden;
}

.cal-chip {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 2px 5px;
  border-radius: 6px;
  background: var(--k-evento-soft);
  color: var(--k-evento);
  overflow: hidden;
}
.cal-chip[data-kind="feriado"] { background: var(--k-feriado-soft); color: var(--k-feriado); }
.cal-chip[data-kind="recesso"] { background: var(--k-recesso-soft); color: var(--k-recesso); }
.cal-chip[data-kind="prova"] { background: var(--k-prova-soft); color: var(--k-prova); }
.cal-chip[data-kind="entrega"] { background: var(--k-entrega-soft); color: var(--k-entrega); }

.cal-chip__dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  flex: 0 0 auto;
}
.cal-chip__h {
  font-size: 9.5px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  flex: 0 0 auto;
  opacity: 0.85;
}
.cal-chip__t {
  font-size: 9.5px;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* marcação de filtro: chip escondido continua ocupando espaço zero */
.cal-chip[hidden] { display: none; }
.cal-day[data-filtered="out"] { opacity: 0.34; }
.cal-day[data-filtered="out"] .cal-day__chips { visibility: hidden; }

/* ---------- agenda do mês ---------- */

.cal-agenda__title {
  margin: clamp(22px, 2.6vw, 32px) 0 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mute);
}

.cal-agenda {
  display: grid;
  gap: 10px;
}

.cal-aggrp {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 14px;
  padding: 14px 0 4px;
  border-top: 1px solid var(--line-soft);
}
.cal-aggrp[hidden] { display: none; }
.cal-aggrp:first-child { border-top: 0; padding-top: 0; }

.cal-aggrp__h {
  display: grid;
  gap: 1px;
  margin: 0;
  padding-top: 2px;
}
.cal-aggrp__d {
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--ink);
}
.cal-aggrp__w {
  display: grid;
  font-size: 11px;
  color: var(--mute);
  text-transform: capitalize;
}
.cal-aggrp__w b {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: none;
  color: var(--ink-soft);
}

.cal-ag {
  display: grid;
  gap: 0;
  padding: 12px 14px;
  border-radius: 14px;
  background: var(--paper-2);
  border-left: 3px solid var(--k-evento);
}
.cal-ag[data-kind="feriado"] { border-left-color: var(--k-feriado); }
.cal-ag[data-kind="recesso"] { border-left-color: var(--k-recesso); }
.cal-ag[data-kind="prova"] { border-left-color: var(--k-prova); }
.cal-ag[data-kind="entrega"] { border-left-color: var(--k-entrega); }
.cal-ag[hidden] { display: none; }
.cal-ag + .cal-ag { margin-top: 8px; }

.cal-ag__when {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
  font-size: 11.5px;
  color: var(--mute);
}
.cal-ag__when b {
  font-weight: 700;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.cal-ag__sep {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--line);
}
.cal-ag__range { font-weight: 600; }

.cal-ag__t {
  margin: 5px 0 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.34;
  letter-spacing: -0.012em;
  color: var(--ink);
}
.cal-ag__note {
  margin: 5px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--mute);
}
.cal-ag__tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 9px 0 0;
}
.cal-ag__seg {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--mute);
}

.cal-agenda__empty,
.cal-agenda__none {
  margin: 0;
  padding: 22px 0;
  font-size: 14px;
  color: var(--mute);
}

.cal-note {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: clamp(18px, 2vw, 24px) 0 0;
  padding: 14px 16px;
  border-radius: 14px;
  background: var(--paper-2);
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--mute);
}
.cal-note svg {
  flex: 0 0 auto;
  margin-top: 1px;
  color: var(--brand);
}

/* ============================================================
   ASSINATURA
   ============================================================ */

.cal-signup {
  background: var(--paper-2);
  border-top: 1px solid var(--line-soft);
}

.cal-signup__head {
  max-width: 660px;
  margin-bottom: clamp(26px, 3.2vw, 40px);
}
.cal-signup__head h2 {
  margin: 12px 0 0;
  font-family: var(--font-display);
  font-size: clamp(30px, 3.6vw, 48px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.03em;
  color: var(--ink);
}
.cal-signup__head h2 em {
  font-style: italic;
  color: var(--brand);
}
.cal-signup__head .lead {
  margin: 16px 0 0;
  font-size: 15.5px;
  line-height: 1.62;
  color: var(--mute);
}

.cal-feedgrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 18px);
}

.cal-feed {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(20px, 2.2vw, 26px);
  border-radius: var(--radius);
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
  transition: transform 0.45s var(--ease-out), box-shadow 0.45s, border-color 0.35s;
}
.cal-feed:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
  border-color: var(--line);
}

.cal-feed__ic {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.01em;
}
.cal-feed__ic--g {
  background: #fff;
  color: #1a73e8;
  border: 1px solid rgba(23, 19, 16, 0.1);
  box-shadow: inset 0 0 0 1px rgba(26, 115, 232, 0.12);
}
.cal-feed__ic--a {
  background: linear-gradient(160deg, #f6f7fa, #e8ecf3);
  color: #1c1c1e;
  border: 1px solid rgba(23, 19, 16, 0.1);
}
.cal-feed__ic--o {
  background: var(--brand-soft);
  color: var(--brand-deep);
  text-transform: uppercase;
  font-size: 12.5px;
}
html[data-theme="dark"] .cal-feed__ic--g { background: #f8f9fb; }
html[data-theme="dark"] .cal-feed__ic--a { background: linear-gradient(160deg, #eef1f6, #d9dee8); }

.cal-feed h3 {
  margin: 2px 0 0;
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.cal-feed p {
  margin: 0 0 auto;
  font-size: 13.4px;
  line-height: 1.55;
  color: var(--mute);
}
.cal-feed .btn { margin-top: 6px; }

/* ---------- caixa de copiar ---------- */

.cal-copy {
  margin-top: clamp(16px, 2vw, 22px);
  padding: clamp(16px, 2vw, 20px);
  border-radius: var(--radius);
  background: var(--card);
  border: 1px dashed var(--line);
}
.cal-copy__lbl {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 10px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-soft);
}
.cal-copy__lbl svg { color: var(--brand); flex: 0 0 auto; }

.cal-copy__row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.cal-copy__input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 11px 14px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--paper-2);
  color: var(--ink-soft);
  font: inherit;
  font-size: 12.5px;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-overflow: ellipsis;
}
.cal-copy__input:focus {
  outline: 2px solid var(--brand);
  outline-offset: 1px;
}

/* ---------- feeds por segmento ---------- */

.cal-segfeeds { margin-top: clamp(20px, 2.4vw, 28px); }
.cal-segfeeds__lbl {
  margin: 0 0 10px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-soft);
}
.cal-segfeeds__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.cal-segfeed {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 13px 16px;
  border-radius: 14px;
  background: var(--card);
  border: 1px solid var(--line);
  color: var(--ink);
  text-decoration: none;
  font-size: 13.5px;
  font-weight: 600;
  transition: border-color 0.3s, transform 0.3s var(--ease-out), box-shadow 0.3s;
}
.cal-segfeed:hover {
  border-color: var(--ink);
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}
.cal-segfeed__n {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--mute);
  white-space: nowrap;
}

/* ---------- passos ---------- */

.cal-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 26px);
  margin-top: clamp(28px, 3.4vw, 44px);
  padding-top: clamp(24px, 3vw, 34px);
  border-top: 1px solid var(--line);
}
.cal-step__n {
  display: block;
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--brand);
}
.cal-step h4 {
  margin: 8px 0 0;
  font-size: 15.5px;
  font-weight: 650;
  letter-spacing: -0.012em;
  color: var(--ink);
}
.cal-step p {
  margin: 6px 0 0;
  font-size: 13.2px;
  line-height: 1.56;
  color: var(--mute);
}

/* ============================================================
   FAQ
   ============================================================ */

.cal-faq { background: var(--paper); }
.cal-faq__foot {
  margin: 26px 0 0;
  font-size: 14px;
  color: var(--mute);
}
.cal-faq__foot a {
  color: var(--brand);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ============================================================
   RESPONSIVO
   ============================================================ */

@media (max-width: 1080px) {
  .cal-hero__grid { grid-template-columns: 1fr; gap: 30px; }
  .cal-hero__side { max-width: 520px; }
  .cal-feedgrid { grid-template-columns: 1fr 1fr; }
  .cal-feedgrid .cal-feed:last-child { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .cal-day { height: 84px; }
  .cal-chip__t { font-size: 9px; }
  .cal-steps { grid-template-columns: 1fr; gap: 18px; }
  .cal-step { padding-bottom: 16px; border-bottom: 1px solid var(--line-soft); }
  .cal-step:last-child { border-bottom: 0; padding-bottom: 0; }
}

@media (max-width: 720px) {
  .cal-hero { padding-top: 22px; }
  .cal-tools { align-items: stretch; }
  .cal-tools__nav { justify-content: space-between; width: 100%; }
  .cal-seg { width: 100%; justify-content: flex-start; }

  /* a grade passa a mostrar só pontos coloridos; o texto fica na agenda */
  .cal-day { height: 62px; padding: 5px 2px 3px; }
  .cal-day__n { width: 21px; height: 21px; font-size: 11.5px; margin-bottom: 4px; }
  .cal-wd--full { display: none; }
  .cal-wd--min { display: inline; }

  .cal-day__chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2px;
  }
  .cal-chip {
    padding: 0;
    background: none !important;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    flex: 0 0 auto;
  }
  .cal-chip__dot { width: 5px; height: 5px; }
  .cal-chip__h,
  .cal-chip__t { display: none; }

  .cal-aggrp { grid-template-columns: 1fr; gap: 8px; padding-bottom: 2px; }
  .cal-aggrp__h { display: flex; align-items: baseline; gap: 7px; }
  .cal-aggrp__d { font-size: 20px; }
  .cal-aggrp__w { display: flex; align-items: baseline; gap: 5px; font-size: 11.5px; }

  .cal-segfeeds__row { grid-template-columns: 1fr; }
  .cal-reset { margin-left: 0; }
}

@media (max-width: 620px) {
  .cal-feedgrid { grid-template-columns: 1fr; }
  .cal-feedgrid .cal-feed:last-child { grid-column: auto; }
  .cal-hero__actions .btn { width: 100%; justify-content: center; }
  .cal-hero__nums { gap: 18px; }
  .cal-hero__nums div { flex: 1 1 30%; }
  .cal-panel { padding: 14px 12px; }
  .cal-panel__head { flex-wrap: wrap; gap: 4px; }
  .cal-copy__row { flex-direction: column; align-items: stretch; }
  .cal-copy__input { width: 100%; }
  .cal-copy__row .btn { width: 100%; justify-content: center; }
  .cal-tools { padding: 14px 12px; }
  .cal-kinds { padding: 12px; gap: 6px; }
  .cal-kind { font-size: 12px; padding: 5px 10px; }
}

@media (max-width: 420px) {
  .cal-rail__b { min-width: 54px; padding: 8px 9px; }
  .cal-hero h1 { font-size: clamp(32px, 9vw, 40px); }
  .cal-next__d { font-size: 52px; }
}

@media (prefers-reduced-motion: reduce) {
  .cal-segjd,
  .cal-feed,
  .cal-segfeed,
  .cal-arrow { transition: none; }
  .cal-segjd:hover,
  .cal-feed:hover,
  .cal-segfeed:hover,
  .cal-arrow:hover { transform: none; }
}
