/* Projeto A+ — ui.css (v2, síntese do painel de design)
   Lente 1: sistema de botões · Lente 2: dashboard dos pais · Lente 3: ergonomia iPhone.
   Carregado POR ÚLTIMO no <head>. */

/* ============================================================
   LENTE 3 — ERGONOMIA iPHONE
   ============================================================ */
html{-webkit-text-size-adjust:100%}
body{overscroll-behavior-y:contain}
button,input,select,textarea{touch-action:manipulation}

/* scrim desfocado atrás do relógio do iOS (altura 0 fora do iPhone) */
.app::before{content:"";position:fixed;top:0;left:0;right:0;z-index:60;pointer-events:none;
  height:env(safe-area-inset-top,0px);
  background:rgba(7,27,48,.72);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}

/* todas as telas fora do relógio e do home indicator */
.screen{
  padding:calc(18px + env(safe-area-inset-top,0px))
          max(16px,env(safe-area-inset-right,0px))
          calc(28px + env(safe-area-inset-bottom,0px))
          max(16px,env(safe-area-inset-left,0px))}
.screen.login-home{padding:0 0 env(safe-area-inset-bottom,0px)}
.login-home .home-wrap{padding-top:env(safe-area-inset-top,0px)}

/* overlays (PIN, pais, professora): nunca estouram nem colidem com o teclado */
.overlay{padding:calc(16px + env(safe-area-inset-top,0px)) 16px
                 calc(16px + env(safe-area-inset-bottom,0px))}
.overlay-card{max-height:calc(100dvh - 32px
    - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));
  overflow-y:auto;-webkit-overflow-scrolling:touch}

/* anti-zoom do Safari: input com fonte <16px dispara zoom automático ao focar
   (pior no editor de redação — a menina digitava com a tela zoomada) */
.field input,.cred-in,.wr-planrow input,.wr-area,
.sp-sel select,.rsel,#tutor-type{font-size:16px}

/* alvos de toque ≥44px que sobraram fora dos botões novos */
.ov-close{top:6px;right:6px;width:44px;height:44px;display:grid;place-items:center;
  font-size:20px;border-radius:14px;padding:0}
.ov-close:active{background:rgba(255,255,255,.08)}
.field .eye{min-width:44px;min-height:44px;display:grid;place-items:center;
  font-size:18px;padding:0;margin-right:-10px}
.abtn{min-height:44px}
.adultbar .abtn,.ls-step .bub .say-row .abtn{min-height:44px}
.bg-grid button{width:44px;height:44px}
.user-del{min-height:44px;padding:10px 14px;border-radius:12px;font-size:12.5px}
.tab,.child-tabs button,.child-pick button{min-height:48px}
.faq .q,.wr-src-h,.user-row{min-height:48px}
.char-grid button{min-height:48px}
.sp-sel select,.rsel{min-height:44px}

/* rede de segurança: se algum .link sobreviver em algum canto, já nasce botão */
.link{display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:48px;margin:12px 0 0;padding:12px 16px;
  font-size:15px;font-weight:700;color:var(--soft);text-decoration:none;
  background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:14px}
.link:active{transform:scale(.98);color:var(--ink)}

/* seletor de filhas SEMPRE à mão (o painel é longo; trocar de filha é o gesto nº1) */
#s-parent .child-tabs{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;
  margin:0 -16px 14px;padding:10px 16px 12px;
  background:linear-gradient(180deg,rgba(7,27,48,.97),rgba(10,37,64,.90));
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}

/* ============================================================
   LENTE 1 — SISTEMA DE BOTÕES (fim dos links de texto)
   ============================================================ */
/* par da home: as "bolinhas" (⚙️ perfil / 🔄 trocar) */
.btn2row{display:flex;gap:10px;margin:16px 0 6px}
.bigbtn{flex:1;display:flex;align-items:center;gap:10px;
  background:linear-gradient(180deg,var(--surface),var(--surface2));
  border:1px solid var(--line);border-radius:16px;padding:11px 12px;min-height:64px;
  color:var(--ink);text-align:left;transition:transform .12s,border-color .2s}
.bigbtn:hover{border-color:rgba(255,194,75,.45)}
.bigbtn:active{transform:scale(.97)}
.bigbtn .bic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  font-size:18px;flex:0 0 auto;box-shadow:inset 0 2px 4px rgba(255,255,255,.35)}
.bigbtn .bt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.bigbtn .bt b{font-size:13.5px;font-weight:800}
.bigbtn .bt small{font-size:10.5px;color:var(--soft)}

/* "Sair" do painel: chip coral de 44px no cabeçalho */
.hdrbtn{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,143,107,.14);border:1px solid rgba(255,143,107,.35);
  border-radius:12px;padding:10px 14px;min-height:44px;color:var(--coral);
  font-weight:800;font-size:13px}
.hdrbtn:active{transform:scale(.96)}

/* voltar universal (discreto, mas alvo gigante) */
.backbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  margin-top:14px;background:rgba(255,255,255,.05);border:1px solid var(--line);
  border-radius:14px;padding:14px;min-height:52px;color:var(--soft);
  font-weight:700;font-size:14.5px;transition:transform .12s,border-color .2s}
.backbtn:hover{border-color:rgba(255,194,75,.4);color:var(--ink)}
.backbtn:active{transform:scale(.98)}
/* sair de lição/teste = abandono → coral, distinto na hora */
.backbtn.warn{background:rgba(255,143,107,.10);border-color:rgba(255,143,107,.30);
  color:var(--coral)}

/* bolinha de pendência no menu "Para corrigir" */
.mi-dot{width:10px;height:10px;border-radius:50%;background:var(--coral);
  flex:0 0 auto;box-shadow:0 0 0 3px rgba(255,143,107,.25)}
.mi-dot.hidden{display:none}

/* ============================================================
   LENTE 2 — DASHBOARD DOS PAIS
   ============================================================ */
/* ---- card do DIAGNÓSTICO: donut + placar + barras + "por onde começar" ---- */
.diag-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.diag-donut{--p:0;width:76px;height:76px;border-radius:50%;flex:0 0 auto;
  display:grid;place-items:center;
  background:conic-gradient(var(--dcol,var(--gold)) calc(var(--p)*1%),rgba(255,255,255,.10) 0)}
.diag-donut>span{width:56px;height:56px;border-radius:50%;background:var(--deep2);
  display:grid;place-items:center;font-weight:900;font-size:15px;font-variant-numeric:tabular-nums}
.diag-donut.d-strong{--dcol:var(--mint)}
.diag-donut.d-mid{--dcol:var(--gold)}
.diag-donut.d-weak{--dcol:var(--coral)}
.diag-score{display:flex;flex-direction:column;gap:3px;min-width:0}
.diag-score .big{font-size:30px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.diag-score .big small{font-size:15px;font-weight:700;color:var(--soft)}
.diag-date{font-size:11.5px;color:var(--soft)}
.diag-areas{display:flex;flex-direction:column;gap:9px;margin-bottom:14px}
.diag-row{display:flex;align-items:center;gap:10px}
.diag-row .lab{width:96px;flex:0 0 auto;font-size:12.5px;font-weight:650;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.diag-row .track{flex:1;height:8px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden}
.diag-row .track>i{display:block;height:100%;border-radius:999px}
.diag-row .frac{width:40px;flex:0 0 auto;text-align:right;font-size:12px;font-weight:800;
  color:var(--soft);font-variant-numeric:tabular-nums}
.diag-start{background:rgba(255,194,75,.10);border:1px solid rgba(255,194,75,.30);
  border-radius:14px;padding:12px 13px}
.diag-start .ds-t{font-size:12px;font-weight:800;color:var(--gold);margin-bottom:8px}
.diag-chips{display:flex;flex-wrap:wrap;gap:7px}
.diag-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;
  background:rgba(255,255,255,.07);border:1px solid var(--line);border-radius:999px;padding:6px 11px}
.diag-empty{font-size:12.5px;color:var(--soft)}

/* ---- BOLETIM: grupos <details> com resumo rico + linhas de 2 andares ---- */
.rep-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:10.5px;color:var(--soft);margin:2px 2px 11px}
.rep-legend i{font-style:normal;font-weight:900}
.rep-legend .lg-ok{color:var(--mint)}
.rep-legend .lg-no{color:var(--coral)}
.rep-group{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:18px;
  margin-bottom:10px;overflow:hidden}
.rep-group[open]{border-color:rgba(255,194,75,.35)}
.rep-sum{display:flex;align-items:center;gap:11px;min-height:56px;padding:10px 14px;cursor:pointer;
  list-style:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.rep-sum::-webkit-details-marker{display:none}
.rep-gic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:19px;
  flex:0 0 auto;background:rgba(255,255,255,.06);border:1px solid var(--line)}
.rep-gtxt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.rep-gtxt b{font-size:14px}
.rep-gtxt small{font-size:11px;color:var(--soft)}
.rep-gdiag{flex:0 0 auto;font-size:10.5px;font-weight:800;border-radius:999px;padding:4px 9px;
  font-variant-numeric:tabular-nums}
.rep-gdiag.t-strong{background:rgba(55,214,176,.16);color:var(--mint)}
.rep-gdiag.t-mid{background:rgba(255,194,75,.16);color:var(--gold)}
.rep-gdiag.t-weak{background:rgba(255,143,107,.16);color:var(--coral)}
.rep-caret{flex:0 0 auto;font-size:20px;color:var(--soft);transition:transform .2s}
.rep-group[open] .rep-caret{transform:rotate(90deg);color:var(--gold)}
.rep-rows{border-top:1px solid rgba(255,255,255,.07);padding:2px 14px 8px}
.rep-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:9px 0;
  border-bottom:1px solid rgba(255,255,255,.06)}
.rep-row:last-child{border-bottom:none}
.rep-ic{flex:0 0 auto;width:26px;text-align:center;font-size:18px}
.rep-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.rep-l1{display:flex;align-items:center;gap:8px;min-width:0}
.rep-name{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rep-stars{flex:0 0 auto;font-size:11px;letter-spacing:1.5px;color:var(--gold)}
.rep-stars .off{color:rgba(255,255,255,.22)}
.rep-l2{display:flex;align-items:center;gap:8px}
.rep-bar{flex:0 0 auto;width:74px;height:6px;border-radius:999px;
  background:rgba(255,255,255,.09);overflow:hidden}
.rep-bar>i{display:block;height:100%;border-radius:999px}
.rep-pct{min-width:32px;font-size:11px;font-weight:800;color:var(--soft);font-variant-numeric:tabular-nums}
.rep-try{font-size:10.5px;color:var(--soft);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rep-diag{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  font-size:12px;font-weight:900}
.rep-diag.dg-ok{background:rgba(55,214,176,.18);color:var(--mint);border:1px solid rgba(55,214,176,.4)}
.rep-diag.dg-no{background:rgba(255,143,107,.18);color:var(--coral);border:1px solid rgba(255,143,107,.4)}
.rep-diag.dg-off{background:rgba(255,255,255,.06);color:var(--soft);border:1px solid var(--line);opacity:.7}
.rep-zero .rep-bar>i{width:0}
.rep-zero .rep-pct,.rep-zero .rep-try{opacity:.55}

/* ---- CURVA DA SEMANA: hoje em dourado, dia vazio fantasma ---- */
.wk-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.wk-t{font-size:12px;color:var(--soft);font-weight:700}
.wk-tot{font-size:11.5px;color:var(--gold);font-weight:800;font-variant-numeric:tabular-nums}
.wk-chart{display:flex;gap:7px}
.wk-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px}
.wk-val{min-height:13px;font-size:9.5px;font-weight:800;color:var(--soft);font-variant-numeric:tabular-nums}
.wk-track{width:100%;max-width:26px;height:74px;border-radius:8px;background:rgba(255,255,255,.05);
  display:flex;align-items:flex-end;overflow:hidden}
.wk-track>i{display:block;width:100%;min-height:3px;border-radius:8px 8px 0 0;
  background:linear-gradient(180deg,var(--mint),var(--mintD));transition:height .5s}
.wk-col.today .wk-track>i{background:linear-gradient(180deg,var(--gold),var(--goldD))}
.wk-col.today .wk-day{color:var(--gold);font-weight:800}
.wk-col.zero .wk-track>i{background:rgba(255,255,255,.10)}
.wk-day{font-size:10px;color:var(--soft)}
.wk-min{font-size:9.5px;color:var(--soft);opacity:.75;font-variant-numeric:tabular-nums}

/* botão de OUVIR nos itens de escuta do diagnóstico/simulado (fônica) —
   grande e óbvio: a palavra é a própria questão */
.ft-listen{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;
  min-height:58px;margin:2px 0 10px;font-size:15.5px;font-weight:800;color:#3A2600;
  background:linear-gradient(180deg,var(--gold),var(--goldD));border-radius:15px;
  box-shadow:0 8px 20px -8px rgba(233,163,36,.6)}
.ft-listen:active{transform:scale(.97)}
.ft-listen.playing{box-shadow:0 0 0 4px rgba(255,194,75,.35)}

/* ===== DICA (andaime) + FEEDBACK CORRETIVO (psicopedagógico) ===== */
.hintbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  min-height:48px;margin-top:14px;background:rgba(127,197,255,.12);
  border:1px solid rgba(127,197,255,.32);border-radius:14px;color:#9FD2FF;
  font-weight:750;font-size:14px}
.hintbtn:active{transform:scale(.98)}
.hintbtn:disabled{opacity:.6}
.hintbtn.hidden{display:none!important}
.hintbox{background:rgba(127,197,255,.10);border:1px solid rgba(127,197,255,.30);
  border-left:3px solid #4FA6E8;border-radius:12px;padding:11px 13px;margin-top:10px;
  font-size:14px;line-height:1.5;animation:fade .25s}
.hintbox.hidden{display:none!important}
.feedback .praise{font-size:12.5px;color:var(--mint);font-weight:700;margin:2px 0 6px}
.feedback .whywrong{background:rgba(255,194,75,.12);border-radius:10px;padding:9px 11px;
  margin:4px 0 8px;font-size:14px;font-weight:650;line-height:1.45;color:#FFE6AE}

/* ===== áudio PT nas opções + comemoração de subir de nível ===== */
.opt .saypt{margin-left:auto;font-size:14px;opacity:.75;padding:0 4px}
.opt .say{font-size:15px;opacity:.6;padding:0 2px}
.opt .saypt + .say{margin-left:4px}
.levelup{margin-top:8px;background:linear-gradient(180deg,rgba(255,194,75,.22),rgba(233,163,36,.14));
  border:1px solid rgba(255,194,75,.45);border-radius:12px;padding:9px 12px;
  font-size:14px;font-weight:800;color:var(--gold);text-align:center;animation:pop .4s}
.levelup b{color:#FFE6AE}

/* ===== segunda tentativa (P1) ===== */
.retry-row{display:flex;gap:9px;margin-top:14px}
.retry-row.hidden{display:none!important}
.retry-row .cta{margin-top:0;flex:1;font-size:14px;padding:13px 8px}
#ex-retry{background:rgba(55,214,176,.14);border-color:rgba(55,214,176,.34);color:var(--mint)}

/* ============================================================
   MULTI-FAMÍLIA no login: cartões dos avós + switch crianças⇄avós
   ============================================================ */
/* cartões dos avós — cobrem os cartões das crianças (colados na home.jpg).
   Mesma posição dos hotspots, um pouco maiores pra cobrir a moldura toda. */
.gp-card{position:absolute;top:45%;height:30%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2%;pointer-events:none;
  border-radius:6%/4.5%;box-shadow:0 8px 22px -8px rgba(60,30,90,.4);z-index:3}
.gp-card.hidden{display:none}
.gp-left{left:5%;width:44%;background:linear-gradient(180deg,#FBE3EF,#F6C9DE)}
.gp-right{left:51%;width:44%;background:linear-gradient(180deg,#E7E0FA,#D3C6F4)}
.gp-photo{width:56%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;
  font-size:min(13vw,58px);background:#fff;overflow:hidden;
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.9),0 4px 10px -4px rgba(0,0,0,.3)}
.gp-photo img{width:100%;height:100%;object-fit:cover}
.gp-ribbon{font-weight:900;font-size:min(5.5vw,24px);color:#E0559B;
  text-shadow:0 1px 0 #fff;letter-spacing:.3px}
.gp-ribbon.gp-purple{color:#7A4FE3}
.gp-grade{font-size:min(3.4vw,15px);font-weight:800;color:#C23E86;
  background:rgba(255,255,255,.75);border-radius:999px;padding:1% 6%}
.gp-grade.gp-grade-purple{color:#6A43C8}

/* SWITCH crianças ⇄ avós (estilo do toggle do PDV) */
.fam-switch{position:absolute;left:50%;top:88.6%;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:2px;z-index:5;
  background:rgba(74,46,158,.92);border:2px solid rgba(255,194,75,.85);
  border-radius:999px;padding:4px;box-shadow:0 8px 22px -8px rgba(74,46,158,.7)}
.fam-switch:active{transform:translateX(-50%) scale(.97)}
.fs-seg{font-size:13px;font-weight:800;color:rgba(255,255,255,.6);
  padding:8px 15px;border-radius:999px;white-space:nowrap;transition:all .18s}
.fs-seg.on{background:linear-gradient(180deg,var(--gold),var(--goldD));color:#3A2600;
  box-shadow:0 3px 8px -3px rgba(233,163,36,.8)}
@media (max-width:400px){ .fs-seg{font-size:12px;padding:7px 12px} }
