/* Layout: cabeçalho marrom com a marca + perfil, abas por módulo, conteúdo em painéis.
   Cores tiradas do logo: amarelo do disco, dourado da palha-da-costa, marrom do contorno. */
:root{
  /* Visual da casa (out/2026): cores com nome próprio
     Terra #141210 (fundo) · Barro #1E1B18 (cartões) · Algodão #F2EDE4 (texto) · Palha #D9B26A (destaques) · Sangue #C8373A (ações)
     O tema Escuro (Terra) é o padrão: mais limpo e confortável à noite, durante a gira. O Claro usa Algodão de fundo. */
  --terra:#141210; --barro:#1e1b18; --algodao:#f2ede4; --palha:#d9b26a; --sangue:#c8373a;
  --bg:#f2ede4; --surface:#fbf9f5; --line:#e0d8cb; --fg:#141210; --muted:#5e564c;
  --field:#8a8174; --field-hover:#5e564c; --label:#1e1b18; --focus:#a87b2a; --focus-ring:#ecdcb8;
  --primary:#c8373a; --primary-hover:#b02e31; --on-primary:#fffaf3; --zebra:#f6f2ec; --radius:20px;
  --accent:#8a6420; --accent-soft:#ebe4d7; --on-accent:#fffaf3;
  --gold:#d9b26a; --gold-hi:#e6c88e; --on-gold:#141210;
  --head:#f2ede4; --head-fg:#141210; --head-muted:#5e564c;
  --mp:#0a5db8; --mp-bg:#e1ecf9;
  --serie-ent:#2a78d6; --serie-sai:#eb6834; --serie-saldo:#8a6420;   /* gráficos: cores conferidas para daltonismo e contraste */
  --ok:#2f6b3a; --warn:#9a520e; --bad:#a82a2d; --ok-bg:#e1eedb; --warn-bg:#f8e3c4; --bad-bg:#f6dbd6;
  --shadow:0 1px 2px rgb(20 18 16 / .04),0 6px 18px rgb(20 18 16 / .06);   /* relevo leve: no fundo Algodão, o cartão se destaca do fundo */
  --display:"Bricolage Grotesque",system-ui,sans-serif; --body:"Inter",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#141210; --surface:#1e1b18; --line:#2f2a25; --fg:#f2ede4; --muted:#a8a095;
  --field:#7a7166; --field-hover:#a8a095; --label:#f2ede4; --focus:#d9b26a; --focus-ring:#4a3d24;
  --primary:#c8373a; --primary-hover:#d64a4d; --on-primary:#fffaf3; --zebra:#1a1815; --radius:20px;
  --accent:#d9b26a; --accent-soft:#2a2520; --on-accent:#141210;
  --gold:#d9b26a; --gold-hi:#e6c88e; --on-gold:#141210;
  --head:#141210; --head-fg:#f2ede4; --head-muted:#a8a095;
  --mp:#8fc0f5; --mp-bg:#172434;
  --serie-ent:#d9b26a; --serie-sai:#7d7468; --serie-saldo:#8fcf9e;
  --ok:#8fcf9e; --warn:#f0a27a; --bad:#f0857f; --ok-bg:#1c2c20; --warn-bg:#35231a; --bad-bg:#3a1d1c;
  --shadow:none; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#141210; --surface:#1e1b18; --line:#2f2a25; --fg:#f2ede4; --muted:#a8a095;
  --field:#7a7166; --field-hover:#a8a095; --label:#f2ede4; --focus:#d9b26a; --focus-ring:#4a3d24;
  --primary:#c8373a; --primary-hover:#d64a4d; --on-primary:#fffaf3; --zebra:#1a1815; --radius:20px;
  --accent:#d9b26a; --accent-soft:#2a2520; --on-accent:#141210;
  --gold:#d9b26a; --gold-hi:#e6c88e; --on-gold:#141210;
  --head:#141210; --head-fg:#f2ede4; --head-muted:#a8a095;
  --mp:#8fc0f5; --mp-bg:#172434;
  --serie-ent:#d9b26a; --serie-sai:#7d7468; --serie-saldo:#8fcf9e;
  --ok:#8fcf9e; --warn:#f0a27a; --bad:#f0857f; --ok-bg:#1c2c20; --warn-bg:#35231a; --bad-bg:#3a1d1c;
  --shadow:none; color-scheme:dark}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.55 var(--body);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--head)}
/* Largura: o conteúdo acompanha o monitor (com margens que crescem junto) até 2400px; em telas maiores, fica centralizado */
.wrap{max-width:2400px;margin:0 auto;padding-left:max(clamp(16px,3vw,56px),env(safe-area-inset-left,0px));padding-right:max(clamp(16px,3vw,56px),env(safe-area-inset-right,0px))}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--head);color:var(--head-fg);border-bottom:1px solid var(--line)}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:14px 10px}
.brand{display:flex;align-items:center;gap:14px;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:12px}
.brand:hover .mark{box-shadow:0 0 0 3px var(--gold-hi)}
.mark{width:54px;height:54px;flex:none;display:block;border-radius:50%;box-shadow:0 0 0 1.5px var(--gold)}
.brand b{font:700 1.55rem/1 var(--display);letter-spacing:.06em;display:block;color:var(--fg)}
.brand small{display:block;line-height:1.25;margin-top:3px;color:var(--head-muted);font-size:.95rem}
[hidden]{display:none!important}
.controles{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px 16px}
.tema{display:block}
.tema select{width:auto;min-height:40px;padding:6px 12px;font-size:.95rem;background:transparent;color:var(--head-fg);border:1.5px solid var(--line);border-radius:999px;cursor:pointer}
.tema select:hover{border-color:var(--field)}
.tema option{color:#2b2116;background:#fffcf2}
.pular{position:absolute;left:-999px;top:8px;z-index:20;background:var(--primary);color:var(--on-primary);padding:10px 16px;border-radius:12px;font-weight:700;text-decoration:none}
.pular:focus{left:16px;outline:3px solid var(--focus);outline-offset:2px}
#conteudo:focus{outline:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.user{display:flex;align-items:center;gap:10px;font-size:1rem;color:var(--head-fg)}
.user > span:first-child{color:var(--gold)}
.linkbtn{background:none;border:0;color:var(--head-muted);text-decoration:underline;cursor:pointer;font:inherit;padding:6px}
.linkbtn:hover{color:var(--gold-hi)}
select,input{font:inherit;font-weight:400;font-size:1.02rem;color:var(--fg);background:var(--surface);border:1.5px solid var(--field);border-radius:10px;padding:12px 14px;width:100%;min-height:48px}
select:hover,input:hover,textarea:hover{border-color:var(--field-hover)}
/* Ao clicar numa caixa: borda dourada e um halo claro em volta (fica claro onde se está digitando) */
select:focus,input:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-ring)}
::placeholder{color:var(--muted);opacity:1}
input[type=checkbox],input[type=radio]{accent-color:var(--primary)}
/* Seta das caixas de seleção: desenhada pelo app, mais visível (no tema escuro, a clara) */
select:not([multiple]){appearance:none;-webkit-appearance:none;background-image:url(seta.svg);background-repeat:no-repeat;background-position:right 14px center;background-size:14px;padding-right:40px!important}
:root[data-theme="dark"] select:not([multiple]){background-image:url(seta-clara.svg)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) select:not([multiple]){background-image:url(seta-clara.svg)}}
.tema select:not([multiple]){background-position:right 12px center;padding-right:34px;border-color:var(--line);box-shadow:none}
.busca-selecao{min-height:40px;padding:8px 12px;font-size:.95rem;margin-bottom:6px}
/* Abas em coluna, à esquerda do conteúdo (só quando há mais de uma aba); no celular, atrás do botão "Menu" */
.layout{display:grid;gap:28px;align-items:start;padding-block:32px 56px}
.layout:has(#abas:not(:empty)){grid-template-columns:clamp(240px,17vw,290px) minmax(0,1fr)}
#abas:empty{display:none}
#abas{position:sticky;top:110px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px;box-shadow:var(--shadow)}
.lista-abas{display:flex;flex-direction:column;gap:4px}
.lista-abas button{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;text-align:left;background:none;border:0;border-radius:12px;padding:10px 14px;font:500 1rem var(--body);color:var(--muted);cursor:pointer}
.ico-aba{width:20px;height:20px;flex:none;color:var(--muted)}
.lista-abas button:hover{background:var(--accent-soft);color:var(--fg)}
.lista-abas button:hover .ico-aba{color:var(--fg)}
.lista-abas button[aria-current="page"]{background:var(--accent-soft);color:var(--fg);font-weight:700}
.lista-abas button[aria-current="page"] .ico-aba{color:var(--accent)}
.menu-abas{display:none}
main{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;min-width:0}
@media (max-width:899px){
  .layout:has(#abas:not(:empty)){grid-template-columns:minmax(0,1fr);gap:18px}
  #abas{position:static;padding:6px}
  .menu-abas{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;background:none;border:0;padding:10px 12px;font:700 1.05rem var(--body);color:var(--fg);cursor:pointer}
  .menu-abas small{font-weight:500;color:var(--muted)}
  #abas:not(.aberto) .lista-abas{display:none}
  #abas.aberto .lista-abas{margin-top:4px;border-top:1px solid var(--line);padding-top:6px}
}
.head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:14px}
.head .acoes{display:flex;flex-wrap:wrap;gap:10px}
h1{font:700 2.1rem/1.15 var(--display);letter-spacing:-.01em;margin:0;text-wrap:balance;color:var(--fg)}
.sub{color:var(--muted);margin:4px 0 0;font-size:1.05rem}
.btn{background:var(--primary);color:var(--on-primary);border:0;border-radius:14px;padding:12px 22px;min-height:48px;font:700 1rem var(--body);cursor:pointer;box-shadow:0 1px 2px rgb(0 0 0 / .14);transition:background-color .15s,border-color .15s}
.btn:hover{background:var(--primary-hover)}
.btn.ghost{background:transparent;color:var(--fg);border:1.5px solid var(--field);box-shadow:none}
.btn.ghost:hover{border-color:var(--field-hover);background:var(--accent-soft)}
.btn.mp{background:var(--mp-bg);color:var(--mp);box-shadow:none}
.btn.small{padding:8px 14px;min-height:40px;font-size:.95rem}
.btn:disabled{opacity:.55;cursor:wait}
/* Ícone desenhado na frente do texto do botão (js/icones.js troca o emoji por ele) */
.ico-btn{display:inline-flex;vertical-align:-.18em;margin-right:.4em}
.ico-btn svg{width:1.15em;height:1.15em}
.ico-btn:last-child{margin-right:0}
button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow)}
.kpi span{color:var(--muted);font-size:1rem;font-weight:500}
.kpi b{display:block;font:700 2.2rem/1.2 var(--display);letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-top:6px}
.kpi small{color:var(--muted);font-size:.95rem}
.kpi .btn{margin-top:8px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.panel h2{font:700 1.2rem var(--display);margin:0;padding:18px 24px;border-bottom:1px solid var(--line);background:var(--surface);color:var(--fg)}
.scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:1.02rem}
th,td{text-align:left;padding:15px 20px;border-bottom:1px solid var(--line);white-space:nowrap}
th{color:var(--muted);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.09em;background:transparent}
tbody tr:nth-child(even){background:var(--zebra)}
tbody tr:hover{background:var(--accent-soft)}
tr:last-child td{border-bottom:0}
td.num{text-align:right;font-variant-numeric:tabular-nums}
td small{display:block;color:var(--muted);font-size:.85rem}
.pill{display:inline-block;padding:3px 12px;border-radius:999px;font-size:.85rem;font-weight:700}
.ok{background:var(--ok-bg);color:var(--ok)}.warn{background:var(--warn-bg);color:var(--warn)}.bad{background:var(--bad-bg);color:var(--bad)}
.pill.mpp{background:var(--mp-bg);color:var(--mp)}.pill.man{background:var(--accent-soft);color:var(--accent)}
.del{background:none;border:0;color:var(--muted);cursor:pointer;font-size:1.1rem;padding:8px 10px;border-radius:8px}
.del:hover{color:var(--fg);background:var(--accent-soft)}
.del.x{color:var(--bad);opacity:.8}
.del.x:hover{color:var(--bad);background:var(--bad-bg);opacity:1}
.seg{display:inline-flex;flex-wrap:wrap;gap:8px;background:none;border:0;padding:0;justify-self:start}
.seg button{background:none;border:1.5px solid var(--field);border-radius:999px;padding:9px 20px;min-height:44px;font:600 1rem var(--body);color:var(--fg);cursor:pointer}
.seg button:hover{background:var(--accent-soft)}
.seg button[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.list li .lado{display:flex;align-items:center;gap:12px;font-variant-numeric:tabular-nums}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.list{list-style:none;margin:0;padding:0}
.list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line);font-size:1.02rem}
.list li:last-child{border-bottom:0}
.empty{padding:28px 20px;color:var(--muted);font-size:1.02rem}
.note{font-size:.95rem;color:var(--muted);margin:0}
.aviso{background:var(--accent-soft);border-left:3px solid var(--gold);border-radius:14px;padding:14px 18px;font-size:1rem}
.estoque-aviso{margin:0 0 20px}
.estoque-aviso ul{margin:6px 0 8px;padding-left:20px}
.estoque-aviso small{color:var(--muted)}
.login{max-width:440px;margin:48px auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.login h1{padding:24px 24px 0}
.login form{padding:20px 24px 26px;gap:16px}
.login .btn{width:100%}
dialog{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--fg);padding:0;width:min(540px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;box-shadow:0 20px 50px rgb(0 0 0 / .3)}
dialog::backdrop{background:rgb(10 9 8 / .7)}
fieldset{border:1.5px solid var(--line);background:color-mix(in srgb,var(--bg) 40%,var(--surface));border-radius:12px;padding:16px;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
legend{padding:0 8px;font:700 1.05rem var(--display);color:var(--accent)}
.dhead{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);background:var(--surface)}
.dhead h2{font:700 1.4rem var(--display);margin:0}
form{display:grid;gap:16px;padding:22px}
label{display:grid;gap:6px;font-size:.98rem;font-weight:700;color:var(--label)}
.actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;padding-top:6px}
.erro{color:var(--bad);font-size:1rem;margin:0}
.linkbox{display:flex;gap:8px}
.linkbox input{min-width:0;font-size:.95rem}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--fg);color:var(--bg);border:0;padding:12px 20px;border-radius:14px;font-weight:700;max-width:calc(100% - 32px);z-index:20;box-shadow:0 10px 30px rgb(0 0 0 / .25)}
@media (prefers-reduced-motion:no-preference){.toast{animation:up .2s ease-out}@keyframes up{from{transform:translate(-50%,8px);opacity:.4}}}
/* Início */
.inicio-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:start;gap:8px 20px}
.inicio-head h1{font-size:2.4rem}
.hoje{color:var(--muted);font-size:1rem;padding-top:8px;margin:0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
/* Cartão de número estreito (4 por linha num monitor comum): o texto desce para baixo do ícone e o número acompanha a largura da tela, em vez de cortar */
.stat{flex-wrap:wrap}
.stat > div{flex:1 1 150px;min-width:0}
.stat{display:flex;align-items:center;gap:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px 22px;box-shadow:var(--shadow);min-height:132px}
/* Ícones (Lucide): quadradinho de cantos bem redondos, com um leve degradê dourado e uma borda fina */
.ico{width:60px;height:60px;flex:none;border-radius:18px;display:grid;place-items:center;color:var(--accent);background:linear-gradient(150deg,var(--accent-soft),color-mix(in srgb,var(--accent-soft) 80%,var(--gold)));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 28%,transparent)}
.ico svg{width:28px;height:28px}
.stat > div > span{display:block;font-size:.98rem;color:var(--muted)}
.stat b{display:block;font:700 clamp(1.5rem,1.4vw + .5rem,1.9rem)/1.15 var(--body);font-variant-numeric:tabular-nums;white-space:nowrap}
.stat b.txt{font-size:1.4rem;line-height:1.2;white-space:normal}
.stat small{display:block;color:var(--muted);font-size:.9rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:20px;align-items:start}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow);display:grid;gap:14px;align-content:start;min-height:220px}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.card-head h2{font:700 1.2rem var(--body);margin:0}
.pillbtn{background:var(--accent-soft);color:var(--fg);border:0;border-radius:999px;padding:9px 18px;font:500 .95rem var(--body);cursor:pointer;white-space:nowrap}
.pillbtn:hover{background:var(--gold-hi);color:var(--on-gold)}
.vazio{color:var(--muted);font-size:1.05rem;margin:0}
.ativ-titulo{font:700 1.4rem/1.25 var(--display);margin:0}
.ativ-quando{color:var(--accent);font-weight:700;margin:0}
.rosca{display:flex;align-items:center;justify-content:center;gap:16px 26px;flex-wrap:wrap}
.rosca svg{width:140px;height:140px;flex:none}
.rosca ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:1rem}
.rosca li b{font-variant-numeric:tabular-nums}
.legenda{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:1px}
.alerta-resumo{font-size:1.15rem;margin:0}
.linhas{list-style:none;margin:0;padding:0}
.linhas li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:11px 0;border-bottom:1px solid var(--line)}
.linhas li:last-child{border-bottom:0}
.linhas li b{font-variant-numeric:tabular-nums}
.ponto{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:2px;background:var(--warn)}
.ponto.bad{background:var(--bad)}
.linhas li.passada{color:var(--muted)}
.linhas li small{display:block;margin-top:2px}
/* Página do médium */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}
@media (max-width:900px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.barra{height:10px;border-radius:999px;background:var(--accent-soft);overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}
.barra span{display:block;height:100%;background:var(--gold);border-radius:999px}
.lado-botoes{display:flex;flex-wrap:wrap;align-items:center;gap:4px;flex:0 1 auto;min-width:0;max-width:100%}
.del:disabled{opacity:.3;cursor:default;background:none}
.aulas-gestao{margin:0;padding:0;list-style:none;display:grid;gap:0}
.aulas-gestao li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.aulas-gestao li:last-child{border-bottom:0}
.aulas-gestao li small{display:block;overflow-wrap:anywhere}
.aulas{list-style:none;margin:0;padding:0}
.aulas li{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.aulas li:last-child{border-bottom:0}
.aulas li > span:nth-child(2){flex:1;min-width:0}
.aulas li small{display:block}
.aulas .num{width:40px;height:40px;flex:none;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--accent-soft);color:var(--accent)}
.aulas li.feita .num{background:var(--ok-bg);color:var(--ok)}
.aulas li.atual .num{background:var(--gold);color:var(--on-gold)}
.aulas li.bloqueada{color:var(--muted)}
.aulas li.bloqueada .num{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}
.aula-texto{white-space:pre-line;font-size:1.08rem;line-height:1.65;margin:0}
.aula-fim{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding-top:14px;border-top:1px solid var(--line)}
a.btn{display:inline-block;text-decoration:none}
.btn.wa{background:#25d366;color:#06351c;text-align:center}
.btn.wa:hover{background:#3ee07a}
.cob-mens{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.cob-mens input:disabled{opacity:.5}
.cob-itens{list-style:none;margin:-6px 0 0;padding:0 0 0 34px;font-size:.92rem;color:var(--muted)}
.cob-itens li{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}
.cob-total{font-size:1.15rem;margin:0;padding-top:10px;border-top:1px solid var(--line)}
.cob-total b{font-size:1.4rem;font-variant-numeric:tabular-nums}
.titulo-secao{font:700 1.4rem var(--display);margin:8px 0 -8px}
.fila-acao{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
.senha{display:grid;justify-items:start;background:var(--accent-soft);border-radius:14px;padding:12px 18px;min-width:170px}
.senha span{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.senha b{font:700 2.4rem/1.1 var(--body);color:var(--accent);font-variant-numeric:tabular-nums}
.senha small{color:var(--muted)}
.tile{min-height:200px;align-content:center}
.tile{position:relative;display:grid;justify-items:center;align-content:start;gap:10px;text-align:center;background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:20px;padding:28px 16px 24px;box-shadow:var(--shadow);cursor:pointer;font:inherit}
.tile:hover{border-color:var(--gold);transform:translateY(-2px)}
@media (prefers-reduced-motion:no-preference){.tile{transition:transform .15s,border-color .15s}}
.tile .ico{width:72px;height:72px;border-radius:22px}
.tile .ico svg{width:34px;height:34px}
@media (prefers-reduced-motion:no-preference){.tile .ico{transition:transform .2s ease}.tile:hover .ico,.tile:focus-visible .ico{transform:translateY(-2px) scale(1.04)}}
.tile b{font-size:1.15rem;line-height:1.25}
.tile small{color:var(--muted);font-size:.92rem}
.badge{position:absolute;top:12px;right:12px;min-width:28px;padding:2px 9px;border-radius:999px;background:var(--sangue);color:#fff;font-weight:700;font-size:.9rem}
.voltar{justify-self:start;background:none;border:0;color:var(--accent);font:700 1.05rem var(--body);cursor:pointer;padding:6px 0}
.resposta{display:flex;flex-wrap:wrap;gap:10px}
.resposta .btn{flex:1;min-width:120px}
.btn.nao{background:var(--bad-bg);color:var(--bad)}
.msgs{display:grid;gap:16px}
.msg,.card.curto{min-height:0}
.msg h2{font:700 1.3rem var(--display);margin:0}
.msg p{margin:0;white-space:pre-line;font-size:1.05rem}
.cal-mes{text-align:center;flex:1}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-s{text-align:center;font-size:.8rem;font-weight:700;color:var(--muted)}
.cal-d{min-height:92px;border:1px solid var(--line);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.cal-d:hover{border-color:var(--gold)}
.cal-d.tem{background:color-mix(in srgb,var(--accent-soft) 35%,transparent)}
.dia-lista li{display:block}
.cal-d.fora{visibility:hidden}
.cal-d.hoje{border:2px solid var(--gold);background:color-mix(in srgb,var(--accent-soft) 50%,transparent)}
.cal-n{font-size:.85rem;font-weight:700}
.cal-ev{display:block;font-size:.8rem;line-height:1.3;background:var(--accent-soft);border-radius:6px;padding:1px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-ev.gira{background:var(--gold);color:var(--on-gold)}
.check{display:flex;align-items:center;gap:12px;color:var(--fg);font-size:1rem;font-weight:400;cursor:pointer}
.check input{width:22px;height:22px;min-height:0;padding:0;flex:none;accent-color:var(--gold);cursor:pointer}
fieldset.acessos{grid-template-columns:1fr}
fieldset.acessos .note{margin:0}
textarea{font:inherit;font-weight:400;font-size:1.02rem;color:var(--fg);background:var(--surface);border:1.5px solid var(--field);border-radius:10px;padding:12px 14px;width:100%;min-height:120px;resize:vertical}
@media (max-width:600px){
  .tiles{grid-template-columns:1fr 1fr;gap:12px}
  .tile:last-child:nth-child(odd){grid-column:1/-1}
  .tile{padding:20px 10px 18px;min-height:150px}
  .tile .ico{width:60px;height:60px}
  .tile .ico svg{width:30px;height:30px}
  .tile b{font-size:1.02rem}
  .tile small{font-size:.82rem}
  .cal{gap:3px}
  .cal-d{min-height:50px;padding:4px;align-items:center}
  .cal-ev{width:8px;height:8px;padding:0;border-radius:50%;font-size:0;box-shadow:inset 0 0 0 1px var(--line)}
  .inicio-head h1{font-size:1.9rem}
  .stat{min-height:0;padding:18px}
  .ico{width:50px;height:50px}
  .stat b{font-size:1.7rem}
  .card{padding:18px}
  .rosca svg{width:120px;height:120px}
  body{font-size:16px}
  .mark{width:46px;height:46px}
  .brand b{font-size:1.3rem}
  .brand small{font-size:.8rem}
  h1{font-size:1.7rem}
  .kpi b{font-size:1.9rem}
  th,td{padding:13px 16px}
  .list li{padding:13px 16px}
  .user > span:first-child{display:none}
  .top{flex-wrap:wrap;row-gap:8px;padding-block:10px 8px}
  .controles{width:100%;justify-content:space-between;gap:6px 8px}
  .mark{width:40px;height:40px}
  .brand{gap:10px}
  .brand b{font-size:1.15rem}
  .brand small{font-size:.78rem}
  .icone-topo,.sino{width:36px;height:36px}
  .sino{top:16px}
  .tema select{min-height:36px;padding:4px 10px;font-size:.88rem}
  .tema select:not([multiple]){padding-right:30px;background-size:12px;background-position:right 10px center}
  .letra-btn{min-width:38px;font-size:14px}
  .user{gap:6px;font-size:.92rem}
}
/* Gráficos do Financeiro (SVG desenhado em js/telas/financeiro.js) */
.graficos{align-items:start}
.graficos > .panel,.area-grafico{min-width:0}
.grafico-corpo{padding:14px 16px 10px;display:grid;gap:8px}
.legenda-grafico{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.95rem;color:var(--muted)}
.legenda-grafico li{display:flex;align-items:center;gap:8px}
.chave{width:12px;height:12px;border-radius:3px;display:inline-block}
.chave.ent,.chave-linha.ent{background:var(--serie-ent)}.chave.sai,.chave-linha.sai{background:var(--serie-sai)}.chave-linha.saldo{background:var(--serie-saldo)}
.area-grafico{min-height:240px}
.area-grafico svg{display:block;overflow:visible;touch-action:pan-y}
.area-grafico .grade{stroke:var(--line);stroke-width:1}
.area-grafico .zero{stroke:var(--muted);stroke-width:1;opacity:.6}
.area-grafico .eixo{fill:var(--muted);font:13px var(--body);font-variant-numeric:tabular-nums}
.area-grafico .valor{fill:var(--fg);font:700 13px var(--body);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}
.area-grafico .ent{fill:var(--serie-ent)}.area-grafico .sai{fill:var(--serie-sai)}
.area-grafico .mes.ativo path{filter:brightness(1.12)}
.area-grafico .linha{fill:none;stroke:var(--serie-saldo);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.area-grafico .lavado{fill:var(--serie-saldo);opacity:.1}
.area-grafico .marca{fill:var(--serie-saldo);stroke:var(--surface);stroke-width:2}
.area-grafico .mira{stroke:var(--muted);stroke-width:1}
.area-grafico .alvo{fill:transparent;cursor:crosshair;outline:none}
.area-grafico .alvo:focus-visible{fill:color-mix(in srgb,var(--gold) 14%,transparent)}
.dica{position:absolute;z-index:15;pointer-events:none;background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;box-shadow:var(--shadow);font-size:.92rem;display:grid;gap:4px;min-width:170px}
.dica b{font-weight:500;color:var(--muted)}
.linha-dica{display:flex;align-items:center;gap:8px}
.linha-dica strong{font-variant-numeric:tabular-nums}
.linha-dica span{color:var(--muted)}
.chave-linha{width:12px;height:3px;border-radius:2px;display:inline-block;flex:none}
.chave-linha:not(.ent):not(.sai):not(.saldo){background:transparent}
.tabela-meses summary{cursor:pointer;padding:14px 20px;font-weight:700;color:var(--accent)}
.tabela-meses[open] summary{border-bottom:1px solid var(--line)}
@media (max-width:520px){.grid2.graficos{grid-template-columns:1fr}}
/* Página de cadastro (link): guias e orixás do médium num quadro que abre */
.cd-guias summary{cursor:pointer;font-weight:700;color:var(--accent);padding:4px 0}
.cd-guias fieldset{margin-top:10px}
/* Aviso de privacidade (privacidade.html) e rodapé com o link para ele */
.privacidade .texto{padding:6px 24px 24px;max-width:780px}
.privacidade .texto h2{font:700 1.25rem var(--display);margin:26px 0 8px;padding:0;border:0;background:none;letter-spacing:.03em}
.privacidade .texto p,.privacidade .texto li{font-size:1.05rem;margin:0 0 10px}
.privacidade .texto ul{padding-left:22px;margin:0 0 10px}
.rodape{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));text-align:center;font-size:.95rem}
.rodape a,.consentimento a{color:var(--accent)}
.consentimento{display:flex;gap:10px;align-items:flex-start;font-size:.98rem;color:var(--fg);line-height:1.45}
.consentimento input{width:22px;height:22px;min-height:0;flex:none;margin-top:2px;accent-color:var(--gold)}

/* Rifas: grade de números, números da pessoa e resultado do sorteio */
.rifa{display:grid;gap:12px}
.rifa p{margin:0}
.rifa-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px;max-height:340px;overflow:auto;padding:2px}
.rifa-num{min-height:44px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--fg);font:700 1rem var(--body);font-variant-numeric:tabular-nums;cursor:pointer}
.rifa-num[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}
.rifa-num.meu{background:var(--ok-bg);border-color:var(--ok);color:var(--ok);cursor:default}
.rifa-num.ocupado{background:var(--line);color:var(--muted);text-decoration:line-through;cursor:default;opacity:.7}
.rifa-legenda{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.rifa-legenda i{display:inline-block;width:18px;min-height:18px;height:18px;border-radius:5px;vertical-align:middle;margin-right:4px}
.rifa-meus{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.rifa-meus li{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:4px 4px 4px 12px}
.rifa-meus b{font-size:1.15rem;font-variant-numeric:tabular-nums}
.rifa-resultado{display:grid;justify-items:center;gap:2px;padding:14px;border-radius:14px;background:var(--accent-soft);text-align:center}
.rifa-resultado span{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.rifa-resultado b{font:700 2.6rem var(--display);line-height:1.1}
.acoes-rifa{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.rifa details summary{cursor:pointer;font-weight:700;padding:6px 0}

/* Estoque por categoria: título do quadro com os botões ao lado */
.estoque-categorias{display:grid;gap:20px}
.panel-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;background:var(--accent-soft);border-bottom:1px solid var(--line);padding-right:12px}
.panel-head h2{border:0;background:none}
.panel-head .lado-botoes{flex-wrap:wrap;gap:6px;padding:8px 0 8px 20px}

/* Aniversários: parabéns no dia (página do médium) e destaque na lista */
.parabens{display:flex;gap:16px;align-items:flex-start;margin:0 0 20px;padding:18px 20px;border-radius:var(--radius);background:var(--surface);border:1.5px solid var(--gold)}
.parabens h2{font:700 1.4rem var(--display);margin:0 0 6px}
.parabens p{margin:0;font-size:1.05rem}
.parabens-icone{font-size:2.4rem;line-height:1}
.aniversario-hoje b{color:var(--accent)}
.linha-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.linha-form label{flex:1 1 200px}

/* Aviso do estoque com "Vou doar" e as doações prometidas */
.estoque-lista{list-style:none;padding:0;display:grid;gap:6px;max-width:760px}   /* em telas largas, o Vou doar fica perto do item */
.estoque-lista li{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.estoque-minhas-titulo{margin:10px 0 0}
.note.pad{padding:12px 20px 0;margin:0}

/* Membros: botão Cobrar antes do nome, alinhado em coluna (o nome quebra linha ao lado, sem empurrar o botão) */
.nome-cobrar{display:flex;align-items:center;gap:10px}
.nome-cobrar .btn{flex:none}

.rifa-pagar{display:grid;gap:6px;justify-items:start}
.rifa .kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}

/* Cantina: preço e estoque abaixo do nome do item */
.item-cantina small{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px}
.item-cantina .lado .btn{white-space:nowrap}

/* Caixa: filtro por quem pagou */
.filtro-pagador{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 16px;padding:14px 20px 0}
.filtro-pagador label{min-width:220px}

/* Cantina: quantidade disponível em destaque, à esquerda do item */
.item-cantina{display:flex;align-items:center;gap:12px}
.item-cantina .item-nome{flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.35}
/* Página do médium: o preço fica embaixo do nome (o nome tem a linha toda para ele, sem encostar no preço) */
.item-cantina .item-preco{display:block;margin-top:4px;font:700 1.05rem var(--display);color:var(--accent);font-variant-numeric:tabular-nums}
.item-cantina .lado{flex:none}
.compra-lado{flex:none;display:grid;justify-items:end;gap:4px;text-align:right}
.compra-lado .item-preco{margin:0}
.compra-situacao{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.compra-situacao small{color:var(--muted);font-size:.85rem}
.estoque-num{flex:none;display:grid;justify-items:center;width:100px;box-sizing:border-box;padding:6px 8px;border-radius:12px;line-height:1.1}
.estoque-num b{font:700 1.6rem var(--display);font-variant-numeric:tabular-nums}
.estoque-num small{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.estoque-num.vazio{visibility:hidden}
@media (max-width:600px){.item-cantina.gestao{flex-wrap:wrap}.item-cantina.gestao .lado{width:100%;justify-content:flex-end}
  /* no celular, a caixa da quantidade fica menor para sobrar espaço para o nome */
  .item-cantina{gap:10px}.estoque-num{width:80px;padding:6px 4px}.estoque-num b{font-size:1.3rem}.estoque-num small{font-size:.72rem;letter-spacing:0}}
.del.lapis{font-size:1rem;padding:2px 6px;vertical-align:middle}
.dados-mp{word-break:break-word}
.grupos-caixa{flex-wrap:wrap}
.saldos-mp{margin-top:18px}
.saldos-mp .kpi small{display:block;margin-top:4px}

/* Fila: escolha entre senha normal e prioritária */
.fila-tipos{display:flex;flex-wrap:wrap;gap:8px}

/* Temas das giras: faixa com a paleta, seletores de cor e prévia */
.faixa-tema{height:8px;border-radius:999px;margin:0 0 8px}
.tema-item{display:grid;gap:2px;min-width:0}
.tema-item .faixa-tema{width:120px;margin:0 0 4px}
.tema-linha{display:flex;align-items:center;gap:6px}
.tema-linha .faixa-tema{width:36px;height:6px;margin:0}
.cores-tema{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.cor-tema{display:flex;align-items:center;gap:2px}
.cor-tema input[type=color]{width:48px;height:40px;padding:2px;border-radius:10px}
.previa-tema{min-height:0}
.card .faixa-tema{height:10px;margin:-6px 0 4px}
.sobre-gira summary{cursor:pointer;font-weight:700}
.sobre-gira p{white-space:pre-line;margin:6px 0 0}

/* Lançar consumo: uma linha por item (item, quantidade, tirar) */
.linha-consumo{display:grid;grid-template-columns:1fr 84px 40px;gap:8px;align-items:end}
.linha-consumo .del{margin-bottom:6px}
.linha-consumo .outro-campos{grid-column:1/-1}
.linha-consumo .outro-campos:not([hidden]){display:grid;grid-template-columns:1fr 130px;gap:8px}
#lc-linhas{display:grid;gap:8px}

/* Membros: caixa de busca */
.busca{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px;margin:0 0 16px}
.busca-campo{flex:1 1 260px;display:grid;gap:4px}
.busca-campo span{font-weight:700}
.busca .note{flex-basis:100%;margin:0}

/* Página "Pagar com Pix" (link da cobrança) */
.pix-pagina{max-width:560px;padding-top:24px;display:grid;gap:16px}
.pix-pagina h1{margin:0}
.pix-valor{display:grid;gap:2px;margin:0}
.pix-valor span{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.pix-valor b{font:700 2.2rem var(--display)}
.pix-passos{margin:0;padding-left:22px;display:grid;gap:4px}
.pix-copiar{width:100%;min-height:56px;font-size:1.1rem}
.pix-copiar.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.pix-pagina textarea{font-family:ui-monospace,monospace;font-size:.85rem;word-break:break-all}
a.pix-copiar{display:flex;align-items:center;justify-content:center;text-decoration:none}
.pagar-botoes{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* Cartazes de cadastro: sempre claros (papel branco), um por página na impressão */
.cartazes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;align-items:start}
.cartaz{background:#fff;color:#1d1a16;border:1px solid var(--line);border-radius:18px;padding:32px 24px;display:grid;justify-items:center;text-align:center;gap:6px;box-shadow:var(--shadow)}
.cartaz-logo{width:96px;height:96px;margin-bottom:8px}
.cartaz-casa{margin:0;letter-spacing:.18em;text-transform:uppercase;font-weight:700;font-size:.85rem;color:#6b6358}
.cartaz h2{margin:6px 0 0;font:700 clamp(1.6rem,4vw,2.3rem)/1.15 var(--body);color:#1d1a16}
.cartaz-sub{margin:0 0 14px;font-size:1.15rem;color:#4a443c}
.cartaz-qr{width:min(100%,300px);border:3px solid #1d1a16;border-radius:16px;padding:8px;background:#fff}
.cartaz-qr .qr{display:block;width:100%;height:auto}
.cartaz-texto{max-width:30ch;margin:16px 0 4px;font-size:1.15rem;line-height:1.45;color:#1d1a16}
.cartaz-link{margin:4px 0 10px;font:.85rem ui-monospace,Menlo,monospace;color:#4a443c;word-break:break-all}
.cartaz .btn.ghost{color:#1d1a16;border-color:#1d1a16;background:#fff}
/* Impressão: um cartaz por folha (A4 ou Carta). Medidas em mm/pt, nunca em vh: no Safari o vh da impressão é o da janela,
   e um cartaz de "95% da tela" passava para a folha seguinte */
@page{size:A4 portrait;margin:12mm}
@media print{
  body:has(.cartazes){background:#fff}
  body:has(.cartazes)::before, body:has(.cartazes) header, body:has(.cartazes) footer, body:has(.cartazes) .head, body:has(.cartazes) .aviso, .nao-imprime, .toast{display:none !important}
  body:has(.cartazes) #abas{display:none !important}
  body:has(.cartazes) .layout{display:block;padding:0;margin:0;max-width:none}
  .cartazes{display:block}
  .cartaz{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2mm;height:auto;min-height:0;border:0;border-radius:0;box-shadow:none;padding:6mm 0 0;
    break-inside:avoid;page-break-inside:avoid;break-after:page;page-break-after:always}
  .cartaz:last-child{break-after:auto;page-break-after:auto}
  .cartaz-logo{width:28mm;height:28mm;margin:0 0 2mm}
  .cartaz-casa{font-size:10pt}
  .cartaz h2{margin:2mm 0 0;font-size:28pt}
  .cartaz-sub{margin:0 0 4mm;font-size:14pt}
  .cartaz-qr{width:100mm;padding:3mm;border-width:2.5pt}
  .cartaz-texto{margin:5mm 0 1mm;font-size:15pt}
  .cartaz-link{margin:1mm 0 0;font-size:9pt}
}

/* Fila de atendimento (gestão) */
.fila-gira-nome{margin:-6px 0 14px;color:var(--muted)}
.fila-proxima{margin:0 0 18px}
.fila-prox{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px}
.fila-prox p{margin:2px 0 0;font-size:1.3rem}
.fila-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;align-items:start;margin-top:18px}
.fila-col{display:grid;gap:18px}
.linhas.pad{padding:4px 20px}
ol.linhas{counter-reset:none}
.fila-ordem{display:inline-block;min-width:2.2em;color:var(--muted);font-variant-numeric:tabular-nums}
.fila-mediuns{list-style:none;margin:0;padding:12px 20px;display:grid;gap:8px}
.fila-mediuns li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:10px 14px;border-radius:10px;border:1px solid var(--line)}
.fila-mediuns li.livre{background:var(--ok-bg)}
.fila-mediuns li.livre small{color:var(--ok);font-weight:700}
.fila-mediuns li.ocupado{background:var(--warn-bg)}
.fila-mediuns li.ocupado small{color:var(--warn)}
.senha.chamada{background:var(--ok-bg)}
.senha.chamada b{color:var(--ok)}
.senha.chamada small{color:var(--ok);font-size:1rem}

/* Documentos: leitura e ciência do médium; editor da ADM */
.doc-ciencia{padding:0 0 4px}
.doc-topo{padding:18px 20px 4px}
.doc-topo h1{margin:4px 0}
.doc-texto{white-space:pre-wrap;overflow-wrap:anywhere;max-height:58vh;overflow:auto;margin:8px 20px;padding:16px 18px;background:var(--bg);border:1px solid var(--line);border-radius:12px;font-size:1rem;line-height:1.6}
.doc-texto.curto{max-height:55vh;margin:8px 0}
.doc-rodape{padding:4px 20px 18px;display:grid;gap:10px}
.doc-editor{min-height:340px;font-size:.95rem;line-height:1.5}
.pillbtn.ok{background:var(--ok-bg);color:var(--ok)}

/* Como chegar: o endereço da casa e os apps de mapa */
.como-chegar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.como-chegar-end{margin:2px 0 0;color:var(--muted)}
.apps-mapa{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.apps-mapa .btn{display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:1.05rem}

.justificativa{margin:8px 0 0}

/* Sininho das mensagens (médium), no topo à direita */
header .wrap{position:relative}
header.com-sino .top{padding-right:52px}
.sino{position:absolute;top:22px;right:max(clamp(16px,3vw,56px),env(safe-area-inset-right,0px));z-index:1;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:none;border:1.5px solid var(--line);color:var(--head-fg);cursor:pointer}
.sino:hover{border-color:var(--gold);color:var(--gold-hi)}
.sino-n{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--sangue);color:#fff;font:700 .78rem/20px var(--body);text-align:center}

/* Atividades: quem recebe e o filtro da gestão */
.destinatarios{display:grid;gap:8px}
.lista-destinatarios{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 12px;max-height:260px;overflow:auto;padding:6px 2px}
.filtro-atividades select{min-height:40px;padding:6px 12px;font-size:.95rem}

/* Eventos: caixa de criar, faixa com a cor do tema e detalhes */
.form-evento{display:grid;gap:12px}
.form-evento textarea{min-height:90px}
.ev-cor input[type=color]{width:72px;min-height:48px;padding:4px;cursor:pointer}
.ev-publico{display:grid;gap:4px;border:1px solid var(--line);border-radius:10px;padding:8px 14px}
.faixa-evento{height:10px;margin:-6px 0 6px;border-radius:999px}
.evento-det{margin:6px 0 0;font-size:.98rem}
.ponto-cor{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:middle;box-shadow:0 0 0 1px var(--line)}

/* Evento: várias cores, itens com "+ Item" e o pedido de doação */
.lista-cores{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.cor-evento{display:inline-flex;align-items:center;gap:2px}
.cor-evento input[type=color]{width:64px;min-height:44px;padding:3px;cursor:pointer}
.ev-cores,.ev-itens{display:grid;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 14px}
.ev-cores > button,.ev-itens > button{justify-self:start}
.lista-itens-ev{display:grid;gap:8px}
.item-evento{display:grid;grid-template-columns:minmax(0,1fr) 96px 40px;gap:8px;align-items:end}
.item-evento input[name=item_qtd]{padding-inline:10px}
@media (max-width:520px){.item-evento{grid-template-columns:minmax(0,1fr) 78px 34px}}
.evento-itens{margin-top:6px}
.evento-pedido-item + .evento-pedido-item{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}

/* Fila: quadro "Médiuns e guias" */
.guias-fila{margin-top:18px}
.pad-guias{padding:12px 20px 0}
.lista-guias .guia{display:inline-block;margin:4px 14px 0 0}

/* Meus guias: lista e "+ Guia" */
.novo-guia{display:grid;gap:10px;border:1px dashed var(--line);border-radius:10px;padding:12px;margin:10px 0}
.lista-meus-guias li{padding:8px 0}

/* Membros: orixás de cabeça e guias de cada médium */
.guias-membro{display:grid;gap:2px}
.guias-membro small{display:block;margin:0}

/* Topo: Atualizar, Alterar senha e Sair como ícones (o nome aparece ao passar o dedo/mouse e é lido pelo leitor de tela) */
.icone-topo{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:none;border:1.5px solid var(--line);color:var(--head-fg);cursor:pointer;padding:0}
.icone-topo:hover{color:var(--gold-hi);border-color:var(--gold)}
#sair:hover{color:#f3a59c;border-color:#f3a59c}
.user{gap:8px}

/* Membros → Editar: os guias que o médium tem, no topo do quadro "Guias e orixás" */
.resumo-guias{background:var(--accent-soft);border-radius:10px;padding:10px 14px;margin-bottom:8px}
.resumo-guias .note{margin:0 0 4px;font-weight:700}

/* Sininho: lista curta de avisos, embaixo do sino */
.painel-avisos{position:absolute;top:70px;right:max(16px,env(safe-area-inset-right,0px));z-index:20;width:min(380px,calc(100vw - 32px));max-height:min(70vh,520px);overflow:auto;background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px rgb(0 0 0 / .3)}
.painel-topo{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}
.painel-topo .linkbtn,.painel-rodape .linkbtn{color:var(--accent)}
.lista-avisos{list-style:none;margin:0;padding:0}
.lista-avisos li{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line)}
.cal-item{flex:1;display:flex;justify-content:space-between;align-items:center;gap:10px;background:none;border:0;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer}
.cal-item:hover b{text-decoration:underline}
.aviso-abrir{flex:1;display:flex;align-items:flex-start;gap:10px;background:none;border:0;padding:6px 4px;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:8px}
.aviso-abrir:hover{background:var(--accent-soft)}
.aviso-abrir small{display:block;color:var(--muted)}
.painel-avisos .vazio{padding:16px}
.painel-rodape{padding:10px 16px}
/* O item para onde o aviso levou fica marcado por um instante */
.destaque{outline:3px solid var(--gold);outline-offset:2px;transition:outline-color 1s}

/* Calendário: botão do calendário do celular, acima do mês */
.cal-celular{display:flex;justify-content:flex-end;margin-bottom:12px}

/* Certificados de conclusão: na tela e na impressão (um por folha, A4 deitada; cores fixas, de papel) */
.certificados{display:grid;gap:24px}
.certificado{background:#fffdf6;color:#2b2116;border-radius:12px;box-shadow:var(--shadow);padding:14px;aspect-ratio:297/210;max-width:100%}
.cert-borda{height:100%;border:3px double #b8892c;border-radius:8px;padding:5% 7%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.5em;box-sizing:border-box}
.cert-logo{width:clamp(48px,9%,96px);height:auto}
.cert-casa{margin:0;letter-spacing:.2em;text-transform:uppercase;font-weight:700;font-size:clamp(.7rem,1.4vw,1rem);color:#7a5a1c}
.cert-titulo{margin:.1em 0 .3em;font:700 clamp(1.4rem,3.6vw,2.6rem)/1.1 "Alegreya SC",Georgia,serif;color:#2b2116;letter-spacing:.04em}
.cert-texto{margin:0;font-size:clamp(.9rem,1.8vw,1.25rem);max-width:46ch}
.cert-nome{margin:.1em 0;font:700 clamp(1.4rem,3.4vw,2.4rem)/1.15 var(--body);color:#7a5a1c;border-bottom:1px solid #b8892c;padding:0 .6em .1em}
.cert-local{margin:.6em 0 0;font-size:clamp(.8rem,1.5vw,1.05rem);color:#4a3f30}
.cert-assinaturas{display:flex;gap:10%;justify-content:center;margin-top:auto;width:100%}
.cert-assina{display:grid;justify-items:center;min-width:30%;font-size:clamp(.75rem,1.4vw,1rem)}
.cert-linha{display:block;width:100%;border-top:1px solid #2b2116;margin-bottom:4px}
.cert-assina small{color:#4a3f30}
@page certificado{size:A4 landscape;margin:10mm}
@media print{
  body:has(.certificados){background:#fff}
  body:has(.certificados)::before, body:has(.certificados) header, body:has(.certificados) footer, body:has(.certificados) #abas, body:has(.certificados) .cert-barra, body:has(.certificados) .aviso{display:none !important}
  body:has(.certificados) .layout{display:block;padding:0;margin:0;max-width:none}
  .certificados{display:block}
  .certificado{page:certificado;box-shadow:none;border-radius:0;padding:0;width:277mm;height:188mm;aspect-ratio:auto;break-after:page;page-break-after:always;break-inside:avoid}
  .certificado:last-child{break-after:auto;page-break-after:auto}
  .cert-logo{width:26mm}
  .cert-casa{font-size:11pt}
  .cert-titulo{font-size:30pt}
  .cert-texto{font-size:15pt}
  .cert-nome{font-size:28pt}
  .cert-local{font-size:12pt}
  .cert-assina{font-size:11pt}
}
/* Doação em dinheiro (página do consulente): valores sugeridos */
.doa-sugestoes{display:flex;flex-wrap:wrap;gap:8px}
/* Aviso "Adicionar à tela de início" (js/instalar.js): cartão preso embaixo da tela, no celular */
.instalar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:30;width:min(520px,calc(100% - 24px));display:flex;gap:14px;align-items:flex-start;background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:0 12px 40px rgb(0 0 0 / .35)}
.instalar-icone{width:52px;height:52px;flex:none;border-radius:14px}
.instalar-texto{display:grid;gap:6px;min-width:0}
.instalar-texto p,.instalar-texto ol{margin:0;color:var(--muted);font-size:.95rem}
.instalar-texto ol{padding-left:20px;display:grid;gap:4px}
.instalar-botoes{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.ico-compartilhar{width:18px;height:18px;vertical-align:-3px;color:var(--accent)}
@media (prefers-reduced-motion:no-preference){.instalar{animation:sobe .25s ease-out}@keyframes sobe{from{transform:translate(-50%,16px);opacity:0}}}
/* Cantina do médium: escolha dos meses da dívida que vai pagar */
.meses-divida{display:grid;gap:6px;grid-template-columns:1fr;margin:12px 0 0;padding:12px 14px}
.meses-divida legend{font-weight:700;color:var(--label);padding:0 6px}
.meses-divida .check{display:flex;align-items:center;gap:10px;font-weight:500;color:var(--fg)}
.meses-divida .check span{flex:1}
.kpi .meses-divida .check b{display:inline;font:700 1.05rem var(--body);margin:0;font-variant-numeric:tabular-nums}
/* Pedidos da cantina do consulente (js/telas/pedidos.js): QR de retirada, itens e leitor do médium */
.pedido .pedido-qr{width:min(100%,240px);margin:8px auto;padding:10px;background:#fff;border-radius:14px}
.pedido .pedido-qr svg{display:block;width:100%;height:auto}
.pedido-codigo{text-align:center;font-size:1.05rem;letter-spacing:.08em;margin:0}
.pedido.pronto{border:1.5px solid var(--gold)}
.pedido-itens{list-style:none;margin:6px 0;padding:0;display:grid;gap:4px}
.pedido-itens li{display:flex;justify-content:space-between;gap:12px}
.pedido-itens.grande{font-size:1.15rem}
.qtd-pedido{display:flex;align-items:center;gap:10px}
.qtd-pedido b{min-width:1.6em;text-align:center;font-variant-numeric:tabular-nums}
.qtd-pedido .btn{min-width:44px;font-size:1.2rem;padding:4px 10px}
.leitor-qr video{width:100%;max-height:50vh;border-radius:14px;background:#000;object-fit:cover}

/* Olhinho nos campos de senha (base.js, olhosSenha) */
.campo-senha{position:relative;display:block}
.campo-senha input{padding-right:52px}
.olho-senha{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;background:none;border:0;border-radius:8px;color:var(--muted, var(--label));cursor:pointer}
.olho-senha:hover{color:var(--fg)}
.olho-senha:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.olho-senha svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Financeiro → Notas fiscais (telas/notas.js) */
.arquivo-nota{cursor:pointer}
.acoes-linha{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.itens-nota{display:block;max-width:46ch;white-space:normal}

/* "Esqueci a senha" na entrada e o aviso para cadastrar o e-mail (telas/senha.js) */
.login .esqueci{margin:-6px 0 0;text-align:right}
.login .esqueci .linkbtn{color:var(--accent);padding:4px 0}
.aviso-email p{margin:0 0 10px}

/* Financeiro → Prestação de contas (telas/prestacao.js): na tela e impressa (A4, fundo branco) */
.periodo-prestacao{display:grid;gap:12px}
.relatorio{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;display:grid;gap:10px}
.relatorio{grid-template-columns:minmax(0,1fr)}   /* uma tabela larga não alarga a página inteira */
.relatorio td:not(.num),.relatorio th:not(.num){white-space:normal}
/* No celular: letras e margens menores, para os valores caberem na tela sem cortar */
@media (max-width:600px){
  .relatorio{padding:14px 12px}
  .relatorio table{font-size:.82rem}
  .relatorio table:has(tr > :nth-child(4)){display:block;overflow-x:auto;max-width:100%}   /* tabela de 4 colunas ou mais desliza para o lado, sem alargar a página */
  .relatorio th,.relatorio td{padding:6px 4px}
  .relatorio th{letter-spacing:0}
  .rel-topo img{width:48px;height:48px}
}
.relatorio h3{margin:18px 0 4px;font-size:1.15rem}
.relatorio h4{margin:12px 0 4px;font-size:1rem}
.relatorio table{width:100%;border-collapse:collapse}
.relatorio th,.relatorio td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.relatorio .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.relatorio tr.total td{border-top:2px solid var(--fg);font-weight:700}
.rel-topo{display:flex;gap:16px;align-items:center;border-bottom:2px solid var(--line);padding-bottom:12px}
.rel-topo h2{margin:0}.rel-topo p{margin:2px 0}
.rel-casa{font-weight:700;letter-spacing:.02em}
.rel-info{display:grid;gap:6px;padding-left:18px;margin:0}
.rel-rodape{margin-top:18px}
.assinaturas{display:flex;gap:40px;flex-wrap:wrap;margin:48px 0 12px}
.assinaturas div{flex:1 1 200px;display:grid;gap:6px;text-align:center}
.assinaturas span{border-top:1px solid var(--fg);display:block}
.rel-axe{text-align:center;font-weight:700}
@media print{
  @page{size:A4;margin:14mm}
  :root:has(.relatorio), :root[data-theme]:has(.relatorio){--bg:#fff !important;--head:#fff !important;background:#fff !important;color-scheme:light}
  html:has(.relatorio), body:has(.relatorio){background:#fff !important}
  body:has(.relatorio)::before, body:has(.relatorio) header, body:has(.relatorio) footer, body:has(.relatorio) #abas, body:has(.relatorio) .seg,
  body:has(.relatorio) .nao-imprime, body:has(.relatorio) .aviso, body:has(.relatorio) .toast,
  body:has(.relatorio) .voltar, body:has(.relatorio) .head{display:none !important}
  body:has(.relatorio) .layout{display:block;padding:0;margin:0;max-width:none}
  .relatorio{--fg:#141210;--line:#cfc6b8;--muted:#5e564c;background:#fff;color:#141210;border:0;border-radius:0;padding:0;font-size:10.5pt}
  .relatorio *{color:#141210 !important}
  .relatorio tr, .relatorio th, .relatorio td, .relatorio thead, .relatorio tbody{background:#fff !important}
  .relatorio th, .relatorio td{border-color:#cfc6b8 !important}
  .relatorio tr.total td{border-top-color:#141210 !important}
  .relatorio .kpi{background:#fff !important;border:1px solid #cfc6b8 !important;box-shadow:none !important;break-inside:avoid}
  .relatorio .kpis{gap:8px}
  .relatorio .rel-bloco{break-inside:avoid;page-break-inside:avoid}
  .relatorio table{break-inside:auto}.relatorio tr{break-inside:avoid}
  .relatorio h3, .relatorio h4{break-after:avoid;page-break-after:avoid}
  .relatorio h3 + table, .relatorio h4 + table{break-before:avoid}
}

/* Notas fiscais → PDF para o contador (telas/notas.js) */
.nota-contador{border-top:1px solid var(--line);padding-top:6px}
.nota-contador h4{margin:8px 0 4px}
.relatorio dl.ficha{display:grid;grid-template-columns:minmax(110px,26%) minmax(0,1fr);margin:0}
.relatorio dl.ficha dt,.relatorio dl.ficha dd{margin:0;padding:6px 8px;border-bottom:1px solid var(--line);min-width:0}
.relatorio dl.ficha dt{font-weight:600;color:var(--muted);font-size:.92em}
.relatorio .cod-nota{font-family:ui-monospace,monospace;font-size:.88em;word-break:break-all;overflow-wrap:anywhere}

/* Estoque → Pedir doação (telas/estoque.js) */
.pedido-doacao li{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pedido-doacao .check span{display:grid}
.qtd-pedido-doacao{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.qtd-pedido-doacao input{width:96px}

/* Temas das giras: as ervas para o banho */
.erva-tema{margin-bottom:12px}
.linha-erva{display:flex;gap:8px;align-items:flex-end}
.linha-erva label{flex:1;min-width:0;margin:0}
.linha-erva select{width:100%;min-width:0}
.erva-tema [data-ervadesc]{display:block;margin-top:4px}
.ervas-gira{list-style:none;padding:0;margin:4px 0 0}
.ervas-gira li{padding:6px 0;border-top:1px solid var(--line, #0002)}
.ervas-gira small{display:block}
.faixa-adm{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}
.entrar-adm{margin:0 0 14px}
.recado-texto{white-space:pre-wrap;overflow-wrap:anywhere}
.recado-resposta{border-left:3px solid var(--gold);padding-left:12px;margin:10px 0}
.recado-resposta .note{margin:0 0 4px}
#painel-fila{position:fixed;inset:0;z-index:50;background:var(--bg,#141210);color:var(--ink,#f5efe6);display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;overflow:auto}
.painel-fechar{position:absolute;top:16px;right:16px}
.painel-corpo{width:100%;max-width:1100px}
.painel-gira{font-size:clamp(1.1rem,3vw,2rem);margin:0 0 3vh}
.painel-rotulo{font-size:clamp(.95rem,2vw,1.4rem);opacity:.75;margin:0}
.painel-senha{font:700 clamp(6rem,24vw,18rem)/1.05 var(--display);margin:1vh 0 4vh;font-variant-numeric:tabular-nums}
.painel-linhas{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.painel-lista{font:600 clamp(1.5rem,4vw,3rem)/1.3 var(--display);margin:6px 0 0}
.aviso-parecido{color:var(--bad,#b3262d);font-weight:600}
.pix-fora li{display:block}
.pix-fora li small{display:block;margin-top:3px}
.pix-fora .lado-botoes{margin-top:10px;gap:8px}
.botoes-leitura{display:flex;flex-wrap:wrap;gap:10px}
.botoes-leitura .btn{flex:1 1 220px}

/* Documento formatado (public/js/doc-rico.js): Orientações e Doutrina */
.doc-rico{max-width:820px;width:100%;min-width:0;margin:0 auto 32px}   /* min-width:0: dentro da grade da tela, a tabela não alarga a página */
.doc-cabeca{text-align:center;margin:8px 0 24px}
.doc-cabeca h1{font:700 clamp(1.7rem,5vw,2.4rem)/1.15 var(--display);margin:6px 0 6px}
.doc-saudacao{color:var(--accent);letter-spacing:.25em;text-transform:uppercase;font-size:.8rem;margin:0}
.doc-subtitulo{color:var(--muted);font-style:italic;margin:0}
.doc-indice{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:18px 0 0}
.doc-secao{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin:0 0 16px;scroll-margin-top:150px;overflow-wrap:anywhere}
.doc-secao h2{font:700 1.3rem/1.25 var(--display);margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid var(--accent-soft)}
.doc-secao h3{font:700 1.05rem var(--display);margin:18px 0 8px}
.doc-secao p,.doc-secao li{line-height:1.6}
.doc-secao ul,.doc-secao ol{padding-left:22px;margin:0 0 12px}
.doc-secao li{margin-bottom:6px}
.doc-nota{background:var(--accent-soft);border-left:4px solid var(--gold);border-radius:8px;padding:12px 16px;margin:12px 0 0}
.doc-alerta{background:var(--bad-bg);border-left:4px solid var(--bad);border-radius:8px;padding:12px 16px;margin:12px 0}
.doc-colunas{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0}
.doc-coluna{border-radius:12px;padding:14px 16px;border:1px solid var(--line)}
.doc-coluna>p{font-weight:700;margin:0 0 8px}
.doc-coluna ul{margin:0;padding-left:18px}
.doc-coluna.sim{background:var(--ok-bg)}.doc-coluna.sim>p{color:var(--ok)}
.doc-coluna.nao{background:var(--bad-bg)}.doc-coluna.nao>p{color:var(--bad)}
.doc-tabela{overflow-x:auto;margin:8px 0 12px}
.doc-tabela table{width:100%;border-collapse:collapse;font-size:.95rem}
.doc-tabela th{text-align:left;background:var(--accent-soft);padding:10px 12px}
.doc-tabela td,.doc-tabela th{white-space:normal}   /* as tabelas do app não quebram linha; aqui o texto é longo */
.doc-tabela td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.doc-tabela td:first-child{font-weight:600}
.doc-resumo{background:var(--terra);color:var(--algodao);border-color:var(--terra)}
.doc-resumo h2{border-bottom-color:var(--gold)}
.doc-fontes{text-align:center;color:var(--muted);font-size:.85rem;margin:8px 0}
.doc-fontes a,.doc-secao a{color:var(--accent)}
#d-previa{border:1px dashed var(--line);border-radius:12px;padding:12px;margin:8px 0;max-height:50vh;overflow:auto}
/* Celular: a tabela vira uma lista (cada linha um bloco), sem rolar para o lado */
@media (max-width:560px){.doc-tabela table,.doc-tabela tbody{display:block;width:100%}.doc-tabela thead{display:none}.doc-tabela tr{display:block;padding:10px 0;border-bottom:1px solid var(--line)}.doc-tabela td{display:block;border:0;padding:2px 0}}
.dupla-atendimento{background:var(--accent-soft);border-radius:10px;padding:10px 14px;margin:6px 0 10px}
.cambones-gira{margin:4px 0 6px}
.sub-atividades{font:700 .95rem var(--display);margin:14px 20px 4px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.ficha-registro .ficha-bloco{margin:10px 0}
.ficha-rotulo{font-weight:700;margin:0 0 4px;color:var(--muted);font-size:.9rem}
.ficha-texto{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.dia-trabalho{background:var(--ok-bg);border-radius:10px;padding:8px 12px;margin:8px 0}

/* Pesquisa anônima do atendimento (consulente) e resultado (gestão) */
.quadro-pesquisa .notas{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:8px 0 12px}
.quadro-pesquisa .nota{font-size:30px;line-height:1;min-width:44px;min-height:44px;border:0;background:none;color:var(--line);cursor:pointer;padding:4px}
.quadro-pesquisa .nota.marcada{color:var(--gold)}
.quadro-pesquisa .notas .note{margin-left:6px}
.notas-pesquisa li{display:grid;grid-template-columns:5.5em 1fr 2em;align-items:center;gap:8px}
.barra-pesquisa{display:block;height:10px;border-radius:5px;background:var(--accent-soft);overflow:hidden}
.barra-pesquisa span{display:block;height:100%;background:var(--gold)}

/* Letra maior (botão A+ no topo; js/tema.js): aumenta a página inteira, guardado em cada aparelho */
html.letra-1 body{zoom:1.15}
html.letra-2 body{zoom:1.3}
.letra-btn{font-weight:700;font-size:15px;min-width:44px}
.toast.desfazer{display:flex;align-items:center;gap:14px;padding:8px 8px 8px 18px}
.toast.desfazer[hidden]{display:none}

/* Tela do dia da gira (Fila em tela cheia, para o tablet) */
body.tela-gira #abas, body.tela-gira .menu-abas{display:none !important}
body.tela-gira main, body.tela-gira .layout{grid-template-columns:1fr !important;max-width:none}
body.tela-gira .fila-grade .btn{min-height:52px;font-size:17px}
body.tela-gira .head .sub{display:none}

/* Página aberta da casa (abaixo da entrada) */
.login-publico{max-width:520px;margin:24px auto 0;padding:0 16px}
.login-publico .card h3{margin:18px 0 6px;font-size:15px}
.login-publico .linhas li{flex-wrap:wrap}

/* Painel da TV (#painel=...): números grandes, sem menu */
body.modo-painel header, body.modo-painel #abas, body.modo-painel footer{display:none !important}
.painel-tv{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center;padding:24px}
.painel-gira{font-size:clamp(20px,3vw,34px);color:var(--muted, inherit)}
.painel-agora{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:clamp(22px,3vw,36px)}
.painel-agora b{font-size:clamp(90px,18vw,240px);line-height:1;color:var(--gold)}
.painel-antes{font-size:clamp(18px,2.6vw,30px)}
.painel-antes b{margin:0 10px}
.painel-espera{font-size:clamp(18px,2.4vw,28px)}

/* Estoque: ordenar os itens pela quantidade */
.filtro-estoque{margin:0 0 16px}
.filtro-estoque label{display:inline-flex;flex-direction:column;gap:6px;max-width:320px;width:100%}

/* Escala da gira */
.escala-linhas li{display:grid;grid-template-columns:1fr 1fr auto auto;gap:8px;align-items:center}
@media (max-width:560px){.escala-linhas li{grid-template-columns:1fr auto}.escala-linhas li select{grid-column:1}}
.escala-medium{margin:10px 0;padding:10px 12px;border-radius:12px;background:var(--accent-soft)}
.escala-medium p{margin:0 0 8px}

/* Código de segurança da gestão (médium) */
.qr-codigo{display:grid;place-items:center;margin:8px 0}
.qr-codigo svg{width:200px;height:200px;background:#fff;padding:8px;border-radius:12px}
.passos{margin:0 0 8px;padding-left:20px}

/* Pedido do médium com vários itens (cantina, bazar e loja) */
.pedido-linhas li{display:grid;grid-template-columns:1fr 84px auto;gap:8px;align-items:center}
.total-pedido{font-size:18px;margin:8px 0}
@media (max-width:520px){.pedido-linhas li{grid-template-columns:1fr auto;padding:8px 0;border-bottom:1px solid var(--line)}.pedido-linhas li select{grid-column:1 / -1}.pedido-linhas li input{width:96px}}

/* Senha no balcão e comprovante de pagamento: a janela aberta sai sozinha na impressão (o resto da tela some) */
.senha-balcao{text-align:center;padding:8px 0}
.senha-balcao p{margin:4px 0}
.senha-casa{font-size:.9rem;color:var(--muted)}
.senha-num{font-size:4.5rem;font-weight:800;line-height:1.05;letter-spacing:.02em}
.senha-nome{font-size:1.3rem;font-weight:700}
.senha-gira, .senha-dica{color:var(--muted)}
@media print{
  body:has(dialog[open] .imprimivel) > :not(dialog){display:none !important}
  dialog[open]:has(.imprimivel){position:static;inset:auto;transform:none;margin:0 auto;border:0;box-shadow:none;max-width:none;width:auto;max-height:none;overflow:visible;background:#fff;color:#000}
  dialog[open]:has(.imprimivel)::backdrop{display:none}
  dialog[open]:has(.imprimivel) .dhead, dialog[open]:has(.imprimivel) .nao-imprime{display:none !important}
  .imprimivel, .imprimivel *{color:#000 !important}
}
.lista-avisos-casa{list-style:none;margin:0;padding:0}
.lista-avisos-casa li{padding:8px 0;border-top:1px solid var(--line)}
.lista-avisos-casa li:first-child{border-top:0;padding-top:0}
.lista-avisos-casa p{margin:4px 0 0;white-space:normal}
.comprovante{padding:4px 0}
.comp-topo{display:flex;gap:12px;align-items:center}
.comp-topo p{margin:0}
.comp-casa{font-weight:700;font-size:1.05rem}
.comprovante h3{margin:14px 0 8px}
.comp-tabela{width:100%;border-collapse:collapse}
.comp-tabela th, .comp-tabela td{text-align:left;padding:6px 4px;border-top:1px solid var(--line);vertical-align:top}
.comp-tabela th{width:34%;font-weight:600;color:var(--muted)}
.calendario-impressao .cal-mes{margin:16px 0 6px;text-transform:capitalize;border-bottom:2px solid var(--line);padding-bottom:4px}
.cal-tabela{width:100%;border-collapse:collapse}
.cal-tabela td{padding:6px 4px;border-top:1px solid var(--line);vertical-align:top}
.cal-dia{width:7.5em;white-space:nowrap}
.cal-dia small{color:var(--muted)}
.cal-hora{width:4em;white-space:nowrap}
.relatorio-gira h3{margin:10px 0 6px}
.redes-casa{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 14px;margin:28px 0 8px;padding-top:14px;border-top:1px solid var(--line);font-size:.9rem}
.rede-link{display:inline-flex;align-items:center;gap:5px;color:var(--muted);text-decoration:none;padding:6px 2px}
.rede-link:hover, .rede-link:focus-visible{color:inherit;text-decoration:underline}
.enquete-resultado{list-style:none;margin:8px 0 4px;padding:0;display:grid;gap:6px}
.enquete-resultado li{display:grid;grid-template-columns:minmax(0,1fr) minmax(60px,35%) auto;gap:8px;align-items:center}
.enquete-resultado li.meu .enq-op{font-weight:700}
.enq-barra{height:10px;border-radius:6px;background:var(--line);overflow:hidden}
.enq-barra i{display:block;height:100%;background:var(--gold)}
.enq-n{font-size:.85rem;color:var(--muted);white-space:nowrap}
.enquete-opcoes{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.enquete-gestao{padding:10px 0;border-top:1px solid var(--line)}
.enquete-gestao:first-of-type{border-top:0}
.resumo-ano h3{margin:14px 0 6px}
.convidar:empty{display:none}
.convidar{margin-top:10px}
.painel-info{max-width:min(900px,92vw);padding:2vh 3vw;border-top:1px solid var(--line);text-align:center;font-size:clamp(16px,2vw,26px)}
.painel-info p{margin:.3em 0}
.pi-titulo{color:var(--muted);font-size:.85em;text-transform:uppercase;letter-spacing:.06em}
.pi-grande{font-size:1.5em;font-weight:700}
.pi-qrs{display:flex;justify-content:center;gap:4vw;flex-wrap:wrap}
.pi-qr{margin:0}
.pi-qr .qr{width:clamp(120px,16vw,220px);height:auto}
.pi-qr figcaption{margin-top:6px}
/* Atas de reunião */
.ata-passos{flex-wrap:wrap}
.ata-grade{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.ata-grade{grid-template-columns:1fr}}
.ata-dica{background:var(--line);border-radius:10px;padding:10px 12px;margin:0 0 12px;font-size:.95rem}
.ata-item{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 12px}
.ata-item legend{font-weight:700;padding:0 6px}
.ata-sugestoes{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
.ata-presentes-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 12px;margin:10px 0;max-height:420px;overflow:auto}
.ata-pendencias{list-style:none;margin:0;padding:0}
.ata-pendencias li{border-top:1px solid var(--line);padding:10px 0}
.ata-checklist{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:12px 0}
.ata-checklist ul{margin:6px 0 0 18px;padding:0}
.ata-checklist.ok{border-color:var(--ok)}
.ata-previa-card{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}
@media (max-width:900px){.ata-previa-card{position:static;max-height:none}}
.ata-texto{font-family:Georgia,"Times New Roman",serif;line-height:1.6;text-align:justify}
.ata-texto p{margin:0 0 .8em}
.ata-titulo{text-align:center;font-weight:700;letter-spacing:.02em}
.ata-lacuna{background:rgba(201,162,39,.25);border-radius:4px;padding:0 4px;font-style:italic}
.ata-assinaturas{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:48px;text-align:center}
.ata-assinaturas span{display:block;border-top:1px solid currentColor;margin-bottom:4px}
.ata-assinaturas small{display:block;color:var(--muted)}
@media print{
  body:has(.ata-texto) header, body:has(.ata-texto) footer, body:has(.ata-texto) #abas, body:has(.ata-texto) .head, body:has(.ata-texto) .seg,
  body:has(.ata-texto) .ata-form, body:has(.ata-texto) .aviso, body:has(.ata-texto) .toast, body:has(.ata-texto) .ata-previa-card > h2, body:has(.ata-texto) .ata-previa-card > .note{display:none !important}
  body:has(.ata-texto){background:#fff}
  body:has(.ata-texto) .ata-grade{display:block}
  body:has(.ata-texto) .card{border:0;box-shadow:none;background:#fff;padding:0;position:static;max-height:none;overflow:visible}
  .ata-texto, .ata-texto *{color:#000 !important}
  .ata-lacuna{background:none;border-bottom:1px solid #000}
}
/* Membros: resumo com filtros e cartões */
.membros-resumo{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.resumo-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:118px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:transparent;color:inherit;font:inherit;cursor:pointer;text-align:left}
.resumo-chip b{font-size:1.35rem;line-height:1}
.resumo-chip span{font-size:.82rem;color:var(--muted)}
.resumo-chip.warn b{color:var(--warn)}
.resumo-chip.ok b{color:var(--ok)}
.resumo-chip[aria-pressed="true"]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.ordem-campo{display:flex;flex-direction:column;gap:2px;font-size:.85rem}
.membros-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:14px}
.membro-card{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;background:var(--card, transparent)}
.membro-card.pendente{border-color:var(--warn)}
.membro-card h3{margin:0;font-size:1.05rem}
.mc-topo p{margin:2px 0 0}
.mc-pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.mc-linha{margin:0;font-size:.9rem}
.mc-linha > span{color:var(--muted);margin-right:4px}
.mc-acoes{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:auto}
.mc-acoes .del{margin-left:auto}
.mc-acoes a.btn{text-decoration:none}
.ficha-membro h3{margin:14px 0 6px}
/* Giras e eventos: agenda */
.giras-lista{display:grid;gap:10px;margin-bottom:16px}
.gira-card{display:flex;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px}
.gira-card.hoje{border-color:var(--gold)}
.gira-card.passada{opacity:.92}
.bloco-data{flex:0 0 58px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;background:var(--line);padding:6px 0;line-height:1.1}
.bloco-data b{font-size:1.5rem}
.bloco-data small{font-size:.8rem;text-transform:uppercase;color:var(--muted)}
.gira-corpo{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.gira-corpo h3{margin:0;font-size:1.05rem}
.gira-corpo .note{margin:0}
.gira-numeros{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:.92rem}
.gira-senhas{display:flex;align-items:center;gap:8px}
.barra-senhas{flex:1;max-width:220px;height:8px;border-radius:6px;background:var(--line);overflow:hidden}
.barra-senhas i{display:block;height:100%;background:var(--gold)}
.gira-acoes{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.gira-acoes .del{margin-left:auto}
/* Financeiro: extrato */
.extrato-filtros{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:6px 0 12px}
.extrato-mes{margin-bottom:14px}
.extrato-cab{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;padding:8px 0;border-bottom:2px solid var(--line)}
.extrato-cab > span{font-size:.9rem}
.valor-ent{color:var(--ok)}
.valor-sai{color:var(--bad)}
.extrato-lista{list-style:none;margin:0;padding:0}
.extrato-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line)}
.extrato-dia{font-weight:700;color:var(--muted);padding-top:2px}
.extrato-desc{display:flex;flex-direction:column;gap:2px;min-width:0}
.extrato-desc small{color:var(--muted);overflow-wrap:anywhere}
.extrato-valor{font-weight:700;white-space:nowrap}
.extrato-item.ent .extrato-valor{color:var(--ok)}
.extrato-item.sai .extrato-valor{color:var(--bad)}
/* Estoque: níveis */
.itens-estoque{list-style:none;margin:0;padding:0 14px 8px}
.item-estoque{padding:10px 0;border-bottom:1px solid var(--line);display:grid;gap:6px}
.ie-topo{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.ie-qtd{font-size:1.2rem;font-weight:700;white-space:nowrap}
.ie-baixo{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;align-items:center}
.nivel{position:relative;height:10px;border-radius:6px;background:var(--line);overflow:visible}
.nivel i{display:block;height:100%;border-radius:6px;background:var(--ok)}
.item-estoque.atencao .nivel i{background:var(--warn)}
.item-estoque.repor .nivel i{background:var(--bad)}
.nivel-min{position:absolute;top:-3px;width:2px;height:16px;background:currentColor;opacity:.6}
/* Consulentes: lista */
.cons-lista{list-style:none;margin:0;padding:0 14px}
.cons-linha{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.cons-ini{flex:0 0 38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--line);font-weight:700;font-size:.9rem}
.cons-dados{flex:1;min-width:160px;display:flex;flex-direction:column;gap:3px}
.cons-dados small{color:var(--muted)}
.cons-linha a.btn{text-decoration:none}
/* Tabelas que viram blocos no celular (cada linha um bloco, com o nome da coluna ao lado do valor) */
@media (max-width:700px){
  table.empilha thead{display:none}
  table.empilha, table.empilha tbody, table.empilha tr, table.empilha td{display:block;width:100%}
  table.empilha tr{border-bottom:1px solid var(--line);padding:8px 0}
  table.empilha tr[hidden]{display:none}
  table.empilha td{display:flex;justify-content:space-between;gap:10px;border:0;padding:3px 4px;text-align:right}
  table.empilha td, table.empilha td *{white-space:normal}
  table.empilha td{flex-wrap:wrap;align-items:center}
  table.empilha .nome-cobrar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
  table.empilha .nome-cobrar > span{flex-basis:100%;font-weight:700;order:-1}
  table.empilha td[data-rotulo]::before{content:attr(data-rotulo);color:var(--muted);font-weight:400;text-align:left}
  table.empilha td.cab-linha{font-weight:700;text-align:left;justify-content:flex-start;text-transform:capitalize}
  table.empilha + *, .scroll:has(table.empilha){overflow:visible}
}
/* Atividades extras: agenda por mês */
.ativ-card{display:flex;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px}
.ativ-card.hoje{border-color:var(--gold)}
.ativ-card.passada{opacity:.9}
.ativ-mes{margin:10px 0 6px;font-size:.95rem;color:var(--muted)}
.ativ-desc{margin:0;font-size:.92rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ativ-card h3{margin:0;font-size:1.05rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ata-votacao{border:1px dashed var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;display:grid;gap:8px}
.vot-opcoes{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.vot-opcoes li{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:8px;align-items:center}
.vot-opcoes input[type=number]{width:100%}
.vot-n{font-size:1.2rem;text-align:center}
/* Início da gestão */
.atencao{margin-bottom:12px}
.atencao-lista{list-style:none;margin:0;padding:0}
.atencao-lista li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.atencao-lista li:first-child{border-top:0}
.atencao-lista li > span:nth-child(2){flex:1}
.tudo-ok{margin:4px 0;color:var(--ok);font-weight:600}
.atalhos{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;margin-bottom:6px;scrollbar-width:thin}
.atalho{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:8px 14px;background:transparent;color:inherit;font:inherit;cursor:pointer;white-space:nowrap}
.atalho:hover, .atalho:focus-visible{border-color:var(--gold)}
.semana-lista{list-style:none;margin:0;padding:0}
.semana-lista li{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.semana-lista li:first-child{border-top:0}
.semana-lista li > span{flex:1;display:flex;flex-direction:column}
.semana-lista .bloco-data{flex:0 0 48px}
.ajustes-casa{margin-top:16px;border:1px solid var(--line);border-radius:14px;padding:10px 14px}
.ajustes-casa summary{cursor:pointer;font-weight:600}
.ajustes-casa summary small{font-weight:400;margin-left:6px}
.ajustes-casa .cards{margin-top:10px}
/* Atas: QR da presença e assinaturas */
.ata-qr-chamada{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px;padding:10px;border:1px dashed var(--gold);border-radius:12px}
.qr-presenca{text-align:center}
.qr-presenca .qr{width:min(320px,80vw);height:auto;margin:6px auto 10px;display:block}
.ata-ass-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.ata-assinaturas-app{font-size:.92rem}
/* Estudos (gestão) */
.cursos-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.curso-card{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.curso-topo{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.curso-topo h3{margin:0;font-size:1.05rem}
.curso-topo p{margin:2px 0 0}
.curso-barra{display:flex;height:10px;border-radius:6px;background:var(--line);overflow:hidden}
.curso-barra i{display:block;height:100%}
.curso-barra i.ok{background:var(--ok)}
.curso-barra i.meio{background:var(--gold)}
.curso-legenda{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;font-size:.85rem;color:var(--muted)}
.leg{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--line);margin-right:4px;vertical-align:-1px}
.leg.ok{background:var(--ok)}
.leg.meio{background:var(--gold)}
.aulas-compactas{list-style:none;margin:4px 0;padding:0}
.aulas-compactas li{display:flex;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}
.aulas-compactas .num{flex:0 0 26px;height:26px;border-radius:50%;background:var(--line);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700}
.aula-nome{flex:1;min-width:0;display:flex;flex-direction:column}
.aula-nome small{overflow-wrap:anywhere}
.aula-botoes{display:flex;gap:2px;flex-wrap:nowrap}
.progresso-lista{list-style:none;margin:0 0 10px;padding:0}
.progresso-lista li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}
.prog-dir{display:flex;align-items:center;gap:8px;min-width:150px}
.prog-dir .barra{flex:1;min-width:70px}
/* Eventos e temas das giras: cartões com a faixa das cores */
.titulo-com-botao{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:18px}
.titulo-com-botao .titulo-secao{margin:0}
.eventos-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin:10px 0 14px}
.evento-card, .tema-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.evento-card.passada{opacity:.9}
.evento-card .faixa-tema, .tema-card .faixa-tema{height:8px;border-radius:0;margin:0}
.faixa-tema.vazia{background:var(--line)}
.evento-corpo{display:flex;gap:12px;padding:12px}
.tema-corpo{padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.tema-corpo h3{margin:0;font-size:1.05rem}
.ervas-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
/* Histórico: busca e lista por dia */
.hist-filtros{display:grid;gap:10px;margin-bottom:12px}
.hist-lista{list-style:none;margin:0 0 6px;padding:0}
.hist-lista li{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.hist-lista li:first-child{border-top:0}
.hist-hora{flex:0 0 44px;color:var(--muted);font-variant-numeric:tabular-nums}
.hist-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.hist-txt small{overflow-wrap:anywhere}
.hist-lista mark{background:rgba(217,178,106,.45);color:inherit;border-radius:3px;padding:0 1px}
/* Menu da gestão em grupos */
.lista-abas button > span:not(.badge-menu){flex:1;min-width:0}
.grupo-menu{display:flex;flex-direction:column;gap:2px}
.lista-abas .cab-grupo{font-weight:600;color:var(--fg)}
.grupo-menu.atual .cab-grupo{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--gold)}
.grupo-menu.atual .cab-grupo .ico-aba{color:var(--accent)}
.seta-grupo{width:18px;height:18px;flex:none;color:var(--muted);transition:transform .18s ease}
.grupo-menu.aberto .seta-grupo{transform:rotate(180deg)}
.itens-grupo{display:none;flex-direction:column;gap:2px;padding:2px 0 6px}
.grupo-menu.aberto .itens-grupo{display:flex}
.lista-abas button.sub-aba{min-height:40px;padding:8px 14px 8px 30px;font-size:.95rem}
.lista-abas button.sub-aba .ico-aba{width:18px;height:18px}
.badge-menu{min-width:20px;height:20px;border-radius:10px;background:var(--accent);color:var(--on-accent);font-size:.8rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
@media (prefers-reduced-motion: reduce){.seta-grupo{transition:none}}
.lista-grupo{list-style:none;margin:6px 0 0;padding:0;max-height:340px;overflow:auto}
.lista-grupo li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:4px 0;border-top:1px solid var(--line)}
.lista-grupo .coord{font-size:.85rem;color:var(--muted);white-space:nowrap}

/* Situação do sistema: um resumo no alto e um cartão por assunto, com a situação à vista */
.sis-resumo{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0;padding:16px 20px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}
.sis-resumo b{font:700 1.25rem var(--display)}
.sis-resumo span{color:var(--muted)}
.sis-resumo.ok{border-color:var(--ok)}.sis-resumo.ok b{color:var(--ok)}
.sis-resumo.atencao{border-color:var(--bad);background:var(--bad-bg)}.sis-resumo.atencao b{color:var(--bad)}
.sis-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;align-items:start}
.sis-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);display:grid;gap:8px;min-width:0}
.sis-card.atencao{border-color:var(--bad)}
.sis-topo{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sis-topo h3{margin:0;font:700 1.08rem var(--display)}
.sis-card .note{margin:0;overflow-wrap:anywhere}
.sis-card .btn{margin-top:8px}
.sis-cota{display:grid;grid-template-columns:1fr auto;gap:2px 10px;margin-top:10px;color:var(--fg)}
.sis-cota b{font-variant-numeric:tabular-nums}
.sis-cota .barra{grid-column:1 / -1}
.barra.cheia span{background:var(--bad)}
/* Cabeçalho de cartão de gira (Escala e Cambones): data em bloco + nome + hora */
.cab-gira{display:flex;align-items:center;gap:12px;min-width:0}
.cab-gira .bloco-data{align-self:stretch}
.cab-gira-nome{font:700 1.25rem/1.25 var(--display);margin:0}
.cab-gira .ativ-quando{font-size:.95rem;font-weight:600}
/* Cartões de lista (membros, giras, atividades, cursos, eventos, temas, grupos): o mesmo fundo, canto e relevo dos painéis.
   Antes ficavam sem fundo, só com a borda, e no tema Claro se confundiam com a página. */
.membro-card,.gira-card,.ativ-card,.curso-card,.evento-card,.tema-card,.ajustes-casa{background:var(--surface);box-shadow:var(--shadow);border-radius:16px}
.membro-card,.curso-card{padding:16px 18px}
.gira-card,.ativ-card{padding:14px}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .membro-card,.gira-card,.ativ-card,.curso-card,.evento-card,.tema-card,.sis-card{transition:border-color .15s,transform .15s}
  .membro-card:hover,.gira-card:hover,.ativ-card:hover,.curso-card:hover,.evento-card:hover,.tema-card:hover{border-color:var(--field)}
}
/* Histórico: os registros de cada dia num cartão (antes ficavam soltos sobre o fundo da página) */
.hist-lista{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:6px 18px;box-shadow:var(--shadow);margin:0 0 14px}
.hist-lista li{padding:10px 0}
/* Página do médium e do consulente (sem o menu da gestão): num monitor largo, o conteúdo fica numa coluna central de leitura
   confortável, em vez de cartões esticados de ponta a ponta. Painel da TV, certificados, cartazes e relatórios seguem na largura toda. */
.layout:not(:has(#abas:not(:empty))) main:not(:has(.painel-tv,.certificados,.cartaz,.relatorio,.ata-grade)){max-width:1100px;width:100%;margin-inline:auto}
/* "Complete o seu cadastro": os passos pendentes num cartão só, com o progresso */
.passos{background:var(--surface);border:1px solid var(--gold);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;display:grid;gap:10px;min-width:0}
.passos-topo{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.passos-topo b{font:700 1.15rem var(--display)}
.passos-topo span{color:var(--muted);font-size:.92rem}
.passos > .card{border:0;box-shadow:none;padding:6px 0 0;background:none;border-radius:0}
.passos-depois{margin:0}
/* Perfis prontos de acesso (cadastro do médium) */
.perfis-prontos{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 6px}
/* Dia da gira: a gira no alto, os números e os blocos (fila, escala, presença) lado a lado */
.dia-gira-topo{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-color:var(--gold)}
.dia-gira-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;align-items:start}
.dia-gira-atalhos{display:flex;flex-wrap:wrap;gap:10px}
/* Caixa: blocos que abrem e fecham (conta do banco, gráficos) */
.bloco-caixa{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.bloco-caixa > summary{cursor:pointer;padding:16px 20px;font:700 1.1rem var(--display);list-style-position:inside}
.bloco-caixa[open] > summary{border-bottom:1px solid var(--line)}
.bloco-caixa-corpo{padding:16px;display:grid;gap:16px;min-width:0}
.bloco-caixa-corpo .panel,.bloco-caixa-corpo .kpi{box-shadow:none}
/* Ficha do médium: as últimas giras em bolinhas (verde: confirmou · vermelha: avisou que não ia · vazia: não respondeu) */
.ficha-giras{display:inline-flex;gap:5px;vertical-align:middle;margin-right:8px}
.ponto-gira{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--field)}
.ponto-gira.sim{background:var(--ok);box-shadow:none}
.ponto-gira.nao{background:var(--bad);box-shadow:none}
/* Barra fixa embaixo, no celular, na página do médium (Início, Agenda, Contas, Compras, Cadastro) */
.barra-celular{display:none}
@media (max-width:899px){
  .barra-celular:not([hidden]){display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:6;background:var(--surface);border-top:1px solid var(--line);padding:4px max(4px,env(safe-area-inset-left,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(4px,env(safe-area-inset-right,0px))}
  .barra-celular button{display:grid;justify-items:center;gap:2px;background:none;border:0;border-radius:12px;padding:6px 2px;min-height:52px;font:600 .75rem var(--body);color:var(--muted);cursor:pointer}
  .barra-celular svg{width:22px;height:22px}
  .barra-celular button[aria-current="page"]{color:var(--accent);background:var(--accent-soft)}
  body.com-barra-celular .rodape{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}
  body.com-barra-celular .toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  body.com-barra-celular .instalar{bottom:calc(76px + env(safe-area-inset-bottom,0px))}   /* o convite "Coloque o app na tela de início" fica acima da barra, sem cobrir os atalhos */
}
@media print{.barra-celular{display:none !important}}
/* Tarefas da casa */
.tarefas-lista{display:grid;gap:10px}
.tarefa-card{display:flex;align-items:flex-start;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow)}
.tarefa-card h3{margin:0;font-size:1.05rem}
.tarefa-card.feita h3{text-decoration:line-through;color:var(--muted)}
.tarefa-corpo{flex:1;min-width:0}.tarefa-corpo p{margin:2px 0 0}
.tarefa-marca{flex:none;width:30px;height:30px;border-radius:50%;border:2px solid var(--field);background:none;color:var(--on-primary);font-weight:700;cursor:pointer;margin-top:2px}
.tarefa-marca[aria-pressed="true"]{background:var(--ok);border-color:var(--ok)}
@media (max-width:600px){.tarefa-card{flex-wrap:wrap}.tarefa-card .lado-botoes{width:100%;justify-content:flex-end}}
/* Patrimônio e lista de compras */
.membro-card.baixado{opacity:.75}
.filtro-curto{max-width:320px}
@media print{body:has(.lista-compras) header, body:has(.lista-compras) #abas, body:has(.lista-compras) main, body:has(.lista-compras) footer{display:none !important}
  body:has(.lista-compras) dialog{position:static;border:0;box-shadow:none;max-width:none;width:100%}}
/* Ambiente de ensaio: faixa fixa no alto (js/tema.js põe a classe só em tupo-ensaio.pages.dev) */
.ensaio body::after{content:"ENSAIO · dados de teste, nada aqui é de verdade";position:fixed;top:env(safe-area-inset-top,0px);left:50%;transform:translateX(-50%);z-index:40;background:var(--warn);color:var(--surface);font:700 .8rem var(--body);padding:3px 14px;border-radius:0 0 10px 10px;white-space:nowrap;pointer-events:none}
@media print{.ensaio body::after{display:none}}
