/* ════════════════════════════════════════════════════════════════════════════
   AEDO · camada de identidade "vidro líquido"
   ────────────────────────────────────────────────────────────────────────────
   leitor.css guarda a estrutura e o comportamento herdados do módulo do Ágora.
   Este arquivo dá a cara do Aedo por cima dele, sem tocar em layout funcional:
   barras que flutuam destacadas das bordas, controles em cápsula, folhas de
   ajuste em "grupos" ao modo do iOS, reflexo especular no topo de cada vidro.
   Inspiração: Liquid Glass (iOS 26/27) — mas com tinta e aurora próprias, e
   sem nada que dependa de API exclusiva da Apple: o mesmo CSS roda no WebView
   do Android e no Edge/WebView2 do Windows.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── áreas do sistema (relógio/bateria em cima, gestos embaixo) ─────────────
   No iPhone/iPad e no navegador vêm de env(); no app Android o Capacitor
   informa por --safe-area-inset-* (o WebView do Android nem sempre preenche env). */
:root{
  --sat:var(--safe-area-inset-top,env(safe-area-inset-top,0px));
  --sab:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));
  --sal:var(--safe-area-inset-left,env(safe-area-inset-left,0px));
  --sar:var(--safe-area-inset-right,env(safe-area-inset-right,0px));
}

/* ── receita do vidro ───────────────────────────────────────────────────────── */
.glass,
.bar-in,
.panel,
.cropbox,
.ctpanel,
.drop b{
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(190%);
  backdrop-filter:blur(var(--glass-blur)) saturate(190%);
  box-shadow:inset 0 1px 0 var(--spec),inset 0 0 0 1px var(--rim),var(--glass-shadow);
}
/* lente: brilho que escorre do topo, como luz atravessando o vidro */
.bar-in::before,
.panel::before,
.cropbox::before,
.ctpanel::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,0) 42%),
    radial-gradient(120% 70% at 50% 130%,rgba(255,255,255,.14),transparent 60%);
  mix-blend-mode:soft-light;
}
html[data-theme="dark"] .bar-in::before,
html[data-theme="dark"] .panel::before,
html[data-theme="dark"] .cropbox::before,
html[data-theme="dark"] .ctpanel::before{
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,0) 40%);
  mix-blend-mode:normal;
}

/* ── barra de comando: cápsula flutuante ───────────────────────────────────── */
.bar{
  background:transparent;border:0;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  padding:calc(10px + var(--sat)) max(12px,var(--sar)) 0 max(12px,var(--sal));
  pointer-events:none;
}
.bar-in{
  position:relative;pointer-events:auto;
  border-radius:28px;padding:8px 10px;gap:6px 8px;
}
.bar-in > *{position:relative;z-index:1}
.bar-brand{gap:8px;padding-left:4px}
.bar-brand svg{width:34px;height:auto;aspect-ratio:116/92;filter:none}
.bar-brand b{
  font-family:var(--brand-font),var(--ui-font);font-weight:300;font-size:17px;
  letter-spacing:-.02em;text-transform:none;color:var(--ink);
}

/* a marca: o livro semiaberto acompanha o tema. Bloco branco no claro, bloco
   nanquim no escuro, cada um com um contorno fino que o separa do vidro. À
   esquerda o texto com a linha realçada, à direita a voz em cinco barras, no
   mesmo azul. Enquanto o app lê, o brilho respira, a linha realçada é "lida" da
   esquerda para a direita e as barras da onda sobem e descem como uma voz. */
:root{--mk-c1:#FFFFFF;--mk-c2:#E9ECF3;--mk-dobra:#C4CAD7;--mk-linha:#A9B0C0;--mk-borda:rgba(20,22,29,.5)}
html[data-theme="dark"]{--mk-c1:#2A2E3C;--mk-c2:#14161D;--mk-dobra:rgba(255,255,255,.22);--mk-linha:rgba(255,255,255,.34);--mk-borda:rgba(255,255,255,.42)}
/* contorno em pixels de tela (não escala com o desenho): fica visível do ícone pequeno da barra ao grande do painel */
.marca-viva > g > path:first-child,.ct-mark > g > path:first-child{stroke:var(--mk-borda);stroke-width:2.6px;vector-effect:non-scaling-stroke;paint-order:stroke;stroke-linejoin:round}
html:not([data-theme="dark"]) .marca-viva{filter:drop-shadow(0 2px 3px rgba(20,22,29,.16)) !important}
.marca-viva .mk-tinta{transform-box:fill-box;transform-origin:left center}
html[data-falando] .marca-viva .mk-brilho{animation:aedoBrilho 1.1s ease-in-out infinite alternate}
html[data-falando] .marca-viva .mk-tinta{animation:aedoLeitura 1.6s cubic-bezier(.45,0,.55,1) infinite}
@keyframes aedoBrilho{from{opacity:.25}to{opacity:.95}}
@keyframes aedoLeitura{0%{transform:scaleX(.18)}70%,100%{transform:scaleX(1)}}
.marca-viva .mk-onda rect{transform-box:fill-box;transform-origin:center}
html[data-falando] .marca-viva .mk-onda rect{animation:aedoOnda .9s ease-in-out infinite alternate}
html[data-falando] .marca-viva .mk-onda rect:nth-child(2){animation-delay:-.45s}
html[data-falando] .marca-viva .mk-onda rect:nth-child(3){animation-delay:-.2s}
html[data-falando] .marca-viva .mk-onda rect:nth-child(4){animation-delay:-.65s}
html[data-falando] .marca-viva .mk-onda rect:nth-child(5){animation-delay:-.3s}
@keyframes aedoOnda{from{transform:scaleY(.55)}to{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){html[data-falando] .marca-viva :is(.mk-brilho,.mk-tinta,.mk-onda rect){animation:none}}
/* o nome: "dua" forte e "lecto" leve (Lexend) */
.nm-dua{font-weight:700}

/* ── controles ─────────────────────────────────────────────────────────────── */
button.icon{
  border:0;background:transparent;border-radius:999px;padding:9px;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  transition:background .18s ease,color .18s ease,transform .18s cubic-bezier(.2,.8,.2,1);
}
button.icon:hover{background:var(--fill)}
button.icon:active{background:var(--fill-hi);transform:scale(.94)}
button.icon[aria-pressed="true"]{background:var(--fill-hi);color:var(--accent)}
button.icon svg{stroke-width:1.8}
button.icon.txt{font-size:12.5px;font-weight:650;min-width:36px}

button.primary,
button.accent,
.ctbtn.pri{
  color:var(--on-accent);border:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.26),rgba(255,255,255,0) 52%),
    linear-gradient(135deg,var(--accent-fill),color-mix(in srgb,var(--accent-fill) 78%,var(--accent2)));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.12),0 8px 20px -6px var(--ic-sh);
}
button.primary{border-radius:999px;padding:9px 16px;font-size:12.5px;font-weight:650}
button.primary:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 12px 26px -8px var(--ic-sh)}
button.accent{border-radius:999px;width:42px;height:42px}
button.accent:active{transform:scale(.94)}
button.accent svg{width:16px;height:16px}

/* segmentado: o selecionado é um "polegar" de vidro erguido, não um bloco de cor */
.seg{
  background:var(--fill);border:0;border-radius:999px;padding:3px;gap:2px;
  -webkit-backdrop-filter:none;backdrop-filter:none;
}
.seg button{border-radius:999px;padding:7px 12px;font-size:12px;font-weight:600;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--thumb);color:var(--ink);box-shadow:var(--thumb-sh)}

.lbl{font-size:11.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted)}
select.sel{
  border:0;background-color:var(--fill);border-radius:999px;padding:8px 28px 8px 12px;font-weight:600;
  -webkit-backdrop-filter:none;backdrop-filter:none;
}
select.sel:hover{background-color:var(--fill-hi)}
button.num{border:0;background:var(--fill);border-radius:999px;padding:7px 6px;font-size:12px;
  -webkit-backdrop-filter:none;backdrop-filter:none}
button.num:hover{background:var(--fill-hi);color:var(--accent)}
input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:999px;background:var(--fill-hi)}
input[type=range]::-webkit-slider-thumb{width:20px;height:20px;margin-top:-7.5px;border-radius:50%;
  background:#fff;box-shadow:0 2px 7px rgba(27,29,58,.28),0 0 0 .5px rgba(27,29,58,.12)}
input[type=range]::-moz-range-thumb{width:20px;height:20px;background:#fff;box-shadow:0 2px 7px rgba(27,29,58,.28)}

/* faixa de ritmo: frase, tempo restante, mensagem — em caixa normal, calma */
.strip span{font-size:11.5px;font-weight:600;letter-spacing:0;text-transform:none}
.strip #eta{color:var(--accent);opacity:1}

/* trilha de progresso: um fio em cápsula sob a barra, não uma régua de ponta a ponta */
.rail{
  max-width:1156px;width:calc(100% - 52px);margin:7px auto 0;height:3px;border-radius:999px;
  background:var(--fill-hi);overflow:hidden;
}
.rail i{border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent2),var(--ic-to))}

/* conta (avatar na barra) */
.contabtn{
  width:36px;height:36px;border-radius:50%;border:0;padding:0;cursor:pointer;flex:none;
  display:inline-flex;align-items:center;justify-content:center;overflow:hidden;
  background:var(--fill);color:var(--muted);transition:background .18s,transform .18s;
}
.contabtn:hover{background:var(--fill-hi)}
.contabtn:active{transform:scale(.94)}
.contabtn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contabtn img{width:100%;height:100%;object-fit:cover}
.contabtn .ini{font-family:var(--brand-font),var(--ui-font);font-weight:600;font-size:14px;color:var(--on-accent)}
.contabtn.on{background:linear-gradient(135deg,var(--accent-fill),var(--accent2))}

/* ── docas: a cápsula acompanha a borda escolhida, sempre destacada dela ──── */
html[data-dock="bottom"] .bar{
  top:auto;bottom:0;background:transparent;border:0;box-shadow:none;
  padding:0 max(12px,var(--sar)) calc(10px + var(--sab)) max(12px,var(--sal));
}
html[data-dock="bottom"] body{padding-bottom:96px}
html[data-dock="left"] .bar,html[data-dock="right"] .bar{
  background:transparent;border:0;padding:calc(10px + var(--sat)) 0 calc(10px + var(--sab));
  width:var(--dockw);
}
html[data-dock="left"] .bar{padding-left:10px}
html[data-dock="right"] .bar{padding-right:10px}
html[data-dock="left"] .bar-in,html[data-dock="right"] .bar-in{border-radius:30px;padding:12px 8px}
html[data-dock="left"] body{padding-left:calc(var(--dockw) + 8px)}
html[data-dock="right"] body{padding-right:calc(var(--dockw) + 8px)}
html[data-dock="left"] .rail,html[data-dock="right"] .rail,html[data-dock="bottom"] .rail{top:calc(8px + var(--sat));position:sticky}

/* ── abertura: assinatura do Aedo ──────────────────────────────────────────── */
.lockup{gap:10px;padding:clamp(18px,3.4vw,34px) 0 4px}
.lk-mark{width:60px;height:auto;aspect-ratio:116/92;filter:drop-shadow(0 10px 18px rgba(11,12,16,.18))}
.brand-nm{
  font-family:var(--brand-font),var(--ui-font);font-weight:300;
  font-size:clamp(28px,3.6vw,36px);letter-spacing:-.035em;text-transform:none;line-height:1;
  background:none;animation:none;-webkit-text-fill-color:currentColor;color:var(--ink);
}
.subh2{
  font-family:var(--ui-font);font-size:13.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted);
}
.divider{display:none}
.docchip{border:0;background:var(--fill);border-radius:999px;padding:6px 13px;font-size:12px;
  -webkit-backdrop-filter:none;backdrop-filter:none}
.maskchip{border:0;background:var(--fill);border-radius:999px;padding:5px 12px;font-size:11.5px;
  letter-spacing:0;text-transform:none;font-weight:650}

/* ── folha de leitura ──────────────────────────────────────────────────────── */
.sheet{
  font-family:var(--read-font),var(--ui-font);
  border:0;outline:0;border-radius:30px;
  box-shadow:inset 0 1px 0 var(--spec),inset 0 0 0 1px var(--rim),var(--card-shadow);
}
.sheet::after{display:none}
.marker .chip,.pgbreak b,.helper h3,.pdfpage .fl,.pdfpage .ph,.skiptag,.barlab span,.croplib h4,.bookpos{
  letter-spacing:0;text-transform:none;font-weight:650;
}
.marker .chip{font-size:10.5px;border-radius:999px;padding:2px 8px}
.pgbreak b{font-size:11px}
.helper h3{font-size:12.5px;color:var(--ink)}
.pdfpage .fl,.bookpos{font-size:11px;border:0;border-radius:999px;background:var(--glass-bg)}
.skiptag{font-size:10px;border:0;border-radius:999px}
.barlab span{font-size:10.5px}
kbd{border:0;background:var(--fill-hi);border-radius:7px}
.s{border-radius:6px}
.note{border-radius:16px;border-left:0;box-shadow:inset 3px 0 0 var(--accent)}
.paste textarea{border:0;background:var(--fill);border-radius:16px}
.pdfpage{border-radius:12px}

/* ── ajustes: folha flutuante com grupos ───────────────────────────────────── */
.scrim{background:rgba(14,16,38,.22);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.panel{
  top:calc(10px + var(--sat));right:10px;bottom:calc(10px + var(--sab));
  width:min(25.5rem,calc(100% - 20px));border:0;border-radius:32px;overflow:hidden;
  background:var(--glass-strong);transform:translateX(calc(100% + 24px));
}
html[data-theme="dark"] .panel{background:var(--glass-strong)}
.panel > *{position:relative;z-index:1}
.panel-head{border-bottom:0;padding:18px 18px 6px 22px}
.panel-head h2{font-family:var(--brand-font),var(--ui-font);font-size:22px;font-weight:600;letter-spacing:-.03em}
.panel-body{padding:10px 16px 48px;gap:22px}
.sect > h3{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:0;margin:0 6px 6px}
.sect > p.sub{margin:0 6px 10px;font-size:12px}
.rows{background:var(--group-bg);border-radius:20px;padding:0 14px;
  box-shadow:inset 0 0 0 .5px var(--line)}
.rows:empty{display:none}
.srow{border-top:.5px solid var(--line);padding:11px 0}
.srow .tx b{font-size:13.5px;font-weight:500}
.srow .tx small{font-size:11.5px}
.srow .ic{color:var(--accent)}

/* interruptor em cápsula, como no iOS */
.sw{width:50px;height:30px;border-radius:999px;border:0;background:var(--fill-hi)}
.sw::after{top:2px;left:2px;width:26px;height:26px;border-radius:50%;
  box-shadow:0 2px 6px rgba(0,0,0,.2),0 0 0 .5px rgba(0,0,0,.05)}
.sw[aria-checked="true"]{background:var(--accent-fill)}
.sw[aria-checked="true"]::after{transform:translateX(20px)}

.palopt,.fontopt,.viewseg button,.dockbtn{border:0;background:var(--group-bg);box-shadow:inset 0 0 0 .5px var(--line)}
.palopt{border-radius:16px;padding:10px;font-weight:600;font-size:12px}
.palopt.sel,.fontopt.sel,.viewseg button[aria-pressed="true"],.dockbtn.sel{
  box-shadow:inset 0 0 0 2px var(--accent),0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.palsw{border-radius:50%;width:18px;height:18px}
.palbar{flex-wrap:wrap}
.palbar .palopt{flex:1 1 calc(50% - 4px)}
.fontopt{border-radius:16px}
.fontgrid{margin-bottom:12px}
.fontopt .prev{font-weight:600}
.hlbtn{border-radius:50%;width:24px;height:24px}
.dockbtn{border-radius:10px}
.stats{border:0;outline:0;border-radius:22px;background:var(--group-bg);box-shadow:inset 0 0 0 .5px var(--line)}
.stats::after{display:none}
.stats .big{font-family:var(--brand-font),var(--ui-font);font-weight:600}
.bmitem,.maskitem{border:0;background:var(--group-bg);border-radius:14px;box-shadow:inset 0 0 0 .5px var(--line)}
.warn{border-radius:14px}
.sect .chip{border:0;background:var(--fill);border-radius:999px;padding:7px 12px;font-weight:600}
.sect .chip:hover{background:var(--fill-hi)}
.sect .chip.on{background:var(--accent-fill);color:var(--on-accent)}
.sect .txtin{border:0;background:var(--fill);border-radius:12px;padding:9px 12px}
.sect .txtin:focus{box-shadow:0 0 0 2px var(--accent2)}

/* ── recorte e diálogos ────────────────────────────────────────────────────── */
.cropmodal{background:rgba(14,16,38,.32)}
.cropbox{border:0;outline:0;border-radius:32px}
html:not([data-theme="dark"]) .cropbox,html[data-theme="dark"] .cropbox{background:var(--glass-strong)}
.cropbox::after{display:none}
.cropbox > *{position:relative;z-index:1}
.crophead,.cropfoot{border-color:var(--line)}
.crophead h2{font-family:var(--brand-font),var(--ui-font);font-weight:600;font-size:17px;letter-spacing:-.02em}
.viewseg button{border-radius:16px}
.cropfoot input{border:0;background:var(--fill);border-radius:999px;padding:8px 13px}
.cropfoot button.icon{background:var(--fill);padding:8px 14px;font-size:12px;font-weight:600}
.drop b{border:0;border-radius:28px;font-family:var(--brand-font),var(--ui-font);font-weight:500}

/* ── teatro ────────────────────────────────────────────────────────────────── */
html[data-theater="on"] .bar{background:transparent}
html[data-theater="on"] .bar-in{background:rgba(16,18,36,.6);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 0 0 1px rgba(255,255,255,.08),0 18px 40px -12px rgba(0,0,0,.6)}
html[data-theater="on"] button.icon{background:transparent;border:0}
html[data-theater="on"] button.icon:hover{background:rgba(255,255,255,.1)}
html[data-theater="on"] .contabtn{display:none}

/* ── conta e assinatura ────────────────────────────────────────────────────── */
.ctscrim{position:fixed;inset:0;z-index:9000;background:rgba(14,16,38,.3);opacity:0;pointer-events:none;
  transition:opacity .2s;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.ctscrim.open{opacity:1;pointer-events:auto}
.ctpanel{
  position:fixed;z-index:9001;left:50%;top:50%;width:min(24rem,calc(100vw - 24px));
  max-height:calc(100vh - 32px);overflow:auto;border-radius:34px;padding:26px 22px 20px;
  background:var(--glass-strong);color:var(--ink);
  transform:translate(-50%,-48%) scale(.96);opacity:0;pointer-events:none;
  transition:opacity .22s,transform .28s cubic-bezier(.2,.9,.25,1.1);
}
.ctpanel.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.ctpanel > *{position:relative;z-index:1}
.ctclose{position:absolute;right:14px;top:14px;z-index:2;width:32px;height:32px;border-radius:50%;border:0;cursor:pointer;
  background:var(--fill);color:var(--muted);display:flex;align-items:center;justify-content:center}
.ctclose svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.cthead{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;margin-bottom:18px}
.cthead svg{width:62px;height:auto;aspect-ratio:116/92}
.cthead h2{margin:0;font-family:var(--brand-font),var(--ui-font);font-weight:600;font-size:22px;letter-spacing:-.03em}
.cthead p{margin:0;font-size:13px;color:var(--muted);line-height:1.5;max-width:19rem}
.ctlist{display:flex;flex-direction:column;gap:9px}
.ctbtn{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;cursor:pointer;
  border:0;border-radius:999px;padding:12px 16px;font-size:14px;font-weight:600;
  background:var(--thumb);color:var(--ink);box-shadow:var(--thumb-sh);transition:transform .15s;
}
.ctbtn:active{transform:scale(.98)}
.ctbtn svg{width:18px;height:18px;flex:none}
.ctbtn.apple{background:#000;color:#fff}
html[data-theme="dark"] .ctbtn.apple{background:#fff;color:#000}
.ctbtn.sec{background:var(--fill);box-shadow:none}
.ctbtn[hidden]{display:none}
.ctbtn.perigo{color:#D92D20}
html[data-theme="dark"] .ctbtn.perigo{color:#FF8A80}
/* logado: o painel vira um cartão de perfil. Identidade no topo, plano num cartão,
   ações num grupo de linhas (como os Ajustes) e o excluir discreto no rodapé. */
.ctpanel [hidden]{display:none !important}
.ctpanel.logado .cthead{display:none}
.ctuser{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:6px 8px 4px;margin-bottom:18px}
.ctuser img,.ctuser .ini{width:68px;height:68px;border-radius:50%;flex:none;object-fit:cover;
  box-shadow:0 0 0 3px var(--glass-strong),0 0 0 4.5px color-mix(in srgb,var(--accent) 45%,transparent),0 8px 20px -8px rgba(20,22,29,.35)}
.ctuser .ini{display:flex;align-items:center;justify-content:center;font-weight:600;font-size:22px;color:#fff;
  background:linear-gradient(135deg,var(--accent-fill),var(--accent2))}
.ctuser b{display:block;font-family:var(--brand-font),var(--ui-font);font-size:19px;font-weight:600;letter-spacing:-.02em;line-height:1.25}
.ctuser small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.ctsync{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;color:var(--muted);
  padding:4px 10px;border-radius:999px;background:var(--fill)}
.ctsync::before{content:"";width:7px;height:7px;border-radius:50%;background:#22A06B;box-shadow:0 0 0 3px rgba(34,160,107,.18)}
.ctplano{display:flex;flex-direction:column;align-items:flex-start;gap:4px;border-radius:22px;padding:16px 16px 14px;margin-bottom:12px;
  background:var(--group-bg);box-shadow:inset 0 0 0 .5px var(--line)}
.ctplano-rot{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ctplano-tx b{display:block;font-family:var(--brand-font),var(--ui-font);font-size:17px;font-weight:600;letter-spacing:-.02em}
.ctplano-tx small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.45}
.ctplano-bt{margin-top:10px;border:0;cursor:pointer;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;
  color:var(--on-accent);background:var(--accent-fill);transition:transform .15s}
.ctplano-bt:active{transform:scale(.97)}
.ctrows{border-radius:20px;background:var(--group-bg);box-shadow:inset 0 0 0 .5px var(--line);overflow:hidden}
.ctrow{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;cursor:pointer;color:var(--ink);
  padding:13px 14px 13px 16px;font-size:14px;font-weight:500;text-align:left}
.ctrow + .ctrow{box-shadow:inset 0 .5px 0 var(--line)}
.ctrow:active{background:var(--fill)}
.ctrow svg{width:19px;height:19px;flex:none;fill:none;stroke:var(--accent);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ctrow span{flex:1}
.ctrow .chev{width:15px;height:15px;stroke:var(--muted);opacity:.6}
.ctperigo{margin:22px 4px 0;font-size:12px;color:var(--muted)}
.ctperigo > summary{list-style:none;cursor:pointer;width:max-content;margin:0 auto;padding:6px 10px;border-radius:999px;font-weight:500;opacity:.8}
.ctperigo > summary::-webkit-details-marker{display:none}
.ctperigo > summary:hover{opacity:1;background:var(--fill)}
.ctperigo > summary:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}
.ctperigo[open] > summary{opacity:1}
.ctperigo-in{margin-top:8px;padding:12px 14px;border-radius:16px;background:var(--group-bg);box-shadow:inset 0 0 0 .5px var(--line);text-align:center}
.ctperigo-in p{margin:0 0 10px;font-size:12px;line-height:1.5;color:var(--muted)}
.ctexcl{display:block;margin:0 auto;border:0;background:rgba(217,45,32,.1);cursor:pointer;padding:8px 14px;border-radius:999px;
  font-size:13px;font-weight:600;color:#D92D20}
.ctexcl:active{background:rgba(217,45,32,.08)}
html[data-theme="dark"] .ctexcl{color:#FF8A80}
.ctexcl[data-confirma="1"]{background:rgba(217,45,32,.1);font-weight:600}
.ctnota:empty{display:none}
.ctnota{font-size:11.5px;color:var(--muted);text-align:center;line-height:1.5;margin:12px 4px 0}
.ctnota a{color:var(--accent)}
.ctlinks{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:10px 4px 0;font-size:11.5px}
.ctlinks a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}

/* ── telefone ──────────────────────────────────────────────────────────────── */
@media (max-width:640px){
  .bar-in{border-radius:24px;padding:7px 8px}
  .panel{top:auto;left:8px;right:8px;width:auto;height:min(82vh,46rem);border-radius:30px;
    bottom:calc(8px + var(--sab));transform:translateY(calc(100% + 30px))}
  .panel.open{transform:none}
  .sheet{border-radius:24px}
}

/* ── celular: cápsula de cima em três linhas curtas, player embaixo ─────────
   (o app.js move os grupos; aqui só a disposição) */
.player,.quebra{display:none}
html[data-celular] .bar-in{gap:6px}
html[data-celular] .bar-brand{order:10;width:auto;margin-right:auto}
html[data-celular] #open{order:20;padding:8px 14px}
html[data-celular] #conta{order:30}
html[data-celular] .quebra{display:block;flex-basis:100%;height:0;order:35}
html[data-celular] .quebra + .quebra{order:55}
html[data-celular] .seg{order:40}
html[data-celular] .seg button{padding:6px 10px}
html[data-celular] .strip{order:50;flex:1 1 0;flex-wrap:nowrap;overflow:hidden;gap:10px;padding:0 2px}
html[data-celular] .strip #msg{display:none}
html[data-celular] .grp.tools{
  order:60;flex:1 1 100%;margin:0 -4px;padding:0 4px;overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
  -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);
}
html[data-celular] .grp.tools::-webkit-scrollbar{display:none}
html[data-celular] .grp.tools > *{flex:none}
html[data-celular] .player{
  display:flex;align-items:center;justify-content:space-between;gap:4px;
  position:fixed;z-index:45;left:max(10px,var(--sal));right:max(10px,var(--sar));
  bottom:calc(10px + var(--sab));
  padding:6px 8px;border-radius:999px;
  background:var(--glass-strong);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(190%);backdrop-filter:blur(var(--glass-blur)) saturate(190%);
  box-shadow:inset 0 1px 0 var(--spec),inset 0 0 0 1px var(--rim),var(--glass-shadow);
}
html[data-celular] .player .grp{gap:0}
html[data-celular] .player .lbl,html[data-celular] .player #voice{display:none}
html[data-celular] .player button.icon.sm{padding:9px}
html[data-celular] .player button.accent{width:46px;height:46px;margin:0 2px}
html[data-celular] .player button.num{min-width:48px}
html[data-celular] body{padding-bottom:84px}
html[data-celular][data-theater="on"] .player{background:rgba(16,18,36,.86)}
html[data-celular][data-theater="on"] .quebra{display:none}
@media (max-width:380px){html[data-celular] #stop{display:none}}

/* ── toque de cor (paletas Nanquim com "pop") ───────────────────────────────── */
html[data-palette^="nanquim-"] button.accent{
  color:var(--on-pop);
  background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,0) 52%),var(--pop);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -1px 0 rgba(0,0,0,.1),0 8px 20px -6px var(--ic-sh)}
html[data-palette^="nanquim"] button.primary{background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 52%),var(--accent-fill)}
html[data-palette="nanquim-tinta"] button.accent{
  color:var(--pop-fg);
  background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,0) 52%),linear-gradient(180deg,var(--pop-bg1),var(--pop-bg2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 0 0 1px var(--pop-rim),0 10px 22px -8px var(--ic-sh)}
html[data-palette="nanquim-tinta"] button.accent svg{filter:drop-shadow(0 0 5px var(--pop-glow))}
html[data-palette^="nanquim-"] .sw[aria-checked="true"]{background:var(--pop)}
html[data-palette^="nanquim-"] .rail i{background:var(--pop)}
html[data-palette^="nanquim-"] .contabtn.on{background:var(--pop)}
html[data-palette^="nanquim-"] .contabtn.on .ini{color:var(--on-pop)}
html[data-palette^="nanquim-"] .ctplano-bt{background:var(--pop);color:var(--on-pop)}
html[data-palette="nanquim-tinta"] .ctplano-bt{color:var(--pop-fg);background:linear-gradient(180deg,var(--pop-bg1),var(--pop-bg2));box-shadow:inset 0 0 0 1px var(--pop-rim)}

/* Bloco branco: a trilha de leitura no degradê do realce */
html[data-palette="nanquim-tinta"] .rail i{background:linear-gradient(90deg,#B4C3FF,#7D96FF 60%,#5B7CFF)}
html[data-palette="nanquim-tinta"] .docchip i{background:var(--pop);box-shadow:0 0 6px var(--pop)}

/* convite para entrar (aparece no 2º documento; ver conta.js) */
.convite{position:fixed;z-index:8500;right:20px;bottom:24px;width:min(23rem,calc(100vw - 24px));padding:18px 18px 16px;border-radius:24px;
  background:var(--glass-strong);color:var(--ink);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(190%);backdrop-filter:blur(var(--glass-blur)) saturate(190%);
  box-shadow:inset 0 1px 0 var(--spec),inset 0 0 0 1px var(--rim),var(--glass-shadow);
  opacity:0;transform:translateY(12px);transition:opacity .25s,transform .3s cubic-bezier(.2,.9,.25,1.1)}
.convite.on{opacity:1;transform:none}
.convite b{display:block;font-family:var(--brand-font),var(--ui-font);font-size:16px;font-weight:600;letter-spacing:-.02em;padding-right:28px}
.convite p{margin:6px 0 14px;font-size:13px;line-height:1.5;color:var(--muted)}
.convite .cv-bts{display:flex;gap:8px;flex-wrap:wrap}
.convite .cv-sim,.convite .cv-nao{border:0;cursor:pointer;border-radius:999px;padding:9px 15px;font-size:13px;font-weight:600}
.convite .cv-sim{color:var(--on-accent);background:var(--accent-fill)}
.convite .cv-nao{color:var(--ink);background:var(--fill)}
.convite .cv-x{position:absolute;top:10px;right:10px;width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center}
.convite .cv-x svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
html[data-palette^="nanquim-"] .convite .cv-sim{background:var(--pop);color:var(--on-pop)}
html[data-palette="nanquim-tinta"] .convite .cv-sim{color:var(--pop-fg);background:linear-gradient(180deg,var(--pop-bg1),var(--pop-bg2));box-shadow:inset 0 0 0 1px var(--pop-rim)}
html[data-celular] .convite{left:12px;right:12px;width:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 104px)}
@media (prefers-reduced-motion:reduce){.convite{transition:none}}

/* caixa "Sua opinião" (contagem.js) — mesma receita do painel da conta */
.fbscrim{position:fixed;inset:0;z-index:9000;background:rgba(14,16,38,.3);opacity:0;pointer-events:none;transition:opacity .2s;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.fbscrim.open{opacity:1;pointer-events:auto}
.fbpanel{position:fixed;z-index:9001;left:50%;top:50%;width:min(26rem,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow:auto;border-radius:30px;padding:24px 22px 20px;
  background:var(--glass-strong);color:var(--ink);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(190%);backdrop-filter:blur(var(--glass-blur)) saturate(190%);
  box-shadow:inset 0 1px 0 var(--spec),inset 0 0 0 1px var(--rim),var(--glass-shadow);
  transform:translate(-50%,-48%) scale(.96);opacity:0;pointer-events:none;transition:opacity .22s,transform .28s cubic-bezier(.2,.9,.25,1.1)}
.fbpanel.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.fbpanel h2{margin:0 0 4px;font-family:var(--brand-font),var(--ui-font);font-size:21px;font-weight:600;letter-spacing:-.03em}
.fbpanel .fb-sub{margin:0 0 16px;font-size:13px;line-height:1.5;color:var(--muted);padding-right:30px}
.fbpanel .fb-x{position:absolute;top:14px;right:14px;width:32px;height:32px;border:0;border-radius:50%;background:var(--fill);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center}
.fbpanel .fb-x svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.fb-nota{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.fb-nota button{border:0;cursor:pointer;border-radius:16px;padding:12px 10px;font-size:13.5px;font-weight:600;color:var(--ink);background:var(--group-bg);box-shadow:inset 0 0 0 .5px var(--line);transition:box-shadow .15s,background .15s}
.fb-nota button[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 12%,var(--group-bg));box-shadow:inset 0 0 0 1.5px var(--accent)}
.fb-campo{display:block;margin-bottom:12px}
.fb-campo span{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:0 2px 6px}
.fb-campo textarea,.fb-campo input{width:100%;border:0;border-radius:14px;padding:11px 13px;font:inherit;font-size:14px;color:var(--ink);background:var(--group-bg);box-shadow:inset 0 0 0 .5px var(--line);resize:vertical}
.fb-campo textarea:focus,.fb-campo input:focus{outline:none;box-shadow:inset 0 0 0 1.5px var(--accent)}
.fb-nota-priv{margin:2px 2px 14px;font-size:11.5px;line-height:1.5;color:var(--muted)}
.fb-bts{display:flex;gap:8px}
.fb-bts button{border:0;cursor:pointer;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:600}
.fb-enviar{color:var(--on-accent);background:var(--accent-fill)}
.fb-enviar:disabled{opacity:.6;cursor:default}
.fb-cancelar{color:var(--ink);background:var(--fill)}
.fb-erro{margin:10px 2px 0;font-size:12.5px;color:#D92D20}
html[data-theme="dark"] .fb-erro{color:#FF8A80}
html[data-palette^="nanquim-"] .fb-enviar{background:var(--pop);color:var(--on-pop)}
html[data-palette="nanquim-tinta"] .fb-enviar{color:var(--pop-fg);background:linear-gradient(180deg,var(--pop-bg1),var(--pop-bg2));box-shadow:inset 0 0 0 1px var(--pop-rim)}
.ini-sug{display:flex;justify-content:center;margin:8px 0 0}
.ini-sug button,.ctlinks button{border:0;background:none;cursor:pointer;font:inherit;color:var(--muted);text-decoration:underline;text-underline-offset:2px;padding:0}
.ini-sug button{font-size:12.5px}
@media (prefers-reduced-motion:reduce){.fbpanel,.fbscrim{transition:none}}


/* ── véu do topo (1.0) ─────────────────────────────────────────────────────
   A faixa do relógio/bateria e o espaço da barra de cima ganham um desfoque
   que esmaece para baixo: o texto que rola some suavemente antes de passar
   por trás da barra, e nada fica "brigando" com os ícones do sistema. */
html{--veu:calc(max(var(--railtop,0px),var(--sat)) + 18px)}
html[data-celular][data-tela="leitura"][data-barra="recolhida"]{--veu:calc(var(--sat) + 14px)}
body::before{
  content:"";position:fixed;left:0;right:0;top:0;height:var(--veu);z-index:39;pointer-events:none;
  background:var(--bgbase);background-attachment:fixed;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  --m:linear-gradient(180deg,#000 0,#000 var(--sat),rgba(0,0,0,.72) calc(var(--sat) + (var(--veu) - var(--sat)) * .5),transparent 100%);
  -webkit-mask-image:var(--m);mask-image:var(--m);
}
/* início: o véu cobre a barra inteira e esfuma logo abaixo dela */
html[data-tela="inicio"]{--veu:calc(var(--barh,0px) + 26px)}
html[data-tela="inicio"] body::before{
  --m:linear-gradient(180deg,#000 0,#000 calc(var(--barh,0px) - 8px),transparent 100%);
}
html[data-theater="on"] body::before{background:var(--theater-bg)}
@media print{body::before{display:none}}

/* ── ícones Material Symbols Rounded (1.0) ─────────────────────────────────
   Desenhados por preenchimento (não por traço): sobrepõe as regras antigas
   de stroke dos ícones de traço onde quer que estejam. */
svg.ms,svg.ms path{fill:currentColor !important;stroke:none !important}
svg.ms{overflow:visible}

/* 0.9.7 · toque duplo não amplia a interface (a pinça continua valendo no navegador) */
html{touch-action:manipulation}
