/* Início: saudação, avisos lido/não lido, eventos com inscrição e atalhos */

/* ---------- Saudação ---------- */
.dash-hero{ position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; gap:1.25rem;
  padding:1.75rem 2rem; border-radius:var(--radius); color:#fff; box-shadow:var(--shadow-lg);
  background:radial-gradient(700px 300px at 90% -20%, rgba(255,255,255,.18), transparent 60%), linear-gradient(135deg, #5c1220, var(--wine) 55%, #b3203a); }
.dash-hero .text-hero{ color:#fff; }
.dash-hero-sub{ color:#fde8ec; }
@media (max-width:640px){ .dash-hero{ padding:1.5rem 1.25rem; } }
html[data-contraste="alto"] .dash-hero{ background:var(--wine-dark); }
/* Hoje você tem / aniversariantes do dia */
.dash-hoje{ padding:1.1rem 1.25rem; border-radius:var(--radius); border:1px solid var(--border); background:var(--surface); box-shadow:var(--shadow); }
.dash-hoje-item{ display:flex; align-items:center; gap:.8rem; padding:.7rem .85rem; border-radius:.9rem; border:1px solid var(--border); background:var(--surface-strong); }
.dash-hoje-item:hover{ border-color:var(--accent); }
.dash-hoje-hora{ display:inline-flex; align-items:center; justify-content:center; min-width:3.6rem; padding:.35rem .5rem; border-radius:.7rem;
  background:var(--wine); color:#fff; font-weight:800; font-variant-numeric:tabular-nums; }
.dash-aniv{ display:flex; gap:1rem; align-items:flex-start; padding:1.1rem 1.25rem; border-radius:var(--radius); box-shadow:var(--shadow);
  border:1px solid color-mix(in srgb, var(--wine) 25%, var(--border)); background:linear-gradient(135deg, var(--wine-50), var(--surface-strong) 60%); }
.dark .dash-aniv{ background:linear-gradient(135deg, rgba(244,163,178,.12), var(--surface-strong) 60%); }
.dash-aniv-emoji{ font-size:2.2rem; line-height:1; }
.dash-aniv-pessoa{ display:flex; gap:.6rem; align-items:flex-start; padding:.6rem .75rem; border-radius:.9rem; background:var(--surface-strong); border:1px solid var(--border); min-width:14rem; }
.dash-h{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; font-weight:800; font-size:1.05rem; color:var(--text); }
h3.dash-h:not(.mb-0):not(.mb-1):not(.mb-2):not(.mb-3){ margin-bottom:.75rem; }

/* ---------- Comunicado urgente não lido ---------- */
.dash-urgente{ display:flex; align-items:center; gap:1rem; padding:1rem 1.25rem; border-radius:var(--radius);
  background:linear-gradient(135deg, var(--wine-dark), var(--wine)); color:#fff; box-shadow:var(--shadow); }
.dash-urgente:hover{ filter:brightness(1.06); }
/* Bloco que abre e fecha com os comunicados urgentes dentro: altura animada por grid (0fr → 1fr),
   itens entram em sequência. Abre ao passar o mouse; clique ou teclado fixa. */
.dash-urgente-box{ border-radius:var(--radius); background:linear-gradient(135deg, var(--wine-dark), var(--wine)); color:#fff; box-shadow:var(--shadow); overflow:hidden;
  transition:box-shadow .45s cubic-bezier(.22,1,.36,1); }
.dash-urgente-box.is-open{ box-shadow:0 18px 40px -18px rgba(110,15,34,.55), var(--shadow); }
.dash-urgente-box > .dash-urgente{ width:100%; border:0; text-align:left; font:inherit; color:inherit; cursor:pointer; background:none; box-shadow:none; border-radius:0; }
.dash-urgente-acao{ display:flex; align-items:center; gap:.35rem; font-weight:700; font-size:.875rem; white-space:nowrap; }
.dash-urgente-seta{ transition:transform .45s cubic-bezier(.22,1,.36,1); }
.dash-urgente-box.is-open .dash-urgente-seta{ transform:rotate(180deg); }
.dash-urgente-fechar, .dash-urgente-box.is-open .dash-urgente-abrir{ display:none; }
.dash-urgente-box.is-open .dash-urgente-fechar{ display:inline; }
.dash-urg-corpo{ display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .55s cubic-bezier(.22,1,.36,1), opacity .4s ease; }
.dash-urgente-box.is-open .dash-urg-corpo{ grid-template-rows:1fr; opacity:1; }
.dash-urg-dentro{ min-height:0; overflow:hidden; }
.dash-urg-item{ opacity:0; transform:translateY(-6px); transition:opacity .4s ease, transform .5s cubic-bezier(.22,1,.36,1); transition-delay:0s; }
.dash-urgente-box.is-open .dash-urg-item{ opacity:1; transform:none; transition-delay:calc(.08s + var(--i, 0) * .06s); }
.dash-urg-lista{ list-style:none; margin:0; padding:0 1.25rem 1.25rem; display:flex; flex-direction:column; gap:.75rem; }
.dash-urg-item{ display:flex; gap:1rem; align-items:flex-start; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16); border-radius:calc(var(--radius) - 4px); padding:1rem; }
.dash-urg-foto{ flex:0 0 clamp(96px, 22%, 200px); aspect-ratio:16/10; max-width:100%; border-radius:10px; overflow:hidden; background:rgba(255,255,255,.12); }
.dash-urg-foto img{ width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .25s; }
.dash-urg-foto img.is-loaded{ opacity:1; }
.dash-urg-novo{ font-size:.7rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; background:#fff; color:var(--wine-dark); border-radius:999px; padding:.1rem .5rem; }
.dash-urg-texto{ font-size:.9rem; color:rgba(255,255,255,.88); margin:.25rem 0 .5rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.dash-urg-ler{ font-weight:700; font-size:.875rem; color:#fff; text-decoration:underline; text-underline-offset:3px; }
.dash-urg-ler:focus-visible, .dash-urgente-box > .dash-urgente:focus-visible{ outline:3px solid #fff; outline-offset:-3px; }
@media (max-width: 560px){ .dash-urg-item{ flex-direction:column; } .dash-urg-foto{ flex-basis:auto; width:100%; } }
@media (prefers-reduced-motion: reduce){ .dash-urgente-box, .dash-urgente-seta, .dash-urg-corpo, .dash-urg-item, .dash-urg-foto img{ transition:none !important; } }
.dash-urgente-ic{ width:2.5rem; height:2.5rem; border-radius:999px; background:rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; flex-shrink:0; }

/* ---------- Avisos (selos de leitura em components/badges-e-pills.css) ---------- */
.dash-avisos{ display:flex; flex-direction:column; gap:.5rem; }
.dash-aviso{ display:block; padding:.9rem 1rem; border-radius:.9rem; border:1px solid var(--border); background:var(--surface-strong); transition:.15s; }
.dash-aviso:hover{ border-color:var(--accent); }
.dash-aviso-novo{ border-left:4px solid var(--wine); }
.line-clamp-2{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* ---------- Acessos rápidos (grade) ---------- */
.qa-logo{ width:20px; height:20px; object-fit:contain; flex-shrink:0; }
.qa-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:.5rem; }
.qa-grid-tile{ display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; padding:.8rem; border-radius:.9rem; min-height:5rem;
  border:1px solid var(--border); background:var(--surface-strong); transition:.15s; text-align:left; }
.qa-grid-tile{ position:relative; }
.qa-ext{ position:absolute; top:.6rem; right:.6rem; color:var(--muted); }
.qa-pessoal .qa-icon{ background:var(--surface-strong); border:1px dashed var(--border-strong); }
.qa-grid-tile:hover{ border-color:var(--accent); transform:translateY(-1px); }
.qa-grid-tile:hover .qa-icon{ background:var(--wine); color:#fff; }
.qa-label{ font-size:.82rem; font-weight:700; color:var(--text); line-height:1.25; }
.qa-icon{ width:2.25rem; height:2.25rem; border-radius:.75rem; background:var(--wine-50); color:var(--wine); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:.15s; }
.dark .qa-icon{ background:rgba(244,163,178,.14); color:var(--accent); }


/* ---------- Hero de aniversário (quando o usuário logado faz aniversário hoje) ---------- */
.birthday-hero{ position:relative; overflow:hidden; border-radius:var(--radius); padding:2.5rem 1.5rem; text-align:center;
  background:linear-gradient(135deg,var(--wine-dark),var(--wine) 55%,var(--crimson)); }
.birthday-hero-emoji{ font-size:1.5rem; letter-spacing:.6rem; margin-bottom:.5rem; }
.birthday-hero-avatar{ width:88px; height:88px; border-radius:999px; background:rgba(255,255,255,.18); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.9rem; border:2px solid rgba(255,255,255,.35); }

/* ---------- Carrossel de próximos eventos (foto de capa) ----------
   O texto fica sobre uma película escura em degradê: contraste ≥ 4,5:1 em qualquer foto.
   Sem foto, aparece o fundo vinho da marca com o ícone de calendário. */
.ev-carrossel{ position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-lg); background:var(--wine-dark); }
.ev-carrossel-janela{ overflow:hidden; }
.ev-carrossel-trilho{ display:flex; transition:transform .55s cubic-bezier(.2,.8,.2,1); }
.ev-slide{ position:relative; flex:0 0 100%; min-width:100%; min-height:20rem; display:flex; align-items:flex-end; color:#fff; outline:none; }
.ev-slide-fundo{ position:absolute; inset:0; overflow:hidden;
  background:radial-gradient(900px 400px at 85% 10%, rgba(245,51,77,.35), transparent 60%), linear-gradient(135deg, #3d0a14, var(--wine) 60%, #a3162f); }
.ev-slide-marca{ position:absolute; right:2.5rem; top:50%; transform:translateY(-50%); color:rgba(255,255,255,.14); }
.ev-slide-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .4s ease; }
.ev-slide-img.is-loaded{ opacity:1; }
.ev-slide-fundo::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(10,6,8,.88) 0%, rgba(10,6,8,.72) 45%, rgba(10,6,8,.25) 100%),
             linear-gradient(0deg, rgba(10,6,8,.6) 0%, transparent 55%); }
.ev-slide-conteudo{ position:relative; z-index:1; padding:2rem 2rem 4.5rem; max-width:40rem; }
.ev-slide-titulo{ font-size:clamp(1.4rem, 1.1rem + 1.2vw, 2.1rem); font-weight:800; line-height:1.15; text-shadow:0 1px 2px rgba(0,0,0,.4); }
.ev-slide-info{ display:flex; align-items:center; gap:.4rem; margin-top:.45rem; font-size:.95rem; color:#fff; }
.ev-slide-selo{ display:inline-flex; align-items:center; padding:.25rem .7rem; border-radius:999px; font-size:.72rem; font-weight:800;
  letter-spacing:.04em; text-transform:uppercase; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.35); }
.ev-slide-novo{ background:#fff; color:var(--wine-dark); border-color:#fff; }
.ev-slide-ok{ display:inline-flex; align-items:center; gap:.35rem; min-height:2.5rem; padding:.4rem 1rem; border-radius:.8rem; font-weight:800;
  background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.4); }
.ev-slide-cancelar{ min-height:2.5rem; padding:.4rem .6rem; font-weight:700; color:#fff; text-decoration:underline; text-underline-offset:.2em; }
.ev-slide-cancelar:hover{ text-decoration-thickness:2px; }
.ev-carrossel-controles{ position:absolute; left:2rem; bottom:1.1rem; z-index:2; display:flex; align-items:center; gap:.4rem; }
.ev-carrossel-btn{ width:2.5rem; height:2.5rem; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; color:#fff;
  background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.35); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.ev-carrossel-btn:hover{ background:rgba(0,0,0,.55); }
.ev-carrossel-btn:focus-visible, .carrossel-ponto:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
.ev-carrossel-pontos{ display:flex; align-items:center; }
.carrossel-contador{ min-width:4rem; text-align:center; color:#fff; font-size:.85rem; font-weight:700; }
.carrossel-ponto{ position:relative; width:1.6rem; height:2.5rem; border:0; background:transparent; cursor:pointer; }
.carrossel-ponto::before{ content:""; position:absolute; left:50%; top:50%; width:.5rem; height:.5rem; transform:translate(-50%,-50%);
  border-radius:999px; background:rgba(255,255,255,.55); transition:width .2s; }
.carrossel-ponto[aria-current="true"]::before{ width:1.3rem; background:#fff; }
@media (max-width:640px){
  .ev-slide{ min-height:24rem; }
  .ev-slide-conteudo{ padding:1.5rem 1.25rem 4.5rem; }
  .ev-carrossel-controles{ left:1.25rem; }
  .ev-slide-marca{ display:none; }
}
html[data-movimento="reduzido"] .ev-carrossel-trilho{ transition:none; }

/* ---------- Carrossel: a foto cobre todo o cartão, com informações sobrepostas ---------- */
.ev-slide{ position:relative; display:block; min-height:0; height:clamp(320px, 35vw, 440px); }
.ev-slide-foto{ position:absolute; inset:0; display:block; height:auto; overflow:hidden;
  background:linear-gradient(135deg, var(--wine-dark), var(--wine)); }
.ev-slide-foto .ev-slide-img{ position:absolute; inset:0; }
.ev-slide-foto::after{ content:""; position:absolute; inset:25% 0 0; pointer-events:none;
  background:linear-gradient(180deg, transparent 0%, rgba(48,7,18,.38) 30%, rgba(48,7,18,.96) 100%); }
.ev-slide-sem-foto{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.45);
  background:radial-gradient(circle at 80% 30%, rgba(255,255,255,.14), transparent 55%); }
.ev-slide-data{ position:absolute; left:1.25rem; top:1.25rem; padding:.4rem .75rem; border-radius:.75rem;
  background:rgba(60,10,20,.88); color:#fff; font-size:.8rem; font-weight:800; letter-spacing:.04em; }
.ev-slide-legenda{ position:absolute; z-index:1; inset:auto 0 0; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  padding:3.5rem 1.25rem 3.75rem; background:linear-gradient(180deg, transparent, rgba(48,7,18,.94) 28%); color:#fff; }
.ev-slide-legenda .ev-slide-titulo{ font-size:clamp(1.1rem, 1rem + .6vw, 1.45rem); text-shadow:none; }
.ev-slide-legenda .ev-slide-info{ margin-top:.2rem; font-size:.88rem; color:rgba(255,255,255,.9); }
.ev-slide-descricao{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
  max-width:46rem; margin:.5rem 0; font-size:.9rem; line-height:1.4; color:rgba(255,255,255,.88); }
.ev-slide-acoes{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.ev-carrossel-controles{ position:absolute; right:1rem; bottom:.65rem; z-index:3; display:flex; justify-content:center; padding:0; background:transparent; }
.ev-slide-descricao{ -webkit-line-clamp:1; }
@media (max-width:640px){
  .ev-slide{ height:320px; }
  .ev-slide-legenda{ gap:.55rem; padding:3rem 1rem 3.5rem; }
  .ev-slide-legenda .ev-slide-acoes{ width:100%; }
  .ev-carrossel-controles{ right:.75rem; bottom:.5rem; }
}

/* ---------- Avisos da Inicial: abas e comunicado que se abre ao passar o mouse ---------- */
.dash-abas{ display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:.75rem; }
/* Fechado: duas linhas com esmaecido. Aberto (mouse parado ~0,2 s ou foco): o texto se estende suavemente. */
.dash-aviso-texto{ margin-top:.25rem; max-height:2.9em; overflow:hidden; line-height:1.45;
  -webkit-mask-image:linear-gradient(#000 55%, transparent); mask-image:linear-gradient(#000 55%, transparent);
  transition:max-height .45s cubic-bezier(.22,.61,.36,1) 0s; }
.dash-aviso-ler{ display:flex; align-items:center; gap:.2rem; font-size:.85rem; font-weight:700; color:var(--wine);
  max-height:0; opacity:0; overflow:hidden; transition:opacity .3s ease 0s, max-height .3s ease 0s, margin-top .3s ease 0s; margin-top:0; }
.dash-aviso-abre:hover .dash-aviso-texto, .dash-aviso-abre:focus-visible .dash-aviso-texto{
  max-height:24em; -webkit-mask-image:none; mask-image:none; transition-delay:.18s; }
.dash-aviso-abre:hover .dash-aviso-ler, .dash-aviso-abre:focus-visible .dash-aviso-ler{ max-height:2rem; opacity:1; margin-top:.5rem; transition-delay:.3s; }
.dark .dash-aviso-ler{ color:#f7b8c2; }
.dash-aviso-abre{ transition:box-shadow .3s ease, border-color .3s ease, transform .3s ease; }
.dash-aviso-abre:hover{ box-shadow:var(--shadow-lg); }
html[data-movimento="reduzido"] .dash-aviso-texto, html[data-movimento="reduzido"] .dash-aviso-ler, html[data-movimento="reduzido"] .dash-aviso-abre{ transition:none; }

/* Cabeçalho da Inicial: foto da fachada no lugar do símbolo */
.dash-fachada{ position:relative; z-index:1; flex-shrink:0; width:clamp(180px, 20vw, 250px); aspect-ratio:16/10; margin:0;
  border-radius:1rem; overflow:hidden; border:3px solid rgba(255,255,255,.85); box-shadow:0 12px 28px rgba(0,0,0,.28); }
.dash-fachada img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:640px){ .dash-fachada{ display:none; } }
