/* ============================================================
   SÓ 10 — Design System "Ascensão"
   Base clara · momentos escuros motivacionais · cor de faixa como acento
   ============================================================ */

@font-face{
  font-family:'Manrope';
  src:url('../fonts/manrope-var.woff2') format('woff2-variations'),
      url('../fonts/manrope-var.woff2') format('woff2');
  font-weight:200 800; font-style:normal; font-display:swap;
}

:root{
  /* tinta e superfícies */
  --ink:#23272E; --ink-soft:#565C64; --muted:#8A8F98;
  --paper:#F5F4F1; --surface:#FFFFFF; --line:#EAE7E1;
  --night:#1B1F24; --night-2:#2A3037;
  /* marca */
  --orange:#E8651E; --orange-deep:#C24E12; --orange-soft:#FCEEE3;
  /* status */
  --ok:#2E8B3D; --warn:#C98A14; --err:#D24545;
  /* faixas (sistema de cor que é a assinatura do Só 10) */
  --b-branca:#D9D9D9; --b-amarela:#F2B705; --b-laranja:#E8651E; --b-verde:#2E8B3D;
  --b-azul:#1A6FD4; --b-roxa:#6A3FB5; --b-marrom:#7A4B25; --b-preta:#23272E;
  /* forma */
  --r-sm:10px; --r:14px; --r-lg:18px;
  --shadow:0 1px 2px rgba(20,25,35,.05), 0 8px 24px rgba(20,25,35,.06);
  --shadow-sm:0 1px 2px rgba(20,25,35,.06);
  --maxw:540px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-size:16px; line-height:1.5; font-weight:500;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  padding-bottom:84px;
}
a{color:var(--orange-deep); text-decoration:none}
h1,h2,h3{margin:0 0 .5em; font-weight:800; letter-spacing:-.02em; line-height:1.18}
h1{font-size:clamp(22px,5.5vw,27px)}
h2{font-size:18px; font-weight:700}
p{margin:0 0 .8em}
.muted{color:var(--muted)}
.center{text-align:center}
.num{font-variant-numeric:tabular-nums}

/* eyebrow / cabeçalho de seção */
.eyebrow{font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:var(--orange-deep)}
.sec-head{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px}
.sec-head h2{margin:0}
.sec-head a{font-size:14px; font-weight:700}

/* ---- Layout ---- */
.container{max-width:var(--maxw); margin:0 auto; padding:16px}
.card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow); padding:20px; margin-bottom:16px;
}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:10px}
.grid2 .field{margin-bottom:6px}

/* ---- Topbar ---- */
.topbar{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(255,255,255,.86); backdrop-filter:saturate(1.4) blur(8px);
  border-bottom:1px solid var(--line);
  padding:11px 16px; padding-top:calc(11px + env(safe-area-inset-top));
}
.topbar__brand{display:flex; align-items:center; gap:9px; font-weight:800; color:var(--ink); letter-spacing:-.02em}
.brand__num{
  display:grid; place-items:center; width:30px; height:30px; border-radius:9px;
  background:var(--orange); color:#fff; font-size:15px; font-weight:800;
  box-shadow:0 2px 6px rgba(232,101,30,.35);
}
.brand__name{font-size:17px}
.topbar__user{display:flex; align-items:center; gap:10px}
.topbar__avatar{
  width:34px; height:34px; border-radius:50%; background:var(--night); color:#fff;
  display:grid; place-items:center; font-weight:700; font-size:15px;
}

/* ---- Botões ---- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  width:100%; padding:14px 18px; border:none; border-radius:var(--r);
  background:var(--orange); color:#fff; font-family:inherit; font-weight:700; font-size:15.5px;
  cursor:pointer; transition:transform .08s ease, filter .15s ease, box-shadow .15s ease;
  box-shadow:0 2px 8px rgba(232,101,30,.28);
}
.btn:hover{filter:brightness(1.03)}
.btn:active{transform:translateY(1px)}
.btn--dark{background:var(--night); box-shadow:0 2px 10px rgba(20,25,35,.22)}
.btn--ghost{background:var(--surface); color:var(--ink); border:1px solid var(--line); box-shadow:none}
.btn--google{background:var(--surface); color:var(--ink); border:1px solid var(--line); box-shadow:none; font-weight:600}

/* ---- Formulários ---- */
.field{margin-bottom:14px}
.field label{display:block; font-size:13.5px; font-weight:700; color:var(--ink-soft); margin-bottom:6px}
.field input,.field select,.field textarea{
  width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:var(--r);
  font-family:inherit; font-size:16px; background:var(--surface); color:var(--ink); transition:border-color .12s, box-shadow .12s;
}
.field textarea{resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--orange); box-shadow:0 0 0 3px rgba(232,101,30,.16);
}
.divider{display:flex; align-items:center; gap:10px; color:var(--muted); margin:16px 0; font-size:13.5px; font-weight:600}
.divider::before,.divider::after{content:""; flex:1; height:1px; background:var(--line)}

/* ---- Ver senha ---- */
.pwd-wrap{position:relative}
.pwd-wrap input{padding-right:48px}
.pwd-toggle{position:absolute; top:0; right:0; height:100%; width:46px; display:grid; place-items:center;
  background:none; border:none; padding:0; color:var(--muted); cursor:pointer}
.pwd-toggle:active{color:var(--orange-deep)}
.pwd-toggle svg{width:21px; height:21px; display:block}

/* ---- Flash ---- */
.flash{padding:12px 14px 12px 16px; border-radius:var(--r); margin-bottom:14px; font-size:14px; font-weight:600;
  border:1px solid; border-left-width:4px}
.flash--erro{background:#fdecec; border-color:#f0c4c4; color:#a32a2a}
.flash--ok{background:#eaf6ec; border-color:#c2e3c9; color:#226b32}
.flash--info{background:#fcf3e6; border-color:#f0d8af; color:#8a6212}

/* ---- Badges / tags ---- */
.badge{font-size:11px; font-weight:800; padding:3px 9px; border-radius:999px; letter-spacing:.02em}
.badge--premium{background:var(--orange); color:#fff}
.tag{font-size:11px; font-weight:800; padding:3px 9px; border-radius:999px; background:#eef0f2; color:var(--ink-soft)}
.tag--alta{background:#fce7e3; color:#b23b1e}
.tag--media{background:#fcf1dd; color:#9a6a12}
.tag--baixa{background:#e7f3ea; color:#2c7a3e}

/* ---- Banner motivacional (momento escuro) ---- */
.banner-night{
  position:relative; overflow:hidden; background:var(--night); color:#fff;
  border-radius:var(--r-lg); padding:20px 22px; margin-bottom:16px;
}
.banner-night::after{
  content:""; position:absolute; right:-40px; top:-40px; width:160px; height:160px;
  background:radial-gradient(circle, rgba(232,101,30,.42), transparent 65%);
}
.banner-night .eyebrow{color:var(--orange)}
.banner-night h2{color:#fff; margin:4px 0 2px}
.banner-night p{color:#c9ccd1; margin:0; font-size:14px}

/* ---- Stat cards ---- */
.stats{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:4px}
.stat{background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:13px 15px; box-shadow:var(--shadow-sm)}
.stat__num{font-size:25px; font-weight:800; letter-spacing:-.02em; line-height:1.05; font-variant-numeric:tabular-nums}
.stat__num--orange{color:var(--orange-deep)}
.stat__label{font-size:12px; color:var(--muted); font-weight:600; margin-top:3px}

/* ---- Barra de progresso ---- */
.bar{height:9px; background:#edeef0; border-radius:999px; overflow:hidden}
.bar__fill{height:100%; background:var(--orange); border-radius:999px; transition:width .4s ease}

/* ---- FAIXA-PROGRESSO (assinatura) ---- */
.faixa-prog{display:flex; align-items:center; gap:14px}
.faixa-knot{
  position:relative; width:46px; height:46px; border-radius:12px; flex:none;
  display:grid; place-items:center; color:#fff; font-weight:800; font-size:18px;
  box-shadow:inset 0 -6px 12px rgba(0,0,0,.18), 0 3px 8px rgba(0,0,0,.12);
}
.faixa-knot::before{content:""; position:absolute; left:0; right:0; top:50%; transform:translateY(-50%);
  height:9px; background:rgba(0,0,0,.18)}
.faixa-prog__body{flex:1; min-width:0}
.faixa-prog__name{font-weight:800; letter-spacing:-.01em}
.faixa-prog__hint{font-size:12.5px; color:var(--muted); margin:2px 0 6px}
.faixa-track{height:8px; background:#edeef0; border-radius:999px; overflow:hidden}
.faixa-track__fill{height:100%; border-radius:999px; background:linear-gradient(90deg,var(--orange),var(--b-amarela)); transition:width .5s ease}

/* ---- Linha meta x realizado ---- */
.metarow{display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); font-size:14px}
.metarow:last-child{border-bottom:none}
.metarow__name{flex:1}
.metarow__pct{font-weight:800; width:48px; text-align:right; font-variant-numeric:tabular-nums}
.ok{color:var(--ok)} .warn{color:var(--warn)}

/* ---- Mini barras semanais ---- */
.weekbars{display:flex; align-items:flex-end; gap:7px; height:84px; margin-top:8px}
.weekbars__col{flex:1; display:flex; flex-direction:column; align-items:center; gap:5px}
.weekbars__bar{width:100%; background:linear-gradient(180deg,var(--orange),#f0894a); border-radius:7px 7px 3px 3px; min-height:4px; transition:height .4s ease}
.weekbars__lbl{font-size:10px; color:var(--muted); font-weight:600; text-transform:capitalize}

/* ---- Hub ---- */
.hub{display:grid; gap:10px}
.hub__item{display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:14px 16px; color:var(--ink);
  box-shadow:var(--shadow-sm); transition:transform .1s ease, box-shadow .15s ease}
.hub__item:hover{transform:translateY(-1px); box-shadow:var(--shadow)}
.hub__item--soon{opacity:.5; box-shadow:none}
.hub__ico{font-size:19px; margin-right:9px}
.hub__arrow{color:var(--muted); font-size:20px}

/* ---- Pilares ---- */
.pilar{display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--line)}
.pilar:last-child{border-bottom:none}
.pilar__name{flex:1; font-size:14px; font-weight:700}
.pilar input[type=range]{flex:1; accent-color:var(--orange); height:22px}
.pilar__val{width:28px; text-align:center; font-weight:800; color:var(--orange-deep); font-variant-numeric:tabular-nums}

/* ---- Listas (ciclo / admin) ---- */
.row{display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:none}
.row__main{flex:1; min-width:0}
.row__sub{font-size:12.5px; color:var(--muted)}
.iconbtn{background:none; border:none; cursor:pointer; font-size:18px; color:var(--muted); padding:5px; border-radius:8px; transition:background .12s}
.iconbtn:hover{background:#f1f0ec; color:var(--ink)}

/* ---- Abas de ciclo ---- */
.ciclotabs{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px}
.ciclotab{padding:8px 15px; border:1px solid var(--line); border-radius:999px; font-size:14px; font-weight:700; color:var(--ink-soft); background:var(--surface)}
.ciclotab--on{background:var(--orange); border-color:var(--orange); color:#fff; box-shadow:0 2px 8px rgba(232,101,30,.3)}
code{background:#eef0f2; padding:1px 6px; border-radius:6px; font-size:13px; font-family:ui-monospace,Menlo,Consolas,monospace}

/* ---- Tira de dias (calendário do ciclo) ---- */
.daystrip{display:flex; gap:8px; overflow-x:auto; padding:4px 2px 8px; -webkit-overflow-scrolling:touch; scrollbar-width:thin}
.dayitem{flex:0 0 auto; width:50px; display:flex; flex-direction:column; align-items:center; gap:2px;
  padding:9px 0 7px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink-soft)}
.dayitem__wd{font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em}
.dayitem__dn{font-size:18px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums}
.dayitem__dot{width:6px; height:6px; border-radius:50%; background:transparent}
.dayitem__dot.is-has{background:var(--orange)}
.dayitem__dot.is-done{background:var(--ok)}
.dayitem--today{border-color:var(--orange); box-shadow:0 0 0 2px rgba(232,101,30,.16)}
.dayitem--on{background:var(--night); border-color:var(--night); color:#fff}
.dayitem--on .dayitem__wd{color:#c9ccd1}

/* ---- Edital: seletores de status/confiança ---- */
.edital-status,.edital-conf{padding:7px 10px; border:1px solid var(--line); border-radius:9px; font-size:13px; font-weight:700; background:var(--surface); color:var(--ink-soft); font-family:inherit}
.edital-status.st-estudando{border-color:#e7c98a; color:#9a6a12; background:#fcf3e6}
.edital-status.st-estudado{border-color:#bfe3c8; color:#226b32; background:#eaf6ec}
.edital-status.st-revisado{border-color:#bcd6f5; color:#1a5fb4; background:#e9f1fc}
.edital-conf{color:var(--muted); font-weight:600}

/* ---- Recado do mentor (card no painel) ---- */
.card--recado{border:1px solid var(--orange); background:linear-gradient(180deg,#fff7f0,#fff); box-shadow:0 6px 22px rgba(232,101,30,.12)}
.card--recado .eyebrow{color:var(--orange-deep)}

/* ---- Caderno de Erros ---- */
.pager{display:flex; gap:6px; justify-content:center; align-items:center; margin-top:16px; flex-wrap:wrap}
.pager a{padding:7px 12px; border:1px solid var(--line); border-radius:9px; font-weight:700; font-size:14px; color:var(--ink-soft); background:var(--surface)}
.pager .is-on{background:var(--orange); border-color:var(--orange); color:#fff}
.pager .is-off{opacity:.45; pointer-events:none}
.pick{display:flex; align-items:center; gap:9px; padding:9px 12px; border:1px solid var(--line); border-radius:9px; font-weight:600; font-size:14px; cursor:pointer}
.pick input{width:17px; height:17px}
.etag{display:inline-block; font-size:11px; font-weight:800; padding:2px 9px; border-radius:999px}
.etag--conteudo{background:#eef1f4; color:#54606e}
.etag--interpretacao{background:#e9f1fc; color:#1a5fb4}
.etag--desatencao{background:#fcf3e6; color:#9a6a12}
.etag--chute{background:#fdecea; color:#b3261e}
.revchips{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; align-items:stretch}
.revchip{display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; min-width:56px;
  font-size:12.5px; font-weight:700; padding:6px 11px; border-radius:12px; border:1px solid var(--line);
  background:var(--surface); color:var(--ink-soft); cursor:pointer; font-family:inherit; line-height:1.1}
.revchip__d{font-weight:800}
.revchip__s{font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.02em; opacity:.9}
.revchip--done{background:#eaf6ec; border-color:#bfe3c8; color:#226b32}
.revchip--late{background:#fdecea; border-color:#f3c6c0; color:#b3261e}
.revchip--today{background:#fff0e6; border-color:var(--orange); color:var(--orange-deep)}
.revchip--soon{background:#fcf3e6; border-color:#ecc98a; color:#9a6a12}
.revchip--future{background:var(--surface); border-color:var(--line); color:var(--muted)}
.revchip--lock{cursor:default; opacity:.92}
.revchips details>summary{list-style:none}
.revchips details>summary::-webkit-details-marker{display:none}

/* ---- Modal de confirmação (substitui o confirm nativo) ---- */
.cmodal-ov{position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px;
  background:rgba(20,22,26,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  opacity:0; visibility:hidden; transition:opacity .18s ease, visibility .18s ease}
.cmodal-ov.is-open{opacity:1; visibility:visible}
.cmodal{width:100%; max-width:380px; background:var(--surface); border-radius:18px; padding:24px 22px 20px; text-align:center;
  box-shadow:0 24px 60px rgba(20,22,26,.32); transform:translateY(12px) scale(.96);
  transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.cmodal-ov.is-open .cmodal{transform:none}
.cmodal__icon{width:54px; height:54px; margin:0 auto 14px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#fdecea; color:#d4380d}
.cmodal__icon svg{width:26px; height:26px}
.cmodal__msg{font-size:16px; font-weight:700; color:var(--ink); line-height:1.4; margin-bottom:20px}
.cmodal__actions{display:flex; gap:10px}
.cmodal__btn{flex:1; padding:13px 16px; border-radius:12px; font-weight:800; font-size:15px; cursor:pointer; border:1px solid transparent; font-family:inherit; transition:filter .12s, background .12s}
.cmodal__btn--ghost{background:var(--surface); border-color:var(--line); color:var(--ink-soft)}
.cmodal__btn--ghost:hover{background:var(--paper)}
.cmodal__btn--go{background:var(--orange); color:#fff}
.cmodal__btn--go:hover{filter:brightness(.95)}
@media (max-width:480px){
  .cmodal-ov{align-items:flex-end; padding:0}
  .cmodal{max-width:none; border-radius:20px 20px 0 0; padding:26px 20px calc(26px + env(safe-area-inset-bottom)); transform:translateY(100%)}
  .cmodal-ov.is-open .cmodal{transform:none}
}

/* ---- Flashcards ---- */
.fc-progress{font-size:13px; color:var(--muted); font-weight:800; text-align:center; margin-bottom:12px; letter-spacing:.02em}
.fc-card{min-height:170px; display:flex; flex-direction:column; justify-content:center; text-align:center; padding:26px 22px; border:1px solid var(--line); border-radius:16px; background:var(--paper)}
.fc-q{font-size:18px; font-weight:800; white-space:pre-line; line-height:1.4}
.fc-a{margin-top:16px; padding-top:16px; border-top:1px dashed var(--line); font-size:16px; font-weight:600; white-space:pre-line; line-height:1.45; color:var(--ink-soft)}
.fc-grade{display:flex; gap:10px}
.fc-grade .btn{flex:1}
.btn--ok{background:#1f9d57; color:#fff}
.btn--ok:hover{filter:brightness(.96)}
.btn--err{background:#fdecea; color:#b3261e; border:1px solid #f3c6c0}
.caixa-badge{display:inline-block; font-size:11px; font-weight:800; padding:3px 9px; border-radius:999px; background:#eef1f4; color:#54606e}
.caixa--1{background:#fdecea; color:#b3261e}
.caixa--2{background:#fcf3e6; color:#9a6a12}
.caixa--3{background:#eef1f4; color:#54606e}
.caixa--4{background:#e9f1fc; color:#1a5fb4}
.caixa--5{background:#eaf6ec; color:#226b32}

/* ---- Resumos: markdown renderizado ---- */
.md h2{font-size:18px; font-weight:800; margin:14px 0 6px}
.md h3{font-size:16px; font-weight:800; margin:12px 0 5px}
.md h4{font-size:14.5px; font-weight:800; margin:10px 0 4px; color:var(--ink-soft)}
.md p{margin:0 0 9px; line-height:1.55}
.md ul{margin:0 0 9px; padding-left:20px}
.md li{margin:2px 0; line-height:1.5}
.md strong{font-weight:800}
.md > :first-child{margin-top:0}
.md > :last-child{margin-bottom:0}

/* ---- Mapas mentais (árvore) ---- */
.mapa ul{list-style:none; margin:0; padding-left:0}
.mapa li{position:relative}
.mapa li > ul{margin-left:12px; padding-left:16px; border-left:2px solid var(--line)}
.mapa__node{display:inline-block; margin:3px 0; padding:5px 12px; border-radius:9px; font-size:14px; font-weight:700; line-height:1.3}
.mapa__l0{background:var(--orange); color:#fff; font-size:15px}
.mapa__l1{background:#fcf0e6; color:var(--orange-deep)}
.mapa__l2{background:#eef1f4; color:#46535f}
.mapa__l3{background:#f1f3f5; color:#6b7682}
.mapa__l4{background:#f5f4f1; color:#8a949e}

/* ---- Conquistas (faixas, medalhas, ranking) ---- */
.faixa-knot--sm{width:30px; height:30px; font-size:13px; border-radius:9px; flex:0 0 auto; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800}
.belt-ladder{margin-top:14px; display:flex; flex-direction:column; gap:5px}
.belt-row{display:flex; align-items:center; gap:10px; padding:6px 8px; border-radius:10px; opacity:.45}
.belt-row.is-on{opacity:1}
.belt-row.is-cur{background:#fcf0e6; opacity:1}
.belt-row__nm{font-weight:700; flex:1}
.belt-row__rq{font-size:13px; font-weight:700; color:var(--muted)}
.belt-row.is-on .belt-row__rq{color:var(--ok)}

.medals{display:grid; grid-template-columns:repeat(auto-fill, minmax(104px,1fr)); gap:10px; margin-top:12px}
.medal{text-align:center; padding:14px 8px; border:1px solid var(--line); border-radius:14px; background:var(--paper); opacity:.6}
.medal.is-on{opacity:1; background:#fff; border-color:#f0d9c4; box-shadow:0 4px 14px rgba(232,101,30,.08)}
.medal__ic{font-size:30px; line-height:1; filter:grayscale(1)}
.medal.is-on .medal__ic{filter:none}
.medal__nm{font-weight:800; font-size:13px; margin-top:6px}
.medal__hint{font-size:11px; color:var(--muted); margin-top:3px; line-height:1.3}
.medal__prog{font-size:11px; font-weight:800; color:var(--orange-deep); margin-top:4px}

.seg{display:inline-flex; background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:3px}
.seg a{font-size:13px; font-weight:800; padding:5px 12px; border-radius:999px; color:var(--muted); text-decoration:none}
.seg a.is-on{background:var(--orange); color:#fff}

.rank-row{display:flex; align-items:center; gap:10px; padding:8px 6px; border-bottom:1px solid var(--line)}
.rank-row:last-child{border-bottom:0}
.rank-row--me{background:#fcf0e6; border-radius:10px; border-bottom:0}
.rank-pos{width:26px; text-align:center; font-weight:800; color:var(--muted); flex:0 0 auto}
.rank-pos--1{color:#E8A400}.rank-pos--2{color:#9aa3ab}.rank-pos--3{color:#b5742a}
.rank-name{flex:1; font-weight:700}
.rank-xp{font-weight:800; font-size:14px; color:var(--ink)}

.banner-soft{background:#fcf0e6; border:1px solid #f0d9c4; border-radius:12px; padding:10px 12px; font-size:14px; margin-bottom:10px}

/* ---- Concursos ---- */
.conc__top{display:flex; align-items:flex-start; gap:10px}
.conc__main{flex:1; display:block}
.conc__name{font-weight:800; font-size:15px; line-height:1.3}
.conc__hint{margin-top:8px; font-size:13px; font-weight:700; color:var(--orange-deep)}
.cbadges{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px}
.cbadge{font-size:12px; font-weight:700; padding:3px 9px; border-radius:999px; background:#eef1f4; color:#46535f}
.cbadge--aberto{background:#eaf6ec; color:#226b32}
.cbadge--previsto{background:#fcf3e6; color:#9a6a12}
.cbadge--encerrado{background:#f0f1f3; color:#8a949e}
.star{background:none; border:0; font-size:24px; line-height:1; color:#c9ccd1; cursor:pointer; padding:0 2px}
.star.is-on{color:#E8A400}
.filters{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.filters select{padding:9px 10px; border:1px solid var(--line); border-radius:10px; background:#fff; font-family:inherit; font-size:14px; font-weight:600}
.chk{display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:700; color:var(--ink-soft)}
.chips{display:flex; flex-wrap:wrap; gap:7px}
.chip{font-size:13px; font-weight:700; padding:5px 11px; border-radius:999px; background:var(--paper); border:1px solid var(--line); color:var(--ink-soft)}
.cinfo{display:grid; grid-template-columns:auto 1fr; gap:7px 16px; align-items:baseline}
.cinfo__k{font-size:13px; font-weight:700; color:var(--muted)}
.cinfo__v{font-weight:700}

/* ---- Comunidade ---- */
.pbadge{display:inline-block; font-size:11px; font-weight:800; padding:3px 10px; border-radius:999px; letter-spacing:.02em}
.pbadge--dica{background:#fcf3e6; color:#9a6a12}
.pbadge--tese{background:#eaf0fb; color:#2c5599}
.pbadge--sumula{background:#eaf6ec; color:#226b32}
.pbadge--fix{background:#fdeede; color:#b5560f}
.post__title{font-weight:800; font-size:16px; line-height:1.3; margin-bottom:5px}
.post__snip{color:var(--ink-soft); font-size:14px; line-height:1.45}
.post__foot{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px}
.post__meta{font-size:12.5px; color:var(--muted); font-weight:600}
.util-btn{background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:7px 14px; font-weight:800; font-size:13px; color:var(--ink-soft); cursor:pointer; font-family:inherit}
.util-btn.on{background:#eaf6ec; border-color:#bfe3c6; color:#226b32}

/* ---- Tabbar ---- */
.tabbar{
  position:fixed; left:0; right:0; bottom:0; z-index:30;
  display:flex; background:rgba(255,255,255,.92); backdrop-filter:blur(10px);
  border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom);
}
.tabbar__item{
  position:relative; flex:1; display:flex; flex-direction:column; align-items:center; gap:3px;
  padding:9px 0 8px; font-size:10.5px; color:var(--muted); font-weight:700;
}
.tabbar__item svg{width:23px; height:23px; stroke-width:2}
.tabbar__item.is-active{color:var(--orange-deep)}
.tabbar__item.is-active::before{content:""; position:absolute; top:0; width:26px; height:3px; border-radius:0 0 3px 3px; background:var(--orange)}

/* ---- Acessibilidade ---- */
:focus-visible{outline:3px solid rgba(232,101,30,.45); outline-offset:2px; border-radius:6px}
@media (prefers-reduced-motion:reduce){*{transition:none !important; animation:none !important}}

/* ---- Sidebar base (escondida no mobile) ---- */
.sidebar{display:none}

/* ---- Desktop: menu lateral à esquerda ---- */
@media(min-width:900px){
  body{padding-bottom:0}
  .has-side{padding-left:248px}
  .has-side .topbar{display:none}
  .has-side .tabbar{display:none}
  .container{max-width:860px; margin:0 auto; padding:30px}
  .stats{grid-template-columns:repeat(4,1fr)}
  .grid2{grid-template-columns:repeat(3,1fr)}

  .sidebar{display:flex; flex-direction:column; position:fixed; top:0; left:0; bottom:0; width:248px; z-index:40;
    background:var(--surface); border-right:1px solid var(--line); padding:18px 14px}
  .sidebar__brand{display:flex; align-items:center; gap:9px; font-weight:800; color:var(--ink); letter-spacing:-.02em; padding:6px 10px 16px}
  .sidebar__brand .brand__name{font-size:18px}
  .sidebar__nav{display:flex; flex-direction:column; gap:4px; flex:1}
  .sidebar__item{display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:11px; color:var(--ink-soft); font-weight:700; font-size:14.5px; transition:background .12s, color .12s}
  .sidebar__item svg{width:21px; height:21px; stroke-width:2; flex:none}
  .sidebar__item:hover{background:#f4f2ee; color:var(--ink)}
  .sidebar__item.is-active{background:var(--orange-soft); color:var(--orange-deep)}
  .sidebar__user{display:flex; align-items:center; gap:10px; padding:11px 12px; margin-top:8px; border-top:1px solid var(--line); color:var(--ink)}
}

/* ---- Premium / gating ---- */
.lock{background:linear-gradient(135deg,#fff,#fdf3ea); border:1px solid #f0d9c4; border-radius:18px; padding:24px 20px; text-align:center; margin-bottom:12px}
.lock__ic{font-size:34px}
.lock__t{font-weight:900; font-size:18px; margin:6px 0 4px}
.lock__d{color:var(--ink-soft); font-size:14px; line-height:1.5; margin:0 auto 14px; max-width:420px}
.premium-badge{display:inline-block; background:linear-gradient(135deg,#E8651E,#C24E12); color:#fff; font-size:11px; font-weight:800; padding:3px 11px; border-radius:999px; letter-spacing:.04em}
.saldo-box{display:flex; align-items:baseline; gap:10px; margin:6px 0 14px}
.saldo-num{font-size:38px; font-weight:900; letter-spacing:-.02em; color:var(--orange-deep)}
.saldo-lbl{font-weight:700; color:var(--muted)}
.ledger{display:flex; flex-direction:column}
.ledger__row{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid var(--line)}
.ledger__row:last-child{border-bottom:0}
.ledger__mot{font-weight:700; font-size:14px}
.ledger__date{color:var(--muted); font-weight:600; font-size:12px; margin-left:4px}
.ledger__delta{font-weight:900; font-size:15px}
.ledger__delta.pos{color:#226b32}
.ledger__delta.neg{color:#b3261e}
.perk{display:flex; gap:12px; align-items:flex-start; padding:11px 0; border-bottom:1px solid var(--line); font-size:22px}
.perk:last-child{border-bottom:0}
.perk div{font-size:15px}
.perk b{display:block}
.perk span{color:var(--ink-soft); font-size:13.5px}

/* ---- Central de Parceiros ---- */
.parc__head{display:flex; align-items:center; gap:12px}
.parc__logo{width:48px; height:48px; flex:0 0 auto; border-radius:12px; background:var(--paper); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:24px; overflow:hidden}
.parc__logo img{width:100%; height:100%; object-fit:cover}
.parc__nome{font-weight:800; font-size:16px}
.parc__cat{font-size:12.5px; color:var(--muted); font-weight:700; margin-top:2px}
.parc__desc{margin-top:10px; font-size:14px; color:var(--ink-soft); line-height:1.5}
.parc__foot{display:flex; align-items:center; gap:10px; margin-top:12px; flex-wrap:wrap}
.cupom{display:inline-block; font-weight:800; font-size:13px; padding:6px 12px; border-radius:10px; background:#fcf3e6; color:#9a6a12; border:1px dashed #e8c79a; letter-spacing:.02em}

/* ---- Meu Planner (board estilo Trello) ---- */
.board{display:flex; gap:12px; overflow-x:auto; padding-bottom:20px; -webkit-overflow-scrolling:touch; scroll-snap-type:x proximity}
.col{flex:0 0 86%; max-width:300px; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:10px; display:flex; flex-direction:column; scroll-snap-align:start}
@media(min-width:700px){ .col{flex:0 0 288px} }
.col__head{display:flex; align-items:center; gap:8px; padding:2px 2px 10px}
.col__title{font-weight:900; font-size:15px; flex:1; word-break:break-word}
.col__count{font-size:12px; font-weight:800; color:var(--muted); background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:1px 8px}
.col__menu{position:relative}
.col__menu summary{list-style:none; cursor:pointer; font-weight:900; color:var(--muted); padding:0 4px}
.col__menu summary::-webkit-details-marker{display:none}
.col__pop{position:absolute; right:0; top:24px; z-index:10; background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:0 10px 30px rgba(20,22,26,.16); padding:10px; width:210px}
.col__cards{display:flex; flex-direction:column; gap:8px; min-height:30px; flex:1}
.col__cards.is-over{outline:2px dashed var(--orange); outline-offset:2px; border-radius:10px}
.pcard{display:flex; align-items:stretch; gap:9px; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:9px 10px; cursor:grab; box-shadow:0 1px 2px rgba(20,22,26,.04)}
.pcard.is-drag{opacity:.4}
.pcard.is-done{opacity:.6}
.pcard.is-done .pcard__title{text-decoration:line-through}
.pcard__bar{width:4px; border-radius:4px; flex:0 0 auto}
.pcard__body{flex:1; min-width:0}
.pcard__title{display:block; font-weight:700; font-size:14px; color:var(--ink); text-decoration:none; line-height:1.35}
.pcard__meta{display:flex; align-items:center; gap:8px; margin-top:5px}
.pcard__cat{font-size:10px}
.pcard__due{font-size:12px; font-weight:700; color:var(--muted)}
.pcard__due.is-late{color:#b3261e}
.pcard__chk{flex:0 0 auto; width:24px; height:24px; border-radius:7px; border:2px solid var(--line); background:var(--surface); color:#226b32; font-weight:900; cursor:pointer; align-self:center}
.is-done .pcard__chk{background:#eaf6ec; border-color:#bfe3c6}
.col__add input{width:100%; margin-top:8px; padding:9px 10px; border:1px dashed var(--line); border-radius:10px; background:transparent; font-family:inherit; font-size:14px}
.col__add input:focus{background:var(--surface); border-style:solid; outline:none; border-color:var(--orange)}
.col--add{background:transparent; border:1px dashed var(--line); justify-content:flex-start; min-height:64px}

/* ---- Planner: etiquetas + toggle de visão ---- */
.pview{display:flex; gap:8px; margin-bottom:14px}
.pview a{flex:1; text-align:center; padding:10px; border:1px solid var(--line); border-radius:10px; font-weight:800; font-size:14px; color:var(--ink-soft); background:var(--surface); text-decoration:none}
.pview a.on{background:var(--orange); color:#fff; border-color:var(--orange)}
.plabel{display:inline-block; font-size:11px; font-weight:800; padding:2px 9px; border-radius:6px; margin-bottom:5px; letter-spacing:.01em}

/* ---- Planner: calendário embutido ---- */
.calnav{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px}
.calnav a{font-weight:900; color:var(--orange-deep); text-decoration:none; padding:2px 12px; font-size:22px; line-height:1; border-radius:8px}
.calnav a:hover{background:var(--paper)}
.calnav b{font-weight:900; font-size:16px}
.calgrid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px}
.calwd{text-align:center; font-size:11px; font-weight:800; color:var(--muted); padding:2px 0 4px}
.calday{aspect-ratio:1/1; border:1px solid var(--line); border-radius:10px; padding:4px; display:flex; flex-direction:column; align-items:center; gap:3px; text-decoration:none; color:var(--ink); background:var(--surface); position:relative; overflow:hidden}
.calday.empty{border:0; background:transparent}
.calday.today{border-color:var(--orange); border-width:2px; padding:3px}
.calday.sel{background:#fcf0e6; border-color:var(--orange)}
.calday__n{font-size:13px; font-weight:700; margin-top:2px}
.calday.has .calday__n{font-weight:900}
.calday__dots{display:flex; gap:2px; flex-wrap:wrap; justify-content:center; max-width:100%}
.caldot{width:6px; height:6px; border-radius:50%; flex:0 0 auto}
.calday__more{position:absolute; bottom:3px; right:5px; font-size:9px; font-weight:800; color:var(--muted)}

/* ---- Planner: lista do dia ---- */
.callrow{display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink)}
.callrow:last-child{border-bottom:0}
.callrow .plabel{margin:0; flex:0 0 auto}
.callrow__t{flex:1; font-weight:700; font-size:14px}
.callrow.is-done .callrow__t{text-decoration:line-through; color:var(--muted)}
.callrow__go{color:var(--muted); font-weight:900; font-size:18px}

/* ---- Multi-módulo ---- */
.modgrid{display:flex; flex-direction:column; gap:10px; margin-top:14px}
.modcard{display:flex; flex-direction:column; align-items:flex-start; gap:4px; text-align:left; width:100%; padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--surface); cursor:pointer; font-family:inherit}
.modcard:not(.is-soon):not(.is-cur):hover{border-color:var(--orange); box-shadow:0 6px 20px rgba(232,101,30,.12)}
.modcard__emoji{font-size:26px}
.modcard__nome{font-weight:900; font-size:16px; color:var(--ink)}
.modcard__desc{font-size:13.5px; color:var(--ink-soft); line-height:1.45}
.modcard.is-soon{opacity:.65; cursor:not-allowed; background:var(--paper)}
.modcard.is-cur{border-color:#bfe3c6; background:#f4fbf5; cursor:default}
.modcard__soon{font-size:11px; font-weight:800; color:var(--muted); background:var(--surface); border:1px solid var(--line); padding:1px 8px; border-radius:999px; margin-left:4px; vertical-align:middle}
.modtag{display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:800; padding:4px 10px; border-radius:999px; text-decoration:none; line-height:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.modtag--side{margin:2px 12px 10px; align-self:flex-start; max-width:calc(100% - 24px)}
.modtag--sm{padding:5px 9px; font-size:14px; flex:0 0 auto}

/* ============ Módulo Ensino Médio ============ */
.mgreet{display:flex; align-items:center; justify-content:space-between; gap:12px}
.mchip{display:flex; flex-direction:column; align-items:center; padding:8px 14px; border-radius:14px; background:var(--paper); border:1px solid var(--line); min-width:80px}
.mchip__lbl{font-size:11px; font-weight:700; color:var(--muted); white-space:nowrap}
.mchip__val{font-size:24px; font-weight:900; line-height:1.15}
.mchip.nota--red{background:#fdecec; border-color:#f5c6c6; color:#b3261e}
.mchip.nota--yel{background:#fcf3e6; border-color:#e8c79a; color:#9a6a12}
.mchip.nota--grn{background:#eaf6ec; border-color:#bfe3c6; color:#226b32}

.matgrid{display:flex; flex-direction:column; gap:10px}
.matcard{display:flex; align-items:center; gap:12px; padding:14px; background:var(--surface); border:1px solid var(--line); border-radius:14px; text-decoration:none; color:var(--ink)}
.matcard:hover{border-color:var(--orange)}
.matcard__dot{width:12px; height:12px; border-radius:50%; flex:0 0 auto}
.matcard__main{flex:1; min-width:0}
.matcard__nome{font-weight:800; font-size:15px}
.matcard__prof{font-size:12.5px; color:var(--muted); margin-top:1px}
.matbar{height:6px; border-radius:4px; background:var(--paper); margin-top:8px; overflow:hidden}
.matbar__fill{height:100%; border-radius:4px}
.matcard__nota{font-size:24px; font-weight:900; flex:0 0 auto; min-width:46px; text-align:center; color:var(--muted)}
.matcard.nota--red .matcard__nota{color:#b3261e}
.matcard.nota--yel .matcard__nota{color:#9a6a12}
.matcard.nota--grn .matcard__nota{color:#226b32}

.notagrid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-bottom:14px}
.notafield{display:flex; flex-direction:column; gap:4px; font-size:13px; font-weight:700; color:var(--ink-soft)}
.notafield input{padding:12px; border:1px solid var(--line); border-radius:10px; font-size:18px; font-weight:800; text-align:center; font-family:inherit}
.notafield input:focus{border-color:var(--orange); outline:none}

.segbtns{display:flex; gap:8px}
.segbtn{flex:1; text-align:center; padding:11px 6px; border:1px solid var(--line); border-radius:10px; font-weight:700; font-size:14px; cursor:pointer; background:var(--surface); position:relative}
.segbtn input{position:absolute; opacity:0; pointer-events:none}
.segbtn small{display:block; color:var(--muted); font-weight:600; font-size:11px}
.segbtn:has(input:checked){border-color:var(--orange); background:#fcf0e6; color:var(--orange-deep)}

/* ---- médio: soma anual + notas por período ---- */
.matcard__sub{font-size:12px; font-weight:700; color:var(--muted); margin-top:5px}
.matcard.nota--grn .matcard__sub{color:#226b32}
.matcard__nota small{font-size:11px; font-weight:700; color:var(--muted); display:block; margin-top:-3px}
.notafield.nota--red input{border-color:#e8a3a3; background:#fdf2f2}
.notafield.nota--yel input{border-color:#e8c79a; background:#fdf8f0}
.notafield.nota--grn input{border-color:#a9d9b4; background:#f2faf4}
details.card summary::-webkit-details-marker{display:none}
details.card summary{list-style:none}

/* ---- médio: mini-cards do dashboard ---- */
.mrow2{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px}
.minicard{display:flex; flex-direction:column; gap:2px; padding:12px 14px; background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--line); border-radius:12px; text-decoration:none; color:var(--ink); min-width:0}
.minicard__lbl{font-size:11px; font-weight:800; color:var(--muted)}
.minicard__main{font-weight:800; font-size:15px; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.minicard__sub{font-size:12px; color:var(--muted); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.minicard__sub b{color:var(--orange-deep)}

/* ---- médio: tarefas ---- */
.trow{display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--line)}
.trow:last-child{border-bottom:0}
.trow__chk{flex:0 0 auto; width:24px; height:24px; border-radius:7px; border:2px solid var(--line); background:var(--surface); color:#226b32; font-weight:900; cursor:pointer}
.trow.is-done .trow__chk{background:#eaf6ec; border-color:#bfe3c6}
.trow__body{flex:1; min-width:0}
.trow__title{font-weight:700; font-size:14px}
.trow.is-done .trow__title{text-decoration:line-through; color:var(--muted)}
.trow__meta{display:flex; align-items:center; gap:8px; margin-top:4px; flex-wrap:wrap}
.trow__due{font-size:12px; font-weight:700; color:var(--muted)}
.trow__due.is-late{color:#b3261e}
.trow__del{flex:0 0 auto; width:26px; height:26px; border:0; background:transparent; color:var(--muted); font-size:14px; cursor:pointer; border-radius:6px}
.trow__del:hover{background:var(--paper); color:#b3261e}
.tchip{display:inline-block; font-size:11px; font-weight:800; padding:2px 8px; border-radius:6px}

/* ---- médio: provas ---- */
.pvlist{display:flex; flex-direction:column; gap:10px}
.pvcard{display:flex; align-items:center; gap:10px; padding:12px 14px; background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--line); border-radius:12px}
.pvcard__body{flex:1; min-width:0}
.pvcard__title{font-weight:800; font-size:15px}
.pvcard__meta{display:flex; align-items:center; gap:8px; margin-top:4px; flex-wrap:wrap; font-size:12.5px}
.pvcard__side{display:flex; align-items:center; gap:6px; flex:0 0 auto}
.pvcard__cd{font-size:12px; font-weight:800; color:var(--ink-soft); background:var(--paper); padding:4px 9px; border-radius:999px; white-space:nowrap}
.pvcard__cd.is-urg{background:#fdecec; color:#b3261e}

/* ---- médio: Meu Dia ---- */
.mday{display:flex; align-items:center; gap:12px; padding:14px; border-radius:14px; text-decoration:none; margin-bottom:16px; background:linear-gradient(135deg,#fff,#fdf3ea); border:1px solid #f0d9c4; color:var(--ink)}
.mday.is-done{background:#eaf6ec; border-color:#bfe3c6}
.mday__ic{font-size:26px; flex:0 0 auto}
.mday__body{flex:1; min-width:0}
.mday__t{font-weight:900; font-size:15px}
.mday__s{font-size:13px; color:var(--ink-soft); font-weight:600}
.mday__go{color:var(--muted); font-weight:900; font-size:20px}
.streakbox{display:flex; flex-direction:column; align-items:center; background:#fff4ec; border:1px solid #f0d9c4; border-radius:14px; padding:6px 14px; min-width:64px}
.streakbox__fire{font-size:18px; line-height:1}
.streakbox__n{font-size:22px; font-weight:900; color:var(--orange-deep); line-height:1.1}
.streakbox__lbl{font-size:11px; font-weight:700; color:var(--muted)}
.week7{display:flex; justify-content:space-between; gap:6px; margin-top:14px}
.week7__d{display:flex; flex-direction:column; align-items:center; gap:4px; flex:1}
.week7__wd{font-size:11px; font-weight:800; color:var(--muted)}
.week7__dot{width:32px; height:32px; border-radius:50%; background:var(--paper); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:15px}
.week7__dot.is-on{background:#fff4ec; border-color:#e8c79a}
.moodrow{display:flex; gap:8px}
.moodbtn{flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; padding:12px 4px; border:1px solid var(--line); border-radius:12px; cursor:pointer; background:var(--surface); position:relative}
.moodbtn input{position:absolute; opacity:0; pointer-events:none}
.moodbtn__e{font-size:24px}
.moodbtn__t{font-size:12px; font-weight:700; color:var(--muted)}
.moodbtn:has(input:checked){border-color:var(--orange); background:#fcf0e6}
.moodbtn:has(input:checked) .moodbtn__t{color:var(--orange-deep)}
.hablist{display:flex; flex-direction:column; gap:8px}
.habrow{display:flex; align-items:center; gap:12px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; cursor:pointer; background:var(--surface); position:relative}
.habrow input{position:absolute; opacity:0; pointer-events:none}
.habrow__box{width:26px; height:26px; flex:0 0 auto; border-radius:8px; border:2px solid var(--line); display:flex; align-items:center; justify-content:center; color:transparent; font-weight:900; background:var(--surface)}
.habrow__t{font-weight:700; font-size:15px}
.habrow:has(input:checked){border-color:#bfe3c6; background:#f2faf4}
.habrow:has(input:checked) .habrow__box{background:#226b32; border-color:#226b32; color:#fff}

/* ---- médio: evolução (gráfico SVG) ---- */
.evochart{width:100%; height:auto; display:block}
.evo-grid{stroke:var(--line); stroke-width:1}
.evo-meta{stroke:#E8651E; stroke-width:1; stroke-dasharray:4 3; opacity:.5}
.evo-ylab{fill:var(--muted); font-size:9px; font-weight:700; text-anchor:end}
.evo-xlab{fill:var(--muted); font-size:9px; font-weight:700; text-anchor:middle}
.evo-line{fill:none; stroke:#E8651E; stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round}
.evo-dot{fill:#fff; stroke:#E8651E; stroke-width:2.5}
.evo-val{fill:var(--ink); font-size:10px; font-weight:800; text-anchor:middle}
.evomat{display:flex; flex-direction:column; gap:14px}
.evorow__head{display:flex; align-items:center; gap:8px; margin-bottom:6px}
.evorow__nome{font-weight:800; font-size:14px}
.evorow__tr{margin-left:auto; font-weight:900; font-size:16px}
.evorow__tr.is-up{color:#226b32}
.evorow__tr.is-down{color:#b3261e}
.evorow__tr.is-flat{color:var(--muted)}
.evobars{display:flex; gap:6px; align-items:flex-end; height:56px}
.evobar{flex:1; height:100%; background:var(--paper); border-radius:6px; display:flex; align-items:flex-end; overflow:hidden}
.evobar__fill{width:100%; border-radius:6px}
.evobar__fill.is-grn{background:#4a9e5c}
.evobar__fill.is-red{background:#d66a63}
.evobar__fill.is-none{background:transparent}

/* ---- médio: medalhas ---- */
.medgrid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px}
.medcard{display:flex; flex-direction:column; align-items:center; text-align:center; gap:3px; padding:14px 10px; border:1px solid var(--line); border-radius:14px; background:var(--paper); opacity:.55; filter:grayscale(1)}
.medcard.is-on{opacity:1; filter:none; background:linear-gradient(135deg,#fff,#fdf3ea); border-color:#f0d9c4}
.medcard__e{font-size:30px; line-height:1}
.medcard__n{font-weight:900; font-size:13px}
.medcard__d{font-size:11px; color:var(--muted); font-weight:600; line-height:1.25}

/* ---- médio: painel dos pais ---- */
.paisk{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:14px}
.paisk__c{display:flex; flex-direction:column; align-items:center; text-align:center; gap:2px; padding:14px 6px; background:var(--surface); border:1px solid var(--line); border-radius:14px}
.paisk__n{font-size:18px; font-weight:900}
.paisk__l{font-size:11px; font-weight:700; color:var(--muted); line-height:1.2}
.paiscard{display:flex; gap:10px; align-items:flex-start; padding:13px 14px; border-radius:12px; margin-bottom:10px; font-size:13.5px; line-height:1.35}
.paiscard__ic{font-size:18px; flex:0 0 auto}
.paiscard--warn{background:#fdf3e6; border:1px solid #e8c79a}
.paiscard--good{background:#eaf6ec; border:1px solid #bfe3c6}
.paiscard--info{background:#eef4fb; border:1px solid #cfe0f0}

/* ---- médio: resumo por período (painel pais) ---- */
.perlist{display:flex; flex-direction:column; gap:8px}
.perrow{display:flex; align-items:center; gap:10px; padding:12px 14px; background:var(--surface); border:1px solid var(--line); border-radius:12px}
.perrow__main{flex:1; min-width:0}
.perrow__lbl{font-weight:800; font-size:14px}
.perrow__sub{font-size:12px; color:var(--muted); font-weight:600; margin-top:2px}
.perrow__tr{font-weight:900; font-size:16px}
.perrow__tr.is-up{color:#226b32}
.perrow__tr.is-down{color:#b3261e}
.perrow__tr.is-flat{color:var(--muted)}
.perrow__media{font-size:22px; font-weight:900; min-width:44px; text-align:center; color:var(--ink)}
.perrow__media.nota--red{color:#b3261e}
.perrow__media.nota--yel{color:#9a6a12}
.perrow__media.nota--grn{color:#226b32}

/* ============ Módulo ENEM ============ */
.enemhero{background:linear-gradient(135deg,#2C5599,#1d3a6b); border:0}
.metahead{display:flex; align-items:center; justify-content:space-between; gap:12px}
.metacurso{font-size:20px; font-weight:900; margin-top:2px}
.metagoal{display:flex; flex-direction:column; align-items:center; background:#eef4fb; border:1px solid #cfe0f0; border-radius:14px; padding:6px 16px; flex:0 0 auto}
.metagoal__n{font-size:24px; font-weight:900; color:#2C5599; line-height:1.1}
.metagoal__l{font-size:11px; font-weight:700; color:var(--muted)}
.prog-geral{display:flex; justify-content:space-between; align-items:baseline; font-weight:800; font-size:14px; margin-bottom:6px}
.prog-geral b{font-size:18px}
.arealist{display:flex; flex-direction:column; gap:12px}
.arearow{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink)}
.arearow__nome{font-weight:700; font-size:13.5px; flex:0 0 42%; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.arearow__bar{flex:1; height:8px; background:var(--paper); border-radius:5px; overflow:hidden}
.arearow__fill{display:block; height:100%; border-radius:5px}
.arearow__pct{font-weight:800; font-size:12.5px; color:var(--muted); min-width:32px; text-align:right}
.areahead{display:flex; align-items:center; gap:10px}
.areahead__c{font-weight:800; font-size:13px; color:var(--muted)}
.asslist{display:flex; flex-direction:column; gap:2px}
.assrow{display:flex; align-items:center; gap:10px; padding:7px 0}
.asschk{flex:0 0 auto; width:24px; height:24px; border-radius:7px; border:2px solid var(--line); background:var(--surface); color:#fff; font-weight:900; cursor:pointer; font-size:13px; line-height:1}
.assname{flex:1; font-weight:600; font-size:14px}
.assname.is-done{color:var(--muted); text-decoration:line-through}
.redk{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:14px}
.redk__c{display:flex; flex-direction:column; align-items:center; gap:2px; padding:14px 6px; background:var(--surface); border:1px solid var(--line); border-radius:14px}
.redk__n{font-size:22px; font-weight:900}
.redk__n.nota--grn{color:#226b32}
.redk__n.nota--yel{color:#9a6a12}
.redk__n.nota--red{color:#b3261e}
.redk__l{font-size:11px; font-weight:700; color:var(--muted)}

/* ---- ENEM: caderno de redação ---- */
.timer{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; background:#f4f7fc; border:1px solid #cfe0f0; border-radius:12px}
.timer__left{display:flex; align-items:center; gap:8px}
.timer__ic{font-size:20px}
.timer__display{font-size:28px; font-weight:900; font-variant-numeric:tabular-nums; color:#2C5599; letter-spacing:1px}
.timer.is-running .timer__display{color:#b3261e}
.timer__btn{border:0; background:#2C5599; color:#fff; font-weight:800; font-size:14px; padding:10px 16px; border-radius:10px; cursor:pointer; font-family:inherit}
.timer.is-running .timer__btn{background:#8a3d3d}
.folha{width:100%; border:1px solid var(--line); border-radius:12px; padding:8px 14px; font-family:Georgia,'Times New Roman',serif; font-size:15px; line-height:32px; min-height:480px; resize:vertical; background:repeating-linear-gradient(to bottom, transparent 0, transparent 31px, #e6e6e6 31px, #e6e6e6 32px); background-attachment:local}
.folha:focus{outline:none; border-color:#2C5599}
.folha__count{font-size:12px; font-weight:700; color:var(--muted)}
.folha__count.is-over{color:#b3261e}
.folha-view{white-space:pre-wrap; word-wrap:break-word; font-family:Georgia,'Times New Roman',serif; font-size:15px; line-height:32px; background:repeating-linear-gradient(to bottom, transparent 0, transparent 31px, #e6e6e6 31px, #e6e6e6 32px); padding:0 2px; min-height:64px}
.corrgrp{margin-bottom:12px}
.corrgrp__t{font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; margin-bottom:6px}
.corrgrp__t--erro{color:#b3261e}
.corrgrp__t--mel{color:#226b32}
.corritem{display:flex; align-items:center; gap:8px; padding:9px 12px; border-radius:10px; margin-bottom:6px; font-size:14px; font-weight:600}
.corritem span{flex:1}
.corritem--erro{background:#fdf2f2; border:1px solid #f0d0d0}
.corritem--mel{background:#f0f8f2; border:1px solid #cfe8d5}

/* ---- ENEM: simulados ---- */
.simgrid{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.simfield{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:8px 10px}
.simfield label{display:block; font-size:11.5px; font-weight:700; color:var(--ink-soft); margin-bottom:4px; line-height:1.2; min-height:28px}
.simfield__in{display:flex; align-items:center; gap:4px}
.simfield__in input{flex:1; width:100%; padding:8px 6px; border:1px solid var(--line); border-radius:8px; font-size:16px; font-weight:800; text-align:center; font-family:inherit}
.simfield__in input:focus{outline:none; border-color:#2C5599}
.simfield__in span{font-size:12px; font-weight:700; color:var(--muted)}
.simtag{font-size:12px; font-weight:800; padding:0 3px}

/* ===== Check-in Diário (Concurso) ===== */
.chk-head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px}
.chk-faixa{display:flex; flex-direction:column; align-items:center; border:2px solid #E8651E; border-radius:14px; padding:6px 14px; background:var(--surface); flex:0 0 auto}
.chk-faixa__lbl{font-size:11px; font-weight:800; color:var(--muted)}
.chk-faixa__nome{font-size:16px; font-weight:900}
.chk-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:14px}
.chk-stat{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:10px 6px; text-align:center}
.chk-stat__n{display:block; font-size:17px; font-weight:900; line-height:1.15}
.chk-stat__l{display:block; font-size:10px; font-weight:700; color:var(--muted); margin-top:2px; line-height:1.2}
.ptable{margin-top:14px}
.ptable summary{cursor:pointer; font-weight:800; font-size:14px; list-style:none}
.ptable summary::-webkit-details-marker{display:none}
.ptable__grid{display:grid; grid-template-columns:1fr 1fr; gap:6px 12px; margin-top:10px; font-size:12.5px; color:var(--ink-soft)}
.ptable__grid b{color:var(--orange-deep)}
.chk-bloco{display:inline-flex; align-items:center; justify-content:center; min-width:26px; height:26px; padding:0 6px; border-radius:8px; background:var(--orange); color:#fff; font-weight:900; font-size:14px; margin-bottom:8px}
.chk-h{margin:0 0 12px; font-size:18px}
.chk-hint{font-size:12px; font-weight:600; color:var(--muted)}
.chk-check{display:flex; align-items:center; gap:10px; cursor:pointer; font-size:15px}
.chk-check input{width:20px; height:20px; flex:0 0 auto}
.chk-const{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap}
.chk-const__n{font-size:24px; font-weight:900; color:var(--orange-deep)}
.chk-const__l{font-size:12px; font-weight:700; color:var(--muted); margin-left:6px}
.chk-shield{font-size:13px; font-weight:700; color:#226b32}
.prodrow{display:flex; flex-direction:column; gap:8px}
.prodbtn{display:block; padding:11px 14px; border:1px solid var(--line); border-radius:12px; cursor:pointer; font-weight:700; font-size:14px; background:var(--surface); position:relative}
.prodbtn input{position:absolute; opacity:0; pointer-events:none}
.prodbtn:has(input:checked){border-color:var(--orange); background:#fcf0e6; color:var(--orange-deep)}
.chk-missao{text-align:center; font-style:italic; color:var(--ink-soft); line-height:1.6; background:linear-gradient(135deg,#fff,#fdf3ea); border-color:#f0d9c4}

/* ===== Escudo ===== */
.esc-badge{font-size:11px; font-weight:800; padding:3px 10px; border-radius:999px; white-space:nowrap; flex:0 0 auto}
.esc--pend{background:#fdf6e3; color:#9a6a12}
.esc--apr{background:#e9f6ed; color:#226b32}
.esc--neg{background:#fdeceb; color:#b3261e}
.esc-card__top{display:flex; align-items:flex-start; justify-content:space-between; gap:10px}
.esc-card__dias{font-size:17px; font-weight:900}
.esc-card__just{margin:10px 0; font-size:14px; color:var(--ink-soft); background:var(--paper); border-radius:10px; padding:10px 12px}
.esc-adm{border:1px solid var(--line); border-radius:14px; padding:14px; margin-bottom:12px}
.esc-adm__head{display:flex; align-items:flex-start; justify-content:space-between; gap:10px}
.esc-adm__just{margin:10px 0; font-size:14px; color:var(--ink-soft); background:var(--paper); border-radius:10px; padding:10px 12px}
.esc-adm__acts{display:flex; gap:8px}
.esc-hist{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid var(--line)}
.esc-hist:last-child{border-bottom:0}

/* ---- Médio: grid compacto de matérias (estilo boletim) ---- */
.matgrid2{display:grid; grid-template-columns:repeat(auto-fill, minmax(96px,1fr)); gap:10px}
.matcard2{display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:14px 6px; border-radius:14px; border:2px solid var(--line); background:var(--surface); text-decoration:none; color:var(--ink); transition:transform .08s}
.matcard2:active{transform:scale(.97)}
.matcard2__nome{font-size:11.5px; font-weight:800; letter-spacing:.4px; color:var(--ink-soft); text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%}
.matcard2__nota{font-size:23px; font-weight:900; line-height:1.1; margin:6px 0 2px}
.matcard2__pct{font-size:11.5px; font-weight:700; color:var(--muted)}
.matcard2.mat--red{border-color:#e6b0ac} .matcard2.mat--red .matcard2__nota{color:#b3261e}
.matcard2.mat--yel{border-color:#e8d19f} .matcard2.mat--yel .matcard2__nota{color:#9a6a12}
.matcard2.mat--grn{border-color:#bcdfc6} .matcard2.mat--grn .matcard2__nota{color:#226b32}
.matcard2.mat--none .matcard2__nota{color:var(--muted)}
.mat-leg{display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:12px; font-size:12px; font-weight:600; color:var(--muted)}
.mat-leg__i{display:inline-flex; align-items:center; gap:6px}
.mdot{width:11px; height:11px; border-radius:50%; display:inline-block}
.mdot--red{background:#b3261e} .mdot--yel{background:#d1971a} .mdot--grn{background:#226b32}

/* ===== Escudo (painel automático) ===== */
.esc-hero{text-align:center}
.esc-saldo{display:flex; flex-direction:column; align-items:center; margin:16px 0}
.esc-saldo__ic{font-size:38px}
.esc-saldo__n{font-size:52px; font-weight:900; line-height:1}
.esc-saldo__l{font-size:13px; font-weight:700; color:var(--muted); margin-top:2px}
.esc-prog{text-align:left; margin-top:6px}
.esc-prog__top{display:flex; justify-content:space-between; align-items:baseline; font-weight:800; font-size:14px; margin-bottom:6px}
.esc-streak{text-align:center; margin-top:14px; font-size:14px; font-weight:700; color:var(--ink-soft)}
.esc-rule{display:flex; align-items:flex-start; gap:12px; padding:11px 0; font-size:14px; line-height:1.5}
.esc-rule + .esc-rule{border-top:1px solid var(--line)}
.esc-rule__ic{flex:0 0 auto; width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:15px}

/* ===== Torneio / Competições ===== */
.medgrid{display:grid; grid-template-columns:repeat(auto-fill, minmax(90px,1fr)); gap:10px}
.medcard{display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; padding:12px 6px; border:1px solid var(--line); border-radius:14px; background:var(--surface)}
.medcard__e{font-size:30px; line-height:1}
.medcard__n{font-size:11px; font-weight:800; color:var(--ink-soft); line-height:1.2}
.compcard{transition:transform .08s}
.compcard:active{transform:scale(.98)}
.compcard__top{display:flex; align-items:center; justify-content:space-between; gap:12px}
.compcard__t{font-size:16px; font-weight:800}
.compcard__go{font-size:13px; font-weight:800; color:#fff; padding:7px 12px; border-radius:999px; white-space:nowrap}
.folha-resp{display:flex; flex-direction:column; gap:4px}
.fresp-row{display:flex; align-items:center; gap:10px; padding:6px 0}
.fresp-q{flex:0 0 28px; font-weight:800; color:var(--muted); text-align:right; font-size:14px}
.fresp-alts{display:flex; gap:6px; flex-wrap:wrap}
.altbtn{position:relative; cursor:pointer}
.altbtn input{position:absolute; opacity:0; pointer-events:none}
.altbtn span{display:flex; align-items:center; justify-content:center; width:38px; height:38px; border:2px solid var(--line); border-radius:10px; font-weight:800; font-size:15px; background:var(--surface)}
.altbtn:has(input:checked) span{border-color:var(--orange); background:#fcf0e6; color:var(--orange-deep)}
.gabgrid{display:grid; grid-template-columns:repeat(auto-fill, minmax(48px,1fr)); gap:8px}
.gabcell{display:flex; flex-direction:column; align-items:center; gap:2px; padding:8px 4px; border-radius:10px; border:1.5px solid}
.gabcell__q{font-size:11px; font-weight:700; color:var(--muted)}
.gabcell__a{font-size:15px; font-weight:900}
.gabcell__a b{color:#226b32; margin-left:4px}
.gab--ok{background:#f0f8f2; border-color:#bcdfc6} .gab--ok .gabcell__a{color:#226b32}
.gab--no{background:#fdf2f2; border-color:#ecc9c6} .gab--no .gabcell__a{color:#b3261e}
.medwin{display:flex; align-items:center; justify-content:center; gap:12px; background:linear-gradient(135deg,#fff8e6,#fff); border:1px solid #f0dfa8; border-radius:14px; padding:14px}
.medwin__e{font-size:40px}
/* tabbar: acomoda 6-7 abas */
.tabbar__item{font-size:9.5px; padding:8px 0 7px}
.tabbar__item svg{width:21px; height:21px}

/* ===== Suas metas (check-in) ===== */
.metaslist{display:flex; flex-direction:column; gap:2px}
.metarow{display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--line)}
.metarow:last-child{border-bottom:0}
.metarow__ic{flex:0 0 24px; height:24px; width:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:13px; background:var(--paper); color:var(--muted)}
.metarow.is-ok .metarow__ic{background:#e9f6ed; color:#226b32}
.metarow__n{flex:1; font-weight:700; font-size:14px}
.metarow__v{font-weight:800; font-size:14px; color:var(--muted); font-variant-numeric:tabular-nums}
.metarow.is-ok .metarow__v{color:#226b32}

/* ===== Admin: faixas ===== */
.faixarow{display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:10px 0; border-bottom:1px solid var(--line)}
.faixadot{width:14px; height:14px; border-radius:50%; flex:0 0 auto}
.faixaf{border:1px solid var(--line); border-radius:8px; padding:7px 9px; font-size:14px; background:var(--surface)}
.faixaf--nome{flex:1; min-width:100px; font-weight:700}
.faixaf--cor{width:44px; height:36px; padding:2px; cursor:pointer}
.faixaf--n{width:74px}
.faixalbl{display:flex; flex-direction:column; font-size:10px; font-weight:800; color:var(--muted); text-transform:uppercase; gap:2px}

/* ===== Faixa no check-in (médio/enem) + pills admin ===== */
.chk-faixaline{display:flex; align-items:center; gap:7px; justify-content:center; margin-top:10px; font-size:14px; font-weight:700; color:var(--ink-soft)}
.chk-faixaline .faixadot{width:13px; height:13px; border-radius:50%; display:inline-block}
.modpills{display:flex; gap:8px; flex-wrap:wrap}
.modpill{padding:7px 14px; border-radius:999px; border:1px solid var(--line); font-size:13px; font-weight:700; text-decoration:none; color:var(--ink-soft); background:var(--surface)}
.modpill.is-on{background:var(--orange); color:#fff; border-color:var(--orange)}

/* ===== Prompts de IA ===== */
.promptcard__head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px}
.promptcard__t{font-size:16px; font-weight:800; line-height:1.3}
.promptcard__copy{flex:0 0 auto; border:0; cursor:pointer; color:#fff; font-weight:800; font-size:13px; padding:9px 16px; border-radius:999px; font-family:inherit; transition:transform .08s}
.promptcard__copy:active{transform:scale(.95)}
.promptcard__copy.is-done{background:#226b32 !important}
.promptcard__det{margin-top:10px}
.promptcard__det summary{cursor:pointer; list-style:none; font-size:13px; font-weight:700; color:var(--muted)}
.promptcard__det summary::-webkit-details-marker{display:none}
.promptcard__det[open] summary{margin-bottom:8px}
.promptcard__txt{margin:0; padding:12px 14px; background:var(--paper); border:1px solid var(--line); border-radius:12px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:13px; line-height:1.6; white-space:pre-wrap; word-break:break-word; color:var(--ink-soft)}

/* ===== Conheça o Só 10 (conteúdo em markdown) ===== */
.prosecao{line-height:1.7; font-size:15px; color:var(--ink-soft)}
.prosecao h2{font-size:22px; font-weight:900; color:var(--ink); margin:0 0 12px; line-height:1.25}
.prosecao h3{font-size:17px; font-weight:800; color:var(--ink); margin:22px 0 8px}
.prosecao h4{font-size:15px; font-weight:800; color:var(--ink); margin:16px 0 6px}
.prosecao p{margin:0 0 12px}
.prosecao ul{margin:0 0 12px; padding-left:20px}
.prosecao li{margin-bottom:6px}
.prosecao strong{color:var(--ink); font-weight:800}
.prosecao hr{border:0; border-top:1px solid var(--line); margin:20px 0}
.prosecao > *:last-child{margin-bottom:0}

/* ===== Planos (premium.php) ===== */
.planos{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:8px}
.plano{position:relative; border:1px solid var(--line); border-radius:16px; padding:18px 14px; text-align:center; background:var(--surface)}
.plano--destaque{border-color:var(--orange); border-width:2px}
.plano__tag{position:absolute; top:-10px; left:50%; transform:translateX(-50%); background:var(--orange); color:#fff; font-size:10px; font-weight:800; padding:3px 10px; border-radius:999px; text-transform:uppercase; letter-spacing:.3px; white-space:nowrap}
.plano__nome{font-size:14px; font-weight:800; color:var(--ink-soft)}
.plano__preco{font-size:26px; font-weight:900; margin:4px 0 0; color:var(--ink)}
.plano__ciclo{font-size:12px; color:var(--muted); margin-bottom:12px}
.plano .btn{height:40px}

/* ===== Módulo Família ===== */
.membro-card{display:flex;align-items:center;gap:14px;padding:16px}
.membro-emoji{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:26px;flex:none}
.membro-info{flex:1;min-width:0}
.membro-nome{font-size:17px;font-weight:800;line-height:1.2}
.membro-sub{font-size:13px;color:var(--muted);font-weight:600;margin-top:2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fx-dot{width:11px;height:11px;border-radius:50%;display:inline-block;flex:none}
.membro-acoes{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}

/* ===== Família: categorias & tarefas ===== */
.cat-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.cat-row:last-child{border-bottom:0}
.cat-emoji{font-size:22px;width:30px;text-align:center;flex:none}
.cat-nome{flex:1;font-weight:700;font-size:15px}
.cat-acoes{display:flex;align-items:center;gap:8px;flex:none}
.tar-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.tar-row:last-child{border-bottom:0}
.tar-info{flex:1;min-width:0}
.tar-titulo{font-weight:700;font-size:15px}
.tar-sub{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:1px}
.tar-opt{font-size:10px;font-weight:800;text-transform:uppercase;color:#7A4FBF;background:#7A4FBF1a;padding:1px 7px;border-radius:999px;margin-left:4px}
.tar-acoes{display:flex;align-items:center;gap:10px;flex:none}
.tar-edit{font-size:13px;font-weight:700;color:var(--muted)}
.chk-inline{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;cursor:pointer;margin-top:4px}
.chk-inline input{width:18px;height:18px;accent-color:#7A4FBF}

/* ===== Família: check-in ===== */
.fam-hero{color:#fff;border:0}
.fam-hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.fam-hero-faixa{display:flex;align-items:center;gap:7px;font-size:18px;font-weight:800;margin-top:4px}
.fam-hero-pts{font-size:30px;font-weight:900;line-height:1;text-align:right}
.fam-hero-pts span{display:block;font-size:12px;font-weight:700;opacity:.8}
.daynav{display:flex;align-items:center;justify-content:center;gap:16px;margin:2px 0 12px}
.daynav-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;font-size:20px;font-weight:800;color:var(--ink);text-decoration:none}
.daynav-btn.is-off{opacity:.35;pointer-events:none}
.daynav-lbl{font-weight:800;font-size:16px;min-width:110px;text-align:center}
.chktar{display:flex;align-items:center;gap:13px;padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}
.chktar:last-child{border-bottom:0}
.chktar input{position:absolute;opacity:0;pointer-events:none}
.chktar-box{width:26px;height:26px;border-radius:8px;border:2px solid var(--line);flex:none;position:relative;transition:all .12s}
.chktar input:checked + .chktar-box{background:#7A4FBF;border-color:#7A4FBF}
.chktar input:checked + .chktar-box::after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:900;font-size:15px}
.chktar-info{flex:1;min-width:0}
.chktar-tit{display:block;font-weight:700;font-size:15px}
.chktar input:checked ~ .chktar-info .chktar-tit{color:var(--muted);text-decoration:line-through}
.chktar-sub{display:block;font-size:12.5px;color:var(--muted);font-weight:600}
.checkin-bar{position:sticky;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-top:14px;box-shadow:0 10px 30px -12px rgba(0,0,0,.25)}
.checkin-bar-info{font-size:13.5px;color:var(--muted);font-weight:600}

/* ===== Família: dashboard ===== */
.dash-card{padding:16px}
.dash-top{display:flex;align-items:center;gap:13px}
.dash-emoji{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:25px;flex:none}
.dash-id{flex:1;min-width:0}
.dash-nome{font-size:17px;font-weight:800;line-height:1.2}
.dash-faixa{font-size:13px;color:var(--muted);font-weight:600;margin-top:2px;display:flex;align-items:center;gap:6px}
.dash-pts{font-size:22px;font-weight:900;text-align:right;line-height:1;color:var(--ink)}
.dash-pts span{display:block;font-size:11px;font-weight:700;color:var(--muted)}
.dash-prog{margin:14px 0 4px}
.dash-prog-bar{height:9px;border-radius:999px;background:var(--line);overflow:hidden}
.dash-prog-bar span{display:block;height:100%;border-radius:999px;transition:width .4s}
.dash-prog-lbl{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:6px}
.dash-dia{display:flex;align-items:center;gap:13px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.dash-ring{width:46px;height:46px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:conic-gradient(var(--c) calc(var(--pct)*1%),var(--line) 0)}
.dash-ring span{width:34px;height:34px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-size:11px;font-weight:800;color:var(--ink)}
.dash-dia-info{flex:1;min-width:0}
.dash-dia-tit{font-weight:800;font-size:14px}
.dash-dia-sub{font-size:12.5px;color:var(--muted);font-weight:600}
.dash-acoes{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.dash-acoes .btn{flex:1;min-width:140px}

/* ===== Selo de medalha pós check-in ===== */
.medalha-pop{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:16px;margin-bottom:14px;
  color:#3a2600;position:relative;overflow:hidden;animation:medpop .5s cubic-bezier(.2,.8,.3,1.2)}
.medalha-pop--ouro{background:linear-gradient(135deg,#FFF4D6,#FFE39A);border:1.5px solid #F5C518}
.medalha-pop--diamante{background:linear-gradient(135deg,#E4F5FF,#BFE9FF);border:1.5px solid #7CC6F0;color:#0b3550}
.medalha-pop-ico{font-size:38px;flex:none;filter:drop-shadow(0 3px 6px rgba(0,0,0,.18))}
.medalha-pop-txt{display:flex;flex-direction:column;gap:2px;line-height:1.3}
.medalha-pop-txt strong{font-size:16px;font-weight:800}
.medalha-pop-txt span{font-size:13.5px;opacity:.85}
.medalha-pop::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.7),transparent);
  transform:skewX(-18deg);animation:medshine 1.4s ease .35s}
@keyframes medpop{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}
@keyframes medshine{from{left:-60%}to{left:130%}}

/* ===== Faculdade: ferramentas (linhas) ===== */
.fac-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.fac-row:last-child{border-bottom:0}
.fac-ord{width:26px;height:26px;border-radius:8px;background:#0E7C7B1a;color:#0E7C7B;font-weight:800;font-size:13px;display:grid;place-items:center;flex:none}
.fac-row-main{flex:1;min-width:0}
.fac-row-tit{font-weight:700;font-size:15px}
.fac-row-sub{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:1px}
.fac-row-acoes{display:flex;align-items:center;gap:6px;flex:none}
.fac-mini{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;font-size:13px;color:var(--ink);text-decoration:none;cursor:pointer}
.fac-mini:disabled{opacity:.3;cursor:default}
.fac-total{text-align:right;padding:10px 2px 4px;font-size:14px;color:var(--muted)}
.fac-status-sel{font-weight:700;font-size:12.5px;padding:4px 8px;border-radius:8px;border:1.5px solid;background:var(--surface)}
.fac-lei-tag{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#0E7C7B;background:#0E7C7B1a;padding:3px 8px;border-radius:999px;flex:none}

/* ===== Faculdade: ferramentas etapa 2 (badges, prazos, seminário) ===== */
.fac-badge{display:inline-block;font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}
.fac-prazo{font-weight:700}
.fac-prazo--atrasado{color:#b3261e}
.fac-prazo--hoje{color:#E8651E}
.fac-prazo--perto{color:#C77800}
.fac-prazo--ok{color:var(--muted)}
.fac-sem{padding:12px 0;border-bottom:1px solid var(--line)}
.fac-sem:last-child{border-bottom:0}
.fac-sem-top{display:flex;align-items:flex-start;gap:12px}
.fac-sem-etapas{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.fac-etapa{font-size:12.5px;font-weight:700;padding:6px 12px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer}
.fac-etapa.is-on{border-color:#226B32;background:#226B321a;color:#226B32}

/* ===== Faculdade: projetos (ícone) ===== */
.fac-proj-ico{width:34px;height:34px;border-radius:10px;background:#0E7C7B14;display:grid;place-items:center;font-size:18px;flex:none}

/* ===== Pagamento PIX (checkout transparente) ===== */
.pix-card{text-align:center}
.pix-qr{display:flex;justify-content:center;margin:16px 0 8px}
.pix-qr img{border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff;width:220px;height:220px}
.pix-copia{text-align:left;margin:6px 0 14px}
.pix-copia-row{display:flex;gap:8px;margin-top:6px}
.pix-copia-row input{flex:1;min-width:0;font-family:ui-monospace,monospace;font-size:12px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}
.pix-wait{display:flex;align-items:center;gap:10px;justify-content:center;background:#FBF6F1;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:13.5px;color:var(--muted);font-weight:600;text-align:left}
.pix-spinner{width:18px;height:18px;border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;flex:none;animation:pixspin .8s linear infinite}
@keyframes pixspin{to{transform:rotate(360deg)}}

/* divisor "ou" na tela de pagamento */
.pix-ou{display:flex;align-items:center;gap:12px;margin:16px 0 12px;color:var(--muted);font-size:13px;font-weight:600}
.pix-ou::before,.pix-ou::after{content:"";flex:1;height:1px;background:var(--line)}

/* ===== Meus Sonhos ===== */
.sonho-card{transition:transform .1s}
.sonho-card:active{transform:scale(.99)}
.sonho-top{display:flex;align-items:center;gap:12px}
.sonho-emoji{width:46px;height:46px;border-radius:13px;background:#7A4FBF1a;display:grid;place-items:center;font-size:24px;flex:none}
.sonho-nome{font-weight:800;font-size:16px;line-height:1.25}
.sonho-tags{display:flex;align-items:center;gap:6px;margin-top:3px;flex-wrap:wrap}
.sonho-pct{font-weight:900;font-size:19px;color:#7A4FBF;flex:none}
.sonho-pct--big{font-size:26px}
.sonho-bar{height:9px;border-radius:999px;background:var(--line);overflow:hidden;margin-top:12px}
.sonho-bar--lg{height:12px}
.sonho-bar__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#7A4FBF,#9E6BE0);transition:width .4s}
.sonho-money{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:6px}
.sonho-money-grid{display:flex;gap:10px;margin:4px 0 12px}
.sonho-money-grid>div{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center}
.sonho-money-lbl{display:block;font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.sonho-money-val{display:block;font-size:15px;font-weight:800;margin-top:3px}
.sonho-hint{margin-top:12px;padding:10px 12px;background:#FBF6F1;border-radius:10px;font-size:13px;line-height:1.5}
.sonho-prow{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13.5px;font-weight:600}
.sonho-prow>span:first-child{flex:0 0 108px}
.sonho-prow .sonho-bar{flex:1;margin:0}
.sonho-prow-pct{flex:0 0 44px;text-align:right;font-weight:800}
.sonho-prow--geral{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-weight:800}
.sonho-etapa{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}
.sonho-etapa:last-of-type{border-bottom:0}
.sonho-check{width:26px;height:26px;border-radius:8px;border:2px solid var(--line);background:var(--surface);flex:none;cursor:pointer;font-size:14px;font-weight:900;color:#fff;display:grid;place-items:center}
.sonho-check.is-on{background:#226B32;border-color:#226B32}
.sonho-etapa-feita{text-decoration:line-through;color:var(--muted)}
.sonho-tl{position:relative;padding-left:6px}
.sonho-tl-item{display:flex;gap:12px;padding:0 0 14px;position:relative}
.sonho-tl-item:not(:last-child)::before{content:"";position:absolute;left:5px;top:14px;bottom:0;width:2px;background:var(--line)}
.sonho-tl-dot{width:12px;height:12px;border-radius:50%;background:#7A4FBF;flex:none;margin-top:3px;z-index:1}
.sonho-tl-data{font-weight:800;font-size:13px}
.sonho-tl-txt{font-size:13.5px;color:var(--muted)}

/* logo no lugar do antigo selo "10" */
.brand__logo{width:32px !important;height:32px !important;max-width:32px;max-height:32px;object-fit:contain;display:block;flex:none}
.sidebar__brand .brand__logo,.topbar__brand .brand__logo{width:32px !important;height:32px !important}