/* Equipe de Multimídia — estilos do app.
 Visual baseado no kit DashStack (claro + escuro). Cores sempre por token: nada de cor fixa em componente.
 Tema: segue o sistema; o botão da barra superior grava a escolha em <html data-theme="light|dark">. */

/* ===== Tokens: tema claro (padrão) ===== */
:root{
  color-scheme: light;
  --bg: #F5F6FA;              /* fundo da página */
  --bg-panel: #FFFFFF;        /* cartões, menu, barra superior */
  --bg-panel-alt: #F5F6FA;    /* campos, linhas de destaque */
  --bg-raised: #EBEEF4;
  --border: #E2E5EC;
  --border-strong: #D5D5D5;
  --text: #202224;
  --text-muted: #5F6470;
  --text-faint: #6E7583;
  --primary: #4880FF;         /* preenchimentos: botões, item ativo, marcações */
  --primary-hover: #3A6FEA;
  --on-primary: #FFFFFF;
  --gold: #3366E6;            /* destaque em TEXTO (nome antigo mantido: muitas telas usam var(--gold)) */
  --gold-soft: rgba(72,128,255,.10);
  --gold-dim: #B7CBFF;        /* bordas de destaque */
  --accent-text: #2350C2;     /* texto sobre fundo de destaque */
  --success: #00B69B; --success-soft: rgba(0,182,155,.12); --success-border: rgba(0,182,155,.45); --success-text: #00806D;
  --danger: #EF3826;  --danger-soft: rgba(239,56,38,.10);  --danger-border: rgba(239,56,38,.40);  --danger-text: #C8291A;
  --alerta-bg: #C8291A;       /* fundo do número de alerta (sino, menu): o branco sobre ele passa 4,5:1 nos dois temas */
  --warning-soft: rgba(255,167,86,.14); --warning-border: rgba(255,167,86,.55); --warning-text: #9A4B00;
  --tile-roxo: #8280FF;  --tile-roxo-bg: #E5E4FF;
  --tile-amarelo: #FEC53D; --tile-amarelo-bg: #FFF3D6; --tile-amarelo-ic: #D99A00;
  --tile-verde: #4AD991; --tile-verde-bg: #D9F7E8; --tile-verde-ic: #1FB872;
  --tile-laranja: #FF9066; --tile-laranja-bg: #FFDED1;
  --shadow: 6px 6px 54px rgba(0,0,0,.05);
  --shadow-pop: 0 12px 32px rgba(17,24,39,.14);
  --overlay: rgba(17,24,39,.45);
  --r-card: 14px; --r-ctl: 8px;
  --sidebar-w: 240px; --topbar-h: 70px;
}

/* ===== Tokens: tema escuro (DashStack dark) ===== */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --bg: #1B2431; --bg-panel: #273142; --bg-panel-alt: #323D4E; --bg-raised: #3A4659;
    --border: #313D4F; --border-strong: #46546A;
    --text: #FFFFFF; --text-muted: #C3CAD6; --text-faint: #98A3B5;
    --gold: #7FA6FF; --gold-soft: rgba(72,128,255,.18); --gold-dim: #3F5E9E; --accent-text: #DCE7FF;
    --success-text: #5FD8BF; --danger-text: #FF8A7D; --warning-text: #FFC68F;
    --tile-roxo-bg: rgba(130,128,255,.18); --tile-amarelo-bg: rgba(254,197,61,.16);
    --tile-verde-bg: rgba(74,217,145,.16); --tile-laranja-bg: rgba(255,144,102,.16);
    --shadow: none; --shadow-pop: 0 14px 36px rgba(0,0,0,.45); --overlay: rgba(0,0,0,.55);
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg: #1B2431; --bg-panel: #273142; --bg-panel-alt: #323D4E; --bg-raised: #3A4659;
  --border: #313D4F; --border-strong: #46546A;
  --text: #FFFFFF; --text-muted: #C3CAD6; --text-faint: #98A3B5;
  --gold: #7FA6FF; --gold-soft: rgba(72,128,255,.18); --gold-dim: #3F5E9E; --accent-text: #DCE7FF;
  --success-text: #5FD8BF; --danger-text: #FF8A7D; --warning-text: #FFC68F;
  --tile-roxo-bg: rgba(130,128,255,.18); --tile-amarelo-bg: rgba(254,197,61,.16);
  --tile-verde-bg: rgba(74,217,145,.16); --tile-laranja-bg: rgba(255,144,102,.16);
  --shadow: none; --shadow-pop: 0 14px 36px rgba(0,0,0,.45); --overlay: rgba(0,0,0,.55);
}

/* ===== Base ===== */
html,body{margin:0;padding:0;}
body{
  background:var(--bg);color:var(--text);
  font-family:'Nunito Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-weight:700;letter-spacing:-.01em;margin:0;color:var(--text);}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
input,select,textarea{font-family:inherit;border-radius:var(--r-ctl);}
select option{background:var(--bg-panel);color:var(--text);}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

*{box-sizing:border-box;}
a{color:inherit;}
button{font-family:inherit;cursor:pointer;}

.field-label{display:block;font-size:12.5px;color:var(--text-muted);margin-bottom:6px;}
.dept-check-grid{display:flex;flex-direction:column;gap:8px;}
.dept-check-row{
  display:flex;align-items:center;gap:10px;
  background:var(--bg-panel-alt);border:1px solid var(--border);
  border-radius:10px;padding:9px 12px;
}
.dept-check-row input{width:16px;height:16px;accent-color:var(--gold);}
.dept-check-row label{font-size:14px;color:var(--text);cursor:pointer;}

/* Aniversários: faixa do dia e carrossel do mês (fora do <main>). Margens respeitam o entalhe e a barra de gestos. */
.birthday-banner{
  background:var(--gold-soft);
  border-bottom:1px solid var(--gold-dim);
  color:var(--accent-text);font-size:13.5px;font-weight:600;
  padding:10px max(20px, env(safe-area-inset-right)) 10px max(20px, env(safe-area-inset-left));text-align:center;
}
.birthday-carousel{
  border-top:1px solid var(--border);
  background:var(--bg-panel);
  padding:10px max(16px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-padding-inline:max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right));
  scrollbar-width:thin;
}
.birthday-carousel:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;}
/* Cartões do carrossel: foto (ou iniciais) e o dia em destaque; o encaixe deixa sempre um cartão inteiro na borda. */
.birthday-titulo{
  flex:0 0 auto;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:center;gap:2px;
  max-width:96px;padding:0 4px 0 2px;font-size:12px;color:var(--text-muted);line-height:1.25;
}
.birthday-titulo b{font-size:17px;color:var(--text);font-weight:700;letter-spacing:-.01em;}
.birthday-card{
  position:relative;flex:0 0 104px;scroll-snap-align:start;
  display:flex;flex-direction:column;align-items:center;gap:4px;
  background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:var(--r-card);
  padding:12px 8px 10px;text-align:center;
}
.birthday-card.is-hoje{border-color:var(--gold);background:var(--gold-soft);}
.birthday-foto{
  position:relative;width:56px;height:56px;border-radius:50%;overflow:hidden;flex-shrink:0;
  background:var(--bg-raised);border:2px solid var(--border-strong);
  display:flex;align-items:center;justify-content:center;
}
.birthday-card.is-hoje .birthday-foto{border-color:var(--gold);}
.birthday-iniciais{font-size:18px;font-weight:700;color:var(--gold);letter-spacing:.02em;}
.birthday-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.birthday-dia{font-size:22px;font-weight:800;line-height:1;color:var(--gold);letter-spacing:-.02em;margin-top:4px;}
.birthday-dia small{font-size:12px;font-weight:600;color:var(--text-faint);letter-spacing:0;}
.birthday-nome{
  font-size:12.5px;font-weight:600;color:var(--text);line-height:1.25;width:100%;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;
}
.birthday-hoje{
  position:absolute;top:6px;right:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  background:var(--primary);color:var(--on-primary);border-radius:999px;padding:2px 6px;
}

.escala-grid{display:flex;flex-direction:column;gap:10px;}
.escala-card{
  background:var(--bg-panel);border:1px solid var(--border);
  border-radius:14px;padding:16px 18px;cursor:pointer;
}
.escala-card .escala-head{display:flex;justify-content:space-between;align-items:center;}
.escala-card .escala-date{font-weight:700;letter-spacing:-.02em;font-size:16px;color:var(--gold);}
.escala-card .escala-count{font-size:12.5px;color:var(--text-faint);}
.escala-sub{font-size:12.5px;color:var(--text-muted);margin-top:4px;}
.escala-body{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:none;}
.escala-card.open .escala-body{display:block;}
.escala-dept-line{margin-bottom:10px;font-size:13.5px;}
.escala-dept-line .dname{color:var(--gold);font-weight:600;margin-right:6px;}
.escala-dept-line .dnames{color:var(--text);}
.escala-actions{display:flex;gap:8px;margin-top:10px;}
.escala-empty{color:var(--text-faint);font-size:13.5px;}

/* Pastores (Liderança) e Cronograma › Pastores: cartão com foto, nome e contagem do ano; linhas de quem prega por data */
.pastor-ano{display:flex;align-items:center;gap:10px;margin:-8px 0 18px;font-size:13.5px;color:var(--text-muted);}
.pastor-ano b{color:var(--text);}
.pastor-ano .icon-btn{min-width:44px;min-height:44px;}
.pastor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:12px;align-items:start;}
.pastor-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;}
.pastor-card.open{border-color:var(--gold-dim);}
.pastor-head{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:14px 16px;background:none;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer;}
.pastor-head:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;}
.pastor-foto,.pastor-mini{position:relative;flex-shrink:0;border-radius:50%;overflow:hidden;background:var(--bg-raised);border:2px solid var(--border-strong);display:flex;align-items:center;justify-content:center;}
.pastor-foto{width:56px;height:56px;}
.pastor-mini{width:40px;height:40px;}
.pastor-foto img,.pastor-mini img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.pastor-iniciais{font-size:16px;font-weight:700;color:var(--gold);}
.pastor-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.pastor-id b{font-size:15px;color:var(--text);overflow-wrap:anywhere;}
.pastor-id small{font-size:12.5px;color:var(--text-muted);overflow-wrap:anywhere;}
.pastor-conta{display:flex;flex-direction:column;align-items:flex-end;text-align:right;flex-shrink:0;}
.pastor-conta b{font-size:24px;font-weight:800;line-height:1;color:var(--gold);}
.pastor-conta small{font-size:11.5px;color:var(--text-faint);max-width:92px;}
.pastor-body{display:none;padding:0 16px 16px;border-top:1px solid var(--border);padding-top:14px;}
.pastor-card.open .pastor-body{display:block;}
.pastor-body a,.pastor-album{color:var(--gold);overflow-wrap:anywhere;}
.pastor-sec{font-size:13px;color:var(--text-muted);margin:16px 0 8px;font-weight:600;}
.pastor-preg{padding:10px 0;border-top:1px dashed var(--border);}
.pastor-preg-h{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:13.5px;}
.pastor-preg-h span{color:var(--text-muted);}
.pastor-preg-tema{font-size:13.5px;margin-top:4px;}
.pastor-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;margin-top:10px;}
.pastor-foto-link{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-height:44px;border-radius:var(--r-ctl);overflow:hidden;background:var(--bg-raised);border:1px solid var(--border);font-size:12.5px;color:var(--gold);text-decoration:none;}
.pastor-foto-link img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.pastor-album{display:inline-block;margin-top:8px;font-size:13.5px;}
.pastor-form-h{font-size:16px;margin:0 0 14px;color:var(--text);}
.pastor-input{width:100%;text-align:left;margin-bottom:14px;}
.pastor-duo{display:flex;gap:14px;flex-wrap:wrap;}
.pastor-duo>div{flex:1;min-width:150px;}
.cp-linha{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-card);padding:12px 14px;margin-bottom:8px;}
.cp-linha.vazia{border-style:dashed;background:transparent;}
.cp-txt{flex:1;min-width:160px;font-size:14px;}
.cp-txt b{overflow-wrap:anywhere;}
.cp-det{font-size:13px;color:var(--text-muted);margin-top:2px;overflow-wrap:anywhere;}
.cp-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:2px 8px;background:var(--gold-soft);color:var(--accent-text);vertical-align:middle;}
.cp-tag.conv{background:var(--tile-amarelo-bg);color:var(--warning-text);}
.cp-acoes{display:flex;gap:6px;}
.cm-palavra-nota{display:block;font-size:12px;color:var(--gold);margin-top:4px;min-height:1em;}
@media (max-width: 767.98px){
  .cp-acoes{width:100%;}
  .cp-acoes .reset-btn{flex:1;min-height:44px;}
  .pastor-body .escala-actions{flex-wrap:wrap;}
  .pastor-body .escala-actions .reset-btn{min-height:44px;}
  .pastor-body .dnames a,.pastor-album{display:inline-flex;align-items:center;min-height:44px;}
}

.cronograma-day{margin-bottom:26px;}
.cronograma-day h3{font-size:15px;color:var(--gold);margin-bottom:10px;}
.cronograma-item{
  background:var(--bg-panel);border:1px solid var(--border);
  border-radius:14px;padding:14px 16px;margin-bottom:8px;
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
}
.cronograma-item .ci-main{font-size:14.5px;color:var(--text);}
.cronograma-item .ci-main b{color:var(--text);font-weight:600;}
.cronograma-item .ci-sub{font-size:12.5px;color:var(--text-muted);margin-top:4px;}
.cronograma-item .ci-actions{display:flex;gap:6px;flex-shrink:0;}
.cronograma-item{cursor:pointer;flex-wrap:wrap;transition:border-color .15s ease;}
.cronograma-item:hover,.cronograma-item.open{border-color:var(--gold-dim);}
.cronograma-item .ci-head{flex:1;min-width:0;display:flex;gap:10px;align-items:flex-start;}
.cronograma-item .ci-chev{color:var(--text-faint);font-size:18px;line-height:1.2;transition:transform .15s ease;}
.cronograma-item.open .ci-chev{transform:rotate(90deg);color:var(--gold);}
.ci-details{display:none;width:100%;border-top:1px solid var(--border);margin-top:6px;padding-top:12px;cursor:default;}
.cronograma-item.open .ci-details{display:block;}
.ci-line{font-size:13.5px;color:var(--text);margin-bottom:6px;}
.ci-line span{color:var(--text-muted);}
.ci-prox-h{font-size:12.5px;color:var(--gold);margin:14px 0 8px;letter-spacing:.3px;}
.ci-prox{background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:14px;padding:10px 12px;margin-bottom:8px;font-size:13.5px;}
.ci-prox b{font-weight:600;}
.cm-culto{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:10px;transition:border-color .15s ease;}
.cm-culto:hover,.cm-culto.open{border-color:var(--gold-dim);}
.cm-culto-h{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--text);cursor:pointer;}
.cm-culto-h b{color:var(--gold);font-weight:600;}
.cm-culto-nome{margin-top:2px;}
.cm-culto .ci-chev{color:var(--text-faint);font-size:18px;line-height:1.2;transition:transform .15s ease;}
.cm-culto.open .ci-chev{transform:rotate(90deg);color:var(--gold);}
.cm-body{display:none;border-top:1px solid var(--border);margin-top:12px;padding-top:12px;}
.cm-culto.open .cm-body{display:block;}
.cm-sec{margin-bottom:14px;}
.cm-sec-h{font-size:12.5px;color:var(--gold);margin:4px 0 8px;letter-spacing:.3px;font-weight:600;}
.cm-rot{border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.cm-rot-row{display:flex;gap:12px;padding:8px 12px;font-size:13.5px;color:var(--text);border-top:1px solid var(--border);}
.cm-rot-row:first-child{border-top:none;}
.cm-rot-row.louvor{background:var(--gold-soft);}
.cm-rot-h{color:var(--text-muted);min-width:104px;flex-shrink:0;font-variant-numeric:tabular-nums;}
.cm-louvores{padding:10px 12px 12px;border-top:1px solid var(--border);}
.cm-edit-culto>summary{cursor:pointer;list-style:none;display:flex;flex-direction:column;gap:3px;}
.cm-edit-culto>summary::-webkit-details-marker{display:none;}
.cm-edit-culto>summary b{color:var(--gold);font-size:14px;font-weight:600;}
.cm-edit-culto>summary b::before{content:'›';display:inline-block;margin-right:8px;transition:transform .15s ease;}
.cm-edit-culto[open]>summary b::before{transform:rotate(90deg);}
.cm-ed-resumo{font-size:12.5px;color:var(--text-faint);padding-left:16px;}
.cm-arte{margin-bottom:14px;}
.cm-arte img{display:block;max-width:min(320px,100%);max-height:480px;border-radius:12px;border:1px solid var(--border);}
.cm-arte-edit{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;}
.cm-arte-prev{width:110px;flex-shrink:0;}
.cm-arte-prev .cm-arte{margin:0;}
.cm-arte-prev img{max-width:110px;max-height:196px;}
.cm-arte-prev>span{display:flex;align-items:center;justify-content:center;width:110px;aspect-ratio:9/16;border:1px dashed var(--border);border-radius:12px;color:var(--text-faint);font-size:12.5px;}
.cm-arte-colar{border:1px dashed var(--gold-dim);border-radius:12px;padding:14px;font-size:13px;color:var(--text-muted);cursor:pointer;text-align:center;}
.cm-arte-colar:focus{outline:none;border-color:var(--gold);color:var(--text);}
.cm-arte-nota{font-size:12.5px;color:var(--text-faint);margin:0 0 8px;}
.lv-uso{font-size:12px;color:var(--text-faint);margin-top:4px;}
.lv-card .louvor-tit{padding:10px 12px;}
.cm-culto-acoes{display:flex;justify-content:flex-end;margin:-4px 0 12px;}
.cm-acoes-fixas{position:sticky;bottom:0;z-index:5;background:linear-gradient(to bottom, transparent, var(--bg) 30%);padding:18px 0 12px;}
.cm-btn-salvar{background:var(--gold-soft);border-color:var(--gold-dim);color:var(--accent-text);}
.cm-rot-edit{border-top:1px solid var(--border);padding-top:12px;}
.cm-rot-edit summary{cursor:pointer;font-size:13.5px;color:var(--gold);}
.cm-rot-edit-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;}
@media (max-width:520px){ .cm-rot-h{min-width:88px;} .cm-rot-edit-row input:first-child{width:118px !important;font-size:13px;} }
.louvor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;}
.louvor-card{display:block;position:relative;background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:12px;overflow:hidden;text-decoration:none;color:var(--text);transition:border-color .15s ease;}
.louvor-card:hover{border-color:var(--gold-dim);}
.louvor-card img,.louvor-semthumb{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#000;}
.louvor-semthumb{display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--text-faint);background:var(--bg-panel);}
.louvor-play{position:absolute;top:8px;right:8px;background:rgba(6,13,27,.75);color:#fff;font-size:12px;border-radius:20px;padding:3px 8px;}
.louvor-tit{font-size:13px;padding:8px 10px;line-height:1.35;}
.louvor-tit span{color:var(--text-muted);}
.cm-louvor-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px;}
.cm-louvor-thumb{width:120px;flex-shrink:0;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:var(--bg-panel-alt);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-size:20px;}
.cm-louvor-thumb img{width:100%;height:100%;object-fit:cover;}
@media (max-width:520px){ .cm-louvor-thumb{width:84px;} }

.falta-tag{color:var(--danger-text);text-decoration:line-through;text-decoration-color:var(--danger-border);}
.falta-tag{font-size:inherit;}
.desemp-top{display:flex;gap:20px;align-items:center;background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;padding:18px;margin-bottom:8px;}
.desemp-top > div:last-child{flex:1;min-width:0;}
.desemp-ring{width:92px;height:92px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:conic-gradient(var(--gold) calc(var(--p) * 1%), var(--bg-panel-alt) 0);position:relative;}
.desemp-ring::before{content:'';position:absolute;inset:8px;border-radius:50%;background:var(--bg-panel);}
.desemp-ring span{position:relative;font-size:20px;color:var(--gold);font-weight:600;}
.desemp-nivel{font-size:17px;color:var(--text);margin-bottom:2px;}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.badge-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;padding:14px 12px;text-align:center;opacity:.55;}
.badge-card.on{opacity:1;border-color:var(--gold-dim);background:var(--gold-soft);}
.badge-ic{width:46px;height:46px;border-radius:50%;margin:0 auto 8px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;}
.badge-card.on .badge-ic{border-color:var(--gold);background:rgba(72,128,255,.15);}
.badge-ic svg{width:22px;height:22px;stroke:var(--text-faint);}
.badge-card.on .badge-ic svg{stroke:var(--gold);}
.badge-nome{font-size:13.5px;color:var(--text);margin-bottom:3px;}
.badge-desc{font-size:12px;color:var(--text-muted);}
.gov-table{border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:6px;}
.gov-row{display:grid;grid-template-columns:1fr 70px 60px 80px 90px;gap:8px;padding:10px 12px;font-size:13.5px;border-bottom:1px solid var(--border);align-items:center;}
.gov-row:last-child{border-bottom:0;}
.gov-head{color:var(--text-muted);font-size:12px;background:var(--bg-panel-alt);}
.gov-dot{font-style:normal;font-size:12px;border-radius:18px;padding:2px 10px;border:1px solid var(--border);white-space:nowrap;}
.gov-dot.ok{color:var(--success-text);border-color:var(--success-border);}
.gov-dot.atencao{color:var(--accent-text);border-color:var(--gold-dim);}
.gov-dot.alerta{color:var(--danger-text);border-color:var(--danger-border);}
@media (max-width:560px){ .gov-row{grid-template-columns:1fr 46px 46px 58px;} .gov-row span:last-child{grid-column:1 / -1;} }
.escalado-banner{display:flex;gap:14px;align-items:flex-start;background:var(--gold-soft);border:1px solid var(--gold-dim);border-radius:16px;padding:14px 16px;margin-bottom:16px;color:var(--accent-text);}
.escalado-banner.soft{background:var(--bg-panel);border-color:var(--border);color:var(--text);}
.escalado-banner .ic{width:34px;height:34px;border-radius:14px;border:1px solid var(--gold-dim);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.escalado-banner .ic svg{width:18px;height:18px;stroke:var(--gold);}
.escalado-banner b{font-size:15.5px;}
.escalado-banner .sub{font-size:13px;color:var(--text-muted);margin-top:3px;}
.ov-section-h{font-size:14px;color:var(--text-muted);margin:30px 0 12px;}
.ov-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;margin-bottom:10px;overflow:hidden;}
.ov-card.open{border-color:var(--gold-dim);}
.ov-head{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;}
.ov-head:hover{background:var(--bg-panel-alt);}
.ov-head .ic{width:36px;height:36px;border-radius:14px;background:var(--bg-panel-alt);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ov-head .ic svg{width:19px;height:19px;stroke:var(--gold);}
.ov-head .t{flex:1;min-width:0;font-size:15.5px;color:var(--text);}
.ov-head .t small{display:block;font-size:12.5px;color:var(--text-muted);margin-top:2px;}
.ov-count{font-size:12px;color:var(--text-faint);border:1px solid var(--border);border-radius:18px;padding:2px 10px;white-space:nowrap;}
.ov-count.has{color:var(--accent-text);border-color:var(--gold-dim);}
.ov-chev{color:var(--text-faint);font-size:18px;transition:transform .15s ease;}
.ov-card.open .ov-chev{transform:rotate(90deg);color:var(--gold);}
.ov-body{display:none;padding:2px 16px 16px;border-top:1px solid var(--border);}
.ov-card.open .ov-body{display:block;}
.ov-item{padding:11px 0;border-bottom:1px solid var(--border);font-size:14px;color:var(--text);}
.ov-item:last-child{border-bottom:0;}
.ov-item .when{color:var(--gold);font-size:12.5px;margin-bottom:3px;}
.ov-item .info{color:var(--text-muted);font-size:13.5px;white-space:pre-wrap;margin-top:4px;}
/* painel aberto por um indicador do topo (orientações do dia, eventos do mês) */
.ov-painel{background:var(--bg-panel);border:1px solid var(--gold-dim);border-radius:var(--r-card);box-shadow:var(--shadow);padding:6px 16px 16px;margin:-10px 0 26px;}
.ov-painel[hidden]{display:none;}
.ov-painel-h{display:flex;align-items:center;gap:12px;padding:8px 0 10px;border-bottom:1px solid var(--border);margin-bottom:6px;}
.ov-painel-h .t{flex:1;min-width:0;font-size:15.5px;font-weight:600;color:var(--text);}
.ov-painel-h .t small{display:block;font-size:12.5px;font-weight:400;color:var(--text-muted);margin-top:2px;}
.ov-painel-h .icon-btn{min-width:44px;min-height:44px;font-size:22px;}
.stat-card[aria-expanded="true"]{border-color:var(--gold);}
.ov-empty{color:var(--text-faint);font-size:13.5px;padding-top:12px;}
.ov-form textarea{margin:12px 0 10px;}
.ov-check{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-muted);margin-bottom:12px;}
.ov-check input{accent-color:var(--gold);width:16px;height:16px;}
.ov-note{font-size:12.5px;color:var(--text-faint);margin-top:10px;}
.ov-ok{background:var(--gold-soft);border:1px solid var(--gold-dim);color:var(--accent-text);border-radius:14px;padding:10px 12px;font-size:13.5px;margin-top:12px;}
.ov-ok a{color:var(--gold);}
.tipo-row{display:flex;gap:18px;margin-bottom:16px;flex-wrap:wrap;}
.tipo-row label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);cursor:pointer;}
.tipo-row input{accent-color:var(--gold);}
.chat-block{margin-top:36px;padding-top:24px;border-top:1px solid var(--border);}
.chat-block h3{font-size:15px;margin-bottom:12px;}
.chat-messages{
  max-height:340px;overflow-y:auto;
  display:flex;flex-direction:column;gap:10px;
  padding:14px;background:var(--bg-panel);border:1px solid var(--border);
  border-radius:14px;margin-bottom:12px;
}
.chat-msg{max-width:80%;padding:8px 12px;border-radius:14px;background:var(--bg-panel-alt);align-self:flex-start;}
.chat-msg.mine{align-self:flex-end;background:var(--gold-soft);border:1px solid var(--gold-dim);}
.chat-msg .cm-name{font-size:12px;color:var(--gold);font-weight:600;margin-bottom:2px;}
.chat-msg.mine .cm-name{display:none;}
.chat-msg .cm-text{font-size:14px;color:var(--text);white-space:pre-wrap;word-break:break-word;}
.chat-msg .cm-time{font-size:12px;color:var(--text-faint);margin-top:3px;}
.chat-input-row{display:flex;gap:8px;}
.chat-input-row input{
  flex:1;background:var(--bg-panel-alt);border:1px solid var(--border);
  border-radius:10px;padding:9px 12px;color:var(--text);font-size:14px;font-family:inherit;
}
.chat-input-row input:focus{outline:1px solid var(--gold);border-color:var(--gold);}
.chat-input-row button{
  background:var(--primary);border:none;color:var(--on-primary);font-weight:600;
  border-radius:10px;padding:9px 18px;font-size:13.5px;
}
.chat-empty-note{font-size:13.5px;color:var(--text-faint);}

.dept-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px;}
.dept-tab{
  background:var(--bg-panel-alt);border:1px solid var(--border);color:var(--text-muted);
  padding:8px 14px;border-radius:20px;font-size:13.5px;
}
.dept-tab.active{background:var(--gold-soft);border-color:var(--gold-dim);color:var(--accent-text);}

.trilha-card{
  background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;
  padding:16px 18px;margin-bottom:10px;
}
.trilha-card h4{font-size:15px;color:var(--text);margin-bottom:4px;}
.trilha-card p{font-size:13.5px;color:var(--text-muted);margin:0 0 8px;}
.trilha-card a{color:var(--gold);font-size:13px;}
.trilha-actions{display:flex;gap:6px;margin-top:8px;}
/* Trilhas de cada setor como ícones do software */
.ac-icons{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px;margin-bottom:10px;}
.ac-ico{
  background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;
  padding:16px 10px 12px;display:flex;flex-direction:column;align-items:center;text-align:center;
}
.ac-ico-img{
  width:72px;height:72px;border-radius:18px;object-fit:contain;display:flex;align-items:center;justify-content:center;
  background:var(--bg-panel-alt);border:1px solid var(--border);font-size:28px;font-weight:700;color:var(--gold);
}
img.ac-ico-img{background:transparent;border:0;}
.ac-ico h4{font-size:13.5px;color:var(--text);margin:10px 0 2px;line-height:1.25;}
.ac-ico .ac-meta{margin:0;}
.ac-ico .pbar{width:100%;}
.ac-ico-adm{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:10px;}
.ac-ico-adm .mini-btn{width:auto;height:auto;padding:3px 8px;font-size:12px;margin:0;}

.criterio-row{
  background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;
  padding:14px 16px;margin-bottom:8px;
}
.criterio-row .cr-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.criterio-row .cr-name{font-size:14px;color:var(--text);}
.criterio-row .cr-level{font-size:12.5px;color:var(--gold);font-weight:600;}
.score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.score-btn{
  background:var(--bg-panel-alt);border:1px solid var(--border);color:var(--text-muted);
  border-radius:10px;padding:9px 0;font-size:14px;font-weight:600;
}
.score-btn.selected{background:var(--primary);border-color:var(--primary);color:var(--on-primary);}

.result-panel{
  background:var(--gold-soft);border:1px solid var(--gold-dim);border-radius:16px;
  padding:18px 20px;margin:20px 0;
}
.result-panel .rp-label{font-size:12px;color:var(--gold);font-weight:600;text-transform:uppercase;letter-spacing:.05em;}
.result-panel h3{font-size:22px;margin:6px 0 6px;}
.result-panel p{font-size:13.5px;color:var(--text-muted);margin:0;}

.ranking-row{
  display:flex;align-items:center;gap:12px;
  background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;
  padding:12px 14px;margin-bottom:8px;
}
.ranking-row .rk-pos{
  width:28px;height:28px;border-radius:50%;background:var(--bg-panel-alt);
  display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;color:var(--text);
  flex-shrink:0;
}
.ranking-row.top .rk-pos{background:var(--primary);color:var(--on-primary);}
.ranking-row .rk-info{flex:1;}
.ranking-row .rk-name{font-size:14px;color:var(--text);}
.ranking-row .rk-level{font-size:12px;color:var(--text-muted);}
.ranking-row .rk-score{font-size:16px;font-weight:700;color:var(--gold);}

.doc-editor{
  width:100%;min-height:260px;background:var(--bg-panel-alt);
  border:1px solid var(--border);border-radius:14px;padding:16px;
  color:var(--text);font-size:14px;font-family:inherit;line-height:1.6;resize:vertical;
}
.doc-editor:focus{outline:1px solid var(--gold);border-color:var(--gold);}
.doc-view{
  background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;
  padding:20px 22px;font-size:14.5px;color:var(--text);line-height:1.7;white-space:pre-wrap;
}

/* ===== Descomplica Multimídia (chat de dúvidas) ===== */
.dq-wrap{display:flex;flex-direction:column;gap:14px;max-width:760px;}
.dq-log{display:flex;flex-direction:column;gap:12px;}
.dq-msg{max-width:92%;padding:12px 15px;border-radius:16px;font-size:14.5px;line-height:1.6;}
.dq-msg.user{align-self:flex-end;background:var(--gold-soft);border:1px solid var(--gold-dim);color:var(--accent-text);border-bottom-right-radius:6px;}
.dq-msg.bot{align-self:flex-start;background:var(--bg-panel);border:1px solid var(--border);border-bottom-left-radius:6px;width:92%;}
.dq-msg.bot p{margin:0 0 8px;}
.dq-hit{background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-top:8px;}
.dq-src{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--gold);text-transform:uppercase;margin-bottom:4px;display:flex;justify-content:space-between;gap:8px;align-items:center;}
.dq-src a{color:var(--text-muted);text-transform:none;font-weight:500;letter-spacing:0;text-decoration:none;white-space:nowrap;}
.dq-src a:hover{color:var(--gold);}
.dq-txt{white-space:pre-wrap;color:var(--text);font-size:14px;}
.dq-txt mark{background:rgba(72,128,255,.22);color:var(--text);border-radius:3px;padding:0 2px;}
.dq-warn{background:var(--warning-soft);border:1px solid var(--warning-border);color:var(--warning-text);border-radius:12px;padding:9px 12px;font-size:13px;margin:6px 0 8px;}
.dq-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.dq-btn{background:var(--primary);border:none;color:var(--on-primary);font-weight:600;border-radius:999px;padding:8px 16px;font-size:13px;cursor:pointer;font-family:inherit;}
.dq-btn.ghost{background:none;border:1px solid var(--border);color:var(--text-muted);}
.dq-btn.ghost:hover{border-color:var(--gold-dim);color:var(--gold);}
.dq-btn:disabled{opacity:.5;cursor:default;}
.dq-links{font-size:13px;color:var(--text-muted);margin-top:8px;}
.dq-links a{color:var(--gold);}
.dq-chips{display:flex;flex-wrap:wrap;gap:6px;}
.dq-chip{background:var(--bg-panel-alt);border:1px solid var(--border);color:var(--text-muted);padding:7px 12px;border-radius:999px;font-size:13px;cursor:pointer;font-family:inherit;}
.dq-chip:hover{border-color:var(--gold-dim);color:var(--gold);}
.dq-form{display:flex;gap:8px;position:sticky;bottom:0;background:var(--bg);padding:10px 0 4px;}
.dq-form input{flex:1;min-width:0;background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:999px;padding:11px 16px;color:var(--text);font-size:14.5px;font-family:inherit;}
.dq-form input:focus{outline:1px solid var(--gold);border-color:var(--gold);}
.dq-typing{color:var(--text-faint);font-size:13.5px;}
.admin-only-note{font-size:12px;color:var(--text-faint);margin-top:8px;}

/* Overview */
.progress-row{
  display:flex;align-items:baseline;gap:10px;
  margin:28px 0 8px;
}
.progress-row .num{font-weight:700;letter-spacing:-.02em;font-size:26px;color:var(--gold);}
.progress-row .label{font-size:13.5px;color:var(--text-muted);}
.track{
  height:5px;background:var(--bg-panel-alt);
  border-radius:8px;overflow:hidden;margin-bottom:36px;
  border:1px solid var(--border);
}
.track .fill{height:100%;background:var(--primary);transition:width .4s ease;}

.deptlist{border-top:1px solid var(--border);}
.deptrow{
  display:flex;align-items:center;gap:16px;
  padding:18px 4px;
  border-bottom:1px solid var(--border);
  text-decoration:none;
}
.deptrow .ic{
  width:38px;height:38px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--border);border-radius:10px;
  background:var(--bg-panel-alt);
}
.deptrow .ic svg{width:19px;height:19px;stroke:var(--gold);}
.deptrow .body{flex:1;min-width:0;}
.deptrow .body h3{font-size:16.5px;color:var(--text);}
.deptrow .body p{margin:3px 0 0;font-size:13.5px;color:var(--text-muted);}
.deptrow .stat{font-size:13px;color:var(--text-faint);white-space:nowrap;}
.deptrow .chev{color:var(--text-faint);font-size:16px;}
.deptrow:hover .body h3{color:var(--gold);}

/* Department page */
.resp-block{
  background:var(--bg-panel);
  border:1px solid var(--border);
  border-radius:14px;
  padding:20px 22px;
  margin-bottom:30px;
}
.resp-block h4{font-size:12.5px;font-weight:600;color:var(--text-muted);margin:0 0 10px;}
.resp-block ul{margin:0;padding-left:18px;}
.resp-block li{color:var(--text);font-size:14.5px;margin-bottom:6px;}
.resp-block li:last-child{margin-bottom:0;}

.owner-field{
  display:flex;align-items:center;gap:10px;
  margin-bottom:32px;
}
.owner-field label{font-size:13px;color:var(--text-muted);white-space:nowrap;}
.owner-field input{
  flex:1;min-width:0;
  background:var(--bg-panel-alt);
  border:1px solid var(--border);
  border-radius:10px;
  padding:8px 12px;
  color:var(--text);
  font-size:14px;
  font-family:inherit;
}
.owner-field input:focus{outline:1px solid var(--gold);border-color:var(--gold);}

.section-block{margin-bottom:30px;}
.section-block h3{font-size:16px;margin-bottom:2px;}
.section-block .stage-note{font-size:12.5px;color:var(--text-faint);margin-bottom:14px;}

.checklist{display:flex;flex-direction:column;gap:2px;}
.check-item{
  display:flex;align-items:flex-start;gap:12px;
  padding:11px 8px;
  border-radius:10px;
  transition:background .12s ease;
}
.check-item:hover{background:var(--bg-panel-alt);}
.check-item input[type=checkbox]{
  appearance:none;-webkit-appearance:none;
  width:18px;height:18px;flex-shrink:0;margin-top:1px;
  border:1.5px solid var(--text-faint);
  border-radius:8px;
  background:transparent;
  position:relative;cursor:pointer;
}
.check-item input[type=checkbox]:checked{
  background:var(--primary);border-color:var(--gold);
}
.check-item input[type=checkbox]:checked::after{
  content:"";position:absolute;left:5px;top:1px;
  width:5px;height:9px;
  border:solid var(--on-primary);border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.check-item label{font-size:14.5px;color:var(--text);cursor:pointer;}
.check-item.done label{color:var(--text-faint);text-decoration:line-through;text-decoration-color:var(--text-faint);}

.dept-actions{
  display:flex;justify-content:flex-end;margin-top:8px;
}
.reset-btn{
  background:none;border:1px solid var(--border);
  color:var(--text-muted);
  font-size:12.5px;
  padding:7px 13px;border-radius:10px;
}
.reset-btn:hover{border-color:var(--gold-dim);color:var(--gold);}

.team-block{
  background:var(--bg-panel);
  border:1px solid var(--border);
  border-radius:14px;
  padding:22px 24px;
  margin-bottom:20px;
}
.team-block .team-head{
  display:flex;align-items:center;gap:12px;margin-bottom:18px;
}
.team-block .team-head .ic{
  width:32px;height:32px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--border);border-radius:10px;
  background:var(--bg-panel-alt);
}
.team-block .team-head .ic svg{width:16px;height:16px;stroke:var(--gold);}
.team-block .team-head h3{font-size:16px;}

.role-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
  margin-bottom:16px;
}
.role-card{
  background:var(--gold-soft);
  border:1px solid var(--gold-dim);
  border-radius:7px;
  padding:12px 14px;
}
.role-card .role-label{
  font-size:12px;color:var(--gold);font-weight:600;
  display:block;margin-bottom:6px;
}
.role-card input, .role-card select{
  width:100%;background:transparent;border:none;
  color:var(--text);font-size:14.5px;font-family:inherit;
  padding:0;border-bottom:1px solid rgba(72,128,255,.35);
  padding-bottom:4px;
}
.role-card select{padding-bottom:6px;cursor:pointer;}
.role-card select option{background:var(--bg-panel-alt);color:var(--text);}
.role-card .role-chip{margin-bottom:8px;}
.role-card .role-chip .vol-chip{display:inline-flex;}
.role-card input:focus, .role-card select:focus{outline:none;border-bottom-color:var(--gold);}
.role-card input::placeholder{color:var(--text-faint);}

.vol-label{font-size:12.5px;color:var(--text-muted);margin-bottom:8px;}
.vol-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.vol-chip{
  display:flex;align-items:center;gap:7px;
  background:var(--bg-panel-alt);border:1px solid var(--border);
  border-radius:16px;padding:6px 8px 6px 13px;
  font-size:13.5px;color:var(--text);
}
.vol-chip button{
  background:none;border:none;color:var(--text-faint);
  font-size:14px;line-height:1;padding:2px 4px;border-radius:50%;
}
.vol-chip button:hover{color:var(--gold);background:var(--bg-raised);}
.vol-chip.vol-chip--papel{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600;padding-right:13px;}
.vol-chip.vol-chip--vazio{background:transparent;border-style:dashed;color:var(--text-faint);padding-right:13px;}
.vol-empty{font-size:13px;color:var(--text-faint);margin-bottom:12px;}

.add-row{display:flex;gap:8px;}
.add-row input{
  flex:1;background:var(--bg-panel-alt);border:1px solid var(--border);
  border-radius:10px;padding:8px 12px;color:var(--text);
  font-size:13.5px;font-family:inherit;
}
.add-row input:focus{outline:1px solid var(--gold);border-color:var(--gold);}
.add-row button{
  background:none;border:1px solid var(--gold-dim);color:var(--gold);
  border-radius:10px;padding:8px 15px;font-size:13px;
}
.add-row button:hover{background:var(--gold-soft);}

.backlink{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--text-muted);font-size:13.5px;
  margin-bottom:22px;text-decoration:none;
}
.backlink:hover{color:var(--gold);}

.status-pill{
  font-size:12px;color:var(--text-faint);
  padding:2px 0;
}

/* ---------- Academy: plataforma de treinamentos ---------- */
.ac-h{font-size:14px;color:var(--text-muted);margin:26px 0 10px;}
.ac-h-sec{font-size:16px;color:var(--text);margin-top:36px;padding-top:18px;border-top:1px solid var(--border);}
.ac-sec-sub{font-size:13px;color:var(--text-faint);margin:-4px 0 6px;}
.pb-grupo{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin:0 0 8px;}
.pb-tabs{margin-bottom:16px;}
.ac-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.ac-click{cursor:pointer;transition:border-color .15s ease, background .15s ease;}
.ac-click:hover{border-color:var(--gold-dim);background:var(--bg-panel-alt);}
.ac-meta{font-size:12.5px;color:var(--text-muted);margin:2px 0 8px;}
.ac-row{display:flex;align-items:center;gap:12px;}
.ac-grow{flex:1;min-width:0;}
.ac-num{
  width:30px;height:30px;border-radius:50%;flex-shrink:0;
  background:var(--bg-panel-alt);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--gold);
}
.pbar{height:6px;background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:8px;}
.pbar i{display:block;height:100%;background:var(--primary);transition:width .3s ease;}
.badge{
  font-size:12px;color:var(--text-faint);border:1px solid var(--border);
  border-radius:18px;padding:3px 10px;white-space:nowrap;flex-shrink:0;
}
.badge.prog{color:var(--accent-text);border-color:var(--gold-dim);}
.badge.ok{color:var(--on-primary);background:var(--primary);border-color:var(--gold);font-weight:600;}

.concl-banner{
  display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--gold-soft);border:1px solid var(--gold-dim);border-radius:14px;
  padding:14px 16px;margin-top:16px;color:var(--accent-text);font-size:14.5px;
}

.aula-row{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;margin-bottom:8px;overflow:hidden;}
.aula-row.open{border-color:var(--gold-dim);}
.aula-head{display:flex;align-items:center;gap:12px;padding:13px 14px;cursor:pointer;}
.aula-head:hover{background:var(--bg-panel-alt);}
.aula-check{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;border:1.5px solid var(--text-faint);
  display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-muted);
}
.aula-check.done{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:700;}
.aula-title{flex:1;font-size:14.5px;color:var(--text);}
.aula-chev{color:var(--text-faint);font-size:18px;line-height:1;}
.aula-body{padding:4px 14px 16px;}
.video-wrap{position:relative;width:100%;padding-top:56.25%;border-radius:14px;overflow:hidden;background:#000;margin-bottom:14px;}
.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.aula-texto{font-size:14.5px;line-height:1.7;color:var(--text);white-space:pre-wrap;margin-bottom:14px;}
.aula-texto.fmt{white-space:normal;}
.aula-texto.fmt p{margin:0 0 10px;}
.aula-texto.fmt h4{font-size:15px;color:var(--text);margin:18px 0 6px;}
.aula-texto.fmt ul,.aula-texto.fmt ol{margin:0 0 10px;padding-left:22px;}
.aula-texto.fmt li{margin-bottom:4px;}
.aula-texto.fmt code{font-size:13px;background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:6px;padding:1px 5px;word-break:break-all;}
.aula-texto.fmt .tbl-wrap{overflow-x:auto;margin:0 0 12px;}
.aula-texto.fmt table{border-collapse:collapse;font-size:13.5px;line-height:1.5;min-width:100%;}
.aula-texto.fmt th,.aula-texto.fmt td{border:1px solid var(--border);padding:6px 9px;text-align:left;vertical-align:top;}
.aula-texto.fmt th{background:var(--bg-panel-alt);}
/* aulas interativas */
.aw{background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:14px;padding:12px;margin:14px 0;}
.aw-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 10px;align-items:baseline;margin-bottom:10px;}
.aw-head b{font-size:14px;color:var(--text);}
.aw-head span{font-size:12px;color:var(--text-faint);}
.aw-info{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13.5px;line-height:1.6;color:var(--text-muted);margin-top:10px;min-height:64px;}
.aw-info b{display:block;color:var(--text);margin-bottom:2px;}
.aw-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;}
.aw-foot .ac-meta{margin:0;font-size:12px;flex:1;min-width:160px;}
.aw-foot .mini-btn{white-space:nowrap;width:auto;padding:6px 12px;}
.aw-ctrl{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px;font-size:13px;color:var(--text-muted);}
.aw-ctrl label{display:flex;gap:8px;align-items:center;}
.aw-ctrl select{width:auto;padding:6px 10px;margin:0;}
.aw-fig{margin:14px 0;}
.aw-fig img{max-width:100%;border-radius:12px;border:1px solid var(--border);display:block;}
.aw-fig figcaption{font-size:12.5px;color:var(--text-faint);margin-top:6px;}
.aw-fig .video-wrap{margin-bottom:0;}
.tela-svg{width:100%;height:auto;display:block;font-family:inherit;}
.tela-hs{cursor:pointer;outline:none;}
.tela-hs .tr{fill:rgba(72,128,255,.05);stroke:var(--border);stroke-width:1;}
.tela-hs.ov .tr{fill:rgba(255,190,90,.18);stroke:rgba(255,190,90,.6);stroke-dasharray:3 2;}
.tela-hs:hover .tr,.tela-hs:focus .tr{fill:rgba(72,128,255,.14);}
.tela-hs.sel .tr{fill:rgba(72,128,255,.22);stroke:var(--gold);stroke-width:1.6;}
.tela-svg .td{fill:rgba(140,170,220,.10);stroke:rgba(140,170,220,.22);stroke-width:.6;}
.tela-svg .td.on{fill:rgba(72,128,255,.35);stroke:var(--gold);}
.tela-svg .td.scr{fill:#020611;}
.tela-svg .tl{stroke:rgba(140,170,220,.35);stroke-width:1.2;}
.tela-svg .tl.hi{stroke:var(--gold);stroke-width:1.6;}
.tela-svg .tdot{fill:var(--gold);}
.tela-svg .tt{fill:var(--text-muted);font-size:8.5px;text-anchor:middle;}
.tela-svg .tn{fill:var(--gold);}
.tela-svg .tnt{fill:var(--on-primary);font-size:8px;font-weight:700;text-anchor:middle;}
.blend-stage{position:relative;height:150px;border-radius:10px;overflow:hidden;isolation:isolate;}
.blend-bot{position:absolute;inset:0;background:linear-gradient(120deg,#ff3d6e,#ffb23d 30%,#3dd6a0 60%,#3d7bff);}
.blend-top{position:absolute;inset:0;background:radial-gradient(circle at 30% 50%,#fff 0 22%,transparent 23%),radial-gradient(circle at 72% 45%,#fff 0 16%,transparent 17%),linear-gradient(90deg,#000 0 50%,#777 50% 100%);}
.xf-stage{position:relative;height:110px;border-radius:10px;overflow:hidden;background:#000;}
.xf-stage div{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:800;color:rgba(255,255,255,.85);}
.xf-a{background:linear-gradient(135deg,#1d4fd8,var(--primary));}
.xf-b{background:linear-gradient(135deg,#e2561d,#ffb23d);}
.xf-ctrl input{flex:1;min-width:120px;}
.bpm-row{display:flex;align-items:center;gap:18px;}
.bpm-val{font-size:34px;font-weight:800;color:var(--text);line-height:1;}
.bpm-val small{font-size:12px;color:var(--text-faint);margin-left:4px;font-weight:600;}
.bpm-beats{display:flex;gap:8px;}
.bpm-beats i{width:22px;height:22px;border-radius:5px;background:var(--bg-panel);border:1px solid var(--border);}
.bpm-beats i.on{background:var(--primary);border-color:var(--gold);}
.bpm-beats i:first-child.on{background:#fff;}
.quiz-q{font-size:14.5px;color:var(--text);margin:0 0 8px;}
.quiz-op{display:block;width:100%;text-align:left;background:var(--bg-panel);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:9px 12px;margin-bottom:6px;font:inherit;font-size:13.5px;cursor:pointer;}
.quiz-op:hover:not(:disabled){border-color:var(--gold);}
.quiz-op:disabled{cursor:default;}
.quiz-op.right{border-color:var(--success);background:var(--success-soft);}
.quiz-op.wrong{border-color:var(--danger);background:var(--danger-soft);}
.quiz-fb{font-size:13.5px;font-weight:600;color:var(--text);min-height:4px;}
.quiz-exp{font-size:13px;color:var(--text-muted);margin-top:4px;line-height:1.6;}
.ap-looks{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.aw.pp .mini-btn{width:auto;height:auto;min-height:30px;padding:6px 12px;margin-left:0;font-size:13px;}
.aw.pp .mini-btn.on,.aw.pp .mini-btn.on:hover{background:var(--primary);border-color:var(--gold);color:var(--on-primary);}
.ap-screens{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
.ap-scr span{display:block;font-size:12px;color:var(--text-faint);margin-bottom:4px;}
.ap-stage{position:relative;border-radius:8px;overflow:hidden;background:#000;border:1px solid var(--border);}
.ap-stage.painel{aspect-ratio:21/9;}
.ap-stage.stream{aspect-ratio:16/9;}
.ap-stage > div{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;}
.ap-cam{inset:0;background:linear-gradient(160deg,#4a5568,#1f2937);color:rgba(255,255,255,.35);font-size:11px;}
.ap-midia{inset:0;background:linear-gradient(135deg,#1d4fd8,#e2561d);color:rgba(255,255,255,.85);font-size:11px;font-weight:600;}
.ap-letra{color:#fff;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.9);}
.ap-letra.painel{inset:0;font-size:15px;}
.ap-letra.stream{left:0;right:0;bottom:6%;font-size:11px;}
.ap-msg{left:0;right:0;top:0;background:rgba(0,0,0,.85);color:#fff;font-size:9.5px;padding:3px 4px;}
.ap-vazio{inset:0;color:rgba(255,255,255,.35);font-size:10.5px;line-height:1.4;}
.ap-tbl td,.ap-tbl th{text-align:center;}
.ap-tbl td:first-child,.ap-tbl th:first-child{text-align:left;}
.sb-stage{height:120px;border-radius:10px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:16px;}
.sb-stage[data-bg="escuro"]{background:linear-gradient(135deg,#0D1A30,#1d2b4a);}
.sb-stage[data-bg="branco"]{background:#f5f5f5;}
.sb-stage[data-bg="camera"]{background:radial-gradient(circle at 40% 30%,#fff7e6,#d9cbb0 55%,#8a7a62);}
.sb-txt{color:#fff;font-family:Futura,'Futura PT','Century Gothic','Nunito Sans',sans-serif;font-weight:500;font-size:24px;}
.tm-stage{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#000;border-radius:10px;padding:10px;}
.tm-stage div{text-align:center;}
.tm-stage small{display:block;font-size:11px;color:rgba(255,255,255,.55);}
.tm-stage b{font-size:22px;color:#fff;font-variant-numeric:tabular-nums;}
.tm-stage .tm-sec b{color:var(--primary);}
.tm-stage .tm-sec b.neg{color:#ff6b6b;}
.tm-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px;margin-top:10px;}
.tm-row{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--text-muted);}
.aw.pp .tm-row .mini-btn{flex:1;text-align:left;}
.tm-row label{display:flex;gap:4px;align-items:center;}
.tm-row input{width:52px;padding:5px 6px;margin:0;}
.aw.cam input[type=range]{accent-color:var(--gold);}
.cx-stage{display:flex;flex-direction:column;gap:8px;}
.cx-img{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#0b1324;}
.cx-img > div{position:absolute;}
.cx-bg{inset:-12px;background:radial-gradient(circle at 18% 30%,#ffe7a8 0 5%,transparent 6%),radial-gradient(circle at 82% 26%,#ffe7a8 0 4%,transparent 5%),radial-gradient(circle at 50% 18%,#ffffff 0 3%,transparent 4%),linear-gradient(90deg,#1d4fd8,#5B9BFF 50%,#7a3dd6);}
.cx-pessoa{left:50%;bottom:0;width:30%;transform:translateX(-50%);}
.cx-pessoa svg,.fc-l svg{width:100%;height:auto;display:block;}
.cx-mao{width:7%;aspect-ratio:1;border-radius:50%;background:#e0b48f;bottom:28%;left:30%;animation:cxMao 1.2s ease-in-out infinite alternate;}
@keyframes cxMao{to{left:60%;}}
.cx-ruido{inset:0;opacity:0;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.4 -.3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");animation:cxRuido .25s steps(2) infinite;}
@keyframes cxRuido{50%{background-position:37px 61px;}}
.cx-zebra{left:0;right:0;top:0;height:42%;background:repeating-linear-gradient(45deg,rgba(0,0,0,.55) 0 4px,rgba(255,255,255,.55) 4px 8px);mix-blend-mode:normal;}
.cx-zebra.rosto{height:62%;}
.cx-flick{inset:0;background:linear-gradient(180deg,transparent 0 30%,rgba(0,0,0,.35) 40% 55%,transparent 65%);background-size:100% 60%;animation:cxFlick 1.4s linear infinite;}
@keyframes cxFlick{to{background-position:0 120%;}}
.cx-meter{position:relative;height:20px;border-radius:6px;background:linear-gradient(90deg,#1e3a8a,#3dd6a0 40% 60%,#ffb23d);display:flex;justify-content:space-between;align-items:center;padding:0 6px;font-size:10.5px;color:#060D1B;font-weight:700;}
.cx-meter i{position:absolute;top:-3px;width:4px;height:26px;margin-left:-2px;background:#fff;border-radius:2px;box-shadow:0 0 0 1px #060D1B;transition:left .2s;}
.cx-ctrl{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px 14px;margin-top:10px;font-size:13px;color:var(--text-muted);}
.cx-ctrl label{display:flex;flex-direction:column;gap:4px;}
.cx-ctrl b{color:var(--text);font-variant-numeric:tabular-nums;}
.cx-ctrl input{width:100%;}
.cd-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.cd-svg{width:130px;height:130px;flex-shrink:0;}
.cd-ab{transition:all .2s;}
.cd-num{flex:1;min-width:150px;}
.cd-num b{display:block;font-size:30px;color:var(--text);line-height:1.1;}
.cd-num span{display:block;font-size:13px;color:var(--text-muted);margin:4px 0 8px;}
.cd-num small{font-size:11.5px;color:var(--text-faint);}
.cd-bar{height:10px;border-radius:5px;background:var(--bg-panel);border:1px solid var(--border);overflow:hidden;}
.cd-bar i{display:block;height:100%;background:#ffe7a8;transition:width .2s;}
.wb-frames{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
.wb-fr span{display:block;font-size:12px;color:var(--text-faint);margin-bottom:4px;}
.wb-fr span b{color:var(--text);}
.wb-stage{position:relative;border-radius:8px;overflow:hidden;}
.wb-stage svg{width:100%;height:auto;display:block;}
.wb-tint{position:absolute;inset:0;mix-blend-mode:color;}
.wb-fr input{width:100%;margin-top:6px;}
.cf-stage{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;margin-top:10px;background:#101a2e;}
.cf-stage .cam-cena{width:100%;height:100%;display:block;}
.cf-dark{position:absolute;inset:0;background:#000;opacity:0;transition:opacity .2s;pointer-events:none;}
.cf-stage.tercos::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent calc(33.33% - 1px),rgba(255,255,255,.6) calc(33.33% - 1px) 33.33%,transparent 33.33% calc(66.66% - 1px),rgba(255,255,255,.6) calc(66.66% - 1px) 66.66%,transparent 66.66%),linear-gradient(180deg,transparent calc(33.33% - 1px),rgba(255,255,255,.6) calc(33.33% - 1px) 33.33%,transparent 33.33% calc(66.66% - 1px),rgba(255,255,255,.6) calc(66.66% - 1px) 66.66%,transparent 66.66%);}
.fc-stage{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#101a2e;}
.fc-l{position:absolute;}
.fc-fundo{inset:6% 10% 45% 10%;border-radius:4px;background:linear-gradient(90deg,#1d4fd8,#5B9BFF 50%,#7a3dd6);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;letter-spacing:2px;font-size:clamp(14px,4vw,26px);}
.fc-meio{left:44%;bottom:0;width:18%;}
.fc-frente{left:2%;bottom:-8%;width:34%;}
.fc-l.peak svg,.fc-fundo.peak{filter:drop-shadow(0 0 1px #3dff8a) drop-shadow(0 0 1px #3dff8a);}
.fc-fundo.peak{box-shadow:0 0 0 2px #3dff8a;}
.ck-sec{margin-top:8px;}
.ck-sec > b{display:block;font-size:13px;color:var(--text);margin-bottom:4px;}
.ck-it{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;color:var(--text-muted);padding:4px 0;cursor:pointer;}
.ck-it input{accent-color:var(--gold);width:16px;height:16px;margin-top:2px;flex-shrink:0;}
.lz-palco{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#05080f;--lz-cor:#ff7800;}
.lz-palco > div{position:absolute;}
.lz-palco .lz-fundo{inset:0;background:radial-gradient(ellipse at 25% 35%,#3b2a8f 0,transparent 55%),radial-gradient(ellipse at 75% 35%,#1d4fd8 0,transparent 55%),#0b1020;transition:opacity .2s;}
.lz-palco .lz-pessoa{left:50%;bottom:0;width:26%;transform:translateX(-50%);}
.lz-palco .lz-pessoa svg{width:100%;height:auto;display:block;}
.lz-cam .lz-efeito{inset:0;pointer-events:none;}
.lz-cam .lz-efeito i{position:absolute;top:-10%;width:9%;height:120%;background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(255,255,255,0));filter:blur(3px);transform-origin:50% 0;animation:lzBeam 4s ease-in-out infinite alternate;}
.lz-cam .lz-efeito i:nth-child(1){left:12%;--r0:-18deg;--r1:10deg;}
.lz-cam .lz-efeito i:nth-child(2){left:46%;--r0:14deg;--r1:-14deg;animation-delay:-1.3s;}
.lz-cam .lz-efeito i:nth-child(3){left:80%;--r0:20deg;--r1:-8deg;animation-delay:-2.6s;}
@keyframes lzBeam{from{transform:rotate(var(--r0));}to{transform:rotate(var(--r1));}}
.lz-cam .lz-sombra{inset:0;pointer-events:none;}
.lz-cam.cam .lz-sombra{background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.45));box-shadow:inset 0 0 0 2px rgba(255,80,80,.55);}
.lz-par .lz-feixe{left:30%;top:-5%;width:40%;height:110%;background:linear-gradient(180deg,var(--lz-cor),transparent 85%);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);filter:blur(2px);transition:opacity .15s;}
.lz-par .lz-tinta{position:absolute;inset:0;background:var(--lz-cor);mix-blend-mode:multiply;border-radius:30% 30% 8px 8px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 80'%3E%3Ccircle cx='30' cy='20' r='12'/%3E%3Crect x='14' y='34' width='32' height='46' rx='8'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 80'%3E%3Ccircle cx='30' cy='20' r='12'/%3E%3Crect x='14' y='34' width='32' height='46' rx='8'/%3E%3C/svg%3E") center/100% 100% no-repeat;}
.lz-par .lz-fundo{opacity:.35;}
.lz-dmxv{left:8px;top:6px;font-size:11px;color:#cfd8ea;background:rgba(6,13,27,.7);padding:3px 8px;border-radius:6px;font-variant-numeric:tabular-nums;}
.lz-grade{display:grid;grid-template-columns:repeat(16,1fr);gap:2px;margin-bottom:6px;}
.lz-grade i{aspect-ratio:1;border-radius:3px;background:rgba(140,170,220,.10);font-size:8.5px;font-style:normal;color:var(--text-faint);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.lz-grade i[style*="background"]{color:#060D1B;font-weight:700;}
.lz-grade i.x{animation:lzPisca .6s steps(2) infinite;}
@keyframes lzPisca{50%{opacity:.35;}}
.lz-fx > span:nth-child(2){flex:1;}
.lz-fx small{color:var(--text-faint);}
.lz-fx input.erro{border-color:#ff4f6e;color:#ff6b6b;}
.lz-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0;}
.ma-palco{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;background:#05080f;border-radius:10px;padding:12px 8px;}
.ma-fx{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:#9fb0cf;}
.ma-fx i{width:34px;height:34px;border-radius:50%;border:3px solid #22345a;background:var(--ma-cor,#fff);opacity:calc(.12 + var(--ma-i,0) * .88);box-shadow:0 0 calc(var(--ma-i,0) * 22px) var(--ma-cor,#fff);transition:opacity var(--ma-fade,0s) linear,background var(--ma-fade,0s) linear,box-shadow var(--ma-fade,0s) linear;}
.ma-fx b{color:#e8eefb;font-variant-numeric:tabular-nums;font-size:11.5px;}
.ma-fx.prog b{color:#ff6b6b;}
.ma-fx.sel span{color:var(--gold);font-weight:700;}
.ma-fx.sel i{border-color:var(--gold);}
.ma-pools{display:grid;grid-template-columns:1fr;gap:6px;margin-top:10px;}
.ma-pools > div{display:flex;flex-wrap:wrap;gap:5px;align-items:center;}
.ma-pools small{width:100%;font-size:11.5px;color:var(--text-faint);}
.ma-sw{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px;}
.ma-cmd{margin-top:10px;background:#020611;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:#ffa63d;min-height:20px;}
.ma-cmd span{color:#8fa3c8;}
.ma-cmd b{font-weight:400;}
.ma-cur{display:inline-block;width:7px;height:14px;background:#ffa63d;vertical-align:-2px;margin-left:2px;animation:lzPisca 1s steps(2) infinite;}
.ma-keys{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-top:8px;}
.aw.pp .ma-keys .mini-btn{padding:6px 2px;text-align:center;font-size:12.5px;}
.ma-cues{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px;font-size:12.5px;color:var(--text-muted);}
.ma-cues span{padding:3px 8px;border:1px solid var(--border);border-radius:6px;}
.ma-cues span.on{border-color:var(--gold);color:var(--text);}
.ma-cues small{color:var(--text-faint);}
.pl-stage{position:relative;aspect-ratio:21/9;border-radius:10px;overflow:hidden;background:#000;}
.pl-stage > div{position:absolute;display:flex;align-items:center;justify-content:center;}
.pl-bg{inset:0;color:rgba(255,255,255,.45);font-size:12px;align-items:flex-start !important;justify-content:flex-start !important;padding:6px 8px;}
.pl-letra{inset:0;color:#fff;font-weight:700;font-size:18px;text-shadow:2px 2px 4px rgba(0,0,0,.9);}
.pl-fg{left:6%;bottom:10%;background:rgba(6,13,27,.9);border-left:4px solid var(--gold);color:#fff;font-size:13px;font-weight:700;padding:6px 10px;gap:8px;}
.pl-fg small{font-weight:500;color:var(--text-faint);font-size:12px;}
.pl-stage [hidden]{display:none !important;}
.pl-st{font-size:12.5px;color:var(--text-faint);margin-top:6px;}
.dm-stage{position:relative;aspect-ratio:21/9;border-radius:10px;overflow:hidden;background:#000;}
.dm-blur{position:absolute;inset:-12px;background-size:cover;background-position:center;filter:blur(10px) brightness(.7);}
.dm-blur[hidden]{display:none;}
.dm-img{position:absolute;inset:0;width:100%;height:100%;}
.aula-link{color:var(--gold);font-size:13.5px;display:inline-block;margin-bottom:12px;}
.aula-done-btn{margin-top:4px;}

.prova-box{
  background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;
  padding:18px 18px 20px;margin-top:22px;
}
.prova-box h3{font-size:17px;margin-bottom:4px;}
.prova-box.locked{color:var(--text-muted);font-size:14px;}
.prova-box.ok{border-color:var(--gold-dim);background:var(--gold-soft);color:var(--accent-text);font-size:14.5px;}
.prova-fail{
  background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger-text);
  border-radius:14px;padding:10px 12px;font-size:13.5px;margin:10px 0;
}
.quiz-q{border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin:12px 0;background:var(--bg-panel-alt);}
.quiz-q.wrong{border-color:var(--danger-border);}
.quiz-title{font-size:14.5px;color:var(--text);margin-bottom:8px;font-weight:500;}
.quiz-opt{display:flex;align-items:flex-start;gap:10px;padding:7px 4px;cursor:pointer;font-size:14px;color:var(--text);}
.quiz-opt input{margin-top:4px;accent-color:var(--gold);width:16px;height:16px;flex-shrink:0;}

.edit-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:12px;}
.edit-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:var(--gold);font-size:13.5px;}
.mini-btn{
  background:var(--bg-panel-alt);border:1px solid var(--border);color:var(--text-muted);
  border-radius:10px;width:30px;height:30px;font-size:15px;margin-left:4px;
}
.mini-btn:hover:not(:disabled){border-color:var(--gold-dim);color:var(--gold);}
.mini-btn:disabled{opacity:.35;cursor:default;}
.opt-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.opt-row input[type=radio]{accent-color:var(--gold);width:18px;height:18px;flex-shrink:0;}
.code-input.ed-in{text-align:left;margin-bottom:14px;}
textarea.ed-in{margin-bottom:14px;}

.cert-overlay{
  position:fixed;inset:0;z-index:9999;background:rgba(5,10,18,0.9);
  display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto;
}
.cert-box{width:100%;max-width:980px;}
.cert-box img{width:100%;height:auto;border-radius:10px;display:block;background:#fff;}
.cert-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:14px;}
.cert-hint{text-align:center;margin-top:10px;}

@media print{
  @page{size:A4 landscape;margin:0;}
  body > *:not(#cert-overlay){display:none !important;}
  body{padding:0;background:#fff;}
  #cert-overlay{position:static;display:block;background:#fff;padding:0;overflow:visible;}
  #cert-overlay .cert-box{max-width:none;}
  #cert-overlay .cert-box img{border-radius:0;}
  #cert-overlay .cert-actions, #cert-overlay .cert-hint{display:none;}
}

/* App instalado no celular: respeita o "notch" e a barra de gestos */
body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);}


/* =====================================================================
   Layout DashStack: menu lateral + barra superior + conteúdo
   ===================================================================== */
#app-root{min-height:100vh;}
.app{display:flex;min-height:100vh;}

/* ----- Menu lateral ----- */
.sidebar{
  width:var(--sidebar-w);flex-shrink:0;background:var(--bg-panel);
  border-right:1px solid var(--border);
  position:sticky;top:0;height:100vh;overflow-y:auto;
  display:flex;flex-direction:column;
  padding-top:env(safe-area-inset-top);
}
.brand{display:flex;align-items:center;gap:10px;height:var(--topbar-h);padding:0 16px 0 20px;flex-shrink:0;}
.brand .mark{width:34px;height:34px;border-radius:10px;background:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.brand .mark svg{width:18px;height:18px;stroke:var(--on-primary);}
.brand .logo{display:block;width:40px;height:40px;flex-shrink:0;}
.brand h1{font-size:19px;font-weight:800;line-height:1.1;}
.brand h1 span{color:var(--primary);}
.brand p{margin:2px 0 0;font-size:12px;color:var(--text-faint);}

nav.deptnav{display:flex;flex-direction:column;gap:2px;padding:8px 0 12px;}
.nav-sec{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:16px 40px 6px;}
.nav-sep{height:1px;background:var(--border);margin:10px 0;}
.navitem{
  position:relative;display:flex;align-items:center;gap:14px;
  margin:0 24px;width:calc(100% - 48px);min-height:46px;padding:0 16px;
  border:none;border-radius:6px;background:none;
  color:var(--text);font:inherit;font-size:14px;font-weight:600;text-align:left;text-decoration:none;cursor:pointer;
  transition:background .15s ease,color .15s ease;
}
.navitem svg{width:20px;height:20px;stroke:currentColor;flex-shrink:0;}
.navitem:hover{background:var(--bg-panel-alt);}
.navitem.active{background:var(--primary);color:var(--on-primary);}
.navitem.active::before{content:'';position:absolute;left:-24px;top:0;bottom:0;width:4px;border-radius:0 4px 4px 0;background:var(--primary);}
.navgroup-toggle.active{background:var(--gold-soft);color:var(--gold);}
.navgroup-toggle.active::before{display:none;}
.navgroup-toggle .chev-ic{width:16px;height:16px;margin-left:auto;transition:transform .15s ease;}
.navgroup-toggle[aria-expanded="true"] .chev-ic{transform:rotate(90deg);}
.navgroup-items{display:flex;flex-direction:column;gap:2px;}
.navgroup-items[hidden]{display:none;}
.navgroup-items .navitem{padding-left:50px;min-height:40px;font-weight:500;font-size:13.5px;}
.sidebar-foot{margin-top:auto;padding:12px 0 calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border);display:flex;flex-direction:column;gap:2px;}

/* ----- Coluna de conteúdo ----- */
.app-col{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{
  position:sticky;top:0;z-index:30;height:var(--topbar-h);
  display:flex;align-items:center;gap:16px;padding:0 30px;
  background:var(--bg-panel);border-bottom:1px solid var(--border);
}
.icon-btn{
  width:44px;height:44px;flex-shrink:0;border-radius:10px;border:none;background:none;color:var(--text);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
}
.icon-btn:hover{background:var(--bg-panel-alt);}
.icon-btn svg{width:22px;height:22px;stroke:currentColor;}
.topbar-search{flex:1;max-width:390px;position:relative;}
.topbar-search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:17px;height:17px;stroke:var(--text-faint);pointer-events:none;}
.topbar-search input{
  width:100%;height:40px;border-radius:19px;border:.6px solid var(--border-strong);background:var(--bg-panel-alt);
  padding:0 16px 0 44px;color:var(--text);font-size:14px;
}
.topbar-search input::placeholder{color:var(--text-faint);}
.topbar-spacer{flex:1;}
.alerta-btn{position:relative;}
.alerta-btn[hidden]{display:none;}
.alerta-btn.tem{color:var(--gold);}
.alerta-num{
  position:absolute;top:5px;left:23px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;
  background:var(--alerta-bg);color:var(--on-primary);font-size:10.5px;font-weight:700;line-height:16px;text-align:center;
  border:2px solid var(--bg-panel);box-sizing:content-box;pointer-events:none;   /* "99+" passa da borda do sino: o toque ali vai para o vizinho */
}
.alerta-num[hidden]{display:none;}
.nav-badge{
  margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;
  background:var(--alerta-bg);color:var(--on-primary);font-size:11.5px;font-weight:700;line-height:20px;text-align:center;
}
.nav-badge[hidden]{display:none;}
.user-menu{position:relative;}
.user-btn{display:flex;align-items:center;gap:12px;background:none;border:none;color:var(--text);padding:4px 6px;border-radius:10px;min-height:44px;cursor:pointer;text-align:left;}
.user-btn:hover{background:var(--bg-panel-alt);}
.user-btn img,.user-btn .avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--gold-soft);color:var(--gold);display:flex;align-items:center;justify-content:center;font-weight:700;}
.user-btn .u-txt{display:flex;flex-direction:column;}
.user-btn .u-name{font-size:14px;font-weight:700;line-height:1.2;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.user-btn .u-role{font-size:12px;color:var(--text-muted);line-height:1.2;}
.user-btn .chev{width:18px;height:18px;stroke:var(--text-muted);}
.user-pop{
  position:absolute;right:0;top:calc(100% + 8px);min-width:210px;z-index:50;
  background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-pop);padding:6px;
}
.user-pop[hidden]{display:none;}
.user-pop button{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;padding:0 12px;border:none;background:none;border-radius:8px;color:var(--text);font-size:14px;text-align:left;}
.user-pop button:hover{background:var(--bg-panel-alt);}
.user-pop button svg{width:18px;height:18px;stroke:var(--gold);}

main{flex:1;min-width:0;width:100%;max-width:1180px;padding:30px 30px 80px;}
/* desenho das telas (ui/tela.js): a página nunca esvazia; a espera longa vira uma barra fina sob a barra superior */
main.tela-ocupada::before{content:'';position:fixed;left:0;right:0;top:var(--topbar-h);height:2px;background:var(--primary);z-index:29;}
.tela-carregando{color:var(--text-faint);font-size:13.5px;}
.tela-erro{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger-text);border-radius:12px;padding:10px 14px;margin-bottom:18px;font-size:14px;}
header.pagehead{margin-bottom:26px;}
header.pagehead h2{font-size:30px;font-weight:800;}
header.pagehead .sub{color:var(--text-muted);font-size:15px;margin-top:6px;max-width:70ch;}
header.pagehead.compacta{margin-bottom:18px;}
.pagehead-linha{display:flex;align-items:center;gap:10px;position:relative;}   /* o balão se ancora na linha do título: nunca passa da largura do conteúdo */
.dica{display:inline-flex;}
.dica-btn{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--gold-dim);background:var(--gold-soft);color:var(--gold);
  font:italic 700 15px/1 Georgia,serif;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;position:relative;}
.dica-btn::after{content:'';position:absolute;inset:-9px;}   /* alvo de toque de 44px sem aumentar o ícone */
.dica-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
.dica-balao{display:none;position:absolute;left:0;top:calc(100% + 8px);z-index:40;width:max-content;max-width:min(340px,100%);
  background:var(--bg-panel);color:var(--text);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-pop);
  padding:10px 14px;font-size:14px;line-height:1.45;font-weight:400;}
.dica.aberta .dica-balao,.dica-btn:focus-visible ~ .dica-balao{display:block;}
@media (hover:hover){.dica:hover .dica-balao{display:block;}}   /* toque não tem hover: lá abre pelo clique */
.dica.fechada .dica-balao{display:none !important;}   /* Esc fecha mesmo com o foco ou o mouse ainda em cima */
header.pagehead.compacta h2{font-size:22px;}
/* linha discreta sob o título da visão geral: direção multimídia e intercessor (só leitura) */
.ov-infos{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin-top:4px;font-size:13.5px;color:var(--text-muted);}
.ov-info{min-width:0;overflow-wrap:anywhere;}
.ov-info b{font-weight:600;color:var(--text);}
.ov-info b.vazio{color:var(--text-faint);font-weight:400;}
.ov-infos .sep{color:var(--text-faint);}

/* ----- Cartões (padrão DashStack: branco, cantos 14px, sombra suave) ----- */
.escala-card,.ov-card,.cronograma-item,.cm-culto,.trilha-card,.criterio-row,.ranking-row,.team-block,.resp-block,
.aula-row,.prova-box,.edit-card,.doc-view,.desemp-top,.badge-card,.gov-table,.chat-messages,.dq-msg.bot,.stat-card{
  background:var(--bg-panel);border-radius:var(--r-card);box-shadow:var(--shadow);
}
.gov-head{background:var(--bg-panel-alt);font-weight:700;}

/* ----- Indicadores (cartões do topo da visão geral) ----- */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-bottom:26px;}
.stat-card{border:1px solid var(--border);padding:18px 18px 16px;display:flex;flex-direction:column;gap:12px;text-align:left;color:var(--text);font:inherit;cursor:pointer;}
.stat-card:hover{border-color:var(--gold-dim);}
.stat-top{display:flex;justify-content:space-between;gap:12px;}
.stat-lbl{font-size:15px;font-weight:600;color:var(--text-muted);overflow-wrap:anywhere;hyphens:auto;}
.stat-top > span:first-child{min-width:0;}
.stat-val{display:block;font-size:28px;font-weight:800;line-height:1.2;margin-top:8px;letter-spacing:.5px;}
.stat-ic{width:60px;height:60px;border-radius:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.stat-ic svg{width:28px;height:28px;}
.stat-ic.roxo{background:var(--tile-roxo-bg);} .stat-ic.roxo svg{stroke:var(--tile-roxo);}
.stat-ic.amarelo{background:var(--tile-amarelo-bg);} .stat-ic.amarelo svg{stroke:var(--tile-amarelo-ic);}
.stat-ic.verde{background:var(--tile-verde-bg);} .stat-ic.verde svg{stroke:var(--tile-verde-ic);}
.stat-ic.laranja{background:var(--tile-laranja-bg);} .stat-ic.laranja svg{stroke:var(--tile-laranja);}
.stat-foot{font-size:13.5px;color:var(--text-muted);}
.stat-foot b{color:var(--success-text);font-weight:700;}

/* ----- Botões e campos ----- */
.reset-btn{
  background:var(--bg-panel);border:1px solid var(--border-strong);color:var(--text);
  font-size:13.5px;font-weight:600;padding:8px 16px;border-radius:var(--r-ctl);min-height:36px;
}
.reset-btn:hover{border-color:var(--primary);color:var(--gold);}
.btn-primary,#profile-submit-btn,.cm-btn-salvar{
  background:var(--primary);border:1px solid var(--primary);color:var(--on-primary);font-weight:700;
}
.btn-primary:hover,#profile-submit-btn:hover,.cm-btn-salvar:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--on-primary);}
.code-input{
  width:100%;background:var(--bg-panel-alt);border:1px solid var(--border-strong);
  border-radius:var(--r-ctl);padding:11px 14px;color:var(--text);
  font-size:15px;text-align:center;letter-spacing:.3px;
}
.code-input:focus,.owner-field input:focus,.add-row input:focus,.chat-input-row input:focus,.dq-form input:focus,.doc-editor:focus,.topbar-search input:focus{
  outline:2px solid var(--primary);outline-offset:0;border-color:var(--primary);
}
.dept-tab{background:var(--bg-panel);border-color:var(--border-strong);color:var(--text-muted);font-weight:600;}
.dept-tab.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary);}
.badge.prog{color:var(--accent-text);background:var(--gold-soft);}
.score-btn.selected,.aula-check.done{color:var(--on-primary);}

/* ----- Login e cadastro ----- */
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--primary);
  background-image:radial-gradient(60% 60% at 10% 10%,rgba(255,255,255,.18),transparent 60%),radial-gradient(50% 50% at 90% 90%,rgba(255,255,255,.12),transparent 60%);}
.login-card{
  width:100%;max-width:420px;background:var(--bg-panel);border-radius:24px;
  padding:44px 36px;text-align:center;box-shadow:0 30px 80px -30px rgba(0,0,0,.45);
}
.login-card .mark{width:52px;height:52px;margin:0 auto 18px;border-radius:14px;background:var(--primary);display:flex;align-items:center;justify-content:center;}
.login-card .mark svg{width:26px;height:26px;stroke:var(--on-primary);}
.login-card .logo{display:block;width:96px;height:96px;margin:0 auto 18px;}
.login-card h1{font-size:24px;font-weight:800;margin-bottom:8px;}
.login-card p{font-size:14.5px;color:var(--text-muted);margin:0 0 26px;line-height:1.55;}
.google-btn{
  width:100%;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;
  background:var(--bg-panel);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-ctl);
  padding:12px 18px;font-size:15px;font-weight:700;
}
.google-btn:hover{background:var(--bg-panel-alt);}
.google-btn svg{width:20px;height:20px;}
.pedido-status{font-size:13.5px;color:var(--text-muted);line-height:1.5;}
.pedido-status:empty{display:none;}
.login-error{color:var(--danger-text);font-size:13px;margin:14px 0 0;min-height:14px;}
.u-signout{background:none;border:none;color:var(--gold);font-size:13.5px;font-weight:600;padding:8px;}
.u-signout:hover{text-decoration:underline;}

/* ----- Aviso de nova versão (service worker) ----- */
.toast{
  position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:9000;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;
  background:var(--bg-panel);color:var(--text);border:1px solid var(--border);border-radius:var(--r-card);
  box-shadow:var(--shadow-pop);padding:12px 16px;font-size:14px;max-width:calc(100% - 32px);
}
.toast[hidden]{display:none;}

.install-mini{display:none;}
.drawer-overlay{display:none;}

/* Telas largas: o botão ☰ esconde/mostra o menu lateral */
@media (min-width: 768px){ body.sidebar-oculta .sidebar{display:none;} }

/* =====================================================================
   Celular (< 768px): menu hambúrguer (padrão arch-kit)
   - o menu lateral vira gaveta por cima do conteúdo, com overlay
   - fecha no overlay, ao escolher um item, com Esc e com o "voltar" do Android
   - trava a rolagem da página e prende o foco enquanto está aberta
   ===================================================================== */
@media (max-width: 767.98px){
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;z-index:60;width:min(300px,86vw);height:auto;
    transform:translateX(-102%);transition:transform .22s ease,visibility 0s linear .22s;box-shadow:var(--shadow-pop);visibility:hidden;
  }
  body.drawer-open .sidebar{transform:none;visibility:visible;transition:transform .22s ease,visibility 0s;}
  .drawer-overlay{display:block;position:fixed;inset:0;z-index:55;background:var(--overlay);opacity:0;pointer-events:none;transition:opacity .22s ease;}
  body.drawer-open .drawer-overlay{opacity:1;pointer-events:auto;}
  body.drawer-open{overflow:hidden;}
  .topbar{padding:0 10px 0 6px;gap:4px;padding-top:env(safe-area-inset-top);height:calc(var(--topbar-h) - 10px + env(safe-area-inset-top));}
  /* busca no Descomplica compacta: ocupa o espaço livre; 16px evita o zoom do iOS ao focar */
  .topbar-search{flex:1;min-width:0;max-width:none;}
  .topbar-search svg{left:11px;}
  .topbar-search input{height:40px;padding:0 8px 0 33px;font-size:16px;text-overflow:ellipsis;}
  .topbar-search input::placeholder{font-size:14px;}
  .topbar-spacer{display:none;}
  .user-btn .u-txt,.user-btn .chev{display:none;}
  main{padding:20px 16px 60px;}
  header.pagehead h2{font-size:24px;}
  header.pagehead.compacta h2{font-size:20px;}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .stat-card{padding:14px;}
  .stat-ic{width:44px;height:44px;border-radius:16px;}
  .stat-ic svg{width:22px;height:22px;}
  .stat-val{font-size:24px;}
  .stat-lbl{font-size:13.5px;}
  .role-grid{grid-template-columns:1fr;}
  .owner-field{flex-wrap:wrap;}
  .score-grid{gap:6px;}
  .login-card{padding:36px 22px;}
}
@media (max-width: 380px){ .stat-grid{grid-template-columns:1fr;} }

/* ===== Calendário do cronograma mensal ===== */
.cal-nav{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.cal-titulo{flex:1;min-width:140px;font-size:16px;font-weight:700;color:var(--text);text-align:center;margin:0;}
.cal-grade{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;}
.cal-sem{font-size:12px;font-weight:600;color:var(--text-faint);text-align:center;padding:4px 0;}
.cal-fora{min-height:44px;}
.cal-dia{
  display:flex;flex-direction:column;align-items:stretch;gap:3px;text-align:left;min-height:92px;padding:6px 7px;
  background:var(--bg-panel);color:var(--text);border:1px solid var(--border);border-radius:var(--r-ctl);
  font:inherit;cursor:pointer;overflow:hidden;transition:border-color .15s ease;
}
.cal-dia:hover{border-color:var(--gold-dim);}
.cal-dia.tem{background:var(--gold-soft);}
.cal-dia.sel{border-color:var(--primary);box-shadow:0 0 0 2px var(--gold-dim);}
.cal-num{font-size:13px;font-weight:700;}
.cal-dia.hoje .cal-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--primary);color:var(--on-primary);}
.cal-ev{font-size:12px;line-height:1.25;color:var(--accent-text);background:var(--gold-soft);border-radius:4px;padding:1px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cal-ev--evento{color:var(--warning-text);background:var(--warning-soft);}
.cal-mais{font-size:12px;color:var(--text-faint);}
.cal-pts{display:none;gap:3px;}
.cal-pts i{width:6px;height:6px;border-radius:50%;background:var(--primary);}
.cal-pts i.ev{background:var(--tile-amarelo-ic);}
.cal-painel{margin-top:16px;}
.cal-painel-h{font-size:15px;color:var(--gold);margin:0 0 10px;}
.cal-vazio{color:var(--text-faint);font-size:13.5px;margin:0;}
.cal-item{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;text-align:left;min-height:44px;margin-bottom:8px;padding:10px 14px;
  background:var(--bg-panel);color:var(--text);border:1px solid var(--border);border-radius:14px;font:inherit;font-size:14.5px;
}
button.cal-item{cursor:pointer;transition:border-color .15s ease;}
button.cal-item:hover{border-color:var(--gold-dim);}
.cal-item-sub{font-size:12.5px;color:var(--text-muted);}
.cal-item-ir{margin-left:auto;color:var(--gold);font-size:18px;}
.cal-item--evento{border-style:dashed;}
.cal-item-det{flex-basis:100%;display:grid;gap:4px;font-size:13.5px;}
.cal-item-det span{color:var(--text-muted);}
.cal-item-info{white-space:pre-wrap;color:var(--text-muted);}
/* semana (aba Semanal): mesmo desenho do mês; culto fixo do dia em tom neutro e tracejado */
.cal-mes-ab{margin-left:4px;font-size:12px;font-weight:600;color:var(--text-faint);text-transform:uppercase;}
.cal-ev--padrao{color:var(--text-muted);background:transparent;border:1px dashed var(--border-strong);}
.cal-pts i.pad{background:var(--text-faint);}
.cal-item--padrao{border-style:dashed;}
/* tela do dia (detalhe do dia no calendário): abaixo de 1280px ela troca de lugar com a grade; a partir de 1280px fica ao lado, rolando com a página */
.cal-dia-topo{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.cal-dia-topo .reset-btn{min-width:44px;min-height:44px;}
.cal-dia-topo .cal-voltar{white-space:nowrap;padding:0 10px;}
@media (max-width: 359.98px){
  .cal-dia-topo{gap:4px;}
  .cal-dia-topo .cal-voltar{font-size:13px;padding:0 6px;}
  .cal-dia-topo .cal-painel-h{font-size:15px;}
}
.cal-dia-topo .cal-painel-h{flex:1;margin:0;text-align:center;font-size:16px;}
.cal-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;}
.cal-chip{
  flex:1 1 calc(33.333% - 6px);min-width:0;min-height:44px;padding:2px 8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
  display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1.25;
  border:1px solid var(--border);background:var(--bg-panel);color:var(--text);border-radius:999px;font:inherit;font-size:13px;cursor:pointer;
}
.cal-chip b{display:block;}
.cal-chip span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.cal-chip.on{background:var(--primary);color:var(--on-primary);border-color:var(--primary);}
.cal-miolo{scroll-margin-top:calc(var(--topbar-h) + 8px);}
.cm-culto--fixo{padding:12px;margin-bottom:0;}
.cm-culto--fixo:hover{border-color:var(--border);}
.cm-culto--fixo .cm-culto-h{cursor:default;font-size:14px;}
.cm-culto--fixo .cm-culto-nome{display:inline;margin-left:6px;color:var(--text-muted);}
.cm-culto--fixo .cm-body{display:block;margin-top:10px;padding-top:10px;}
.cm-fixo-topo{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px;}
.cm-dados{flex:1;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;font-size:13.5px;}
.cm-dados > div{min-width:0;overflow-wrap:anywhere;}
.cm-dados span{display:block;font-size:11.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;}
.cm-dados .cm-dados-largo{grid-column:1 / -1;white-space:pre-wrap;}
.cm-fixo-topo .cm-arte{margin:0;flex:0 0 76px;}
.cm-fixo-topo .cm-arte img{max-width:76px;max-height:136px;border-radius:8px;}
.cm-culto--fixo .cm-sec{margin-bottom:10px;}
.cm-culto--fixo .cm-sec-h{margin:0 0 4px;}
.cm-culto--fixo .cm-rot-row{padding:5px 10px;font-size:13px;gap:10px;}
.cm-culto--fixo .cm-rot-h{min-width:76px;}
.cm-rot-louv{padding:4px 10px 8px;border-top:1px solid var(--border);}
.cm-louv-lista{margin:0;padding-left:20px;font-size:13px;display:grid;gap:0 16px;}
.cm-louv-lista a{color:var(--text);display:inline-block;padding:5px 2px;}
.cm-vazio{color:var(--text-faint);font-size:13px;}
.cm-acoes-fim{display:flex;flex-wrap:wrap;gap:8px;}
.cm-acoes-fim .cm-culto-acoes{margin:0;justify-content:flex-start;}
.cm-acoes-fim .reset-btn{min-height:44px;}
@media (min-width: 520px){ .cm-louv-lista{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width: 1279.98px){
  .cal-miolo:not(.vendo-dia) > .cal-painel{display:none;}
  .cal-miolo.vendo-dia > .cal-nav,.cal-miolo.vendo-dia > .cal-grade{display:none;}
}
@media (min-width: 1280px){
  .cal-miolo{display:grid;grid-template-columns:minmax(0,1fr) 400px;grid-template-rows:auto 1fr;column-gap:20px;align-items:start;}
  .cal-miolo > .cal-nav,.cal-miolo > .cal-grade{grid-column:1;}
  .cal-miolo > .cal-painel{
    grid-column:2;grid-row:1 / span 2;margin-top:0;   /* sem rolagem própria: a roda do mouse sobre o detalhe rola a página */
  }
  .cal-voltar{display:none;}
}
@media (min-width: 768px){
  .cal-grade--semana .cal-dia{min-height:150px;}
}
@media (max-width: 767.98px){
  .cal-grade{gap:4px;}
  .cal-dia{min-height:48px;align-items:center;padding:4px 2px;}
  .cal-ev,.cal-mais{display:none;}
  .cal-pts{display:flex;}
  .cal-nav .reset-btn{min-width:44px;}
}

/* =====================================================================
   Toque no celular (< 768px): alvos de pelo menos 44px, linha inteira clicável nas caixas de marcação,
   campos legíveis e tabela que não estoura com nome longo.
   ===================================================================== */
@media (max-width: 767.98px){
  .reset-btn,.dept-tab,.dq-chip,.add-row button,.google-btn{min-height:44px;}
  .reset-btn,.dept-tab,.dq-chip{display:inline-flex;align-items:center;justify-content:center;}
  .backlink{min-height:44px;margin-bottom:8px;}
  main select,main input[type=text],main input[type=date],main input[type=tel],main input[type=time],main input[type=url],main input[type=search],main input[type=email],main input:not([type]){min-height:44px;font-size:16px;}
  main textarea{font-size:16px;}
  .role-card select{min-height:44px;}
  .owner-field{flex-direction:column;align-items:stretch;gap:6px;}
  .owner-field label{white-space:normal;}
  .check-item{align-items:center;padding:0 8px;}
  .check-item input[type=checkbox]{width:24px;height:24px;margin-top:0;}
  .check-item input[type=checkbox]:checked::after{left:7px;top:3px;width:6px;height:11px;}
  .check-item label{flex:1;display:flex;align-items:center;min-height:48px;padding:6px 0;}
  .dept-check-row{min-height:48px;padding:0 12px;}
  .dept-check-row input{width:22px;height:22px;flex-shrink:0;}
  .dept-check-row label{flex:1;display:flex;align-items:center;min-height:48px;}
  .reset-btn[aria-label]{min-width:44px;}
  .user-pop button{min-height:44px;}
  .ov-check{display:flex;align-items:center;gap:10px;min-height:44px;}
  .ov-check input{width:22px;height:22px;flex-shrink:0;}
  .gov-row{grid-template-columns:minmax(0,1fr) 46px 46px 58px;}
  .gov-row > span{min-width:0;overflow-wrap:anywhere;}
  .ac-ico-adm .mini-btn{min-height:44px;min-width:44px;}
  .ck-it{min-height:44px;align-items:center;}
  .cx-ctrl input[type=range],.wb-fr input[type=range],.aw.cam input[type=range]{min-height:44px;}
}

@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important;}}

/* resumo do desempenho no painel "Como estou?" da visão geral */
.desemp-top.resumo{box-shadow:none;margin:10px 0 4px;padding:14px;}
.desemp-top.resumo .desemp-ring{width:72px;height:72px;}
.desemp-top.resumo .desemp-ring span{font-size:17px;}
.desemp-linha b{font-size:14px;}
