/* Academia da Isabel e da Maria — camada de estabilização v87.35.9 */
:root{
  --v33-ink:#28143f;
  --v33-ink-soft:#5f506d;
  --v33-violet:#5b21b6;
  --v33-magenta:#a81568;
  --v33-blue:#075985;
  --v33-cyan:#0b6f95;
  --v33-green:#087457;
  --v33-orange:#943f00;
  --v33-red:#a31336;
  --v33-line:rgba(91,33,182,.18);
  --v33-shadow:0 18px 46px rgba(52,24,78,.15);
}

html{font-size:16px;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{color:var(--v33-ink)}
small,.form-help,.muted,.tag,.eyebrow,.weekly-day,.lesson-progress-pill,.conversation-progress,.conversation-model{font-size:max(12px,.78rem)}
button,a,input,select,textarea{font:inherit}
button,[role="button"],.button,.button-soft,.button-ghost,.button-danger,.icon-button,.nav-item{touch-action:manipulation}

/* Botões: texto verdadeiramente centrado, alvos de toque e contraste AA. */
.button,.button-soft,.button-ghost,.button-danger,
.choice-button,.level-tab,.family-tool-nav button,
.dialog-actions button,.button-row button{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  text-align:center;
  line-height:1.25;
  padding:.78rem 1.12rem;
  border-radius:16px;
  white-space:normal;
  overflow-wrap:anywhere;
  font-weight:850;
}
.button{color:#fff;background:linear-gradient(115deg,var(--v33-violet),var(--v33-magenta));border-color:transparent;box-shadow:0 12px 27px rgba(91,33,182,.24)}
.button-soft{color:#073a58;background:linear-gradient(135deg,#e5f8ff,#d7edff 55%,#eee5ff);border:1px solid #96cee5}
.button-ghost{color:#51206f;background:linear-gradient(135deg,#fff,#fff4cd 52%,#ffe7f2);border:1px solid #d8bce8}
.button-danger{color:#fff;background:linear-gradient(115deg,var(--v33-red),#bd214a);border-color:transparent}
.button:focus-visible,.button-soft:focus-visible,.button-ghost:focus-visible,.button-danger:focus-visible,
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid #0a668c;outline-offset:3px
}
.button:hover,.button-soft:hover,.button-ghost:hover,.button-danger:hover{transform:translateY(-2px)}
.button:disabled,.button-soft:disabled,.button-ghost:disabled,.button-danger:disabled{opacity:.58;transform:none;cursor:not-allowed}
.button-small{min-height:42px;padding:.62rem .9rem;font-size:.84rem}
.button-row,.dialog-actions{align-items:stretch;justify-content:center}
.button-row>*{max-width:100%}


/* Clube da Leitura: os filtros são chips horizontais e nunca podem encolher letra a letra. */
.story-filter-row{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:10px;
  width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  padding:2px 2px 9px;
  scrollbar-width:thin;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.story-filter{
  flex:0 0 auto;
  inline-size:auto;
  width:auto;
  min-inline-size:max-content;
  min-width:max-content;
  max-inline-size:none;
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.72rem 1rem;
  border-radius:999px;
  line-height:1.1;
  text-align:center;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  scroll-snap-align:start;
}
.story-filter.is-active{flex-basis:auto}

/* Variação cromática acessível para ações principais. */
.button-row>.button:nth-of-type(3n+2),.dialog-actions>.button:nth-of-type(3n+2){background:linear-gradient(115deg,var(--v33-blue),#0c66a1)}
.button-row>.button:nth-of-type(3n),.dialog-actions>.button:nth-of-type(3n){background:linear-gradient(115deg,var(--v33-orange),#ad4b00)}

/* Modais centrados sem encostar texto aos limites. */
.dialog,.badge-detail-dialog,.achievement-celebration-dialog{
  width:min(92vw,760px);
  max-height:min(90dvh,820px);
  margin:auto;
  padding:0;
  border:3px solid transparent;
  border-radius:28px;
  background:linear-gradient(#fff,#fffafc) padding-box,linear-gradient(125deg,#6d28d9,#be185d,#b45309,#0369a1) border-box;
  box-shadow:0 34px 110px rgba(28,10,49,.38)
}
.dialog::backdrop,.badge-detail-dialog::backdrop,.achievement-celebration-dialog::backdrop{background:rgba(25,10,43,.68);backdrop-filter:blur(9px)}
.dialog form,.dialog>section,.dialog>.dialog-content{padding:clamp(24px,4vw,38px);overflow:auto;max-height:calc(90dvh - 6px)}
.dialog-header,.dialog form>h2,.dialog form>h3,.dialog form>p,.dialog>.dialog-content>h2,.dialog>.dialog-content>p{
  text-align:center;margin-inline:auto
}
.dialog h2{font-size:clamp(1.55rem,4vw,2.15rem);line-height:1.16;color:#3d1264;text-wrap:balance}
.dialog p{max-width:65ch;line-height:1.62;color:var(--v33-ink-soft);overflow-wrap:anywhere}
.dialog-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.dialog-actions>button{min-width:150px}
/* Textos legais longos mantêm leitura natural à esquerda. */
.legal-dialog .legal-section,.legal-dialog .legal-section p,.legal-dialog li{text-align:left}

/* Cartões de métricas e resultados. */
.stat-card,.game-stat-strip article,.report-highlights span,.weekly-report-grid>div,.quality-metrics>div,.level-score,.story-count-card{
  text-align:center;justify-items:center;align-content:center;border:1px solid var(--v33-line);box-shadow:0 12px 28px rgba(51,25,77,.09)
}
.stat-card:nth-child(4n+1),.weekly-report-grid>div:nth-child(4n+1),.quality-metrics>div:nth-child(4n+1){background:linear-gradient(145deg,#fff2f8,#ffdcea)}
.stat-card:nth-child(4n+2),.weekly-report-grid>div:nth-child(4n+2),.quality-metrics>div:nth-child(4n+2){background:linear-gradient(145deg,#eefaff,#d8f1ff)}
.stat-card:nth-child(4n+3),.weekly-report-grid>div:nth-child(4n+3),.quality-metrics>div:nth-child(4n+3){background:linear-gradient(145deg,#fff9df,#ffefad)}
.stat-card:nth-child(4n),.weekly-report-grid>div:nth-child(4n),.quality-metrics>div:nth-child(4n){background:linear-gradient(145deg,#effcf6,#cff5e4)}

/* Painéis informativos mobile: margem interna, cor e conteúdo centrado. */
.routine-banner,.curriculum-note{
  position:relative;
  overflow:hidden;
  box-sizing:border-box;
  width:100%;
  padding:clamp(24px,4vw,38px);
  border:2px solid transparent;
  border-radius:28px;
  text-align:center;
  justify-items:center;
  align-content:center;
  gap:14px;
}
.routine-banner{grid-template-columns:auto minmax(0,1fr) auto;background:linear-gradient(135deg,#fff,#fff1bd 47%,#daf8eb) padding-box,linear-gradient(115deg,#a31336,#b45309,#087457,#075985) border-box}
.curriculum-note{display:grid;grid-template-columns:auto minmax(0,1fr);background:linear-gradient(135deg,#fff,#e5f4ff 48%,#eee5ff) padding-box,linear-gradient(115deg,#075985,#5b21b6,#a81568) border-box}
.routine-banner-icon,.curriculum-note-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:21px;font-size:32px;background:#fff;box-shadow:0 12px 30px rgba(42,21,66,.14)}
.routine-banner-copy,.curriculum-note-copy{min-width:0;display:grid;justify-items:center;gap:9px}
.routine-banner .eyebrow,.routine-banner h2,.routine-banner p,.curriculum-note strong,.curriculum-note p{text-align:center;margin-inline:auto;overflow-wrap:anywhere}
.routine-banner h2{margin:0;font-size:clamp(2rem,5vw,2.85rem);line-height:1.08;color:#35134f}
.routine-banner p,.curriculum-note p{max-width:62ch;margin:0;color:#554660;line-height:1.62;font-size:clamp(1rem,2vw,1.14rem)}
.curriculum-note strong{display:block;font-size:clamp(1.4rem,3vw,2rem);line-height:1.2;color:#35134f}
.routine-dots{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;padding:10px 12px;border-radius:999px;background:rgba(255,255,255,.76)}
.routine-dots span{width:18px;height:18px;border:2px solid #fff;background:#ded5eb;box-shadow:0 4px 10px rgba(39,18,62,.12)}
.routine-dots span.active{background:#087457}

/* Leitor de áudio: adaptação imediata a rotação e safe areas. */
.story-audio-fullscreen{
  width:100vw;width:100dvw;height:100vh;height:100dvh;
  padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
  box-sizing:border-box
}
.story-audio-picture{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;width:100%;height:100%;padding:0;overflow:hidden}
.story-audio-picture img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:auto;object-fit:contain;object-position:center;flex:0 1 auto}
@media(orientation:landscape) and (max-height:650px){
  .story-audio-fullscreen{grid-template-rows:minmax(42px,12vh) minmax(0,1fr) minmax(50px,15vh);gap:4px}
  .story-audio-picture img{height:100%;width:auto;max-width:100%;max-height:100%}
}
@media(orientation:portrait){.story-audio-picture img{width:100%;height:auto;max-height:100%}}

/* Mobile: evita texto colado aos limites e mantém navegação legível. */
@media(max-width:820px){
  body{font-size:16px}
  .page{padding-inline:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
  .dialog{width:min(94vw,680px);border-radius:24px}
  .dialog form,.dialog>section,.dialog>.dialog-content{padding:24px 20px}
  .dialog-actions{display:grid;grid-template-columns:1fr;width:100%}
  .dialog-actions>button{width:100%;min-width:0}
  .routine-banner,.curriculum-note{grid-template-columns:1fr;padding:27px 22px;border-radius:25px}
  .routine-banner h2{font-size:clamp(2rem,9vw,2.6rem)}
  .routine-banner p,.curriculum-note p{font-size:1.02rem;line-height:1.62;padding-inline:2px}
  .mobile-nav .nav-item small{font-size:12px}
  .tag,.eyebrow{font-size:12px}
}
@media(max-width:390px){
  .routine-banner,.curriculum-note{padding:24px 18px}
  .dialog form,.dialog>section,.dialog>.dialog-content{padding:22px 17px}
}

body.low-stimulus .button,body.low-stimulus .button-soft,body.low-stimulus .button-ghost,body.low-stimulus .button-danger{transform:none;animation:none;box-shadow:none}
body.high-contrast .button,body.high-contrast .button-soft,body.high-contrast .button-ghost,body.high-contrast .button-danger{border:2px solid currentColor}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
