/* ═══ fonte/estilo/00-base/010-variaveis-e-reset.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Variáveis, cores da marca, reset
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 1–400
 * TAMANHO PREVISTO: 400 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ══════════════════════════════════════
   DVI SORTEIO — CSS Premium v2
   Idêntico ao catálogo DVI
   ══════════════════════════════════════ */
@keyframes fadeInOv  { from { opacity:0 } to { opacity:1 } }
@keyframes slideUpMd { from { transform:translateY(32px) scale(.94);opacity:0 } to { transform:none;opacity:1 } }

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}

/* ── Variáveis DVI ── */
body{
  --verde-1:#00aba9;--verde-2:#006361;--verde-3:#71bfba;
  --verde-1-08:rgba(0,171,169,.08);--verde-1-20:rgba(0,171,169,.2);
  --creme:#e0dabf;--creme-l:#f2efe0;--pedra:#d0d0c5;--amendoa:#cdb09f;
  --w:#fff;
  --c9:#deeef0;--c8:#bdd4d7;--c6:#92b0b3;--c5:#6e9094;--c4:#527276;--c3:#3c5a5e;--c2:#2e4446;--c1:#243638;--c0:#1e2e30;
  --accent:var(--verde-1);--accent2:var(--verde-2);
  --accentglow:rgba(0,171,169,.35);--accentfade:rgba(0,171,169,.12);
  --bg:#0d1c17;--bg2:rgba(13,28,23,.94);--bgcard:rgba(20,42,32,.80);--bgcard2:rgba(15,30,24,.92);
  --border:rgba(0,171,169,.18);--border2:rgba(0,171,169,.32);
  --text:var(--c9);--text2:var(--c6);--text3:var(--c4);
  --c7:#a8c4c8;
  --green:#4ade80;--amber:#fbbf24;--orange:#fb923c;
  --ac:#00aba9;
  --shadow-s:0 2px 12px rgba(0,0,0,.4),0 1px 4px rgba(0,0,0,.28);
  --shadow-m:0 8px 32px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.3);
  --shadow-l:0 24px 80px rgba(0,0,0,.6),0 8px 24px rgba(0,0,0,.4);
  --glow:0 0 80px rgba(0,171,169,.4),0 0 24px rgba(0,171,169,.2);
  --btn-grad:linear-gradient(135deg,#004e4c,#00aba9);
  --btn-grad-hov:linear-gradient(135deg,#006361,#00d4d2);
  --ee:cubic-bezier(.16,1,.3,1);
  --eq:cubic-bezier(.25,1,.5,1);
  --font:'Outfit',system-ui,sans-serif;
  --b:'DM Sans',system-ui,sans-serif;
  /* ── Véu canônico do fundo: idêntico em TODAS as telas (= fundo da tela de descanso).
     Mexa AQUI e muda em todo lugar: descanso, menu, QR, sorteio e login. ── */
  --bg-veil:radial-gradient(ellipse 70% 55% at 50% 50%, rgba(0,10,6,.40) 0%, rgba(0,2,1,.68) 100%);
}

/* ── Tema Sorrisos (usa vars DVI dark) ── */
body[data-theme="sorrisos"] {
  /* Véu mais leve: no tema Sorrisos as fotos são protagonistas */
  --bg-veil:radial-gradient(ellipse 80% 65% at 50% 50%, rgba(0,40,32,.10) 0%, rgba(0,6,4,.24) 100%);
}
body[data-theme="sorrisos"] .sorteio-bg { opacity:0; }
body[data-theme="sorrisos"] .bubbles { opacity:0 !important; }

/* ══ BACKGROUND EM CAMADAS ══ */

.sorteio-bg{
  position:fixed;inset:0;z-index:-3;
  background:url('assets/wlc-backdrop.webp') center/cover no-repeat;
  pointer-events:none;
  transition:filter .75s ease, opacity .75s ease, transform .5s ease-out;
  /* Shift → teal DVI, escurece para fundo premium */
  filter:hue-rotate(-10deg) brightness(.22) saturate(.80);
  opacity:0; /* Fundo canônico: a imagem some em todas as telas (igual ao descanso) */
}
.atm{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;transition:opacity .75s ease;opacity:.10;}
body[data-theme="sorrisos"] .atm{opacity:.20;}

/* ── Névoa orgânica — borda respirando ── */
.organic-fog{
  position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  background:
    radial-gradient(ellipse 62% 50% at -4%  42%,  rgba(0,171,169,.30), transparent 64%),
    radial-gradient(ellipse 62% 50% at 104% 58%,  rgba(0,171,169,.26), transparent 64%),
    radial-gradient(ellipse 82% 32% at 50%  -6%,  rgba(0,171,169,.36), transparent 58%),
    radial-gradient(ellipse 82% 38% at 50%  106%, rgba(0,171,169,.28), transparent 58%),
    radial-gradient(ellipse 45% 45% at 50%  50%,  rgba(0,171,169,.07), transparent 70%);
  opacity:1; /* Fundo canônico: névoa teal a todo vapor em todas as telas (= descanso) */
}

.bubbles{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;transition:opacity .75s ease;opacity:.06;}
body[data-theme="dvi"] .atm,body[data-theme="sorrisos"] .atm,body:not([data-theme]) .atm{
  background:
    radial-gradient(ellipse 80% 55% at 88% 0%,  rgba(0,171,169,.28), transparent 52%),
    radial-gradient(ellipse 65% 50% at 0%  100%, rgba(0,99,97,.20),   transparent 56%),
    radial-gradient(ellipse 50% 50% at 30% 30%,  rgba(0,171,169,.11), transparent 65%),
    radial-gradient(ellipse 45% 45% at 50% 50%,  rgba(0,99,97,.07),   transparent 68%),
    rgba(13,28,23,.85); /* base: harmoniza com #0d1c17 */
}
.bubbles{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bub{position:absolute;border-radius:50%;filter:blur(40px);animation:atmFloat 22s ease-in-out infinite}
.b1{width:520px;height:520px;top:-160px;right:-180px;animation-duration:24s}
.b2{width:320px;height:320px;bottom:15%;left:-120px;animation-delay:-8s;animation-duration:30s}
.b3{width:200px;height:200px;top:38%;right:12%;animation-delay:-15s;animation-duration:34s}
.b4{width:140px;height:140px;bottom:12%;right:6%;animation-delay:-4s;animation-duration:28s}

@keyframes atmFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  33%{transform:translate(28px,-36px) scale(1.04)}
  66%{transform:translate(-18px,28px) scale(.96)}
}

body[data-theme="dvi"] .b1,body:not([data-theme]) .b1{background:#00aba9;opacity:.13}  /* verde-1 DVI */
body[data-theme="dvi"] .b2,body:not([data-theme]) .b2{background:#71bfba;opacity:.15}  /* verde-3 DVI */
body[data-theme="dvi"] .b3,body:not([data-theme]) .b3{background:#92b0b3;opacity:.16}  /* c6 DVI */
body[data-theme="dvi"] .b4,body:not([data-theme]) .b4{background:#cdb09f;opacity:.14}  /* amendoa DVI */
/* ══ SHELL ══ */
.app{
  display:flex;flex-direction:column;
  height:100dvh;overflow:hidden;
  font-family:var(--font);
  color:var(--text);
  position:relative;z-index:1;
}

/* ══ HEADER ══ */
.app-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(16px,2.5vw,32px);height:clamp(52px,7dvh,76px);flex-shrink:0;
  background:rgba(9,18,14,.88);
  backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);
  border-bottom:1px solid var(--border);
  z-index:10;
}
.nav-brand{display:flex;align-items:center;gap:0;text-decoration:none;}
.nav-logo{height:58px;width:auto;object-fit:contain;image-rendering:high-quality;-ms-interpolation-mode:bicubic;transform:translateZ(0);flex-shrink:0;transition:transform .4s var(--ee);}
.nav-brand:hover .nav-logo{transform:scale(1.03) translateZ(0)}
.nav-slogan{height:56px;width:auto;object-fit:contain;image-rendering:high-quality;-ms-interpolation-mode:bicubic;transform:translateZ(0);padding-left:18px;margin-left:4px;border-left:1px solid var(--border2);flex-shrink:0;opacity:.85;}
.nav-right{display:flex;align-items:center;gap:14px;}
.nav-meta{font-size:12.5px;color:var(--text2);font-weight:500;letter-spacing:.01em;}
.nav-back-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.07);color:rgba(255,255,255,.8);font:500 13px var(--b);cursor:pointer;transition:background .18s,border-color .18s;flex-shrink:0;}
.nav-back-btn:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.28);}
/* nav-cfg-btn movido para float-ctrl — veja .fctrl-cfg abaixo */

/* ── Evita sobreposição do nav-meta com o float-ctrl no modo sorteio ── */
body.mode-sorteio .app-nav { padding-right: 96px; }

/* ══ STAGE ══ */
.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:clamp(8px,2dvh,24px) clamp(10px,2vw,24px);}

/* ══ UPLOAD ZONE ══ */
.upload-zone{
  display:flex;flex-direction:column;align-items:center;gap:20px;
  padding:40px 32px;max-width:860px;width:100%;
  background:transparent;border:none;border-radius:28px;
  position:relative;overflow:hidden;cursor:default;
}
/* lobby header */
.lobby-hd{text-align:center;animation:fadeInUp .4s var(--ee) both}
.lobby-hd-title{font:700 20px/1.2 var(--font);color:var(--text);letter-spacing:-.02em}
.lobby-hd-sub{font:400 13px/1.5 var(--b);color:var(--text2);margin-top:6px}
/* cards grid */
.lobby-cards{display:flex;gap:20px;width:100%}
@media(max-width:640px){.lobby-cards{flex-direction:column}}
/* base card */
.lbc{
  flex:1;display:flex;flex-direction:column;gap:14px;
  padding:24px;border-radius:22px;
  border:1.5px solid rgba(255,255,255,.1);
  background:var(--bgcard);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:var(--shadow-m);
  transition:border-color .22s,background .22s,transform .2s;
  animation:fadeInUp .45s var(--ee) both;
}
/* online card */
.lbc--online{
  border-color:rgba(0,171,169,.32);
  background:linear-gradient(145deg,rgba(0,171,169,.14),rgba(0,171,169,.06));
}
.lbc--online:hover{border-color:rgba(0,171,169,.55);background:linear-gradient(145deg,rgba(0,171,169,.2),rgba(0,171,169,.09))}
/* file card */
.lbc--file{
  border-style:dashed;cursor:pointer;
  background:rgba(255,255,255,.03);
}
.lbc--file:hover{border-color:rgba(0,171,169,.4);border-style:solid;background:rgba(0,171,169,.06);transform:translateY(-2px)}
.lbc--file.drag-over{border-color:var(--accent);border-style:solid;background:var(--accentfade);transform:scale(1.02)}
/* badge count */
.lbc-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 12px;border-radius:999px;
  background:rgba(0,171,169,.18);border:1px solid rgba(0,171,169,.35);
  font:600 12px/1 var(--b);color:#00d4d2;align-self:flex-start;
  animation:liveBadgePulse .5s cubic-bezier(.34,1.56,.64,1);
}
/* icons */
.lbc-icon{
  width:54px;height:54px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.lbc-icon--online{background:rgba(0,171,169,.14);border:1.5px solid rgba(0,171,169,.28)}
.lbc-icon--online svg{stroke:#00aba9;filter:drop-shadow(0 0 10px rgba(0,171,169,.4))}
.lbc-icon--file{background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.12)}
.lbc-icon--file svg{stroke:rgba(255,255,255,.5)}
/* text */
.lbc-title{font:700 16px/1.2 var(--font);color:var(--text);letter-spacing:-.01em}
.lbc-desc{font:400 12px/1.5 var(--b);color:var(--text2);margin:0}
.lbc-drop-hint{font:400 11px/1 var(--b);color:var(--text3);text-align:center;letter-spacing:.03em}
/* live feed inside card */
.lbc-feed{margin-top:2px}
/* file preview */
.lbc-file-prev{
  display:flex;align-items:center;gap:8px;
  padding:7px 11px;border-radius:9px;
  background:rgba(0,171,169,.1);border:1px solid rgba(0,171,169,.22);
  animation:fadeInUp .25s var(--ee);
}
.lbc-file-prev svg{stroke:#00aba9;flex-shrink:0}
.lbc-file-name{font:500 11.5px/1.4 var(--b);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* buttons */
.lbc-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:12px 20px;border-radius:14px;
  font:700 14px/1 var(--font);cursor:pointer;
  transition:all .22s var(--ee);border:none;margin-top:auto;
}
.lbc-btn--primary{background:linear-gradient(135deg,#005f5d,#00aba9);color:#fff;box-shadow:0 6px 24px rgba(0,171,169,.35)}
.lbc-btn--primary:hover{background:linear-gradient(135deg,#007a78,#00d4d2);transform:translateY(-2px);box-shadow:0 10px 32px rgba(0,171,169,.45)}
.lbc-btn--primary:active{transform:translateY(0);transition-duration:.08s}
.lbc-btn--secondary{background:rgba(255,255,255,.07);color:rgba(255,255,255,.7);border:1.5px solid rgba(255,255,255,.15)}
.lbc-btn--secondary:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.28);color:#fff;transform:translateY(-1px)}
/* animation */
@keyframes fadeInUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.lbc:nth-child(1){animation-delay:.05s}.lbc:nth-child(2){animation-delay:.15s}
/* cancel old has-live compaction (new design handles layout via flex) */
.upload-zone.has-live .upload-file-area,.upload-zone.has-live .upload-ic svg,
.upload-zone.has-live .upload-ttl,.upload-zone.has-live .upload-sub,
.upload-zone.has-live .btn-upload{all:unset}
.upload-glow{position:absolute;top:-80px;left:50%;transform:translateX(-50%);width:280px;height:160px;background:radial-gradient(ellipse,var(--accentglow),transparent 70%);pointer-events:none;}
.upload-ic svg{width:56px;height:56px;stroke:var(--accent);stroke-width:1.4;filter:drop-shadow(0 0 12px var(--accentglow));}
.upload-ttl{font-size:22px;font-weight:700;color:var(--text);letter-spacing:-.01em}
.upload-sub{font-size:13px;color:var(--text2);line-height:1.6;letter-spacing:.01em;font-family:var(--b);}
.btn-upload{margin-top:4px;padding:13px 36px;background:var(--btn-grad);color:#fff;border:none;border-radius:14px;font-size:15px;font-weight:700;font-family:var(--font);cursor:pointer;letter-spacing:.01em;box-shadow:0 6px 24px var(--accentglow);transition:all .22s var(--ee);}
.btn-upload:hover{background:var(--btn-grad-hov);transform:translateY(-2px);box-shadow:0 10px 32px var(--accentglow)}
.upload-drag{font-size:12px;color:var(--text3);letter-spacing:.02em;font-family:var(--b);}
.upload-status{font-size:13px;color:var(--text2);min-height:18px;font-weight:500;font-family:var(--b);}
.upload-status.err{color:#f87171}

/* ══ DRAW WRAP ══ */
.draw-wrap{display:flex;flex-direction:column;align-items:center;gap:22px;width:100%;max-width:960px;}

.info-bar{
  display:flex;align-items:center;gap:14px;
  background:var(--bgcard);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--border);border-radius:999px;
  padding:10px 24px;box-shadow:var(--shadow-s);transition:opacity .3s;
}
.info-chip{display:flex;align-items:baseline;gap:6px}
.info-val{font-size:18px;font-weight:800;color:var(--accent);line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 0 20px var(--accentglow);}
.info-lbl{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;font-weight:700;font-family:var(--b);}
.info-sep{width:1px;height:20px;background:var(--border)}
.btn-novo{display:flex;align-items:center;gap:5px;padding:6px 14px;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--text3);font-size:11px;font-family:var(--b);font-weight:600;cursor:pointer;white-space:nowrap;letter-spacing:.02em;transition:all .2s;}
.btn-novo:hover{border-color:var(--border2);color:var(--text2)}

.winner-area{flex:1;display:flex;align-items:center;justify-content:center;width:100%;min-height:clamp(120px,22dvh,280px);}

/* Idle */
.state-idle{display:flex;flex-direction:column;align-items:center;gap:12px}
.idle-ic{font-size:64px;line-height:1;filter:drop-shadow(0 8px 24px rgba(0,0,0,.4))}
.idle-txt{font-size:22px;font-weight:600;color:var(--text2)}
.idle-hint{font-size:13px;color:var(--text3);font-family:var(--b);}

/* Rolling */
.state-rolling{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}
.rolling-lbl{font-size:13px;color:var(--text2);letter-spacing:.16em;text-transform:uppercase;font-weight:600;font-family:var(--b);animation:blink 1.1s step-end infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.rolling-name{
  font-size:clamp(48px,8.5vw,108px);font-weight:900;color:var(--text);
  text-align:center;line-height:1.08;max-width:92vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  letter-spacing:-.025em;animation:rollIn .09s var(--ee);text-shadow:0 4px 32px rgba(0,0,0,.5);
}
@keyframes rollIn{from{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}

/* ══ COUNTDOWN ══ */
.state-countdown{display:flex;align-items:center;justify-content:center;width:100%;}
.countdown-num{font-size:clamp(110px,20vw,180px);font-weight:900;color:var(--accent);letter-spacing:-.05em;line-height:1;font-family:var(--font);text-shadow:0 0 80px rgba(0,171,169,.4);animation:cdTick .95s ease-out forwards;}
@keyframes cdTick{0%{transform:scale(1.9);opacity:0}25%{opacity:1;transform:scale(1.04)}70%{transform:scale(1);opacity:1}100%{transform:scale(.55);opacity:0}}

/* ══ REVEAL — Animação de impacto ══ */
.state-reveal{display:flex;flex-direction:column;align-items:center;gap:16px;}

@keyframes crownDrop{
  0%{transform:translateY(-60px) rotate(-15deg);opacity:0}
  55%{transform:translateY(8px) rotate(3deg);opacity:1}
  75%{transform:translateY(-4px) rotate(-1deg)}
  100%{transform:translateY(0) rotate(-4deg);opacity:1}
}
@keyframes crownFloat{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-14px) rotate(4deg)}}

.reveal-crown{
  font-size:84px;line-height:1;
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  animation:crownDrop .5s cubic-bezier(.16,1,.3,1) forwards, crownFloat 2.6s ease-in-out 0.6s infinite;
  filter:drop-shadow(0 6px 20px rgba(0,0,0,.5));
}
.crown-pos-badge{
  position:absolute;bottom:4px;left:50%;
  transform:translateX(-50%) scale(0.3);opacity:0;
  background:var(--accent);color:#fff;
  font-size:18px;font-weight:900;border-radius:20px;
  padding:2px 12px;min-width:44px;text-align:center;
  box-shadow:0 2px 14px rgba(0,99,97,.5);
  font-family:var(--font);letter-spacing:.02em;
  transition:opacity .38s cubic-bezier(.16,1,.3,1), transform .38s cubic-bezier(.16,1,.3,1);
  white-space:nowrap;pointer-events:none;
}
.crown-pos-badge.visible{opacity:1;transform:translateX(-50%) scale(1);}

/* ── Martelada: slam vindo de cima com overshoot forte ── */
@keyframes nameImpact{
  0%  {transform:scale(.04) translateY(-32px);opacity:0;letter-spacing:.42em;filter:blur(18px)}
  17% {transform:scale(1.26) translateY(5px);opacity:1;filter:blur(0);letter-spacing:-.025em}
  30% {transform:scale(.87) translateY(-2px)}
  46% {transform:scale(1.08)}
  62% {transform:scale(.97)}
  78% {transform:scale(1.025)}
  100%{transform:scale(1) translateY(0)}
}
@keyframes nameGlowBurst{
  0%  {text-shadow:0 0 0 transparent}
  17% {text-shadow:0 0 220px var(--accentglow),0 0 110px var(--accentglow),0 0 55px var(--accentglow)}
  100%{text-shadow:var(--glow)}
}

/* ── Tremor de martelada ── */
@keyframes impactShake{
  0%,100%{transform:translate(0,0) rotate(0deg)}
  10%{transform:translate(-16px,-7px) rotate(-1.1deg)}
  22%{transform:translate(13px,6px) rotate(.8deg)}
  34%{transform:translate(-10px,-4px) rotate(-.6deg)}
  46%{transform:translate(8px,3px) rotate(.5deg)}
  58%{transform:translate(-5px,-2px) rotate(-.3deg)}
  70%{transform:translate(3px,1px) rotate(.2deg)}
  84%{transform:translate(-1px,0)}
}
.stage.shaking{animation:impactShake .72s cubic-bezier(.36,1,.65,1)}

/* ── Flash de impacto ── */
@keyframes impactFlash{
  0%  {opacity:1}
  35% {opacity:.55}
  100%{opacity:0}
}
.stage-flash{
  position:absolute;inset:0;pointer-events:none;z-index:3;opacity:0;
}
body[data-theme="dvi"] .stage-flash,body:not([data-theme]) .stage-flash{
  background:radial-gradient(ellipse 80% 58% at 50% 44%,rgba(0,171,169,.45),transparent 62%);
}
.stage-flash.burst{animation:impactFlash .58s ease-out forwards}

.reveal-names{
  font-size:clamp(56px,11vw,140px);font-weight:900;color:var(--accent);
  text-align:center;line-height:1.08;max-width:92vw;word-break:break-word;
  letter-spacing:-.025em;
  position:relative;z-index:5;
  animation:nameImpact .68s cubic-bezier(.16,1,.3,1) forwards,
             nameGlowBurst .9s ease-out forwards;
}
.reveal-sub{font-size:16px;color:var(--text2);font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-family:var(--b);position:relative;z-index:5;}

/* Finished */
.btn-new-draw{display:inline-flex;align-items:center;gap:8px;padding:9px 22px;border-radius:12px;border:2px solid var(--accent);background:transparent;color:var(--accent);font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font);transition:all .18s;margin-top:2px;}
.btn-new-draw:hover{background:var(--accent);color:#fff;}
.state-finished{display:flex;flex-direction:column;align-items:center;gap:14px;animation:revealIn .5s var(--ee) forwards}
@keyframes revealIn{0%{transform:scale(.55);opacity:0}65%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}
.finished-ic{font-size:64px;line-height:1}
.finished-ttl{font-size:30px;font-weight:800;color:var(--text);letter-spacing:-.015em}
.finished-sub{font-size:14px;color:var(--text2);text-align:center;max-width:360px;line-height:1.6;font-family:var(--b);}

/* Chip atalho de config acima do botão sortear */
.draw-cfg-hint{
  display:flex;align-items:center;gap:5px;
  padding:6px 16px;border-radius:99px;
  background:rgba(0,171,169,.10);
  border:1px solid rgba(0,171,169,.22);
  color:rgba(0,200,195,.75);
  font:400 11.5px/1 var(--b);
  cursor:pointer;transition:all .2s var(--ee);
  animation:fadeInUp .3s var(--ee);
}
.draw-cfg-hint:hover{background:rgba(0,171,169,.2);border-color:rgba(0,171,169,.45);color:#00d4d2;transform:translateY(-1px)}
.draw-cfg-hint strong{font-weight:800;font-size:14px;color:rgba(0,220,216,.95)}

/* Action Bar */
.action-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:center}
.btn-draw{
  display:flex;align-items:center;gap:12px;
  padding:18px 52px;background:var(--btn-grad);color:#fff;border:none;
  border-radius:18px;font-size:21px;font-weight:800;font-family:var(--font);letter-spacing:.01em;
  cursor:pointer;box-shadow:var(--glow),var(--shadow-m);transition:all .22s var(--ee);
  position:relative;overflow:hidden;
}
.btn-draw::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 60%);pointer-events:none;}
.btn-draw:hover{background:var(--btn-grad-hov);transform:translateY(-3px);box-shadow:var(--glow),0 16px 48px rgba(0,0,0,.35)}
.btn-draw:active{transform:translateY(-1px)}
.btn-draw:disabled{opacity:.38;cursor:not-allowed;transform:none;box-shadow:none}
.btn-export{
  display:flex;align-items:center;gap:8px;padding:16px 28px;
  background:var(--bgcard);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  color:var(--text2);border:1px solid var(--border2);border-radius:16px;
  font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .2s;
}
.btn-export:hover{background:var(--accentfade);color:var(--text);border-color:var(--accent)}

/* ═══ fonte/estilo/00-base/020-tipografia-e-botoes.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Tipografia, botões, campos
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 401–1231
 * TAMANHO PREVISTO: 831 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ══ FLY NAME ══ */
.fly-name{
  position:fixed;pointer-events:none;z-index:500;
  font-family:var(--font);font-weight:900;
  color:var(--accent);text-shadow:0 0 40px var(--accentglow);
  white-space:nowrap;letter-spacing:-.025em;
  transform:translate(-50%,-50%);opacity:1;
  will-change:left,top,font-size,opacity;
}
.fly-name.flying{
  transition:
    left .85s cubic-bezier(.16,1,.3,1),
    top .85s cubic-bezier(.16,1,.3,1),
    font-size .85s cubic-bezier(.16,1,.3,1),
    opacity .4s ease-in .45s;
}

/* ══ HISTORY BAR ══ */
.history-bar{
  display:flex;align-items:center;gap:10px;
  padding:10px 20px;min-height:54px;
  background:rgba(4,14,11,.68);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-top:1px solid var(--border);
  flex-shrink:0;
}
.hist-lbl{
  font-size:9.5px;color:var(--text3);
  text-transform:uppercase;letter-spacing:.1em;font-weight:800;white-space:nowrap;
  font-family:var(--b);flex-shrink:0;
}
.hist-list{
  display:flex;align-items:center;gap:10px;
  flex:1;min-width:0;
  overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;
  flex-wrap:nowrap;
}
.hist-list::-webkit-scrollbar{display:none}

.hist-tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 16px;
  background:var(--bgcard);
  backdrop-filter:blur(12px);
  border:1px solid var(--border2);
  border-radius:999px;
  font-size:13.5px;font-weight:600;color:var(--text);
  white-space:nowrap;flex-shrink:0;
  letter-spacing:.005em;
  animation:tagIn .38s var(--ee);
  font-family:var(--font);
}
@keyframes tagIn{from{transform:scale(.6) translateY(6px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}
.hist-round{font-size:9.5px;color:var(--accent);font-weight:800;letter-spacing:.05em}
.hist-pos{font-size:9.5px;font-weight:800;color:#fff;background:var(--accent);border-radius:6px;padding:1px 5px;letter-spacing:.02em;}

.btn-hist-clear{background:transparent;border:none;color:var(--text3);cursor:pointer;padding:5px;border-radius:6px;display:flex;align-items:center;transition:color .2s;flex-shrink:0;}
.btn-hist-clear:hover{color:var(--text2)}

/* Modo surpresa */
.app.surprise .info-bar{opacity:0;pointer-events:none}
.app.surprise .history-bar{display:none!important}

/* ══════════════════════════════════════
   PAINEL DE CONFIGURAÇÕES — ANDROID / MATERIAL 3
   ══════════════════════════════════════ */

/* Overlay backdrop */
.cfg-overlay{
  position:fixed;inset:0;z-index:99;
  background:rgba(0,15,13,.72);
  backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .28s;
}
.cfg-overlay.vis{opacity:1;pointer-events:all}

/* Card centralizado */
.cfg-panel{
  position:relative;
  background:#f2f2f7;border-radius:28px;
  width:100%;max-width:640px;
  max-height:calc(100vh - 40px);
  overflow:hidden;
  display:flex;flex-direction:column;
  box-shadow:0 32px 80px rgba(0,30,28,.42),0 8px 24px rgba(0,30,28,.18);
  transform:scale(.92) translateY(14px);
  transition:transform .36s cubic-bezier(.16,1,.3,1),opacity .28s;
  opacity:0;
}
.cfg-overlay.vis .cfg-panel{transform:none;opacity:1}
.cfg-panel::before{display:none}

/* Header com gradiente premium */
.cfg-hd{
  display:flex;align-items:center;gap:14px;
  padding:20px 20px 18px;
  background:linear-gradient(145deg,#001e1c 0%,#004a48 55%,#006a68 100%);
  flex-shrink:0;
  box-shadow:0 1px 0 rgba(0,171,169,.18),0 3px 14px rgba(0,0,0,.22);
  position:relative;
}
.cfg-hd::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
  background:linear-gradient(to right,transparent,rgba(0,171,169,.35),transparent);
}
.cfg-hd-brand{display:flex;align-items:center;gap:11px;font-family:var(--font);font-size:15.5px;font-weight:700;color:#fff;flex:1;letter-spacing:-.01em;}
.cfg-hd-ic-wrap{width:36px;height:36px;border-radius:11px;background:rgba(0,171,169,.22);border:1px solid rgba(0,171,169,.3);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cfg-hd-ic{width:16px;height:16px;stroke:rgba(255,255,255,.92);}
.cfg-hd-close{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.72);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .18s,border-color .18s,color .18s;padding:0;flex-shrink:0;}
.cfg-hd-close:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.32);color:#fff}

/* Corpo scrollável */
.cfg-body{
  flex:1;overflow-y:auto;
  background:#f2f2f7;
  padding:12px 0 6px;
  scrollbar-width:thin;scrollbar-color:#d4d4d8 transparent;
}
.cfg-body::-webkit-scrollbar{width:3px}
.cfg-body::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:4px}

/* ─ Seções como cards iOS ─ */
.cfg-sec{
  background:#fff;
  border-radius:18px;
  margin:0 12px 10px;
  overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 4px 14px rgba(0,0,0,.055);
}
.cfg-sec + .cfg-sec{border-top:none}
.cfg-sec-hd{display:flex;align-items:center;gap:10px;padding:14px 16px 9px;cursor:default;user-select:none;}
.cfg-sec-ic-wrap{width:28px;height:28px;border-radius:8px;background:rgba(0,171,169,.13);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cfg-sec-ic{width:13px;height:13px;stroke:#006361;flex-shrink:0}
.cfg-sec-title{font-family:var(--b);font-size:11px;font-weight:700;color:#006361;letter-spacing:.09em;text-transform:uppercase;flex:1;}
.cfg-sec-body{overflow:visible;padding-bottom:4px;}

/* ─ Rows ─ */
.cfg-row{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;gap:12px;transition:background .15s;min-height:52px;}
.cfg-row:hover{background:#f5fafa}
.cfg-row-info{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;}
.cfg-row-lbl{font-family:var(--font);font-size:14px;font-weight:600;color:#1a2e30;letter-spacing:-.01em;}
.cfg-row-hint{font-family:var(--b);font-size:11.5px;color:#aaa;line-height:1.35;}

/* Separador inset iOS */
.cfg-sep{height:1px;background:#efefef;margin:0 16px;}

/* ─ Stepper ─ */
.cfg-stepper{display:flex;align-items:center;background:#f6f8f8;border:1.5px solid rgba(0,99,97,.14);border-radius:10px;overflow:hidden;flex-shrink:0;}
.cfg-step-btn{width:32px;height:32px;background:transparent;border:none;color:#1a2e30;font-size:18px;font-weight:300;font-family:var(--font);cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center;}
.cfg-step-btn:hover{background:rgba(0,171,169,.1)}
.cfg-step-btn:active{background:rgba(0,171,169,.2)}
.cfg-step-val{min-width:40px;text-align:center;font-size:16px;font-weight:800;color:#006361;border-left:1px solid rgba(0,99,97,.12);border-right:1px solid rgba(0,99,97,.12);height:32px;line-height:32px;font-family:var(--font);font-variant-numeric:tabular-nums;}

/* ─ Range ─ */
.cfg-range-wrap{padding:8px 20px 14px;}
.cfg-range-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;}
.cfg-range-lbl-txt{font-family:var(--font);font-size:13.5px;font-weight:600;color:#1a2e30;letter-spacing:-.005em;}
.cfg-speed-tag{font-size:10.5px;font-weight:700;color:#006361;background:rgba(0,171,169,.1);border-radius:999px;padding:2px 8px;font-family:var(--b);}
.cfg-range{width:100%;height:4px;accent-color:#00aba9;cursor:pointer;border-radius:99px;}
.cfg-range-labels{display:flex;justify-content:space-between;font-size:10px;color:#ccc;margin-top:4px;font-family:var(--b);}

/* ─ Toggle rows ─ */
.cfg-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;gap:12px;cursor:pointer;transition:background .15s;min-height:52px;}
.cfg-toggle-row:hover{background:#f5fafa}
.cfg-toggle-info{display:flex;flex-direction:column;gap:3px;}
.cfg-toggle-lbl{font-family:var(--font);font-size:14px;font-weight:600;color:#1a2e30;letter-spacing:-.01em;}
.cfg-toggle-dsc{font-family:var(--b);font-size:11.5px;color:#aaa;}

/* ─ Toggle switch iOS ─ */
.dvi-sw{position:relative;width:50px;height:28px;cursor:pointer;flex-shrink:0;}
.dvi-sw input{opacity:0;width:0;height:0;position:absolute}
.dvi-sw-track{position:absolute;inset:0;background:#d1d1d6;border-radius:999px;transition:background .28s cubic-bezier(.16,1,.3,1);}
.dvi-sw-track::after{content:'';position:absolute;top:3px;left:3px;width:22px;height:22px;background:#fff;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.26);transition:transform .28s cubic-bezier(.16,1,.3,1);}
.dvi-sw input:checked+.dvi-sw-track{background:#00aba9}
.dvi-sw input:checked+.dvi-sw-track::after{transform:translateX(22px)}
.dvi-sw--sm{width:36px;height:20px;}
.dvi-sw--sm .dvi-sw-track::after{width:14px;height:14px;top:3px;left:3px;}
.dvi-sw--sm input:checked+.dvi-sw-track::after{transform:translateX(16px);}

/* Mobile: bottom sheet */
@media(max-width:600px){
  .cfg-overlay{align-items:flex-end;padding:0}
  .cfg-panel{max-width:100%;border-radius:28px 28px 0 0;transform:translateY(100%);opacity:1;max-height:92vh}
  .cfg-overlay.vis .cfg-panel{transform:translateY(0)}
}

/* ─ Theme cards ─ */
.theme-grid-cfg{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:6px 16px 16px;}
.tc{display:flex;flex-direction:column;background:#fff;border:2px solid #e8e8e8;border-radius:16px;overflow:hidden;cursor:pointer;padding:0;transition:all .28s cubic-bezier(.16,1,.3,1);text-align:left;}
.tc:hover{border-color:rgba(0,171,169,.45);box-shadow:0 4px 16px rgba(0,99,97,.12);transform:translateY(-3px) scale(1.01)}
.tc.active{border-color:#00aba9;box-shadow:0 0 0 3.5px rgba(0,171,169,.14),0 4px 14px rgba(0,99,97,.12);}
.tc:not(.active) .tc-chk{opacity:0}
.tc.active .tc-chk{opacity:1;color:#00aba9}
.tc-prev{height:92px;position:relative;overflow:hidden;}

/* DVI Teal — simula a tela real do sorteio */
.tc-dvi .tc-prev{background:radial-gradient(ellipse at 30% 55%,#005251 0%,#001f1c 100%);}
.tc-dvi-glow{position:absolute;top:-22px;right:-22px;width:88px;height:88px;border-radius:50%;background:#00aba9;filter:blur(30px);opacity:.48;}
.tc-dvi-glow2{position:absolute;bottom:-14px;left:-8px;width:60px;height:60px;border-radius:50%;background:#006361;filter:blur(22px);opacity:.38;}
.tc-dvi-logo-mini{position:absolute;top:9px;left:10px;width:33px;opacity:.52;filter:brightness(2) drop-shadow(0 0 4px rgba(0,171,169,.5));}
.tc-dvi-drum{position:absolute;top:8px;right:10px;width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(0,171,169,.4);background:rgba(0,171,169,.1);display:flex;align-items:center;justify-content:center;}
.tc-dvi-drum svg{width:9px;height:9px;stroke:rgba(0,171,169,.8);}
.tc-dvi-namecard{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:rgba(0,171,169,.16);border:1px solid rgba(0,171,169,.38);border-radius:9px;padding:5px 16px;backdrop-filter:blur(8px);white-space:nowrap;}
.tc-dvi-namebox{font:700 9px/1.3 var(--b);color:rgba(255,255,255,.9);text-shadow:0 0 10px rgba(0,171,169,.85);letter-spacing:.04em;text-transform:uppercase;}
.tc-dvi-scanline{position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(to bottom,rgba(0,0,0,0) 0px,rgba(0,0,0,0) 3px,rgba(0,0,0,.03) 3px,rgba(0,0,0,.03) 4px);pointer-events:none;}

/* Sorrisos — fotos reais + overlay nome */
.tc-sorrisos .tc-prev{
  background:
    url('assets/grid-p1.webp') left top/50% 50% no-repeat,
    url('assets/grid-p3.webp') right top/50% 50% no-repeat,
    url('assets/grid-p5.webp') left bottom/50% 50% no-repeat,
    url('assets/grid-p7.webp') right bottom/50% 50% no-repeat;
  background-color:#1a1208;
}
.tc-sorrisos-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,6,2,.28) 0%,rgba(10,6,2,.56) 100%);display:flex;align-items:center;justify-content:center;}
.tc-sorrisos-namecard{background:rgba(18,10,2,.64);border:1px solid rgba(200,160,50,.3);border-radius:9px;padding:5px 16px;backdrop-filter:blur(8px);}
.tc-sorrisos-name{font:700 9px/1.3 var(--b);color:rgba(255,238,175,.92);text-shadow:0 0 10px rgba(210,155,30,.7);letter-spacing:.04em;text-transform:uppercase;}

.tc-foot{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid #f0f0f0;background:#fff;}
.tc-name{font-family:var(--font);font-size:11.5px;font-weight:700;color:#4a6e72;letter-spacing:.01em;}
.tc.active .tc-name{color:#006361}
.tc-chk{width:15px;height:15px;flex-shrink:0;transition:opacity .2s;}

/* ─ Confetti type cards ─ */
.confetti-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 16px;}
.ct{display:flex;flex-direction:column;background:#fff;border:2px solid #e8e8e8;border-radius:16px;overflow:hidden;cursor:pointer;padding:0;transition:all .28s cubic-bezier(.16,1,.3,1);text-align:left;}
.ct:hover{border-color:rgba(0,171,169,.45);box-shadow:0 4px 16px rgba(0,99,97,.12);transform:translateY(-3px) scale(1.01)}
.ct.active{border-color:#00aba9;box-shadow:0 0 0 3.5px rgba(0,171,169,.14),0 4px 14px rgba(0,99,97,.12);}
.ct:not(.active) .ct-chk{opacity:0}
.ct.active .ct-chk{opacity:1;color:#00aba9}
.ct-prev{height:82px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}
.ct-foot{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid #f0f0f0;background:#fff;}
.ct-name{font-family:var(--font);font-size:11.5px;font-weight:700;color:#4a6e72;letter-spacing:.01em;}
.ct.active .ct-name{color:#006361}
.ct-chk{width:15px;height:15px;flex-shrink:0;transition:opacity .2s;}

/* Normal confetti — peças animadas */
.ct-normal .ct-prev{background:linear-gradient(155deg,#edfbfb 0%,#d8f5f4 100%);}
.ctp{position:absolute;border-radius:2px;animation:ctpFall 2.2s ease-in-out infinite;transform-origin:center;}
@keyframes ctpFall{
  0%  {transform:translateY(-20px) rotate(0deg) scaleX(1);opacity:0;}
  12% {opacity:1;}
  50% {transform:translateY(42px) rotate(200deg) scaleX(.82);opacity:1;}
  88% {opacity:.85;}
  100%{transform:translateY(96px) rotate(400deg) scaleX(1);opacity:0;}
}

/* DVI Logo confetti */
.ct-dvi .ct-prev{background:radial-gradient(ellipse at 50% 35%,#005e5c 0%,#002321 100%);}
.ct-dvi-mini-logos{position:absolute;inset:0;pointer-events:none;overflow:hidden;}
.ct-mini-logo{position:absolute;animation:ctLogoFloat 3s ease-in-out infinite;filter:brightness(5);opacity:0;}
@keyframes ctLogoFloat{
  0%  {transform:translateY(-12px) rotate(-8deg);opacity:0;}
  14% {opacity:.22;}
  78% {opacity:.18;}
  100%{transform:translateY(92px) rotate(24deg);opacity:0;}
}
.ct-logo-prev{position:relative;z-index:1;width:56%;object-fit:contain;opacity:.9;filter:drop-shadow(0 2px 16px rgba(0,0,0,.5)) drop-shadow(0 0 22px rgba(0,171,169,.45));}

/* ─ Dedup strategy selector ─ */
#dedupStrategySection{overflow:hidden;max-height:80px;opacity:1;transition:max-height .28s ease,opacity .2s ease;}
#dedupStrategySection.hidden{max-height:0;opacity:0;pointer-events:none;}
.dedup-strat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:0 16px 14px;}
.ds{border:1.5px solid #e0e8e8;border-radius:10px;padding:8px 4px;font-family:var(--font);font-size:11.5px;font-weight:600;color:#4a6e72;background:#f8fffe;cursor:pointer;transition:all .2s;text-align:center;line-height:1.3;}
.ds:hover{border-color:#00aba9;color:#006361;background:#edfaf9;}
.ds.active{border-color:#00aba9;background:#e4f9f8;color:#006361;box-shadow:0 0 0 2.5px rgba(0,171,169,.14);}

/* ─ Status pós-dedup automático ─ */
.dedup-summary{display:flex;flex-direction:column;gap:2px;}
.dedup-badge{font-size:12px;font-weight:700;color:#006361;}
.dedup-removed-list{font-size:11px;color:#7aafad;line-height:1.5;}
.dedup-removed-list em{font-style:normal;color:#4a8e8c;}

/* ─ Confetti test button ─ */
.btn-confetti-test{display:flex;align-items:center;gap:8px;padding:10px 26px;border-radius:50px;border:1.5px solid rgba(0,171,169,.32);background:rgba(0,171,169,.07);color:var(--ac);font:600 13px var(--font);cursor:pointer;letter-spacing:.01em;transition:background .18s,transform .12s,box-shadow .22s;animation:confettiTestPulse 3s ease-in-out infinite;margin-top:4px;}
.btn-confetti-test:hover{background:rgba(0,171,169,.18);animation:none;transform:scale(1.06);box-shadow:0 0 0 6px rgba(0,171,169,.14);}
.btn-confetti-test:active{transform:scale(.93);animation:none;}
.ctest-ic{font-size:16px;line-height:1;}
@keyframes confettiTestPulse{0%,100%{box-shadow:0 0 0 0 rgba(0,171,169,0)}50%{box-shadow:0 0 0 8px rgba(0,171,169,.15)}}

/* ─ Footer reset ─ */
.cfg-footer{padding:0 12px 16px;}
.cfg-reset-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px;background:rgba(239,68,68,.06);border:1.5px solid rgba(239,68,68,.2);border-radius:16px;color:#d94f4f;font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .22s;letter-spacing:.01em;}
.cfg-reset-btn:hover{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.4);transform:translateY(-1px);}

/* ══ MODAL ══ */
.modal-ov{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;}
.modal-ov.vis{display:flex;animation:fadeIn .2s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal-box{background:var(--bgcard2);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border:1px solid var(--border2);border-radius:24px;padding:40px 36px;max-width:460px;width:90%;text-align:center;box-shadow:var(--shadow-l),inset 0 1px 0 rgba(255,255,255,.07);animation:modalIn .32s var(--ee);}
@keyframes modalIn{from{transform:scale(.88) translateY(14px);opacity:0}to{transform:none;opacity:1}}
.modal-ic{font-size:48px;margin-bottom:6px}
.modal-ttl{font-size:20px;font-weight:700;color:var(--text);margin-bottom:12px;letter-spacing:-.01em}
.modal-txt{font-size:14px;color:var(--text2);line-height:1.7;margin-bottom:28px;font-family:var(--b);}
.modal-acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.btn-pri{padding:12px 28px;background:var(--btn-grad);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:700;font-family:var(--font);cursor:pointer;transition:all .2s;box-shadow:0 4px 16px var(--accentglow);}
.btn-pri:hover{background:var(--btn-grad-hov);transform:translateY(-1px)}
.btn-sec{padding:12px 28px;background:var(--bgcard);color:var(--text);border:1px solid var(--border2);border-radius:12px;font-size:14px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all .2s;}
.btn-sec:hover{background:var(--accentfade);border-color:var(--accent)}

/* ══════════════════════════════════
   MODOS — menu / screensaver / sorteio
   ══════════════════════════════════ */

/* Fundo (atm / sorteio-bg / bubbles / organic-fog) agora é CANÔNICO e global —
   definido nos próprios elementos lá no topo. As variações por modo foram
   removidas para que toda tela mostre o mesmo fundo da tela de descanso. */

/* ── App: visível e acessível apenas em mode-sorteio ── */
#app {
  pointer-events:none;
  opacity:0;
  transition:opacity .55s cubic-bezier(.4,0,.2,1);
}
body.mode-sorteio #app { pointer-events:all; opacity:1; }

/* ══ CONTROLES FLUTUANTES — topo direita, sempre visíveis ══ */
.float-ctrl {
  position:fixed;
  top:22px;right:22px;
  z-index:90; /* abaixo de cfg-overlay(99) e cfg-panel(100); acima das telas de modo(48-50) */
  display:flex;flex-direction:column;align-items:center;
  gap:0;
  background:rgba(2,12,7,.60);
  border:1.5px solid rgba(255,255,255,.14);
  border-radius:18px;
  padding:6px;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:0 8px 32px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.07);
  opacity:1;pointer-events:all;
  max-height:calc(100dvh - 44px);
  overflow:hidden;
  transition:opacity .35s ease, max-height .3s var(--ee);
}
/* Menu/Voltar oculto na tela do menu (sem modo ativo) — gerenciado pela regra .fctrl-menu acima */

.fctrl-btn {
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:5px;
  width:52px;
  padding:10px 0;
  background:transparent;
  border:none;border-radius:12px;
  color:rgba(255,255,255,.72);
  cursor:pointer;
  transition:background .2s, color .2s, transform .15s;
}
.fctrl-btn:hover {
  background:rgba(0,171,169,.18);
  color:#fff;
  transform:translateX(-2px);
}
.fctrl-btn:hover svg { filter:drop-shadow(0 0 5px rgba(0,171,169,.7)); }

.fctrl-lbl {
  font:500 9px/1 var(--b);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:inherit;
  opacity:.75;
}

.fctrl-sep {
  width:28px;height:1px;
  background:rgba(255,255,255,.10);
  flex-shrink:0;
  margin:2px 0;
}

/* ── Config — rotação no hover ── */
.fctrl-cfg svg {
  transition:transform .5s var(--ee), filter .28s;
  transform-origin:center;
}
.fctrl-cfg:hover svg { transform:rotate(62deg); }

/* ── Contagem nos botões de navegação ── */
.fctrl-nav-count {
  display:inline-block;
  background:rgba(0,171,169,.18);
  border:1px solid rgba(0,171,169,.35);
  border-radius:100px;
  padding:2px 7px;
  font:700 10px/1.4 var(--b);
  color:#2dd4bf;
  letter-spacing:.02em;
  min-width:20px;
  text-align:center;
  transition:background .2s,color .2s;
}
.fctrl-nav-count--sat {
  background:rgba(167,139,250,.16);
  border-color:rgba(167,139,250,.33);
  color:#c4b5fd;
}

/* ── Estado ativo — tela atual destacada ── */
body.mode-qrcode:not(.nav-qr-sat) #fcNavQRSorteio,
body.mode-sorteio #fcNavSorteio {
  background:rgba(0,171,169,.20);
  color:#2dd4bf;
}
body.mode-qrcode.nav-qr-sat #fcNavQRSat {
  background:rgba(167,139,250,.20);
  color:#c4b5fd;
}
body.mode-qrcode:not(.nav-qr-sat) #fcNavQRSorteio svg,
body.mode-sorteio #fcNavSorteio svg {
  filter:drop-shadow(0 0 5px rgba(45,212,191,.65));
}
body.mode-qrcode.nav-qr-sat #fcNavQRSat svg {
  filter:drop-shadow(0 0 5px rgba(167,139,250,.65));
}

/* ── float-ctrl responsivo: compact (tela ~500-660px) ── */
.float-ctrl--compact .fctrl-btn {
  padding:6px 0;
  gap:3px;
  width:46px;
}
.float-ctrl--compact .fctrl-lbl {
  font-size:8px;
  letter-spacing:.04em;
}
.float-ctrl--compact .fctrl-sep {
  margin:1px 0;
}

/* ── float-ctrl responsivo: mini (tela < 500px) — só ícones ── */
.float-ctrl--mini .fctrl-btn {
  padding:7px 0;
  gap:0;
  width:42px;
}
.float-ctrl--mini .fctrl-lbl {
  display:none;
}
.float-ctrl--mini .fctrl-sep {
  margin:1px 0;
}

/* ══ TELA INICIAL — MENU ══ */
.menu-screen {
  position:fixed;inset:0;z-index:50;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:100dvh;overflow-y:auto;
  padding:clamp(8px,1.5dvh,20px) 0;
  transition:opacity .55s cubic-bezier(.4,0,.2,1), transform .55s cubic-bezier(.4,0,.2,1);
}
body.mode-sorteio .menu-screen,
body.mode-screensaver .menu-screen {
  opacity:0;pointer-events:none;transform:scale(.97);
}

.menu-overlay {
  position:absolute;inset:0;pointer-events:none;
  background:var(--bg-veil); /* véu canônico — igual ao da tela de descanso */
}

.menu-content {
  position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:center;
  padding:0 24px;gap:0;
}

.menu-logo {
  width:clamp(170px,24vw,290px);
  filter:drop-shadow(0 6px 28px rgba(0,171,169,.45));
  margin-bottom:8px;
  animation:menuItemIn .8s .05s cubic-bezier(.16,1,.3,1) both;
}
.menu-slogan-img {
  width:clamp(160px,22vw,280px);
  margin-bottom:40px;
  animation:menuSloganIn .8s .14s cubic-bezier(.16,1,.3,1) both;
}
.menu-sub {
  font:300 12.5px/1 var(--b);
  color:rgba(255,255,255,.42);
  letter-spacing:.1em;text-transform:uppercase;
  margin-bottom:30px;
  animation:menuItemIn .7s .2s cubic-bezier(.16,1,.3,1) both;
}

/* ── Novo sistema de cards do menu ─────────────────────────────────────────── */
/* ════════════════════════════════════
   MENU CARDS — redesign premium
   ════════════════════════════════════ */

.menu-cards {
  display:flex;
  gap:14px;
  align-items:stretch;
  width:100%;
  max-width:1020px;
}

/* ══ MENU CARDS — Nocturne ══ */
.mc {
  flex:1;min-width:0;
  display:flex;flex-direction:column;
  padding:0;
  background:rgba(2,10,9,1);
  border:none;
  border-radius:22px;
  cursor:pointer;color:#fff;
  position:relative;overflow:hidden;
  transition:transform .26s cubic-bezier(.16,1,.3,1),
             box-shadow .26s cubic-bezier(.16,1,.3,1);
  box-shadow:0 4px 28px rgba(0,0,0,.45);
}
/* camada de fundo: base tintada + radial colorido */
.mc-bg {
  position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:
    radial-gradient(ellipse at 70% 0%,
      rgba(var(--mc-r),var(--mc-g),var(--mc-b),.16) 0%,
      transparent 65%),
    linear-gradient(170deg,
      var(--mc-tint, rgba(8,26,20,.98)) 0%,
      rgba(2,10,9,1) 100%);
}
/* camada de borda + linha de luz no topo */
.mc-bl {
  position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  border:1px solid rgba(var(--mc-r),var(--mc-g),var(--mc-b),.15);
}
.mc-bl::before {
  content:'';position:absolute;top:0;left:18%;right:18%;height:1px;
  background:linear-gradient(to right,
    transparent,
    rgba(var(--mc-r),var(--mc-g),var(--mc-b),.50),
    transparent);
}
/* conteúdo centralizado */
.mc-inner {
  position:relative;z-index:1;
  display:flex;flex-direction:column;
  align-items:center;text-align:center;
  padding:clamp(12px,2dvh,20px) 18px clamp(10px,1.8dvh,18px);
  flex:1;
  min-height:clamp(120px,18dvh,200px);
}
.mc:hover {
  transform:translateY(-5px) scale(1.015);
  box-shadow:
    0 22px 52px rgba(0,0,0,.52),
    0 0 0 1px rgba(var(--mc-r),var(--mc-g),var(--mc-b),.18),
    0 8px 32px rgba(var(--mc-r),var(--mc-g),var(--mc-b),.16);
}
.mc:hover .mc-bl { border-color:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.38); }
.mc:active { transform:translateY(-2px) scale(.99);transition-duration:.1s; }
.mc:nth-child(1){ animation:menuCardIn .65s .18s cubic-bezier(.16,1,.3,1) both; }
.mc:nth-child(2){ animation:menuCardIn .65s .30s cubic-bezier(.16,1,.3,1) both; }
.mc:nth-child(3){ animation:menuCardIn .65s .40s cubic-bezier(.16,1,.3,1) both; }
.mc:nth-child(4){ animation:menuCardIn .65s .50s cubic-bezier(.16,1,.3,1) both; }

/* ── Barra superior: step-num + status badge lado a lado ── */
.mc-top-bar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  margin-bottom:20px;
}

/* ── Ícone ── */
.mc-ic {
  width:54px;height:54px;border-radius:16px;flex-shrink:0;
  background:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.10);
  border:1px solid rgba(var(--mc-r),var(--mc-g),var(--mc-b),.22);
  display:flex;align-items:center;justify-content:center;
  transition:all .32s;
  box-shadow:0 0 28px rgba(var(--mc-r),var(--mc-g),var(--mc-b),.20);
  margin-bottom:18px;
}
.mc-ic svg { stroke:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.88); transition:stroke .32s; }
/* estados de ícone definidos pelo JS — alinham cor com a var do card */
.mc-ic--teal { background:rgba(0,171,169,.14) !important;border-color:rgba(0,171,169,.30) !important;box-shadow:0 0 24px rgba(0,171,169,.18) !important; }
.mc-ic--teal svg { stroke:#2dd4bf !important; }
.mc-ic--green { background:rgba(34,197,94,.14) !important;border-color:rgba(34,197,94,.30) !important;box-shadow:0 0 24px rgba(34,197,94,.18) !important; }
.mc-ic--green svg { stroke:#4ade80 !important; }
.mc-ic--amber { background:rgba(245,158,11,.13) !important;border-color:rgba(245,158,11,.28) !important;box-shadow:0 0 24px rgba(245,158,11,.16) !important; }
.mc-ic--amber svg { stroke:#fbbf24 !important; }
.mc-ic--violet { background:rgba(167,139,250,.13) !important;border-color:rgba(167,139,250,.28) !important;box-shadow:0 0 24px rgba(167,139,250,.16) !important; }
.mc-ic--violet svg { stroke:#c4b5fd !important; }
.mc-ic--done { background:rgba(34,197,94,.12) !important;border-color:rgba(34,197,94,.26) !important;box-shadow:0 0 20px rgba(34,197,94,.14) !important; }
.mc-ic--done svg { stroke:#86efac !important; }
.mc-ic--red { background:rgba(239,68,68,.13) !important;border-color:rgba(239,68,68,.28) !important;box-shadow:0 0 24px rgba(239,68,68,.16) !important; }
.mc-ic--red svg { stroke:#f87171 !important; }

/* ── Status badge ── */
.mc-status {
  display:inline-flex;align-items:center;gap:5px;
  font:700 8.5px/1 var(--b);
  height:20px;padding:0 9px;border-radius:6px;
  letter-spacing:.07em;text-transform:uppercase;
  transition:background .32s,border-color .32s,color .32s;
  pointer-events:none;
  flex-shrink:0;
}
.mc-status--gray {
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);
  color:rgba(255,255,255,.28);
}
.mc-status--teal {
  background:rgba(0,171,169,.14);border:1px solid rgba(0,171,169,.28);
  color:#5eead4;
}
.mc-status--green {
  background:rgba(34,197,94,.13);border:1px solid rgba(34,197,94,.26);
  color:#4ade80;
}
.mc-status--amber {
  background:rgba(245,158,11,.13);border:1px solid rgba(245,158,11,.26);
  color:#fbbf24;
}
.mc-status--done {
  background:rgba(34,197,94,.11);border:1px solid rgba(34,197,94,.22);
  color:#86efac;
}
/* dot pulsante no badge verde */
.mc-status-dot {
  display:inline-block;width:6px;height:6px;border-radius:50%;
  background:#22c55e;box-shadow:0 0 6px rgba(34,197,94,.9);
  animation:mcDotPulse 1.8s ease-in-out infinite;flex-shrink:0;
}
/* Agora é um SVG (era um caractere ✓ que chegou corrompido como "?" para o
   usuário). `flex-shrink:0` porque `.mc-status` é inline-flex e encolheria o ícone
   antes do texto; a cor fica explícita para o selo não depender de herança. */
.mc-status-check { color:#4ade80;flex-shrink:0;display:block; }
@keyframes mcDotPulse {
  0%,100%{ box-shadow:0 0 5px rgba(34,197,94,.7);transform:scale(1); }
  50%    { box-shadow:0 0 12px rgba(34,197,94,1),0 0 20px rgba(34,197,94,.45);transform:scale(1.35); }
}

/* ── Hierarquia tipográfica ── */
.mc-label {
  font:700 9px/1 var(--b);
  color:rgba(255,255,255,.32);
  letter-spacing:.18em;text-transform:uppercase;
  margin-bottom:7px;
}
.mc-title {
  font:800 15px/1.2 var(--font);
  color:rgba(255,255,255,.96);
  letter-spacing:-.025em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  width:100%;
}
/* linha divisória entre título e sub — cor do card */
.mc-divider {
  display:block;
  width:28px;height:1px;
  background:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.22);
  margin:10px auto;
  flex-shrink:0;
}
.mc-inscr-count {
  display:inline-flex;align-items:center;gap:4px;
  font:600 11px/1 var(--b);
  color:rgba(245,158,11,.90);
  letter-spacing:.02em;
  margin-top:4px;
}
.mc-inscr-count::before {
  content:'';
  display:inline-block;
  width:5px;height:5px;
  border-radius:50%;
  background:rgba(245,158,11,.80);
  flex-shrink:0;
}
@keyframes mcCountPulse {
  0%   { opacity:1; transform:scale(1); }
  40%  { opacity:.7; transform:scale(1.18); }
  100% { opacity:1; transform:scale(1); }
}
.mc-inscr-count.pulse { animation:mcCountPulse .4s var(--ee); }

.mc-sub {
  font:400 11.5px/1.5 var(--b);
  color:rgba(255,255,255,.42);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  width:100%;
}
.mc-sub:has(.mc-sub-row) { white-space:normal;overflow:visible;text-overflow:unset; }
.mc-sub-row { display:flex;align-items:baseline;gap:5px;width:100%;overflow:hidden; }
.mc-sub-row + .mc-sub-row { margin-top:3px; }
.mc-sub-lbl { font:700 8px/1 var(--b);letter-spacing:.1em;text-transform:uppercase;color:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.6);flex-shrink:0; }
.mc-sub-val { font:400 11px/1.3 var(--b);color:rgba(255,255,255,.72);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0; }

/* ── Rodapé inline ── */
.mc-foot {
  width:100%;
  margin-top:auto;
  padding-top:12px;
  display:flex;align-items:center;justify-content:center;
  border-top:1px solid rgba(var(--mc-r),var(--mc-g),var(--mc-b),.12);
  overflow:hidden;
}
.mc-foot-text {
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
  font:400 11px/1 var(--b);color:rgba(255,255,255,.50);
  flex:1;min-width:0;
}
.mc-foot-text strong { font-weight:600;color:rgba(255,255,255,.80); }
.mc-foot-sep { margin:0 .4em;opacity:.28;flex-shrink:0; }
.mc--active .mc-foot { border-top-color:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.12); }
.mc-stat {
  display:flex;align-items:center;gap:5px;justify-content:center;
  color:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.75);
  font:600 11px/1 var(--b);
}
.mc-stat::before {
  content:'';display:inline-block;width:5px;height:5px;border-radius:50%;
  background:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.7);
  flex-shrink:0;
}
.mc-stat strong {
  font:700 22px/1 var(--font);
  color:rgba(255,255,255,.92);
  letter-spacing:-.025em;
}
.mc-stat-lbl {
  font:400 11px/1 var(--b);
  color:rgba(255,255,255,.55);
}

/* ── Número de passo (topo do card) ── */
.mc-step-num {
  height:20px;padding:0 9px;border-radius:6px;
  background:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.10);
  border:1px solid rgba(var(--mc-r),var(--mc-g),var(--mc-b),.22);
  color:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.85);
  font:800 9px/20px var(--b);
  letter-spacing:.08em;
  text-transform:uppercase;
  pointer-events:none;
  flex-shrink:0;
}
@keyframes mcActivate {
  0%   { box-shadow:0 0 0 0 rgba(34,197,94,.55),0 4px 28px rgba(0,0,0,.45); }
  55%  { box-shadow:0 0 0 11px rgba(34,197,94,.0),0 4px 28px rgba(0,0,0,.45); }
  100% { box-shadow:0 0 0 0 rgba(34,197,94,0); }
}
.mc--activate { animation:mcActivate .7s ease-out; }

/* ── Estados do card ── */
/* Ativo — usa cor do próprio card via CSS var */
.mc--active .mc-bl {
  border-color:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.32) !important;
}
.mc--active {
  box-shadow:0 0 0 1px rgba(var(--mc-r),var(--mc-g),var(--mc-b),.09),0 4px 28px rgba(var(--mc-r),var(--mc-g),var(--mc-b),.10) !important;
}
.mc--active .mc-bg {
  background:
    radial-gradient(ellipse at 70% 0%,rgba(var(--mc-r),var(--mc-g),var(--mc-b),.18) 0%,transparent 58%),
    radial-gradient(ellipse at 28% 100%,rgba(var(--mc-r),var(--mc-g),var(--mc-b),.08) 0%,transparent 52%),
    linear-gradient(170deg, var(--mc-tint, rgba(8,26,20,.98)) 0%, rgba(2,10,9,1) 100%);
}
.mc--active .mc-bl::before {
  background:linear-gradient(to right,transparent,rgba(var(--mc-r),var(--mc-g),var(--mc-b),.58),transparent);
}
.mc--active:hover .mc-bl {
  border-color:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.52) !important;
}
.mc--active:hover {
  box-shadow:0 22px 56px rgba(0,0,0,.40),0 0 0 1px rgba(var(--mc-r),var(--mc-g),var(--mc-b),.22),0 8px 32px rgba(var(--mc-r),var(--mc-g),var(--mc-b),.18) !important;
}
/* Concluído */
.mc--done .mc-bl {
  border-color:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.22) !important;
}
.mc--done .mc-bg {
  background:
    radial-gradient(ellipse at 70% 0%,rgba(var(--mc-r),var(--mc-g),var(--mc-b),.10) 0%,transparent 56%),
    linear-gradient(170deg, var(--mc-tint, rgba(8,26,20,.98)) 0%, rgba(2,10,9,1) 100%);
}
.mc--done .mc-bl::before {
  background:linear-gradient(to right,transparent,rgba(var(--mc-r),var(--mc-g),var(--mc-b),.42),transparent);
}
.mc--done:hover .mc-bl {
  border-color:rgba(var(--mc-r),var(--mc-g),var(--mc-b),.42) !important;
}
.mc--done:hover {
  box-shadow:0 20px 48px rgba(0,0,0,.38),0 0 0 1px rgba(var(--mc-r),var(--mc-g),var(--mc-b),.18),0 6px 28px rgba(var(--mc-r),var(--mc-g),var(--mc-b),.14) !important;
}
/* Pendente — apagado mas clicável */
.mc--pending { opacity:.44;filter:saturate(.25); }
.mc--pending.mc--lockable:hover { opacity:.62;filter:saturate(.45); }
.mc--pending.mc--lockable:active { transform:scale(.98); }

/* Neon ring no card alvo do hint (Criar Evento) */
.mc--neon-pulse { animation:mcNeonPulse 1.15s ease-out forwards; }
@keyframes mcNeonPulse {
  0%   { box-shadow:0 4px 28px rgba(0,0,0,.45); }
  22%  { box-shadow:0 0 0 2px rgba(45,212,191,.92),0 0 22px rgba(45,212,191,.48),0 0 48px rgba(45,212,191,.22),0 4px 28px rgba(0,0,0,.45); }
  65%  { box-shadow:0 0 0 2px rgba(45,212,191,.55),0 0 32px rgba(45,212,191,.3),0 0 64px rgba(45,212,191,.14),0 4px 28px rgba(0,0,0,.45); }
  100% { box-shadow:0 4px 28px rgba(0,0,0,.45); }
}

/* Lock icon — absolute dentro do mc-inner (z-index:1 relativo) */
.mc-lock {
  position:absolute;bottom:14px;right:14px;
  width:20px;height:20px;border-radius:50%;
  background:rgba(0,0,0,.38);border:1px solid rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .45s ease, transform .45s var(--ee), box-shadow .45s ease;
  z-index:2;
}
.mc-lock svg { stroke:rgba(255,255,255,.50); transition:stroke .3s ease; }
.mc.unlocked .mc-lock {
  opacity:0;transform:scale(2);pointer-events:none;
  box-shadow:0 0 22px rgba(255,255,255,.45),0 0 44px rgba(255,255,255,.18);
}

/* Neon pulse no badge "Fechado" quando card está bloqueado */
.mc--pending .mc-status--locked {
  animation:lockBadgeNeon 2.8s ease-in-out infinite;
}
@keyframes lockBadgeNeon {
  0%,100% { color:rgba(255,255,255,.24);border-color:rgba(255,255,255,.09);box-shadow:none; }
  50%     { color:rgba(255,255,255,.68);border-color:rgba(255,255,255,.38);box-shadow:0 0 8px rgba(255,255,255,.20),0 0 18px rgba(255,255,255,.08); }
}
.mc--pending .mc-status--locked svg { opacity:1; }

/* ═══ fonte/estilo/10-avisos/010-toast.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Pilha de avisos (toast)
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 1232–1375
 * TAMANHO PREVISTO: 144 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ── Toast Stack ────────────────────────────────────────────── */
.toast-stack {
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  z-index:9999;display:flex;flex-direction:column-reverse;gap:8px;
  pointer-events:none;width:min(400px,calc(100vw - 32px));
}
.toast {
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;border-radius:12px;
  background:rgba(14,16,24,.94);backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 8px 32px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.3);
  pointer-events:all;position:relative;overflow:hidden;
  animation:toastIn .32s var(--ee) forwards;
}
.toast.toast--out { animation:toastOut .28s var(--ee) forwards; }
.toast-icon {
  width:32px;height:32px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.toast--success .toast-icon { background:rgba(34,197,94,.14); color:#4ade80; }
.toast--error   .toast-icon { background:rgba(239,68,68,.14);  color:#f87171; }
.toast--warning .toast-icon { background:rgba(245,158,11,.14); color:#fbbf24; }
.toast--info    .toast-icon { background:rgba(99,102,241,.14); color:#818cf8; }
.toast-body { flex:1;min-width:0; }
.toast-title { font:600 13px/1.3 var(--b);color:rgba(255,255,255,.92); }
.toast-msg   { font:400 11px/1.4 var(--b);color:rgba(255,255,255,.52);margin-top:2px; }
.toast-bar {
  position:absolute;bottom:0;left:0;height:2px;border-radius:0 0 12px 12px;
  animation:toastBar var(--dur,3500ms) linear forwards;
}
.toast--success .toast-bar { background:linear-gradient(90deg,#22c55e,#4ade80); }
.toast--error   .toast-bar { background:linear-gradient(90deg,#ef4444,#f87171); }
.toast--warning .toast-bar { background:linear-gradient(90deg,#f59e0b,#fbbf24); }
.toast--info    .toast-bar { background:linear-gradient(90deg,#6366f1,#818cf8); }
@keyframes toastIn  { from { opacity:0;transform:translateY(10px) scale(.96); } to { opacity:1;transform:none; } }
@keyframes toastOut { from { opacity:1;transform:none;max-height:80px; } to { opacity:0;transform:translateY(4px) scale(.95);max-height:0;padding:0 16px;margin-bottom:-8px; } }
@keyframes toastBar { from { width:100%; } to { width:0%; } }

/* ── Badge resorteio no card do menu ──────────────────────────────────────── */
.nsm-menu-badge {
  position:absolute;top:8px;right:8px;
  background:rgba(245,158,11,.95);
  color:#fff;font:700 10px/1 var(--b);
  padding:3px 8px;border-radius:20px;
  letter-spacing:.02em;z-index:10;
  animation:nsmBadgePulse 2s ease-in-out infinite;
}
@keyframes nsmBadgePulse {
  0%,100% { box-shadow:0 0 0 0 rgba(245,158,11,.5); }
  50%      { box-shadow:0 0 0 6px rgba(245,158,11,0); }
}

/* ── Toast de resorteio para o admin ──────────────────────────────────────── */
.nsm-admin-toast {
  display:flex;align-items:center;gap:12px;
  padding:12px 12px 12px 16px;border-radius:12px;
  background:rgba(30,20,8,.96);backdrop-filter:blur(20px);
  border:1px solid rgba(245,158,11,.35);
  box-shadow:0 8px 32px rgba(0,0,0,.55),0 0 0 1px rgba(245,158,11,.08);
  pointer-events:all;position:relative;overflow:hidden;
  animation:toastIn .32s var(--ee) forwards;
}
.nsm-admin-toast.toast--out { animation:toastOut .28s var(--ee) forwards; }
.nsm-admin-toast-icon {
  width:32px;height:32px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(245,158,11,.15);color:#fbbf24;
}
.nsm-admin-toast-body { flex:1;min-width:0; }
.nsm-admin-toast-title { font:600 13px/1.3 var(--b);color:rgba(255,255,255,.92); }
.nsm-admin-toast-msg   { font:400 11px/1.4 var(--b);color:rgba(255,255,255,.52);margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.nsm-admin-toast-btn {
  flex-shrink:0;
  background:rgba(245,158,11,.18);border:1px solid rgba(245,158,11,.3);
  color:#fbbf24;border-radius:7px;
  font:600 11px/1 var(--b);padding:6px 12px;
  cursor:pointer;transition:background .15s;
}
.nsm-admin-toast-btn:hover { background:rgba(245,158,11,.32); }
.nsm-admin-toast-bar {
  position:absolute;bottom:0;left:0;height:2px;border-radius:0 0 12px 12px;
  background:linear-gradient(90deg,#f59e0b,#fbbf24);
  animation:toastBar 8000ms linear forwards;
}

/* Card evento — borda especial quando ativo */
.mc--tour { border-color:rgba(124,58,237,.22) !important; }
.mc--tour:hover { border-color:rgba(139,92,246,.5) !important; box-shadow:0 0 18px rgba(139,92,246,.12); }
.mc--event { border-color:rgba(0,171,169,.22) !important; }
.mc--event:hover { border-color:rgba(0,171,169,.55) !important; }
.mc--event.ev-has-active {
  border-color:rgba(34,197,94,.28) !important;
}

/* Tooltip nome do evento */
.ev-card-tooltip {
  position:absolute;bottom:calc(100% + 8px);left:50%;
  transform:translateX(-50%);
  background:rgba(4,18,14,.96);
  border:1px solid rgba(0,171,169,.28);
  border-radius:9px;padding:7px 13px;
  font:400 11px/1.4 var(--b);color:rgba(255,255,255,.85);
  white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;
  pointer-events:none;opacity:0;transition:opacity .18s;z-index:10;
}
.mc--event:hover .ev-card-tooltip:not(:empty) { opacity:1; }

/* Compat */
.ev-card-dot { display:none !important; }
.mc-badges,.mc-badge { display:none; }
.menu-card,.menu-card-ic,.menu-card-title,.menu-card-desc,.menu-card-sm { display:none; }

@keyframes menuItemIn {
  from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)}
}
@keyframes menuSloganIn {
  from{opacity:0;transform:translateY(12px)} to{opacity:.65;transform:translateY(0)}
}
@keyframes menuCardIn {
  from{opacity:0;transform:translateY(26px) scale(.95)} to{opacity:1;transform:translateY(0) scale(1)}
}

/* ══ TELA DE DESCANSO ══ */
.ss-screen {
  position:fixed;inset:0;z-index:48;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .7s cubic-bezier(.4,0,.2,1);
}
body.mode-screensaver .ss-screen { opacity:1;pointer-events:all; }

/* Véu atmosférico da tela de descanso = véu canônico (a referência de todas as telas) */
.ss-screen::before {
  content:'';
  position:absolute;inset:0;z-index:0;
  background:var(--bg-veil);
  pointer-events:none;
}

.ss-neon-canvas {
  position:absolute;inset:0;pointer-events:none;z-index:20;will-change:transform;
}

/* ═══ fonte/estilo/20-telao/010-controle-flutuante.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Controle flutuante e telas do telão
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 1376–2086
 * TAMANHO PREVISTO: 711 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ── ss-back e ss-fs-btn removidos — substituídos por .float-ctrl ── */

.ss-content {
  position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:0;
  padding:0 72px;
  animation:ssContentIn 1.1s cubic-bezier(.16,1,.3,1) both;
}
.ss-content::before {
  content:'';position:absolute;inset:-90px -120px;
  background:radial-gradient(ellipse 72% 60% at 50% 50%,rgba(0,30,22,.52) 0%,transparent 68%);
  pointer-events:none;z-index:-1;border-radius:50%;
}
@keyframes ssContentIn {
  from { opacity:0; transform:translateY(32px) scale(.96); filter:blur(8px); }
  to   { opacity:1; transform:translateY(0)    scale(1);   filter:blur(0);   }
}
.ss-logo {
  width:clamp(110px,13vw,200px);
  opacity:.75;
  filter:
    brightness(1.4)
    drop-shadow(0 0 12px rgba(255,255,255,.4))
    drop-shadow(0 0 30px rgba(0,171,169,.2));
  margin-bottom:44px;
  animation:ssLogoIn 1.3s .1s cubic-bezier(.16,1,.3,1) both;
}
@keyframes ssLogoIn {
  from { opacity:0; transform:scale(.90) translateY(16px); filter:blur(10px) brightness(1.8); }
  to   { opacity:1; transform:scale(1)   translateY(0);    filter:blur(0)    brightness(1);   }
}
.ss-clock {
  font:100 clamp(44px,6.5vw,86px)/1 var(--font);
  color:rgba(255,255,255,.92);letter-spacing:-.03em;
  text-shadow:
    0 0 80px rgba(0,171,169,.18),
    0 4px 32px rgba(0,0,0,.85);
  font-variant-numeric:tabular-nums;
  margin-bottom:8px;
}
.ss-date {
  font:300 clamp(10px,1.1vw,14px)/1 var(--b);
  color:rgba(255,255,255,.38);
  letter-spacing:.2em;text-transform:uppercase;
  margin-bottom:28px;
}
.ss-slogan {
  width:clamp(130px,16vw,240px);
  filter:drop-shadow(0 2px 12px rgba(0,0,0,.5));
  opacity:.7;
  margin-top:28px;
}

@keyframes ssLogoSlam {
  0%   { opacity:0;    filter:brightness(14) drop-shadow(0 0 80px #fff) drop-shadow(0 0 40px #00f0ec); transform:scale(1.28); }
  8%   { opacity:1;    filter:brightness(10) drop-shadow(0 0 100px #fff) drop-shadow(0 0 55px #00f0ec); transform:scale(1.18); }
  20%  { filter:brightness(6) drop-shadow(0 0 72px #00f0ec) drop-shadow(0 0 36px #00aba9); transform:scale(0.91); }
  36%  { filter:brightness(3.5) drop-shadow(0 0 48px #00e8e4) drop-shadow(0 0 22px #00aba9); transform:scale(1.06); }
  56%  { filter:brightness(2) drop-shadow(0 0 30px #00aba9); transform:scale(0.98); }
  78%  { filter:brightness(1.4) drop-shadow(0 0 18px rgba(0,171,169,.7)); transform:scale(1.01); }
  100% { opacity:.88;  filter:brightness(1) drop-shadow(0 4px 24px rgba(0,171,169,.55)); transform:scale(1); }
}
.ss-logo.neon-slam {
  animation:ssLogoSlam .85s cubic-bezier(.16,1,.3,1) forwards;
}

/* ══ BACKDROP FIXO — fundo discreto screensaver ══ */
.ss-dvi-mosaic {
  display:none;
}

/* ══ KEN BURNS — fotos screensaver (só zoom-in, sempre partem de scale:1) ══ */
@keyframes kbZoomIn  { from { transform:rotate(var(--ph-rot)) scale(1)    translate(0,0);      } to { transform:rotate(var(--ph-rot)) scale(1.06) translate(-1%,-0.7%);  } }
@keyframes kbZoomInR { from { transform:rotate(var(--ph-rot)) scale(1)    translate(0,0);      } to { transform:rotate(var(--ph-rot)) scale(1.06) translate(1%,-0.5%);   } }
@keyframes kbPanL    { from { transform:rotate(var(--ph-rot)) scale(1.04) translate(0.8%,0);  } to { transform:rotate(var(--ph-rot)) scale(1.04) translate(-0.8%,0);    } }
@keyframes kbPanR    { from { transform:rotate(var(--ph-rot)) scale(1.04) translate(-0.8%,0); } to { transform:rotate(var(--ph-rot)) scale(1.04) translate(0.8%,0);     } }

/* ══ FOTOS SORRISOS ══ */
.smile-photos-layer {
  position:fixed;inset:0;z-index:0;
  pointer-events:none;
  opacity:0;
  transition:opacity .9s cubic-bezier(.4,0,.2,1); /* v260: troca de tela suave */
}
/* Fotos: SEMPRE opacity 1 (igual ao descanso) em toda tela. O escurecimento vem
   do véu canônico (--bg-veil), não de reduzir a foto. z-index varia só por layout. */
body.smile-running #smilePhotosLayer { z-index:2;  opacity:1; }
body.mode-qrcode  #smilePhotosLayer  { z-index:47; opacity:1; }

/* Overlay verde legado — mantido transparente (o véu do sorteio agora é #app::before) */
.smile-overlay {
  position:fixed;inset:0;z-index:10;
  pointer-events:none;
  background:rgba(0,26,16,0);
  transition:background-color 1.6s cubic-bezier(.4,0,.2,1);
}

/* ── SORTEIO: mesmo fundo das outras telas ──
   As fotos (layer global) ficam ATRÁS do #app (z-index:1), virando fundo real.
   O véu canônico entra via #app::before; durante o giro escurece p/ focar nos nomes. */
body.mode-sorteio #smilePhotosLayer { z-index:0; }
body.mode-sorteio #app::before {
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:var(--bg-veil);
  transition:background .5s ease;
}
body.mode-sorteio.is-rolling #app::before {
  background:rgba(0,16,9,.92);
}

.smile-photo {
  position:absolute;
  display:block;
  border-radius:14px;
  opacity:0;
  will-change:opacity,transform;
  box-shadow:0 12px 48px rgba(0,0,0,.55),0 4px 16px rgba(0,0,0,.35);
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  z-index:2;
  /* Feather de borda (~1.5px): a foto é girada ~±6°, então a borda vira uma diagonal
     que o navegador desenha em "escadinha" (serrilhado verde do fundo de estúdio).
     A máscara esfuma só os 1.5px de cada lado — o rosto continua 100% nítido. */
  -webkit-mask-image:
    linear-gradient(to right,  transparent 0, #000 1.5px, #000 calc(100% - 1.5px), transparent 100%),
    linear-gradient(to bottom, transparent 0, #000 1.5px, #000 calc(100% - 1.5px), transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image:
    linear-gradient(to right,  transparent 0, #000 1.5px, #000 calc(100% - 1.5px), transparent 100%),
    linear-gradient(to bottom, transparent 0, #000 1.5px, #000 calc(100% - 1.5px), transparent 100%);
          mask-composite: intersect;
}

/* ══ PALAVRAS FLUTUANTES ══ */
.smile-word {
  position:absolute;
  font-family:var(--font);
  font-weight:300;
  font-style:normal;
  text-transform:uppercase;
  color:rgba(255,255,255,0.92);
  letter-spacing:0.22em;
  pointer-events:none;
  user-select:none;
  white-space:nowrap;
  opacity:0;
  will-change:opacity,transform;
  text-shadow:
    0 0 14px rgba(0,220,216,0.72),
    0 0 30px rgba(0,200,196,0.48),
    0 0 60px rgba(0,175,170,0.24),
    0 1px 3px rgba(0,0,0,0.60);
  z-index:3;
}
/* Frase especial: "De humano para humano" — brilho +20%, ritmo próprio */
.smile-word--special {
  filter:brightness(1.2);
}
.smile-word--special.revealing .smile-word-letter {
  animation-duration:0.78s !important;
}
.smile-word.revealing {
  animation:wGlowPulse 4.4s ease-in-out infinite 1.1s;
}
.smile-word-letter {
  display:inline-block;
  opacity:0;
  transform:translateY(4px) scale(0.96);
}
.smile-word.revealing .smile-word-letter {
  animation:wLetterIn 1.8s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes wLetterIn {
  from { opacity:0; transform:translateY(10px) scale(0.88); }
  40%  { opacity:.7; }
  to   { opacity:1; transform:translateY(0)    scale(1);    }
}
/* Saída letra a letra — espelha a digitação da entrada (restaurado do .bak) */
@keyframes wLetterOut {
  from { opacity:1; transform:translateY(0)    scale(1);    }
  to   { opacity:0; transform:translateY(-7px) scale(0.90); }
}
.smile-word.fading {
  animation:none; /* cancela wGlowPulse durante saída */
}
@keyframes wGlowPulse {
  0%,100% {
    text-shadow:
      0 0 14px rgba(0,220,216,0.62),
      0 0 28px rgba(0,200,196,0.40),
      0 0 55px rgba(0,175,170,0.20),
      0 1px 3px rgba(0,0,0,0.60);
  }
  50% {
    text-shadow:
      0 0 22px rgba(0,238,234,0.90),
      0 0 50px rgba(0,220,216,0.62),
      0 0 95px rgba(0,200,196,0.32),
      0 0 150px rgba(0,175,170,0.15),
      0 1px 3px rgba(0,0,0,0.60);
  }
}

/* Tema sorrisos já recebe o --bg-veil mais leve via a variável — sem override aqui */

/* ══ MENU — 3 cards ══ */
.menu-card:nth-child(3) { animation:menuCardIn .65s .52s cubic-bezier(.16,1,.3,1) both; }
body.mode-qrcode .menu-screen { opacity:0;pointer-events:none;transform:scale(.97); }

/* ══ TELA QR CODE ══ */
.qr-screen {
  position:fixed;inset:0;z-index:48;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:100dvh;overflow:hidden;
  padding:clamp(8px,1.5dvh,20px) clamp(12px,2vw,24px);
  opacity:0;pointer-events:none;
  transition:opacity .7s cubic-bezier(.4,0,.2,1);
}
body.mode-qrcode .qr-screen { opacity:1;pointer-events:all; }

/* Fundo modo-qrcode: usa o canônico global (sem overrides) — igual ao descanso */

/* Véu do QR = véu canônico (idêntico ao da tela de descanso) */
.qr-screen::before {
  content:'';
  position:absolute;inset:0;z-index:0;
  background:var(--bg-veil);
  pointer-events:none;
}

/* ── Botão Voltar — topo esquerdo da tela QR ── */
.qr-back-btn {
  position:absolute;top:22px;left:24px;z-index:10;
  display:flex;align-items:center;gap:6px;
  padding:6px 14px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.15);
  border-radius:8px;
  color:rgba(255,255,255,.8);
  font:500 13px var(--b);
  cursor:pointer;
  transition:background .18s,border-color .18s;
}
.qr-back-btn:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.28)}
.qr-back-btn svg{stroke:currentColor}

/* ── Título opcional — topo absoluto ── */
.qr-title-el {
  position:absolute;
  top:clamp(20px,4vh,56px);
  left:50%;transform:translateX(-50%);
  width:94%;
  text-align:center;
  font:800 italic clamp(48px,7.8vw,118px)/1 var(--font);
  letter-spacing:-.01em;
  color:#fff;
  text-shadow:
    0 0 4px rgba(255,255,255,0.88),
    0 0 14px rgba(113,191,186,0.92),
    0 0 36px rgba(0,171,169,0.82),
    0 0 80px rgba(0,171,169,0.50),
    0 0 160px rgba(0,99,97,0.35),
    0 6px 28px rgba(0,0,0,0.90);
  opacity:0;
  transition:opacity .9s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  z-index:1;
}
.qr-title-el.active { opacity:1; }
.qr-title-el::after {
  content:'';
  position:absolute;
  bottom:-12px;left:50%;transform:translateX(-50%);
  width:45%;height:1.5px;
  background:linear-gradient(to right,transparent,rgba(0,171,169,.7),transparent);
  border-radius:2px;
}

/* ── Card central ── */
.qr-content {
  position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:center;
  gap:clamp(10px,2.2dvh,32px);
  flex-shrink:1;min-height:0;
  background:rgba(6,22,14,.52);
  backdrop-filter:blur(28px) saturate(110%);-webkit-backdrop-filter:blur(28px) saturate(110%);
  border:1px solid rgba(0,171,169,.18);
  border-radius:36px;
  padding:clamp(20px,3.5dvh,48px) clamp(28px,5vw,72px) clamp(18px,3dvh,44px);
  box-shadow:0 28px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.08);
  animation:qrContentIn .75s .1s cubic-bezier(.16,1,.3,1) both;
}
@keyframes qrContentIn {
  from { opacity:0;transform:translateY(22px) scale(.97); }
  to   { opacity:1;transform:translateY(0)    scale(1);   }
}

/* ── Linha logo + slogan ── */
.qr-brand {
  display:flex;align-items:center;gap:clamp(14px,2vw,28px);
}
.qr-brand-logo {
  width:clamp(80px,min(13vw,10dvh),185px);
  opacity:.88;
  filter:drop-shadow(0 4px 24px rgba(0,171,169,.55));
}
.qr-brand-divider {
  width:1px;height:clamp(58px,7vw,96px);
  background:linear-gradient(to bottom,transparent,rgba(0,171,169,.45),transparent);
  flex-shrink:0;
}
.qr-brand-slogan {
  width:clamp(90px,min(15vw,11dvh),210px);
  opacity:.82;
}

/* ── Label tipo QR ── */
.qr-type-label {
  font-family:var(--font);
  font-size:clamp(.9rem,1.4vw,1.15rem);
  font-weight:500;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
  text-align:center;
  min-height:1.4em;
}

/* ── Imagem QR ── */
.qr-img-wrap {
  width:clamp(220px,min(42vw,56dvh),760px);
  height:clamp(220px,min(42vw,56dvh),760px);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:1;
}
.qr-img {
  width:100%;height:100%;
  object-fit:contain;
  border-radius:6px;
  box-shadow:0 0 0 10px rgba(255,255,255,.06),0 12px 48px rgba(0,0,0,.5);
  animation:qrGlow 3.5s ease-in-out infinite;
}
@keyframes qrGlow {
  0%,100% { filter:drop-shadow(0 0 8px rgba(0,171,169,.4)); }
  50%      { filter:drop-shadow(0 0 22px rgba(0,171,169,.80)) drop-shadow(0 0 44px rgba(0,171,169,.28)); }
}
.qr-no-image {
  width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  border:2px dashed rgba(0,171,169,.28);
  border-radius:18px;
  color:rgba(255,255,255,.38);
  font:300 12.5px/1.6 var(--b);
  text-align:center;
  letter-spacing:.04em;
}

/* ── Descrição opcional ── */
.qr-desc-el {
  font:300 clamp(13px,1.6vw,22px)/1.5 var(--b);
  color:rgba(255,255,255,.88);
  letter-spacing:.22em;
  text-transform:uppercase;
  text-align:center;
  max-width:600px;
  opacity:0;
  max-height:0;overflow:hidden;
  transition:opacity .6s cubic-bezier(.4,0,.2,1), max-height .6s cubic-bezier(.4,0,.2,1);
  text-shadow:
    0 0 6px rgba(255,255,255,.65),
    0 0 16px rgba(113,191,186,.75),
    0 0 38px rgba(0,171,169,.50),
    0 2px 12px rgba(0,0,0,.70);
  border-top:1px solid rgba(0,171,169,.2);
  padding-top:18px;
  width:100%;
}
.qr-desc-el.active { opacity:1;max-height:140px; }

/* ══ QR SCREEN — LAYOUT WRAPPER + LIVE PANEL ══ */

/* Wrapper central: coluna quando live, passthrough quando não */
.qr-layout-wrap {
  position:relative;z-index:1;
  display:flex;flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(8px,1.5dvh,20px);
  flex:1;min-height:0;width:100%;max-width:860px;
}


/* Palavras: na frente da janela ss-content (ss-screen=48), atrás de float-ctrl(90) */
.smile-words-layer {
  position:fixed;inset:0;z-index:0;
  pointer-events:none;
  opacity:0;
  transition:opacity .9s cubic-bezier(.4,0,.2,1); /* v260: troca de tela suave */
}
/* Palavras visíveis quando smile-running, independente de tema */
body.smile-running #smileWordsLayer    { z-index:49; opacity:1; }
body.mode-screensaver #smileWordsLayer { z-index:49; opacity:1; }
body.mode-qrcode #smileWordsLayer      { z-index:47; opacity:1; }

/* ══ BARRA AO VIVO — painel QR redesenhado ══ */
/* ══ PAINEL AO VIVO — pílula fina ══ */
.qr-live-panel {
  display:none;
  flex-shrink:0;width:100%;
  align-items:center;gap:10px;
  background:linear-gradient(135deg,rgba(0,10,8,.55),rgba(0,20,16,.45));
  backdrop-filter:blur(32px) saturate(140%);-webkit-backdrop-filter:blur(32px) saturate(140%);
  border:1px solid rgba(0,171,169,.22);
  border-radius:99px;
  padding:7px 8px 7px 14px;
  box-shadow:0 2px 24px rgba(0,0,0,.28),0 0 0 1px rgba(0,171,169,.08) inset;
  animation:qrContentIn .75s .18s cubic-bezier(.16,1,.3,1) both;
}
body.qr-is-live .qr-live-panel { display:flex; }

/* Variante satisfação — sotaque violeta */
.qr-live-panel.qr-sat-mode {
  border-color:rgba(167,139,250,.22);
  box-shadow:0 2px 24px rgba(0,0,0,.28),0 0 0 1px rgba(167,139,250,.08) inset;
}

/* ── Info do evento (esquerda) — tudo numa linha fluida ── */
.qr-live-info {
  display:flex;align-items:center;gap:8px;flex:1;min-width:0;
}
.qr-live-event-name {
  font:700 11.5px/1 var(--b);
  color:#2dd4bf;
  text-transform:uppercase;letter-spacing:.08em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  opacity:0;transition:opacity .5s;max-width:220px;
}
.qr-live-event-name.visible { opacity:1; }
.qr-sat-mode .qr-live-event-name { color:#c4b5fd; }

.qr-live-badge {
  display:flex;align-items:center;gap:5px;
  background:rgba(0,171,169,.08);
  border:1px solid rgba(0,171,169,.25);
  border-radius:99px;
  padding:4px 10px;
  font:600 9px/1 var(--b);
  color:rgba(45,212,191,.9);
  text-transform:uppercase;letter-spacing:.09em;
  flex-shrink:0;
}
.qr-sat-mode .qr-live-badge {
  background:rgba(167,139,250,.09);
  border-color:rgba(167,139,250,.28);
  color:rgba(196,181,253,.9);
}

.qr-live-dot {
  width:6px;height:6px;border-radius:50%;
  background:#2dd4bf;
  animation:qrDotPulse 1.8s ease-in-out infinite;
  flex-shrink:0;
}
.qr-sat-mode .qr-live-dot { background:#a78bfa; animation:qrDotPulseSat 1.8s ease-in-out infinite; }

@keyframes qrDotPulse {
  0%,100% { opacity:1;transform:scale(1); }
  50%      { opacity:.40;transform:scale(.60); }
}
@keyframes qrDotPulseSat {
  0%,100% { opacity:1;transform:scale(1); }
  50%      { opacity:.40;transform:scale(.60); }
}

/* ── Separador fino entre campos ── */
.qr-live-sep {
  width:1px;height:13px;background:rgba(255,255,255,.12);flex-shrink:0;
}

/* ── Contador inline (sem padding extra, sem pseudo-elementos) ── */
.qr-live-count-block {
  display:flex;align-items:center;gap:5px;
  flex-shrink:0;
}
.qr-live-count {
  font:800 13px/1 var(--b);
  color:#fff;
  text-shadow:0 0 10px rgba(45,212,191,.5);
  transition:transform .30s cubic-bezier(.34,1.56,.64,1),text-shadow .30s;
  display:inline-block;font-variant-numeric:tabular-nums;
}
.qr-sat-mode .qr-live-count { text-shadow:0 0 10px rgba(167,139,250,.5); }
.qr-live-count.pop {
  transform:scale(1.18);
  text-shadow:0 0 18px rgba(45,212,191,1),0 0 36px rgba(45,212,191,.4);
}
.qr-sat-mode .qr-live-count.pop {
  text-shadow:0 0 18px rgba(167,139,250,1),0 0 36px rgba(167,139,250,.4);
}
.qr-live-count-lbl {
  font:500 9px/1 var(--b);
  color:rgba(255,255,255,.32);
  text-transform:uppercase;letter-spacing:.10em;
}

/* ── Botão (direita) ── */
.qr-live-end-btn {
  display:flex;align-items:center;gap:6px;
  padding:5px 13px;
  margin-left:auto;
  background:rgba(0,171,169,.12);
  border:1px solid rgba(0,171,169,.34);
  border-radius:99px;
  color:rgba(255,255,255,.88);
  font:600 10px/1 var(--b);
  cursor:pointer;white-space:nowrap;flex-shrink:0;
  transition:background .22s,border-color .22s,box-shadow .22s,transform .12s;
}
.qr-sat-mode .qr-live-end-btn {
  background:rgba(167,139,250,.11);
  border-color:rgba(167,139,250,.32);
}
.qr-live-end-btn:hover {
  background:rgba(0,171,169,.22);
  border-color:rgba(0,171,169,.6);
  box-shadow:0 0 12px rgba(0,171,169,.2);
}
.qr-sat-mode .qr-live-end-btn:hover {
  background:rgba(167,139,250,.20);
  border-color:rgba(167,139,250,.6);
  box-shadow:0 0 12px rgba(167,139,250,.2);
}
.qr-live-end-btn:active { transform:scale(.97); }

/* ══ MINI PREVIEW QR (config panel) ══ */
.cfg-qr-minipreview {
  margin:6px 16px 18px;
  border-radius:14px;
  overflow:hidden;
  position:relative;
  background:radial-gradient(ellipse at 50% 25%,#0c1e1a 0%,#040e0b 100%);
  border:1px solid rgba(0,171,169,.28);
  box-shadow:0 3px 14px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.04);
  display:flex;flex-direction:column;align-items:center;
  padding:22px 14px 16px;
  gap:10px;
  min-height:186px;
  transition:background .5s;
}
.cfg-qr-minipreview[data-theme="sorrisos"] {
  background:radial-gradient(ellipse at 50% 25%,#1a1a10 0%,#0e0e08 100%);
  border-color:rgba(0,171,169,.22);
}
/* badge ao vivo */
.cfg-qrmp-badge {
  position:absolute;top:9px;right:10px;
  display:flex;align-items:center;gap:5px;
  background:rgba(0,171,169,.12);
  border:1px solid rgba(0,171,169,.32);
  border-radius:99px;
  padding:3px 9px 3px 7px;
  font-family:var(--b);font-size:8.5px;font-weight:700;
  color:rgba(113,191,186,.95);letter-spacing:.09em;text-transform:uppercase;
}
.cfg-qrmp-dot {
  width:5px;height:5px;border-radius:50%;
  background:#00aba9;
  animation:mpDotPulse 1.6s ease-in-out infinite;
}
@keyframes mpDotPulse {
  0%,100%{opacity:1;transform:scale(1);}
  50%{opacity:.3;transform:scale(.7);}
}
/* título no preview */
.cfg-qrmp-title {
  font:500 italic clamp(13px,2.2vw,17px)/1.2 'Cormorant Garamond',Georgia,serif;
  color:#fff;
  text-shadow:0 0 10px rgba(0,171,169,.9),0 0 28px rgba(0,171,169,.55);
  text-align:center;
  max-width:100%;padding:0 10px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  opacity:0;max-height:0;
  transition:opacity .35s ease,max-height .35s ease,transform .35s ease;
  transform:translateY(-5px);
}
.cfg-qrmp-title.visible { opacity:1;max-height:26px;transform:translateY(0); }
/* card central no preview */
.cfg-qrmp-card {
  background:rgba(6,22,14,.55);
  border:1px solid rgba(0,171,169,.16);
  border-radius:12px;
  padding:12px 18px 14px;
  display:flex;flex-direction:column;align-items:center;
  gap:10px;
  width:calc(100% - 4px);
}
/* QR thumb */
.cfg-qrmp-qr {
  width:72px;height:72px;
  border-radius:10px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.09);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;flex-shrink:0;
}
.cfg-qrmp-qr img { width:100%;height:100%;object-fit:contain;border-radius:8px; }
.cfg-qrmp-qr-ph {
  display:flex;flex-direction:column;align-items:center;gap:4px;
  color:rgba(255,255,255,.2);font-size:8.5px;font-family:var(--b);text-align:center;
}
/* descrição no preview */
.cfg-qrmp-desc {
  font:400 italic clamp(10px,1.5vw,12px)/1.4 'Cormorant Garamond',Georgia,serif;
  color:rgba(255,255,255,.82);
  text-shadow:0 0 8px rgba(0,171,169,.6);
  letter-spacing:.08em;text-align:center;
  opacity:0;max-height:0;overflow:hidden;
  transition:opacity .35s ease,max-height .35s ease,transform .35s ease;
  transform:translateY(5px);
  border-top:1px solid rgba(0,171,169,.18);
  padding-top:8px;width:100%;
}
.cfg-qrmp-desc.visible { opacity:1;max-height:50px;transform:translateY(0); }

/* ══ SETTINGS — Seção QR ══ */
.cfg-qr-upload {
  padding:12px 16px 4px;
  display:flex;flex-direction:column;gap:10px;
}
.cfg-qr-preview {
  width:100%;height:130px;
  border-radius:12px;overflow:hidden;
  background:rgba(0,0,0,.28);
  border:1.5px dashed rgba(0,171,169,.28);
  display:flex;align-items:center;justify-content:center;
}
.cfg-qr-thumb {
  width:100%;height:100%;object-fit:contain;
  padding:6px;
}
.cfg-qr-placeholder {
  display:flex;flex-direction:column;align-items:center;gap:7px;
  color:rgba(255,255,255,.32);
  font:300 11.5px/1.4 var(--b);
  text-align:center;
}
.cfg-qr-placeholder svg { opacity:.55; stroke:rgba(0,171,169,.55); }
.cfg-qr-btn-row { display:flex;gap:8px; }
.cfg-qr-upload-btn {
  flex:1;
  display:flex;align-items:center;justify-content:center;gap:7px;
  padding:9px 14px;
  background:rgba(0,171,169,.1);
  border:1.5px solid rgba(0,171,169,.28);
  border-radius:10px;
  color:var(--verde-1);
  font:500 12.5px var(--b);
  cursor:pointer;
  transition:background .2s,border-color .2s;
}
.cfg-qr-upload-btn:hover { background:rgba(0,171,169,.2);border-color:rgba(0,171,169,.5); }
.cfg-qr-clear-btn {
  padding:9px 14px;
  background:rgba(220,60,60,.08);
  border:1.5px solid rgba(220,60,60,.22);
  border-radius:10px;
  color:rgba(255,110,110,.85);
  font:500 12.5px var(--b);
  cursor:pointer;
  transition:background .2s,border-color .2s;
}
.cfg-qr-clear-btn:hover { background:rgba(220,60,60,.16);border-color:rgba(220,60,60,.45); }

.cfg-qr-input-wrap { padding:4px 16px 10px; }

/* ══ QR — Slot tabs ══ */
.qr-slot-tabs {
  display:flex;gap:6px;
  padding:12px 16px 4px;
}
.qr-slot-tab {
  flex:1;
  padding:7px 4px;
  border-radius:8px;
  border:1.5px solid rgba(0,171,169,.28);
  background:rgba(0,171,169,.07);
  color:rgba(0,90,88,.65);
  font:600 11.5px/1 var(--b);
  cursor:pointer;
  transition:background .18s,border-color .18s,color .18s;
  position:relative;
}
.qr-slot-tab:hover { background:rgba(0,171,169,.15);color:rgba(0,100,98,.9); }
.qr-slot-tab.active {
  background:rgba(0,171,169,.18);
  border-color:rgba(0,171,169,.6);
  color:#007a78;
  font-weight:700;
}
/* ponto verde quando o slot está ativo (on) */
.qr-slot-tab.on::after {
  content:'';
  position:absolute;top:5px;right:6px;
  width:5px;height:5px;border-radius:50%;
  background:#00aba9;
  box-shadow:0 0 6px rgba(0,171,169,.8);
}

/* ═══ fonte/estilo/20-telao/020-qr-paginado.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Tela de QR — navegação paginada
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 2087–2248
 * TAMANHO PREVISTO: 162 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ══ QR Screen — Navegação paginada ══ */
.qr-nav {
  position:absolute;
  bottom:clamp(20px,4vh,52px);
  left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:16px;
  background:rgba(6,22,14,.55);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(0,171,169,.18);
  border-radius:99px;
  padding:8px 16px;
}
.qr-nav-btn {
  width:32px;height:32px;
  border-radius:50%;
  border:1.5px solid rgba(0,171,169,.28);
  background:rgba(0,171,169,.1);
  color:#71bfba;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .18s,border-color .18s;
}
.qr-nav-btn:hover { background:rgba(0,171,169,.24);border-color:rgba(0,171,169,.5); }
.qr-dots { display:flex;gap:8px;align-items:center; }
.qr-dot {
  width:8px;height:8px;border-radius:50%;
  background:rgba(113,191,186,.3);
  border:1.5px solid rgba(0,171,169,.35);
  cursor:pointer;
  transition:background .2s,transform .2s;
}
.qr-dot.active {
  background:#00aba9;
  box-shadow:0 0 8px rgba(0,171,169,.7);
  transform:scale(1.25);
}
.cfg-text-input {
  width:100%;
  background:rgba(0,171,169,.08);
  border:1.5px solid rgba(0,171,169,.22);
  border-radius:10px;
  color:#1a2e30;
  font:400 13px/1.45 var(--b);
  padding:10px 13px;
  outline:none;
  transition:border-color .2s,background .2s;
  resize:none;
}
.cfg-text-input:focus { border-color:rgba(0,171,169,.6);background:rgba(0,171,169,.13); }
.cfg-text-input::placeholder { color:rgba(0,80,76,.38); }

/* ══════════════════════════════════════
   CONTROLES DE MÍDIA — canto inferior direito
   ══════════════════════════════════════ */

.media-ctrl {
  position:fixed;
  bottom:22px;right:22px;
  z-index:90;
  display:flex;flex-direction:column;align-items:center;
  gap:0;
  background:rgba(2,12,7,.60);
  border:1.5px solid rgba(255,255,255,.14);
  border-radius:18px;
  padding:6px;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:0 8px 32px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.07);
  transition:opacity .35s ease, bottom .35s var(--ee);
}
body.mode-sorteio .media-ctrl { bottom:80px; }

.mctrl-btn {
  position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:5px;
  width:52px;
  padding:10px 0;
  background:transparent;
  border:none;border-radius:12px;
  color:rgba(255,255,255,.72);
  cursor:pointer;
  transition:background .2s, color .2s, transform .15s, opacity .3s;
}
.mctrl-btn:hover {
  background:rgba(0,171,169,.18);
  color:#fff;
  transform:translateX(-2px);
}
.mctrl-btn:hover svg { filter:drop-shadow(0 0 5px rgba(0,171,169,.7)); }
.mctrl-btn:active { transform:scale(.92) !important; }
.mctrl-btn svg { transition:filter .25s, opacity .3s; }

/* Estado parado — desbotado */
.mctrl-btn.paused { color:rgba(255,255,255,.30); }
.mctrl-btn.paused svg { opacity:.38; }
.mctrl-btn.paused .mctrl-lbl { opacity:.38; }

/* Ponto indicador de ativo */
.mctrl-btn::after {
  content:'';
  position:absolute;
  top:8px;right:9px;
  width:5px;height:5px;
  border-radius:50%;
  background:#00aba9;
  box-shadow:0 0 6px rgba(0,171,169,.9);
  opacity:1;
  transition:opacity .28s ease;
}
.mctrl-btn.paused::after { opacity:0; }

.mctrl-lbl {
  font:500 9px/1 var(--b);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:inherit;
  opacity:.75;
  transition:opacity .3s;
}
.mctrl-sep {
  width:28px;height:1px;
  background:rgba(255,255,255,.10);
  flex-shrink:0;
  margin:2px 0;
}
.mctrl-btn--ss {
  color:rgba(255,255,255,.52);
}
.mctrl-btn--ss:hover {
  color:rgba(255,255,255,.90);
}
.mctrl-btn--ss::after { opacity:0 !important; }
body.mode-screensaver .mctrl-btn--ss::after { opacity:1 !important; }

/* Tooltip lateral */
.mctrl-tip {
  position:absolute;
  right:calc(100% + 12px);
  top:50%;
  transform:translateY(-50%) translateX(6px);
  background:rgba(2,12,7,.92);
  border:1px solid rgba(0,171,169,.28);
  border-radius:8px;
  padding:5px 10px;
  font:500 11px/1.3 var(--b);
  white-space:nowrap;
  color:rgba(255,255,255,.86);
  pointer-events:none;
  letter-spacing:.02em;
  box-shadow:0 4px 16px rgba(0,0,0,.45);
  opacity:0;
  transition:opacity .18s ease, transform .18s ease;
  z-index:2;
}
.mctrl-btn:hover .mctrl-tip {
  opacity:1;
  transform:translateY(-50%) translateX(0);
}
/* ══════════════════════════════════════
   SISTEMA DE EVENTOS — MENU
   ══════════════════════════════════════ */

/* ═══ fonte/estilo/30-evento/010-barra-de-evento.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Barra de evento ativo
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 2249–2406
 * TAMANHO PREVISTO: 158 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ── Barra de evento ativo ── */
/* ════════════════════════════════════
   PÍLULA DE SESSÃO (menu-event-bar)
   ════════════════════════════════════ */
.menu-event-bar {
  display:none;
  align-items:center;gap:10px;
  background:linear-gradient(135deg,rgba(0,10,8,.55),rgba(0,20,16,.45));
  border:1px solid rgba(0,171,169,.22);
  border-radius:99px;
  padding:7px 8px 7px 14px;
  margin-bottom:24px;
  max-width:820px;align-self:center;width:100%;
  backdrop-filter:blur(32px) saturate(140%);-webkit-backdrop-filter:blur(32px) saturate(140%);
  animation:tagIn .4s var(--ee);
  box-shadow:0 2px 24px rgba(0,0,0,.28),0 0 0 1px rgba(0,171,169,.08) inset;
}
.menu-event-bar.vis { display:flex; }

.meb-dot {
  width:7px;height:7px;border-radius:50%;flex-shrink:0;
  background:#00aba9;
  box-shadow:0 0 8px rgba(0,171,169,.9),0 0 18px rgba(0,171,169,.5);
  animation:mpDotPulse 1.8s ease-in-out infinite;
}

.meb-fields {
  display:flex;align-items:center;gap:0;flex:1;flex-wrap:wrap;
}
.meb-field {
  display:flex;align-items:center;gap:4px;padding:0 10px;
}
.meb-field:first-child { padding-left:4px; }
.meb-field-lbl {
  font:600 8.5px/1 var(--b);
  color:rgba(255,255,255,.28);
  letter-spacing:.1em;text-transform:uppercase;
  flex-shrink:0;
}
.meb-field-val {
  font:500 11.5px/1 var(--b);
  color:rgba(255,255,255,.85);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:160px;
}
.meb-speaker { font-weight:700;color:#fff; }
.meb-user    { color:rgba(0,220,215,.9); }
.meb-div {
  width:1px;height:13px;
  background:rgba(255,255,255,.1);
  flex-shrink:0;
}

.meb-actions { display:flex;gap:6px;align-items:center;flex-shrink:0; }
.meb-btn {
  display:flex;align-items:center;gap:5px;
  padding:5px 11px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius:99px;
  color:rgba(255,255,255,.6);
  font:500 10px var(--b);
  cursor:pointer;
  transition:all .20s;
}
.meb-btn:hover { background:rgba(0,171,169,.18);border-color:rgba(0,171,169,.4);color:#5eead4; }
.meb-btn-out { background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.45);color:#fca5a5; }
.meb-btn-out:hover { background:rgba(239,68,68,.30);border-color:rgba(239,68,68,.7);color:#fff;box-shadow:0 0 10px rgba(239,68,68,.3); }
.meb-ver-chip {
  display:inline-flex;align-items:center;
  padding:4px 9px;border-radius:99px;
  background:rgba(0,171,169,.1);
  border:1px solid rgba(0,171,169,.22);
  color:rgba(0,200,195,.8);
  font:700 9px/1 var(--b);letter-spacing:.07em;text-transform:uppercase;
  cursor:pointer;transition:all .18s;white-space:nowrap;flex-shrink:0;
}
.meb-ver-chip:hover { background:rgba(0,171,169,.22);border-color:rgba(0,171,169,.45);color:#00d4d2; }
.meb-ver-chip.copied { background:rgba(34,197,94,.18);border-color:rgba(34,197,94,.4);color:#4ade80; }

/* ── Legado removido — substituído por .mc ── */

/* ── Botão atualizar base + indicador ── */
.lbc-btn--refresh {
  display:flex;align-items:center;justify-content:center;gap:6px;
  width:100%;padding:8px 12px;border-radius:8px;
  background:transparent;border:1px solid rgba(255,255,255,.1);
  font:500 11px var(--b);color:rgba(255,255,255,.42);cursor:pointer;
  transition:background .15s,color .15s,border-color .15s;margin-top:6px;
}
.lbc-btn--refresh:hover { background:rgba(255,255,255,.05);color:rgba(255,255,255,.72);border-color:rgba(255,255,255,.2); }
.lbc-btn--refresh:disabled { opacity:.45;cursor:default; }
.lbc-btn--refresh svg { flex-shrink:0; }
.lbc-btn--refresh.rb-ok  { color:#4ade80;border-color:rgba(74,222,128,.45);background:rgba(74,222,128,.08); }
.lbc-btn--refresh.rb-err { color:#f87171;border-color:rgba(248,113,113,.45);background:rgba(248,113,113,.08); }
.lb-last-update { font:400 10px var(--b);color:rgba(255,255,255,.28);text-align:center;margin-top:4px;line-height:1; }

/* ══ NSM — Novo Sorteio Modal ══ */
#nsmModal {
  display:none;position:fixed;inset:0;z-index:202;
  background:rgba(0,12,10,.72);
  backdrop-filter:blur(12px) saturate(130%);-webkit-backdrop-filter:blur(12px) saturate(130%);
  align-items:center;justify-content:center;padding:20px;
}
#nsmModal.vis { display:flex; }
.nsm-box {
  background:var(--bgcard2);
  border:1px solid var(--border2);
  border-radius:20px;
  width:90%;max-width:440px;
  overflow:hidden;
  box-shadow:var(--shadow-l),inset 0 1px 0 rgba(255,255,255,.07);
  animation:modalIn .32s var(--ee);
}
.nsm-hd {
  display:flex;align-items:center;gap:12px;
  padding:16px 16px 14px;
  border-bottom:1px solid var(--border2);
}
.nsm-hd-ic {
  width:34px;height:34px;border-radius:10px;
  background:rgba(0,171,169,.14);color:#2dd4bf;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.nsm-hd-txt { flex:1; }
.nsm-ttl { font:700 13.5px/1.2 var(--font);color:var(--text); }
.nsm-sub { font:400 11.5px/1 var(--b);color:var(--text2);margin-top:3px; }
.nsm-x,.nsm-back {
  width:28px;height:28px;border-radius:8px;
  background:rgba(255,255,255,.05);border:1px solid var(--border2);
  color:var(--text2);display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;transition:background .15s;
}
.nsm-x:hover,.nsm-back:hover { background:rgba(255,255,255,.1); }

/* Choices */
.nsm-choices { padding:10px;display:flex;flex-direction:column;gap:7px; }
.nsm-choice {
  display:flex;align-items:center;gap:12px;
  padding:13px 13px;border-radius:13px;
  border:1px solid var(--border2);
  background:rgba(255,255,255,.025);
  cursor:pointer;text-align:left;
  transition:background .15s,border-color .15s;
}
.nsm-choice:hover { background:rgba(255,255,255,.06); }
.nsm-choice--red:hover { background:rgba(239,68,68,.06);border-color:rgba(239,68,68,.22); }
.nsm-choice > svg:last-child { opacity:.3;flex-shrink:0; }
.nsm-choice-ic {
  width:42px;height:42px;border-radius:11px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.nsm-choice-ic--teal { background:rgba(0,171,169,.14);color:#2dd4bf; }
.nsm-choice-ic--red  { background:rgba(239,68,68,.14); color:#f87171; }
.nsm-choice-body { flex:1; }
.nsm-choice-ttl { display:block;font:600 12.5px/1.3 var(--font);color:var(--text); }
.nsm-choice-dsc { display:block;font:400 11px/1.45 var(--b);color:var(--text2);margin-top:3px; }

/* ═══ fonte/estilo/30-evento/020-justificativa.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Justificativa, modais e formulários do evento
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 2407–3568
 * TAMANHO PREVISTO: 1162 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* Justificativa screen */
.nsm-prev {
  margin:12px 14px 0;padding:10px 12px;
  border-radius:10px;background:rgba(255,255,255,.035);
  border:1px solid var(--border2);max-height:90px;overflow-y:auto;
}
.nsm-prev-ttl { font:600 10px/1 var(--b);color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px; }
.nsm-prev-item { font:400 12px/1.6 var(--b);color:var(--text2); }

/* ── Trocar quem não compareceu ──────────────────────────────────────────────
   Segue as classes do próprio NSM (mesmos tokens, mesmas medidas). Nada de
   `--text3` em texto informativo: esse token mede 3,08:1 e reprova em AA. */
.nsm-choice--amber:hover { background:rgba(251,191,36,.06);border-color:rgba(251,191,36,.22); }
.nsm-choice-ic--amber    { background:rgba(251,191,36,.14);color:#fbbf24; }

.nsm-pick-list { padding:10px;display:flex;flex-direction:column;gap:7px;max-height:320px;overflow-y:auto; }
.nsm-pick {
  display:flex;align-items:center;gap:10px;
  padding:12px 13px;border-radius:12px;
  border:1px solid var(--border2);
  background:rgba(255,255,255,.025);
  cursor:pointer;text-align:left;width:100%;
  transition:background .15s,border-color .15s;
}
.nsm-pick:hover { background:rgba(251,191,36,.06);border-color:rgba(251,191,36,.22); }
.nsm-pick-pos  { font:800 9.5px/1 var(--b);color:#fff;background:var(--accent);border-radius:6px;padding:3px 6px;letter-spacing:.02em;flex-shrink:0; }
.nsm-pick-nome { flex:1;font:600 12.5px/1.3 var(--font);color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.nsm-pick-go   { font:600 10.5px/1 var(--b);color:#fbbf24;text-transform:uppercase;letter-spacing:.06em;flex-shrink:0; }

.nsm-quem {
  margin:12px 14px 0;padding:10px 12px;border-radius:10px;
  background:rgba(251,191,36,.07);border:1px solid rgba(251,191,36,.2);
  display:flex;align-items:center;gap:8px;
  font:600 13px/1.3 var(--font);color:var(--text);
}

.nsm-motivo-btns { padding:12px 14px 0;display:flex;flex-wrap:wrap;gap:7px; }
.nsm-motivo-btn {
  font:600 12px/1 var(--b);color:var(--text2);
  padding:10px 13px;border-radius:10px;
  background:rgba(255,255,255,.04);border:1px solid var(--border2);
  cursor:pointer;transition:background .15s,border-color .15s,color .15s;
}
.nsm-motivo-btn:hover { background:rgba(255,255,255,.08);color:var(--text); }
.nsm-motivo-btn.on {
  background:rgba(251,191,36,.14);border-color:rgba(251,191,36,.4);color:#fbbf24;
}

.nsm-in {
  width:calc(100% - 28px);margin:9px 14px 0;
  font:400 12.5px/1 var(--b);color:var(--text);
  padding:11px 12px;border-radius:10px;
  background:rgba(255,255,255,.04);border:1px solid var(--border2);
}
.nsm-in:focus { outline:none;border-color:rgba(251,191,36,.4); }

.nsm-pool-info       { padding:10px 14px 0;font:400 11px/1.45 var(--b);color:var(--text2); }
.nsm-pool-info--warn { color:#f87171; }
.nsm-empty           { padding:24px 14px;text-align:center;font:400 12px/1.5 var(--b);color:var(--text2); }
.nsm-btn-pri:disabled { opacity:.45;cursor:not-allowed; }

/* Faixa do histórico: ausente riscado, substituto rotulado */
.hist-tag--acao { cursor:pointer;transition:border-color .15s,background .15s; }
.hist-tag--acao:hover { border-color:rgba(251,191,36,.4);background:rgba(251,191,36,.07); }
.hist-tag--ausente {
  opacity:.72;
  border-color:rgba(248,113,113,.28);
  background:rgba(248,113,113,.06);
}
.hist-tag--ausente s { text-decoration-thickness:1.5px;color:var(--text2); }
.hist-tag-lbl {
  font:600 9px/1 var(--b);text-transform:uppercase;letter-spacing:.06em;
  color:#f87171;background:rgba(248,113,113,.12);
  border-radius:5px;padding:3px 5px;
  max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.hist-tag-lbl--in { color:#2dd4bf;background:rgba(45,212,191,.12); }
.nsm-alert {
  display:flex;align-items:flex-start;gap:8px;
  margin:10px 14px;padding:10px 12px;
  border-radius:10px;
  background:rgba(251,191,36,.07);border:1px solid rgba(251,191,36,.18);
  font:400 11.5px/1.5 var(--b);color:rgba(251,191,36,.88);
}
.nsm-ta {
  display:block;width:calc(100% - 28px);margin:0 14px;
  height:86px;background:rgba(255,255,255,.045);
  border:1px solid var(--border2);border-radius:10px;
  color:var(--text);font:400 12.5px/1.5 var(--b);
  padding:10px 12px;resize:none;box-sizing:border-box;
  transition:border-color .15s;
}
.nsm-ta:focus { outline:none;border-color:rgba(0,171,169,.38); }
.nsm-ta.nsm-ta-err { border-color:rgba(239,68,68,.5);animation:shake .35s; }
@keyframes shake { 0%,100%{transform:none} 25%{transform:translateX(-5px)} 75%{transform:translateX(5px)} }
.nsm-char { font:400 10.5px/1 var(--b);color:var(--text2);text-align:right;margin:5px 14px 0; }
.nsm-acts { display:flex;justify-content:flex-end;gap:8px;padding:12px 14px 14px; }
.nsm-btn-sec {
  padding:8px 15px;border-radius:9px;
  background:rgba(255,255,255,.055);border:1px solid var(--border2);
  color:var(--text2);cursor:pointer;font:500 12px/1 var(--b);transition:background .15s;
}
.nsm-btn-sec:hover { background:rgba(255,255,255,.1); }
.nsm-btn-pri {
  display:flex;align-items:center;gap:7px;padding:8px 15px;border-radius:9px;
  background:rgba(0,171,169,.18);border:1px solid rgba(0,171,169,.3);
  color:#2dd4bf;cursor:pointer;font:600 12px/1 var(--b);transition:background .15s;
}
.nsm-btn-pri:hover { background:rgba(0,171,169,.28); }
.nsm-btn-pri--red { background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.28);color:#f87171; }
.nsm-btn-pri--red:hover { background:rgba(239,68,68,.24); }

/* Status screens */
.nsm-status-ic {
  width:58px;height:58px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  margin:26px auto 12px;
}
.nsm-status-ic--yellow { background:rgba(251,191,36,.14);color:#fbbf24; }
.nsm-status-ic--green  { background:rgba(52,211,153,.14);color:#34d399; }
.nsm-status-ic--red    { background:rgba(239,68,68,.14); color:#f87171; }
.nsm-status-ttl { font:700 14.5px/1.2 var(--font);color:var(--text);text-align:center;margin-bottom:8px;padding:0 20px; }
.nsm-status-sub { font:400 12px/1.6 var(--b);color:var(--text2);text-align:center;padding:0 22px 16px; }

/* Admin badge no nav */
.nsm-admin-badge {
  display:inline-flex;align-items:center;justify-content:center;
  width:16px;height:16px;border-radius:50%;
  background:#ef4444;color:#fff;
  font:700 9px/1 var(--b);margin-left:auto;
}

/* Admin list */
.nsm-empty { font:400 13px/1.5 var(--b);color:var(--text2);text-align:center;padding:40px 20px; }
.nsm-req {
  padding:13px;border-radius:11px;
  border:1px solid var(--border2);
  background:rgba(255,255,255,.025);margin-bottom:9px;
}
.nsm-req-top { display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px; }
.nsm-req-who { font:600 12px/1.3 var(--font);color:var(--text); }
.nsm-req-when { font:400 10.5px/1 var(--b);color:var(--text2);margin-top:2px; }
.nsm-req-motivo { font:400 11.5px/1.5 var(--b);color:var(--text2);margin-bottom:9px;font-style:italic; }
.nsm-req-hist {
  padding:8px 10px;border-radius:8px;
  background:rgba(255,255,255,.035);border:1px solid var(--border2);margin-bottom:9px;
}
.nsm-req-hist-ttl { font:600 10px/1 var(--b);color:rgba(255,255,255,.32);text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px; }
.nsm-req-hist-names { font:400 11px/1.6 var(--b);color:var(--text2); }
.nsm-req-acts { display:flex;gap:7px;justify-content:flex-end; }
.nsm-req-approve {
  padding:7px 14px;border-radius:8px;
  background:rgba(52,211,153,.13);border:1px solid rgba(52,211,153,.28);
  color:#34d399;font:600 11.5px/1 var(--b);cursor:pointer;transition:background .15s;
}
.nsm-req-approve:hover { background:rgba(52,211,153,.22); }
.nsm-req-reject {
  padding:7px 14px;border-radius:8px;
  background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.24);
  color:#f87171;font:600 11.5px/1 var(--b);cursor:pointer;transition:background .15s;
}
.nsm-req-reject:hover { background:rgba(239,68,68,.2); }
.nsm-req-badge {
  display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;
  font:600 10px/1.4 var(--b);
}
.nsm-req-badge--pend { background:rgba(251,191,36,.14);color:#fbbf24; }
.nsm-req-badge--apro { background:rgba(52,211,153,.12);color:#34d399; }
.nsm-req-badge--reje { background:rgba(239,68,68,.12);color:#f87171; }

/* cfgRounds pulse (adicionar rodadas) */
@keyframes nsmPulse {
  0%,100% { outline:2px solid transparent; }
  50% { outline:2px solid rgba(0,171,169,.6); }
}
.nsm-pulse { animation:nsmPulse 1s ease-in-out 5;border-radius:8px; }

/* ev-em-sec title */
.ev-em-sec-ttl { font:700 12px/1 var(--font);color:var(--text);margin-bottom:14px; }

/* Contagem ao lado do título da guia Histórico. Definida junto do título de
   propósito: classe sem regra herda o tamanho do pai e sai maior que o próprio
   título — já aconteceu neste projeto. */
.ev-hist-sec-count {
  font:600 10.5px/1 var(--b);color:var(--text2);
  margin-left:8px;letter-spacing:.02em;
}

/* Config footer auto-save note */
.ev-cfg-autosave {
  display:flex;align-items:center;gap:5px;
  font:400 11px/1 var(--b);color:rgba(52,211,153,.65);
}

/* ── Tela de descanso: evento info ── */

/* ══════════════════════════════════════
   SISTEMA DE EVENTOS — MODAIS
   ══════════════════════════════════════ */

#evDeleteEventModal { z-index:600; }
.ev-modal-ov {
  position:fixed;inset:0;z-index:201;
  background:rgba(0,12,10,.72);
  backdrop-filter:blur(12px) saturate(130%);-webkit-backdrop-filter:blur(12px) saturate(130%);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  opacity:0;pointer-events:none;
  transition:opacity .28s ease;
}
.ev-modal-ov.vis { opacity:1;pointer-events:all; }

.ev-modal-box {
  background:var(--bgcard2);
  border:1px solid var(--border2);
  border-radius:24px;
  width:100%;max-width:460px;
  max-height:calc(100vh - 40px);
  overflow:hidden;
  display:flex;flex-direction:column;
  box-shadow:0 32px 80px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06);
  transform:scale(.93) translateY(12px);
  transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .28s;
  opacity:0;
}
.ev-modal-ov.vis .ev-modal-box { transform:none;opacity:1; }
.ev-modal-box--wide { max-width:540px; }

/* Header do modal */
.ev-mhd {
  display:flex;align-items:center;gap:14px;
  padding:20px 20px 16px;
  background:linear-gradient(145deg,#001e1c,#004a48 60%,#005e5c);
  flex-shrink:0;
  border-bottom:1px solid rgba(0,171,169,.18);
}
.ev-mhd-ic {
  width:38px;height:38px;border-radius:12px;
  background:rgba(0,171,169,.18);
  border:1px solid rgba(0,171,169,.32);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.ev-mhd-ic svg { stroke:rgba(255,255,255,.9); }
.ev-mhd-ic--teal { background:rgba(0,171,169,.24);border-color:rgba(0,171,169,.5); }
.ev-mhd-ic--gold { background:rgba(212,168,50,.18);border-color:rgba(212,168,50,.4); }
.ev-mhd-ic--gold svg { stroke:#d4b845; }
.ev-mhd-txt { flex:1; }
.ev-mhd-title { font:700 15px/1 var(--font);color:#fff;letter-spacing:-.01em; }
.ev-mhd-sub { font:400 11px/1.3 var(--b);color:rgba(255,255,255,.52);margin-top:4px; }
.ev-mhd-close {
  width:28px;height:28px;border-radius:50%;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.62);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .18s;flex-shrink:0;padding:0;
}
.ev-mhd-close:hover { background:rgba(255,255,255,.18);color:#fff; }

/* Corpo do form */
.ev-mform {
  flex:1;overflow-y:auto;
  padding:20px 20px 4px;
  display:flex;flex-direction:column;gap:16px;
  scrollbar-width:thin;scrollbar-color:var(--border) transparent;
}
.ev-mform::-webkit-scrollbar { width:3px; }
.ev-mform::-webkit-scrollbar-thumb { background:var(--border);border-radius:3px; }
.ev-field { display:flex;flex-direction:column;gap:7px; }
.ev-flbl { font:600 11px/1 var(--b);color:var(--text2);text-transform:uppercase;letter-spacing:.07em; }
.ev-flbl-opt { font-weight:400;text-transform:none;opacity:.7;letter-spacing:0; }
.ev-flbl-req { color:#e06060;font-weight:700;margin-left:2px; }
.ev-input {
  width:100%;padding:11px 14px;
  background:rgba(255,255,255,.05);
  border:1.5px solid rgba(0,171,169,.22);
  border-radius:11px;
  color:var(--text);
  font:400 13px var(--b);
  outline:none;
  transition:border-color .2s,background .2s;
  appearance:none;
  color-scheme:dark;
}
.ev-input:focus { border-color:rgba(0,171,169,.6);background:rgba(0,171,169,.07); }
.ev-input::placeholder { color:var(--text3); }
.ev-input-sm { padding:9px 12px;font-size:12px;border-radius:9px; }
select.ev-input { cursor:pointer; }
select.ev-input option { background:#0d1c17;color:#fff; }.ev-pass-wrap { position:relative;display:flex;align-items:center; }
.ev-pass-wrap .ev-input { padding-right:40px; }
.ev-eye-btn {
  position:absolute;right:11px;
  background:transparent;border:none;
  color:var(--text3);cursor:pointer;padding:4px;
  display:flex;align-items:center;
  transition:color .18s;
}
.ev-eye-btn:hover { color:var(--text2); }
/* ── Inscrições Stack ── */
.ev-ins-stack { display:flex;flex-direction:column;gap:8px; }
.ev-ins-hd-row { display:flex;align-items:center;gap:6px; }
.ev-ins-badge { display:inline-flex;align-items:center;font:600 10px var(--b);padding:2px 7px;border-radius:99px;white-space:nowrap;transition:opacity .2s; }
.ev-ins-badge--qr  { background:rgba(45,212,191,.1);color:#2dd4bf;border:1px solid rgba(45,212,191,.22); }
.ev-ins-badge--sat { background:rgba(168,85,247,.1);color:#c084fc;border:1px solid rgba(168,85,247,.22); }
.ev-ins-badge--period { background:rgba(245,158,11,.1);color:#f59e0b;border:1px solid rgba(245,158,11,.22); }
.ev-ins-info { font:400 11px/1.5 var(--b);color:var(--text3);margin:0; }
.ev-ins-card { cursor:default; }
.ev-ins-card:not(.is-enabled):hover { border-color:rgba(255,255,255,.13);transition:border-color .2s; }
/* QR Sorteio — teal */
#evEmQRSorteioCard.is-enabled { border-color:rgba(45,212,191,.45);box-shadow:0 0 0 3px rgba(45,212,191,.06); }
#evEmQRSorteioCard.is-enabled .ev-sy-icon { background:rgba(45,212,191,.12);border-color:rgba(45,212,191,.35); }
#evEmQRSorteioCard.is-enabled .ev-sy-icon svg { stroke:#2dd4bf; }
/* Pesquisa de Satisfação — purple */
#evEmSatisfacaoCard.is-enabled { border-color:rgba(168,85,247,.45);box-shadow:0 0 0 3px rgba(168,85,247,.06); }
#evEmSatisfacaoCard.is-enabled .ev-sy-icon { background:rgba(168,85,247,.12);border-color:rgba(168,85,247,.35); }
#evEmSatisfacaoCard.is-enabled .ev-sy-icon svg { stroke:#a855f7; }
/* Pré-inscrição — amber */
#evEmPeriodSection.is-enabled { border-color:rgba(245,158,11,.45);box-shadow:0 0 0 3px rgba(245,158,11,.06); }
#evEmPeriodSection.is-enabled .ev-sy-icon { background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.35); }
#evEmPeriodSection.is-enabled .ev-sy-icon svg { stroke:#f59e0b; }

/* ── Sympla Integration Card ── */
.ev-sy-card {
  border: 1.5px solid var(--border);
  border-radius: 14px;
  background: var(--bgcard);
  overflow: hidden;
  transition: border-color .25s var(--ee), box-shadow .25s var(--ee);
}
.ev-sy-card.is-enabled {
  border-color: rgba(0,171,169,.5);
  box-shadow: 0 0 0 3px rgba(0,171,169,.07);
}
.ev-sy-hd {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px;
}
.ev-sy-brand { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.ev-sy-icon {
  width: 32px; height: 32px; border-radius: 9px; flex-shrink: 0;
  background: rgba(255,255,255,.05);
  border: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  transition: background .25s var(--ee), border-color .25s var(--ee);
}
.ev-sy-card.is-enabled .ev-sy-icon {
  background: rgba(0,171,169,.15);
  border-color: rgba(0,171,169,.4);
}
.ev-sy-icon svg { stroke: var(--text3); transition: stroke .25s; }
.ev-sy-card.is-enabled .ev-sy-icon svg { stroke: #2dd4bf; }
.ev-sy-brand-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ev-sy-title { font: 600 13px var(--b); color: var(--text); }
.ev-sy-subtitle { font: 400 11px var(--b); color: var(--text3); }
/* body: grid-row animation — expande suavemente */
.ev-sy-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .3s var(--ee);
}
.ev-sy-card.is-enabled .ev-sy-body { grid-template-rows: 1fr; }
.ev-sy-body-inner {
  overflow: hidden;
  display: flex; flex-direction: column; gap: 8px;
  padding: 0 14px;
  transition: padding-bottom .3s var(--ee);
}
.ev-sy-card.is-enabled .ev-sy-body-inner { padding-bottom: 14px; }
/* input com ícone */
.ev-sy-input-wrap { position: relative; }
.ev-sy-input-ic {
  position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
  stroke: var(--text3); pointer-events: none;
}
.ev-sy-input-wrap .ev-input { padding-left: 36px; }
/* checkin row */
.ev-sy-checkin-row {
  border-top: 1px solid var(--border) !important;
  padding-top: 8px !important; margin-top: 2px;
}
/* ── Sympla preview (mantido) ── */
.ev-sympla-hd svg { stroke: #2dd4bf; opacity: .8; }
.sy-prev-ok-body { display:flex; flex-direction:column; gap:2px; }
/* Badge Sincronizado */
.ev-sy-sync-badge { display:inline-flex; align-items:center; gap:3px; font:500 10px var(--b); color:#2dd4bf; margin-top:1px; }
.ev-sy-sync-badge svg { stroke:#2dd4bf; flex-shrink:0; }

/* ── Data + Hora separados ── */
.ev-dt-row  { display:flex; gap:8px; }
.ev-dt-date { flex:1.4; }
.ev-dt-time { flex:1; min-width:0; }

/* ── Admin/Master — melhorias Scale 4 ── */
/* Nav separadores e grupos */
.ev-nav-sep { height:1px; background:var(--border); margin:6px 4px; }
.ev-nav-grp { font:700 9px var(--b); text-transform:uppercase; letter-spacing:.1em; color:var(--text3); padding:2px 10px 4px; display:block; }

/* Header das seções admin */
.ev-admin-sec-hd { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.ev-admin-sec-hd-info { display:flex; flex-direction:column; gap:2px; }
.ev-admin-sec-title { font:700 11px var(--b); text-transform:uppercase; letter-spacing:.08em; color:var(--text2); }
.ev-admin-sec-count { font:400 10px var(--b); color:var(--text3); }

/* Formulário em grid 2 colunas */
.ev-admin-add-form { background:rgba(0,171,169,.04); border:1px solid var(--border2); border-radius:10px; padding:10px; display:flex; flex-direction:column; gap:8px; }
.ev-admin-form-title { font:700 10px var(--b); text-transform:uppercase; letter-spacing:.09em; color:#2dd4bf; }
.ev-admin-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }

/* Contexto de sorteios */
.ev-sort-ctx { margin-bottom:10px; }
.ev-sort-ctx-items { display:flex; gap:8px; }
.ev-sort-ctx-item { display:flex; flex-direction:column; align-items:center; gap:2px; background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:9px; padding:8px 16px; flex:1; }
.ev-sort-ctx-n { font:800 18px/1 var(--font); color:var(--text); letter-spacing:-.02em; }
.ev-sort-ctx-l { font:500 10px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.07em; }

/* Footer note */
.ev-ftr-note { display:flex; align-items:center; gap:5px; font:400 11px var(--b); color:var(--text3); }
.ev-ftr-note svg { stroke:var(--text3); flex-shrink:0; }

/* ── Ao Vivo dashboard cards v2 ── */
.ev-dash2 {
  display:flex; flex-direction:column; gap:10px;
  background:rgba(255,255,255,.04); border:1px solid var(--border);
  border-radius:14px; padding:14px; transition:border-color .2s;
  animation:fadeInUp .25s var(--ee) both;
}
.ev-dash2--local { border-color:rgba(0,171,169,.4); background:rgba(0,171,169,.06); }
.ev-dash2--warn  { border-color:rgba(251,146,60,.4); background:rgba(251,146,60,.04); }
.ev-dash2-hd { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.ev-dash2-nome-wrap { flex:1; min-width:0; }
.ev-dash2-nome { font:700 14px/1.3 var(--b); color:var(--text); margin-bottom:3px; }
.ev-dash2-sub  { font:400 11px var(--b); color:var(--text3); }
.ev-dash2-tags { display:flex; gap:5px; flex-wrap:wrap; }
.ev-dash-tag--pre    { background:rgba(167,139,250,.1); border-color:rgba(167,139,250,.25); color:#a78bfa; }
.ev-dash-tag--orange { background:rgba(251,146,60,.15); border-color:rgba(251,146,60,.35); color:#fb923c; }
.ev-dash-tag--amber  { background:rgba(251,191,36,.12); border-color:rgba(251,191,36,.28); color:#fbbf24; }
.ev-dash2-metrics { display:flex; gap:6px; }
.ev-dash2-metric {
  display:flex; flex-direction:column; align-items:center; gap:2px;
  background:rgba(255,255,255,.05); border:1px solid var(--border);
  border-radius:9px; padding:8px 12px; flex:1;
}
.ev-dash2-metric--sympla { background:rgba(45,212,191,.07); border-color:rgba(45,212,191,.2); }
.ev-dash2-metric--pre    { background:rgba(167,139,250,.07); border-color:rgba(167,139,250,.2); }
.ev-dash2-metric--total  { background:rgba(0,171,169,.08); border-color:rgba(0,171,169,.25); }
.ev-dash2-metric-n { font:800 18px/1 var(--font); color:var(--text); letter-spacing:-.02em; }
.ev-dash2-metric--sympla .ev-dash2-metric-n { color:#2dd4bf; }
.ev-dash2-metric--pre    .ev-dash2-metric-n { color:#a78bfa; }
.ev-dash2-metric--total  .ev-dash2-metric-n { color:var(--accent); }
.ev-dash2-metric-l { font:500 9px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.06em; }
.ev-dash2-prog-wrap { display:flex; flex-direction:column; gap:4px; }
.ev-dash2-prog { height:5px; background:rgba(255,255,255,.07); border-radius:999px; overflow:hidden; }
.ev-dash2-prog-fill { height:100%; background:linear-gradient(90deg,var(--accent),#2dd4bf); transition:width .6s ease; }
.ev-dash2-prog-lbl { font:500 10px var(--b); color:var(--text3); text-align:right; }
.ev-dash2-info-row { display:flex; flex-wrap:wrap; gap:8px; }
.ev-dash2-info-item { display:inline-flex; align-items:center; gap:4px; font:400 11px var(--b); color:var(--text3); }
.ev-dash2-info-item svg { stroke:currentColor; flex-shrink:0; }
.ev-dash2-info-item--warn  { color:#fb923c; }
.ev-dash2-info-item--today { color:#22c55e; font-weight:600; }
.ev-dash2-recent { display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding-top:6px; border-top:1px solid var(--border); }
.ev-dash2-recent-lbl { font:500 10px var(--b); color:var(--text3); white-space:nowrap; }
.ev-dash2-recent-item { display:inline-flex; align-items:center; gap:4px; font:400 11px var(--b); color:var(--text2); }
.ev-dash2-recent-av { width:18px; height:18px; border-radius:50%; background:rgba(0,171,169,.15); border:1px solid rgba(0,171,169,.3); font:600 9px var(--b); color:var(--accent); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ev-dash2-recent-time { font:400 10px var(--b); color:var(--text3); }
.ev-dash2-more { font:500 10px var(--b); color:var(--text3); background:rgba(255,255,255,.07); border:1px solid var(--border); border-radius:6px; padding:1px 6px; }
.ev-dash2-pre-conf { display:flex; align-items:center; gap:5px; font:500 11px var(--b); color:#4ade80; padding:6px 0; border-top:1px solid var(--border); flex-wrap:wrap; }
.ev-dash2-pre-conf svg { stroke:#4ade80; flex-shrink:0; }
.ev-dash2-pre-prog { flex:1; height:4px; background:rgba(255,255,255,.07); border-radius:999px; overflow:hidden; min-width:60px; }
.ev-dash2-pre-fill { height:100%; background:linear-gradient(90deg,#22c55e,#2dd4bf); transition:width .6s ease; }

/* ── Ao Vivo — Scale 4 ── */
/* Ritmo */
.ev-dash2-metric--rate { background:rgba(255,255,255,.03); border-color:rgba(255,255,255,.1); }
.ev-dash2-rate--up   { color:#4ade80; }
.ev-dash2-rate--down { color:#fb923c; }
.ev-dash2-rate--flat { color:var(--text2); }
/* Barra de progresso com horários */
.ev-dash2-prog-times { display:flex; align-items:center; justify-content:space-between; font:400 10px var(--b); color:var(--text3); }
/* Gráfico por hora */
.ev-dash2-chart { padding:8px 0 2px; border-top:1px solid var(--border); }
.ev-dash2-chart-lbl { font:500 10px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.06em; margin-bottom:5px; }
/* Comparativo histórico */
.ev-dash2-hist { display:flex; align-items:center; gap:5px; font:400 11px var(--b); color:var(--text3); padding:6px 0; border-top:1px solid var(--border); }
.ev-dash2-hist svg { flex-shrink:0; stroke:currentColor; }
.ev-dash2-hist strong { font-weight:700; }
.ev-dash2-hist--above { color:#4ade80; }
.ev-dash2-hist--above svg { stroke:#4ade80; }
.ev-dash2-hist--below { color:#fb923c; }
.ev-dash2-hist--below svg { stroke:#fb923c; }
/* Tags adicionais */
.ev-dash-tag--red  { background:rgba(239,68,68,.15); border-color:rgba(239,68,68,.35); color:#ef4444; }

/* ══ Ao Vivo v2 — proposta (ev-live2-*) ══ */
.ev-live2-card { background:rgba(20,42,32,.82);border:1px solid rgba(0,171,169,.16);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;gap:0;margin-bottom:10px; }
.ev-live2-card--local   { border-color:rgba(0,171,169,.35);box-shadow:0 0 0 1px rgba(0,171,169,.1); }
.ev-live2-card--warn    { border-color:rgba(251,146,60,.3); }
.ev-live2-card--closing { border-color:rgba(239,68,68,.4); }
/* Header */
.ev-live2-hd { display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border-bottom:1px solid rgba(0,171,169,.1); }
.ev-live2-hd-info { flex:1;min-width:0; }
.ev-live2-nome { font:600 13px/1.2 var(--font);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.ev-live2-meta { font:400 10px var(--b);color:var(--text3);margin-top:2px; }
/* Tags row */
.ev-live2-tags { display:flex;gap:4px;flex-wrap:wrap;padding:7px 13px 0; }
/* Phase strip */
.ev-live2-phase { display:flex;align-items:center;gap:7px;padding:7px 13px;font:500 11px var(--b);color:var(--green); }
.ev-live2-phase--soon { color:var(--amber); }
.ev-live2-phase-dot { width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0; }
.ev-live2-phase-dot--pulse { animation:livePulse 1.5s ease-in-out infinite; }
@keyframes livePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}
.ev-live2-phase-lbl { font-weight:600; }
.ev-live2-phase-since { font:400 10px var(--b);color:var(--text3);margin-left:auto; }
.ev-live2-phase-close { font:500 10px var(--b);color:var(--orange);margin-left:auto; }
/* Pre-inscription block */
.ev-live2-pre { margin:8px 13px 0;border:1px solid rgba(167,139,250,.2);border-radius:9px;overflow:hidden; }
.ev-live2-pre-hd { display:flex;align-items:center;gap:8px;padding:8px 10px;background:rgba(167,139,250,.06);border-bottom:1px solid rgba(167,139,250,.12); }
.ev-live2-pre-icon { width:26px;height:26px;border-radius:7px;background:rgba(167,139,250,.15);border:1px solid rgba(167,139,250,.25);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#a78bfa; }
.ev-live2-pre-icon svg { stroke:currentColor; }
.ev-live2-pre-info { flex:1;min-width:0; }
.ev-live2-pre-title { font:600 11px var(--b);color:var(--text); }
.ev-live2-pre-sub   { font:400 10px var(--b);color:var(--text3);margin-top:1px; }
.ev-live2-pre-body  { padding:7px 10px;display:flex;flex-direction:column;gap:4px; }
.ev-live2-pre-row   { display:flex;align-items:center;justify-content:space-between;font:400 11px var(--b);color:var(--text2); }
.ev-live2-pre-row span:last-child { font-weight:600; }
/* KPI grid */
.ev-live2-kpis { display:grid;grid-template-columns:repeat(4,1fr);margin:8px 13px 0;border:1px solid rgba(0,171,169,.12);border-radius:9px;overflow:hidden; }
.ev-live2-kpis--3 { grid-template-columns:repeat(3,1fr); }
.ev-live2-kpi { display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-right:1px solid rgba(0,171,169,.1); }
.ev-live2-kpi:last-child { border-right:none; }
.ev-live2-kpi-n   { font:800 20px/1 var(--font);letter-spacing:-.04em;color:var(--text); }
.ev-live2-kpi-l   { font:500 8px var(--b);color:var(--text3);text-transform:uppercase;letter-spacing:.07em;text-align:center; }
.ev-live2-kpi-sub { font:600 10px var(--b);margin-top:1px; }
.ev-live2-kpi--pre   .ev-live2-kpi-n { color:#a78bfa; }
.ev-live2-kpi--green .ev-live2-kpi-n { color:#4ade80; }
.ev-live2-kpi--blue  .ev-live2-kpi-n { color:#60a5fa; }
.ev-live2-kpi--sym   .ev-live2-kpi-n { color:#2dd4bf; }
.ev-live2-kpi--total .ev-live2-kpi-n { color:var(--accent); }
/* Funil */
.ev-live2-funil { display:flex;align-items:center;gap:6px;margin:8px 13px 0;padding:8px 10px;background:rgba(255,255,255,.03);border:1px solid rgba(0,171,169,.1);border-radius:9px; }
.ev-live2-funil-step { display:flex;flex-direction:column;align-items:center;gap:2px;flex:1; }
.ev-live2-funil-n    { font:800 16px/1 var(--font);letter-spacing:-.03em; }
.ev-live2-funil-l    { font:500 9px var(--b);color:var(--text3);text-align:center;text-transform:uppercase;letter-spacing:.06em; }
.ev-live2-funil-rate { font:600 9px var(--b);margin-top:1px; }
.ev-live2-funil-arrow{ font-size:14px;color:var(--text3);flex-shrink:0; }
.ev-live2-taxa { display:flex;align-items:center;gap:5px;margin:5px 13px 0;padding:6px 10px;background:rgba(167,139,250,.06);border:1px solid rgba(167,139,250,.15);border-radius:7px;font:400 11px var(--b);color:var(--text2);flex-wrap:wrap; }
.ev-live2-taxa svg { flex-shrink:0;stroke:#a78bfa; }
.ev-live2-taxa strong { font-weight:700;color:#a78bfa; }
/* Fora do sorteio (no-shows de pré-inscrição) */
.ev-live2-ns { margin:5px 13px 0;background:rgba(248,113,113,.05);border:1px solid rgba(248,113,113,.16);border-radius:7px;overflow:hidden;transition:border-color .3s,background .3s; }
.ev-live2-ns--drop { animation:evNsFlash 1.2s ease; }
@keyframes evNsFlash { 0% { background:rgba(74,222,128,.14);border-color:rgba(74,222,128,.45); } 100% { background:rgba(248,113,113,.05);border-color:rgba(248,113,113,.16); } }
.ev-live2-ns-hd { display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;background:none;border:none;cursor:pointer;font:400 11px var(--b);color:var(--text2);text-align:left; }
.ev-live2-ns-ic { width:18px;height:18px;border-radius:5px;background:rgba(248,113,113,.12);color:#f87171;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.ev-live2-ns-ic--ok { background:rgba(74,222,128,.12);color:#4ade80; }
.ev-live2-ns-txt { flex:1; }
.ev-live2-ns-txt strong { font-weight:700;color:#f87171; }
.ev-live2-ns-sub { opacity:.65; }
.ev-live2-ns-chev { flex-shrink:0;color:var(--text3);transition:transform .2s; }
.ev-live2-ns-list { display:flex;flex-direction:column;gap:3px;padding:2px 10px 8px; }
.ev-live2-ns-row { display:flex;align-items:center;gap:7px;padding:4px 7px;background:rgba(255,255,255,.025);border:1px solid rgba(248,113,113,.1);border-radius:6px; }
.ev-live2-ns-av { width:20px;height:20px;border-radius:50%;background:rgba(248,113,113,.14);border:1px solid rgba(248,113,113,.22);display:flex;align-items:center;justify-content:center;font:700 9px var(--font);color:#f87171;flex-shrink:0; }
.ev-live2-ns-name { font:500 11px var(--b);color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.ev-live2-ns-time { font:400 10px var(--b);color:var(--text3);flex-shrink:0; }
.ev-live2-ns-hint { font:400 9.5px var(--b);color:var(--text3);padding:3px 2px 0;opacity:.8; }
.ev-live2-ns--ok { display:flex;align-items:center;gap:6px;padding:6px 10px;font:400 11px var(--b);color:#4ade80;background:rgba(74,222,128,.05);border-color:rgba(74,222,128,.16); }
/* Feed */
.ev-live2-feed { margin:8px 13px 0; }
.ev-live2-feed-hd { font:700 9px var(--b);text-transform:uppercase;letter-spacing:.1em;color:var(--text3);margin-bottom:5px; }
.ev-live2-feed-list { display:flex;flex-direction:column;gap:4px; }
.ev-live2-feed-row { display:flex;align-items:center;gap:7px;padding:5px 7px;background:rgba(255,255,255,.03);border:1px solid rgba(0,171,169,.1);border-radius:7px; }
.ev-live2-feed-row--new { border-color:rgba(0,171,169,.3);background:rgba(0,171,169,.06); }
.ev-live2-feed-av { width:22px;height:22px;border-radius:50%;background:rgba(0,171,169,.2);border:1px solid rgba(0,171,169,.3);display:flex;align-items:center;justify-content:center;font:700 9px var(--font);color:var(--accent2);flex-shrink:0; }
.ev-live2-feed-name { font:500 11px var(--b);color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.ev-live2-feed-time { font:400 10px var(--b);color:var(--text3);flex-shrink:0; }
.ev-live2-more { font:400 10px var(--b);color:var(--text3);display:block;text-align:center;padding:4px 0; }

/* ══ Histórico v2 — redesign (ev-hist2-*) ══ */
.ev-hist2-card { background:rgba(255,255,255,.03);border:1px solid rgba(0,171,169,.14);border-radius:12px;overflow:hidden;transition:border-color .18s,background .18s; }
.ev-hist2-card:hover { border-color:rgba(0,171,169,.32);background:rgba(0,171,169,.03); }
.ev-hist2-hd { display:flex;align-items:flex-start;gap:10px;padding:11px 13px 10px; }
.ev-hist2-av { width:34px;height:34px;border-radius:9px;background:rgba(0,171,169,.15);border:1px solid rgba(0,171,169,.25);display:flex;align-items:center;justify-content:center;font:700 13px var(--font);color:var(--accent2);flex-shrink:0;margin-top:1px; }
.ev-hist2-info { flex:1;min-width:0; }
.ev-hist2-nome { font:600 13px var(--font);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em; }
.ev-hist2-meta { font:400 11px var(--b);color:var(--text3);margin-top:2px; }
.ev-hist2-tags { display:flex;gap:4px;flex-wrap:wrap;margin-top:5px; }
.ev-hist2-body { padding:0 13px 11px;border-top:1px solid rgba(0,171,169,.09);display:flex;flex-direction:column;gap:7px; }
.ev-hist2-stats { display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:9px; }
.ev-hist2-stat { display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;background:rgba(255,255,255,.04);border-radius:8px; }
.ev-hist2-stat-n { font:700 15px/1 var(--font);letter-spacing:-.03em; }
.ev-hist2-stat-l { font:600 9px var(--b);color:var(--text3);text-transform:uppercase;letter-spacing:.06em; }
.ev-hist2-comp { display:flex;align-items:center;gap:6px;padding:6px 9px;background:rgba(167,139,250,.06);border:1px solid rgba(167,139,250,.18);border-radius:8px; }
.ev-hist2-comp svg { stroke:#a78bfa;flex-shrink:0; }
.ev-hist2-comp-txt { font:400 11px var(--b);color:var(--text2);flex:1; }
.ev-hist2-comp-n { font:700 13px var(--b);color:#a78bfa; }
.ev-hist2-comp-sub { font:400 9px var(--b);color:var(--text3); }
.ev-hist2-sat { display:flex;align-items:center;gap:6px;padding:6px 9px;background:rgba(251,191,36,.06);border:1px solid rgba(251,191,36,.15);border-radius:8px; }
.ev-hist2-sat-n { font:700 14px/1 var(--font);color:var(--amber); }
.ev-hist2-sat-stars { font-size:10px;color:var(--amber);letter-spacing:2px; }
.ev-hist2-sat-lbl { font:400 10px var(--b);color:var(--text3);flex:1; }
.ev-hist2-no-data { font:400 11px var(--b);color:var(--text3);padding:4px 1px;font-style:italic; }
.ev-hist2-global { display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(0,171,169,.18);border-radius:11px;overflow:hidden;margin-bottom:12px;background:rgba(0,171,169,.03); }
.ev-hist2-global-cell { display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 6px;border-right:1px solid rgba(0,171,169,.12); }
.ev-hist2-global-cell:last-child { border-right:none; }
.ev-hist2-global-n { font:800 22px/1 var(--font);color:var(--accent);letter-spacing:-.04em; }
.ev-hist2-global-sub { font:600 9px var(--b);margin-top:1px; }
.ev-hist2-global-l { font:500 8px var(--b);color:var(--text3);text-transform:uppercase;letter-spacing:.07em;text-align:center; }
/* Filter bar */
.ev-base-filter-bar { display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px; }
.ev-base-fchip { padding:4px 10px;border-radius:99px;font:500 10.5px var(--b);cursor:pointer;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:var(--text3);transition:all .15s;white-space:nowrap; }
.ev-base-fchip:hover { background:rgba(255,255,255,.08);color:var(--text2); }
.ev-base-fchip--on { background:rgba(0,171,169,.13);border-color:rgba(0,171,169,.35);color:var(--accent2);font-weight:600; }
.ev-base-list { display:flex;flex-direction:column;gap:10px; }

/* ══ Histórico v3 — Card Aberto (ev-p2-*) ══ */
.ev-p2-card { border-radius:13px;border:1px solid rgba(0,171,169,.16);background:rgba(5,18,12,.94);overflow:hidden;transition:border-color .18s; }
.ev-p2-card:hover { border-color:rgba(0,171,169,.32); }
.ev-p2-card--active { border-color:rgba(74,222,128,.32); }
/* Cabeçalho */
.ev-p2-hd { display:flex;align-items:flex-start;gap:10px;padding:12px 14px 10px;border-bottom:1px solid rgba(0,171,169,.08); }
.ev-p2-av { width:38px;height:38px;border-radius:10px;background:rgba(0,171,169,.16);border:1px solid rgba(0,171,169,.25);display:flex;align-items:center;justify-content:center;font:700 14px var(--font);color:var(--accent2);flex-shrink:0;margin-top:1px; }
.ev-p2-av--active { background:rgba(74,222,128,.14);border-color:rgba(74,222,128,.35);color:#4ade80; }
.ev-p2-hd-info { flex:1;min-width:0; }
.ev-p2-nome { font:700 14px/1.2 var(--font);color:var(--text);letter-spacing:-.01em;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.ev-p2-meta { font:400 10.5px var(--b);color:var(--text3);margin-bottom:6px; }
.ev-p2-tags { display:flex;gap:4px;flex-wrap:wrap; }
/* Grade de KPIs — 5 colunas horizontais */
.ev-p2-kpis { display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:rgba(0,171,169,.08);border-bottom:1px solid rgba(0,171,169,.08); }
.ev-p2-kpi { display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;background:rgba(5,18,12,.94); }
.ev-p2-kpi-n { font:800 20px/1 var(--font);letter-spacing:-.04em; }
.ev-p2-kpi-l { font:500 8px var(--b);color:var(--text3);text-transform:uppercase;letter-spacing:.06em;text-align:center; }
/* Métricas: comparecimento + satisfação */
.ev-p2-metrics { display:flex;flex-direction:column;gap:0;border-bottom:1px solid rgba(0,171,169,.08); }
.ev-p2-metric { display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid rgba(255,255,255,.04); }
.ev-p2-metric:last-child { border-bottom:none; }
.ev-p2-metric-icon { width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.ev-p2-metric-body { flex:1;min-width:0; }
.ev-p2-metric-lbl { font:400 10px var(--b);color:var(--text2); }
.ev-p2-prog { height:4px;background:rgba(255,255,255,.07);border-radius:99px;overflow:hidden;margin-top:4px; }
.ev-p2-prog-fill { height:100%;border-radius:99px;background:linear-gradient(90deg,#a78bfa,#c4b5fd); }
.ev-p2-metric-pct { font:800 18px/1 var(--font);flex-shrink:0; }
.ev-p2-sat-stars { font-size:11px;color:#fbbf24;letter-spacing:2px; }
/* Faixa de origem */
.ev-p2-src { display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:7px 14px;background:rgba(255,255,255,.015);border-bottom:1px solid rgba(0,171,169,.07); }
.ev-p2-src-total { font:400 10px var(--b);color:var(--text3);margin-left:auto; }
/* Botões */
.ev-p2-actions { display:flex;gap:6px;padding:10px 12px;flex-wrap:wrap;align-items:center; }
.ev-p2-btn { display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:8px;font:600 11px var(--font);border:1px solid;cursor:pointer;transition:all .15s;white-space:nowrap;line-height:1; }
.ev-p2-btn svg { flex-shrink:0; }
.ev-p2-btn--teal   { background:rgba(0,171,169,.1);border-color:rgba(0,171,169,.3);color:var(--accent2); }
.ev-p2-btn--teal:hover { background:rgba(0,171,169,.22); }
.ev-p2-btn--purple { background:rgba(167,139,250,.1);border-color:rgba(167,139,250,.3);color:#a78bfa; }
.ev-p2-btn--purple:hover { background:rgba(167,139,250,.2); }
.ev-p2-btn--amber  { background:rgba(251,191,36,.1);border-color:rgba(251,191,36,.28);color:#fbbf24; }
.ev-p2-btn--amber:hover { background:rgba(251,191,36,.2); }
.ev-p2-btn--green  { background:rgba(74,222,128,.1);border-color:rgba(74,222,128,.3);color:#4ade80; }
.ev-p2-btn--green:hover { background:rgba(74,222,128,.2); }
.ev-p2-btn--del    { background:transparent;border-color:rgba(248,113,113,.2);color:rgba(248,113,113,.55);margin-left:auto; }
.ev-p2-btn--del:hover { background:rgba(248,113,113,.08);color:#f87171;border-color:rgba(248,113,113,.4); }
/* Lista de inscrições expandida */
.ev-dash2-recent--expanded { flex-direction:column; align-items:stretch; gap:6px; }
.ev-dash2-recent-grid { display:flex; flex-direction:column; gap:4px; }
.ev-dash2-recent-row { display:flex; align-items:center; gap:5px; }
.ev-dash2-recent-name { font:400 11px var(--b); color:var(--text2); flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ev-dash2-recent-badge { font:600 8px var(--b); letter-spacing:.04em; padding:1px 4px; border-radius:4px; border:1px solid; flex-shrink:0; }
.ev-dash2-recent-badge--qr  { color:#00aba9; background:rgba(0,171,169,.1); border-color:rgba(0,171,169,.25); }
.ev-dash2-recent-badge--sym { color:#2dd4bf; background:rgba(45,212,191,.1); border-color:rgba(45,212,191,.25); }
.ev-dash2-recent-badge--pre { color:#a78bfa; background:rgba(167,139,250,.1); border-color:rgba(167,139,250,.25); }
/* Animações */
.ev-dash2-tag--pulse { animation:evTagPulse 1.2s ease-in-out infinite; }
.ev-dash2--closing { animation:evCardPulse 2s ease-in-out infinite; }
.ev-dash2-metric-n--pop { animation:evMetricPop .55s ease; }
.ev-dash2-recent-row--new { animation:evNewRow .45s ease; }
@keyframes evMetricPop {
  0%   { transform:scale(1); }
  35%  { transform:scale(1.3); color:#4ade80; }
  100% { transform:scale(1); }
}
@keyframes evNewRow {
  from { opacity:0; transform:translateX(-8px); }
  to   { opacity:1; transform:translateX(0); }
}
@keyframes evTagPulse {
  0%,100% { opacity:1; }
  50%     { opacity:.45; }
}
@keyframes evCardPulse {
  0%,100% { border-color:rgba(251,146,60,.4); }
  50%     { border-color:rgba(239,68,68,.75); box-shadow:0 0 0 3px rgba(239,68,68,.12); }
}

/* ── Analytics redesign ── */
/* KPI header */
.ev-an-header { display:flex; flex-direction:column; gap:6px; background:var(--bgcard); border:1px solid var(--border); border-radius:14px; overflow:hidden; margin-bottom:10px; }
.ev-an-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(52px,1fr)); }
.ev-an-kpi { display:flex; flex-direction:column; align-items:center; gap:3px; padding:12px 6px; border-right:1px solid var(--border); }
.ev-an-kpi:last-of-type { border-right:none; }
.ev-an-kpi-n { font:800 20px/1 var(--font); color:var(--accent); letter-spacing:-.03em; }
.ev-an-kpi-l { font:600 10px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.07em; text-align:center; }
.ev-an-kpi-sub { font:600 10px var(--b); color:#fbbf24; margin-top:1px; }
.ev-an-kpi--sympla .ev-an-kpi-n { color:#2dd4bf; }
.ev-an-kpi--pre .ev-an-kpi-n { color:#a78bfa; }
.ev-an-kpi--sat .ev-an-kpi-n { color:#fb923c; }
.ev-an-kpi--sort .ev-an-kpi-n { color:#22c55e; }
.ev-an-header-foot { display:flex; align-items:center; justify-content:space-between; padding:6px 12px; border-top:1px solid var(--border); background:rgba(255,255,255,.02); }
.ev-an-ts { font:400 10px var(--b); color:var(--text3); }
.ev-an-refresh-btn { background:transparent; border:none; cursor:pointer; color:var(--text3); display:flex; align-items:center; padding:4px; border-radius:6px; transition:all .15s; }
.ev-an-refresh-btn:hover { background:rgba(255,255,255,.08); color:var(--text); }
.ev-an-refresh-btn svg { stroke:currentColor; }
.ev-an-refresh-btn.spinning svg { animation:syStSpin .7s linear infinite; transform-origin:center; }

/* Barra de origem */
.ev-an-src-wrap { margin-bottom:10px; display:flex; flex-direction:column; gap:5px; }
.ev-an-src-bar { height:6px; border-radius:999px; background:rgba(255,255,255,.07); overflow:hidden; display:flex; }
.ev-an-src-seg { height:100%; transition:width .6s ease; }
.ev-an-src-seg--qr     { background:var(--accent); }
.ev-an-src-seg--sympla { background:#2dd4bf; }
.ev-an-src-seg--pre    { background:#a78bfa; }
.ev-an-src-legend { display:flex; gap:10px; flex-wrap:wrap; }
.ev-an-src-legend span { font:400 10px var(--b); color:var(--text3); }
.ev-an-src-dot { width:7px; height:7px; border-radius:50%; display:inline-block; margin-right:3px; vertical-align:middle; }
.ev-an-src-dot--qr     { background:var(--accent); }
.ev-an-src-dot--sympla { background:#2dd4bf; }
.ev-an-src-dot--pre    { background:#a78bfa; }

/* Satisfação inline */
.ev-an-sat-card { background:rgba(251,146,60,.05); border:1px solid rgba(251,146,60,.2); border-radius:12px; overflow:hidden; margin-bottom:10px; }
.ev-an-sat-hd { display:flex; align-items:center; gap:7px; padding:10px 12px; font:600 12px var(--b); color:#fb923c; border-bottom:1px solid rgba(251,146,60,.15); }
.ev-an-sat-hd svg { stroke:#fb923c; }
.ev-an-sat-body { padding:10px 12px; }
.ev-an-sat-metrics { display:flex; gap:16px; align-items:flex-start; }
.ev-an-sat-metric { display:flex; flex-direction:column; align-items:center; gap:2px; }
.ev-an-sat-val { font:800 22px/1 var(--font); color:#fb923c; letter-spacing:-.02em; }
.ev-an-sat-lbl { font:500 10px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.06em; }
.ev-an-sat-stars { font-size:11px; color:#fbbf24; letter-spacing:1px; margin-top:2px; }

/* ══ Analytics v2 — proposta aprovada ══ */
#evEmSecDados { display:flex; flex-direction:column; gap:10px; }
#evEmSecDados .card { background:var(--bgcard); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
#evEmSecDados .card-hd { display:flex; align-items:center; justify-content:space-between; padding:9px 14px; border-bottom:1px solid var(--border); }
#evEmSecDados .card-hd-l { display:flex; align-items:center; gap:7px; font:700 9px var(--b); text-transform:uppercase; letter-spacing:.1em; color:var(--text3); }
#evEmSecDados .card-hd-l svg { stroke:currentColor; flex-shrink:0; }
#evEmSecDados .card-hd-r { display:flex; align-items:center; gap:6px; }
#evEmSecDados .an-ts { font:400 9px var(--b); color:var(--text3); }
#evEmSecDados .an-refresh-btn { display:flex; align-items:center; gap:4px; font:500 10px var(--b); color:var(--text3); background:transparent; border:none; cursor:pointer; padding:3px 7px; border-radius:6px; transition:background .15s; }
#evEmSecDados .an-refresh-btn:hover { background:rgba(255,255,255,.06); color:var(--text2); }
/* KPI row */
#evEmSecDados .kpi-row { display:grid; }
#evEmSecDados .kpi { display:flex; flex-direction:column; align-items:center; gap:2px; padding:12px 4px; border-right:1px solid var(--border); }
#evEmSecDados .kpi:last-child { border-right:none; }
#evEmSecDados .kpi-n { font:800 19px/1 var(--font); color:var(--accent); letter-spacing:-.04em; }
#evEmSecDados .kpi-l { font:500 8px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.07em; text-align:center; }
#evEmSecDados .kpi-sub { font:600 10px var(--b); color:#fbbf24; margin-top:1px; }
#evEmSecDados .kpi--total .kpi-n { font-size:26px; }
#evEmSecDados .kpi--pre .kpi-n { color:#a78bfa; }
#evEmSecDados .kpi--sat .kpi-n { color:#fb923c; }
#evEmSecDados .kpi--sort .kpi-n { color:#4ade80; }
#evEmSecDados .kpi--sympla .kpi-n { color:#2dd4bf; }
#evEmSecDados .an-delta { display:inline-flex; align-items:center; font:600 9px var(--b); padding:1px 5px; border-radius:5px; margin-top:1px; }
#evEmSecDados .an-delta--up { background:rgba(74,222,128,.1); color:#4ade80; border:1px solid rgba(74,222,128,.2); }
#evEmSecDados .an-delta--down { background:rgba(251,146,60,.1); color:#fb923c; border:1px solid rgba(251,146,60,.2); }
/* Gráfico por hora */
#evEmSecDados .an-chart-area { padding:12px 14px 8px; }
#evEmSecDados .an-chart-labels { display:flex; justify-content:space-between; margin-top:4px; }
#evEmSecDados .an-chart-lbl { font:400 9px var(--b); color:var(--text3); }
#evEmSecDados .an-chart-peak { display:flex; align-items:center; gap:5px; margin-top:6px; font:400 10px var(--b); color:var(--text3); }
#evEmSecDados .an-chart-peak strong { color:var(--accent); font-weight:700; }
#evEmSecDados .an-chart-peak-dot { width:7px; height:7px; border-radius:50%; background:var(--accent); flex-shrink:0; }
/* Funil */
#evEmSecDados .an-funil-body { padding:12px 14px 14px; display:flex; flex-direction:column; gap:8px; }
#evEmSecDados .an-funil-steps { display:flex; align-items:stretch; }
#evEmSecDados .an-funil-step { flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; padding:10px 4px; background:rgba(255,255,255,.03); border:1px solid var(--border); position:relative; }
#evEmSecDados .an-funil-step+.an-funil-step { margin-left:-1px; }
#evEmSecDados .an-funil-step:first-child { border-radius:10px 0 0 10px; }
#evEmSecDados .an-funil-step:last-child { border-radius:0 10px 10px 0; }
#evEmSecDados .an-funil-n { font:800 20px/1 var(--font); color:var(--accent); letter-spacing:-.03em; }
#evEmSecDados .an-funil-l { font:500 8px var(--b); color:var(--text3); text-align:center; text-transform:uppercase; letter-spacing:.06em; }
#evEmSecDados .an-funil-rate { font:600 9px var(--b); padding:2px 6px; border-radius:99px; margin-top:2px; }
#evEmSecDados .an-funil-rate--pre  { color:#a78bfa; background:rgba(167,139,250,.12); border:1px solid rgba(167,139,250,.2); }
#evEmSecDados .an-funil-rate--qr   { color:var(--accent); background:rgba(0,171,169,.1); border:1px solid var(--border); }
#evEmSecDados .an-funil-rate--sat  { color:#fb923c; background:rgba(251,146,60,.1); border:1px solid rgba(251,146,60,.2); }
#evEmSecDados .an-funil-rate--sort { color:#4ade80; background:rgba(74,222,128,.1); border:1px solid rgba(74,222,128,.2); }
#evEmSecDados .an-funil-arrow { position:absolute; right:-8px; top:50%; transform:translateY(-50%); width:15px; height:15px; background:var(--bgcard); border:1px solid var(--border); border-radius:50%; display:flex; align-items:center; justify-content:center; z-index:1; }
#evEmSecDados .an-funil-taxa { display:flex; align-items:center; justify-content:center; gap:6px; padding:6px 12px; background:rgba(167,139,250,.06); border:1px solid rgba(167,139,250,.18); border-radius:8px; flex-wrap:wrap; }
#evEmSecDados .an-funil-taxa-txt { font:400 11px var(--b); color:var(--text2); }
#evEmSecDados .an-funil-taxa-n { font:700 12px var(--b); color:#a78bfa; }
#evEmSecDados .an-funil-taxa-sub { font:400 10px var(--b); color:var(--text3); }
/* Origem */
#evEmSecDados .an-src-body { padding:12px 14px; display:flex; flex-direction:column; gap:8px; }
#evEmSecDados .an-src-stacked { height:10px; border-radius:99px; overflow:hidden; display:flex; }
#evEmSecDados .an-src-bar-row { display:flex; align-items:center; gap:7px; }
#evEmSecDados .an-src-bar-label-wrap { display:flex; align-items:center; gap:5px; width:100px; flex-shrink:0; }
#evEmSecDados .an-src-bar-dot { width:8px; height:8px; border-radius:2px; flex-shrink:0; }
#evEmSecDados .an-src-bar-label { font:500 10px var(--b); color:var(--text2); }
#evEmSecDados .an-src-bar-sub { font:400 9px var(--b); color:var(--text3); }
#evEmSecDados .an-src-bar-track { flex:1; height:8px; background:rgba(255,255,255,.07); border-radius:99px; overflow:hidden; }
#evEmSecDados .an-src-bar-fill { height:100%; border-radius:99px; transition:width .6s ease; }
#evEmSecDados .an-src-bar-fill--qr  { background:linear-gradient(90deg,#00aba9,#2dd4bf); }
#evEmSecDados .an-src-bar-fill--pre { background:#a78bfa; }
#evEmSecDados .an-src-bar-fill--sym { background:#2dd4bf; }
#evEmSecDados .an-src-bar-count { font:600 11px var(--b); color:var(--text2); width:24px; text-align:right; flex-shrink:0; }
#evEmSecDados .an-src-bar-pct { font:400 10px var(--b); width:28px; flex-shrink:0; text-align:right; }
#evEmSecDados .an-src-sep { height:1px; background:var(--border); }
#evEmSecDados .an-src-total { display:flex; justify-content:flex-end; font:400 10px var(--b); color:var(--text3); }
#evEmSecDados .an-src-total strong { color:var(--accent); font-weight:700; margin-left:4px; }
/* Perfil */
#evEmSecDados .an-perfil-body { padding:12px 14px; display:flex; flex-direction:column; gap:12px; }
#evEmSecDados .an-perfil-sub { font:700 9px var(--b); text-transform:uppercase; letter-spacing:.09em; color:var(--text3); margin-bottom:6px; }
#evEmSecDados .an-perfil-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
#evEmSecDados .an-perfil-list { display:flex; flex-direction:column; gap:5px; }
#evEmSecDados .an-perfil-item { display:flex; align-items:center; gap:5px; }
#evEmSecDados .an-perfil-rank { font:700 9px var(--b); color:var(--text3); width:12px; flex-shrink:0; text-align:right; }
#evEmSecDados .an-perfil-bar-wrap { flex:1; display:flex; flex-direction:column; gap:2px; min-width:0; }
#evEmSecDados .an-perfil-bar-lbl { font:500 10px var(--b); color:var(--text2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#evEmSecDados .an-perfil-bar-track { height:4px; background:rgba(255,255,255,.07); border-radius:99px; overflow:hidden; }
#evEmSecDados .an-perfil-bar-fill { height:100%; border-radius:99px; background:linear-gradient(90deg,#00aba9,#2dd4bf); transition:width .6s ease; }
#evEmSecDados .an-perfil-bar-fill--purple { background:#a78bfa; }
#evEmSecDados .an-perfil-n { font:600 11px var(--b); color:var(--text); width:22px; text-align:right; flex-shrink:0; }
#evEmSecDados .an-city-list { display:flex; flex-direction:column; gap:4px; }
#evEmSecDados .an-city-item { display:flex; align-items:center; gap:8px; padding:5px 8px; background:rgba(255,255,255,.03); border:1px solid var(--border); border-radius:7px; }
#evEmSecDados .an-city-pos { font:700 9px var(--b); color:var(--text3); width:14px; flex-shrink:0; }
#evEmSecDados .an-city-name { font:500 11px var(--b); color:var(--text); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#evEmSecDados .an-city-bar { flex:0 0 60px; height:4px; background:rgba(255,255,255,.07); border-radius:99px; overflow:hidden; }
#evEmSecDados .an-city-bar-fill { height:100%; border-radius:99px; background:var(--accent); opacity:.7; }
#evEmSecDados .an-city-n { font:600 10px var(--b); color:var(--text2); flex-shrink:0; min-width:20px; text-align:right; }
/* Satisfação v2 */
#evEmSecDados .an-sat-body { padding:12px 14px; display:flex; flex-direction:column; gap:10px; }
#evEmSecDados .an-sat-scores { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
#evEmSecDados .an-sat-score-card { background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:10px; padding:10px 12px; display:flex; flex-direction:column; align-items:center; gap:3px; }
#evEmSecDados .an-sat-score-n { font:900 28px/1 var(--font); color:#fb923c; letter-spacing:-.04em; }
#evEmSecDados .an-sat-score-n--pal { color:#fbbf24; }
#evEmSecDados .an-sat-score-l { font:500 9px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.07em; }
#evEmSecDados .an-sat-stars-row { font-size:13px; letter-spacing:2px; color:#fbbf24; }
#evEmSecDados .an-sat-sep { height:1px; background:var(--border); }
#evEmSecDados .an-sat-dist { display:flex; flex-direction:column; gap:4px; }
#evEmSecDados .an-sat-dist-row { display:flex; align-items:center; gap:7px; }
#evEmSecDados .an-sat-dist-star { font:500 10px var(--b); color:var(--text3); width:22px; text-align:right; flex-shrink:0; }
#evEmSecDados .an-sat-dist-bar { flex:1; height:6px; background:rgba(255,255,255,.07); border-radius:99px; overflow:hidden; }
#evEmSecDados .an-sat-dist-fill { height:100%; border-radius:99px; background:#fbbf24; }
#evEmSecDados .an-sat-dist-n { font:400 10px var(--b); color:var(--text3); width:24px; flex-shrink:0; }
/* Ritmo */
#evEmSecDados .an-ritmo-body { padding:10px 14px; }
#evEmSecDados .an-ritmo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
#evEmSecDados .an-ritmo-card { background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:9px; padding:8px 10px; display:flex; flex-direction:column; gap:2px; }
#evEmSecDados .an-ritmo-n { font:700 18px/1 var(--font); color:var(--text); letter-spacing:-.02em; }
#evEmSecDados .an-ritmo-u { font:400 9px var(--b); color:var(--text3); }
#evEmSecDados .an-ritmo-l { font:500 9px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.07em; margin-top:2px; }
#evEmSecDados .an-ritmo-l--up   { color:#4ade80; }
#evEmSecDados .an-ritmo-l--down { color:#fb923c; }
/* Dispositivos */
#evEmSecDados .an-dev-body { padding:12px 14px; display:flex; flex-direction:column; gap:10px; }
#evEmSecDados .an-dev-split { display:grid; grid-template-columns:80px 1fr; gap:14px; align-items:center; }
#evEmSecDados .an-dev-donut { position:relative; }
#evEmSecDados .an-dev-donut-center { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center; pointer-events:none; }
#evEmSecDados .an-dev-donut-pct { font:800 14px/1 var(--font); color:var(--accent); }
#evEmSecDados .an-dev-donut-lbl { font:500 7px var(--b); color:var(--text3); text-transform:uppercase; }
#evEmSecDados .an-dev-legend { display:flex; flex-direction:column; gap:5px; }
#evEmSecDados .an-dev-legend-item { display:flex; align-items:center; gap:7px; }
#evEmSecDados .an-dev-legend-dot { width:8px; height:8px; border-radius:2px; flex-shrink:0; }
#evEmSecDados .an-dev-legend-lbl { font:500 11px var(--b); color:var(--text2); flex:1; }
#evEmSecDados .an-dev-legend-n { font:600 11px var(--b); color:var(--text); }
#evEmSecDados .an-dev-legend-pct { font:400 10px var(--b); color:var(--text3); width:32px; text-align:right; }
#evEmSecDados .an-dev-os { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
#evEmSecDados .an-dev-os-card { background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:9px; padding:8px 6px; display:flex; flex-direction:column; align-items:center; gap:2px; }
#evEmSecDados .an-dev-os-icon { font-size:15px; }
#evEmSecDados .an-dev-os-lbl { font:500 9px var(--b); color:var(--text2); }
#evEmSecDados .an-dev-os-n { font:700 13px var(--b); color:var(--text); }
#evEmSecDados .an-dev-os-pct { font:400 9px var(--b); color:var(--text3); }
/* Separador entre analytics e lista */
#evEmSecDados .an-sec-sep { height:1px; background:var(--border); margin:2px 0; }

/* ── Filtro de datas (Bloco 0) ── */
#evEmSecDados .an-date-filter-body { padding:10px 14px; display:flex; flex-direction:column; gap:8px; }
#evEmSecDados .an-date-pills { display:flex; gap:5px; flex-wrap:wrap; }
#evEmSecDados .an-date-pill { padding:4px 11px; border-radius:99px; border:1px solid var(--border); background:rgba(255,255,255,.04); color:var(--text3); font:500 10px var(--b); cursor:pointer; transition:all .15s; white-space:nowrap; }
#evEmSecDados .an-date-pill:hover { background:rgba(255,255,255,.08); color:var(--text2); }
#evEmSecDados .an-date-pill--active { background:rgba(0,171,169,.12); border-color:rgba(0,171,169,.28); color:var(--accent); font-weight:600; }
#evEmSecDados .an-date-custom { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#evEmSecDados .an-date-in2 { padding:5px 9px; background:rgba(255,255,255,.05); border:1px solid rgba(0,171,169,.28); border-radius:8px; color:var(--text); font:400 11px var(--b); outline:none; transition:border-color .15s; min-width:0; flex:1; color-scheme:dark; }
#evEmSecDados .an-date-in2:focus { border-color:var(--accent); }
#evEmSecDados .an-date-apply { padding:5px 14px; border-radius:8px; background:rgba(0,171,169,.12); border:1px solid rgba(0,171,169,.28); color:var(--accent); font:600 10px var(--b); cursor:pointer; white-space:nowrap; flex-shrink:0; }
#evEmSecDados .an-date-apply:hover { background:rgba(0,171,169,.22); }
#evEmSecDados .an-date-active-label { display:flex; align-items:center; gap:5px; font:400 10px var(--b); color:var(--text3); padding:4px 10px; background:rgba(0,171,169,.06); border:1px solid var(--border); border-radius:7px; }
#evEmSecDados .an-date-active-label strong { color:var(--accent); font-weight:600; }

/* ── Analytics dos Formulários (Bloco 9) ── */
#evEmSecDados .an-fan-tabs { display:flex; border-bottom:1px solid var(--border); overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
#evEmSecDados .an-fan-tabs::-webkit-scrollbar { height:0; }
#evEmSecDados .an-fan-tab { flex-shrink:0; padding:9px 14px; font:500 11px var(--b); color:var(--text3); border:none; background:transparent; cursor:pointer; border-bottom:2px solid transparent; transition:all .15s; white-space:nowrap; }
#evEmSecDados .an-fan-tab:hover { color:var(--text2); background:rgba(255,255,255,.03); }
#evEmSecDados .an-fan-tab--active { color:var(--accent); border-bottom-color:var(--accent); font-weight:600; }
#evEmSecDados .an-fan-content { padding:12px 14px; display:flex; flex-direction:column; gap:10px; }
/* KPIs */
#evEmSecDados .an-fan-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
#evEmSecDados .an-fan-kpis--4 { grid-template-columns:repeat(4,1fr); }
#evEmSecDados .an-fan-kpi { background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:9px; padding:8px 10px; display:flex; flex-direction:column; gap:2px; }
#evEmSecDados .an-fan-kpi-n { font:700 18px/1 var(--font); color:var(--text); letter-spacing:-.02em; }
#evEmSecDados .an-fan-kpi-u { font:400 9px var(--b); color:var(--text3); }
#evEmSecDados .an-fan-kpi-l { font:500 8px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.07em; margin-top:2px; }
#evEmSecDados .an-fan-kpi-n--green  { color:#4ade80; }
#evEmSecDados .an-fan-kpi-n--orange { color:#fb923c; }
#evEmSecDados .an-fan-kpi-n--red    { color:#ef4444; }
#evEmSecDados .an-fan-sep { height:1px; background:var(--border); }
#evEmSecDados .an-fan-sub { font:700 9px var(--b); text-transform:uppercase; letter-spacing:.09em; color:var(--text3); margin-bottom:4px; }
/* Funil de conclusão */
#evEmSecDados .an-fan-funnel { display:flex; flex-direction:column; gap:4px; }
#evEmSecDados .an-fan-funnel-row { display:flex; align-items:center; gap:8px; }
#evEmSecDados .an-fan-funnel-lbl { font:500 10px var(--b); color:var(--text2); width:88px; flex-shrink:0; white-space:nowrap; }
#evEmSecDados .an-fan-funnel-bar { flex:1; height:20px; background:rgba(255,255,255,.05); border-radius:6px; overflow:hidden; position:relative; }
#evEmSecDados .an-fan-funnel-fill { height:100%; border-radius:6px; display:flex; align-items:center; padding-left:8px; }
#evEmSecDados .an-fan-funnel-fill-n { font:700 10px var(--b); color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.4); }
#evEmSecDados .an-fan-funnel-rate { font:600 10px var(--b); width:36px; flex-shrink:0; text-align:right; }
#evEmSecDados .an-fan-funnel-drop { display:flex; align-items:center; gap:5px; font:400 10px var(--b); color:var(--text3); margin-top:1px; padding:0 2px; }
#evEmSecDados .an-fan-funnel-drop-arrow { font-size:9px; color:#ef4444; }
/* Tempo por campo */
#evEmSecDados .an-fan-fields { display:flex; flex-direction:column; gap:5px; }
#evEmSecDados .an-fan-field-row { display:flex; align-items:center; gap:8px; }
#evEmSecDados .an-fan-field-name { font:500 10px var(--b); color:var(--text2); width:108px; flex-shrink:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#evEmSecDados .an-fan-field-bar { flex:1; height:14px; background:rgba(255,255,255,.05); border-radius:4px; overflow:hidden; }
#evEmSecDados .an-fan-field-fill { height:100%; border-radius:4px; display:flex; align-items:center; padding-left:6px; font:600 8px var(--b); color:rgba(255,255,255,.8); }
#evEmSecDados .an-fan-field-fill--ok   { background:rgba(0,171,169,.4); }
#evEmSecDados .an-fan-field-fill--warn { background:rgba(251,191,36,.45); }
#evEmSecDados .an-fan-field-fill--bad  { background:rgba(239,68,68,.45); }
#evEmSecDados .an-fan-field-time { font:500 10px var(--b); color:var(--text3); width:30px; text-align:right; flex-shrink:0; }
#evEmSecDados .an-fan-field-badge { font:600 8px var(--b); padding:1px 5px; border-radius:4px; flex-shrink:0; }
#evEmSecDados .an-fan-field-badge--skip { background:rgba(251,191,36,.15); color:#fbbf24; border:1px solid rgba(251,191,36,.25); }
#evEmSecDados .an-fan-field-badge--drop { background:rgba(239,68,68,.12); color:#ef4444;  border:1px solid rgba(239,68,68,.2); }
/* Abandono por campo */
#evEmSecDados .an-fan-abandon { display:flex; flex-direction:column; gap:4px; }
#evEmSecDados .an-fan-abandon-row { display:flex; align-items:center; gap:7px; padding:5px 8px; background:rgba(255,255,255,.03); border:1px solid var(--border); border-radius:7px; }
#evEmSecDados .an-fan-abandon-pos { font:700 9px var(--b); color:var(--text3); width:14px; flex-shrink:0; }
#evEmSecDados .an-fan-abandon-field { font:500 10px var(--b); color:var(--text); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#evEmSecDados .an-fan-abandon-bar { flex:0 0 60px; height:4px; background:rgba(255,255,255,.07); border-radius:99px; overflow:hidden; }
#evEmSecDados .an-fan-abandon-fill { height:100%; border-radius:99px; background:#ef4444; opacity:.6; }
#evEmSecDados .an-fan-abandon-n { font:600 10px var(--b); color:#ef4444; width:24px; text-align:right; flex-shrink:0; }
/* Redes sociais */
#evEmSecDados .an-fan-social { display:grid; grid-template-columns:repeat(2,1fr); gap:6px; }
#evEmSecDados .an-fan-social-card { background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:9px; padding:8px 10px; display:flex; align-items:center; gap:8px; }
#evEmSecDados .an-fan-social-icon { width:28px; height:28px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0; }
#evEmSecDados .an-fan-social-info { flex:1; min-width:0; }
#evEmSecDados .an-fan-social-name { font:600 10px var(--b); color:var(--text); display:block; }
#evEmSecDados .an-fan-social-cliques { font:400 9px var(--b); color:var(--text3); }
#evEmSecDados .an-fan-social-pct { font:700 11px var(--b); color:var(--accent); flex-shrink:0; }

/* Leads - header e filtros */
.ev-leads-hd { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.ev-leads-hd-title { font:600 12px var(--b); color:var(--text2); text-transform:uppercase; letter-spacing:.06em; }
.ev-leads-filters-row2 { display:flex; gap:6px; }
.ev-leads-filters-row2 .ev-leads-sel { flex:1; }

/* Source badges nas lead cards */
.ev-lead-src { font:700 10px var(--b); padding:2px 6px; border-radius:5px; letter-spacing:.04em; flex-shrink:0; }
.ev-lead-src--qr     { background:rgba(0,171,169,.15); color:var(--accent); border:1px solid rgba(0,171,169,.25); }
.ev-lead-src--sympla { background:rgba(45,212,191,.12); color:#2dd4bf; border:1px solid rgba(45,212,191,.25); }
.ev-lead-src--pre    { background:rgba(167,139,250,.12); color:#a78bfa; border:1px solid rgba(167,139,250,.25); }

/* Ações agrupadas */
.ev-an-actions { display:flex; flex-direction:column; gap:10px; margin-top:10px; }
.ev-an-actions-group { display:flex; flex-direction:column; gap:5px; }
.ev-an-actions-lbl { font:700 10px var(--b); text-transform:uppercase; letter-spacing:.08em; color:var(--text3); padding:0 2px; }

/* ── Botão Link Pré-inscrição ── */
.ev-data-btn--teal { background:rgba(0,171,169,.12); border-color:rgba(0,171,169,.3); color:#2dd4bf; }
.ev-data-btn--teal:hover { background:rgba(0,171,169,.22); color:#2dd4bf; }

/* ── Comparativo Pré-inscrição ── */
.ev-cmp-sec { border-radius: 12px; overflow: hidden; border: 1px solid var(--border); }
.ev-cmp-hd { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; cursor:pointer; transition:background .15s; font:600 12px var(--b); color:var(--text2); }
.ev-cmp-hd:hover { background:rgba(255,255,255,.04); }
.ev-cmp-hd-l { display:flex; align-items:center; gap:7px; }
.ev-cmp-hd-l svg { stroke:var(--text2); }
.ev-cmp-chev { transition:transform .2s; stroke:var(--text3); }
.ev-cmp-body { padding:12px 14px; display:flex; flex-direction:column; gap:10px; border-top:1px solid var(--border); }
.ev-cmp-loading { font:400 12px var(--b); color:var(--text3); text-align:center; padding:8px 0; }
.ev-cmp-funnel { display:flex; align-items:center; gap:8px; }
.ev-cmp-funnel-item { display:flex; flex-direction:column; align-items:center; gap:2px; flex:1; background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:10px; padding:10px 6px; }
.ev-cmp-funnel-item--teal { background:rgba(0,171,169,.08); border-color:rgba(0,171,169,.25); }
.ev-cmp-funnel-n { font:800 18px/1 var(--font); color:var(--text); letter-spacing:-.02em; }
.ev-cmp-funnel-item--teal .ev-cmp-funnel-n { color:#2dd4bf; }
.ev-cmp-funnel-l { font:500 9px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.06em; }
.ev-cmp-prog { height:3px; background:rgba(255,255,255,.07); border-radius:999px; overflow:hidden; }
.ev-cmp-prog-fill { height:100%; background:linear-gradient(90deg,#22c55e,#2dd4bf); transition:width .6s ease; }
.ev-cmp-tabs-row { display:flex; gap:5px; flex-wrap:wrap; }
.ev-cmp-tab { padding:5px 11px; border-radius:7px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1); color:var(--text2); font:600 11px var(--b); cursor:pointer; transition:all .15s; }
.ev-cmp-tab:hover { background:rgba(255,255,255,.13); }
.ev-cmp-tab.active { background:rgba(0,171,169,.15); border-color:rgba(0,171,169,.3); color:#2dd4bf; }
.ev-cmp-list { display:flex; flex-direction:column; gap:6px; max-height:220px; overflow-y:auto; }
.ev-cmp-row { display:flex; align-items:center; gap:9px; padding:7px 0; border-bottom:1px solid rgba(255,255,255,.04); }
.ev-cmp-row:last-child { border-bottom:none; }
.ev-cmp-avatar { width:28px; height:28px; border-radius:50%; background:rgba(0,171,169,.15); border:1px solid rgba(0,171,169,.3); display:flex; align-items:center; justify-content:center; font:700 12px var(--font); color:#2dd4bf; flex-shrink:0; }
.ev-cmp-info { display:flex; flex-direction:column; gap:1px; min-width:0; }
.ev-cmp-name  { font:600 12px var(--b); color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ev-cmp-email { font:400 10px var(--b); color:var(--text3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ev-cmp-empty { font:400 12px var(--b); color:var(--text3); text-align:center; padding:12px 0; }
.ev-sympla-preview { font: 400 11px var(--b); border-radius: 7px; padding: 7px 10px; }
.sy-prev-ok {
  display: flex; align-items: center; gap: 6px;
  color: #2dd4bf; background: rgba(45,212,191,.08);
  border: 1px solid rgba(45,212,191,.2); border-radius: 7px; padding: 6px 10px;
}
.sy-prev-ok svg { stroke: #2dd4bf; flex-shrink: 0; }
.sy-prev-ok strong { color: #fff; }
.sy-prev-ok span { color: rgba(255,255,255,.45); font-size: 10px; }
.sy-prev-err { color: #f87171; font: 400 11px var(--b); }
.sy-prev-loading { color: rgba(255,255,255,.4); font: 400 11px var(--b); }
/* Botão Sympla no card de sorteio */
.lbc-btn--sympla {
  display: flex; align-items: center; justify-content: center; gap: 7px;
  width: 100%; padding: 10px 16px; border-radius: 12px; border: none; cursor: pointer;
  background: rgba(45,212,191,.12); border: 1.5px solid rgba(45,212,191,.3);
  color: #2dd4bf; font: 700 13px/1 var(--b); transition: all .15s;
}
.lbc-btn--sympla:hover { background: rgba(45,212,191,.2); }
.lbc-btn--sympla svg { stroke: #2dd4bf; }

/* Overlay do painel Sympla */
.sy-panel-ov {
  position: fixed; inset: 0; z-index: 4000;
  background: rgba(0,0,0,.65); backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.sy-panel-box {
  background: var(--bgcard2, #1a2236); border: 1px solid rgba(45,212,191,.2);
  border-radius: 20px; width: 100%; max-width: 520px;
  max-height: 90vh; overflow-y: auto; box-shadow: 0 24px 64px rgba(0,0,0,.6);
  animation: modalIn .25s ease;
}
.sy-panel-hd {
  display: flex; align-items: center; gap: 10px;
  background: linear-gradient(135deg, rgba(0,171,169,.3), rgba(0,99,97,.4));
  padding: 16px 20px; border-radius: 20px 20px 0 0;
  border-bottom: 1px solid rgba(45,212,191,.2);
}
.sy-panel-hd-left { display: flex; align-items: center; gap: 8px; flex: 1; font: 600 13px var(--b); color: #fff; }
.sy-panel-hd-left svg { stroke: #2dd4bf; }
.sy-panel-hd-left strong { color: #2dd4bf; }
.sy-panel-close { background: rgba(255,255,255,.1); border: none; color: #fff; border-radius: 50%; width: 26px; height: 26px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.sy-panel-close:hover { background: rgba(255,255,255,.2); }
.sy-panel-back { display: flex; align-items: center; gap: 5px; background: rgba(255,255,255,.1); border: none; color: #fff; border-radius: 8px; padding: 5px 10px 5px 7px; cursor: pointer; font: 600 12px var(--b); transition: background .15s; }
.sy-panel-back:hover { background: rgba(255,255,255,.2); }
.sy-panel-back svg { stroke: currentColor; }
.sy-panel-body { padding: 20px; display: flex; flex-direction: column; gap: 16px; }

/* Stats cards */
.sy-stat-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }
.sy-stat-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; padding: 14px 10px; text-align: center; }
.sy-stat-card--green { border-color: rgba(34,197,94,.25); background: rgba(34,197,94,.06); }
.sy-stat-card--teal  { border-color: rgba(45,212,191,.25); background: rgba(45,212,191,.06); }
.sy-stat-card--dim   { opacity: .6; }
.sy-stat-num { font: 800 24px/1 var(--font); color: #fff; letter-spacing: -.03em; }
.sy-stat-card--green .sy-stat-num { color: #22c55e; }
.sy-stat-card--teal  .sy-stat-num { color: #2dd4bf; }
.sy-stat-lbl { font: 500 10px var(--b); color: rgba(255,255,255,.4); margin-top: 4px; text-transform: uppercase; letter-spacing: .07em; }

/* Progress bar */
.sy-progress-wrap { display: flex; flex-direction: column; gap: 6px; }
.sy-progress-lbl { display: flex; justify-content: space-between; font: 500 11px var(--b); color: rgba(255,255,255,.4); }
.sy-progress-track { height: 8px; background: rgba(255,255,255,.08); border-radius: 999px; overflow: hidden; }
.sy-progress-fill { height: 100%; background: linear-gradient(90deg, #22c55e, #2dd4bf); border-radius: 999px; transition: width .6s ease; }

/* Draw config */
.sy-draw-config { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
.sy-draw-config-title { font: 700 10px var(--b); text-transform: uppercase; letter-spacing: .09em; color: rgba(255,255,255,.35); }
.sy-draw-toggle-row { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.sy-draw-toggle-row input[type="checkbox"] { accent-color: #2dd4bf; width: 16px; height: 16px; margin-top: 2px; flex-shrink: 0; cursor: pointer; }
.sy-draw-toggle-body { display: flex; flex-direction: column; gap: 2px; }
.sy-draw-toggle-label { font: 600 13px var(--b); color: #fff; }
.sy-draw-toggle-desc { font: 400 11px var(--b); color: rgba(255,255,255,.4); }
.sy-draw-toggle-desc strong { color: #2dd4bf; }
.sy-draw-btn { display: flex; align-items: center; gap: 7px; padding: 9px 14px; border-radius: 9px; background: rgba(45,212,191,.1); border: 1px solid rgba(45,212,191,.25); color: #2dd4bf; font: 600 12px var(--b); cursor: pointer; transition: all .15s; width: fit-content; }
.sy-draw-btn:hover { background: rgba(45,212,191,.18); }
.sy-draw-sync-time { color: rgba(255,255,255,.3); font-weight: 400; }

/* Seções */
.sy-panel-section { display: flex; flex-direction: column; gap: 8px; }
.sy-panel-section-title { font: 700 10px var(--b); text-transform: uppercase; letter-spacing: .09em; color: rgba(255,255,255,.35); }
.sy-tf-row { display: flex; gap: 5px; flex-wrap: wrap; }

/* Timeline */
.sy-timeline { display: flex; flex-direction: column; gap: 5px; }
.sy-tl-item { display: flex; align-items: center; gap: 8px; font: 400 12px var(--b); color: rgba(255,255,255,.55); }
.sy-tl-dot { width: 7px; height: 7px; border-radius: 50%; background: #22c55e; flex-shrink: 0; }
.sy-tl-empty { font: 400 12px var(--b); color: rgba(255,255,255,.25); font-style: italic; }

/* Ações */
.sy-panel-actions { display: flex; gap: 8px; flex-wrap: wrap; padding-top: 4px; border-top: 1px solid rgba(255,255,255,.07); }
.sy-action-btn { display: flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 8px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.6); font: 600 11px var(--b); cursor: pointer; transition: all .15s; }
.sy-action-btn:hover { background: rgba(255,255,255,.12); color: #fff; }

/* Toggle Sympla on/off — painel */
.sy-enabled-toggle {
  display: inline-flex; align-items: center; cursor: pointer; margin-left: auto;
}
.sy-enabled-toggle input { display: none; }
.sy-enabled-track {
  width: 32px; height: 18px; border-radius: 999px;
  background: rgba(255,255,255,.15); position: relative;
  transition: background .2s;
}
.sy-enabled-toggle input:checked ~ .sy-enabled-track { background: #2dd4bf; }
.sy-enabled-thumb {
  position: absolute; top: 2px; left: 2px;
  width: 14px; height: 14px; border-radius: 50%;
  background: #fff; transition: transform .2s; box-shadow: 0 1px 3px rgba(0,0,0,.3);
}
.sy-enabled-toggle input:checked ~ .sy-enabled-track .sy-enabled-thumb { transform: translateX(14px); }

/* ── Sympla Status Block no card ── */
.sy-st {
  border-radius: 12px; overflow: hidden;
  background: rgba(0,171,169,.05);
  border: 1px solid rgba(0,171,169,.2);
}
.sy-st-hd {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px; cursor: pointer;
  transition: background .15s;
}
.sy-st-hd:hover { background: rgba(0,171,169,.08); }
.sy-st-hd-brand { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.sy-st-hd-icon {
  width: 26px; height: 26px; border-radius: 7px; flex-shrink: 0;
  background: rgba(0,171,169,.15); border: 1px solid rgba(0,171,169,.3);
  display: flex; align-items: center; justify-content: center;
}
.sy-st-hd-icon svg { stroke: #2dd4bf; }
.sy-st-hd-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.sy-st-hd-title { font: 600 12px var(--b); color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sy-st-hd-title strong { color: #2dd4bf; }
.sy-st-hd-sub { font: 400 10px var(--b); color: var(--text3); }
.sy-st-hd-right { display: flex; align-items: center; gap: 5px; flex-shrink: 0; }
.sy-st-badge { font: 700 9px var(--b); letter-spacing: .05em; padding: 2px 7px; border-radius: 999px; background: rgba(255,255,255,.07); color: var(--text3); white-space: nowrap; }
.sy-st-badge--on { background: rgba(45,212,191,.15); color: #2dd4bf; }
.sy-st-stats {
  display: grid; grid-template-columns: repeat(3,1fr);
  border-top: 1px solid rgba(0,171,169,.12);
  gap: 1px; background: rgba(0,171,169,.1);
}
.sy-st-stat { display: flex; flex-direction: column; align-items: center; padding: 8px 4px; background: var(--bgcard); }
.sy-st-stat--teal { background: rgba(0,171,169,.07); }
.sy-st-stat-n { font: 800 17px/1 var(--font); color: var(--text); letter-spacing: -.02em; }
.sy-st-stat--teal .sy-st-stat-n { color: #2dd4bf; }
.sy-st-stat-l { font: 500 9px var(--b); color: var(--text3); margin-top: 3px; text-transform: uppercase; letter-spacing: .06em; }
.sy-st-prog { height: 3px; background: rgba(255,255,255,.06); }
.sy-st-prog-fill { height: 100%; background: linear-gradient(90deg, #22c55e, #2dd4bf); transition: width .6s ease; min-width: 0; max-width: 100%; }
.sy-st-actions {
  display: flex; gap: 5px; padding: 8px 10px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.sy-st-btn {
  display: flex; align-items: center; justify-content: center; gap: 5px;
  padding: 6px 10px; border-radius: 7px; cursor: pointer;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1);
  color: var(--text2); font: 600 11px var(--b); transition: all .15s; flex-shrink: 0;
}
.sy-st-btn:hover { background: rgba(255,255,255,.13); color: var(--text); }
.sy-st-btn:disabled { opacity: .5; cursor: not-allowed; }
.sy-st-btn svg { stroke: currentColor; flex-shrink: 0; }
.sy-st-btn--primary { flex: 1; background: rgba(0,171,169,.12); border-color: rgba(0,171,169,.3); color: #2dd4bf; }
.sy-st-btn--primary:hover:not(:disabled) { background: rgba(0,171,169,.22); }
.sy-st-btn--on { background: rgba(45,212,191,.15); border-color: rgba(45,212,191,.3); color: #2dd4bf; }
@keyframes syStSpin { to { transform: rotate(360deg); } }
.sy-spin { animation: syStSpin .8s linear infinite; transform-origin: center; }

/* ═══ fonte/estilo/30-evento/025-botoes-e-links.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Botões e links do evento
 *
 * .ev-btn-cancel, .ev-btn-sm, .ev-btn-ok, .ev-link-btn — usados em
 * TODAS as telas. ⚠️ As últimas linhas (3569–3600) ainda trazem
 * regras .sy-* do Sympla: elas saem por SELETOR na etapa de limpeza,
 * nunca cortando a fatia.
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 3569–3680
 * TAMANHO PREVISTO: 112 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* Sympla status panel */
.sy-status { display: flex; flex-direction: column; gap: 8px; }
.sy-status-hd {
  display: flex; align-items: center; gap: 7px;
  font: 600 12px var(--b); color: var(--c7);
}
.sy-status-hd svg { stroke: #2dd4bf; }
.sy-sync-badge {
  font: 700 9px var(--b); text-transform: uppercase; letter-spacing: .07em;
  padding: 2px 7px; border-radius: 999px;
  background: rgba(255,255,255,.07); color: var(--c4); margin-left: auto;
}
.sy-sync-badge.on { background: rgba(45,212,191,.15); color: #2dd4bf; }
.sy-status-stats {
  display: flex; gap: 12px; font: 400 11px var(--b); color: var(--c5); flex-wrap: wrap;
}
.sy-status-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.sy-btn {
  padding: 5px 11px; border-radius: 7px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  color: var(--c7); font: 600 11px var(--b); cursor: pointer; transition: all .15s;
}
.sy-btn:hover { background: rgba(255,255,255,.13); color: #fff; }
.sy-btn--on { background: rgba(45,212,191,.15); border-color: rgba(45,212,191,.3); color: #2dd4bf; }
.sy-ticket-filter { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; margin-top: 2px; }
.sy-tf-lbl { font: 500 10px var(--b); color: var(--c4); text-transform: uppercase; letter-spacing: .07em; }
.sy-tf-btn {
  padding: 3px 9px; border-radius: 999px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1);
  color: var(--c5); font: 600 10px var(--b); cursor: pointer;
}
.sy-tf-btn.on { background: rgba(45,212,191,.15); border-color: rgba(45,212,191,.3); color: #2dd4bf; }

.ev-form-err {
  font:500 12px var(--b);color:#f87171;
  padding:8px 12px;
  background:rgba(248,113,113,.08);
  border:1px solid rgba(248,113,113,.22);
  border-radius:8px;
}
.ev-input--err {
  border-color:rgba(248,113,113,.65) !important;
  background:rgba(248,113,113,.06) !important;
  box-shadow:0 0 0 2px rgba(248,113,113,.12) !important;
}
@keyframes evShake {
  0%,100% { transform:translateX(0); }
  15%     { transform:translateX(-5px); }
  35%     { transform:translateX(5px); }
  52%     { transform:translateX(-4px); }
  68%     { transform:translateX(3px); }
  84%     { transform:translateX(-2px); }
}
.ev-btn-shake { animation:evShake .55s cubic-bezier(.36,.07,.19,.97) both; }
.ev-form-ok {
  font:500 12px var(--b);color:#4ade80;
  padding:8px 12px;
  background:rgba(74,222,128,.08);
  border:1px solid rgba(74,222,128,.22);
  border-radius:8px;
}

/* Footer dos modais */
.ev-mfooter {
  display:flex;align-items:center;justify-content:flex-end;gap:8px;
  padding:16px 20px;
  border-top:1px solid var(--border);
  flex-shrink:0;
}
.ev-mfooter--spaced { justify-content:space-between; }
.ev-btn-primary {
  display:flex;align-items:center;gap:7px;
  padding:10px 20px;
  background:var(--btn-grad);color:#fff;border:none;
  border-radius:11px;font:700 13.5px var(--font);cursor:pointer;
  box-shadow:0 4px 16px var(--accentglow);
  transition:all .2s var(--ee);
}
.ev-btn-primary:hover { background:var(--btn-grad-hov);transform:translateY(-1px); }
.ev-btn-primary:disabled { opacity:.75;transform:none;cursor:default; }
.ev-login-spin {
  display:inline-block;width:13px;height:13px;
  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  border-radius:50%;
  animation:_ev-spin .7s linear infinite;
  flex-shrink:0;
}
@keyframes _ev-spin { to { transform:rotate(360deg); } }
.ev-btn-cancel {
  padding:10px 18px;
  background:transparent;border:1px solid var(--border2);
  border-radius:11px;color:var(--text2);font:500 13px var(--font);cursor:pointer;
  transition:all .2s;
}
.ev-btn-cancel:hover { background:var(--accentfade);border-color:var(--accent);color:var(--text); }
.ev-btn-sm {
  padding:6px 12px;border-radius:8px;font:600 11.5px var(--b);cursor:pointer;border:1.5px solid;
  transition:all .18s;
}
.ev-btn-ok { background:rgba(0,171,169,.14);border-color:rgba(0,171,169,.38);color:#71bfba; }
.ev-btn-ok:hover { background:rgba(0,171,169,.28);border-color:rgba(0,171,169,.65);color:#fff; }
.ev-btn-cancel.ev-btn-sm { background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);color:var(--text3); }
.ev-btn-cancel.ev-btn-sm:hover { background:rgba(255,255,255,.1);color:var(--text2); }
.ev-link-btn {
  background:transparent;border:none;
  color:var(--text3);font:500 11.5px var(--b);cursor:pointer;
  transition:color .18s;padding:4px 2px;
  display:flex;align-items:center;gap:5px;
}
.ev-link-btn:hover { color:var(--text2); }

/* ═══ fonte/estilo/40-admin/010-painel-admin.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Painel de administração
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 3681–3765
 * TAMANHO PREVISTO: 85 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* Painel admin */
.ev-admin-body {
  flex:1;overflow-y:auto;
  padding:4px 0 4px;
  scrollbar-width:thin;scrollbar-color:var(--border) transparent;
}
.ev-admin-body::-webkit-scrollbar { width:3px; }
.ev-admin-body::-webkit-scrollbar-thumb { background:var(--border);border-radius:3px; }
.ev-admin-sec {
  padding:16px 20px;
  border-bottom:1px solid var(--border);
}
.ev-admin-sec:last-child { border-bottom:none; }
.ev-admin-sec-hd {
  display:flex;align-items:center;gap:7px;
  font:700 10.5px/1 var(--b);color:var(--accent);
  text-transform:uppercase;letter-spacing:.09em;
  margin-bottom:12px;
}
.ev-admin-sec-hd svg { stroke:var(--accent); }
.ev-admin-add-btn {
  margin-left:auto;
  padding:3px 10px;
  background:rgba(0,171,169,.12);border:1px solid rgba(0,171,169,.28);
  border-radius:99px;color:#71bfba;font:600 10.5px var(--b);cursor:pointer;
  transition:all .18s;
}
.ev-admin-add-btn:hover { background:rgba(0,171,169,.24);color:#fff; }
.ev-admin-event-info {
  font:400 12px/1.6 var(--b);color:var(--text2);
  padding:10px 12px;
  background:rgba(255,255,255,.03);
  border:1px solid var(--border);
  border-radius:10px;
  margin-bottom:10px;
}
.ev-admin-event-info strong { color:var(--text);font-weight:600; }
.ev-admin-event-info.empty { color:var(--text3);font-style:italic; }
.ev-danger-btn {
  display:flex;align-items:center;gap:6px;
  padding:8px 16px;
  background:rgba(239,68,68,.08);border:1.5px solid rgba(239,68,68,.24);
  border-radius:10px;color:#f87171;font:600 12.5px var(--font);cursor:pointer;
  transition:all .2s;
}
.ev-danger-btn:hover { background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.5); }
.ev-spk-list { display:flex;flex-direction:column;gap:4px;margin-bottom:8px; }
.ev-spk-item {
  display:flex;align-items:center;gap:8px;
  padding:7px 10px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  border-radius:9px;
  transition:background .15s;
}
.ev-spk-item:hover { background:rgba(255,255,255,.07); }
.ev-spk-avatar {
  width:26px;height:26px;border-radius:50%;
  background:rgba(0,171,169,.2);
  border:1px solid rgba(0,171,169,.3);
  display:flex;align-items:center;justify-content:center;
  font:700 10px var(--font);color:#71bfba;flex-shrink:0;
  text-transform:uppercase;
}
.ev-spk-name { flex:1;font:500 12px var(--font);color:var(--text);letter-spacing:-.005em; }
.ev-spk-del {
  background:transparent;border:none;cursor:pointer;
  color:var(--text3);padding:4px;border-radius:6px;
  display:flex;align-items:center;
  transition:color .18s,background .18s;
}
.ev-spk-del:hover { color:#f87171;background:rgba(239,68,68,.1); }.ev-admin-add-spk-btns { display:flex;gap:6px;justify-content:flex-end; }
.ev-admin-pass-row { display:flex;gap:8px;align-items:center; }
.ev-admin-data-btns { display:flex;gap:8px;flex-wrap:wrap; }
.ev-data-btn {
  display:flex;align-items:center;gap:6px;
  padding:8px 14px;
  background:rgba(255,255,255,.05);border:1px solid var(--border2);
  border-radius:10px;color:var(--text2);font:500 12px var(--font);cursor:pointer;
  transition:all .2s;
}
.ev-data-btn:hover { background:var(--accentfade);border-color:var(--accent);color:var(--text); }
.ev-data-btn--danger { color:#f87171; }
.ev-data-btn--danger:hover { background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.4); }

/* ═══ fonte/estilo/40-admin/020-historico.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Histórico e itens da lista
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 3766–4037
 * TAMANHO PREVISTO: 272 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* Histórico */
.ev-history-list {
  flex:1;overflow-y:auto;
  padding:8px 20px 4px;
  display:flex;flex-direction:column;gap:10px;
  max-height:56vh;
  scrollbar-width:thin;scrollbar-color:var(--border) transparent;
}
.ev-history-list::-webkit-scrollbar { width:3px; }
.ev-history-list::-webkit-scrollbar-thumb { background:var(--border);border-radius:3px; }
.ev-history-empty {
  text-align:center;padding:32px 16px;
  color:var(--text3);font:300 13px var(--b);
}
.ev-hist-item {
  padding:14px 16px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  border-radius:14px;
  display:flex;flex-direction:column;gap:6px;
  transition:background .15s;
}
.ev-hist-item:hover { background:rgba(255,255,255,.07); }
.ev-hist-row1 {
  display:flex;align-items:center;gap:10px;
}
.ev-hist-date {
  font:700 11px/1 var(--b);color:var(--accent);
  background:rgba(0,171,169,.12);border:1px solid rgba(0,171,169,.22);
  border-radius:6px;padding:2px 8px;
  white-space:nowrap;flex-shrink:0;
}
.ev-hist-city { font:600 12px var(--font);color:var(--text);flex:1;letter-spacing:-.01em; }
.ev-hist-spk { font:400 11px var(--b);color:var(--text2); }
.ev-hist-meta { font:400 11px var(--b);color:var(--text3); }
.ev-hist-item--forced { border-color:rgba(251,191,36,.22);background:rgba(251,191,36,.04); }
.ev-hist-forced-badge {
  font:600 10px/1 var(--b);color:#fbbf24;
  background:rgba(251,191,36,.14);border:1px solid rgba(251,191,36,.3);
  border-radius:6px;padding:2px 7px;white-space:nowrap;flex-shrink:0;
}

/* ── Histórico v292: lista vem do banco, com busca/período, números e ações ──
   Fundo real de um item = --bgcard2 sobre --bg + rgba(255,255,255,.04) ≈ rgb(25,38,33).
   Sobre ele, --text3 (#527276) mede 3,08:1 e REPROVA em AA — por isso o texto de apoio
   usa --text2 (#92b0b3 = 6,77:1) e o branco de apoio nunca cai abaixo de .55. */
.ev-hist-filters {
  display:flex;align-items:center;gap:8px;
  padding:12px 20px 4px;
}
.ev-hist-search {
  flex:1;min-width:0;
  display:flex;align-items:center;gap:7px;
  padding:0 10px;height:32px;
  background:rgba(255,255,255,.05);
  border:1px solid var(--border);border-radius:9px;
  transition:border-color .15s,background .15s;
}
.ev-hist-search:focus-within { border-color:var(--border2);background:rgba(255,255,255,.07); }
.ev-hist-search svg { stroke:var(--text2);flex-shrink:0; }
.ev-hist-search input {
  flex:1;min-width:0;
  background:none;border:0;outline:none;
  font:400 12px var(--b);color:var(--text);
}
.ev-hist-search input::placeholder { color:var(--text2);opacity:.75; }
.ev-hist-period {
  height:32px;padding:0 8px;flex-shrink:0;
  background:rgba(255,255,255,.05);
  border:1px solid var(--border);border-radius:9px;
  font:500 11.5px var(--b);color:var(--text2);
  cursor:pointer;outline:none;
}
.ev-hist-period:focus-visible { border-color:var(--border2); }
.ev-hist-period option { background:#0f1e18;color:var(--text); }
.ev-hist-reload {
  width:32px;height:32px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.05);
  border:1px solid var(--border);border-radius:9px;
  color:var(--text2);cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
.ev-hist-reload:hover { background:rgba(0,171,169,.14);border-color:var(--border2);color:#7fdbda; }
.ev-hist-reload.is-spin svg { animation:evHistSpin .8s linear infinite; }
@keyframes evHistSpin { to { transform:rotate(360deg); } }

.ev-hist-loading {
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:34px 16px;color:var(--text2);font:400 12.5px var(--b);
}
.ev-hist-warn {
  padding:9px 12px;border-radius:10px;
  background:rgba(251,191,36,.09);border:1px solid rgba(251,191,36,.26);
  color:#fbd583;font:400 11.5px/1.45 var(--b);
}
.ev-hist-warn--soft {
  background:rgba(255,255,255,.04);border-color:var(--border);
  color:var(--text2);
}

/* Item */
.ev-hist-item { gap:7px; }
/* 🔴 Medido a 375px: o selo "Encerrado pelo sistema" (135px, nowrap) empurrava a linha
   10px para fora da lista — o título é `flex:1` e, sem `min-width:0`, um filho flex não
   encolhe abaixo do próprio conteúdo. O wrap é a rede de segurança para selo + título
   longos no mesmo item. */
.ev-hist-row1 { flex-wrap:wrap; }
/* `flex:1 1 55%` em vez de `flex:1`: com o `min-width:0` sozinho o título encolhia até
   quase zero e quebrava uma palavra por linha (row1 medida em 130px de altura) para o
   selo caber ao lado. Com a base de 55% o selo é que desce de linha. */
.ev-hist-city { font:600 13px var(--font);line-height:1.25;flex:1 1 45%;min-width:0;overflow-wrap:anywhere; }
.ev-hist-row2 { display:flex;align-items:center;flex-wrap:wrap;gap:6px; }
.ev-hist-sep { color:var(--text2);opacity:.5;font:400 11px var(--b); }
.ev-hist-spk { color:var(--text2); }
.ev-hist-meta { font:400 10.5px var(--b);color:var(--text2);opacity:.85; }

.ev-hist-pill {
  display:inline-flex;align-items:center;gap:5px;
  font:600 10px/1 var(--b);letter-spacing:.02em;
  border-radius:6px;padding:3px 8px;white-space:nowrap;flex-shrink:0;
}
.ev-hist-pill--live {
  color:#7fe3d6;background:rgba(45,212,191,.12);border:1px solid rgba(45,212,191,.3);
}
.ev-hist-pill--live i {
  width:5px;height:5px;border-radius:50%;background:#2dd4bf;
  animation:evHistDot 1.6s ease-in-out infinite;
}
@keyframes evHistDot { 0%,100% { opacity:1; } 50% { opacity:.35; } }
.ev-hist-pill--closed {
  color:rgba(255,255,255,.6);background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
}

.ev-hist-row3 { display:flex;align-items:center;gap:7px;flex-wrap:wrap; }
.ev-hist-chip {
  font:400 11px/1 var(--b);color:var(--text2);
  background:rgba(255,255,255,.05);border:1px solid var(--border);
  border-radius:7px;padding:4px 8px;
}
.ev-hist-chip b { font-weight:700;color:var(--text);font-size:11.5px; }

.ev-hist-acts { display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:2px; }
.ev-hist-act {
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 10px;border-radius:7px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.72);
  font:600 11px/1 var(--b);cursor:pointer;
  transition:background .15s,border-color .15s,color .15s,transform .1s;
}
.ev-hist-act:hover {
  background:rgba(0,171,169,.14);border-color:rgba(0,171,169,.4);
  color:#7fdbda;transform:translateY(-1px);
}
.ev-hist-act:active { transform:translateY(0); }
.ev-hist-act:disabled { opacity:.55;cursor:default;transform:none; }
.ev-hist-act--main {
  background:rgba(0,171,169,.13);border-color:rgba(0,171,169,.32);color:#7fdbda;
}

.ev-hist-ftr-actions { display:flex;align-items:center;gap:6px;flex-wrap:wrap; }

@media (max-width:560px) {
  .ev-hist-filters { flex-wrap:wrap; }
  .ev-hist-search { flex:1 1 100%;order:-1; }
  .ev-hist-period { flex:1; }
}

/* ── Forced close log modal ── */
.ev-forced-log-body { padding:0 16px 16px;max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px; }
.ev-forced-empty { text-align:center;padding:32px 16px;color:var(--text3);font:300 13px var(--b); }
.ev-forced-item {
  padding:12px 14px;background:rgba(251,191,36,.05);
  border:1px solid rgba(251,191,36,.18);border-radius:12px;display:flex;flex-direction:column;gap:6px;
}
.ev-forced-row1 { display:flex;align-items:center;gap:8px; }
.ev-forced-spk { font:400 12px var(--b);color:var(--text2); }
.ev-forced-city { font:600 13px var(--font);color:var(--text);flex:1; }
.ev-forced-badge-sm { font:600 10px/1 var(--b);color:#fbbf24;background:rgba(251,191,36,.15);border:1px solid rgba(251,191,36,.3);border-radius:5px;padding:2px 6px; }
.ev-forced-meta { font:400 11px var(--b);color:var(--text3); }
.ev-forced-ts { font:700 11px var(--b);color:rgba(251,191,36,.8); }
.ev-forced-detail { display:flex;flex-direction:column;gap:3px;margin-top:2px; }
.ev-forced-detail-row { display:flex;gap:6px;align-items:baseline; }
.ev-forced-dl { font:600 10px var(--b);color:var(--text3);white-space:nowrap; }
.ev-forced-dv { font:400 11px var(--b);color:var(--text2); }

/* ── Modal forçar encerramento ── */
.mce-warn--master { background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.22);border-radius:10px;padding:10px 12px; }
.mce-warn--danger  { background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.22);border-radius:10px;padding:10px 12px; }
.mce-btn--force {
  background:linear-gradient(135deg,rgba(245,158,11,.9),rgba(217,119,6,.95));
  color:#fff;border:none;border-radius:10px;padding:10px 16px;
  font:600 13px var(--font);cursor:pointer;transition:opacity .2s;
}
.mce-btn--force:hover { opacity:.88; }
.mce-force-info { background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:5px; }
.mce-force-row { display:flex;align-items:baseline;gap:8px;font:400 12px var(--b);color:var(--text2); }
.mce-force-lbl { font:600 11px var(--b);color:var(--text3);white-space:nowrap; }
.mce-force-list { margin:0;padding-left:16px;font:400 11px var(--b);color:#fbbf24; }
.mce-force-note { font:300 11px var(--b);color:var(--text3);text-align:center;margin-top:4px; }

/* ── Botão Enc. Forçados ── */
.ev-data-btn--warn { color:#fbbf24 !important; }
.ev-data-btn--warn:hover { background:rgba(251,191,36,.1) !important;border-color:rgba(251,191,36,.25) !important; }

.mctrl-kbd {
  display:inline-block;
  background:rgba(0,171,169,.18);
  border:1px solid rgba(0,171,169,.38);
  border-radius:4px;
  padding:1px 5px;
  font-size:9.5px;
  font-family:var(--b);
  margin-left:4px;
  letter-spacing:.03em;
}

/* ══ QR admin ══ */
.ev-admin-qr-wrap {
  margin:10px 0 6px;
  padding:12px 14px;
  background:rgba(0,171,169,.06);
  border:1px solid rgba(0,171,169,.18);
  border-radius:12px;
  display:flex;flex-direction:column;align-items:stretch;gap:8px;
}
.ev-admin-qr-lbl {
  font:600 11.5px var(--b);color:rgba(0,171,169,.9);
  text-transform:uppercase;letter-spacing:.05em;
}
.ev-admin-link-row {
  display:flex;align-items:center;gap:7px;
  padding:7px 10px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);
  border-radius:8px;
}
.ev-admin-link-type {
  font:600 10px var(--b);
  color:rgba(0,171,169,.8);
  text-transform:uppercase;
  letter-spacing:.04em;
  white-space:nowrap;
  min-width:62px;
}
.ev-admin-qr-url {
  font:400 10px var(--b);
  color:rgba(255,255,255,.38);
  word-break:break-all;
  line-height:1.4;
  flex:1;
}
.ev-admin-qr-btns {
  display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-start;
}
.ev-admin-qr-copy, .ev-admin-qr-show {
  padding:7px 16px;
  background:rgba(0,171,169,.12);
  border:1px solid rgba(0,171,169,.30);
  border-radius:8px;
  color:rgba(0,171,169,.9);
  font:500 12px var(--font);
  cursor:pointer;
  transition:all .18s;
  display:flex;align-items:center;gap:6px;
}
.ev-admin-qr-copy:hover, .ev-admin-qr-show:hover { background:rgba(0,171,169,.22);border-color:rgba(0,171,169,.5);color:#fff; }
.ev-admin-qr-show { background:rgba(0,171,169,.18);border-color:rgba(0,171,169,.45); }

/* ═══ fonte/estilo/30-evento/030-links-e-qr.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Links do evento com miniaturas de QR
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 4038–4130
 * TAMANHO PREVISTO: 93 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ── Links do evento — seção dinâmica com QR thumbnails ── */
@keyframes evLinkIn {
  from { opacity:0; transform:translateY(7px); }
  to   { opacity:1; transform:translateY(0); }
}
.ev-link-row {
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--border);
  animation:evLinkIn .28s ease both;
}
.ev-link-row:last-child { border-bottom:none; }

.ev-link-thumb {
  flex-shrink:0;
  width:56px; height:56px;
  background:#fff;
  border:2px solid var(--lnk-accent, var(--border));
  border-radius:8px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2px;
}
.ev-link-thumb canvas,
.ev-link-thumb img {
  display:block;
  width:48px !important;
  height:48px !important;
  border-radius:4px;
}

.ev-link-body {
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.ev-link-label {
  font:600 9px var(--b);
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--text3);
}
.ev-link-url {
  font:400 10px var(--b);
  color:var(--text2);
  word-break:break-all;
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin-bottom:5px;
}
.ev-link-actions {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.ev-link-btn {
  display:inline-flex;
  align-items:center;
  gap:5px;
  font:500 11px var(--b);
  padding:5px 11px;
  border-radius:7px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.82);
  cursor:pointer;
  transition:background .15s, color .15s, border-color .15s;
  white-space:nowrap;
  line-height:1;
}
.ev-link-btn:hover                       { background:rgba(255,255,255,.13); color:#fff; }
.ev-link-btn--save                       { border-color:rgba(0,171,169,.4);   color:rgba(45,212,191,.9); }
.ev-link-btn--save:hover                 { background:rgba(0,171,169,.14); color:#2dd4bf; }
.ev-link-btn--share                      { border-color:rgba(168,85,247,.4);  color:rgba(192,132,252,.9); }
.ev-link-btn--share:hover                { background:rgba(168,85,247,.14); color:#c084fc; }
.ev-link-btn--show                       { border-color:rgba(0,171,169,.4);   background:rgba(0,171,169,.12); color:rgba(45,212,191,.95); }
.ev-link-btn--show:hover                 { background:rgba(0,171,169,.22); color:#fff; }
.ev-links-empty {
  font:400 12px var(--b);
  color:var(--text3);
  text-align:center;
  padding:14px 0 6px;
}

/* ═══ fonte/estilo/50-acesso/010-login.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Tela de login
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 4131–4615
 * TAMANHO PREVISTO: 485 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ── Tela de login do site ── */
.ev-site-login {
  position:fixed;inset:0;z-index:2000;
  /* Translúcido: deixa as fotos/palavras do descanso aparecerem atrás do form (v260) */
  background:var(--bg-veil); /* Fundo = véu canônico, igual a todas as outras telas */
  display:flex;align-items:center;justify-content:center;
  transition:opacity .35s ease;
}
.ev-site-login-box { position:relative;z-index:1; }
/* Scrim LOCAL atrás do form (espelha o .ss-content::before do descanso):
   dá legibilidade ao form sem alterar o fundo ao redor */
.ev-site-login-box::before {
  content:'';position:absolute;inset:-70px -90px;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 72% 66% at 50% 50%,rgba(8,18,14,.74) 0%,rgba(8,18,14,.30) 60%,transparent 100%);
  border-radius:50%;
}
/* Com o login translúcido, o chrome de trás (menu/rail/controles) vazaria — esconde enquanto o login está visível */
body:has(#evSiteLogin:not(.ev-fade-out):not([style*="none"])) .menu-screen,
body:has(#evSiteLogin:not(.ev-fade-out):not([style*="none"])) .float-ctrl,
body:has(#evSiteLogin:not(.ev-fade-out):not([style*="none"])) #mediaCtrl {
  opacity:0 !important; pointer-events:none !important;
}
.ev-site-login.ev-fade-out { opacity:0;pointer-events:none; }
.ev-site-login-box {
  display:flex;flex-direction:column;align-items:center;
  gap:26px;
  width:100%;max-width:340px;
  padding:0 28px;
}
.ev-site-login-logo {
  width:150px;
  filter:drop-shadow(0 0 20px rgba(0,171,169,.32));
}
.ev-site-login-sub {
  font:300 12.5px/1 var(--b);
  color:rgba(255,255,255,.32);
  text-transform:uppercase;letter-spacing:.16em;
  margin:0;margin-top:-8px;
}
.ev-site-login-form {
  width:100%;display:flex;flex-direction:column;gap:14px;
}
.ev-site-login-btn {
  width:100%;justify-content:center;padding:13px 20px;font-size:14px;
  margin-top:2px;
}
.ev-site-forgot {
  background:none;border:none;padding:0;cursor:pointer;
  font:400 12px/1 var(--b);
  color:rgba(255,255,255,.38);
  text-align:center;width:100%;
  transition:color .18s;
}
.ev-site-forgot:hover { color:rgba(0,171,169,.85); }
.ev-site-login-success {
  text-align:center;border-radius:9px;padding:9px 14px;
  font-size:12.5px;margin-bottom:4px;
}
.ev-site-recovery-hd {
  font:600 15px/1 var(--b);
  color:rgba(255,255,255,.75);
  text-align:center;
  margin-bottom:10px;
}
.ev-site-recovery-desc {
  font:400 12px/1.5 var(--b);
  color:rgba(255,255,255,.38);
  text-align:center;
  margin-bottom:14px;
}
#evSiteLoginView, #evSiteRecoveryView, #evSiteSetupView { width:100%; }

/* ── Setup (primeiro acesso) ── */
.ev-site-setup-welcome {
  display:flex;flex-direction:column;align-items:center;gap:10px;
  margin-bottom:20px;
  animation:siteSetupIn .45s cubic-bezier(.22,1,.36,1) both;
}
@keyframes siteSetupIn {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:translateY(0); }
}
.ev-site-setup-icon {
  width:56px;height:56px;border-radius:50%;
  background:rgba(0,171,169,.12);
  border:1.5px solid rgba(0,171,169,.28);
  display:flex;align-items:center;justify-content:center;
  color:#2dd4bf;
  margin-bottom:2px;
}
.ev-site-setup-title {
  font:600 17px/1 var(--b);
  color:rgba(255,255,255,.88);
  text-align:center;
}
.ev-site-setup-desc {
  font:400 12px/1.55 var(--b);
  color:rgba(255,255,255,.38);
  text-align:center;
  max-width:280px;
}

/* ── Reset modal ── */
.ev-mhd-ic--danger {
  background:rgba(239,68,68,.12);
  color:#f87171;
  border-color:rgba(239,68,68,.25);
}
.ev-reset-what-label {
  font:500 11.5px/1 var(--b);
  color:rgba(255,255,255,.45);
  text-transform:uppercase;letter-spacing:.08em;
  margin-bottom:10px;
}
.ev-reset-summary {
  list-style:none;padding:0;margin:0 0 16px;
  display:flex;flex-direction:column;gap:7px;
}
.ev-reset-summary li {
  font:400 13px/1.4 var(--b);
  color:rgba(255,255,255,.7);
  padding-left:16px;
  position:relative;
}
.ev-reset-summary li::before {
  content:'';position:absolute;left:0;top:7px;
  width:6px;height:6px;border-radius:50%;
  background:rgba(239,68,68,.7);
}
.ev-reset-summary em { color:#f87171;font-style:normal; }
.ev-reset-sep {
  height:1px;background:rgba(255,255,255,.07);
  margin:4px 0 16px;
}
.ev-reset-confirm-label {
  font:400 12.5px/1.5 var(--b);
  color:rgba(255,255,255,.5);
  margin-bottom:10px;
}
.ev-reset-confirm-label strong { color:rgba(239,68,68,.9); }
.ev-reset-confirm-input {
  font-family:var(--b);letter-spacing:.1em;
}
.ev-danger-btn--confirm {
  opacity:.4;cursor:not-allowed;transition:opacity .2s;
}
.ev-danger-btn--confirm:not([disabled]) {
  opacity:1;cursor:pointer;
  background:rgba(239,68,68,.15);
  border-color:rgba(239,68,68,.4);
  color:#f87171;
}

/* ── QR mode selector ── */
.qr-mode-sel {
  display:flex;gap:6px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);
  border-radius:10px;
  padding:4px;
  margin-bottom:14px;
}
.qr-mode-btn {
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:7px 10px;border-radius:7px;
  font:500 12px/1 var(--b);
  color:rgba(255,255,255,.4);
  background:none;border:none;cursor:pointer;
  transition:background .18s,color .18s;
}
.qr-mode-btn:hover { color:rgba(255,255,255,.65); }
.qr-mode-btn.active {
  background:rgba(0,171,169,.18);
  color:#2dd4bf;
}
.qr-auto-info {
  display:flex;align-items:flex-start;gap:12px;
  background:rgba(0,171,169,.07);
  border:1px solid rgba(0,171,169,.2);
  border-radius:11px;
  padding:13px 14px;
  margin-bottom:14px;
}
.qr-auto-info-icon {
  color:#2dd4bf;opacity:.8;flex-shrink:0;margin-top:1px;
}
.qr-auto-info-title {
  font:600 12.5px/1 var(--b);color:rgba(255,255,255,.8);margin-bottom:5px;
}
.qr-auto-info-desc {
  font:400 11.5px/1.55 var(--b);color:rgba(255,255,255,.38);
}
.cfg-qrmp-auto-ph {
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:5px;height:100%;
  color:#2dd4bf;opacity:.75;font:500 10px/1 var(--b);
}

/* ── Login modal: speaker display ── */
.ev-login-spk-display {
  display:flex;align-items:center;gap:14px;
  background:rgba(0,171,169,.07);
  border:1px solid rgba(0,171,169,.22);
  border-radius:13px;
  padding:14px 16px;
  margin-bottom:2px;
}
.ev-login-spk-avatar {
  width:46px;height:46px;border-radius:50%;
  background:rgba(0,171,169,.2);
  border:1.5px solid rgba(0,171,169,.42);
  display:flex;align-items:center;justify-content:center;
  font:700 19px/1 var(--font);color:#2dd4bf;
  flex-shrink:0;text-transform:uppercase;
}
.ev-login-spk-info { flex:1;min-width:0; }
.ev-login-spk-name {
  font:600 15px/1 var(--font);
  color:var(--text);letter-spacing:-.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}/* ── Speaker list: info col, tags, edit btn ── */
.ev-spk-info { flex:1;min-width:0;display:flex;flex-direction:column;gap:3px; }
.ev-spk-info .ev-spk-name { flex:none; }
.ev-spk-tags { display:flex;gap:4px;flex-wrap:wrap;min-width:0; }
.ev-spk-tag {
  display:inline-flex;align-items:center;
  font:500 9px/1 var(--b);letter-spacing:.02em;
  border-radius:4px;padding:2px 6px;
  max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  background:rgba(255,255,255,.07);color:var(--text2);
}
.ev-spk-tag--active  { background:rgba(0,171,169,.14);color:var(--accent2);border:1px solid rgba(0,171,169,.2); }
.ev-spk-tag--logged  { background:rgba(52,211,153,.12);color:#34d399; }
.ev-spk-tag--normal  { background:rgba(255,255,255,.07);color:var(--text2); }
.ev-spk-tag--admin   { background:rgba(249,115,22,.15);color:#fb923c;border:1px solid rgba(249,115,22,.25);font-weight:600; }
.ev-spk-tag--master  { background:rgba(168,85,247,.15);color:#c084fc;border:1px solid rgba(168,85,247,.25);font-weight:600; }
.ev-spk-tag--expired { background:rgba(239,68,68,.12);color:#f87171;border:1px solid rgba(239,68,68,.2); }
.ev-spk-tag--exp     { background:rgba(251,191,36,.1);color:#fbbf24; }
.ev-spk-tag--consultor { background:rgba(0,171,169,.16);color:#2dd4bf;border:1px solid rgba(0,171,169,.30);font-weight:600; }
.ev-spk-avatar--consultor { background:linear-gradient(135deg,#00aba9,#006361); }
.ev-spk-tag--supervisor { background:rgba(59,130,246,.16);color:#60a5fa;border:1px solid rgba(59,130,246,.30);font-weight:600; }
.ev-spk-avatar--supervisor { background:linear-gradient(135deg,#3b82f6,#1d4ed8); }

/* ── Painel do consultor: cidades de que ele recebe alertas ── */
.pwa-notif-cidades { background:rgba(0,171,169,.08);border:1px solid rgba(0,171,169,.22);border-radius:10px;padding:10px 12px;margin:4px 0 2px; }
.pwa-notif-cidades--load  { color:var(--text2);opacity:.7;font-size:12.5px; }
.pwa-notif-cidades--empty { color:var(--text2);font-size:12.5px;line-height:1.4;background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1); }
.pwa-notif-cidades-hd { font-size:11px;font-weight:700;color:#2dd4bf;text-transform:uppercase;letter-spacing:.04em;margin-bottom:7px; }
.pwa-notif-cidades-list { display:flex;flex-wrap:wrap;gap:6px; }
.pwa-notif-cidade-chip { background:rgba(0,171,169,.18);color:#2dd4bf;border:1px solid rgba(0,171,169,.35);border-radius:20px;padding:3px 11px;font-size:12px;font-weight:600; }

/* ── Subtítulo do card de usuário (cidade • consultor) ── */
.ev-usr-sub { font-size:11px;color:var(--text2);opacity:.85;margin:2px 0 0;line-height:1.3;letter-spacing:.01em; }
.ev-usr-sub-cons { color:#2dd4bf;font-weight:600; }
.ev-usr-sub-none { color:#fb923c;opacity:.85;font-style:italic; }
.ev-usr-sub-warn { color:#f87171;font-weight:600; }

/* ── Card de unidade (franqueado): compacto e com cor ── */
.ev-spk-avatar--unidade { background:linear-gradient(135deg,#0e7c79,#06403e);color:#eafffe;font-weight:700; }
.ev-usr-item--unidade { border:1px solid rgba(0,171,169,.14);border-radius:11px;transition:border-color .15s,background .15s; }
.ev-usr-item--unidade:hover { border-color:rgba(0,171,169,.40);background:rgba(0,171,169,.05); }
.ev-usr-item--unidade .ev-spk-name { font-weight:600;font-size:13.5px;letter-spacing:.01em; }

/* ── Filtro por consultor (caixa de seleção) ── */
.ev-usr-cons-wrap { position:relative; }
.ev-usr-cons-btn {
  display:inline-flex;align-items:center;gap:6px;width:100%;justify-content:flex-start;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);color:var(--text2);
  border-radius:9px;padding:7px 11px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;
}
.ev-usr-cons-btn:hover { background:rgba(255,255,255,.08); }
.ev-usr-cons-btn.is-on { background:rgba(0,171,169,.16);border-color:rgba(0,171,169,.42);color:#2dd4bf; }
.ev-usr-cons-caret { margin-left:auto;transition:transform .2s;opacity:.7; }
.ev-usr-cons-btn.is-open .ev-usr-cons-caret { transform:rotate(180deg); }
.ev-usr-cons-badge {
  background:#00aba9;color:#022;border-radius:20px;font-size:10.5px;font-weight:800;
  min-width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;
}
.ev-usr-cons-box {
  margin-top:6px;background:var(--card,#0f1f1b);border:1px solid rgba(0,171,169,.25);
  border-radius:10px;padding:6px;max-height:230px;overflow-y:auto;
  display:flex;flex-direction:column;gap:1px;animation:evUsrGrpIn .18s ease;
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}
.ev-usr-cons-actions { display:flex;gap:6px;padding:2px 2px 6px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:4px; }
.ev-usr-cons-actions button {
  flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:var(--text2);
  border-radius:7px;padding:5px;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;
}
.ev-usr-cons-actions button:hover { background:rgba(0,171,169,.16);color:#2dd4bf;border-color:rgba(0,171,169,.4); }
.ev-usr-cons-opt {
  display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:8px;cursor:pointer;
  font-size:12.5px;color:var(--text);transition:background .12s;
}
.ev-usr-cons-opt:hover { background:rgba(0,171,169,.10); }
.ev-usr-cons-opt input { width:15px;height:15px;accent-color:#00aba9;cursor:pointer;flex-shrink:0; }
.ev-usr-cons-opt--none { color:#fb923c;font-style:italic;margin-top:2px;border-top:1px solid rgba(255,255,255,.06);padding-top:9px; }
.ev-usr-cons-empty { color:var(--text2);opacity:.6;font-size:12px;padding:10px;text-align:center; }

/* ── Barra de filtro da aba Usuários ── */
.ev-usr-filterbar { display:flex;flex-direction:column;gap:8px;margin-bottom:10px; }
.ev-usr-search { position:relative;display:flex;align-items:center; }
.ev-usr-search svg { position:absolute;left:10px;color:var(--text2);opacity:.6;pointer-events:none; }
.ev-usr-search input {
  width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:9px;color:var(--text);font-size:12.5px;padding:8px 10px 8px 30px;outline:none;
  transition:border-color .15s,background .15s;
}
.ev-usr-search input:focus { border-color:var(--accent);background:rgba(255,255,255,.07); }
.ev-usr-search input::placeholder { color:var(--text2);opacity:.55; }
.ev-usr-chips { display:flex;gap:6px;flex-wrap:wrap; }
.ev-usr-chip {
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  color:var(--text2);border-radius:20px;padding:5px 12px;font-size:11.5px;font-weight:500;
  cursor:pointer;transition:all .15s;
}
.ev-usr-chip:hover { background:rgba(255,255,255,.09); }
.ev-usr-chip.is-on {
  background:rgba(0,171,169,.18);border-color:rgba(0,171,169,.45);color:#2dd4bf;font-weight:600;
}
.ev-usr-filter-row { display:flex;gap:6px;align-items:center; }
.ev-usr-filter-row select { flex:1;min-width:0; }
/* especificidade p/ vencer "#evEventModal .ev-input" e evitar texto cortado */
#evEventModal .ev-usr-filter-row select {
  height:34px;font-size:12px;line-height:1.1;
  padding:0 26px 0 10px;border-radius:9px;
  text-overflow:ellipsis;white-space:nowrap;
}
.ev-usr-csv-btn {
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);color:var(--text2);
  border-radius:8px;padding:6px 11px;font-size:11.5px;font-weight:600;cursor:pointer;transition:all .15s;
}
.ev-usr-csv-btn:hover { background:rgba(0,171,169,.14);border-color:rgba(0,171,169,.4);color:#2dd4bf; }

/* ── Grupos recolhíveis por tipo ── */
.ev-usr-grp { margin-bottom:10px; }
.ev-usr-grp-hd {
  display:flex;align-items:center;gap:8px;width:100%;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:9px;padding:8px 11px;cursor:pointer;color:var(--text);
  margin-bottom:6px;transition:background .15s;
}
.ev-usr-grp-hd:hover { background:rgba(255,255,255,.07); }
.ev-usr-grp-caret { transition:transform .2s;flex-shrink:0;color:var(--text2); }
.ev-usr-grp-hd.is-collapsed .ev-usr-grp-caret { transform:rotate(-90deg); }
.ev-usr-grp-name { font-size:12.5px;font-weight:700;letter-spacing:.02em;flex:1;text-align:left; }
.ev-usr-grp-name--franqueado { color:#2dd4bf; }
.ev-usr-grp-count {
  font-size:11px;font-weight:700;color:var(--text2);
  background:rgba(255,255,255,.08);border-radius:20px;padding:2px 9px;min-width:22px;text-align:center;
}
.ev-usr-grp-body { display:flex;flex-direction:column;gap:4px;animation:evUsrGrpIn .22s ease; }
@keyframes evUsrGrpIn { from { opacity:0;transform:translateY(-4px); } to { opacity:1;transform:none; } }
.ev-usr-empty { color:var(--text2);opacity:.6;font-size:12.5px;padding:14px 4px;text-align:center; }

.ev-spk-tag--admin {
  background:rgba(139,92,246,.22);
  color:#c4b5fd;
  border:1px solid rgba(139,92,246,.40);
  display:inline-flex;align-items:center;gap:4px;
  padding:2px 8px 2px 6px;
  font-weight:600;font-size:10px;letter-spacing:.04em;
  animation:adminBadgeIn .45s cubic-bezier(.16,1,.3,1) both;
}
@keyframes adminBadgeIn {
  from { opacity:0;transform:scale(.70) translateY(3px); }
  to   { opacity:1;transform:scale(1)   translateY(0);   }
}
/* Row admin */
.ev-spk-item--admin {
  background:rgba(139,92,246,.08) !important;
  border-color:rgba(139,92,246,.22) !important;
  border-left:2.5px solid rgba(139,92,246,.60) !important;
  padding-left:10px !important;
}
.ev-spk-item--admin:hover { background:rgba(139,92,246,.13) !important; }
/* Avatar admin */
.ev-spk-avatar--admin  { background:rgba(249,115,22,.25);border-color:rgba(249,115,22,.4);color:#fb923c;font-weight:700; }
.ev-spk-avatar--master { background:rgba(168,85,247,.25);border-color:rgba(168,85,247,.4);color:#c084fc;font-weight:700; }
.ev-spk-avatar--normal { background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);color:var(--text2); }
/* Nome admin */
.ev-spk-name--admin {
  color:#c4b5fd;
  display:flex;align-items:center;gap:5px;
}
.ev-spk-name--admin svg { opacity:.75;flex-shrink:0; }
/* Botão escudo — estado ativo mais destacado */
.ev-spk-admin-btn {
  width:26px;height:26px;border-radius:7px;
  background:transparent;border:1px solid transparent;
  color:rgba(255,255,255,.28);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s;flex-shrink:0;
}
.ev-spk-admin-btn:hover {
  background:rgba(139,92,246,.12);
  border-color:rgba(139,92,246,.25);
  color:#a78bfa;
}
.ev-spk-admin-btn--on {
  color:#c4b5fd;
  background:rgba(139,92,246,.22);
  border-color:rgba(139,92,246,.50);
  box-shadow:0 0 8px rgba(139,92,246,.30);
}
.ev-spk-admin-btn--on:hover {
  background:rgba(239,68,68,.12);
  border-color:rgba(239,68,68,.25);
  color:#f87171;
  box-shadow:none;
}
.ev-spk-edit-btn {
  width:26px;height:26px;border-radius:7px;
  background:transparent;border:1px solid transparent;
  color:var(--text3);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s;flex-shrink:0;
}
.ev-spk-edit-btn:hover {
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.14);
  color:var(--text2);
}
.ev-spk-edit-form {
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  padding:13px 14px;
  margin-bottom:2px;
}

/* ══ Botão lista ao vivo (upload zone) ══ */
/* ══════════════════════════════════════
   SORTEIO ONLINE — card ao vivo (destaque)
   ══════════════════════════════════════ */
.upload-live-card {
  width:100%;
  background:linear-gradient(135deg,rgba(0,171,169,.13) 0%,rgba(0,171,169,.06) 100%);
  border:1.5px solid rgba(0,171,169,.38);
  border-radius:20px;
  padding:22px 22px 18px;
  display:flex;flex-direction:column;gap:12px;
  box-shadow:0 0 32px rgba(0,171,169,.10),inset 0 1px 0 rgba(255,255,255,.06);
  cursor:default;
}
.ulc-top {
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.ulc-header {
  display:flex;align-items:center;gap:9px;
}
.ulc-live-dot {
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
  background:#00aba9;
  box-shadow:0 0 8px rgba(0,171,169,.9),0 0 16px rgba(0,171,169,.5);
  animation:mpDotPulse 1.8s ease-in-out infinite;
}
.ulc-title {
  font:700 16px/1 var(--font);
  color:#fff;letter-spacing:-.01em;
}
.ulc-count-pill {
  display:inline-flex;align-items:center;
  background:rgba(0,171,169,.20);
  border:1px solid rgba(0,171,169,.38);
  border-radius:99px;
  padding:4px 12px;
  font:600 12px/1 var(--b);
  color:#5eead4;
  white-space:nowrap;
  transition:background .2s,border-color .2s;
}
@keyframes liveBadgePulse {
  0%   { transform:scale(1); }
  40%  { transform:scale(1.15);background:rgba(0,171,169,.38);border-color:rgba(0,200,196,.6); }
  100% { transform:scale(1); }
}
.live-badge-pulse { animation:liveBadgePulse .5s cubic-bezier(.34,1.56,.64,1); }
.ulc-desc {
  font:400 12px/1.4 var(--b);
  color:rgba(255,255,255,.42);
  margin:0;text-align:left;
}

/* ═══ fonte/estilo/20-telao/030-upload-e-erro.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Upload no card ao vivo, estados de erro
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 4616–5087
 * TAMANHO PREVISTO: 472 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ── Upload Live Card: retry/error ── */
.ulc-fetch-error { margin-top: 10px; display: flex; flex-direction: column; gap: 7px; }
.ulc-loading-row { display:flex;align-items:center;gap:8px;margin-top:10px;font:500 12px/1 var(--b);color:rgba(255,255,255,.6); }
.ulc-success-row { color:#4ade80; }
.ulc-spinner { width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:#2dd4bf;animation:spin .7s linear infinite;flex-shrink:0; }
@keyframes spin { to { transform:rotate(360deg); } }
.ulc-err-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.ulc-err-msg { font: 400 12px/1.4 var(--b); color: #f87171; }
.ulc-err-badge {
  font: 700 10px/1 var(--b); color: #fbbf24;
  background: rgba(251,191,36,.12); border: 1px solid rgba(251,191,36,.28);
  border-radius: 999px; padding: 2px 8px; white-space: nowrap;
}
.ulc-err-unstable {
  font: 700 10px/1 var(--b); color: #f87171;
  background: rgba(248,113,113,.1); border: 1px solid rgba(248,113,113,.25);
  border-radius: 999px; padding: 2px 8px; white-space: nowrap;
}
.ulc-err-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.ulc-retry-btn {
  padding: 5px 13px; border-radius: 7px;
  background: #dc2626; color: #fff; border: none;
  font: 700 11px/1 var(--b); cursor: pointer; white-space: nowrap;
  transition: background .15s, opacity .15s;
}
.ulc-retry-btn:disabled { opacity: .5; cursor: not-allowed; }
.ulc-retry-btn:not(:disabled):hover { background: #b91c1c; }
.ulc-skip-btn {
  padding: 5px 13px; border-radius: 7px;
  background: rgba(255,255,255,.08); color: rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.15); font: 600 11px/1 var(--b);
  cursor: pointer; white-space: nowrap; transition: background .15s;
}
.ulc-skip-btn:hover { background: rgba(255,255,255,.15); }
.ulc-err-det { margin-top: 2px; }
.ulc-err-det summary {
  font: 500 10px/1 var(--b); color: rgba(255,255,255,.28);
  cursor: pointer; list-style: none; user-select: none;
}
.ulc-err-det summary::-webkit-details-marker { display: none; }
.ulc-err-det summary::after { content: ' ▸'; }
.ulc-err-det[open] summary::after { content: ' ▾'; }
.ulc-err-det code {
  display: block; margin-top: 5px;
  font: 400 10px/1.4 var(--b); color: rgba(255,255,255,.38);
  word-break: break-all;
}
.ulc-bg-note {
  font: 400 10px/1 var(--b); color: rgba(255,255,255,.28); font-style: italic;
}
.btn-sortear-agora {
  display:flex;align-items:center;justify-content:center;gap:9px;
  width:100%;
  padding:14px 24px;
  background:linear-gradient(135deg,#00aba9,#00c4c0);
  border:none;border-radius:14px;
  color:#fff;
  font:700 15px/1 var(--font);
  cursor:pointer;letter-spacing:.01em;
  box-shadow:0 6px 24px rgba(0,171,169,.35),0 2px 8px rgba(0,0,0,.18);
  transition:all .22s var(--ee);
}
.btn-sortear-agora:hover {
  background:linear-gradient(135deg,#00c4c0,#00dbd6);
  transform:translateY(-2px);
  box-shadow:0 10px 32px rgba(0,171,169,.45);
}
.btn-sortear-agora:active { transform:translateY(0);transition-duration:.08s; }

/* badge de contagem dentro do botão Sortear agora */
.btn-sortear-count {
  display:none!important;align-items:center;
  padding:2px 8px;
  border-radius:20px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.30);
  font:700 11px/1.4 var(--b);
  color:#fff;
  letter-spacing:.02em;
  flex-shrink:0;
  transition:transform .15s var(--ee), background .2s;
}
@keyframes btnCountPulse {
  0%   { transform:scale(1); background:rgba(255,255,255,.18); }
  35%  { transform:scale(1.22); background:rgba(255,255,255,.38); }
  100% { transform:scale(1); background:rgba(255,255,255,.18); }
}
.btn-sortear-count.pulse {
  animation:btnCountPulse .4s var(--ee);
}

.btn-sortear-agora.live-active {
  background:linear-gradient(135deg,rgba(0,171,169,.4),rgba(0,171,169,.28));
  box-shadow:none;
  cursor:default;
}

/* ── Separador ── */
.upload-live-sep {
  font:400 11px var(--b);
  color:rgba(255,255,255,.22);
  letter-spacing:.06em;
  margin:2px 0;
}

/* ── Área de arquivo: normal e modo compacto ── */
.upload-file-area {
  display:flex;flex-direction:column;align-items:center;gap:14px;
  width:100%;
  transition:all .3s var(--ee);
}

/* Compacto — quando o live card está visível */
.upload-zone.has-live .upload-file-area {
  gap:8px;
}
.upload-zone.has-live .upload-ic svg {
  width:26px;height:26px;stroke-width:1.8;
  filter:drop-shadow(0 0 6px var(--accentglow));
}
.upload-zone.has-live .upload-ttl {
  font-size:13px;font-weight:600;color:rgba(255,255,255,.55);
}
.upload-zone.has-live .upload-sub { display:none; }
.upload-zone.has-live .btn-upload {
  padding:8px 22px;font-size:12.5px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:none;color:rgba(255,255,255,.70);
  border-radius:10px;
}
.upload-zone.has-live .btn-upload:hover {
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.28);
  color:#fff;transform:none;
  box-shadow:none;
}
.upload-zone.has-live .upload-drag { display:none; }

/* Compat IDs antigos */
.btn-live-mode { display:none; }
.live-count-badge { display:none; }

/* ══ Live Feed (upload zone) ══ */
@keyframes dotPulse {
  0%,100% { opacity:1; }
  50% { opacity:.3; }
}
@keyframes feedCardIn {
  from { opacity:0; transform:translateY(-10px) scale(.97); }
  to   { opacity:1; transform:none; }
}
.live-feed {
  width:100%; max-width:320px;
  margin-top:14px;
}
.live-feed-hd {
  display:flex; align-items:center; gap:6px;
  font:600 10.5px var(--b);
  color:rgba(0,171,169,.65);
  text-transform:uppercase; letter-spacing:.07em;
  margin-bottom:7px;
}
.live-feed-dot {
  width:6px; height:6px;
  background:#00aba9; border-radius:50%;
  animation:dotPulse 1.4s ease infinite;
}
.live-feed-list { display:flex; flex-direction:column; gap:4px; }
.live-feed-card {
  display:flex; align-items:center; gap:8px;
  background:rgba(0,171,169,.08);
  border:1px solid rgba(0,171,169,.18);
  border-radius:8px;
  padding:7px 12px;
  color:rgba(255,255,255,.82);
  font:400 13px var(--font);
  animation:feedCardIn .35s cubic-bezier(.34,1.56,.64,1);
}
.live-feed-card--static { animation:none; opacity:.65; }
.live-feed-card svg { color:rgba(0,171,169,.65); flex-shrink:0; }
.live-feed-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ══ Toast novos leads (draw mode) ══ */
@keyframes toastIn {
  from { opacity:0; transform:translateX(44px) scale(.9); }
  to   { opacity:1; transform:none; }
}
@keyframes toastOut {
  to { opacity:0; transform:translateX(44px) scale(.9); }
}
.lead-toast-wrap {
  position:fixed; bottom:80px; right:20px;
  display:flex; flex-direction:column; gap:8px;
  z-index:9999; pointer-events:none;
}
.lead-toast {
  display:flex; align-items:center; gap:9px;
  background:rgba(4,24,24,.90);
  border:1px solid rgba(0,171,169,.38);
  border-radius:12px;
  padding:10px 16px;
  color:rgba(255,255,255,.92);
  font:500 13px var(--font);
  backdrop-filter:blur(12px);
  box-shadow:0 4px 22px rgba(0,0,0,.45);
  animation:toastIn .32s cubic-bezier(.34,1.56,.64,1);
  max-width:260px;
}
.lead-toast strong { color:#5de3e1; }
.lead-toast-dot {
  width:7px; height:7px; flex-shrink:0;
  background:#00aba9; border-radius:50%;
  animation:dotPulse 1.2s ease infinite;
}
.lead-toast-out { animation:toastOut .35s ease forwards; }

/* ══ Unified Event Modal (evEventModal) ══ */
.ev-em-box {
  width:100%;max-width:760px;
  height:640px;max-height:calc(100vh - 40px);
  background:var(--bgcard2);
  border:1px solid var(--border);
  border-radius:20px;
  box-shadow:var(--shadow-l);
  display:flex;flex-direction:column;
  overflow:hidden;
}

/* ── Header ── */
.ev-em-hd {
  display:flex;align-items:center;gap:12px;
  padding:16px 18px;
  background:rgba(0,171,169,.06);
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.ev-em-hd-icon {
  width:34px;height:34px;border-radius:10px;
  background:rgba(0,171,169,.15);
  border:1px solid var(--border2);
  display:flex;align-items:center;justify-content:center;
  color:#2dd4bf;flex-shrink:0;
}
.ev-em-hd-txt { flex:1;min-width:0; }
.ev-em-hd-title {
  font:700 14px/1 var(--font);
  color:var(--text);
  letter-spacing:-.01em;
}
.ev-em-hd-sub {
  font:400 11px/1 var(--b);
  color:var(--text2);
  margin-top:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* ── Body ── */
.ev-em-body {
  display:flex;flex:1;min-height:0;overflow:hidden;
}

/* ── Sidebar nav ── */
.ev-em-nav {
  width:115px;flex-shrink:0;
  padding:10px 8px;
  background:rgba(0,0,0,.15);
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;gap:2px;
}
.ev-em-nav-item {
  width:100%;
  display:flex;align-items:center;gap:7px;
  padding:8px 10px;
  border-radius:8px;border:none;
  background:transparent;
  color:var(--text2);
  font:500 11px/1 var(--b);
  cursor:pointer;text-align:left;
  transition:background .15s,color .15s;
}
.ev-em-nav-item:hover { background:rgba(255,255,255,.05);color:var(--text); }
.ev-em-nav-item.active { background:rgba(0,171,169,.15);color:#2dd4bf;font-weight:600; }
.ev-em-nav-item svg { opacity:.65;flex-shrink:0; }
.ev-em-nav-item.active svg { opacity:1; }
.ev-live-dot {
  width:8px;height:8px;border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 0 rgba(34,197,94,.6);
  animation:livePulse 1.6s ease-out infinite;
  flex-shrink:0;margin-left:auto;
}
@keyframes livePulse {
  0%   { box-shadow:0 0 0 0 rgba(34,197,94,.6); }
  70%  { box-shadow:0 0 0 6px rgba(34,197,94,0); }
  100% { box-shadow:0 0 0 0 rgba(34,197,94,0); }
}

/* ── Content area ── */
.ev-em-content {
  flex:1;overflow-y:auto;
  padding:14px 16px;min-width:0;
}
.ev-em-content::-webkit-scrollbar { width:4px; }
.ev-em-content::-webkit-scrollbar-thumb { background:var(--border);border-radius:4px; }

/* ── Section ── */
.ev-em-sec {
  display:flex;flex-direction:column;gap:10px;
}
/* Padrão de seções do mockup */
.ev-sec-title {
  font:700 10px var(--b);text-transform:uppercase;letter-spacing:.1em;
  color:var(--text3);padding:0 2px;margin-top:4px;
}
.ev-sec-block { display:flex;flex-direction:column;gap:6px; }
.ev-field-row {
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px 12px;background:rgba(255,255,255,.04);
  border:1px solid var(--border);border-radius:9px;
}
.ev-field-row-info { display:flex;flex-direction:column;gap:2px;flex:1;min-width:0; }
.ev-field-row-lbl  { font:500 12px var(--b);color:var(--text); }
.ev-field-row-hint { font:400 10px var(--b);color:var(--text3); }
.ev-field-row-val  { font:500 11px var(--b);color:var(--text2);flex-shrink:0; }
.ev-note {
  font:400 11px var(--b);color:var(--text3);
  padding:8px 10px;background:rgba(255,255,255,.03);
  border:1px solid var(--border);border-radius:8px;
}
.ev-note--teal { background:rgba(0,171,169,.06);border-color:var(--border2);color:#2dd4bf; }
.ev-note--warn { background:rgba(251,191,36,.06);border-color:rgba(251,191,36,.2);color:#fbbf24; }
@keyframes evEmSecIn {
  from { opacity:0;transform:translateX(8px); }
  to   { opacity:1;transform:none; }
}
.ev-em-sec-in { animation:evEmSecIn .22s cubic-bezier(.22,1,.36,1) both; }

/* ── Footer ── */
.ev-em-footer-wrap {
  border-top:1px solid var(--border);
  flex-shrink:0;background:rgba(0,0,0,.12);
}
.ev-em-ftr {
  display:flex;align-items:center;
  justify-content:space-between;
  padding:14px 22px;gap:8px;
}

/* ── Close event section ── */
.ev-em-close-wrap {
  border-top:1px solid rgba(255,255,255,.06);
  padding-top:16px;
  display:flex;flex-direction:column;gap:10px;
}
.ev-em-close-confirm {
  background:rgba(239,68,68,.07);
  border:1px solid rgba(239,68,68,.2);
  border-radius:11px;
  padding:13px 15px;
  display:flex;flex-direction:column;gap:10px;
}
.ev-em-close-confirm p {
  font:400 12px/1.5 var(--b);
  color:rgba(255,255,255,.5);margin:0;
}
.ev-em-close-confirm-btns {
  display:flex;justify-content:flex-end;gap:8px;
}

/* ── Config nav tiles (atalhos dentro da seção Config) ── */
.cfg-nav-sec { padding: 4px 0 2px; }
.cfg-nav-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
  gap: 8px;
  padding: 10px 14px 12px;
}
.cfg-nav-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  padding: 14px 8px 12px;
  border-radius: 12px;
  background: rgba(0,171,169,.08);
  border: 1px solid rgba(0,171,169,.15);
  color: var(--text);
  font-size: 11px;
  font-family: var(--b);
  font-weight: 700;
  cursor: pointer;
  transition: background .15s, transform .1s;
}
.cfg-nav-tile svg { stroke: rgba(0,171,169,.9); flex-shrink: 0; }
.cfg-nav-tile:hover { background: rgba(0,171,169,.15); transform: translateY(-1px); }
.cfg-nav-tile:active { transform: translateY(0); }

/* ── Config sections inside evEventModal — dark mode overrides ── */
#evEventModal .cfg-sec {
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(0,171,169,.12);
  border-radius: 12px;
  margin: 0;
  box-shadow: none;
}
#evEventModal .cfg-sec-title { color: rgba(0,171,169,.85); }
#evEventModal .cfg-sec-ic-wrap { background: rgba(0,171,169,.1); }
#evEventModal .cfg-sec-ic { stroke: rgba(0,171,169,.9); }
#evEventModal .cfg-row-lbl { color: var(--text); font-size: 12px; font-weight: 500; }
#evEventModal .cfg-row-hint { color: var(--text3); font-size: 11px; }
#evEventModal .cfg-row:hover { background: rgba(255,255,255,.03); }
#evEventModal .cfg-toggle-row:hover { background: rgba(255,255,255,.03); }
#evEventModal .cfg-toggle-lbl { color: var(--text); font-size: 12px; font-weight: 500; }
#evEventModal .cfg-toggle-dsc { color: var(--text3); font-size: 11px; }
#evEventModal .cfg-sep { background: rgba(255,255,255,.07); margin-left: 0; margin-right: 0; }
/* Steppers menores no modal */
#evEventModal .cfg-stepper { background: rgba(255,255,255,.04); border-color: rgba(0,171,169,.2); }
#evEventModal .cfg-step-btn { color: var(--text); width:26px; height:26px; font-size:15px; }
#evEventModal .cfg-step-val { color: #00aba9; border-color: rgba(0,171,169,.2); min-width:32px; height:26px; line-height:26px; font-size:13px; }
#evEventModal .cfg-range-lbl-txt { color: var(--text); font-size: 12px; font-weight: 500; }
#evEventModal .cfg-speed-tag { color: #00aba9; background: rgba(0,171,169,.12); }
/* Toggles no tamanho --sm no modal (igual às outras abas) */
#evEventModal .dvi-sw { width:36px; height:20px; }
#evEventModal .dvi-sw .dvi-sw-track::after { width:14px; height:14px; top:3px; left:3px; }
#evEventModal .dvi-sw input:checked + .dvi-sw-track::after { transform:translateX(16px); }
#evEventModal .cfg-toggle-row { padding:9px 14px; min-height:38px; }
/* Inputs e labels menores na aba Evento */
#evEventModal .ev-input { padding:8px 11px; font-size:12.5px; border-radius:9px; }
#evEventModal .ev-flbl { font-size:10px; color:var(--text3); letter-spacing:.05em; }
#evEventModal .tc {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.09);
}
#evEventModal .tc:hover { border-color: rgba(0,171,169,.5); }
#evEventModal .tc.active { border-color: #00aba9; box-shadow: 0 0 0 3px rgba(0,171,169,.14); }
#evEventModal .tc-foot {
  background: rgba(255,255,255,.02);
  border-top-color: rgba(255,255,255,.07);
}
#evEventModal .tc-name { color: var(--text2); }
#evEventModal .ct { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.09); }
#evEventModal .ct:hover { border-color: rgba(0,171,169,.5); }
#evEventModal .ct.active { border-color: #00aba9; box-shadow: 0 0 0 3px rgba(0,171,169,.14); }
#evEventModal .ct-foot { background: rgba(255,255,255,.02); border-top-color: rgba(255,255,255,.07); }
#evEventModal .ct-name { color: var(--text2); }
#evEventModal .ds { background: rgba(255,255,255,.04); border-color: rgba(0,171,169,.18); color: var(--text2); }
#evEventModal .ds.active { background: rgba(0,171,169,.16); border-color: rgba(0,171,169,.5); color: #00aba9; }
#evEventModal .cfg-qr-upload { background: rgba(255,255,255,.03); border-color: rgba(0,171,169,.18); }
#evEventModal .cfg-qr-placeholder { color: var(--text3); }
#evEventModal .cfg-qr-placeholder svg { stroke: var(--text3); }
#evEventModal .cfg-text-input {
  background: rgba(255,255,255,.05);
  border-color: rgba(0,171,169,.22);
  color: var(--text);
}
#evEventModal .cfg-text-input::placeholder { color: var(--text3); }
#evEventModal .cfg-text-input:focus { border-color: rgba(0,171,169,.6); background: rgba(0,171,169,.07); }
.ev-em-qr-toggles-lbl { font:700 11px/1 var(--b);color:var(--text2);text-transform:uppercase;letter-spacing:.07em;padding:16px 0 8px; }
.ev-em-toggle-row { background:transparent; }
.ev-em-toggle-row .cfg-toggle-lbl { color:var(--text); }
/* ── Evento section structure ── */
.ev-em-stitle {
  font:700 11px/1.2 var(--b); text-transform:uppercase; letter-spacing:.13em;
  color:var(--text2);
  padding:0 0 7px; margin:3px 0 2px;
  border-bottom:1px solid rgba(0,171,169,.16);
}
.ev-em-sep    { display:none; }
.ev-em-grid2  { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
/* Ritmo vertical uniforme entre campos/seções do form de evento */
#evEmEventoNormal { display:flex; flex-direction:column; gap:13px; }

/* ═══ fonte/estilo/30-evento/040-linhas-de-qr.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Linhas de liga/desliga do QR no modal
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 5088–5338
 * TAMANHO PREVISTO: 251 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* QR toggle rows no modal — estilo bordado igual à proposta */
#evEventModal .ev-em-toggle-row {
  background:rgba(255,255,255,.04); border:1px solid var(--border);
  border-radius:9px; padding:8px 12px; min-height:auto;
}
#evEventModal .ev-em-toggle-row:hover { background:rgba(255,255,255,.07); }
.ev-em-toggle-row .cfg-toggle-dsc { color:var(--text3); }
.ev-em-toggle-row:hover { background:rgba(255,255,255,.03); }

/* ─── Aba Dados — Stats ────────────────────────────────────────────────────── */
.ev-em-dados-stats {
  display:flex;align-items:center;gap:0;
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  margin-bottom:12px;
}
.ev-em-stat {
  flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:14px 16px;
}
.ev-em-stat-val {
  font:700 28px/1 var(--b);
  color:var(--accent);
  letter-spacing:-.5px;
  transition:color .2s;
}
.ev-em-stat-lbl {
  font:400 10px/1 var(--b);
  color:var(--text3);
  text-transform:uppercase;letter-spacing:.06em;
}
.ev-em-stat-div {
  width:1px;height:40px;
  background:var(--border);flex-shrink:0;
}

/* ─── Mini painel de leads ──────────────────────────────────────────────────── */
.ev-leads-panel {
  display:flex;flex-direction:column;gap:8px;
  margin-top:12px;
}
.ev-leads-filters {
  display:flex;flex-direction:column;gap:6px;
}
.ev-leads-search {
  width:100%;box-sizing:border-box;
  background:rgba(255,255,255,.06);
  border:1px solid var(--border2);
  border-radius:10px;
  color:var(--text);
  font:400 12px var(--font);
  padding:8px 12px;
  outline:none;
  transition:border-color .2s;
}
.ev-leads-search::placeholder { color:var(--text3); }
.ev-leads-search:focus { border-color:var(--accent); }
.ev-leads-sel {
  width:100%;box-sizing:border-box;
  background:rgba(255,255,255,.06);
  border:1px solid var(--border2);
  border-radius:10px;
  color:var(--text);
  font:400 12px var(--font);
  padding:8px 12px;
  outline:none;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  transition:border-color .2s;
}
.ev-leads-sel:focus { border-color:var(--accent); }
.ev-leads-sel option { background:#1a2535;color:var(--text); }
.ev-leads-count {
  font:400 11px var(--b);
  color:var(--text3);
  padding:0 2px;
  min-height:14px;
}
.ev-leads-list {
  display:flex;flex-direction:column;gap:6px;
  max-height:300px;
  overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:var(--border) transparent;
  padding-right:2px;
}
.ev-leads-list::-webkit-scrollbar { width:3px; }
.ev-leads-list::-webkit-scrollbar-thumb { background:var(--border);border-radius:3px; }
.ev-leads-loading {
  display:flex;align-items:center;gap:10px;
  padding:24px 0;
  justify-content:center;
  color:var(--text3);
  font:400 12px var(--b);
}
.ev-leads-spinner {
  width:16px;height:16px;
  border:2px solid var(--border);
  border-top-color:var(--accent);
  border-radius:50%;
  animation:spin .8s linear infinite;
  flex-shrink:0;
}
@keyframes spin { to { transform:rotate(360deg); } }
.ev-leads-empty {
  text-align:center;padding:28px 16px;
  color:var(--text3);font:300 12px var(--b);
}
.ev-lead-card {
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  display:flex;flex-direction:column;gap:4px;
  animation:fadeIn .18s ease;
}
@keyframes fadeIn { from { opacity:0;transform:translateY(4px); } to { opacity:1;transform:none; } }
.ev-lead-card:hover { background:rgba(255,255,255,.07); }
.ev-lead-row1 {
  display:flex;align-items:center;gap:8px;
}
.ev-lead-avatar {
  width:28px;height:28px;border-radius:50%;
  background:rgba(0,171,169,.18);
  border:1px solid rgba(0,171,169,.3);
  display:flex;align-items:center;justify-content:center;
  font:600 11px var(--b);color:var(--accent);
  flex-shrink:0;
}
.ev-lead-nome {
  font:600 12px/1.2 var(--b);
  color:var(--text);
  flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ev-lead-time {
  font:400 10px var(--b);
  color:var(--text3);
  flex-shrink:0;
}
.ev-lead-tags {
  display:flex;gap:4px;flex-wrap:wrap;
  padding-left:36px;
}
.ev-lead-tag {
  font:400 10px/1 var(--b);
  padding:2px 7px;
  border-radius:6px;
  background:rgba(255,255,255,.07);
  border:1px solid var(--border);
  color:var(--text2);
  white-space:nowrap;
}
.ev-lead-tag--area {
  background:rgba(0,171,169,.1);
  border-color:rgba(0,171,169,.25);
  color:var(--accent);
}
.ev-lead-tag--fase {
  background:rgba(139,92,246,.08);
  border-color:rgba(139,92,246,.22);
  color:#a78bfa;
}
.ev-lead-contact {
  display:flex;gap:8px;flex-wrap:wrap;
  padding-left:36px;
}
.ev-lead-contact-item {
  font:400 10px var(--b);
  color:var(--text3);
  display:flex;align-items:center;gap:3px;
}

/* ── Speaker tags extras (expiração) ── */
.ev-spk-tag--expired {
  background:rgba(239,68,68,.15);
  border-color:rgba(239,68,68,.3);
  color:#f87171;
}
.ev-spk-tag--exp {
  background:rgba(245,158,11,.1);
  border-color:rgba(245,158,11,.25);
  color:#fbbf24;
}
.ev-spk-avatar--expired {
  background:rgba(239,68,68,.18);
  border:1.5px solid rgba(239,68,68,.35);
  color:#f87171;
}

/* ── Dashboard ao vivo ── */
.ev-em-dash-hd {
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:12px;
  font:600 11px/1 var(--b);
  text-transform:uppercase;
  letter-spacing:.06em;
  color:rgba(255,255,255,.62);
}
/* ── Admin Base — Todos os Eventos ── */
.ev-base-toolbar {
  display:flex;gap:8px;align-items:center;margin-bottom:10px;
}
.ev-base-toolbar .ev-input { flex:1;font-size:12px;padding:8px 11px; }
.ev-base-refresh-btn {
  flex-shrink:0;width:32px;height:32px;border-radius:8px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s,border-color .2s;
}
.ev-base-refresh-btn:hover { background:rgba(0,171,169,.16);border-color:rgba(0,171,169,.32);color:#2dd4bf; }
.ev-base-stats { margin-bottom:12px; }
.ev-base-stat { font:400 12px/1 var(--b);color:var(--text3); }
.ev-base-stat strong { color:var(--text);font-weight:700; }
.ev-base-stat--teal strong { color:#2dd4bf; }
.ev-base-stat--purple strong { color:#a78bfa; }
.ev-base-stat--amber strong { color:#fb923c; }
.ev-base-list { display:flex;flex-direction:column;gap:10px; }
.ev-base-row {
  border-radius:10px;padding:10px 12px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);
  transition:border-color .18s;
}
.ev-base-row:hover { border-color:rgba(0,171,169,.22); }
.ev-base-row-top { display:flex;flex-direction:column;gap:3px;margin-bottom:8px; }
.ev-base-row-info { display:flex;align-items:center;gap:7px; }
.ev-base-spk { font:600 12px/1 var(--font);color:var(--text); }
.ev-base-badge {
  font:700 8.5px/1 var(--b);padding:3px 7px;border-radius:99px;
  letter-spacing:.06em;text-transform:uppercase;
}
.ev-base-badge--green  { background:rgba(34,197,94,.14);border:1px solid rgba(34,197,94,.26);color:#86efac; }
.ev-base-badge--gray   { background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.35); }
.ev-base-badge--red    { background:rgba(239,68,68,.14);border:1px solid rgba(239,68,68,.26);color:#fca5a5; }
.ev-base-badge--closed { background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.22);color:rgba(251,191,36,.75);letter-spacing:.01em; }
.ev-base-row--deleted { opacity:0.45; }
.ev-base-row-nome { font:500 12px/1 var(--b);color:rgba(255,255,255,.55);margin-bottom:1px; }
.ev-base-row-meta { display:flex;gap:8px;flex-wrap:wrap; }
.ev-base-row-meta span { font:400 11px/1 var(--b);color:var(--text3); }
.ev-base-usr { color:rgba(0,171,169,.7) !important; }
.ev-base-row-bot { display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap; }
.ev-base-counts { display:flex;gap:10px;flex-wrap:wrap; }
.ev-base-count {
  display:inline-flex;align-items:center;gap:4px;
  font:400 11px/1 var(--b);color:var(--text3);
}
.ev-base-count--teal   { color:rgba(0,171,169,.75); }
.ev-base-count--purple { color:rgba(139,92,246,.8); }
.ev-base-count--amber  { color:rgba(251,146,60,.85); }

/* ═══ fonte/estilo/40-admin/030-timeline.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Timeline de evento no histórico
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 5339–5454
 * TAMANHO PREVISTO: 116 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ── Timeline de evento (Histórico) ── */
.ev-tl-wrap { display:flex;align-items:center;padding:9px 14px;gap:0;overflow-x:auto;border-bottom:1px solid rgba(255,255,255,.04);scrollbar-width:none;background:rgba(0,0,0,.12); }
.ev-tl-wrap::-webkit-scrollbar { display:none; }
.ev-tl-step { display:flex;flex-direction:column;align-items:center;gap:3px;flex-shrink:0;position:relative;opacity:0;animation:ev-tl-in .3s ease forwards;animation-delay:calc(var(--i,0) * .07s); }
@keyframes ev-tl-in { from{opacity:0;transform:translateX(-5px)} to{opacity:1;transform:none} }
.ev-tl-line { flex:1;min-width:14px;height:1px;background:rgba(255,255,255,.07);margin-bottom:18px;flex-shrink:1; }
.ev-tl-dot { width:7px;height:7px;border-radius:50%;flex-shrink:0; }
.ev-tl-dot--green  { background:#4ade80;box-shadow:0 0 5px rgba(74,222,128,.45); }
.ev-tl-dot--purple { background:#a78bfa;box-shadow:0 0 5px rgba(167,139,250,.45); }
.ev-tl-dot--amber  { background:#fbbf24;box-shadow:0 0 5px rgba(251,191,36,.45); }
.ev-tl-dot--teal   { background:#2dd4bf;box-shadow:0 0 5px rgba(45,212,191,.45); }
.ev-tl-dot--pulse  { animation:ev-tl-pulse 1.6s ease-in-out infinite; }
@keyframes ev-tl-pulse { 0%,100%{box-shadow:0 0 4px rgba(74,222,128,.3)} 50%{box-shadow:0 0 10px rgba(74,222,128,.75)} }
.ev-tl-lbl  { font:400 8px/1 var(--b);color:#4a6e70;white-space:nowrap;text-align:center; }
.ev-tl-time { font:600 9px/1 var(--b);color:#7aa8aa;white-space:nowrap;text-align:center; }
.ev-tl-step[data-tip] { cursor:default; }
.ev-tl-step[data-tip]:hover .ev-tl-time { color:#c4e0e0; }
.ev-tl-step[data-tip]:hover::after {
  content:attr(data-tip);
  position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);
  background:#0d2020;border:1px solid rgba(0,171,169,.3);border-radius:7px;
  padding:5px 9px;font:400 9px/1.5 var(--b);color:#b8d8d8;white-space:nowrap;
  z-index:200;pointer-events:none;box-shadow:0 4px 16px rgba(0,0,0,.5);
}
.ev-base-actions { display:flex;gap:6px;flex-wrap:wrap; }
.ev-base-btn {
  display:inline-flex;align-items:center;gap:5px;
  font:600 11px/1 var(--b);padding:5px 10px;border-radius:6px;
  border:1px solid;cursor:pointer;transition:all .18s;letter-spacing:.02em;
}
.ev-base-btn--teal  { background:rgba(0,171,169,.14);border-color:rgba(0,171,169,.3);color:#2dd4bf; }
.ev-base-btn--teal:hover { background:rgba(0,171,169,.24);border-color:rgba(0,171,169,.5); }
.ev-base-btn--purple { background:rgba(139,92,246,.14);border-color:rgba(139,92,246,.3);color:#a78bfa; }
.ev-base-btn--purple:hover { background:rgba(139,92,246,.24);border-color:rgba(139,92,246,.5); }
.ev-base-btn--red { background:rgba(239,68,68,.10);border-color:rgba(239,68,68,.26);color:#fca5a5; }
.ev-base-btn--red:hover { background:rgba(239,68,68,.20);border-color:rgba(239,68,68,.46); }
.ev-base-btn--amber  { background:rgba(251,146,60,.12);border-color:rgba(251,146,60,.28);color:#fb923c; }
.ev-base-btn--amber:hover { background:rgba(251,146,60,.22);border-color:rgba(251,146,60,.48); }
.ev-base-btn--disabled { background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);color:rgba(255,255,255,.22);cursor:default; }
.ev-base-close-form {
  display:flex;gap:6px;align-items:center;
  margin-top:8px;padding-top:8px;
  border-top:1px solid rgba(239,68,68,.18);
}
.ev-base-close-form .ev-base-close-input {
  flex:1;font-size:12px;padding:7px 10px;
  border-color:rgba(239,68,68,.3);
}
.ev-base-close-form .ev-base-close-input:focus { border-color:rgba(239,68,68,.55); }
.ev-base-delete-form { flex-wrap:wrap;border-color:rgba(239,68,68,.18); }
.ev-base-delete-warn {
  width:100%;font:400 11px/1.4 var(--b);
  color:rgba(252,165,165,.75);
  margin-bottom:2px;
}

.ev-dash-list { display:flex;flex-direction:column;gap:8px; }
.ev-dash-loading,.ev-dash-empty {
  font:400 13px var(--b);
  color:var(--text3);
  padding:12px 0;
}
.ev-dash-card {
  display:flex;align-items:flex-start;gap:10px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  border-radius:10px;
  padding:11px 13px;
  transition:border-color .2s;
}
.ev-dash-card--local {
  border-color:rgba(0,171,169,.35);
  background:rgba(0,171,169,.06);
}
.ev-dash-avatar {
  width:34px;height:34px;border-radius:50%;
  background:rgba(0,171,169,.18);
  border:1.5px solid rgba(0,171,169,.3);
  color:var(--accent);
  font:700 14px/34px var(--b);
  text-align:center;
  flex-shrink:0;
}
.ev-dash-info { flex:1;min-width:0; }
.ev-dash-title {
  font:600 13px/1.3 var(--b);
  color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ev-dash-sub {
  font:400 11px/1.4 var(--b);
  color:var(--text3);
  margin-top:2px;
}
.ev-dash-tags {
  display:flex;gap:5px;flex-wrap:wrap;
  margin-top:6px;align-items:center;
}
.ev-dash-count {
  font:500 11px/1 var(--b);
  color:var(--text2);
  background:rgba(255,255,255,.06);
  border:1px solid var(--border);
  padding:2px 7px;border-radius:6px;
}
.ev-dash-tag {
  font:400 10px/1 var(--b);
  padding:2px 7px;border-radius:6px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.05);
  color:var(--text2);
}
.ev-dash-tag--teal  { background:rgba(0,171,169,.12);border-color:rgba(0,171,169,.3);color:var(--accent); }
.ev-dash-tag--purple{ background:rgba(139,92,246,.1);border-color:rgba(139,92,246,.25);color:#a78bfa; }
.ev-dash-tag--green { background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.25);color:#4ade80; }

/* ═══ fonte/estilo/30-evento/050-encerrar.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Botão encerrar e cartão ao vivo
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 5455–5814
 * TAMANHO PREVISTO: 360 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ── Botão Encerrar no card do Ao vivo ── */
.ev-dash-card { align-items:center; }
.ev-dash-close-btn {
  flex-shrink:0;
  display:flex;align-items:center;gap:5px;
  padding:5px 10px;
  border-radius:7px;
  border:1px solid rgba(239,68,68,.3);
  background:rgba(239,68,68,.08);
  color:#fca5a5;
  font:600 11px/1 var(--b);
  cursor:pointer;
  transition:background .15s, border-color .15s, transform .1s;
  white-space:nowrap;
}
.ev-dash-close-btn:hover {
  background:rgba(239,68,68,.2);
  border-color:rgba(239,68,68,.55);
  transform:translateY(-1px);
}
.ev-dash-close-btn:active { transform:translateY(0); }

/* Badge somente visualização — evento de outro usuário no dashboard ao vivo */
.ev-dash-viewonly {
  flex-shrink:0;
  display:flex;align-items:center;gap:5px;
  padding:5px 10px;
  border-radius:7px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.55);
  font:600 10.5px/1 var(--b);
  white-space:nowrap;
  cursor:default;
}

/* ══ Encerrados: seção própria no painel Ao vivo (2026-08-05) ══
   Antes, evento encerrado caía junto com os ao vivo e ficava indistinguível deles. */
.ev-dash-sec {
  display:flex;align-items:center;gap:7px;
  margin:14px 0 8px;
  font:700 10.5px/1 var(--b);
  letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
.ev-dash-sec:first-child { margin-top:2px; }
.ev-dash-sec-dot {
  width:7px;height:7px;border-radius:50%;
  background:rgba(255,255,255,.22);flex-shrink:0;
}
.ev-dash-sec-dot--live { background:var(--green);animation:livePulse 1.5s ease-in-out infinite; }
.ev-dash-sec-lbl { flex-shrink:0; }
.ev-dash-sec-n {
  min-width:17px;padding:1px 5px;border-radius:20px;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.6);
  font:700 10px/1.5 var(--b);text-align:center;letter-spacing:0;
}
.ev-dash-sec-hint {
  margin-left:auto;
  font:400 9.5px/1 var(--b);
  letter-spacing:.02em;text-transform:none;
  color:rgba(255,255,255,.5);   /* medido: 5,33:1 sobre #060f0e (.34 dava 3,05 e reprovava) */
  text-align:right;
}
.ev-dash-empty--sm { padding:14px 12px;font-size:11.5px;opacity:.75; }

/* Card de evento encerrado: sem borda teal de "vivo", conteúdo levemente recuado */
.ev-live2-card--closed {
  background:rgba(255,255,255,.022);
  border-color:rgba(255,255,255,.09);
}
.ev-live2-card--closed .ev-live2-hd { border-bottom-color:rgba(255,255,255,.07); }
.ev-live2-card--closed .ev-live2-nome { color:rgba(255,255,255,.72); }
.ev-live2-phase--closed { color:rgba(255,255,255,.45); }
/* o "por quem/quando" do encerramento não é alerta — tira o laranja de urgência.
   Alphas medidos sobre o fundo real do card (rgb 17,37,29): .55 = 5,76:1 e .5 = 5,01:1.
   Os valores que eu havia posto (.38/--text3) davam 3,57 e 3,08 e reprovavam em AA. */
.ev-live2-phase--closed .ev-live2-phase-close { color:rgba(255,255,255,.55);font-weight:400; }
.ev-live2-phase--closed .ev-live2-phase-since { color:rgba(255,255,255,.5); }

/* Botão "Consultar" — abre o evento encerrado em somente leitura */
.ev-dash-consulta-btn {
  flex-shrink:0;
  display:flex;align-items:center;gap:5px;
  padding:5px 10px;
  border-radius:7px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.72);
  font:600 11px/1 var(--b);
  cursor:pointer;
  transition:background .15s, border-color .15s, transform .1s;
  white-space:nowrap;
}
.ev-dash-consulta-btn:hover {
  background:rgba(0,171,169,.14);
  border-color:rgba(0,171,169,.4);
  color:#7fdbda;
  transform:translateY(-1px);
}
.ev-dash-consulta-btn:active { transform:translateY(0); }

/* Card do menu em modo consulta + saída */
.mc--consulta .mc-status--done { background:rgba(255,255,255,.07);color:rgba(255,255,255,.6);border-color:rgba(255,255,255,.14); }
.mc-consulta-exit {
  margin-top:7px;
  padding:4px 9px;
  border-radius:6px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.66);
  font:600 10.5px/1 var(--b);
  cursor:pointer;
  transition:background .15s, border-color .15s;
}
.mc-consulta-exit:hover { background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.28);color:#fff; }

/* Tag cadeado — usuário gerenciável só pelo master */
.ev-spk-tag--lock {
  background:rgba(168,85,247,.1);
  color:#c4b5fd;
  border:1px solid rgba(168,85,247,.22);
}

/* Tag Modo Fácil — usuário cria eventos pelo wizard em etapas */
.ev-spk-tag--facil {
  background:rgba(0,171,169,.12);
  color:#00d4d2;
  border:1px solid rgba(0,171,169,.28);
  display:inline-flex;align-items:center;
}

/* ── Linha do toggle "Modo Fácil" nos forms de usuário ─────────────────────── */
.ev-facil-row {
  margin-top:12px;
  padding:11px 12px;
  border:1px solid rgba(0,171,169,.22);
  border-radius:12px;
  background:rgba(0,171,169,.06);
}
.ev-facil-toggle {
  display:flex;align-items:flex-start;gap:11px;cursor:pointer;
}
.ev-facil-toggle .dvi-sw { flex:0 0 auto;margin-top:2px; }
.ev-facil-txt { display:flex;flex-direction:column;gap:2px;min-width:0; }
.ev-facil-title {
  font:600 12px/1.2 var(--b);color:#00d4d2;
  display:inline-flex;align-items:center;gap:3px;
}
.ev-facil-sub { font:400 10.5px/1.45 var(--b);color:var(--text3); }

/* ══ Modo Fácil — Wizard de criação de evento em etapas ══════════════════════ */
#evEmEventoWizard {
  display:flex;flex-direction:column;
  min-height:100%;
}
/* Barra de progresso */
.ev-wiz-progress {
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:20px;
}
.ev-wiz-steps { display:flex;gap:7px;flex:1; }
.ev-wiz-dot {
  height:5px;flex:1;border-radius:3px;
  background:rgba(0,171,169,.14);
  transition:background .35s var(--ee);
}
.ev-wiz-dot.is-done   { background:rgba(0,171,169,.45); }
.ev-wiz-dot.is-active { background:linear-gradient(90deg,#00aba9,#00d4d2);box-shadow:0 0 10px rgba(0,212,210,.5); }
.ev-wiz-count {
  font:600 11px/1 var(--b);color:var(--text3);white-space:nowrap;
  letter-spacing:.02em;
}
.ev-wiz-count #evWizStepNum { color:#00d4d2;font-size:13px; }

/* Área dos passos */
.ev-wiz-track { flex:1;overflow:hidden; }
.ev-wiz-step {
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:8px 4px 4px;
  max-width:400px;margin:0 auto;
}
.ev-wiz-step.ev-wiz-in-r { animation:ev-wiz-slide-r .34s var(--ee) both; }
.ev-wiz-step.ev-wiz-in-l { animation:ev-wiz-slide-l .34s var(--ee) both; }
@keyframes ev-wiz-slide-r { from{opacity:0;transform:translateX(26px)} to{opacity:1;transform:none} }
@keyframes ev-wiz-slide-l { from{opacity:0;transform:translateX(-26px)} to{opacity:1;transform:none} }

.ev-wiz-icon {
  width:56px;height:56px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  color:#00d4d2;
  background:rgba(0,171,169,.1);
  border:1px solid rgba(0,171,169,.22);
  margin-bottom:14px;
}
.ev-wiz-title { font:600 16.5px/1.3 var(--font);color:var(--text);margin-bottom:6px; }
.ev-wiz-help  { font:400 12.5px/1.5 var(--b);color:var(--text3);margin-bottom:18px;max-width:100%; }

.ev-wiz-field { width:100%;text-align:left;margin-bottom:12px; }
.ev-wiz-input { width:100%;text-align:left; }
input.ev-wiz-input { text-align:center; }
.ev-wiz-field input.ev-wiz-input,
.ev-wiz-field select.ev-wiz-input { text-align:left; }

/* Aviso "onde aparece" */
.ev-wiz-where {
  display:flex;align-items:flex-start;gap:8px;
  width:100%;
  margin-top:6px;padding:11px 13px;
  border-radius:12px;
  background:rgba(0,171,169,.06);
  border:1px solid rgba(0,171,169,.16);
  color:var(--text2);
  font:400 12px/1.5 var(--b);text-align:left;
}
.ev-wiz-where svg { flex:0 0 auto;margin-top:1px;color:#00d4d2;opacity:.85; }

.ev-wiz-err {
  width:100%;margin-top:12px;padding:9px 12px;
  border-radius:10px;text-align:left;
  background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25);
  color:#f87171;font:500 12px/1.4 var(--b);
}

/* Passo 4 — opções de inscrição */
.ev-wiz-opt {
  display:flex;align-items:center;gap:12px;
  width:100%;
  padding:14px;margin-bottom:11px;
  border-radius:14px;
  background:var(--bgcard2);
  border:1px solid var(--border);
  text-align:left;
}
.ev-wiz-opt-txt { flex:1;display:flex;flex-direction:column;gap:3px;min-width:0; }
.ev-wiz-opt-title { font:600 13px/1.25 var(--font);color:var(--text); }
.ev-wiz-opt-sub   { font:400 12px/1.5 var(--b);color:var(--text3); }
.ev-wiz-opt .dvi-sw { flex:0 0 auto; }

/* Detalhes da pré-inscrição no wizard (datas + endereço) */
.ev-wiz-pre-details {
  margin:-4px 0 11px;padding:14px;
  border-radius:14px;
  background:rgba(0,171,169,.05);
  border:1px solid rgba(0,171,169,.18);
  animation:evWizPdIn .28s ease;
}
@keyframes evWizPdIn { from{opacity:0;transform:translateY(-4px);} to{opacity:1;transform:none;} }
.ev-wiz-pd-hd   { font:600 10.5px/1.3 var(--b);letter-spacing:.08em;text-transform:uppercase;color:#00aba9;margin-bottom:9px; }
.ev-wiz-pd-note { font:400 10.5px/1.5 var(--b);color:var(--text3);margin:2px 0 0; }

/* Bloco de local/horário no form normal (dentro do card de pré) */
.ev-loc-block {
  margin-top:14px;padding-top:14px;
  border-top:1px dashed rgba(255,255,255,.10);
}
.ev-loc-hd   { font:600 10.5px/1.3 var(--b);letter-spacing:.08em;text-transform:uppercase;color:#00aba9;margin-bottom:6px; }
.ev-loc-help { font:400 10.5px/1.5 var(--b);color:var(--text3);margin:0 0 12px; }

/* Status da consulta ViaCEP */
.ev-cep-status { font:500 11px/1.4 var(--b);min-height:15px;margin:-4px 0 8px; }
.ev-cep-status.is-loading { color:var(--text3); }
.ev-cep-status.is-ok      { color:#34d399; }
.ev-cep-status.is-err     { color:#f87171; }

/* Toggle "Informar endereço do evento" */
.ev-end-toggle {
  display:flex;align-items:center;gap:12px;
  margin-top:12px;padding:11px 12px;
  border-radius:12px;
  background:var(--bgcard2);border:1px solid var(--border);
}
.ev-end-toggle-txt { flex:1;display:flex;flex-direction:column;gap:2px;min-width:0; }
.ev-end-toggle-t   { font:600 12.5px/1.3 var(--b);color:var(--text); }
.ev-end-toggle-s   { font:400 11px/1.45 var(--b);color:var(--text3); }
.ev-end-toggle .dvi-sw { flex:0 0 auto; }

/* Campos de endereço colapsáveis */
.ev-end-fields { margin-top:12px; }
.ev-end-fields[hidden] { display:none; }
.ev-end-fields.ev-end-in { animation:evEndIn .26s ease; }
@keyframes evEndIn { from{opacity:0;transform:translateY(-5px);} to{opacity:1;transform:none;} }

/* Evento criado = não editável: banner + estado read-only */
.ev-ro-banner {
  display:flex;align-items:center;gap:9px;
  margin:0 0 16px;padding:11px 13px;
  border-radius:12px;
  background:rgba(0,171,169,.08);border:1px solid rgba(0,171,169,.22);
  font:500 12px/1.45 var(--b);color:#00d4d2;
}
.ev-ro-banner svg { flex:0 0 auto;opacity:.9; }
.ev-em-readonly .ev-input:disabled { opacity:.65;cursor:not-allowed; }
.ev-em-readonly input:disabled ~ .dvi-sw-track { opacity:.55;cursor:not-allowed; }
.ev-em-readonly .dvi-sw input:disabled { cursor:not-allowed; }
.ev-em-readonly .ev-auto-act input:disabled,
.ev-em-readonly .ev-end-toggle input:disabled { cursor:not-allowed; }

/* Toggle "ativar 3h antes" */
.ev-auto-act {
  display:flex;align-items:flex-start;gap:10px;
  margin-top:12px;padding:11px 12px;
  border-radius:12px;cursor:pointer;
  background:var(--bgcard2);border:1px solid var(--border);
}
.ev-auto-act input { margin-top:2px;flex:0 0 auto;accent-color:#00aba9;width:15px;height:15px; }
.ev-auto-act-txt { display:flex;flex-direction:column;gap:2px;min-width:0; }
.ev-auto-act-t   { font:600 12.5px/1.3 var(--b);color:var(--text); }
.ev-auto-act-s   { font:400 11px/1.45 var(--b);color:var(--text3); }

/* Navegação */
.ev-wiz-nav {
  display:flex;align-items:center;gap:10px;
  margin-top:20px;padding-top:16px;
  border-top:1px solid var(--border);
}
.ev-wiz-btn-back {
  display:inline-flex;align-items:center;gap:5px;
  padding:11px 16px;border-radius:11px;
  background:transparent;border:1px solid var(--border2);
  color:var(--text2);font:600 13px/1 var(--b);cursor:pointer;
  transition:all .2s var(--eq);
}
.ev-wiz-btn-back:hover { background:rgba(0,171,169,.08);color:var(--text); }
.ev-wiz-btn-next, .ev-wiz-btn-create {
  flex:1;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:13px 18px;border-radius:11px;
  border:none;cursor:pointer;
  background:var(--btn-grad);color:#fff;
  font:700 14px/1 var(--b);letter-spacing:.01em;
  box-shadow:0 6px 20px rgba(0,171,169,.28);
  transition:all .2s var(--eq);
}
.ev-wiz-btn-next:hover, .ev-wiz-btn-create:hover { background:var(--btn-grad-hov);transform:translateY(-1px); }
.ev-wiz-btn-next:active, .ev-wiz-btn-create:active { transform:translateY(0); }

/* Passo 5 — quantidade de sorteados */
.ev-wiz-qtd-block {
  width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;
  padding:16px;margin-bottom:16px;
  border-radius:14px;background:var(--bgcard2);border:1px solid var(--border);
}
.ev-wiz-qtd-lbl { font:600 12.5px/1.2 var(--b);color:var(--text2); }
.ev-wiz-stepper { display:flex;align-items:center;gap:18px; }
.ev-wiz-step-btn {
  width:44px;height:44px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,171,169,.1);border:1px solid rgba(0,171,169,.28);
  color:#00d4d2;cursor:pointer;transition:all .18s var(--eq);
}
.ev-wiz-step-btn:hover  { background:rgba(0,171,169,.2); }
.ev-wiz-step-btn:active { transform:scale(.92); }
.ev-wiz-qtd-val {
  min-width:48px;text-align:center;
  font:700 30px/1 var(--font);color:var(--text);
  font-variant-numeric:tabular-nums;
}

/* ═══ fonte/estilo/30-evento/060-assistente.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Assistente de criação (modo fácil)
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 5815–6649
 * TAMANHO PREVISTO: 835 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* Passo 5 — modo de sorteio */
.ev-wiz-modo-lbl {
  width:100%;text-align:left;
  font:600 12.5px/1.2 var(--b);color:var(--text2);margin-bottom:10px;
}
.ev-wiz-modo-cards { width:100%;display:flex;flex-direction:column;gap:10px; }
.ev-wiz-modo-card {
  display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  width:100%;padding:14px;
  border-radius:14px;text-align:left;cursor:pointer;
  background:var(--bgcard2);border:1.5px solid var(--border);
  transition:all .18s var(--eq);
}
.ev-wiz-modo-card:hover { border-color:var(--border2); }
.ev-wiz-modo-card.is-active {
  border-color:#00aba9;
  background:rgba(0,171,169,.1);
  box-shadow:0 0 0 3px rgba(0,171,169,.12);
}
.ev-wiz-modo-ic {
  width:34px;height:34px;border-radius:10px;margin-bottom:4px;
  display:flex;align-items:center;justify-content:center;
  color:#00d4d2;background:rgba(0,171,169,.1);border:1px solid rgba(0,171,169,.2);
}
.ev-wiz-modo-card.is-active .ev-wiz-modo-ic { background:rgba(0,171,169,.2); }
.ev-wiz-modo-t { font:600 13px/1.25 var(--font);color:var(--text); }
.ev-wiz-modo-s { font:400 12px/1.5 var(--b);color:var(--text3); }

/* ── Check-up pré-evento ─────────────────────────────────────────────────── */
.hc-ov {
  position:fixed;inset:0;z-index:9000;
  display:flex;align-items:center;justify-content:center;
  background:rgba(2,12,10,.72);backdrop-filter:blur(6px);
  padding:18px;
}
.hc-box {
  width:100%;max-width:440px;max-height:88vh;
  display:flex;flex-direction:column;
  background:#0a201c;
  border:1px solid rgba(255,255,255,.1);
  border-radius:16px;
  box-shadow:0 24px 64px rgba(0,0,0,.5);
  overflow:hidden;
}
.hc-hd {
  display:flex;align-items:center;gap:11px;
  padding:14px 16px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.hc-light {
  flex-shrink:0;width:14px;height:14px;border-radius:50%;
  background:rgba(255,255,255,.18);
  box-shadow:0 0 0 4px rgba(255,255,255,.05);
}
.hc-light--run  { background:#fbbf24; animation:hcPulse 1s infinite; }
.hc-light--ok   { background:#4ade80; box-shadow:0 0 0 4px rgba(74,222,128,.15), 0 0 14px rgba(74,222,128,.5); }
.hc-light--warn { background:#fbbf24; box-shadow:0 0 0 4px rgba(251,191,36,.15), 0 0 14px rgba(251,191,36,.5); }
.hc-light--fail { background:#f87171; box-shadow:0 0 0 4px rgba(248,113,113,.15), 0 0 14px rgba(248,113,113,.5); }
@keyframes hcPulse { 0%,100%{opacity:1} 50%{opacity:.35} }
.hc-hd-txt { display:flex;flex-direction:column;gap:2px;flex:1;min-width:0; }
.hc-ttl { font:700 14px/1.2 var(--b);color:#fff; }
.hc-sub { font:500 11px/1.3 var(--b);color:rgba(255,255,255,.55); }
.hc-x {
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:8px;
  background:rgba(255,255,255,.06);border:none;color:rgba(255,255,255,.6);cursor:pointer;
}
.hc-x:hover { background:rgba(255,255,255,.12);color:#fff; }
.hc-body { overflow-y:auto;padding:10px 14px; }
.hc-list { display:flex;flex-direction:column;gap:7px; }
.hc-row {
  display:flex;align-items:flex-start;gap:10px;
  padding:9px 11px;border-radius:10px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.06);
}
.hc-row-ic {
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;margin-top:1px;
}
.hc-row-ic--run  { background:rgba(255,255,255,.08); }
.hc-row-ic--ok   { background:rgba(74,222,128,.14);  color:#4ade80; }
.hc-row-ic--warn { background:rgba(251,191,36,.14);  color:#fbbf24; }
.hc-row-ic--fail { background:rgba(248,113,113,.14); color:#f87171; }
.hc-row-ic--skip { background:rgba(255,255,255,.06); color:rgba(255,255,255,.35); }
.hc-spin {
  width:11px;height:11px;border-radius:50%;
  border:2px solid rgba(255,255,255,.18);border-top-color:#fff;
  animation:hcSpin .7s linear infinite;
}
@keyframes hcSpin { to { transform:rotate(360deg); } }
.hc-row-body { flex:1;min-width:0; }
.hc-row-lbl { font:600 12px/1.3 var(--b);color:#fff; }
.hc-row-det { font:400 11px/1.45 var(--b);color:rgba(255,255,255,.55);margin-top:2px;word-break:break-word; }
.hc-hist { margin-top:14px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07); }
.hc-hist-ttl { font:700 10px/1 var(--b);letter-spacing:.8px;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:7px; }
.hc-hist-row { display:flex;align-items:center;gap:8px;padding:4px 2px;font:400 11px/1.3 var(--b);color:rgba(255,255,255,.6); }
.hc-hist-dot { flex-shrink:0;width:8px;height:8px;border-radius:50%; }
.hc-hist-dot--ok   { background:#4ade80; }
.hc-hist-dot--warn { background:#fbbf24; }
.hc-hist-dot--fail { background:#f87171; }
.hc-hist-when { font-weight:600;color:rgba(255,255,255,.75);white-space:nowrap; }
.hc-hist-mode { font-size:9.5px;padding:1px 6px;border-radius:5px;background:rgba(255,255,255,.07);text-transform:uppercase;letter-spacing:.4px; }
.hc-hist-info { flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.hc-hist-empty { font:400 11px/1.3 var(--b);color:rgba(255,255,255,.35);padding:4px 2px; }
.hc-acts { display:flex;gap:8px;padding:12px 14px 6px; }
.hc-btn-sec, .hc-btn-pri {
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:10px 12px;border-radius:10px;
  font:600 12px/1 var(--b);cursor:pointer;
  transition:background .15s, transform .1s;
}
.hc-btn-sec { background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.8); }
.hc-btn-sec:hover { background:rgba(255,255,255,.13); }
.hc-btn-pri { background:rgba(0,171,169,.18);border:1px solid rgba(0,171,169,.45);color:#5eead4; }
.hc-btn-pri:hover { background:rgba(0,171,169,.3); }
.hc-btn-sec:disabled, .hc-btn-pri:disabled { opacity:.45;cursor:default; }
.hc-note { font:400 10px/1.4 var(--b);color:rgba(255,255,255,.35);text-align:center;padding:0 14px 12px; }
/* Botão de abrir o check-up (PWA aba Eventos) */
.hc-open-btn {
  display:flex;align-items:center;justify-content:center;gap:7px;
  width:100%;margin:8px 0 2px;
  padding:10px 12px;border-radius:10px;
  background:rgba(0,171,169,.1);border:1px dashed rgba(0,171,169,.4);
  color:#5eead4;font:600 11.5px/1.2 var(--b);cursor:pointer;
  transition:background .15s;
}
.hc-open-btn:hover { background:rgba(0,171,169,.2); }

/* ── Modal: Confirmação encerrar (--sm) ── */
.ev-modal-box--sm { max-width:380px; }
.ev-mhd-ic--red { background:rgba(239,68,68,.15); border-color:rgba(239,68,68,.4); }
.ev-mhd-ic--red svg { stroke:#fca5a5; }
.ev-btn-danger {
  display:flex;align-items:center;gap:7px;
  padding:10px 18px;
  border-radius:10px;
  background:rgba(239,68,68,.18);
  border:1px solid rgba(239,68,68,.4);
  color:#fca5a5;
  font:600 13px/1 var(--b);
  cursor:pointer;
  transition:background .15s, transform .1s;
}
.ev-btn-danger:hover { background:rgba(239,68,68,.32); transform:translateY(-1px); }
.ev-mftr { display:flex; justify-content:flex-end; align-items:center; }

/* ── Popup "Evento encerrado" (dispositivo ativo) ── */
.ev-force-close-box {
  text-align:center;
  padding:32px 28px 28px !important;
  gap:0;
}
.ev-force-close-icon {
  width:68px;height:68px;
  border-radius:50%;
  background:rgba(239,68,68,.12);
  border:1.5px solid rgba(239,68,68,.3);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 18px;
}
.ev-force-close-icon svg { stroke:#fca5a5; }
.ev-force-close-title {
  font:700 20px/1.2 var(--b);
  color:var(--text);
  margin-bottom:10px;
}
.ev-force-close-msg {
  font:400 14px/1.6 var(--b);
  color:rgba(255,255,255,.65);
  margin-bottom:24px;
}
.ev-force-close-ack {
  width:100%;
  justify-content:center;
  border-radius:12px;
  font-size:14px;
  padding:12px 20px;
}

/* ── Speakers section header ── */
.ev-em-spk-sec-hd {
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:10px;
}

/* ── Delete Event — botão destaque na lista Base ── */
.ev-base-btn--del {
  background:rgba(239,68,68,.12);
  border-color:rgba(239,68,68,.3);
  color:#fca5a5;
}
.ev-base-btn--del:hover {
  background:rgba(239,68,68,.22);
  border-color:rgba(239,68,68,.5);
}

/* ── Delete Event Modal ── */
.ev-del-modal-info {
  background:rgba(239,68,68,.06);
  border:1px solid rgba(239,68,68,.18);
  border-radius:10px;
  padding:14px 16px;
  display:flex;flex-direction:column;gap:10px;
  margin-bottom:12px;
}
.ev-del-modal-row {
  display:flex;justify-content:space-between;align-items:center;gap:8px;
}
.ev-del-modal-lbl { font:400 12px/1 var(--b);color:var(--text3); }
.ev-del-modal-val { font:600 13px/1 var(--font);color:var(--text); }
.ev-del-modal-counts { display:flex;gap:8px;flex-wrap:wrap; }
.ev-del-modal-count-item {
  font:500 12px/1 var(--b);
  padding:3px 9px;border-radius:7px;
}
.ev-del-modal-count-item--teal  { background:rgba(0,171,169,.12);color:#2dd4bf;border:1px solid rgba(0,171,169,.25); }
.ev-del-modal-count-item--purple{ background:rgba(139,92,246,.12);color:#a78bfa;border:1px solid rgba(139,92,246,.25); }
.ev-del-modal-count-item--amber { background:rgba(245,158,11,.12);color:#fbbf24;border:1px solid rgba(245,158,11,.25); }
.ev-del-modal-warn {
  font:400 11.5px/1.5 var(--b);
  color:rgba(252,165,165,.85);
  background:rgba(239,68,68,.08);
  border:1px solid rgba(239,68,68,.15);
  border-radius:8px;
  padding:8px 12px;
  margin-bottom:12px;
}
.ev-del-backup-btn {
  display:flex;align-items:center;gap:8px;
  width:100%;box-sizing:border-box;
  background:rgba(255,255,255,.05);
  border:1px solid var(--border);
  border-radius:9px;
  padding:10px 14px;
  font:500 12.5px/1 var(--font);
  color:var(--text2);
  cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
  margin-bottom:14px;
}
.ev-del-backup-btn:hover:not(:disabled) { background:rgba(0,171,169,.1);border-color:rgba(0,171,169,.3);color:#2dd4bf; }
.ev-del-backup-btn--done { color:#4ade80 !important;border-color:rgba(34,197,94,.3) !important;background:rgba(34,197,94,.07) !important; }
.ev-del-backup-btn:disabled { opacity:.6;cursor:default; }

/* ── Delete prefs panel ── */
#evDelPrefsBtn.ev-delpref-btn--on { color:rgba(45,212,191,.9);border-color:rgba(45,212,191,.3);background:rgba(45,212,191,.07); }
.ev-delpref-row { display:flex;align-items:center;gap:10px;padding:5px 2px;cursor:pointer;user-select:none; }
.ev-delpref-toggle { position:relative;width:28px;height:16px;border-radius:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);flex-shrink:0;transition:background .18s,border-color .18s; }
.ev-delpref-toggle--on { background:rgba(45,212,191,.35);border-color:rgba(45,212,191,.5); }
.ev-delpref-knob { position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.5);transition:transform .18s,background .18s; }
.ev-delpref-toggle--on .ev-delpref-knob { transform:translateX(12px);background:#2dd4bf; }
.ev-delpref-lbl { font:600 11px var(--b);min-width:76px; }
.ev-delpref-lbl--teal   { color:rgba(45,212,191,.85); }
.ev-delpref-lbl--purple { color:rgba(167,139,250,.85); }
.ev-delpref-lbl--amber  { color:rgba(251,191,36,.85); }
.ev-delpref-hint { font:400 11px var(--b);color:rgba(255,255,255,.4); }

/* ── Undo toast ── */
.ev-undo-wrap {
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%);
  z-index:99999;pointer-events:none;
  display:none;
}
.ev-undo-toast {
  display:flex;align-items:center;gap:12px;
  background:rgba(14,20,28,.96);
  backdrop-filter:blur(14px);
  border:1px solid rgba(239,68,68,.32);
  border-radius:14px;
  padding:13px 18px;
  min-width:300px;max-width:440px;
  box-shadow:0 8px 32px rgba(0,0,0,.55);
  pointer-events:all;
  animation:undoSlideUp .22s ease;
}
@keyframes undoSlideUp {
  from { opacity:0;transform:translateY(10px); }
  to   { opacity:1;transform:translateY(0); }
}
.ev-undo-ic {
  width:34px;height:34px;border-radius:50%;
  background:rgba(239,68,68,.15);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  color:#fca5a5;
}
.ev-undo-body { flex:1;min-width:0; }
.ev-undo-msg { font:500 12.5px/1.35 var(--font);color:var(--text);margin-bottom:7px; }
.ev-undo-track {
  height:3px;border-radius:2px;
  background:rgba(255,255,255,.1);overflow:hidden;
}
.ev-undo-bar {
  height:100%;border-radius:2px;width:100%;
  background:linear-gradient(90deg,#ef4444,#fca5a5);
  transition:width .1s linear;
}
.ev-undo-btn {
  background:rgba(0,171,169,.14);
  border:1px solid rgba(0,171,169,.35);
  border-radius:8px;
  padding:7px 14px;
  font:600 12px/1 var(--font);
  color:#2dd4bf;
  cursor:pointer;flex-shrink:0;
  transition:background .15s;
  white-space:nowrap;
}
.ev-undo-btn:hover { background:rgba(0,171,169,.28); }

/* ── Modal Resultados do Sorteio ── */
.ev-res-modal-body { padding:0 4px 4px; max-height:420px; overflow-y:auto; }

/* Pódio */
.ev-res-podium {
  display:flex; align-items:flex-end; justify-content:center;
  gap:8px; padding:20px 16px 0; margin-bottom:20px;
}
.ev-res-podium-col { display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;max-width:120px; }
.ev-res-podium-name {
  font:600 12px/1.3 var(--b); color:var(--text); text-align:center;
  overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  word-break:break-word; min-height:2.6em;
}
.ev-res-podium-crown { font-size:22px; line-height:1; }
.ev-res-podium-block {
  width:100%; border-radius:8px 8px 0 0;
  display:flex; align-items:center; justify-content:center;
}
.ev-res-podium-block span { font:800 18px/1 var(--b); }
.ev-res-podium-block--1 { height:72px; background:linear-gradient(to bottom,rgba(251,191,36,.22),rgba(251,191,36,.08)); border:1px solid rgba(251,191,36,.35); color:#fbbf24; }
.ev-res-podium-block--2 { height:52px; background:linear-gradient(to bottom,rgba(148,163,184,.18),rgba(148,163,184,.06)); border:1px solid rgba(148,163,184,.30); color:#94a3b8; }
.ev-res-podium-block--3 { height:38px; background:linear-gradient(to bottom,rgba(180,120,60,.18),rgba(180,120,60,.06));  border:1px solid rgba(180,120,60,.28);  color:#c8864a; }
.ev-res-podium-empty { opacity:.22; }

/* Lista completa */
.ev-res-list { display:flex;flex-direction:column;gap:4px;padding:0 0 4px; }
.ev-res-row {
  display:flex; align-items:center; gap:10px;
  padding:8px 10px; border-radius:8px;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06);
  transition:background .15s;
}
.ev-res-row:hover { background:rgba(255,255,255,.06); }
.ev-res-pos  { font:700 13px/1 var(--b); min-width:26px; text-align:center; flex-shrink:0; }
.ev-res-name { font:600 13px/1 var(--b); color:var(--text); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ev-res-meta { font:400 11px/1 var(--b); color:var(--text3); white-space:nowrap; flex-shrink:0; }

/* ── Botão Sorteio estado ativo ── */
.ev-base-btn--amber-on { background:rgba(245,158,11,.28) !important; border-color:rgba(245,158,11,.5) !important; }

/* ── Painel inline de resultados ── */
.ev-res-inline { display:none; }
.ev-res-inline--open {
  display:block;
  padding:12px 14px 14px;
  border-top:1px solid rgba(255,255,255,.06);
  animation:evResSlide .18s ease;
}
@keyframes evResSlide { from { opacity:0;transform:translateY(-4px) } to { opacity:1;transform:none } }

.ev-res-il-hd { display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px; }
.ev-res-il-title { font:600 12px/1 var(--font);color:var(--text);flex:1; }
.ev-res-il-stats { display:flex;gap:6px; }
.ev-res-il-stats span { font:500 11px/1 var(--b);color:rgba(255,255,255,.4);background:rgba(255,255,255,.06);padding:2px 7px;border-radius:5px; }
.ev-res-il-export {
  display:flex;align-items:center;gap:5px;
  background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.22);
  color:#fbbf24;font:500 10.5px/1 var(--b);padding:4px 9px;border-radius:6px;cursor:pointer;
}
.ev-res-il-export:hover { background:rgba(245,158,11,.2); }
.ev-res-il-loading,.ev-res-il-empty { font:400 12px/1 var(--b);color:rgba(255,255,255,.3);text-align:center;padding:10px 0; }

/* ── Timeline ── */
.ev-res-tl { display:flex;flex-direction:column;padding-left:6px; }
.ev-res-tl-item {
  display:flex;align-items:flex-start;gap:10px;
  position:relative;padding-bottom:12px;
}
.ev-res-tl-item:last-child { padding-bottom:0; }
.ev-res-tl-item::before {
  content:'';position:absolute;left:6px;top:13px;bottom:0;
  width:1px;background:rgba(255,255,255,.09);
}
.ev-res-tl-item:last-child::before { display:none; }
.ev-res-tl-dot {
  width:13px;height:13px;border-radius:50%;flex-shrink:0;
  margin-top:1px;border:2px solid;
}
.ev-res-tl-item--start  .ev-res-tl-dot { background:rgba(34,197,94,.15); border-color:#22c55e; }
.ev-res-tl-item--winner .ev-res-tl-dot { background:rgba(245,158,11,.15); border-color:#f59e0b; }
.ev-res-tl-item--end    .ev-res-tl-dot { background:rgba(156,163,175,.12); border-color:#9ca3af; }
.ev-res-tl-body { display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-height:13px;flex:1; }
.ev-res-tl-lbl  { font:500 12px/1 var(--b);color:rgba(255,255,255,.55); }
.ev-res-tl-medal { font-size:13px;line-height:1; }
.ev-res-tl-name  { font:600 12px/1 var(--font);color:var(--text); }
.ev-res-tl-sub   { font:400 11px/1 var(--b);color:rgba(255,255,255,.3); }
.ev-res-tl-pos   { font:600 11px/1 var(--b);color:rgba(255,255,255,.4); }
.ev-res-tl-time  { font:500 11px/1 var(--b);color:rgba(255,255,255,.3);margin-left:auto; }

/* ══════════════════════════════════════════════════
   ANALYTICS CARD + MODAL
   ══════════════════════════════════════════════════ */

/* 5th card animation */
.mc:nth-child(5){ animation:menuCardIn .65s .60s cubic-bezier(.16,1,.3,1) both; }

/* Analytics badge (replaces step-num) */
.mc-analytics-badge {
  height:20px;padding:0 9px;border-radius:99px;
  background:rgba(139,92,246,.13);
  border:1px solid rgba(139,92,246,.28);
  color:rgba(167,139,250,.9);
  font:700 9px/20px var(--b);
  letter-spacing:.07em;text-transform:uppercase;
  pointer-events:none;flex-shrink:0;
}

/* mc-status--violet */
.mc-status--violet {
  background:rgba(139,92,246,.13);border:1px solid rgba(139,92,246,.28);
  color:#a78bfa;
}

/* mc-status--amber */
.mc-status--amber {
  background:rgba(251,146,60,.13);border:1px solid rgba(251,146,60,.28);
  color:#fb923c;
}

/* Analytics card */
.mc--analytics {
  border-color:rgba(139,92,246,.22) !important;
  background:rgba(139,92,246,.04) !important;
}
.mc--analytics:hover {
  border-color:rgba(139,92,246,.50) !important;
  background:rgba(139,92,246,.08) !important;
  box-shadow:0 24px 56px rgba(0,0,0,.32),0 0 0 1px rgba(139,92,246,.24),0 6px 32px rgba(139,92,246,.14) !important;
}

/* ── Analytics Modal overlay ── */
.an-modal-ov {
  position:fixed;inset:0;z-index:210;
  background:rgba(0,12,10,.80);
  backdrop-filter:blur(14px) saturate(130%);-webkit-backdrop-filter:blur(14px) saturate(130%);
  display:flex;align-items:center;justify-content:center;
  padding:12px;
  opacity:0;pointer-events:none;
  transition:opacity .28s ease;
}
.an-modal-ov.vis { opacity:1;pointer-events:all; }

.an-modal-box {
  width:100%;max-width:1240px;
  height:min(920px,calc(100vh - 24px));
  background:var(--bgcard2);
  border:1px solid var(--border);
  border-radius:20px;
  box-shadow:0 40px 100px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.05);
  display:flex;flex-direction:column;
  overflow:hidden;
  transform:scale(.94) translateY(14px);
  transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .28s;
  opacity:0;
}
.an-modal-ov.vis .an-modal-box { transform:none;opacity:1; }

/* Header */
.an-hd {
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px 22px;
  background:linear-gradient(135deg,#1a0a3d 0%,#240d52 50%,rgba(36,13,82,.9) 100%);
  border-bottom:1px solid rgba(139,92,246,.22);
  flex-shrink:0;
}
.an-hd-left { display:flex;align-items:center;gap:14px; }
.an-hd-icon {
  width:38px;height:38px;border-radius:10px;
  background:rgba(139,92,246,.18);border:1px solid rgba(139,92,246,.32);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.an-hd-icon svg { stroke:#a78bfa; }
.an-hd-title { font:700 17px/1 var(--font);color:#fff;letter-spacing:-.02em; }
.an-hd-sub   { font:400 12px/1 var(--b);color:rgba(167,139,250,.7);margin-top:4px; }
.an-hd-right { display:flex;align-items:center;gap:8px; }

/* Filter buttons */
.an-filters { display:flex;gap:4px;background:rgba(0,0,0,.24);border-radius:9px;padding:3px; }
.an-filter {
  padding:5px 12px;border-radius:6px;border:none;
  background:transparent;color:rgba(255,255,255,.45);
  font:600 11px/1 var(--b);cursor:pointer;
  transition:background .18s,color .18s;
}
.an-filter:hover  { color:rgba(255,255,255,.75); }
.an-filter.active { background:rgba(139,92,246,.28);color:#c4b5fd; }

.an-export-btn {
  display:flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:8px;border:1px solid rgba(139,92,246,.28);
  background:rgba(139,92,246,.12);color:#a78bfa;
  font:600 11px/1 var(--b);cursor:pointer;
  transition:background .18s,border-color .18s;
}
.an-export-btn:hover { background:rgba(139,92,246,.22);border-color:rgba(139,92,246,.48); }
.an-close-btn {
  width:30px;height:30px;border-radius:8px;border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.05);color:rgba(255,255,255,.6);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .18s;
}
.an-close-btn:hover { background:rgba(255,255,255,.12);color:#fff; }

/* Loading */
.an-loading {
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  color:rgba(255,255,255,.45);font:400 14px/1 var(--b);
}

/* Content */
.an-content {
  flex:1;overflow-y:auto;padding:20px 22px 24px;
  display:flex;flex-direction:column;gap:20px;
}
.an-content::-webkit-scrollbar { width:4px; }
.an-content::-webkit-scrollbar-thumb { background:var(--border);border-radius:4px; }

/* Stat cards row */
.an-stats-row {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(100px,1fr));
  gap:10px;
}
.an-stat-card {
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.07);
  border-radius:12px;padding:14px 16px;
  display:flex;flex-direction:column;gap:6px;
}
.an-stat-card--wide { grid-column:span 2; }
.an-stat-val {
  font:700 26px/1 var(--font);color:#fff;letter-spacing:-.03em;
}
.an-stat-val--sm  { font-size:16px;letter-spacing:-.01em; }
.an-stat-val--teal   { color:#2dd4bf; }
.an-stat-val--violet { color:#a78bfa; }
.an-stat-val--amber  { color:#fb923c; }
.an-stat-lbl {
  font:400 11px/1 var(--b);color:rgba(255,255,255,.38);text-transform:uppercase;letter-spacing:.08em;
}

/* Charts grid */
.an-charts-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.an-chart-box {
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;padding:16px;
  display:flex;flex-direction:column;gap:10px;
}
.an-chart-box--wide { grid-column:span 2; }
.an-chart-title {
  font:600 12px/1 var(--b);color:rgba(255,255,255,.55);
  text-transform:uppercase;letter-spacing:.08em;
}
.an-chart-wrap { position:relative;height:180px; }
.an-chart-wrap--donut { height:200px; }

/* Additional stat colors */
.an-stat-val--green { color:#4ade80; }

/* Section separator */
.an-section-sep {
  display:flex;align-items:center;gap:14px;margin:6px 0 2px;
}
.an-section-line {
  flex:1;height:1px;
  background:linear-gradient(to right,transparent,rgba(167,139,250,.22),rgba(167,139,250,.12),transparent);
}
.an-section-label {
  display:flex;align-items:center;gap:6px;white-space:nowrap;
  font:600 11px/1 var(--b);color:rgba(167,139,250,.65);
  text-transform:uppercase;letter-spacing:.1em;
}
.an-section-label svg { opacity:.7;flex-shrink:0; }

/* Satisfaction KPI cards */
.an-sat-kpis {
  display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;
}
.an-sat-kpi {
  background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08);
  border-radius:12px;padding:14px 16px;
  display:flex;flex-direction:column;gap:5px;
}
.an-sat-kpi--green { background:rgba(74,222,128,.04);border-color:rgba(74,222,128,.14); }
.an-sat-kpi--amber { background:rgba(251,191,36,.04);border-color:rgba(251,191,36,.14); }
.an-sat-kpi--teal  { background:rgba(45,212,191,.04);border-color:rgba(45,212,191,.14); }
.an-sat-kpi-val {
  font:700 28px/1 var(--font);color:#4ade80;letter-spacing:-.03em;
}
.an-sat-kpi-val--amber  { color:#fbbf24; }
.an-sat-kpi-val--teal   { color:#2dd4bf; }
.an-sat-kpi-val--violet { color:#a78bfa; }
.an-sat-kpi-lbl {
  font:400 11px/1 var(--b);color:rgba(255,255,255,.35);
  text-transform:uppercase;letter-spacing:.07em;
}
.an-sat-kpi-stars { display:flex;gap:2px;min-height:14px; }
.an-sat-star { font-size:12px;line-height:1; }
.an-sat-star--full  { color:#fbbf24; }
.an-sat-star--half  { color:#fbbf24;opacity:.55; }
.an-sat-star--empty { color:rgba(255,255,255,.12); }

/* Comments */
/* ── Analytics — Device section ── */
.an-device-models {
  display:flex;flex-direction:column;gap:7px;padding-top:4px;
}
.an-dev-row {
  display:flex;align-items:center;gap:10px;
}
.an-dev-lbl {
  font:400 11.5px/1 var(--font);color:rgba(255,255,255,.60);min-width:130px;flex-shrink:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.an-dev-track {
  flex:1;height:6px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;
}
.an-dev-bar {
  height:100%;border-radius:999px;transition:width .4s ease;
}
.an-dev-val {
  font:600 11px/1 var(--font);color:rgba(255,255,255,.45);min-width:22px;text-align:right;flex-shrink:0;
}
.an-dev-empty {
  padding:12px 20px;color:rgba(255,255,255,.28);font:400 12px/1 var(--font);
}

.an-comments-list {
  display:flex;flex-direction:column;gap:8px;
  max-height:210px;overflow-y:auto;padding-top:2px;
}
.an-comments-list::-webkit-scrollbar { width:3px; }
.an-comments-list::-webkit-scrollbar-thumb { background:rgba(255,255,255,.1);border-radius:3px; }
.an-comment {
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);
  border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:5px;
}
.an-comment-hd { display:flex;align-items:center;justify-content:space-between; }
.an-comment-stars { color:#fbbf24;font-size:11px;letter-spacing:1px; }
.an-comment-date  { font:400 10px/1 var(--b);color:rgba(255,255,255,.28); }
.an-comment-txt   { font:400 12px/1.45 var(--b);color:rgba(255,255,255,.62);margin:0; }
.an-no-comments   { font:400 12px/1 var(--b);color:rgba(255,255,255,.28);text-align:center;padding:18px 0; }

/* ── Analytics — Event filter bar ── */
.an-event-bar {
  display:flex;flex-direction:column;gap:0;
  padding:10px 20px 0;
  flex-shrink:0;
}

/* ── Filter bar row ── */
.an-fb-row {
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.an-fb-group {
  display:flex;flex-direction:column;gap:4px;
}
.an-fb-group--date {
  flex:1;min-width:0;
}
.an-fb-lbl {
  font:600 9.5px/1 var(--font);color:rgba(255,255,255,.28);
  text-transform:uppercase;letter-spacing:.07em;
}
.an-fb-sep {
  width:1px;height:36px;background:rgba(255,255,255,.08);flex-shrink:0;
  margin:0 2px;align-self:flex-end;
}

/* ── Event dropdown ── */
.an-ev-dd { position:relative; }
.an-ev-dd-trigger {
  display:flex;align-items:center;gap:6px;
  padding:5px 10px 5px 12px;border-radius:9px;
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.75);font:500 12px/1 var(--font);
  cursor:pointer;transition:all .15s;max-width:240px;min-width:140px;
  white-space:nowrap;overflow:hidden;
}
.an-ev-dd-trigger > span:first-child {
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:left;
}
.an-ev-dd-trigger:hover { background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.18); }
.an-ev-dd-trigger svg { flex-shrink:0;color:rgba(255,255,255,.35); }
.an-ev-dd-count {
  background:rgba(45,212,191,.18);color:#2dd4bf;
  font:700 10px/1 var(--font);padding:2px 6px;border-radius:20px;flex-shrink:0;
}
.an-ev-dd-panel {
  position:absolute;top:calc(100% + 5px);left:0;z-index:200;
  background:#111827;border:1px solid rgba(255,255,255,.12);border-radius:12px;
  min-width:280px;max-width:360px;
  box-shadow:0 8px 32px rgba(0,0,0,.55);overflow:hidden;
}
.an-ev-dd-search-wrap { padding:8px 8px 4px; }
.an-ev-dd-search {
  width:100%;padding:7px 10px;border-radius:8px;
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.85);font:400 12px/1 var(--font);
  outline:none;
}
.an-ev-dd-search::placeholder { color:rgba(255,255,255,.28); }
.an-ev-dd-search:focus { border-color:rgba(45,212,191,.4); }
.an-ev-dd-list {
  max-height:280px;overflow-y:auto;padding:4px 0 6px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent;
}
.an-ev-dd-list::-webkit-scrollbar { width:4px; }
.an-ev-dd-list::-webkit-scrollbar-thumb { background:rgba(255,255,255,.12);border-radius:2px; }
.an-ev-dd-item {
  display:flex;align-items:center;gap:8px;width:100%;
  padding:7px 12px;border:none;background:transparent;
  color:rgba(255,255,255,.55);font:400 12px/1.3 var(--font);
  cursor:pointer;transition:background .12s;text-align:left;
}
.an-ev-dd-item:hover { background:rgba(255,255,255,.06);color:rgba(255,255,255,.85); }
.an-ev-dd-item--active { color:#2dd4bf;background:rgba(45,212,191,.08); }
.an-ev-dd-item--active:hover { background:rgba(45,212,191,.12); }
.an-ev-dd-item-name { flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.an-ev-dd-item-count {
  background:rgba(255,255,255,.07);color:rgba(255,255,255,.40);
  font:600 10px/1 var(--font);padding:2px 7px;border-radius:20px;flex-shrink:0;
}
.an-ev-dd-item--active .an-ev-dd-item-count { background:rgba(45,212,191,.15);color:#2dd4bf; }
.an-ev-dd-empty { padding:12px 16px;color:rgba(255,255,255,.25);font:400 12px/1 var(--font); }

/* ── Date shortcuts ── */
.an-date-shortcuts {
  display:flex;align-items:center;gap:4px;flex-wrap:nowrap;
}
.an-dsc {
  padding:4px 9px;border-radius:6px;
  border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);
  color:rgba(255,255,255,.38);font:500 11px/1 var(--font);
  cursor:pointer;transition:all .14s;white-space:nowrap;
}
.an-dsc:hover { background:rgba(255,255,255,.08);color:rgba(255,255,255,.65); }
.an-dsc--on { background:rgba(45,212,191,.14);border-color:rgba(45,212,191,.4);color:#2dd4bf; }

/* ── Date inputs ── */
.an-date-inputs {
  display:flex;align-items:center;gap:5px;margin-top:5px;
}
.an-date-in {
  padding:4px 8px;border-radius:7px;
  border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.70);font:400 11px/1 var(--font);
  cursor:pointer;outline:none;
  color-scheme:dark;
}
.an-date-in:focus { border-color:rgba(45,212,191,.4);color:rgba(255,255,255,.9); }
.an-date-sep {
  color:rgba(255,255,255,.25);font:500 11px/1 var(--font);flex-shrink:0;
}

/* ── Active filter summary ── */
.an-filter-summary {
  display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;
}
.an-filter-tag {
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 6px 3px 9px;border-radius:20px;
  background:rgba(45,212,191,.12);border:1px solid rgba(45,212,191,.28);
  color:#2dd4bf;font:500 10.5px/1 var(--font);
}
.an-filter-tag button {
  display:flex;align-items:center;justify-content:center;
  width:14px;height:14px;border-radius:50%;
  border:none;background:rgba(45,212,191,.2);
  color:#2dd4bf;font-size:11px;cursor:pointer;padding:0;
  transition:background .12s;
}
.an-filter-tag button:hover { background:rgba(45,212,191,.4); }

/* ── Compare button (kept) ── */
.an-compare-btn {
  flex-shrink:0;padding:5px 13px;border-radius:20px;
  border:1px solid rgba(167,139,250,.30);background:rgba(167,139,250,.07);
  color:rgba(167,139,250,.75);font:500 11px/1 var(--font);
  cursor:pointer;transition:all .15s;white-space:nowrap;align-self:flex-end;
}
.an-compare-btn:hover { background:rgba(167,139,250,.14); }
.an-compare-btn--active { background:rgba(167,139,250,.22);color:#c4b5fd;border-color:rgba(167,139,250,.55); }

/* ── Deprecated pills (kept for safety) ── */
.an-ev-scroll { display:none; }
.an-ev-pill  { display:none; }

@media(max-width:640px) {
  .an-fb-row { flex-direction:column;align-items:flex-start; }
  .an-fb-sep { display:none; }
  .an-ev-dd-trigger { max-width:100%;min-width:0;width:100%; }
  .an-compare-btn { align-self:auto; }
  .an-date-inputs { flex-wrap:wrap; }
}

/* ── Analytics — Compare selectors (in event bar, compare mode) ── */
.an-cmp-selectors {
  display:flex;align-items:center;gap:10px;flex:1;flex-wrap:wrap;
}
.an-cmp-sel-wrap {
  display:flex;align-items:center;gap:6px;
}
.an-cmp-badge {
  font:700 10px/1 var(--font);padding:3px 7px;border-radius:6px;flex-shrink:0;
}
.an-cmp-badge--a { background:rgba(45,212,191,.22);color:#2dd4bf; }
.an-cmp-badge--b { background:rgba(167,139,250,.22);color:#a78bfa; }
.an-cmp-select {
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-radius:9px;color:rgba(255,255,255,.75);font:400 11px/1 var(--font);
  padding:6px 10px;cursor:pointer;max-width:200px;
}
.an-cmp-select:focus { outline:none;border-color:rgba(167,139,250,.45); }
.an-cmp-select option { background:#0d1c17;color:#fff; }
.an-cmp-vs {
  font:700 12px/1 var(--font);color:rgba(255,255,255,.22);flex-shrink:0;
}

/* ═══ fonte/estilo/60-analytics/010-comparacao.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Analytics — comparação
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 6650–7074
 * TAMANHO PREVISTO: 425 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ── Analytics — Compare section ── */
.an-compare-section {
  flex:1;overflow-y:auto;padding:16px 20px 20px;
  scrollbar-width:thin;scrollbar-color:var(--border) transparent;
}
.an-compare-section::-webkit-scrollbar { width:4px; }
.an-compare-section::-webkit-scrollbar-thumb { background:var(--border);border-radius:4px; }
.an-cmp-prompt {
  text-align:center;color:rgba(255,255,255,.25);
  font:400 13px/1.5 var(--b);padding:60px 20px;
}
.an-cmp-grid {
  display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:start;
  margin-bottom:20px;
}
.an-cmp-divider {
  display:flex;align-items:center;justify-content:center;
  font:700 16px/1 var(--font);color:rgba(255,255,255,.18);padding-top:36px;
}
.an-cmp-panel {
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:14px;padding:18px;
}
.an-cmp-panel--a { border-color:rgba(45,212,191,.25); }
.an-cmp-panel--b { border-color:rgba(167,139,250,.25); }
.an-cmp-panel--empty {
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:130px;gap:10px;
  color:rgba(255,255,255,.22);font:400 12px/1 var(--b);
}
.an-cmp-badge-lg {
  font:700 13px/1 var(--font);padding:5px 12px;border-radius:8px;
}
.an-cmp-badge-lg--a { background:rgba(45,212,191,.18);color:#2dd4bf; }
.an-cmp-badge-lg--b { background:rgba(167,139,250,.18);color:#a78bfa; }
.an-cmp-panel-hd {
  display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;
}
.an-cmp-name { font:600 14px/1.3 var(--font);color:rgba(255,255,255,.88); }
.an-cmp-speaker { font:400 12px/1.3 var(--b);color:rgba(255,255,255,.52);margin-top:3px; }
.an-cmp-meta { font:400 11px/1 var(--b);color:rgba(255,255,255,.32);margin-top:3px; }
.an-cmp-stats {
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
}
.an-cmp-stat { display:flex;flex-direction:column;gap:4px; }
.an-cmp-val  { font:700 24px/1 var(--font);color:rgba(255,255,255,.82); }
.an-cmp-val--teal   { color:#2dd4bf; }
.an-cmp-val--violet { color:#a78bfa; }
.an-cmp-val--green  { color:#4ade80; }
.an-cmp-val--amber  { color:#fbbf24; }
.an-cmp-lbl { font:400 10px/1 var(--b);color:rgba(255,255,255,.32); }

/* ══════════════════════════════════════════════════════
   Analytics v2 — Redesign (an2-*)
   ══════════════════════════════════════════════════════ */
:root {
  --an2-bg:    rgba(20,42,32,.82);
  --an2-border:rgba(0,171,169,.16);
  --an2-border2:rgba(0,171,169,.28);
  --an2-text:  rgba(222,238,240,.92);
  --an2-text2: #92b0b3;
  --an2-text3: #527276;
  --an2-accent:#00aba9;
  --an2-accent2:#2dd4bf;
  --an2-purple:#a78bfa;
  --an2-green: #4ade80;
  --an2-orange:#fb923c;
  --an2-amber: #fbbf24;
  --an2-red:   #ef4444;
}
.an2-content { flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:10px 18px 30px;scrollbar-width:thin;scrollbar-color:rgba(0,171,169,.35) transparent; }
.an2-content::-webkit-scrollbar { width:5px; }
.an2-content::-webkit-scrollbar-track { background:transparent; }
.an2-content::-webkit-scrollbar-thumb { background:rgba(0,171,169,.35);border-radius:99px; }
.an2-content::-webkit-scrollbar-thumb:hover { background:rgba(0,171,169,.6); }
/* Card */
.an2-card { background:var(--an2-bg);border:1px solid var(--an2-border);border-radius:12px;overflow:hidden;flex-shrink:0; }
.an2-card-hd { display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--an2-border); }
.an2-card-hd-l { display:flex;align-items:center;gap:7px;font:700 9px var(--b);text-transform:uppercase;letter-spacing:.1em;color:var(--an2-text3); }
.an2-card-hd-l svg { stroke:currentColor;flex-shrink:0; }
.an2-card-hd-r { display:flex;align-items:center;gap:6px; }
.an2-ts { font:400 9px var(--b);color:var(--an2-text3); }
.an2-refresh-btn { display:flex;align-items:center;gap:4px;font:500 10px var(--b);color:var(--an2-text3);background:transparent;border:none;cursor:pointer;padding:3px 7px;border-radius:6px;transition:background .15s; }
.an2-refresh-btn:hover { background:rgba(255,255,255,.06);color:var(--an2-text2); }
/* KPI row */
.an2-kpi-row { display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr; }
.an2-kpi { display:flex;flex-direction:column;align-items:center;gap:3px;padding:16px 8px;border-right:1px solid rgba(255,255,255,.08); }
.an2-kpi:last-child { border-right:none; }
.an2-kpi-n { font:800 26px/1 var(--font);color:#fff;letter-spacing:-.04em; }
.an2-kpi-l { font:600 9px var(--b);color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.08em;text-align:center; }
.an2-kpi-sub { font:600 10px var(--b);color:var(--an2-amber);margin-top:1px; }
.an2-kpi--total .an2-kpi-n { font-size:32px;color:var(--an2-accent); }
.an2-kpi--total .an2-kpi-l { font-size:9px;color:rgba(255,255,255,.6); }
.an2-kpi--pre .an2-kpi-n  { color:#c4b5fd; }
.an2-kpi--sat .an2-kpi-n  { color:#fdba74; }
.an2-kpi--sort .an2-kpi-n { color:#86efac; }
.an2-delta { display:inline-flex;align-items:center;gap:2px;font:600 9px var(--b);padding:1px 5px;border-radius:5px;margin-top:2px; }
.an2-delta--up   { background:rgba(74,222,128,.15);color:#4ade80;border:1px solid rgba(74,222,128,.3); }
.an2-delta--down { background:rgba(251,146,60,.15);color:#fb923c;border:1px solid rgba(251,146,60,.3); }
/* Gráfico por hora */
.an2-chart-area { padding:12px 14px 8px; }
.an2-chart-labels { display:flex;justify-content:space-between;margin-top:4px; }
.an2-chart-lbl { font:400 9px var(--b);color:var(--an2-text3); }
.an2-chart-peak { display:flex;align-items:center;gap:5px;margin-top:6px;font:400 10px var(--b);color:var(--an2-text3); }
.an2-chart-peak strong { color:var(--an2-accent);font-weight:700; }
.an2-chart-peak-dot { width:7px;height:7px;border-radius:50%;background:var(--an2-accent);flex-shrink:0; }
/* Funil */
.an2-funil-body { padding:14px; }
.an2-funil-steps { display:flex;align-items:stretch; }
.an2-funil-step { flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);position:relative; }
.an2-funil-step+.an2-funil-step { margin-left:-1px; }
.an2-funil-step:first-child { border-radius:10px 0 0 10px; }
.an2-funil-step:last-child  { border-radius:0 10px 10px 0; }
.an2-funil-n    { font:800 26px/1 var(--font);color:#fff;letter-spacing:-.03em; }
.an2-funil-l    { font:600 9px var(--b);color:rgba(255,255,255,.5);text-align:center;text-transform:uppercase;letter-spacing:.06em; }
.an2-funil-rate { font:600 10px var(--b);padding:2px 7px;border-radius:99px;margin-top:2px; }
.an2-funil-rate--pre  { color:var(--an2-purple);background:rgba(167,139,250,.12);border:1px solid rgba(167,139,250,.2); }
.an2-funil-rate--qr   { color:var(--an2-accent);background:rgba(0,171,169,.1);border:1px solid var(--an2-border); }
.an2-funil-rate--sat  { color:var(--an2-orange);background:rgba(251,146,60,.1);border:1px solid rgba(251,146,60,.2); }
.an2-funil-rate--sort { color:var(--an2-green);background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.2); }
.an2-funil-arrow { position:absolute;right:-9px;top:50%;transform:translateY(-50%);width:16px;height:16px;background:var(--an2-bg);border:1px solid var(--an2-border);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:1; }
.an2-funil-arrow svg { stroke:var(--an2-text3); }
.an2-funil-taxa { display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;background:rgba(167,139,250,.06);border:1px solid rgba(167,139,250,.18);border-radius:8px;flex-wrap:wrap;margin-top:10px; }
.an2-funil-taxa svg { stroke:#a78bfa;flex-shrink:0; }
.an2-funil-taxa-txt { font:400 11px var(--b);color:var(--an2-text2); }
.an2-funil-taxa-n   { font:700 12px var(--b);color:var(--an2-purple); }
.an2-funil-taxa-sub { font:400 10px var(--b);color:var(--an2-text3); }
/* Origem */
.an2-src-body { padding:12px 14px;display:flex;flex-direction:column;gap:8px; }
.an2-src-stacked { height:10px;border-radius:99px;overflow:hidden;display:flex; }
.an2-src-sep   { height:1px;background:var(--an2-border); }
.an2-src-bar-row { display:flex;align-items:center;gap:8px; }
.an2-src-bar-label-wrap { display:flex;align-items:center;gap:5px;width:100px;flex-shrink:0; }
.an2-src-bar-dot { width:8px;height:8px;border-radius:2px;flex-shrink:0; }
.an2-src-bar-label { font:500 11px var(--b);color:rgba(255,255,255,.75); }
.an2-src-bar-sub { font:400 9px var(--b);color:rgba(255,255,255,.4); }
.an2-src-bar-track { flex:1;height:10px;background:rgba(255,255,255,.1);border-radius:99px;overflow:hidden; }
.an2-src-bar-fill { height:100%;border-radius:99px;transition:width .6s ease; }
.an2-src-bar-fill--qr  { background:linear-gradient(90deg,var(--an2-accent),var(--an2-accent2)); }
.an2-src-bar-fill--pre { background:var(--an2-purple); }
.an2-src-bar-fill--sym { background:var(--an2-accent2); }
.an2-src-bar-count { font:600 11px var(--b);color:var(--an2-text2);width:28px;text-align:right;flex-shrink:0; }
.an2-src-bar-pct   { font:400 10px var(--b);width:30px;flex-shrink:0;text-align:right; }
.an2-src-total { display:flex;justify-content:flex-end;font:400 10px var(--b);color:var(--an2-text3); }
.an2-src-total strong { color:var(--an2-accent);font-weight:700;margin-left:4px; }
/* Perfil */
.an2-perfil-body { padding:12px 14px;display:flex;flex-direction:column;gap:12px; }
.an2-perfil-sub  { font:700 9px var(--b);text-transform:uppercase;letter-spacing:.09em;color:var(--an2-text3);margin-bottom:6px; }
.an2-perfil-grid { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
.an2-perfil-list { display:flex;flex-direction:column;gap:5px; }
.an2-perfil-item { display:flex;align-items:center;gap:5px; }
.an2-perfil-rank { font:700 9px var(--b);color:var(--an2-text3);width:12px;flex-shrink:0;text-align:right; }
.an2-perfil-bar-wrap { flex:1;display:flex;flex-direction:column;gap:2px;min-width:0; }
.an2-perfil-bar-lbl { font:500 10px var(--b);color:rgba(255,255,255,.75);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.an2-perfil-bar-track { height:5px;background:rgba(255,255,255,.1);border-radius:99px;overflow:hidden; }
.an2-perfil-bar-fill { height:100%;border-radius:99px;background:linear-gradient(90deg,var(--an2-accent),var(--an2-accent2));transition:width .6s ease; }
.an2-perfil-bar-fill--purple { background:var(--an2-purple); }
.an2-perfil-n { font:600 11px var(--b);color:var(--an2-text);width:22px;text-align:right;flex-shrink:0; }
.an2-city-list { display:flex;flex-direction:column;gap:4px; }
.an2-city-item { display:flex;align-items:center;gap:8px;padding:5px 8px;background:rgba(255,255,255,.03);border:1px solid var(--an2-border);border-radius:7px; }
.an2-city-pos  { font:700 9px var(--b);color:var(--an2-text3);width:14px;flex-shrink:0; }
.an2-city-name { font:500 11px var(--b);color:var(--an2-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.an2-city-bar  { flex:0 0 80px;height:4px;background:rgba(255,255,255,.07);border-radius:99px;overflow:hidden; }
.an2-city-bar-fill { height:100%;border-radius:99px;background:var(--an2-accent);opacity:.7; }
.an2-city-n    { font:600 10px var(--b);color:var(--an2-text2);flex-shrink:0;min-width:20px;text-align:right; }
/* Satisfação */
.an2-sat-body     { padding:12px 14px;display:flex;flex-direction:column;gap:10px; }
.an2-sat-scores   { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.an2-sat-score-card { background:rgba(255,255,255,.04);border:1px solid var(--an2-border);border-radius:10px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:4px; }
.an2-sat-score-n  { font:900 32px/1 var(--font);color:var(--an2-orange);letter-spacing:-.04em; }
.an2-sat-score-n--pal { color:var(--an2-amber); }
.an2-sat-score-l  { font:500 9px var(--b);color:var(--an2-text3);text-transform:uppercase;letter-spacing:.07em; }
.an2-sat-stars    { font-size:13px;letter-spacing:2px;color:var(--an2-amber); }
.an2-sat-sep      { height:1px;background:var(--an2-border); }
.an2-sat-dist     { display:flex;flex-direction:column;gap:4px; }
.an2-sat-dist-row { display:flex;align-items:center;gap:7px; }
.an2-sat-dist-star { font:500 10px var(--b);color:var(--an2-text3);width:22px;text-align:right;flex-shrink:0; }
.an2-sat-dist-bar  { flex:1;height:6px;background:rgba(255,255,255,.07);border-radius:99px;overflow:hidden; }
.an2-sat-dist-fill { height:100%;border-radius:99px;background:var(--an2-amber); }
.an2-sat-dist-n    { font:400 10px var(--b);color:var(--an2-text3);width:24px;flex-shrink:0; }
/* Ritmo */
.an2-ritmo-body { padding:10px 14px; }
.an2-ritmo-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:6px; }
.an2-ritmo-card { background:rgba(255,255,255,.04);border:1px solid var(--an2-border);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:2px; }
.an2-ritmo-n    { font:700 20px/1 var(--font);color:var(--an2-text);letter-spacing:-.02em; }
.an2-ritmo-u    { font:400 9px var(--b);color:var(--an2-text3); }
.an2-ritmo-l    { font:500 9px var(--b);color:var(--an2-text3);text-transform:uppercase;letter-spacing:.07em;margin-top:2px; }
.an2-ritmo-l--up   { color:var(--an2-green); }
.an2-ritmo-l--down { color:var(--an2-orange); }
/* Dispositivos */
.an2-dev-body  { padding:12px 14px;display:flex;flex-direction:column;gap:10px; }
.an2-dev-split { display:grid;grid-template-columns:80px 1fr;gap:16px;align-items:center; }
.an2-dev-donut { position:relative;flex-shrink:0; }
.an2-dev-donut-center { position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none; }
.an2-dev-donut-pct { font:800 16px/1 var(--font);color:var(--an2-accent); }
.an2-dev-donut-lbl { font:500 8px var(--b);color:var(--an2-text3);text-transform:uppercase; }
.an2-dev-legend { display:flex;flex-direction:column;gap:5px; }
.an2-dev-legend-item { display:flex;align-items:center;gap:7px; }
.an2-dev-legend-dot  { width:8px;height:8px;border-radius:2px;flex-shrink:0; }
.an2-dev-legend-lbl  { font:500 11px var(--b);color:var(--an2-text2);flex:1; }
.an2-dev-legend-n    { font:600 11px var(--b);color:var(--an2-text); }
.an2-dev-legend-pct  { font:400 10px var(--b);color:var(--an2-text3);width:34px;text-align:right; }
.an2-dev-os { display:grid;grid-template-columns:repeat(4,1fr);gap:6px; }
.an2-dev-os-card { background:rgba(255,255,255,.04);border:1px solid var(--an2-border);border-radius:9px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:3px; }
.an2-dev-os-icon { font-size:16px; }
.an2-dev-os-lbl  { font:500 9px var(--b);color:var(--an2-text2); }
.an2-dev-os-n    { font:700 13px var(--b);color:var(--an2-text); }
.an2-dev-os-pct  { font:400 9px var(--b);color:var(--an2-text3); }
/* Form Analytics tabs */
.an2-fan-tabs { display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none; }
.an2-fan-tabs::-webkit-scrollbar { height:0; }
.an2-fan-tab  { flex-shrink:0;padding:10px 16px;font:500 11px var(--b);color:var(--an2-text3);border:none;background:transparent;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap; }
.an2-fan-tab:hover { color:var(--an2-text2);background:rgba(255,255,255,.03); }
.an2-fan-tab--active { color:var(--an2-accent);border-bottom-color:var(--an2-accent);font-weight:600; }
.an2-fan-content { padding:12px 14px;display:flex;flex-direction:column;gap:10px; }
.an2-fan-kpis   { display:grid;grid-template-columns:repeat(3,1fr);gap:6px; }
.an2-fan-kpis--4 { grid-template-columns:repeat(4,1fr); }
.an2-fan-kpi    { background:rgba(255,255,255,.04);border:1px solid var(--an2-border);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:2px; }
.an2-fan-kpi-n  { font:700 18px/1 var(--font);color:var(--an2-text);letter-spacing:-.02em; }
.an2-fan-kpi-u  { font:400 9px var(--b);color:var(--an2-text3); }
.an2-fan-kpi-l  { font:500 8px var(--b);color:var(--an2-text3);text-transform:uppercase;letter-spacing:.07em;margin-top:2px; }
.an2-fan-kpi-n--green  { color:var(--an2-green); }
.an2-fan-kpi-n--orange { color:var(--an2-orange); }
.an2-fan-kpi-n--red    { color:var(--an2-red); }
.an2-fan-sep { height:1px;background:var(--an2-border); }
.an2-fan-sub { font:700 9px var(--b);text-transform:uppercase;letter-spacing:.09em;color:var(--an2-text3);margin-bottom:4px; }
.an2-fan-funnel { display:flex;flex-direction:column;gap:4px; }
.an2-fan-funnel-row { display:flex;align-items:center;gap:8px; }
.an2-fan-funnel-lbl { font:500 10px var(--b);color:var(--an2-text2);width:88px;flex-shrink:0;white-space:nowrap; }
.an2-fan-funnel-bar { flex:1;height:20px;background:rgba(255,255,255,.05);border-radius:6px;overflow:hidden; }
.an2-fan-funnel-fill { height:100%;border-radius:6px;display:flex;align-items:center;padding-left:8px; }
.an2-fan-funnel-fill-n { font:700 10px var(--b);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4); }
.an2-fan-funnel-rate { font:600 10px var(--b);width:36px;flex-shrink:0;text-align:right; }
.an2-fan-funnel-drop { display:flex;align-items:center;gap:5px;font:400 10px var(--b);color:var(--an2-text3);margin-top:1px;padding:0 2px; }
.an2-fan-funnel-drop-arrow { font-size:9px;color:var(--an2-red); }
.an2-fan-fields { display:flex;flex-direction:column;gap:5px; }
.an2-fan-field-row { display:flex;align-items:center;gap:8px; }
.an2-fan-field-name { font:500 10px var(--b);color:var(--an2-text2);width:110px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.an2-fan-field-bar  { flex:1;height:14px;background:rgba(255,255,255,.05);border-radius:4px;overflow:hidden; }
.an2-fan-field-fill { height:100%;border-radius:4px;display:flex;align-items:center;padding-left:6px;font:600 8px var(--b);color:rgba(255,255,255,.8); }
.an2-fan-field-fill--ok   { background:rgba(0,171,169,.4); }
.an2-fan-field-fill--warn { background:rgba(251,191,36,.45); }
.an2-fan-field-fill--bad  { background:rgba(239,68,68,.45); }
.an2-fan-field-time { font:500 10px var(--b);color:var(--an2-text3);width:30px;text-align:right;flex-shrink:0; }
.an2-fan-field-badge { font:600 8px var(--b);padding:1px 5px;border-radius:4px;flex-shrink:0; }
.an2-fan-field-badge--drop { background:rgba(239,68,68,.12);color:var(--an2-red);border:1px solid rgba(239,68,68,.2); }
.an2-fan-abandon { display:flex;flex-direction:column;gap:4px; }
.an2-fan-abandon-row { display:flex;align-items:center;gap:7px;padding:5px 8px;background:rgba(255,255,255,.03);border:1px solid var(--an2-border);border-radius:7px; }
.an2-fan-abandon-pos   { font:700 9px var(--b);color:var(--an2-text3);width:14px;flex-shrink:0; }
.an2-fan-abandon-field { font:500 10px var(--b);color:var(--an2-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.an2-fan-abandon-bar   { flex:0 0 60px;height:4px;background:rgba(255,255,255,.07);border-radius:99px;overflow:hidden; }
.an2-fan-abandon-fill  { height:100%;border-radius:99px;background:var(--an2-red);opacity:.6; }
.an2-fan-abandon-n     { font:600 10px var(--b);color:var(--an2-red);width:24px;text-align:right;flex-shrink:0; }
.an2-fan-social { display:grid;grid-template-columns:repeat(2,1fr);gap:6px; }
.an2-fan-social-card { background:rgba(255,255,255,.04);border:1px solid var(--an2-border);border-radius:9px;padding:8px 10px;display:flex;align-items:center;gap:8px; }
.an2-fan-social-icon { width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0; }
.an2-fan-social-info { flex:1;min-width:0; }
.an2-fan-social-name   { font:600 10px var(--b);color:var(--an2-text);display:block; }
.an2-fan-social-cliques{ font:400 9px var(--b);color:var(--an2-text3); }
.an2-fan-social-pct { font:700 11px var(--b);color:var(--an2-accent);flex-shrink:0; }
/* Compare v2 */
.an2-compare-wrap { flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:10px 18px 30px; }
.an2-cmp-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.an2-cmp-panel { background:var(--an2-bg);border:1px solid var(--an2-border);border-radius:12px;overflow:hidden; }
.an2-cmp-panel-hd { padding:12px 16px;border-bottom:1px solid var(--an2-border);display:flex;align-items:center;gap:10px; }
.an2-cmp-badge { font:700 11px/1 var(--b);padding:3px 9px;border-radius:6px;flex-shrink:0; }
.an2-cmp-badge--a { background:rgba(45,212,191,.18);color:#2dd4bf; }
.an2-cmp-badge--b { background:rgba(167,139,250,.18);color:#a78bfa; }
.an2-cmp-ev-name   { font:600 13px/1.3 var(--b);color:var(--an2-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.an2-cmp-ev-meta   { font:400 10px/1 var(--b);color:var(--an2-text3);margin-top:2px; }
.an2-cmp-kpis { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--an2-border); }
.an2-cmp-kpi  { display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;background:var(--an2-bg); }
.an2-cmp-kpi-n { font:800 20px/1 var(--font);color:var(--an2-accent);letter-spacing:-.03em; }
.an2-cmp-kpi-l { font:500 8px var(--b);color:var(--an2-text3);text-transform:uppercase;letter-spacing:.07em;text-align:center; }
.an2-cmp-kpi--pre .an2-cmp-kpi-n  { color:var(--an2-purple); }
.an2-cmp-kpi--sat .an2-cmp-kpi-n  { color:var(--an2-orange); }
.an2-cmp-kpi--sort .an2-cmp-kpi-n { color:var(--an2-green); }
.an2-cmp-chart-card { background:var(--an2-bg);border:1px solid var(--an2-border);border-radius:12px;overflow:hidden;padding:14px; }
.an2-cmp-chart-title { font:700 9px var(--b);text-transform:uppercase;letter-spacing:.1em;color:var(--an2-text3);margin-bottom:10px; }
.an2-cmp-empty { display:flex;align-items:center;justify-content:center;padding:32px;font:400 12px var(--b);color:var(--an2-text3);border:1px dashed var(--an2-border);border-radius:12px; }
@media(max-width:640px) {
  .an2-kpi-row { grid-template-columns:repeat(3,1fr); }
  .an2-kpi--total { grid-column:1/-1;border-right:none;border-bottom:1px solid var(--an2-border); }
  .an2-perfil-grid { grid-template-columns:1fr; }
  .an2-dev-os { grid-template-columns:repeat(2,1fr); }
  .an2-cmp-grid { grid-template-columns:1fr; }
  .an2-fan-kpis--4 { grid-template-columns:repeat(2,1fr); }
}

/* Print */
@media print {
  body > *:not(#analyticsModal) { display:none !important; }
  .an-modal-ov { position:static !important;background:white !important;padding:0 !important;opacity:1 !important;pointer-events:all !important; }
  .an-modal-box { height:auto !important;transform:none !important;opacity:1 !important;border-radius:0 !important;box-shadow:none !important;background:white !important;color:#000 !important; }
  .an-hd { background:white !important;border-bottom:1px solid #ccc !important; }
  .an-hd-title,.an-hd-sub,.an-chart-title,.an-stat-lbl { color:#333 !important; }
  .an-stat-val { color:#000 !important; }
  .an-close-btn,.an-export-btn,.an-filters { display:none !important; }
  .an-content { overflow:visible !important; }
  .an-charts-grid { grid-template-columns:1fr 1fr !important; }
}

/* ══════════════════════════════════════════════════════════════
   REDESIGN PREMIUM CARDS — Escala 4
   ══════════════════════════════════════════════════════════════ */

/* 1. Lock flutuante oculto — cadeado vive no badge via JS */
.mc-lock { display:none !important; }

/* 2. Badge "Fechado" com ícone de cadeado */
.mc-status--locked {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.22);
  gap: 4px;
}
.mc-status--locked svg { opacity:.55; flex-shrink:0; }

/* 3. Glassmorphism reforçado */
.mc {
  backdrop-filter: blur(32px) saturate(148%) !important;
  -webkit-backdrop-filter: blur(32px) saturate(148%) !important;
}

/* 4. Shimmer nos cards ativos + analytics */
@keyframes mcShimmer {
  0%   { transform: translateX(-140%) skewX(-10deg); }
  100% { transform: translateX(280%)  skewX(-10deg); }
}
.mc--active::before,
.mc--analytics::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(105deg,
    transparent 20%, rgba(255,255,255,.04) 50%, transparent 80%);
  transform: translateX(-140%) skewX(-10deg);
  animation: mcShimmer 4.2s ease-in-out infinite;
  pointer-events: none; z-index: 2; border-radius: inherit;
}
.mc--analytics::before               { animation-delay: .85s; }
#menuCardQRSorteio.mc--active::before { animation-delay: .3s; }
#menuCardSorteio.mc--active::before   { animation-delay: .6s; }
#menuCardQRSatisfacao.mc--active::before { animation-delay: .9s; }

/* 5. Step badge por card */
#menuCardQRSorteio .mc-step-num    { background:rgba(34,197,94,.12);   border-color:rgba(34,197,94,.26);   color:rgba(34,197,94,.85); }
#menuCardSorteio   .mc-step-num    { background:rgba(245,158,11,.12);  border-color:rgba(245,158,11,.26);  color:rgba(245,158,11,.85); }
#menuCardQRSatisfacao .mc-step-num { background:rgba(167,139,250,.12); border-color:rgba(167,139,250,.26); color:rgba(167,139,250,.85); }

/* 6. Borda base por card (fechado / padrão) — CSS vars já tratam .mc border, mas reforço aqui */
#menuCardQRSorteio:not(.mc--active):not(.mc--done)    { border-color: rgba(34,197,94,.15); }
#menuCardSorteio:not(.mc--active):not(.mc--done)      { border-color: rgba(245,158,11,.15); }
#menuCardQRSatisfacao:not(.mc--active):not(.mc--done) { border-color: rgba(167,139,250,.15); }

/* 7. Linha de luz no topo — CSS vars já tratam isso via .mc::after */

/* 8. Ícone padrão por card (quando sem mc-ic--*) — CSS vars já tratam o Event e Analytics */
#menuCardQRSorteio .mc-ic     { background: rgba(34,197,94,.09);   border-color: rgba(34,197,94,.20);  box-shadow: 0 0 28px rgba(34,197,94,.18); }
#menuCardQRSorteio .mc-ic svg { stroke: rgba(34,197,94,.85); }
#menuCardSorteio   .mc-ic     { background: rgba(245,158,11,.09);  border-color: rgba(245,158,11,.20); box-shadow: 0 0 28px rgba(245,158,11,.16); }
#menuCardSorteio   .mc-ic svg { stroke: rgba(245,158,11,.85); }
#menuCardQRSatisfacao .mc-ic  { background: rgba(167,139,250,.09); border-color: rgba(167,139,250,.20);box-shadow: 0 0 28px rgba(167,139,250,.16); }
#menuCardQRSatisfacao .mc-ic svg { stroke: rgba(167,139,250,.82); }

/* 9. Hover glow por card */
#menuCardQRSorteio:not(.mc--pending):hover {
  border-color: rgba(34,197,94,.48) !important;
  box-shadow: 0 22px 52px rgba(0,0,0,.50),0 0 0 1px rgba(34,197,94,.22),0 8px 32px rgba(34,197,94,.18) !important;
}
#menuCardSorteio:not(.mc--pending):hover {
  border-color: rgba(245,158,11,.48) !important;
  box-shadow: 0 22px 52px rgba(0,0,0,.50),0 0 0 1px rgba(245,158,11,.22),0 8px 32px rgba(245,158,11,.18) !important;
}
#menuCardQRSatisfacao:not(.mc--pending):hover {
  border-color: rgba(167,139,250,.48) !important;
  box-shadow: 0 22px 52px rgba(0,0,0,.50),0 0 0 1px rgba(167,139,250,.22),0 8px 32px rgba(167,139,250,.18) !important;
}

/* 10. Estado ativo por card */
#menuCardQRSorteio.mc--active:not(.mc--done)    { border-color: rgba(34,197,94,.32)   !important; box-shadow: 0 0 0 1px rgba(34,197,94,.10),  0 4px 28px rgba(34,197,94,.14)   !important; }
#menuCardSorteio.mc--active:not(.mc--done)      { border-color: rgba(245,158,11,.32)  !important; box-shadow: 0 0 0 1px rgba(245,158,11,.10), 0 4px 28px rgba(245,158,11,.14)  !important; }
#menuCardQRSatisfacao.mc--active:not(.mc--done) { border-color: rgba(167,139,250,.32) !important; box-shadow: 0 0 0 1px rgba(167,139,250,.10),0 4px 28px rgba(167,139,250,.14) !important; }

/* hover no ativo */
#menuCardQRSorteio.mc--active:not(.mc--done):hover    { border-color: rgba(34,197,94,.55)   !important; box-shadow: 0 22px 56px rgba(0,0,0,.40),0 0 0 1px rgba(34,197,94,.24),  0 8px 32px rgba(34,197,94,.22)   !important; }
#menuCardSorteio.mc--active:not(.mc--done):hover      { border-color: rgba(245,158,11,.55)  !important; box-shadow: 0 22px 56px rgba(0,0,0,.40),0 0 0 1px rgba(245,158,11,.24), 0 8px 32px rgba(245,158,11,.22)  !important; }
#menuCardQRSatisfacao.mc--active:not(.mc--done):hover { border-color: rgba(167,139,250,.55) !important; box-shadow: 0 22px 56px rgba(0,0,0,.40),0 0 0 1px rgba(167,139,250,.24),0 8px 32px rgba(167,139,250,.22) !important; }

/* 11. Ícone ativo QR Sorteio — mantém verde mesmo com mc-ic--teal do JS */
#menuCardQRSorteio.mc--active .mc-ic.mc-ic--teal     { background: rgba(34,197,94,.16) !important; border-color: rgba(34,197,94,.32) !important; box-shadow: 0 0 28px rgba(34,197,94,.20) !important; }
#menuCardQRSorteio.mc--active .mc-ic.mc-ic--teal svg { stroke: #4ade80 !important; }

/* 12. mc-sub ao vivo / concluído — texto completo sem truncar */
.mc--active .mc-sub,
.mc--done .mc-sub {
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  line-height: 1.35;
}

/* 13. Bolinha verde pulsante no sub texto */
.mc-live-dot {
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 6px rgba(34,197,94,.9);
  animation: mcDotPulse 1.8s ease-in-out infinite;
  flex-shrink: 0;
  margin-right: 5px;
  vertical-align: middle;
  position: relative;
  top: -1px;
}

/* ══ ENCERRAR EVENTO — botão menu ══ */
#menuCloseEventWrap {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 1020px;
  margin-top: 10px;
}
.menu-close-event-btn {

/* ═══ fonte/estilo/60-analytics/020-cards.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Analytics — grade de cards
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 7075–7554
 * TAMANHO PREVISTO: 480 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

  /* largura de 2 cards: 2 × cardWidth + 1 gap interno */
  flex: 0 0 auto;
  width: calc(2 * (min(100vw - 48px, 1020px) - 56px) / 5 + 14px);
  position: relative;
  overflow: hidden;
  border: none;
  border-radius: 18px;
  background: rgba(18,3,3,1);
  cursor: pointer;
  color: #fff;
  padding: 0;
  box-shadow: 0 4px 24px rgba(0,0,0,.40);
  transition: transform .22s cubic-bezier(.16,1,.3,1), box-shadow .22s;
}
.mce-bg {
  position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
  background:
    radial-gradient(ellipse at 70% 0%, rgba(239,68,68,.13) 0%, transparent 62%),
    linear-gradient(170deg, rgba(28,5,5,.98) 0%, rgba(10,2,2,1) 100%);
}
.mce-bl {
  position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
  border: 1px solid rgba(239,68,68,.18);
}
.mce-bl::before {
  content: ''; position: absolute; top: 0; left: 20%; right: 20%; height: 1px;
  background: linear-gradient(to right, transparent, rgba(239,68,68,.45), transparent);
}
.mce-inner {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  gap: 12px;
  padding: 15px 28px;
}
.mce-ic {
  width: 32px; height: 32px; border-radius: 10px; flex-shrink: 0;
  background: rgba(239,68,68,.10);
  border: 1px solid rgba(239,68,68,.22);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 18px rgba(239,68,68,.16);
  transition: all .22s;
}
.mce-ic svg { stroke: rgba(239,68,68,.80); transition: stroke .22s; }
.mce-label {
  font: 700 13px/1 var(--font);
  color: rgba(239,68,68,.78);
  letter-spacing: -.01em;
  transition: color .22s;
}
.mce-sub {
  font: 400 11px/1 var(--b);
  color: rgba(255,255,255,.28);
  transition: color .22s;
}
.menu-close-event-btn:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 10px 36px rgba(239,68,68,.14), 0 4px 16px rgba(0,0,0,.40);
}
.menu-close-event-btn:hover:not(:disabled) .mce-bl {
  border-color: rgba(239,68,68,.35);
}
.menu-close-event-btn:hover:not(:disabled) .mce-ic {
  background: rgba(239,68,68,.16);
  border-color: rgba(239,68,68,.38);
  box-shadow: 0 0 24px rgba(239,68,68,.28);
}
.menu-close-event-btn:hover:not(:disabled) .mce-ic svg { stroke: #f87171; }
.menu-close-event-btn:hover:not(:disabled) .mce-label { color: #f87171; }
.menu-close-event-btn:hover:not(:disabled) .mce-sub { color: rgba(255,255,255,.42); }
.menu-close-event-btn:active { transform: translateY(0) scale(.99); transition-duration: .08s; }
/* sem evento — completamente apagado, mas clicável */
.menu-close-event-btn--off {
  cursor: pointer;
}
.menu-close-event-btn--off .mce-bg {
  background: linear-gradient(170deg, rgba(16,16,16,.96) 0%, rgba(6,6,6,1) 100%);
}
.menu-close-event-btn--off .mce-bl { border-color: rgba(255,255,255,.06); }
.menu-close-event-btn--off .mce-bl::before {
  background: linear-gradient(to right, transparent, rgba(255,255,255,.06), transparent);
}
.menu-close-event-btn--off .mce-ic {
  background: rgba(255,255,255,.03); border-color: rgba(255,255,255,.07); box-shadow: none;
}
.menu-close-event-btn--off .mce-ic svg { stroke: rgba(255,255,255,.14); }
.menu-close-event-btn--off .mce-label { color: rgba(255,255,255,.18); }
.menu-close-event-btn--off .mce-sub  { color: rgba(255,255,255,.10); }

/* evento ativo mas pendências — cinza, clicável */
.menu-close-event-btn--pending .mce-bg {
  background: linear-gradient(170deg, rgba(22,22,22,.97) 0%, rgba(10,10,10,1) 100%);
}
.menu-close-event-btn--pending .mce-bl { border-color: rgba(255,255,255,.10); }
.menu-close-event-btn--pending .mce-bl::before {
  background: linear-gradient(to right, transparent, rgba(255,255,255,.12), transparent);
}
.menu-close-event-btn--pending .mce-ic {
  background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); box-shadow: none;
}
.menu-close-event-btn--pending .mce-ic svg { stroke: rgba(255,255,255,.30); }
.menu-close-event-btn--pending .mce-label { color: rgba(255,255,255,.36); }
.menu-close-event-btn--pending .mce-sub  { color: rgba(255,255,255,.22); }
.menu-close-event-btn--pending:hover .mce-bl { border-color: rgba(255,255,255,.20); }
.menu-close-event-btn--pending:hover .mce-label { color: rgba(255,255,255,.52); }
.menu-close-event-btn--pending:hover .mce-sub  { color: rgba(255,255,255,.34); }

/* ══ MODAL ENCERRAR EVENTO ══ */
.mce-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.65);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9100;
  padding: 20px;
  animation: fadeIn .18s ease;
}
.mce-box {
  background: linear-gradient(160deg, rgba(10,28,28,.97) 0%, rgba(4,14,12,.99) 100%);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  width: 100%;
  max-width: 400px;
  box-shadow: 0 20px 60px rgba(0,0,0,.55);
  overflow: hidden;
}
.mce-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px 14px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.mce-title {
  font: 700 15px/1.2 var(--font);
  color: rgba(255,255,255,.92);
  letter-spacing: -.02em;
}
.mce-close-btn {
  width: 28px; height: 28px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.55);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .15s;
}
.mce-close-btn:hover { background: rgba(255,255,255,.10); color: rgba(255,255,255,.85); }
.mce-body {
  padding: 18px 20px 8px;
}
.mce-footer {
  padding: 12px 20px 18px;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

/* checklist items */
.mce-checklist { display: flex; flex-direction: column; gap: 10px; margin-bottom: 6px; }
.mce-check-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px 13px;
  border-radius: 10px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
}
.mce-check-item--ok  { background: rgba(34,197,94,.06); border-color: rgba(34,197,94,.18); }
.mce-check-item--err { background: rgba(239,68,68,.05); border-color: rgba(239,68,68,.15); }
.mce-check-ic {
  width: 22px; height: 22px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700;
}
.mce-check-item--ok  .mce-check-ic { background: rgba(34,197,94,.18); color: #4ade80; }
.mce-check-item--err .mce-check-ic { background: rgba(239,68,68,.15); color: #f87171; }
.mce-check-lbl { font: 500 13px/1.3 var(--b); color: rgba(255,255,255,.75); }
.mce-check-item--err .mce-check-lbl { color: rgba(255,255,255,.55); }

/* confirm warning */
.mce-warn {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(239,68,68,.07);
  border: 1px solid rgba(239,68,68,.18);
  font: 400 13px/1.5 var(--b);
  color: rgba(255,255,255,.70);
  margin-bottom: 4px;
}
.mce-warn svg { flex-shrink: 0; margin-top: 1px; }

/* modal buttons */
.mce-btn {
  padding: 9px 20px;
  border-radius: 9px;
  font: 600 13px/1 var(--b);
  cursor: pointer;
  border: 1px solid transparent;
  transition: background .15s, border-color .15s;
}
.mce-btn--cancel {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
  color: rgba(255,255,255,.65);
}
.mce-btn--cancel:hover { background: rgba(255,255,255,.10); color: rgba(255,255,255,.85); }
.mce-btn--danger {
  background: rgba(239,68,68,.18);
  border-color: rgba(239,68,68,.35);
  color: #f87171;
}
.mce-btn--danger:hover { background: rgba(239,68,68,.28); border-color: rgba(239,68,68,.55); }
.mce-btn--ok {
  background: rgba(0,171,169,.18);
  border-color: rgba(0,171,169,.35);
  color: rgba(0,171,169,.95);
}
.mce-btn--ok:hover { background: rgba(0,171,169,.28); }

/* ── Anti-flash PWA: data-pwa='1' é injetado ANTES do CSS pelo script inline no <head> ── */
html[data-pwa='1'] { background: #0d1c17; }
html[data-pwa='1'] body { background: #0d1c17 !important; overflow: hidden; }
/* PWA normal: oculta tudo exceto shell, login e modal de encerrar */
html[data-pwa='1'] body:not(.mode-sorteio) > *:not(#pwaShell):not(#evSiteLogin):not(#menuEncerrarModal) { display: none !important; }

/* PWA sorteio: oculta shell, mostra sorteio */
html[data-pwa='1'] body.mode-sorteio > *:not(#app):not(#evSiteLogin):not(#floatCtrl):not(#historyBar):not(#stageFlash) { display: none !important; }
html[data-pwa='1'] body.mode-sorteio #app        { display: flex !important; }
html[data-pwa='1'] body.mode-sorteio #floatCtrl  { display: flex !important; }
html[data-pwa='1'] #pwaShell {
  display: flex !important;
  flex-direction: column;
  position: fixed;
  inset: 0;
  background: #0d1c17;
  z-index: 5;
  overflow: hidden;
}

/* ═══ PWA SHELL — 3-tab mobile app ═══ */

/* 0. Mata apenas elementos decorativos pesados — não mata animações do shell */
/* Nota: elements com display:none não animam de qualquer forma */

body.pwa-mode #smilePhotosLayer,
body.pwa-mode #smileWordsLayer,
body.pwa-mode #neonCanvas,
body.pwa-mode #ssNeonCanvas,
body.pwa-mode #screensaverScreen,
body.pwa-mode #qrScreen,
body.pwa-mode .atm,
body.pwa-mode .sorteio-bg,
body.pwa-mode .organic-fog,
body.pwa-mode .bubbles,
body.pwa-mode .menu-overlay,
body.pwa-mode .menu-logo,
body.pwa-mode .menu-slogan-img,
body.pwa-mode .menu-sub,
body.pwa-mode #floatCtrl,
body.pwa-mode #mediaCtrl,
body.pwa-mode #wordCanvas,
body.pwa-mode #confettiCanvas,
body.pwa-mode #menuScreen { display: none !important; }

body.pwa-mode {
  background: #0d1c17 !important;
  overflow: hidden;
}

/* 1. Shell principal */
#pwaShell { display: none; }

body.pwa-mode #pwaShell {
  display: flex;
  flex-direction: column;
  position: fixed;
  inset: 0;
  background: #0d1c17;
  z-index: 5;
  overflow: hidden;
}

/* pwaShell NÃO é escondido em mode-* — as telas de sorteio/qr/screensaver
   são position:fixed com z-index alto e cobrem o shell naturalmente.
   Esconder o shell causava tela branca ao voltar ao menu. */

/* 2. Header */
/* ══ HEADER PWA REDESENHADO ══ */
.pwa-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px 0 14px;
  padding-top: env(safe-area-inset-top, 0px);
  min-height: calc(52px + env(safe-area-inset-top, 0px));
  background: rgba(10,22,17,.94);
  border-bottom: 1px solid rgba(0,171,169,.20);
  flex-shrink: 0;
  gap: 8px;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 1px 0 rgba(0,171,169,.08), 0 2px 16px rgba(0,0,0,.4);
}

/* Lado esquerdo: logo + info */
.pwa-hd-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}
.pwa-hd-logo-wrap {
  flex-shrink: 0;
  padding: 8px 0;
}
.pwa-hd-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  flex: 1;
}
.pwa-hd-info-top {
  display: flex;
  align-items: center;
  gap: 7px;
}
.pwa-hd-app-name {
  font: 700 13px/1 var(--font);
  color: rgba(255,255,255,.88);
  letter-spacing: .02em;
  flex-shrink: 0;
}
.pwa-hd-info-bot {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}
/* Status inline (substituiu o chip separado) */
.pwa-hd-status {
  display: flex;
  align-items: center;
  gap: 4px;
  font: 500 10.5px/1 var(--b);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 160px;
}
.pwa-hd-status--on  { color: #2dd4bf; }
.pwa-hd-status--off { color: rgba(255,255,255,.32); }
.pwa-hd-user-sep { color: rgba(255,255,255,.2); font-size: 10px; flex-shrink:0; }
.pwa-hd-user {
  font: 400 10.5px/1 var(--b);
  color: rgba(0,171,169,.7);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 90px;
  flex-shrink: 1;
}

/* Ponto pulsante ao vivo */
.pwa-live-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #2dd4bf;
  flex-shrink: 0;
}
.pwa-hd-status--off .pwa-live-dot { background: rgba(255,255,255,.2); }
body.pwa-mode .pwa-hd-status--on .pwa-live-dot {
  animation: pwaLivePulse 1.8s ease-in-out infinite;
}
@keyframes pwaLivePulse { 0%,100%{opacity:1} 50%{opacity:.2} }

/* Lado direito: ações */
.pwa-hd-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.pwa-hd-icon-btn {
  position: relative;
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 9px;
  color: rgba(255,255,255,.5);
  cursor: pointer;
  transition: background .15s, color .15s;
  flex-shrink: 0;
}
.pwa-hd-icon-btn:active { background: rgba(255,255,255,.12); color: rgba(255,255,255,.88); }
.pwa-hd-icon-btn--danger {
  border-color: rgba(220,60,60,.2);
  color: rgba(220,100,100,.55);
}
.pwa-hd-icon-btn--danger:active { background: rgba(220,60,60,.12); color: #fca5a5; }
.pwa-hd-divider {
  width: 1px; height: 20px;
  background: rgba(255,255,255,.1);
  margin: 0 2px;
}

/* Compatibilidade com código que ainda usa pwa-hd-btn */
.pwa-hd-btn {
  position: relative;
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 9px;
  color: rgba(255,255,255,.5);
  cursor: pointer;
  flex-shrink: 0;
}
.pwa-hd-btn:active { background: rgba(255,255,255,.12); }

/* Compatibilidade com chip antigo (mantém IDs mas muda a aparência) */
.pwa-status-chip { display: contents; }
.pwa-status-chip--on, .pwa-status-chip--off { display: contents; }

body.pwa-mode .pwa-spin svg {
  animation: pwaSpin .7s linear !important;
}
@keyframes pwaSpin { to { transform: rotate(360deg); } }

body.pwa-mode .pwa-spin svg {
  animation: pwaSpin .7s linear !important;
  animation-duration: .7s !important;
}
@keyframes pwaSpin { to { transform: rotate(360deg); } }

/* 3. Painéis */
.pwa-panels {
  flex: 1;
  overflow: hidden;
  position: relative;
}

.pwa-panel {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 12px;
}

.pwa-panel--hidden { display: none !important; }

.pwa-panel--center {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 24px;
}

/* 4. Pull-to-refresh */
.pwa-pull-indicator {
  display: flex; align-items: center; justify-content: center; gap: 7px;
  padding: 10px; font-size: 12px; color: rgba(255,255,255,.3);
  opacity: 0; transition: opacity .2s;
}
.pwa-pull-indicator.pwa-pull-active { opacity: 1; }

/* ═══ fonte/estilo/70-pwa/010-aba-ao-vivo.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * PWA — aba Ao Vivo
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 7555–7625
 * TAMANHO PREVISTO: 71 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* 5. Aba Ao Vivo */
.pwa-ev-info { padding: 14px 16px 0; }
.pwa-ev-name {
  font-family: 'Outfit', sans-serif;
  font-size: 19px; font-weight: 700;
  color: #fff; line-height: 1.2; margin-bottom: 3px;
}
.pwa-ev-meta { font-size: 12px; color: rgba(255,255,255,.42); }

.pwa-counter-wrap { padding: 20px 16px 12px; text-align: center; }
.pwa-counter {
  font-family: var(--font);
  font-size: 64px; font-weight: 800;
  color: #2dd4bf; line-height: 1; letter-spacing: -2px;
  display: inline-block;
}
.pwa-counter-lbl {
  font-size: 13px; color: rgba(255,255,255,.4);
  margin-top: 4px; text-transform: uppercase; letter-spacing: .08em;
}
body.pwa-mode .pwa-counter-pop {
  animation: pwaCounterPop .3s ease-out !important;
  animation-duration: .3s !important;
}
@keyframes pwaCounterPop { 0%{transform:scale(1)} 40%{transform:scale(1.1)} 100%{transform:scale(1)} }

.pwa-chart-wrap { padding: 0 16px 10px; }
.pwa-chart-title {
  font-size: 10px; font-weight: 600;
  color: rgba(255,255,255,.28); text-transform: uppercase;
  letter-spacing: .08em; margin-bottom: 7px;
}
#pwaChartCanvas { width: 100% !important; height: 72px !important; display: block; }

.pwa-feed {
  margin: 0 14px 12px;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 14px; overflow: hidden;
}
.pwa-feed-hd {
  padding: 9px 13px;
  font-size: 10px; font-weight: 600;
  color: rgba(255,255,255,.28); text-transform: uppercase; letter-spacing: .08em;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.pwa-feed-item {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 13px;
  border-bottom: 1px solid rgba(255,255,255,.05);
  font-size: 13px; font-family: var(--b);
  animation: fadeInUp .22s var(--ee) both;
}
.pwa-feed-item:last-child { border-bottom: none; }
.pwa-feed-name { flex: 1; color: rgba(255,255,255,.85); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.pwa-feed-area { font-size: 10.5px; color: rgba(45,212,191,.7); white-space: nowrap; flex-shrink: 0; background: rgba(45,212,191,.08); padding: 2px 6px; border-radius: 5px; }
.pwa-feed-time { font-size: 11px; color: rgba(255,255,255,.3); flex-shrink: 0; }

.pwa-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 48px 24px; text-align: center; gap: 10px; color: rgba(255,255,255,.3);
}
.pwa-empty > div { font: 500 14px/1.5 var(--b); }
.pwa-empty > button {
  margin-top: 8px; background: rgba(0,171,169,.1);
  border: 1px solid rgba(0,171,169,.28); color: #2dd4bf;
  padding: 10px 20px; border-radius: 8px; font: 600 13px/1 var(--b); cursor: pointer;
  transition: background .15s;
}
.pwa-empty > button:active { background: rgba(0,171,169,.2); }

/* ═══ fonte/estilo/70-pwa/020-aba-eventos.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * PWA — aba Eventos
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 7626–8273
 * TAMANHO PREVISTO: 648 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* 6. Aba Eventos */
.pwa-ev-panel-inner { padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; }

.pwa-ev-empty {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: 40px 20px; gap: 10px;
}
.pwa-ev-empty-ic {
  width: 68px; height: 68px;
  background: rgba(0,171,169,.07); border: 1px solid rgba(0,171,169,.18);
  border-radius: 18px; display: flex; align-items: center; justify-content: center;
  color: rgba(0,171,169,.55);
}
.pwa-ev-empty-ttl { font-size: 16px; font-weight: 600; color: rgba(255,255,255,.8); }
.pwa-ev-empty-sub { font-size: 13px; color: rgba(255,255,255,.33); line-height: 1.5; max-width: 260px; }

.pwa-ev-card {
  background: rgba(0,171,169,.05);
  border: 1px solid rgba(0,171,169,.16);
  border-radius: 16px; overflow: hidden;
}
.pwa-ev-card-hd {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 13px;
  border-bottom: 1px solid rgba(0,171,169,.1);
}
.pwa-ev-card-status {
  display: flex; align-items: center; gap: 5px;
  font-size: 10px; font-weight: 700; color: #00aba9;
  text-transform: uppercase; letter-spacing: .06em;
}
.pwa-ev-edit-btn {
  display: flex; align-items: center; gap: 5px;
  background: none; border: none;
  color: rgba(255,255,255,.38); font-size: 12px; cursor: pointer;
  padding: 3px 7px; border-radius: 6px;
}
.pwa-ev-edit-btn:active { background: rgba(255,255,255,.07); }
.pwa-ev-card-name {
  font-size: 17px; font-weight: 700; color: #fff;
  padding: 10px 13px 3px;
}
.pwa-ev-card-rows { padding: 4px 13px 10px; }
.pwa-ev-card-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,.04); font-size: 13px;
}
.pwa-ev-card-row:last-child { border-bottom: none; }
.pwa-ev-card-lbl { color: rgba(255,255,255,.38); }
.pwa-ev-card-val { color: rgba(255,255,255,.8); font-weight: 500; }

.pwa-chip { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 20px; }
.pwa-chip--green { background: rgba(34,197,94,.12); color: #4ade80; border: 1px solid rgba(34,197,94,.22); }
.pwa-chip--gray  { background: rgba(255,255,255,.06); color: rgba(255,255,255,.38); border: 1px solid rgba(255,255,255,.1); }

.pwa-ev-links {
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 14px; padding: 11px 13px;
}
.pwa-ev-link-ttl {
  font-size: 10px; font-weight: 600; color: rgba(255,255,255,.28);
  text-transform: uppercase; letter-spacing: .08em; margin-bottom: 9px;
}
.pwa-ev-link-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,.05); font-size: 13px;
}
.pwa-ev-link-row:last-child { border-bottom: none; }
.pwa-ev-link-type { color: rgba(255,255,255,.45); }
.pwa-ev-copy-btn {
  background: rgba(0,171,169,.1); border: 1px solid rgba(0,171,169,.22);
  color: #00aba9; font-size: 12px; padding: 4px 9px; border-radius: 6px; cursor: pointer;
}
.pwa-ev-copy-btn:active { background: rgba(0,171,169,.22); }

.pwa-ev-actions { display: flex; flex-direction: column; gap: 8px; }

.pwa-ev-action-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 14px; border-radius: 14px;
  font-size: 15px; font-weight: 600; cursor: pointer; border: none;
  font-family: 'Outfit', sans-serif;
}
.pwa-ev-action-btn--primary {
  background: rgba(0,171,169,.15); border: 1px solid rgba(0,171,169,.3); color: #00aba9;
}
.pwa-ev-action-btn--sorteio {
  background: rgba(245,158,11,.1); border: 1px solid rgba(245,158,11,.28); color: #fbbf24;
}
.pwa-ev-action-btn--danger {
  background: rgba(248,113,113,.07); border: 1px solid rgba(248,113,113,.18); color: #f87171;
}

/* 6b. Live tab — speaker / usuario separados */
.pwa-lv-people { display: flex; flex-direction: column; gap: 4px; align-items: center; }
.pwa-lv-person {
  display: flex; align-items: center; gap: 5px;
  font: 400 12px/1.4 var(--b);
}
.pwa-lv-person svg { opacity: .5; flex-shrink: 0; }
.pwa-lv-lbl { color: rgba(255,255,255,.35); white-space: nowrap; }
.pwa-lv-val { color: rgba(255,255,255,.85); font-weight: 600; }
.pwa-lv-mine {
  font: 700 9px/1 var(--b); letter-spacing: .4px; text-transform: uppercase;
  background: rgba(251,191,36,.18); border: 1px solid rgba(251,191,36,.35);
  color: #fbbf24; border-radius: 4px; padding: 2px 5px;
}

/* 6c. Events card — who block */
.pwa-ev-m-who { display: flex; flex-direction: column; gap: 4px; margin: 6px 0 2px; }
.pwa-ev-m-who-row {
  display: flex; align-items: center; gap: 5px;
  font: 400 12px/1.4 var(--b);
}
.pwa-ev-m-who-row svg { flex-shrink: 0; opacity: .45; }
.pwa-ev-m-who-lbl { color: rgba(255,255,255,.35); min-width: 60px; white-space: nowrap; }
.pwa-ev-m-who-val { color: rgba(255,255,255,.9); font-weight: 600; }
.pwa-ev-m-who-usr svg { stroke: #38bdf8; opacity: .65; }
.pwa-ev-m-who-usr .pwa-ev-m-who-lbl { color: rgba(56,189,248,.5); }
.pwa-ev-m-who-usr .pwa-ev-m-who-val { color: #38bdf8; }
.pwa-ev-m-mine {
  font: 700 9px/1 var(--b); letter-spacing: .4px; text-transform: uppercase;
  background: rgba(251,191,36,.15); border: 1px solid rgba(251,191,36,.3);
  color: #fbbf24; border-radius: 4px; padding: 2px 6px; margin-left: 4px;
}

/* 6d. Events card — histórico expandível */
.pwa-ev-m-hist-wrap { border-top: 1px solid rgba(255,255,255,.06); margin-top: 8px; }
.pwa-ev-m-hist-toggle {
  display: flex; align-items: center; gap: 5px; width: 100%;
  background: none; border: none; cursor: pointer;
  color: rgba(255,255,255,.35); font: 500 11px/1 var(--b);
  padding: 8px 0 4px; transition: color .15s;
}
.pwa-ev-m-hist-toggle:hover { color: rgba(255,255,255,.6); }
.pwa-ev-m-hist-chev { margin-left: auto; transition: transform .2s; }
.pwa-ev-m-hist-body { padding: 4px 0 6px; display: flex; flex-direction: column; gap: 5px; }
.pwa-ev-m-hr {
  display: flex; gap: 8px; font: 400 11px/1.4 var(--b); color: rgba(255,255,255,.55);
}
.pwa-ev-m-hr-lbl { color: rgba(255,255,255,.28); min-width: 72px; white-space: nowrap; }

/* 6e. Events — filter selects */
.pwa-ev-filter-sels {
  display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap;
}
.pwa-ev-sel-wrap {
  display: flex; align-items: center; gap: 5px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px; padding: 0 8px; flex: 1; min-width: 130px;
}
.pwa-ev-sel-wrap svg { opacity: .45; flex-shrink: 0; }
.pwa-ev-sel {
  background: none; border: none; color: rgba(255,255,255,.75);
  font: 400 12px/1 var(--b); width: 100%; padding: 7px 0;
  appearance: none; cursor: pointer;
}
.pwa-ev-sel:focus { outline: none; }
.pwa-ev-sel option { background: #0d1c17; }

/* 7. Aba Sorteio */
.pwa-sorteio-hero {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  text-align: center; width: 100%; max-width: 320px;
}
.pwa-sorteio-icon {
  width: 80px; height: 80px;
  background: rgba(251,191,36,.08); border: 1.5px solid rgba(251,191,36,.22);
  border-radius: 22px; display: flex; align-items: center; justify-content: center;
  color: #fbbf24; margin-bottom: 4px;
}
.pwa-sorteio-title { font: 700 24px/1.2 var(--font); color: #fff; }
.pwa-sorteio-desc { font: 400 13px/1.6 var(--b); color: rgba(255,255,255,.38); }
.pwa-sorteio-btn {
  margin-top: 8px; padding: 14px 28px;
  background: rgba(251,191,36,.12); border: 1.5px solid rgba(251,191,36,.32);
  color: #fbbf24; font: 700 14px/1 var(--b);
  border-radius: 12px; cursor: pointer; width: 100%; transition: background .15s;
  display: flex; align-items: center; justify-content: center; gap: 8px;
}
.pwa-sorteio-btn:active { background: rgba(251,191,36,.22); }
.pwa-sorteio-btn:disabled { opacity: .38; cursor: not-allowed; }

/* 7b. Sorteio — estados dinâmicos */
.pwa-srt-spinner {
  width: 34px; height: 34px;
  border: 3px solid rgba(251,191,36,.15);
  border-top-color: #fbbf24;
  border-radius: 50%;
  animation: spin .8s linear infinite;
  margin: 0 auto 4px;
}
.pwa-srt-load-text { font: 400 13px/1.5 var(--b); color: rgba(255,255,255,.4); }
.pwa-srt-count-wrap {
  display: flex; align-items: baseline; gap: 6px; justify-content: center;
}
.pwa-srt-count-num {
  font: 800 56px/1 var(--font); color: #fbbf24; letter-spacing: -2px;
}
.pwa-srt-count-num.pwa-srt-pop { animation: srtPop .38s cubic-bezier(.22,.61,.36,1); }
.pwa-srt-count-lbl {
  font: 500 15px/1 var(--b); color: rgba(255,255,255,.45);
  align-self: flex-end; padding-bottom: 8px;
}
.pwa-srt-live-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #22c55e; animation: pulse 1.6s ease-in-out infinite;
  align-self: flex-end; margin-bottom: 10px;
}
.pwa-srt-hist {
  font: 500 11px/1 var(--b); color: rgba(255,255,255,.3);
  background: rgba(255,255,255,.05); border-radius: 20px;
  padding: 4px 12px;
}
.pwa-srt-err-msg {
  font: 400 13px/1.5 var(--b); color: rgba(248,113,113,.75);
}
.pwa-srt-retry-btn {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 16px;
  background: rgba(248,113,113,.08); border: 1px solid rgba(248,113,113,.28);
  color: rgba(248,113,113,.85); font: 600 12px/1 var(--b);
  border-radius: 8px; cursor: pointer;
}
.pwa-srt-retry-btn:active { background: rgba(248,113,113,.16); }

@keyframes srtPop {
  0%   { transform: scale(1);    }
  45%  { transform: scale(1.18); }
  100% { transform: scale(1);    }
}

/* 8. Bottom nav */
.pwa-nav {
  display: flex;
  border-top: 1px solid rgba(0,171,169,.14);
  background: rgba(8,16,12,.97);
  padding-bottom: env(safe-area-inset-bottom, 6px);
  flex-shrink: 0;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.pwa-nav-btn {
  flex: 1; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 3px;
  padding: 9px 6px; background: none; border: none;
  color: rgba(255,255,255,.3); font-size: 10px; cursor: pointer;
  position: relative; font-family: 'Outfit', sans-serif; font-weight: 500;
}
.pwa-nav-btn--active { color: #00aba9; }
.pwa-nav-badge {
  position: absolute; top: 6px; right: calc(50% - 18px);
  background: #2dd4bf; color: #03120f;
  font-size: 8.5px; font-weight: 800; border-radius: 7px;
  padding: 1px 4px; min-width: 14px; text-align: center; line-height: 1.5;
  box-shadow: 0 0 0 1.5px #040e0b;
}

/* 9. Login em modo PWA */
body.pwa-mode #evSiteLogin {
  position: fixed; inset: 0; z-index: 9999;
  background: #060f0e;
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
body.pwa-mode .ev-site-login-box {
  width: 100%; max-width: 400px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(0,171,169,.2);
  border-radius: 18px; padding: 32px 24px;
  box-shadow: 0 8px 40px rgba(0,0,0,.6);
}
body.pwa-mode .ev-site-login-logo { width: 90px; margin: 0 auto 20px; display: block; }
body.pwa-mode #evSiteLoginUser,
body.pwa-mode #evSiteLoginPass {
  height: 52px !important; font-size: 16px !important;
  border-radius: 10px !important; padding: 0 16px !important;
}
body.pwa-mode .ev-site-login-btn {
  height: 52px !important; font-size: 16px !important;
  border-radius: 10px !important; margin-top: 8px !important;
}

/* ══════════════════════════════════════
   MODAL DIGITAL (desktop admin)
   ══════════════════════════════════════ */
.ev-dig-body {
  padding: 16px 20px 4px;
  max-height: 62vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
/* reutiliza todos os .pwa-dig-* abaixo */

/* ══════════════════════════════════════
   PWA — ABA DIGITAL
   ══════════════════════════════════════ */

.pwa-dig-wrap {
  padding: 14px 14px 24px;
  display: flex; flex-direction: column; gap: 12px;
}
.pwa-dig-loading,
.pwa-dig-error,
.pwa-dig-empty {
  margin-top: 60px; text-align: center;
  /* .35 media ~2,3:1 e reprovava em AA. Com o escopo por dono (v293) estas mensagens
     deixaram de ser raras — a unidade sem evento cai aqui —, então precisam ser lidas. */
  color: rgba(255,255,255,.62); font: 400 13px/1.5 var(--b);
  padding: 0 20px;
}
.pwa-dig-error { color: rgba(255,100,80,.7); }

/* Aviso de teto: "analisando seus N eventos mais recentes" */
.pwa-dig-cap {
  margin: 8px 0 0; padding: 8px 12px;
  border-radius: 9px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.62);
  font: 400 11.5px/1.45 var(--b);
}

/* Filtro */
.pwa-dig-filter {
  display: flex; gap: 8px; flex-shrink: 0;
}
.pwa-dig-filter-btn {
  flex: 1; padding: 8px 10px; border-radius: 8px;
  font: 500 11px/1 var(--b); letter-spacing: .02em;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.45); cursor: pointer; transition: all .15s ease;
}
.pwa-dig-filter-btn--active {
  background: rgba(0,171,169,.15); border-color: rgba(0,171,169,.35);
  color: #00aba9;
}

/* Seção */
.pwa-dig-section {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07);
  border-radius: 14px; padding: 14px; display: flex; flex-direction: column; gap: 12px;
}
.pwa-dig-sec-hd {
  display: flex; align-items: center; gap: 7px;
}
.pwa-dig-sec-icon { font-size: 16px; line-height: 1; }
.pwa-dig-sec-title {
  font: 600 13px/1 var(--b); color: rgba(255,255,255,.88); flex: 1;
}
.pwa-dig-sec-count {
  font: 400 10px/1 var(--b); color: rgba(255,255,255,.28);
  letter-spacing: .04em;
}

/* Funil */
.pwa-dig-funnel {
  display: flex; align-items: center; gap: 6px;
  background: rgba(0,0,0,.2); border-radius: 10px; padding: 12px 10px;
  flex-wrap: wrap;
}
.pwa-dig-stat {
  display: flex; flex-direction: column; align-items: center; gap: 3px; flex: 1;
}
.pwa-dig-stat--sep {
  border-left: 1px solid rgba(255,255,255,.08); padding-left: 8px;
}
.pwa-dig-stat-val {
  font: 700 22px/1 var(--b); color: rgba(255,255,255,.92);
}
.pwa-dig-stat-lbl {
  font: 400 9px/1 var(--b); color: rgba(255,255,255,.30);
  letter-spacing: .05em; text-transform: uppercase;
}
.pwa-dig-rate--good { color: #00aba9; }
.pwa-dig-rate--mid  { color: #e8b84b; }
.pwa-dig-rate--bad  { color: #e06060; }
.pwa-dig-arrow { color: rgba(255,255,255,.18); flex-shrink: 0; }

/* Subsection label */
.pwa-dig-sub {
  font: 500 10px/1 var(--b); color: rgba(255,255,255,.30);
  letter-spacing: .06em; text-transform: uppercase;
}

/* Heatmap de campos */
.pwa-dig-heatmap { display: flex; flex-direction: column; gap: 6px; }
.pwa-dig-hm-row {
  display: flex; align-items: center; gap: 7px;
}
.pwa-dig-hm-lbl {
  font: 400 11px/1 var(--b); color: rgba(255,255,255,.55);
  min-width: 100px; max-width: 100px; truncate: ellipsis; overflow: hidden; white-space: nowrap;
}
.pwa-dig-hm-bar-wrap {
  flex: 1; height: 6px; background: rgba(255,255,255,.06); border-radius: 99px; overflow: hidden;
}
.pwa-dig-hm-bar {
  height: 100%; border-radius: 99px; transition: width .4s ease;
}
.pwa-dig-hm-bar--hot  { background: #e06060; }
.pwa-dig-hm-bar--warm { background: #e8b84b; }
.pwa-dig-hm-bar--cool { background: #00aba9; }
.pwa-dig-hm-bar--soc  { background: rgba(0,171,169,.7); }
.pwa-dig-hm-val {
  font: 500 10px/1 var(--b); color: rgba(255,255,255,.40);
  min-width: 28px; text-align: right;
}

/* Social clicks */
.pwa-dig-social { display: flex; flex-direction: column; gap: 6px; }
.pwa-dig-soc-row {
  display: flex; align-items: center; gap: 7px;
}
.pwa-dig-soc-ic  { font-size: 13px; line-height: 1; flex-shrink: 0; }
.pwa-dig-soc-lbl {
  font: 400 11px/1 var(--b); color: rgba(255,255,255,.55);
  min-width: 64px;
}
.pwa-dig-soc-val {
  font: 600 12px/1 var(--b); color: rgba(255,255,255,.7);
  min-width: 22px; text-align: right;
}
.pwa-dig-no-soc {
  font: 400 11px/1.4 var(--b); color: rgba(255,255,255,.22);
  text-align: center; padding: 6px 0;
}

/* Footer / export */
.pwa-dig-footer { display: flex; justify-content: center; padding-top: 4px; }
.pwa-dig-csv-btn {
  display: flex; align-items: center; gap: 6px;
  padding: 10px 18px; border-radius: 8px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.55); font: 500 12px/1 var(--b);
  cursor: pointer; transition: all .15s ease;
}
.pwa-dig-csv-btn:active {
  background: rgba(0,171,169,.15); border-color: rgba(0,171,169,.3); color: #00aba9;
}

/* ══════════════════════════════════════
   ANALYTICS DIGITAL — INLINE SECTION
   (Aba Estatísticas do modal de evento)
   ══════════════════════════════════════ */

.ev-dig-sec {
  margin: 10px 0 8px;
  border: 1px solid rgba(0,171,169,.20);
  border-radius: 10px;
  overflow: hidden;
  background: rgba(0,0,0,.18);
}

/* Header colapsável */
.ev-dig-hd {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 13px;
  cursor: pointer; user-select: none;
  transition: background .15s ease; gap: 8px;
}
.ev-dig-hd:hover { background: rgba(0,171,169,.07); }
.ev-dig-hd-l {
  display: flex; align-items: center; gap: 7px;
  font: 600 12px/1 var(--b); color: rgba(255,255,255,.65);
  letter-spacing: .02em;
}
.ev-dig-chev {
  color: rgba(255,255,255,.30); flex-shrink: 0;
  transition: transform .2s ease;
}

/* Corpo */
.ev-dig-body {
  padding: 0 11px 12px;
  border-top: 1px solid rgba(255,255,255,.05);
}

/* Tabs — Inscrições / Satisfação */
.ev-dig-tabs { display: flex; gap: 4px; padding: 10px 0 6px; }
.ev-dig-tab {
  flex: 1; padding: 7px 10px; border-radius: 7px;
  font: 500 11px/1 var(--b); color: rgba(255,255,255,.38);
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07);
  cursor: pointer; transition: all .15s ease;
}
.ev-dig-tab.active {
  background: rgba(0,171,169,.14); border-color: rgba(0,171,169,.35); color: #00aba9;
}
.ev-dig-tab:hover:not(.active) { background: rgba(255,255,255,.07); }

/* Pills — Evento / 30 dias */
.ev-dig-pills { display: flex; gap: 4px; margin-bottom: 10px; }
.ev-dig-pill {
  padding: 5px 11px; border-radius: 99px;
  font: 500 10px/1 var(--b); color: rgba(255,255,255,.32);
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07);
  cursor: pointer; transition: all .15s ease;
}
.ev-dig-pill.active {
  background: rgba(0,171,169,.12); border-color: rgba(0,171,169,.30); color: rgba(0,171,169,.9);
}
.ev-dig-pill:hover:not(.active) { background: rgba(255,255,255,.07); }

/* KPI cards */
.ev-dig-kpis {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 6px;
  margin-bottom: 10px;
}
.ev-dig-kpi {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07);
  border-radius: 8px; padding: 11px 6px;
}
.ev-dig-kpi-val {
  font: 700 20px/1 var(--b); color: rgba(255,255,255,.85); letter-spacing: -.02em;
}
.ev-dig-kpi-val--good { color: #00aba9; }
.ev-dig-kpi-val--mid  { color: #e8b84b; }
.ev-dig-kpi-val--bad  { color: #e06060; }
.ev-dig-kpi-lbl {
  font: 400 9px/1 var(--b); color: rgba(255,255,255,.28);
  text-transform: uppercase; letter-spacing: .06em;
}

/* Grid de charts */
.ev-dig-charts-grid {
  display: grid; grid-template-columns: 5fr 8fr; gap: 7px; margin-bottom: 7px;
}
.ev-dig-charts-grid--2col { grid-template-columns: 1fr 1fr; }

.ev-dig-chart-card {
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07);
  border-radius: 8px; padding: 10px;
}
.ev-dig-chart-title {
  font: 600 9px/1 var(--b); color: rgba(255,255,255,.38);
  text-transform: uppercase; letter-spacing: .08em;
  margin-bottom: 8px; display: flex; align-items: center; gap: 5px;
}
.ev-dig-chart-sub {
  font: 400 9px/1 var(--b); color: rgba(255,255,255,.22);
  text-transform: none; letter-spacing: 0;
}
.ev-dig-chart-wrap { position: relative; height: 155px; }

/* Heatmap de campos */
.ev-dig-heatmap { display: flex; flex-direction: column; gap: 5px; }
.ev-dig-hm-row  { display: flex; align-items: center; gap: 6px; }
.ev-dig-hm-lbl  {
  font: 400 10px/1 var(--b); color: rgba(255,255,255,.44);
  min-width: 80px; max-width: 80px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.ev-dig-hm-bar-wrap {
  flex: 1; height: 5px; background: rgba(255,255,255,.05); border-radius: 99px; overflow: hidden;
}
.ev-dig-hm-bar {
  height: 100%; border-radius: 99px; transition: width .5s ease;
}
.ev-dig-hm-bar--hot  { background: #e06060; }
.ev-dig-hm-bar--warm { background: #e8b84b; }
.ev-dig-hm-bar--cool { background: #00aba9; }
.ev-dig-hm-val {
  font: 500 9px/1 var(--b); color: rgba(255,255,255,.28); min-width: 28px; text-align: right;
}

/* Empty / error / no-data */
.ev-dig-empty {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 20px 0; color: rgba(255,255,255,.22);
  font: 400 11px/1.5 var(--b); text-align: center;
}
.ev-dig-err {
  padding: 14px; text-align: center;
  color: rgba(224,96,96,.65); font: 400 11px/1.4 var(--b);
}
.ev-dig-no-data {
  font: 400 10px/1.4 var(--b); color: rgba(255,255,255,.18);
  text-align: center; padding: 22px 0;
}

/* Skeleton shimmer */
.ev-dig-sk-wrap { padding: 2px 0; }
.ev-dig-sk-row {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; margin-bottom: 8px;
}
.ev-dig-sk-kpi, .ev-dig-sk-block {
  border-radius: 8px;
  background: linear-gradient(90deg,rgba(255,255,255,.04) 25%,rgba(255,255,255,.09) 50%,rgba(255,255,255,.04) 75%);
  background-size: 200% 100%;
  animation: evDigShimmer 1.4s infinite linear;
}
.ev-dig-sk-kpi   { height: 54px; }
.ev-dig-sk-block { height: 168px; margin-bottom: 7px; }
.ev-dig-sk-block--half { height: 110px; margin-bottom: 0; }
@keyframes evDigShimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ══════════════════════════════════════
   ANALYTICS MODAL — DIGITAL SECTION
   ══════════════════════════════════════ */

/* Tabs Inscrições / Satisfação */
.an-dig-tabs {
  display: flex; gap: 6px; margin-bottom: 14px;
}
.an-dig-tab {
  padding: 8px 18px; border-radius: 8px;
  font: 500 12px/1 var(--b); color: rgba(255,255,255,.38);
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08);
  cursor: pointer; transition: all .15s ease;
}
.an-dig-tab.active {
  background: rgba(99,102,241,.18); border-color: rgba(99,102,241,.45); color: #a5b4fc;
}
.an-dig-tab:hover:not(.active) { background: rgba(255,255,255,.08); }

/* KPI strip */
.an-dig-kpis {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 10px;
  margin-bottom: 14px;
}
.an-dig-kpi {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px; padding: 14px 8px;
}
.an-dig-kpi-val {
  font: 700 26px/1 var(--b); color: rgba(255,255,255,.88); letter-spacing: -.02em;
}
.an-dig-kpi-val--good { color: #34d399; }
.an-dig-kpi-val--mid  { color: #fbbf24; }
.an-dig-kpi-val--bad  { color: #f87171; }
.an-dig-kpi-lbl {
  font: 400 10px/1 var(--b); color: rgba(255,255,255,.30);
  text-transform: uppercase; letter-spacing: .07em;
}

/* Charts grids */
.an-dig-grid {
  display: grid; grid-template-columns: 5fr 8fr; gap: 10px; margin-bottom: 10px;
}
.an-dig-grid--2col { grid-template-columns: 1fr 1fr; }

/* ═══ fonte/estilo/70-pwa/030-vazio-e-gate.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * PWA — estado vazio
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 8274–8438
 * TAMANHO PREVISTO: 165 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* Empty state */
.an-dig-empty {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  padding: 28px 0; color: rgba(255,255,255,.22);
  font: 400 12px/1.5 var(--b); text-align: center;
}

/* ══════════════════════════════════════
   PWA NOTIFICATION PANEL
   ══════════════════════════════════════ */

.pwa-bell-badge {
  position: absolute; top: 1px; right: 1px;
  background: #ef4444; color: #fff;
  font-size: 8px; font-weight: 800; border-radius: 8px;
  padding: 1px 3px; min-width: 12px; text-align: center; line-height: 1.5;
  pointer-events: none;
}

.pwa-notif-panel {
  position: fixed; inset: 0; z-index: 300;
  display: flex; flex-direction: column; justify-content: flex-end;
}
.pwa-notif-panel--hidden { display: none !important; }

.pwa-notif-backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.6);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  animation: pwaNotifFadeIn .2s ease;
}
@keyframes pwaNotifFadeIn { from { opacity: 0; } }

.pwa-notif-sheet {
  position: relative;
  background: #0f2218;
  border-top: 1px solid rgba(0,171,169,.22);
  border-radius: 20px 20px 0 0;
  max-height: 86vh;
  overflow: hidden;
  display: flex; flex-direction: column;
  padding-bottom: max(16px, env(safe-area-inset-bottom));
  animation: pwaNotifSlideUp .28s cubic-bezier(.16,1,.3,1);
}
@keyframes pwaNotifSlideUp { from { transform: translateY(100%); } }

.pwa-notif-sheet-hd {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 18px 12px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  flex-shrink: 0;
}
.pwa-notif-sheet-title {
  font: 700 16px/1 'Outfit', sans-serif; color: #fff;
}
.pwa-notif-close {
  background: rgba(255,255,255,.07); border: none;
  border-radius: 50%; width: 30px; height: 30px;
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.55); cursor: pointer; font-size: 15px;
  transition: background .15s;
}
.pwa-notif-close:active { background: rgba(255,255,255,.14); }

.pwa-notif-body {
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: 14px 16px 6px;
  display: flex; flex-direction: column; gap: 16px;
}

/* Master toggle */
.pwa-notif-master {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 13px 14px;
  background: rgba(0,171,169,.09);
  border: 1px solid rgba(0,171,169,.22);
  border-radius: 13px;
}
.pwa-notif-master-label { font: 600 14px/1.2 'Outfit', sans-serif; color: #fff; }
.pwa-notif-master-sub { font: 400 11px/1 var(--b); color: rgba(255,255,255,.38); margin-top: 3px; }

/* Toggle switch */
.pwa-toggle {
  position: relative; width: 46px; height: 27px; flex-shrink: 0; cursor: pointer;
}
.pwa-toggle input { opacity: 0; width: 0; height: 0; position: absolute; }
.pwa-toggle-track {
  position: absolute; inset: 0; border-radius: 99px;
  background: rgba(255,255,255,.13);
  transition: background .2s ease;
}
.pwa-toggle input:checked + .pwa-toggle-track { background: #00aba9; }
.pwa-toggle-thumb {
  position: absolute; top: 3px; left: 3px;
  width: 21px; height: 21px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.35);
  transition: transform .22s cubic-bezier(.16,1,.3,1);
  pointer-events: none;
}
.pwa-toggle input:checked ~ .pwa-toggle-thumb { transform: translateX(19px); }

/* Type rows */
.pwa-notif-section-hd {
  font: 600 10px/1 var(--b); color: rgba(255,255,255,.3);
  text-transform: uppercase; letter-spacing: .08em;
  padding: 0 2px; margin-bottom: 4px;
}
.pwa-notif-types { display: flex; flex-direction: column; }
.pwa-notif-type-row {
  display: flex; align-items: center; gap: 11px;
  padding: 10px 10px; border-radius: 10px;
  transition: background .15s;
}
.pwa-notif-type-row:active { background: rgba(255,255,255,.05); }
.pwa-notif-type-icon { font-size: 19px; width: 30px; text-align: center; flex-shrink: 0; }
.pwa-notif-type-info { flex: 1; min-width: 0; }
.pwa-notif-type-name { font: 500 13px/1.2 'Outfit', sans-serif; color: rgba(255,255,255,.85); }
.pwa-notif-type-desc { font: 400 11px/1.3 var(--b); color: rgba(255,255,255,.33); margin-top: 2px; }
.pwa-notif-types--disabled .pwa-notif-type-row { opacity: .32; pointer-events: none; }

.pwa-notif-sub-row {
  display: flex; align-items: center; gap: 8px;
  padding: 0 10px 10px 51px;
}
.pwa-notif-sub-lbl { font: 400 11px/1 var(--b); color: rgba(255,255,255,.32); white-space: nowrap; }
.pwa-notif-sub-input {
  flex: 1; padding: 7px 10px; max-width: 80px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px; color: #fff; font: 500 13px/1 var(--b);
}
.pwa-notif-sub-input:focus { outline: none; border-color: rgba(0,171,169,.5); }

/* History */
.pwa-notif-hist-hd {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;
}
.pwa-notif-hist-title { font: 600 10px/1 var(--b); color: rgba(255,255,255,.3); text-transform: uppercase; letter-spacing: .08em; }
.pwa-notif-hist-clear {
  background: none; border: none;
  font: 400 11px/1 var(--b); color: rgba(0,171,169,.6); cursor: pointer; padding: 2px 0;
}
.pwa-notif-hist-clear:active { color: #00aba9; }
.pwa-notif-hist-empty { text-align: center; padding: 18px 0; font: 400 12px/1.5 var(--b); color: rgba(255,255,255,.2); }
.pwa-notif-hist-list { display: flex; flex-direction: column; gap: 5px; }
.pwa-notif-hist-item {
  display: flex; align-items: flex-start; gap: 9px;
  padding: 9px 11px; border-radius: 10px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.05);
}
.pwa-notif-hist-item--unread {
  background: rgba(0,171,169,.07); border-color: rgba(0,171,169,.16);
}
.pwa-notif-hist-dot {
  width: 7px; height: 7px; border-radius: 50%;
  flex-shrink: 0; margin-top: 4px;
  background: transparent;
}
.pwa-notif-hist-item--unread .pwa-notif-hist-dot { background: #00aba9; }
.pwa-notif-hist-content { flex: 1; min-width: 0; }
.pwa-notif-hist-tit { font: 600 12px/1.2 'Outfit', sans-serif; color: rgba(255,255,255,.82); }
.pwa-notif-hist-msg { font: 400 11px/1.3 var(--b); color: rgba(255,255,255,.38); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pwa-notif-hist-time { font: 400 9px/1 var(--b); color: rgba(255,255,255,.2); margin-top: 3px; }

/* ═══ fonte/estilo/70-pwa/040-install-gate.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * PWA — gate de instalação e o resto do app
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 8439–9847
 * TAMANHO PREVISTO: 1409 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ═══ INSTALL GATE ═══ */
/* Controlado pela classe ig-show no <html>, aplicada antes do primeiro paint */
#installGate { display: none; }
html.ig-show #installGate {
  display: flex !important;
  position: fixed; inset: 0; z-index: 99999;
  align-items: center; justify-content: center;
  padding: 24px;
}
.ig-bg {
  position: absolute; inset: 0;
  background: #060f0e;
}
.ig-card {
  position: relative; z-index: 1;
  width: 100%; max-width: 360px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 24px;
  padding: 36px 28px 32px;
  display: flex; flex-direction: column; align-items: center; gap: 0;
  animation: igIn .45s cubic-bezier(.22,.68,0,1.2) both;
}
@keyframes igIn {
  from { opacity: 0; transform: translateY(28px) scale(.96); }
  to   { opacity: 1; transform: none; }
}
.ig-close-btn {
  position: absolute; top: 14px; right: 14px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px; color: rgba(255,255,255,.45);
  width: 30px; height: 30px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; flex-shrink: 0;
}
.ig-close-btn:active { background: rgba(255,255,255,.14); }
.ig-card { position: relative; }
.ig-logo {
  width: 88px; height: 88px;
  border-radius: 20px; object-fit: contain;
  margin-bottom: 20px;
  box-shadow: 0 0 28px rgba(0,171,169,.25), 0 4px 16px rgba(0,0,0,.4);
}
.ig-title {
  font: 700 22px/1 'Outfit', sans-serif;
  color: #fff; margin-bottom: 8px; letter-spacing: -.3px;
}
.ig-sub {
  font: 400 14px/1.4 var(--b);
  color: rgba(255,255,255,.45);
  margin-bottom: 28px; text-align: center;
}
.ig-steps {
  width: 100%; display: flex; flex-direction: column; gap: 14px;
  margin-bottom: 28px;
}
.ig-step {
  display: flex; align-items: flex-start; gap: 13px;
}
.ig-step-num {
  width: 26px; height: 26px; border-radius: 50%;
  background: rgba(0,171,169,.18); border: 1px solid rgba(0,171,169,.35);
  color: #00aba9; font: 600 12px/26px 'Outfit', sans-serif;
  text-align: center; flex-shrink: 0;
}
.ig-step-txt {
  font: 400 13px/1.5 var(--b); color: rgba(255,255,255,.65);
  padding-top: 4px;
}
.ig-step-txt strong { color: rgba(255,255,255,.9); font-weight: 600; }
.ig-btn {
  display: flex; align-items: center; gap: 8px;
  width: 100%; justify-content: center;
  padding: 14px; border-radius: 14px;
  background: linear-gradient(135deg, #00aba9, #007a78);
  border: none; color: #fff;
  font: 600 15px/1 'Outfit', sans-serif;
  cursor: pointer; margin-bottom: 16px;
  box-shadow: 0 4px 20px rgba(0,171,169,.25);
  transition: opacity .15s, transform .15s;
}
.ig-btn:active { opacity: .85; transform: scale(.98); }
.ig-note {
  font: 400 11px/1.4 var(--b); color: rgba(255,255,255,.25);
  text-align: center;
}

/* ── Force-close popup: badge mobile ── */
.ev-fc-mobile-badge {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 1px 7px 2px; border-radius: 20px;
  background: rgba(0,171,169,.18); border: 1px solid rgba(0,171,169,.35);
  color: #00aba9; font: 600 10px/1.4 var(--b);
  vertical-align: middle; margin-left: 4px;
}

/* ── Ações mobile log (aba Digital PWA) ── */
.pwa-mlog-section {
  margin-top: 18px; padding: 14px;
  border-radius: 12px; border: 1px solid rgba(255,255,255,.07);
  background: rgba(255,255,255,.02);
}
.pwa-mlog-hd {
  font: 600 11px/1 var(--b); color: rgba(255,255,255,.45);
  text-transform: uppercase; letter-spacing: .05em;
  margin-bottom: 11px;
}
.pwa-mlog-row {
  display: flex; align-items: center; gap: 9px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.pwa-mlog-row:last-child { border-bottom: none; }
.pwa-mlog-ic { font-size: 14px; flex-shrink: 0; }
.pwa-mlog-info { flex: 1; min-width: 0; }
.pwa-mlog-action { display: block; font: 500 12px/1.2 var(--b); color: rgba(255,255,255,.75); }
.pwa-mlog-actor { font: 400 10px/1.2 var(--b); color: rgba(255,255,255,.35); }
.pwa-mlog-ev {
  display: inline-block; margin-left: 6px;
  font: 400 9px/1 var(--b); color: rgba(0,171,169,.6);
  background: rgba(0,171,169,.08); border-radius: 4px;
  padding: 1px 5px;
}
.pwa-mlog-time { font: 400 10px/1 var(--b); color: rgba(255,255,255,.2); flex-shrink: 0; }

/* ═══ PWA UPDATE BANNER ═══ */
.pwa-update-banner {
  position: fixed;
  bottom: calc(env(safe-area-inset-bottom) + 68px); left: 10px; right: 10px;
  background: rgba(8,30,24,.97);
  border: 1px solid rgba(0,171,169,.35);
  border-radius: 16px;
  padding: 14px 14px 12px;
  display: flex; align-items: flex-start; gap: 11px;
  z-index: 1000;
  box-shadow: 0 8px 32px rgba(0,0,0,.55), 0 0 0 1px rgba(0,171,169,.1);
  backdrop-filter: blur(16px);
  transform: translateY(20px); opacity: 0;
  transition: transform .35s cubic-bezier(.22,.68,0,1.2), opacity .3s ease;
}
.pwa-update-banner--in { transform: none; opacity: 1; }
.pwa-upd-icon { font-size: 20px; flex-shrink: 0; margin-top: 1px; }
.pwa-upd-body { flex: 1; min-width: 0; }
.pwa-upd-title { font: 600 13px/1.2 'Outfit',sans-serif; color: #fff; margin-bottom: 6px; }
.pwa-upd-log {
  list-style: none; display: flex; flex-direction: column; gap: 3px;
}
.pwa-upd-log li {
  font: 400 11px/1.4 var(--b); color: rgba(255,255,255,.45);
  padding-left: 10px; position: relative;
}
.pwa-upd-log li::before {
  content: '·'; position: absolute; left: 2px; color: rgba(0,171,169,.6);
}
.pwa-upd-actions {
  display: flex; flex-direction: column; gap: 6px; flex-shrink: 0;
}
.pwa-upd-btn {
  background: linear-gradient(135deg, #00aba9, #007a78);
  border: none; border-radius: 10px; color: #fff;
  font: 600 12px/1 'Outfit',sans-serif;
  padding: 9px 14px; cursor: pointer;
  box-shadow: 0 2px 12px rgba(0,171,169,.3);
  white-space: nowrap;
}
.pwa-upd-btn:active { opacity: .85; transform: scale(.97); }
.pwa-upd-dismiss {
  background: none; border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px; color: rgba(255,255,255,.35);
  font: 400 11px/1 var(--b); padding: 7px 14px; cursor: pointer;
  white-space: nowrap;
}
.pwa-upd-dismiss:active { background: rgba(255,255,255,.06); }

/* ═══ PWA VISUAL UPGRADE ═══ */

/* ── Fundo rico ── */
body.pwa-mode #pwaShell {
  background: linear-gradient(160deg, #081e19 0%, #050e0c 55%, #030908 100%) !important;
}
body.pwa-mode #pwaShell::before {
  content: '';
  position: absolute;
  top: -80px; left: 50%;
  transform: translateX(-50%);
  width: 360px; height: 360px;
  background: radial-gradient(circle, rgba(0,171,169,.10) 0%, transparent 68%);
  pointer-events: none; z-index: 0; flex-shrink: 0;
}
html[data-pwa='1'] { background: #0d1c17; }
html[data-pwa='1'] body { background: #0d1c17 !important; }
html[data-pwa='1'] #pwaShell { background: linear-gradient(160deg,#0d1c17 0%,#0a1812 60%,#081410 100%); }

/* ── Header ── */
body.pwa-mode .pwa-hd {
  background: rgba(10,22,17,.94) !important;
  border-bottom: 1px solid rgba(0,171,169,.22) !important;
  box-shadow: 0 1px 24px rgba(0,0,0,.35);
}
.pwa-hd-logo-img {
  height: 24px;
  width: auto;
  max-width: 120px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 0 8px rgba(0,171,169,.3));
}
.pwa-hd-user {
  font: 400 10px/1 'Outfit', sans-serif;
  color: rgba(0,171,169,.7);
  margin-top: 3px;
  max-width: 110px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: none;
}
.pwa-hd-btn--force {
  border-color: rgba(245,158,11,.2) !important;
  color: rgba(245,158,11,.6) !important;
}
.pwa-hd-btn--force:active { background: rgba(245,158,11,.12) !important; }
.pwa-hd-btn--logout {
  border-color: rgba(220,60,60,.25) !important;
  color: rgba(220,100,100,.7) !important;
}
.pwa-hd-btn--logout:active { background: rgba(220,60,60,.15) !important; }

/* ── Splash screen ── */
.pwa-splash {
  position: absolute; inset: 0; z-index: 200;
  background: linear-gradient(160deg, #081e19 0%, #050e0c 55%, #030908 100%);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 12px;
  transition: opacity .45s ease, visibility .45s ease;
}
.pwa-splash--hidden { opacity: 0; visibility: hidden; pointer-events: none; }
/* Failsafe: se JS falhar, splash some automaticamente após 3s */
@keyframes splashAutoHide { 0%,80%{opacity:1;visibility:visible} 100%{opacity:0;visibility:hidden} }
body.pwa-mode .pwa-splash:not(.pwa-splash--hidden) {
  animation: splashAutoHide 3.5s ease forwards !important;
  animation-duration: 3.5s !important;
}
.pwa-splash-glow {
  position: absolute; top: 30%; left: 50%; transform: translate(-50%,-50%);
  width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(0,171,169,.18) 0%, transparent 65%);
  pointer-events: none;
}
.pwa-splash-logo {
  width: 180px; position: relative; z-index: 1;
  filter: drop-shadow(0 0 24px rgba(0,171,169,.35));
}
.pwa-splash-tag {
  font: 300 13px/1 'Outfit', sans-serif;
  color: rgba(255,255,255,.35);
  letter-spacing: .35em; text-transform: uppercase;
  position: relative; z-index: 1;
  margin-top: 4px;
}
.pwa-splash-dots {
  display: flex; gap: 7px; margin-top: 48px;
  position: relative; z-index: 1;
}
.pwa-splash-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: rgba(0,171,169,.3);
}
.pwa-splash-dot:nth-child(2) { background: rgba(0,171,169,.65); }
.pwa-splash-dot:nth-child(3) { background: rgba(0,171,169,.3); }

/* Re-enable splash animations em pwa-mode */
body.pwa-mode .pwa-splash-logo {
  animation: splashLogoIn .65s cubic-bezier(.22,.68,0,1.2) both !important;
  animation-duration: .65s !important;
}
body.pwa-mode .pwa-splash-tag {
  animation: splashTagIn .55s .28s cubic-bezier(.22,.68,0,1.2) both !important;
  animation-duration: .55s !important;
}
body.pwa-mode .pwa-splash-dots {
  animation: splashTagIn .5s .46s both !important;
  animation-duration: .5s !important;
}
body.pwa-mode .pwa-splash-dot:nth-child(2) {
  animation: splashDotPulse 1.1s .9s ease-in-out infinite !important;
  animation-duration: 1.1s !important;
}
@keyframes splashLogoIn {
  from { opacity: 0; transform: scale(.82) translateY(18px); }
  to   { opacity: 1; transform: none; }
}
@keyframes splashTagIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes splashDotPulse {
  0%,100% { opacity: .65; transform: scale(1); }
  50%     { opacity: 1;   transform: scale(1.4); }
}

/* ── Counter card ── */
.pwa-counter-wrap {
  background: rgba(0,171,169,.05) !important;
  border: 1px solid rgba(0,171,169,.12) !important;
  border-radius: 20px !important;
  margin: 14px 14px 0 !important;
  padding: 22px 20px 18px !important;
  box-shadow: 0 0 40px rgba(0,171,169,.06) inset !important;
}
.pwa-counter {
  text-shadow: 0 0 60px rgba(0,171,169,.55), 0 0 20px rgba(0,171,169,.25) !important;
}

/* ── Feed card ── */
.pwa-feed {
  background: rgba(255,255,255,.03) !important;
  border: 1px solid rgba(0,171,169,.1) !important;
}
.pwa-feed-hd {
  border-bottom: 1px solid rgba(0,171,169,.08) !important;
  color: rgba(0,171,169,.6) !important;
}

/* ── Nav bar ── */
.pwa-nav {
  background: rgba(8,16,12,.97) !important;
  border-top: 1px solid rgba(0,171,169,.18) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  box-shadow: 0 -4px 32px rgba(0,0,0,.45) !important;
  padding-bottom: env(safe-area-inset-bottom);
}
.pwa-nav-btn--active { color: #00aba9 !important; }
body.pwa-mode .pwa-nav-btn--active svg {
  filter: drop-shadow(0 0 5px rgba(0,171,169,.55)) !important;
}

/* ══════════════════════════════════════
   PENTE FINO PREMIUM v2 — 2026-05-29
   ══════════════════════════════════════ */


/* ── Focus-visible: navegação por teclado ── */
:focus-visible {
  outline: 2px solid rgba(0,171,169,.7);
  outline-offset: 2px;
  border-radius: 4px;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid rgba(0,171,169,.7);
  outline-offset: 2px;
}
/* Remove outline do mouse — só teclado */
:focus:not(:focus-visible) { outline: none; }

/* ── Hover/active premium nos botões de ação ── */
.ev-btn-primary:hover  { filter: brightness(1.1); }
.ev-btn-cancel:hover   { background: rgba(255,255,255,.07); }
.ev-danger-btn:hover   { filter: brightness(1.12); }
.nsm-btn-pri:hover     { filter: brightness(1.1); }
.nsm-btn-sec:hover     { background: rgba(255,255,255,.07); }

/* ── Eye toggle: feedback visual ── */
.ev-eye-btn:hover { color: rgba(0,171,169,.9); }
.ev-eye-btn:active { transform: scale(.9); }

/* ── Scrollbar do hist-list: limite de altura ── */
.history-bar { max-height: 72px; }
.hist-list   { max-width: calc(100vw - 160px); }

/* ── Rolling name: clamp melhorado ── */
.rolling-name {
  font-size: clamp(36px, 6.5vw, 96px) !important;
  line-height: 1.05 !important;
  word-break: break-word !important;
}

/* ── Reveal name: sem overflow sobre botões ── */
.reveal-names {
  font-size: clamp(44px, 8vw, 120px) !important;
  max-width: 88vw !important;
  overflow-wrap: break-word !important;
}

/* ── Offline fallback: não flicker branco ── */
body { background: #0d1c17; }

/* ── Scrollbar elegante nos modais ── */
.ev-modal-box::-webkit-scrollbar,
.ev-history-list::-webkit-scrollbar,
.ev-leads-list::-webkit-scrollbar { width: 4px; }
.ev-modal-box::-webkit-scrollbar-track,
.ev-history-list::-webkit-scrollbar-track,
.ev-leads-list::-webkit-scrollbar-track { background: transparent; }
.ev-modal-box::-webkit-scrollbar-thumb,
.ev-history-list::-webkit-scrollbar-thumb,
.ev-leads-list::-webkit-scrollbar-thumb {
  background: rgba(0,171,169,.25);
  border-radius: 4px;
}

/* ── Versão do app — sempre visível no topo ── */
.app-version-badge {
  font: 500 10px/1 'Outfit', sans-serif;
  color: rgba(0,171,169,.55);
  letter-spacing: .04em;
  background: rgba(0,171,169,.08);
  border: 1px solid rgba(0,171,169,.18);
  border-radius: 6px;
  padding: 2px 6px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* PWA: versão abaixo do logo */
.pwa-hd-logo-meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.pwa-hd-logo-meta .app-version-badge {
  align-self: flex-start;
}

/* Desktop: versão ao lado do slogan */
.nav-brand .app-version-badge {
  margin-left: 6px;
  align-self: center;
}

/* ── prefers-reduced-motion: respeita preferência do SO ── */
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .bub, .organic-fog, .mc { animation: none !important; }
  .mc:hover { transform: none !important; }
}

/* ── Login screen ── */
body.pwa-mode #evSiteLogin {
  background: linear-gradient(160deg,#081e19 0%,#050e0c 100%) !important;
}
body.pwa-mode .ev-site-login-box {
  border: 1px solid rgba(0,171,169,.25) !important;
  box-shadow: 0 0 60px rgba(0,171,169,.07), 0 8px 40px rgba(0,0,0,.6) !important;
  background: rgba(255,255,255,.035) !important;
}

/* ── Empty state ── */
.pwa-empty > button {
  background: linear-gradient(135deg, rgba(0,171,169,.15), rgba(0,171,169,.08)) !important;
  border: 1px solid rgba(0,171,169,.3) !important;
}

/* ── Painel de eventos ── */
.pwa-ev-card {
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(0,171,169,.12) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,.3) !important;
}

/* ── Tab transition ── */
.pwa-panel {
  transition: opacity .18s ease !important;
}
.pwa-panel--hidden { opacity: 0 !important; }

/* ══ MODAL FORCE UPDATE — shell = .ev-modal/.ev-mhd; aqui só os componentes internos,
   já no padrão do design system (teal DVI #00aba9/#00d4d2 + Outfit/DM Sans) ══ */
.fu-body{padding:18px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}
.fu-hd-last{font:600 10px/1 var(--b);color:#00d4d2;background:rgba(0,171,169,.16);border:1px solid rgba(0,171,169,.3);padding:3px 8px;border-radius:999px;flex-shrink:0;align-self:center}
/* Versões */
.fu-ver-row{display:flex;align-items:stretch;gap:0;background:rgba(0,171,169,.05);border:1px solid rgba(0,171,169,.14);border-radius:14px;overflow:hidden}
.fu-ver-item{flex:1;text-align:center;padding:12px 10px}
.fu-ver-item+.fu-ver-item{border-left:1px solid rgba(0,171,169,.1)}
.fu-ver-lbl{display:block;font:700 9px/1 var(--b);color:rgba(255,255,255,.4);letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}
.fu-ver-val{font:800 16px/1 var(--font);color:#00d4d2;letter-spacing:-.02em}
.fu-ver-val.mismatch{color:#f87171}
/* Servidor: valor + botão refresh inline */
.fu-srv-valrow{display:flex;align-items:center;justify-content:center;gap:6px}
.fu-srv-refresh{background:rgba(0,171,169,.14);border:1px solid rgba(0,171,169,.28);border-radius:50%;width:22px;height:22px;cursor:pointer;color:#00d4d2;display:flex;align-items:center;justify-content:center;padding:0;transition:all .18s;flex-shrink:0}
.fu-srv-refresh:hover{background:rgba(0,171,169,.28);border-color:rgba(0,171,169,.5);transform:scale(1.1)}
.fu-srv-refresh:active{transform:scale(.88)}
.fu-srv-refresh:disabled{opacity:.4;pointer-events:none}
.fu-srv-refresh.spinning svg{animation:spin .6s linear infinite}
/* Section label */
.fu-section-lbl{font:700 10px/1 var(--b);color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:-2px}
/* Segmented modo */
.fu-seg{display:flex;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03)}
.fu-mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:11px 6px;border:none;background:transparent;color:rgba(255,255,255,.45);font:600 12px/1 var(--b);cursor:pointer;transition:all .18s;border-right:1px solid rgba(255,255,255,.07)}
.fu-mode-btn:last-child{border-right:none}
.fu-mode-btn.on{background:rgba(0,171,169,.16);color:#00d4d2}
.fu-mode-btn svg{flex-shrink:0;opacity:.6}
.fu-mode-btn.on svg{opacity:1}
.fu-mode-btn:active{background:rgba(0,171,169,.1)}
/* Container modo */
.fu-mode-content{min-height:88px;display:flex;flex-direction:column;justify-content:center}
/* Textarea */
.fu-msg-input{width:100%;background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.1);border-radius:12px;color:var(--c9);font:400 13px/1.5 var(--b);padding:11px 13px;resize:none;outline:none;transition:border-color .18s;-webkit-appearance:none}
.fu-msg-input::placeholder{color:var(--c5)}
.fu-msg-input:focus{border-color:rgba(0,171,169,.42)}
.fu-char-hint{text-align:right;font:400 10px/1 var(--b);color:var(--c4);margin-top:-4px}
/* Auto preview */
.fu-auto-preview{background:rgba(0,171,169,.06);border:1px solid rgba(0,171,169,.16);border-radius:12px;padding:11px 13px}
.fu-auto-lbl{font:700 9.5px/1 var(--b);color:rgba(0,171,169,.8);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}
/* 🔴 A lista ROLA dentro do próprio bloco. A caixa deste modal tem
   `max-height:680px` com `overflow:hidden`, então uma lista longa de novidades não
   empurrava o resto: era CORTADA, e "Destinatários" e o botão Enviar
   desapareciam atrás do texto. Com o teto aqui, o painel se comporta igual
   com 2 ou com 20 novidades. `overscroll-behavior` evita que o scroll
   vaze para o modal quando a lista chega ao fim. */
.fu-auto-list{padding-left:16px;display:flex;flex-direction:column;gap:5px;color:var(--c6);font:400 11.5px/1.45 var(--b);list-style:disc;max-height:132px;overflow-y:auto;overscroll-behavior:contain}
/* Destinatários */
.fu-targ-row{display:flex;gap:8px}
.fu-targ-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:11px 6px;border-radius:12px;border:1.5px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:rgba(255,255,255,.45);font:600 12px/1 var(--b);cursor:pointer;transition:all .18s}
.fu-targ-btn.on{border-color:rgba(0,171,169,.45);background:rgba(0,171,169,.13);color:#00d4d2}
.fu-targ-btn:hover:not(.on){border-color:rgba(255,255,255,.18);color:rgba(255,255,255,.65)}
.fu-targ-btn:active{transform:scale(.96)}
/* Botão enviar */
.fu-send-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px;border-radius:14px;background:var(--btn-grad);border:none;color:#fff;font:700 14px/1 var(--font);cursor:pointer;transition:all .2s;letter-spacing:.01em;box-shadow:0 6px 24px rgba(0,171,169,.28)}
.fu-send-btn:hover{background:var(--btn-grad-hov);box-shadow:0 8px 32px rgba(0,171,169,.38);transform:translateY(-1px)}
.fu-send-btn:active{transform:scale(.97) translateY(0);box-shadow:0 2px 10px rgba(0,171,169,.15)}
.fu-send-btn:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}
.fu-send-btn--ok{background:linear-gradient(135deg,#065f46,#059669)!important}
.fu-send-spin{animation:pwaFuSpin .7s linear infinite}
/* Histórico */
.fu-hist-hd{display:flex;align-items:center;gap:6px;font:700 9.5px/1 var(--b);color:rgba(255,255,255,.3);text-transform:uppercase;letter-spacing:.09em;padding-top:10px;border-top:1px solid rgba(255,255,255,.07)}
.fu-hist-hd svg{opacity:.4}
.fu-hist-list{display:flex;flex-direction:column;gap:0}
.fu-hist-empty{font:400 11.5px/1 var(--b);color:var(--c4);padding:6px 0}
.fu-hist-item{display:flex;align-items:flex-start;gap:8px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.fu-hist-item:last-child{border-bottom:none}
.fu-hist-icon{font-size:13px;flex-shrink:0;margin-top:1px;width:16px;text-align:center}
.fu-hist-body{flex:1;min-width:0}
.fu-hist-top{display:flex;align-items:center;gap:5px;margin-bottom:2px;flex-wrap:wrap}
.fu-hist-mode{font:700 11px/1 var(--b);color:var(--c7)}
.fu-hist-targ{font:400 11px/1 var(--b);color:var(--c5)}
.fu-hist-ver{font:600 10px/1 var(--b);color:rgba(0,171,169,.75);background:rgba(0,171,169,.1);padding:1px 6px;border-radius:999px;margin-left:auto}
.fu-hist-msg{font:400 11px/1.35 var(--b);color:var(--c4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fu-hist-ts{font:400 10px/1 var(--b);color:var(--c4);flex-shrink:0;margin-top:2px}
/* Cancel */
.fu-cancel{width:100%;padding:10px;border-radius:10px;border:none;background:transparent;color:rgba(255,255,255,.35);font:500 12px/1 var(--b);cursor:pointer;transition:color .15s}
.fu-cancel:hover{color:rgba(255,255,255,.65)}

/* ══ 2ª PÍLULA — auto-close redesenhada (espelho da 1ª pílula) ══ */
#menuAutoCloseWrap{
  display:flex;flex-direction:column;gap:8px;
  max-width:820px;align-self:center;width:100%;
  margin-top:24px;margin-bottom:24px;
  animation:tagIn .4s var(--ee);
}
/* Pílula principal */
.mac-pill{
  display:flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,rgba(0,10,8,.55),rgba(0,20,16,.45));
  border:1px solid rgba(0,171,169,.22);
  border-radius:99px;
  padding:7px 8px 7px 14px;
  backdrop-filter:blur(32px) saturate(140%);-webkit-backdrop-filter:blur(32px) saturate(140%);
  box-shadow:0 2px 24px rgba(0,0,0,.28),0 0 0 1px rgba(0,171,169,.08) inset;
  transition:border-color .3s,box-shadow .3s;
  flex-wrap:wrap;
}
.mac-pill--urgent{border-color:rgba(251,191,36,.3)}
.mac-pill--critical{border-color:rgba(239,68,68,.4);animation:macPulse 1.4s ease-in-out infinite}
@keyframes macPulse{0%,100%{box-shadow:0 2px 24px rgba(0,0,0,.28)}50%{box-shadow:0 0 18px rgba(239,68,68,.22)}}
/* Dot pulsante */
.mac-pill-dot{
  width:7px;height:7px;border-radius:50%;flex-shrink:0;
  background:#00aba9;
  box-shadow:0 0 8px rgba(0,171,169,.9),0 0 18px rgba(0,171,169,.5);
  animation:mpDotPulse 1.8s ease-in-out infinite;
  transition:background .4s,box-shadow .4s;
}
.mac-pill-dot--urgent{background:#fbbf24;box-shadow:0 0 8px rgba(251,191,36,.9),0 0 18px rgba(251,191,36,.4)}
.mac-pill-dot--critical{background:#f87171;box-shadow:0 0 8px rgba(239,68,68,.9),0 0 18px rgba(239,68,68,.4)}
/* Campos */
.mac-pill-fields{display:flex;align-items:center;gap:0;flex:1;flex-wrap:wrap}
.mac-pf{display:flex;align-items:center;gap:4px;padding:0 10px}
.mac-pf:first-child{padding-left:4px}
.mac-pf-lbl{font:600 8.5px/1 var(--b);color:rgba(255,255,255,.28);letter-spacing:.1em;text-transform:uppercase;flex-shrink:0}
.mac-pf-val{font:500 11.5px/1 var(--b);color:rgba(255,255,255,.85);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.mac-pf-cd{color:#2dd4bf;font-weight:700;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.mac-pf-cd--urgent{color:#fbbf24}
.mac-pf-cd--critical{color:#f87171}
.mac-pill-sep{width:1px;height:13px;background:rgba(255,255,255,.1);flex-shrink:0}
/* Ações */
.mac-pill-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}
/* Botão Encerrar */
.mac-btn-enc{
  display:flex;align-items:center;gap:5px;
  padding:5px 11px;
  background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.45);color:#fca5a5;
  border-radius:99px;font:500 10px var(--b);cursor:pointer;transition:all .20s;
  white-space:nowrap;
}
.mac-btn-enc:hover{background:rgba(239,68,68,.30);border-color:rgba(239,68,68,.7);color:#fff;box-shadow:0 0 10px rgba(239,68,68,.3)}
.mac-btn-enc:disabled{opacity:.45;cursor:not-allowed}
/* Confirm strip — pílula fina */
.mac-confirm-strip{
  display:flex;align-items:center;gap:8px;
  background:linear-gradient(135deg,rgba(20,4,4,.55),rgba(30,6,6,.45));
  border:1px solid rgba(239,68,68,.28);
  border-radius:99px;
  padding:5px 8px 5px 16px;
  backdrop-filter:blur(32px) saturate(140%);-webkit-backdrop-filter:blur(32px) saturate(140%);
  box-shadow:0 2px 16px rgba(0,0,0,.22),0 0 0 1px rgba(239,68,68,.06) inset;
  animation:macFadeIn .22s var(--ee);
}
.mac-confirm-txt{font:500 11px/1 var(--b);color:rgba(255,255,255,.55);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mac-confirm-btns{display:flex;gap:6px;align-items:center;flex-shrink:0}
.mac-btn-cancel-c{
  padding:5px 11px;border-radius:99px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.45);
  font:500 10px var(--b);cursor:pointer;transition:all .18s;
}
.mac-btn-cancel-c:hover{background:rgba(255,255,255,.1);color:rgba(255,255,255,.75)}
.mac-btn-confirm-c{
  display:flex;align-items:center;gap:5px;
  padding:5px 11px;border-radius:99px;
  background:rgba(239,68,68,.18);border:1px solid rgba(239,68,68,.45);color:#fca5a5;
  font:600 10px var(--b);cursor:pointer;transition:all .18s;white-space:nowrap;
}
.mac-btn-confirm-c:hover{background:rgba(239,68,68,.32);color:#fff;border-color:rgba(239,68,68,.75);box-shadow:0 0 10px rgba(239,68,68,.25)}
.mac-btn-confirm-c:disabled{opacity:.45;cursor:not-allowed}
/* Histórico */
.mac-hist{padding:0 4px}
.mac-hist-hd{
  display:flex;align-items:center;gap:6px;width:100%;
  background:none;border:none;cursor:pointer;
  font:600 9px/1 var(--b);color:rgba(255,255,255,.22);
  text-transform:uppercase;letter-spacing:.08em;
  padding:4px 2px;transition:color .18s;
}
.mac-hist-hd:hover{color:rgba(255,255,255,.42)}
.mac-hist-chev{transition:transform .22s;margin-left:auto}
.mac-hist-hd.open .mac-hist-chev{transform:rotate(180deg)}
.mac-hist-body{
  padding:8px 4px 4px;
  display:flex;flex-direction:column;gap:0;
  animation:macFadeIn .2s var(--ee);
}
.mac-hist-item{
  display:flex;align-items:center;justify-content:space-between;
  padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05);
}
.mac-hist-item:last-child{border-bottom:none}
.mac-hist-item-name{font:500 11px/1 var(--b);color:rgba(255,255,255,.5);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mac-hist-item-by{font:400 10px/1.4 var(--b);color:rgba(255,255,255,.28);flex-shrink:0;margin-left:8px;text-align:right}
@keyframes macFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
/* Mobile */
@media(max-width:520px){
  .mac-pill{padding:8px 10px 8px 12px;gap:8px}
  .mac-pf{padding:2px 6px}
  .mac-confirm-strip{flex-direction:column;align-items:flex-start;gap:10px}
  .mac-confirm-btns{width:100%;justify-content:flex-end}
}

/* Painel master auto-close */
.pwa-mac-panel{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px}
.pwa-mac-panel-hd{display:flex;align-items:center;gap:6px;font:700 9.5px/1 var(--b);color:rgba(45,212,191,.6);text-transform:uppercase;letter-spacing:.08em}
.pwa-mac-active{display:flex;flex-direction:column;gap:6px}
.pwa-mac-ev{display:flex;align-items:center;justify-content:space-between;gap:8px;background:rgba(45,212,191,.06);border:1px solid rgba(45,212,191,.14);border-radius:10px;padding:8px 12px}
.pwa-mac-ev-name{font:600 12px/1 var(--b);color:var(--c8);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pwa-mac-ev-cd{font:700 14px/1 var(--b);color:#2dd4bf;font-variant-numeric:tabular-nums;flex-shrink:0}
.pwa-mac-ev-cd--urgent{color:#fbbf24}
.pwa-mac-log-hd{font:700 9px/1 var(--b);color:rgba(255,255,255,.2);text-transform:uppercase;letter-spacing:.07em;padding-top:4px;border-top:1px solid rgba(255,255,255,.06)}
.pwa-mac-log{display:flex;flex-direction:column;gap:0}
.pwa-mac-log-item{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.pwa-mac-log-item:last-child{border-bottom:none}
.pwa-mac-log-name{font:500 11px/1 var(--b);color:var(--c6);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pwa-mac-log-ts{font:400 10px/1 var(--b);color:var(--c4);flex-shrink:0;margin-left:8px}

/* ══ AO VIVO — seletor de evento ══ */
.pwa-live-sel{display:flex;gap:6px;overflow-x:auto;padding:10px 14px 4px;scrollbar-width:none;flex-shrink:0}
.pwa-live-sel::-webkit-scrollbar{display:none}
.pwa-live-sel-btn{flex-shrink:0;padding:6px 14px;border-radius:99px;border:1.5px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:rgba(255,255,255,.5);font:500 11px/1 var(--b);cursor:pointer;transition:all .18s;white-space:nowrap}
.pwa-live-sel-btn--on{background:rgba(0,171,169,.2);border-color:rgba(0,171,169,.45);color:#00d4d2}

/* ══ EVENTOS TAB — cards estilo site ══ */
.pwa-ev-m-stats{display:flex;gap:10px;flex-wrap:wrap;padding:10px 14px 4px;font:400 11.5px/1.4 var(--b);color:rgba(255,255,255,.45);border-bottom:1px solid rgba(255,255,255,.06)}
.pwa-ev-m-stats strong{font-weight:700;color:rgba(255,255,255,.82)}
.pwa-ev-m-st--teal strong{color:#2dd4bf}
.pwa-ev-m-st--purple strong{color:#c084fc}
.pwa-ev-m-st--amber strong{color:#fbbf24}
.pwa-ev-m-search-wrap{display:flex;align-items:center;gap:8px;padding:8px 14px 4px}
.pwa-ev-m-search-ic{color:rgba(255,255,255,.3);flex-shrink:0}
.pwa-ev-m-search{flex:1;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:9px;padding:8px 10px;color:rgba(255,255,255,.88);font:400 13px/1 var(--b);outline:none;transition:border-color .15s}
.pwa-ev-m-search::placeholder{color:rgba(255,255,255,.28)}
.pwa-ev-m-search:focus{border-color:rgba(0,171,169,.4)}
.pwa-ev-m-list{display:flex;flex-direction:column;gap:8px;padding:8px 14px 24px}
/* Card individual */
.pwa-ev-m-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:13px 14px 11px;transition:border-color .18s;animation:fadeInUp .28s var(--ee) both}
.pwa-ev-m-card--active{border-color:rgba(0,171,169,.28);background:rgba(0,171,169,.05)}
/* Topo do card */
.pwa-ev-m-top{margin-bottom:8px}
.pwa-ev-m-header{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:4px}
.pwa-ev-m-spk{font:700 13px/1.2 var(--b);color:rgba(255,255,255,.88)}
.pwa-ev-m-badge{font:700 9px/1 var(--b);padding:3px 8px;border-radius:99px;letter-spacing:.04em;white-space:nowrap}
.pwa-ev-m-badge--green{background:rgba(0,171,169,.18);color:#00d4d2;border:1px solid rgba(0,171,169,.3)}
.pwa-ev-m-badge--closed{background:rgba(255,255,255,.06);color:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.1)}
.pwa-ev-m-nome{font:700 15px/1.25 var(--font);color:rgba(255,255,255,.92);letter-spacing:-.015em;margin-bottom:4px}
.pwa-ev-m-meta{display:flex;gap:6px;flex-wrap:wrap;font:400 10.5px/1.4 var(--b);color:rgba(255,255,255,.38)}
.pwa-ev-m-meta span+span::before{content:'·';margin-right:6px;opacity:.4}
/* Contagens */
.pwa-ev-m-counts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.pwa-ev-m-count{display:flex;align-items:center;gap:4px;font:500 11px/1 var(--b);color:rgba(255,255,255,.4)}
.pwa-ev-m-count--teal{color:#2dd4bf}
.pwa-ev-m-count--purple{color:#c084fc}
.pwa-ev-m-count--amber{color:#fbbf24}
/* Botões de ação */
.pwa-ev-m-actions{display:flex;gap:6px;flex-wrap:wrap}
.pwa-ev-m-btn{display:flex;align-items:center;gap:5px;padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:rgba(255,255,255,.65);font:600 11px/1.3 var(--b);cursor:pointer;transition:all .16s;white-space:nowrap}
.pwa-ev-m-btn--teal{border-color:rgba(0,171,169,.3);background:rgba(0,171,169,.1);color:#2dd4bf}
.pwa-ev-m-btn--teal:active{background:rgba(0,171,169,.2)}
.pwa-ev-m-btn--purple{border-color:rgba(192,132,252,.3);background:rgba(192,132,252,.1);color:#c084fc}
.pwa-ev-m-btn--purple:active{background:rgba(192,132,252,.2)}
.pwa-ev-m-btn--amber{border-color:rgba(251,191,36,.3);background:rgba(251,191,36,.1);color:#fbbf24}
.pwa-ev-m-btn--amber:active{background:rgba(251,191,36,.2)}
.pwa-ev-m-btn--red{border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.1);color:#fca5a5}
.pwa-ev-m-btn--red:active{background:rgba(239,68,68,.2)}
.pwa-ev-m-btn--del{border-color:rgba(239,68,68,.2);background:transparent;color:rgba(239,68,68,.6)}
.pwa-ev-m-btn--del:active{background:rgba(239,68,68,.1)}
.pwa-ev-m-btn--off{border-color:rgba(255,255,255,.06);background:transparent;color:rgba(255,255,255,.2);cursor:default}

/* ══ EVENTOS TAB — lista antiga (mantida para compat) ══ */
.pwa-ev-loading{display:flex;align-items:center;gap:8px;justify-content:center;padding:40px 20px;color:rgba(255,255,255,.35);font:400 13px/1 var(--b)}
.pwa-ev-loading-dot{width:8px;height:8px;border-radius:50%;background:rgba(0,171,169,.6);animation:mpDotPulse 1.2s ease-in-out infinite}
.pwa-ev-empty-msg{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 20px;color:rgba(255,255,255,.3);font:400 13px/1.5 var(--b);text-align:center}
.pwa-ev-filter-bar{display:flex;gap:6px;padding:12px 14px 4px;flex-shrink:0}
.pwa-ev-flt-btn{flex:1;padding:7px 4px;border-radius:9px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:rgba(255,255,255,.4);font:500 11px/1 var(--b);cursor:pointer;transition:all .16s}
.pwa-ev-flt-btn.on{background:rgba(0,171,169,.16);border-color:rgba(0,171,169,.35);color:#00d4d2}
.pwa-ev-list{display:flex;flex-direction:column;gap:8px;padding:8px 14px 20px}
.pwa-ev-item{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:13px 14px;cursor:pointer;transition:all .18s;animation:fadeInUp .3s var(--ee) both}
.pwa-ev-item:active{transform:scale(.98);background:rgba(255,255,255,.07)}
.pwa-ev-item--active{border-color:rgba(0,171,169,.3);background:rgba(0,171,169,.07)}
.pwa-ev-item-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.pwa-ev-item-badge{font:700 9.5px/1 var(--b);padding:3px 8px;border-radius:99px;letter-spacing:.04em}
.pwa-ev-badge--green{background:rgba(0,171,169,.18);color:#00d4d2;border:1px solid rgba(0,171,169,.3)}
.pwa-ev-badge--gray{background:rgba(255,255,255,.06);color:rgba(255,255,255,.35);border:1px solid rgba(255,255,255,.1)}
.pwa-ev-item-n{font:400 11px/1 var(--b);color:rgba(255,255,255,.35)}
.pwa-ev-item-name{font:700 14px/1.2 var(--font);color:rgba(255,255,255,.9);margin-bottom:4px;letter-spacing:-.01em}
.pwa-ev-item-meta{font:400 11px/1.3 var(--b);color:rgba(255,255,255,.35)}
/* detalhe evento */
.pwa-ev-detail{padding:14px;display:flex;flex-direction:column;gap:12px}
.pwa-ev-back-btn{display:flex;align-items:center;gap:6px;background:none;border:none;color:rgba(0,200,195,.7);font:500 12px/1 var(--b);cursor:pointer;padding:0;align-self:flex-start}
.pwa-ev-back-btn:active{color:#00d4d2}
.pwa-ev-detail-hd{display:flex;flex-direction:column;gap:5px}
.pwa-ev-detail-name{font:700 17px/1.2 var(--font);color:rgba(255,255,255,.92);letter-spacing:-.02em}
.pwa-ev-detail-meta{font:400 12px/1.3 var(--b);color:rgba(255,255,255,.4)}
.pwa-ev-detail-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:8px}
.pwa-ev-detail-stat{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:10px 8px;text-align:center}
.pwa-ev-ds-val{display:block;font:800 20px/1 var(--font);color:rgba(255,255,255,.88);letter-spacing:-.02em}
.pwa-ev-ds-lbl{display:block;font:400 9.5px/1 var(--b);color:rgba(255,255,255,.32);margin-top:4px;text-transform:uppercase;letter-spacing:.05em}
.pwa-ev-detail-actions{display:flex;flex-direction:column;gap:7px;margin-top:4px}

/* ══ ANALYTICS MOBILE — SCALE 3 ══ */
/* Visão geral */
.pwa-dig-ov-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pwa-dig-ov-card{background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.07);border-radius:11px;padding:11px 12px;text-align:center}
.pwa-dig-ov-val{font:800 22px/1 var(--font);color:rgba(255,255,255,.92);letter-spacing:-.02em}
.pwa-dig-ov-lbl{font:400 10px/1 var(--b);color:rgba(255,255,255,.32);margin-top:5px;text-transform:uppercase;letter-spacing:.05em}

/* Heatmap 24h */
.pwa-dig-peak-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}
.pwa-dig-peak-cell{border-radius:5px;padding:4px 2px;display:flex;flex-direction:column;align-items:center;gap:1px;min-height:36px;justify-content:center;transition:transform .12s}
.pwa-dig-peak-cell:active{transform:scale(.92)}
.pwa-dig-peak-h{font:600 9px/1 var(--b)}
.pwa-dig-peak-c{font:700 10px/1 var(--b)}

/* NPS */
.pwa-dig-nps-row{display:flex;align-items:center;gap:12px;background:rgba(0,0,0,.2);border-radius:11px;padding:14px 10px;margin-bottom:10px}
.pwa-dig-nps-item{flex:1;text-align:center}
.pwa-dig-nps-score{font:800 28px/1 var(--font);color:rgba(255,255,255,.9);letter-spacing:-.03em}
.pwa-dig-nps-lbl{font:500 10px/1 var(--b);color:rgba(255,255,255,.32);margin-top:4px;text-transform:uppercase;letter-spacing:.05em}
.pwa-dig-nps-divider{width:1px;height:50px;background:rgba(255,255,255,.08);flex-shrink:0}
.pwa-dig-stars{font-size:13px;color:#e8b84b;letter-spacing:1px;display:block;margin-top:4px}
.pwa-dig-nps-dist{display:flex;flex-direction:column;gap:5px}
.pwa-dig-nps-dist-row{display:flex;align-items:center;gap:7px}
.pwa-dig-nps-star{font-size:11px;min-width:60px;letter-spacing:.5px}

/* Comentários */
.pwa-dig-comment{background:rgba(255,255,255,.04);border-left:2px solid rgba(0,171,169,.4);border-radius:0 8px 8px 0;padding:8px 10px;font:400 11.5px/1.5 var(--b);color:rgba(255,255,255,.6);margin-bottom:5px;font-style:italic}

/* Expectativas */
.pwa-dig-exp-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.pwa-dig-exp-lbl{font:400 11px/1.4 var(--b);color:rgba(255,255,255,.55);flex:1}
.pwa-dig-exp-val{font:700 12px/1 var(--b);color:rgba(0,171,169,.9);min-width:22px;text-align:right}

/* Funil vertical */
.pwa-dig-funnel-v{display:flex;flex-direction:column;gap:7px}
.pwa-dig-fv-row{display:flex;align-items:center;gap:8px}
.pwa-dig-fv-lbl{font:400 11px/1 var(--b);color:rgba(255,255,255,.5);min-width:80px}
.pwa-dig-fv-bar-wrap{flex:1;height:22px;background:rgba(255,255,255,.06);border-radius:6px;overflow:hidden}
.pwa-dig-fv-bar{height:100%;border-radius:6px;transition:width .4s var(--ee)}
.pwa-dig-fv-val{font:700 12px/1 var(--b);color:rgba(255,255,255,.7);min-width:28px;text-align:right}

/* Comparativo */
.pwa-dig-cmp-grid{display:flex;flex-direction:column;gap:8px}
.pwa-dig-cmp-row{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.04);border-radius:9px;padding:10px 12px}
.pwa-dig-cmp-lbl{font:400 11px/1 var(--b);color:rgba(255,255,255,.45);flex:1}
.pwa-dig-cmp-curr{font:800 15px/1 var(--font);color:rgba(255,255,255,.88)}
.pwa-dig-cmp-prev{font:400 10px/1 var(--b);color:rgba(255,255,255,.28)}
.pwa-dig-diff{font:700 11px/1 var(--b);padding:3px 7px;border-radius:5px}
.pwa-dig-diff--pos{color:#22c55e;background:rgba(34,197,94,.12)}
.pwa-dig-diff--neg{color:#e06060;background:rgba(224,96,96,.12)}
.pwa-dig-diff--neu{color:rgba(255,255,255,.4);background:rgba(255,255,255,.06)}
.pwa-dig-diff-na{font:400 10px/1 var(--b);color:rgba(255,255,255,.22)}

/* PDF button */
.pwa-dig-footer{display:flex;flex-direction:column;gap:8px;align-items:stretch;padding-top:4px}
.pwa-dig-pdf-btn{display:flex;align-items:center;justify-content:center;gap:7px;padding:12px 18px;border-radius:10px;background:linear-gradient(135deg,rgba(0,99,97,.6),rgba(0,171,169,.4));border:1px solid rgba(0,171,169,.3);color:rgba(255,255,255,.88);font:600 12.5px/1 var(--b);cursor:pointer;transition:all .18s}
.pwa-dig-pdf-btn:active{background:linear-gradient(135deg,rgba(0,99,97,.9),rgba(0,171,169,.7))}

/* ── Pílula de status (acima dos menu-cards) ────────────────────────────────── */
.ev-status-pill{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 8px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:6px 14px;margin:0 auto 14px;max-width:100%;box-sizing:border-box;font-family:var(--b);font-size:11px;line-height:1.3;color:rgba(255,255,255,.75)}
.ev-sp-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden}
.ev-sp-item--spk{flex-wrap:wrap;gap:3px}
.ev-sp-lbl{font-size:10px;font-weight:700;color:rgba(255,255,255,.42);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}
.ev-sp-val{font-weight:600;color:rgba(255,255,255,.88);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-sp-meta{font-size:10px;color:rgba(255,255,255,.45);white-space:nowrap}
.ev-sp-sep{color:rgba(255,255,255,.2);flex-shrink:0;user-select:none}
.ev-sp-sep--ver{margin-left:2px}
.ev-sp-ver{font-size:10px;font-weight:700;color:rgba(0,171,169,.8);white-space:nowrap;flex-shrink:0}

/* ══ ABA ATUALIZAR ══ */
/* ══ ABA VERSÃO — Material You ══ */
.pwa-upd-m3-wrap{padding:16px 14px 40px;display:flex;flex-direction:column;gap:12px}

/* Card versão */
.pwa-upd-m3-ver-card{background:linear-gradient(145deg,rgba(0,171,169,.12),rgba(0,99,97,.06));border:1px solid rgba(0,171,169,.2);border-radius:24px;padding:22px 20px;text-align:center;position:relative;overflow:hidden}
.pwa-upd-m3-ver-card::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(0,171,169,.08),transparent 70%);pointer-events:none}
.pwa-upd-m3-ver-badge{font:800 44px/1 var(--font);color:#00d4d2;letter-spacing:-.04em;text-shadow:0 0 40px rgba(0,171,169,.35)}
.pwa-upd-m3-ver-meta{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px}
.pwa-upd-m3-ver-lbl{font:500 11px/1 var(--b);color:rgba(255,255,255,.35);letter-spacing:.06em;text-transform:uppercase}
.pwa-upd-m3-ver-sw{font:700 12px/1 var(--b);color:rgba(0,171,169,.7);background:rgba(0,171,169,.1);padding:2px 8px;border-radius:999px;border:1px solid rgba(0,171,169,.2)}
.pwa-upd-m3-build{font:400 10.5px/1 var(--b);color:rgba(255,255,255,.22);margin-top:10px;letter-spacing:.03em}

/* Botão verificar */
.pwa-upd-m3-check-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px;border-radius:16px;background:rgba(0,171,169,.12);border:1.5px solid rgba(0,171,169,.25);color:#00d4d2;font:700 14px/1 var(--b);cursor:pointer;transition:all .18s;letter-spacing:.01em}
.pwa-upd-m3-check-btn:hover{background:rgba(0,171,169,.2);border-color:rgba(0,171,169,.4)}
.pwa-upd-m3-check-btn:disabled{opacity:.45;cursor:default}
.pwa-upd-m3-check-btn:active{transform:scale(.97)}

/* Card force update */
.pwa-fu-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:18px 16px;display:flex;flex-direction:column;gap:12px}
.pwa-fu-card-hd{display:flex;align-items:center;gap:8px;font:700 13px/1 var(--b);color:rgba(255,255,255,.82)}
.pwa-fu-card-hd svg{color:#00d4d2;flex-shrink:0}
.pwa-fu-card-hd span{flex:1}
.pwa-fu-last-badge{font:600 10px/1 var(--b);color:#00d4d2;background:rgba(0,171,169,.12);border:1px solid rgba(0,171,169,.25);padding:3px 8px;border-radius:999px;flex-shrink:0}

/* Labels de seção */
.pwa-fu-section-lbl{font:700 10px/1 var(--b);color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.09em;margin-bottom:-4px}

/* Segmented buttons — modo */
.pwa-fu-seg{display:flex;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03)}
.pwa-fu-mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:11px 6px;border:none;background:transparent;color:rgba(255,255,255,.45);font:600 11.5px/1 var(--b);cursor:pointer;transition:all .18s;border-right:1px solid rgba(255,255,255,.08)}
.pwa-fu-mode-btn:last-child{border-right:none}
.pwa-fu-mode-btn.on{background:rgba(0,171,169,.18);color:#00d4d2}
.pwa-fu-mode-btn svg{opacity:.7;flex-shrink:0}
.pwa-fu-mode-btn.on svg{opacity:1}
.pwa-fu-mode-btn:active{background:rgba(0,171,169,.1)}

/* Textarea mensagem */
.pwa-fu-msg-input{width:100%;background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.12);border-radius:14px;color:#fff;font:400 13px/1.5 var(--b);padding:12px 14px;resize:none;outline:none;transition:border-color .18s;-webkit-appearance:none}
.pwa-fu-msg-input::placeholder{color:rgba(255,255,255,.3)}
.pwa-fu-msg-input:focus{border-color:rgba(0,171,169,.4)}
.pwa-fu-char-hint{text-align:right;font:400 10px/1 var(--b);color:rgba(255,255,255,.25);margin-top:-6px}
/* Wrapper altura mínima — impede salto ao trocar modo Silenciosa/Mensagem/Novidades */
.pwa-fu-mode-wrap{min-height:110px;display:flex;flex-direction:column;justify-content:center}

/* Preview changelog auto */
.pwa-fu-auto-preview{background:rgba(0,171,169,.06);border:1px solid rgba(0,171,169,.18);border-radius:14px;padding:12px 14px}
.pwa-fu-auto-lbl{font:700 10px/1 var(--b);color:rgba(0,171,169,.7);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}
/* Mesmo teto do `.fu-auto-list` do site: no celular a tela é mais curta ainda,
   e sem isto a lista de novidades cobria "Destinatários" e o botão Enviar. */
.pwa-fu-auto-list{padding-left:16px;display:flex;flex-direction:column;gap:5px;color:rgba(255,255,255,.65);font:400 12px/1.45 var(--b);list-style:disc;max-height:126px;overflow-y:auto;overscroll-behavior:contain}

/* Alvo */
.pwa-fu-targ-row{display:flex;gap:7px}
.pwa-fu-targ-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:11px 8px;border-radius:12px;border:1.5px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:rgba(255,255,255,.45);font:600 11.5px/1 var(--b);cursor:pointer;transition:all .18s}
.pwa-fu-targ-btn.on{border-color:rgba(0,171,169,.4);background:rgba(0,171,169,.12);color:#00d4d2}
.pwa-fu-targ-btn:active{transform:scale(.96)}

/* Botão enviar */
.pwa-fu-send-btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:15px;border-radius:16px;background:var(--btn-grad);border:none;color:#fff;font:700 14px/1 var(--b);cursor:pointer;transition:all .2s;letter-spacing:.02em;box-shadow:0 4px 20px rgba(0,171,169,.25)}
.pwa-fu-send-btn:active{transform:scale(.97);box-shadow:0 2px 10px rgba(0,171,169,.15)}
.pwa-fu-send-btn:disabled{opacity:.5;cursor:default;transform:none}
.pwa-fu-send-btn--ok{background:linear-gradient(135deg,#065f46,#059669)!important}
@keyframes pwaFuSpin{to{transform:rotate(360deg)}}
.pwa-fu-spin{animation:pwaFuSpin .7s linear infinite}

/* Histórico */
.pwa-fu-hist-hd{display:flex;align-items:center;gap:6px;font:700 10px/1 var(--b);color:rgba(255,255,255,.3);text-transform:uppercase;letter-spacing:.08em;padding-top:4px;border-top:1px solid rgba(255,255,255,.07)}
.pwa-fu-hist-hd svg{opacity:.5}
.pwa-fu-hist-empty{font:400 11.5px/1 var(--b);color:rgba(255,255,255,.2);text-align:center;padding:10px 0}
.pwa-fu-hist-item{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.pwa-fu-hist-item:last-child{border-bottom:none}
.pwa-fu-hist-icon{font-size:14px;flex-shrink:0;margin-top:1px;width:18px;text-align:center}
.pwa-fu-hist-body{flex:1;min-width:0}
.pwa-fu-hist-top{display:flex;align-items:center;gap:5px;margin-bottom:3px;flex-wrap:wrap}
.pwa-fu-hist-mode{font:700 11px/1 var(--b);color:rgba(255,255,255,.7)}
.pwa-fu-hist-targ{font:400 11px/1 var(--b);color:rgba(255,255,255,.4)}
.pwa-fu-hist-ver{font:600 10px/1 var(--b);color:rgba(0,171,169,.6);background:rgba(0,171,169,.08);padding:1px 6px;border-radius:999px;margin-left:auto}
.pwa-fu-hist-msg{font:400 11px/1.4 var(--b);color:rgba(255,255,255,.3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pwa-fu-hist-ts{font:400 10px/1 var(--b);color:rgba(255,255,255,.22);flex-shrink:0;margin-top:2px}

/* Compatibilidade — remove antigas classes se ainda aparecerem */
.pwa-upd-wrap{padding:16px 14px 40px;display:flex;flex-direction:column;gap:12px}

/* ══ EVENTOS TAB — QR section ══ */
.pwa-ev-qr-section{padding:12px 16px;border-top:1px solid rgba(255,255,255,.07)}
.pwa-ev-qr-ttl{font:700 10.5px/1 var(--b);color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px}
.pwa-ev-qr-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.pwa-ev-qr-info{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.pwa-ev-qr-name{font:500 12.5px/1 var(--b);color:rgba(255,255,255,.7);white-space:nowrap}
.pwa-ev-qr-actions{display:flex;gap:6px;flex-shrink:0}
.pwa-ev-qr-badge{display:inline-block;padding:2px 7px;border-radius:99px;font:600 10px/1.4 var(--b)}
.pwa-ev-qr-badge--on{background:rgba(34,197,94,.15);color:#4ade80}
.pwa-ev-qr-badge--off{background:rgba(255,255,255,.07);color:rgba(255,255,255,.4)}
.pwa-ev-qr-badge--done{background:rgba(0,171,169,.15);color:#2dd4bf}
.pwa-ev-qr-toggle-btn{padding:4px 10px;border-radius:7px;border:1.5px solid rgba(239,68,68,.4);background:rgba(239,68,68,.08);color:rgba(255,255,255,.65);font:600 11px/1.4 var(--b);cursor:pointer;transition:all .15s;white-space:nowrap}
.pwa-ev-qr-toggle-btn--on{border-color:rgba(239,68,68,.65);background:rgba(239,68,68,.18);color:#fca5a5}
.pwa-ev-action-btn--close{background:rgba(239,68,68,.12)!important;border-color:rgba(239,68,68,.3)!important;color:#fca5a5!important}
.pwa-ev-action-btn--close:active{background:rgba(239,68,68,.25)!important}

/* ══ ANALYTICS — seletor de evento ══ */
.pwa-dig-ev-picker{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px 12px;border-bottom:1px solid rgba(255,255,255,.07)}
.pwa-dig-ev-picker--hidden{display:none}
.pwa-dig-ev-chip{display:flex;align-items:center;gap:5px;padding:6px 10px;border-radius:9px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:rgba(255,255,255,.55);font:500 11px/1.3 var(--b);cursor:pointer;transition:all .16s;text-align:left}
.pwa-dig-ev-chip--on{border-color:rgba(0,171,169,.5);background:rgba(0,171,169,.14);color:#2dd4bf}
.pwa-dig-ev-chip:active{background:rgba(255,255,255,.1)}
.pwa-dig-ev-chip-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.2);flex-shrink:0}
.pwa-dig-ev-chip-dot--on{background:#4ade80}
.pwa-dig-ev-chip-lbl{flex:1;min-width:0}
.pwa-dig-ev-chip-dt{font:400 10px/1 var(--b);color:rgba(255,255,255,.28);white-space:nowrap}

/* ══ PUSH — status e botões no painel ══ */
.pwa-notif-sub-status{padding:8px 12px;border-radius:9px;font:500 11.5px/1.4 var(--b);margin-bottom:2px}
.pwa-notif-sub-status--ok{background:rgba(34,197,94,.1);color:#4ade80;border:1px solid rgba(34,197,94,.2)}
.pwa-notif-sub-status--off{background:rgba(239,68,68,.08);color:#fca5a5;border:1px solid rgba(239,68,68,.2)}
.pwa-notif-err{padding:7px 10px;border-radius:8px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2);font:400 10.5px/1.5 var(--b);color:#fca5a5;word-break:break-word}
.pwa-notif-reinscr-btn{width:100%;padding:11px;border-radius:10px;background:linear-gradient(135deg,#0d9488,#2dd4bf);border:none;color:#fff;font:700 13px/1 var(--b);cursor:pointer;transition:opacity .15s}
.pwa-notif-test-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:11px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.6);font:600 12px/1 var(--b);cursor:pointer;transition:all .15s}
.pwa-notif-test-btn:disabled{opacity:.45;cursor:default}
.pwa-notif-test-btn:active{background:rgba(255,255,255,.1);color:rgba(255,255,255,.85)}

/* ══ PENTE FINO v80 — consistência visual ══ */

/* Chevron do filtro analytics */
.pwa-dig-chev{display:inline-block;transition:transform .2s ease;margin-left:2px;font-size:10px}
.pwa-dig-chev--open{transform:rotate(180deg)}

/* Ícones SVG nas seções analytics */
.pwa-dig-sec-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:#2dd4bf;flex-shrink:0}
.pwa-dig-sec-icon svg{stroke:currentColor}

/* Stats bar eventos — melhor contraste */
.pwa-ev-m-stats{background:rgba(0,171,169,.04);border-bottom:1px solid rgba(0,171,169,.1)}
.pwa-ev-m-stats strong{font-size:13px}

/* Meta separator nos cards de evento */
.pwa-ev-m-meta span+span{padding-left:10px;position:relative}
.pwa-ev-m-meta span+span::before{content:'·';position:absolute;left:2px;color:rgba(255,255,255,.25)}

/* Notif status — centralizar ícone + texto */
.pwa-notif-sub-status{display:flex;align-items:center;gap:7px}
.pwa-notif-sub-status svg{flex-shrink:0}

/* Sorteio icon — stroke teal */
.pwa-sorteio-icon svg{stroke:#fbbf24}

/* pwa-ev-m-card--active borda mais visível */
.pwa-ev-m-card--active{border-color:rgba(0,171,169,.42);box-shadow:0 0 0 1px rgba(0,171,169,.1) inset}

/* Unificação radius botões ação de evento */
.pwa-ev-action-btn{border-radius:12px !important}

/* Versão badge no header mais visível */
.pwa-hd-logo-meta .app-version-badge{font-size:10px;opacity:.9}

/* Nav botão — texto não quebra em telas estreitas */
.pwa-nav-btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52px;display:block}

/* Counter teal glow (já no geral, reforça no menor tamanho) */
.pwa-counter-wrap{padding:18px 16px 10px}

/* Feed hd padrao com o resto das seções */
.pwa-feed-hd{font:700 10px/1 var(--b);text-transform:uppercase;letter-spacing:.09em;color:rgba(45,212,191,.6) !important}

/* Botão reinscrever com mesmo padrão */
.pwa-notif-reinscr-btn{border-radius:8px;font-size:13px}

/* Update check button radius consistente */
.pwa-upd-check-btn{border-radius:12px}

/* Update version card radius consistente */
.pwa-upd-ver-card{border-radius:14px}

/* Analytics filtro igual ao de eventos */
.pwa-dig-filter-btn{padding:7px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:rgba(255,255,255,.45);font:500 11px/1 var(--b);cursor:pointer;transition:all .16s}
.pwa-dig-filter-btn--active{background:rgba(0,171,169,.15);border-color:rgba(0,171,169,.35);color:#2dd4bf}

/* ══ FECHAR EVENTO INLINE (mobile) ══ */
.pwa-ev-close-form{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 14px;background:rgba(239,68,68,.07);border-top:1px solid rgba(239,68,68,.18);animation:fadeInUp .2s var(--ee) both}
.pwa-ev-close-msg{font:400 12px/1.4 var(--b);color:rgba(255,255,255,.65);flex:1;min-width:160px}
.pwa-ev-close-confirm{padding:7px 13px;border-radius:8px;background:rgba(239,68,68,.18);border:1.5px solid rgba(239,68,68,.4);color:#fca5a5;font:600 12px/1 var(--b);cursor:pointer;transition:all .15s;white-space:nowrap}
.pwa-ev-close-confirm:active{background:rgba(239,68,68,.3)}
.pwa-ev-close-confirm:disabled{opacity:.5;cursor:default}
.pwa-ev-close-cancel{padding:7px 10px;border-radius:8px;background:transparent;border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.38);font:500 12px/1 var(--b);cursor:pointer}
.pwa-ev-close-cancel:active{background:rgba(255,255,255,.07)}

/* ══ PUSH DIAGNÓSTICO + HEADER v81 ══ */

/* Permissão negada */
.pwa-notif-sub-status--denied{background:rgba(239,68,68,.1);color:#fca5a5;border:1px solid rgba(239,68,68,.25)}

/* Guia de ativação manual */
.pwa-notif-perm-guide{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:10px;padding:12px 14px;margin-top:2px}
.pwa-notif-perm-title{font:600 11px/1 var(--b);color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.pwa-notif-perm-steps{display:flex;flex-direction:column;gap:5px;font:400 12px/1.45 var(--b);color:rgba(255,255,255,.65)}
.pwa-notif-perm-steps strong{color:rgba(255,255,255,.88)}

/* Hint de permissão */
.pwa-notif-perm-hint{font:400 10.5px/1.4 var(--b);color:rgba(255,255,255,.32);padding:4px 2px}
.pwa-notif-perm-hint strong{color:rgba(255,255,255,.55)}

/* Diagnóstico técnico (details) */
.pwa-notif-debug{border-top:1px solid rgba(255,255,255,.07);padding-top:10px;margin-top:2px}
.pwa-notif-debug-sum{font:500 11px/1 var(--b);color:rgba(255,255,255,.35);cursor:pointer;display:flex;align-items:center;gap:6px;list-style:none;padding:4px 0}
.pwa-notif-debug-sum::-webkit-details-marker{display:none}
.pwa-notif-debug-sum svg{opacity:.6}
.pwa-notif-debug-body{display:flex;flex-direction:column;gap:5px;padding-top:8px}
.pwa-notif-diag-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.05);font:400 11px/1 var(--b)}
.pwa-notif-diag-lbl{color:rgba(255,255,255,.35);flex-shrink:0}
.pwa-notif-diag-val{color:rgba(255,255,255,.65);font-family:monospace;font-size:10.5px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.pwa-notif-diag-val--ok{color:#4ade80}
.pwa-notif-diag-val--err{color:#fca5a5}
.pwa-notif-diag-val--warn{color:#fbbf24}
.pwa-notif-diag-btn{width:100%;margin-top:6px;padding:8px;border-radius:7px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);color:rgba(255,255,255,.55);font:500 11px/1 var(--b);cursor:pointer;transition:all .15s;text-align:center}
.pwa-notif-diag-btn:active{background:rgba(255,255,255,.1);color:rgba(255,255,255,.85)}

/* Header: override do pwa-mode que sobrescreve bg */
body.pwa-mode .pwa-hd {
  background: rgba(4,20,17,.92) !important;
  border-bottom: 1px solid rgba(0,171,169,.2) !important;
  box-shadow: 0 1px 0 rgba(0,171,169,.08), 0 2px 24px rgba(0,0,0,.5) !important;
}
/* Logo tamanho ajustado para o novo header */
.pwa-hd-logo-img {
  height: 22px;
  width: auto;
  max-width: 100px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 0 6px rgba(0,171,169,.25));
}
/* Version badge no header redesenhado */
.pwa-hd-info-top .app-version-badge {
  font-size: 9.5px;
  padding: 1px 5px;
  opacity: .75;
}

/* ══ MODAL ATUALIZAÇÃO AUTOMÁTICA (force update novidades) ══ */
.fnu-ov{
  position:fixed;inset:0;z-index:99990;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(18px) saturate(120%);-webkit-backdrop-filter:blur(18px) saturate(120%);
  padding:20px;
  animation:fnuFadeIn .3s var(--ee,cubic-bezier(.16,1,.3,1));
}
.fnu-box{
  background:linear-gradient(160deg,rgba(3,16,14,.97) 0%,rgba(4,22,18,.96) 100%);
  border:1px solid rgba(0,171,169,.28);
  border-radius:24px;
  padding:36px 32px 28px;
  width:100%;max-width:460px;
  display:flex;flex-direction:column;align-items:center;gap:0;
  box-shadow:
    0 32px 80px rgba(0,0,0,.65),
    0 0 0 1px rgba(0,171,169,.1) inset,
    0 0 60px rgba(0,171,169,.06);
  animation:fnuBoxIn .38s var(--ee,cubic-bezier(.16,1,.3,1));
}
/* Ícone sparkle */
.fnu-sparkle{
  width:64px;height:64px;border-radius:50%;
  background:radial-gradient(circle at 40% 35%,rgba(0,171,169,.22),rgba(0,171,169,.07) 70%);
  border:1px solid rgba(0,171,169,.3);
  display:flex;align-items:center;justify-content:center;
  color:#2dd4bf;
  margin-bottom:18px;
  box-shadow:0 0 24px rgba(0,171,169,.18);
  animation:fnuSparkle 2.5s ease-in-out infinite;
}
@keyframes fnuSparkle{0%,100%{box-shadow:0 0 24px rgba(0,171,169,.18),0 0 0 0 rgba(0,171,169,.0)}50%{box-shadow:0 0 32px rgba(0,171,169,.32),0 0 20px rgba(0,171,169,.08)}}
/* Título */
.fnu-title{
  font:800 22px/1.1 var(--b,Outfit,sans-serif);
  color:#fff;text-align:center;letter-spacing:-.02em;
  margin-bottom:6px;
}
/* Sub */
.fnu-sub{
  font:400 13px/1.4 var(--b,Outfit,sans-serif);
  color:rgba(255,255,255,.4);text-align:center;
  margin-bottom:16px;
}
/* Badge de versão */
.fnu-ver-badge{
  display:inline-flex;align-items:center;
  padding:4px 12px;border-radius:99px;
  background:rgba(0,171,169,.1);border:1px solid rgba(0,171,169,.22);
  color:rgba(45,212,191,.8);
  font:700 10px/1 var(--b,Outfit,sans-serif);letter-spacing:.08em;text-transform:uppercase;
  margin-bottom:22px;
}
/* Lista de novidades */
.fnu-list{
  list-style:none;padding:0;margin:0 0 28px;
  width:100%;display:flex;flex-direction:column;gap:0;
}
.fnu-item{
  display:flex;align-items:flex-start;gap:10px;
  padding:11px 14px;
  border-bottom:1px solid rgba(255,255,255,.05);
  font:400 13px/1.45 var(--b,Outfit,sans-serif);
  color:rgba(255,255,255,.78);
  transition:background .15s;
  border-radius:8px;
}
.fnu-item:last-child{border-bottom:none}
.fnu-item:hover{background:rgba(255,255,255,.03)}
.fnu-item-ic{
  width:20px;height:20px;border-radius:50%;flex-shrink:0;margin-top:1px;
  background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.25);
  display:flex;align-items:center;justify-content:center;color:#4ade80;
}
/* Botão OK */
.fnu-ok-btn{
  display:flex;align-items:center;gap:8px;
  padding:13px 32px;border-radius:99px;
  background:linear-gradient(135deg,rgba(0,171,169,.22),rgba(0,171,169,.14));
  border:1px solid rgba(0,171,169,.45);
  color:#fff;font:700 14px/1 var(--b,Outfit,sans-serif);
  cursor:pointer;transition:all .22s;letter-spacing:.01em;
  box-shadow:0 4px 20px rgba(0,171,169,.15);
}
.fnu-ok-btn:hover{background:linear-gradient(135deg,rgba(0,171,169,.35),rgba(0,171,169,.22));border-color:rgba(0,171,169,.7);box-shadow:0 6px 28px rgba(0,171,169,.28);transform:translateY(-1px)}
.fnu-ok-btn:active{transform:scale(.97)}
/* Animações */
@keyframes fnuFadeIn{from{opacity:0}to{opacity:1}}
@keyframes fnuBoxIn{from{opacity:0;transform:scale(.88) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
/* Mobile */
@media(max-width:520px){
  .fnu-box{padding:28px 20px 22px;border-radius:20px}
  .fnu-title{font-size:19px}
  .fnu-item{font-size:12.5px;padding:10px 10px}
  .fnu-ok-btn{padding:12px 24px;font-size:13px}
}

/* Footer do modal (botão + countdown) */
.fnu-footer{display:flex;align-items:center;gap:14px;width:100%;justify-content:center;flex-wrap:wrap}
.fnu-auto-lbl{font:400 11px/1 var(--b,Outfit,sans-serif);color:rgba(255,255,255,.3);white-space:nowrap}
.fnu-auto-lbl span{font-weight:700;color:rgba(255,255,255,.45)}
/* Barra de progresso regressiva */
.fnu-progress-track{
  width:calc(100% + 64px);height:3px;
  background:rgba(255,255,255,.06);
  border-radius:0 0 24px 24px;
  overflow:hidden;
  margin-top:20px;
  margin-bottom:-28px;
  align-self:stretch;
}
.fnu-progress-bar{
  height:100%;width:100%;
  background:linear-gradient(90deg,rgba(0,171,169,.6),#2dd4bf);
  border-radius:0 0 24px 24px;
  transition:width .1s linear;
}
@media(max-width:520px){
  .fnu-progress-track{width:calc(100% + 40px);margin-bottom:-22px}
}

/* ── Analytics Scale 4: Funil macro de jornada ──────────────────────────────── */
.ev-an-funnel { background:rgba(0,171,169,.05); border:1px solid rgba(0,171,169,.18); border-radius:12px; overflow:hidden; margin-bottom:10px; }
.ev-an-funnel-hd { display:flex; align-items:center; gap:7px; padding:9px 12px; font:600 11px var(--b); color:var(--accent); border-bottom:1px solid rgba(0,171,169,.12); }
.ev-an-funnel-hd svg { stroke:var(--accent); }
.ev-an-funnel-steps { display:flex; flex-direction:column; gap:0; padding:8px 12px; }
.ev-an-fn-step { display:flex; align-items:center; gap:8px; padding:6px 0; }
.ev-an-fn-step + .ev-an-fn-step { border-top:1px solid rgba(255,255,255,.05); }
.ev-an-fn-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.ev-an-fn-label { font:500 11px var(--b); color:var(--text2); flex:1; }
.ev-an-fn-bar-wrap { flex:2; height:5px; background:rgba(255,255,255,.07); border-radius:99px; overflow:hidden; }
.ev-an-fn-bar { height:100%; border-radius:99px; transition:width .6s ease; }
.ev-an-fn-count { font:700 13px/1 var(--font); min-width:28px; text-align:right; }
.ev-an-fn-rate { font:500 10px var(--b); color:var(--text3); min-width:34px; text-align:right; }

/* ══ RESPONSIVIDADE — Auditoria v205 ══════════════════════════════════════════
   Correções sistemáticas por tela: modal, sorteio, QR, tipografia, landscape
═══════════════════════════════════════════════════════════════════════════════ */

/* ── 1. MODAL DE EVENTO — Mobile (≤560px) ─────────────────────────────────── */
@media(max-width:560px) {
  /* Modal ocupa quase tela inteira */
  .ev-em-box {
    border-radius:14px;
    height:min(100dvh - 24px, 580px);
    max-height:calc(100dvh - 24px);
  }
  /* Sidebar → icon-only (60px): font-size:0 esconde texto, SVG tem size fixo no HTML */
  .ev-em-nav {
    width:60px;
    padding:8px 5px;
  }
  .ev-em-nav-item {
    font-size:0;
    padding:10px 0;
    justify-content:center;
    gap:0;
    border-radius:8px;
  }
  .ev-em-nav-item svg { opacity:.7; }
  .ev-em-nav-item.active svg { opacity:1; }
  /* Esconde separadores e rótulos de grupo (admin) */
  .ev-nav-sep, .ev-nav-grp { display:none; }
  /* Header: padding menor, subtítulo oculto */
  .ev-em-hd { padding:12px 14px;gap:10px; }
  .ev-em-hd-sub { display:none; }
  /* Área de conteúdo: respira menos */
  .ev-em-content { padding:10px 10px; }
  /* Footer */
  .ev-em-ftr { padding:10px 12px;gap:6px;flex-wrap:wrap; }
  /* Grid de 2 colunas → 1 coluna */
  .ev-em-grid2 { grid-template-columns:1fr; }
}

/* ── 1b. MODAL — Landscape mobile (altura < 500px) ────────────────────────── */
@media(max-height:500px) and (orientation:landscape) {
  .ev-em-box { height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);border-radius:10px; }
  .ev-em-hd { padding:8px 12px; }
  .ev-em-hd-icon { width:28px;height:28px; }
  .ev-em-content { padding:8px 10px; }
  .ev-em-ftr { padding:8px 12px; }
  .ev-em-nav-item { padding:7px 10px; }
}

/* ── 2. QR PANEL — nome do evento muito largo ──────────────────────────────── */
.qr-live-event-name { max-width:clamp(80px,28vw,220px); }

/* ── 3. TIPOGRAFIA — clamp em elementos sem ajuste mobile ──────────────────── */
/* Texto idle da tela de sorteio */
.idle-txt { font-size:clamp(15px,4.5vw,22px); }
/* Ícone idle menor em mobile */
@media(max-width:480px) {
  .idle-ic  { font-size:clamp(40px,12vw,64px); }
  .idle-hint { font-size:clamp(11px,3vw,13px); }
}
/* Nome do evento nos cards PWA */
.pwa-ev-name { font-size:clamp(15px,4.8vw,19px); }

/* ── 4. TELA DE SORTEIO — landscape compacto ──────────────────────────────── */
@media(max-height:480px) and (orientation:landscape) {
  .winner-area { min-height:clamp(60px,18dvh,160px); }
  .state-idle  { gap:6px; }
  .idle-ic     { font-size:32px; }
  .idle-txt    { font-size:14px; }
  .idle-hint   { font-size:10px; }
  /* Botão sortear menor */
  #btnDraw { padding:10px 20px; }
}

/* ── 5. BARRA HISTÓRICO — cobertura em tablets (520–900px) ───────────────── */
@media(max-width:900px) {
  .hist-list { max-width:calc(100vw - 140px); }
}

/* ── 6. TELA QR — painel inferior adaptativo ─────────────────────────────── */
@media(max-width:420px) {
  /* Esconde badge redundante em telas muito pequenas */
  .qr-live-badge { display:none; }
  /* Botão encerrar menor */
  .qr-live-end-btn { padding:8px 12px;font-size:11px; }
}

/* ── 7. CARDS LOBBY — gap menor em mobile ────────────────────────────────── */
@media(max-width:480px) {
  .lobby-cards { gap:12px; }
}

/* ── 8. LANDSCAPE GERAL — header e stage ─────────────────────────────────── */
@media(max-height:500px) and (orientation:landscape) {
  .app-nav { height:44px; }
  .stage   { padding-top:44px; }
}

/* ── Analytics Scale 4: Mobile Dados header ─────────────────────────────────── */
.pwa-dados-ev-hd { background:var(--bgcard); border-bottom:1px solid var(--border); padding:10px 14px; display:flex; flex-direction:column; gap:8px; }
.pwa-dados-ev-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.pwa-dados-ev-kpi { display:flex; flex-direction:column; align-items:center; gap:2px; background:rgba(0,0,0,.2); border:1px solid rgba(255,255,255,.07); border-radius:10px; padding:8px 4px; }
.pwa-dados-ev-kpi-n { font:800 18px/1 var(--font); color:var(--accent); letter-spacing:-.03em; }
.pwa-dados-ev-kpi-n--sy { color:#2dd4bf; }
.pwa-dados-ev-kpi-n--pre { color:#a78bfa; }
.pwa-dados-ev-kpi-n--sort { color:#22c55e; }
.pwa-dados-ev-kpi-l { font:500 8px var(--b); color:var(--text3); text-transform:uppercase; letter-spacing:.05em; text-align:center; }
.pwa-dados-ev-src { display:flex; flex-direction:column; gap:4px; }
.pwa-dados-ev-funnel { display:flex; flex-direction:column; gap:4px; }
.pwa-dados-ev-fn-row { display:flex; align-items:center; gap:6px; }
.pwa-dados-ev-fn-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.pwa-dados-ev-fn-lbl { font:500 10px var(--b); color:var(--text2); flex:1; }
.pwa-dados-ev-fn-bar-wrap { flex:2; height:4px; background:rgba(255,255,255,.07); border-radius:99px; overflow:hidden; }
.pwa-dados-ev-fn-bar { height:100%; border-radius:99px; transition:width .5s ease; }
.pwa-dados-ev-fn-n { font:700 11px/1 var(--font); min-width:24px; text-align:right; }
.pwa-dados-ev-fn-pct { font:400 9px var(--b); color:var(--text3); min-width:28px; text-align:right; }
.pwa-dados-ev-ts { font:400 9px var(--b); color:var(--text3); text-align:right; }

/* ── Pré-inscrição pulse (realtime) ──────────────────────────────────────────── */
@keyframes evKpiPulse { 0%,100%{transform:scale(1)} 40%{transform:scale(1.18)} }
.ev-an-kpi-n--pulse { animation:evKpiPulse .45s ease; }

/* ══ Tour Onboarding ══════════════════════════════════════════════════════ */
#tourOverlay { position:fixed;inset:0;z-index:99998;pointer-events:all;transition:opacity .3s; }
#tourBackdrop { position:absolute;inset:0;background:rgba(0,0,0,.38);display:none; }
#tourRing { position:fixed;border-radius:10px;pointer-events:none;z-index:99999;display:none; }
#tourTooltip { position:fixed;z-index:100000;pointer-events:all;width:310px;max-width:calc(100vw - 20px);background:rgba(5,16,11,.97);border:1px solid rgba(168,85,247,.38);border-radius:16px;padding:18px 18px 16px;box-shadow:0 12px 48px rgba(0,0,0,.65),0 0 0 1px rgba(168,85,247,.1),0 0 40px rgba(168,85,247,.08);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;--tt-ao:24px; }
#tourTooltip::-webkit-scrollbar { display:none; }
/* Seta dinâmica apontando para o elemento destacado */
#tourTooltip::before { content:'';position:absolute;width:9px;height:9px;background:rgb(5,16,11);border:1px solid rgba(168,85,247,.38);pointer-events:none; }
#tourTooltip.tour-tt--atop::before  { top:-5px;    left:var(--tt-ao); transform:translateX(-50%) rotate(45deg); border-bottom:none; border-right:none; }
#tourTooltip.tour-tt--abot::before  { bottom:-5px;  left:var(--tt-ao); transform:translateX(-50%) rotate(45deg); border-top:none;    border-left:none;  }
#tourTooltip.tour-tt--aleft::before { left:-5px;   top:var(--tt-ao);  transform:translateY(-50%) rotate(45deg); border-top:none;    border-right:none; }
#tourTooltip.tour-tt--aright::before{ right:-5px;  top:var(--tt-ao);  transform:translateY(-50%) rotate(45deg); border-bottom:none; border-left:none;  }
@keyframes tourSpotPurple {
  0%,100%{box-shadow:0 0 0 9999px rgba(0,0,0,.48),0 0 0 2px rgba(168,85,247,.9),0 0 22px rgba(168,85,247,.45)}
  50%    {box-shadow:0 0 0 9999px rgba(0,0,0,.48),0 0 0 3px rgba(168,85,247,1),0 0 36px rgba(168,85,247,.7)}
}
@keyframes tourSpotTeal {
  0%,100%{box-shadow:0 0 0 9999px rgba(0,0,0,.48),0 0 0 2px rgba(45,212,191,.9),0 0 22px rgba(45,212,191,.4)}
  50%    {box-shadow:0 0 0 9999px rgba(0,0,0,.48),0 0 0 3px rgba(45,212,191,1),0 0 36px rgba(45,212,191,.65)}
}
.tour-ring--purple { animation:tourSpotPurple 2s ease-in-out infinite; }
.tour-ring--teal   { animation:tourSpotTeal 2s ease-in-out infinite; }
.tour-prog { display:flex;align-items:center;gap:4px;margin-bottom:10px; }
.tour-dot  { width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.18);transition:all .3s;flex-shrink:0; }
.tour-dot--done   { background:#7c3aed;transform:scale(1.1); }
.tour-dot--active { background:#c084fc;transform:scale(1.35);box-shadow:0 0 6px #a855f7; }
.tour-step-lbl { font:500 9px var(--b);color:rgba(192,132,252,.75);margin-left:auto;letter-spacing:.04em; }
.tour-title { font:700 14px/1.2 var(--font);color:rgba(222,238,240,.95);margin-bottom:7px;letter-spacing:-.015em; }
.tour-text  { font:400 11.5px/1.55 var(--b);color:#8fadb0;margin-bottom:14px; }
.tour-actions { display:flex;align-items:center;justify-content:space-between;gap:8px; }
.tour-skip { background:transparent;border:none;font:400 10.5px var(--b);color:#4a6b6e;cursor:pointer;padding:0;transition:color .15s;flex-shrink:0; }
.tour-skip:hover { color:#92b0b3; }
.tour-back-btn { display:flex;align-items:center;gap:4px;background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:7px 10px;font:500 11px var(--b);color:rgba(255,255,255,.45);cursor:pointer;transition:all .15s;flex-shrink:0; }
.tour-back-btn:hover { border-color:rgba(255,255,255,.25);color:rgba(255,255,255,.7); }
.tour-back-btn:active { transform:scale(.96); }
.tour-next { flex:1;background:linear-gradient(135deg,#6d28d9,#a855f7);border:none;border-radius:9px;padding:8px 14px;font:600 12px var(--font);color:#fff;cursor:pointer;transition:opacity .15s,transform .1s;display:flex;align-items:center;justify-content:center;gap:5px; }
.tour-next:hover { opacity:.9; }
.tour-next:active { transform:scale(.97); }
.tour-next--finish { background:linear-gradient(135deg,#065f46,#059669); }
.tour-next--warning { background:linear-gradient(135deg,#92400e,#d97706); }
#tourOverlay.tour--back #tourTooltip { animation:tourSlideBack .22s ease-out; }
@keyframes tourSlideBack { from { opacity:.4;transform:translateX(-10px); } to { opacity:1;transform:translateX(0); } }
/* Tour badges na lista de usuários */
.tour-badge { display:inline-flex;align-items:center;gap:3px;font:500 8.5px var(--b);padding:2px 7px;border-radius:99px;white-space:nowrap; }
.tour-badge--pending   { background:rgba(255,255,255,.06);color:var(--text3);border:1px solid rgba(255,255,255,.1); }
.tour-badge--started   { background:rgba(251,191,36,.1);color:#fbbf24;border:1px solid rgba(251,191,36,.22); }
.tour-badge--completed { background:rgba(74,222,128,.1);color:#4ade80;border:1px solid rgba(74,222,128,.22); }
.tour-badge--skipped   { background:rgba(239,68,68,.08);color:#f87171;border:1px solid rgba(239,68,68,.18); }
.tour-badge--partial   { background:rgba(251,146,60,.1);color:#fb923c;border:1px solid rgba(251,146,60,.22); }
.tour-force-btn { display:inline-flex;align-items:center;gap:4px;font:600 9px var(--font);padding:3px 8px;border-radius:7px;cursor:pointer;border:1px solid rgba(168,85,247,.28);background:rgba(168,85,247,.08);color:#c084fc;transition:all .15s;flex-shrink:0; }
.tour-force-btn:hover { background:rgba(168,85,247,.18); }
/* Simulação de sorteio */
.tour-sim-ov { position:fixed;inset:0;z-index:100010;background:rgba(4,14,11,.97);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;transition:opacity .5s; }
.tour-sim-lbl { font:500 10px var(--b);color:#2dd4bf;text-transform:uppercase;letter-spacing:.15em; }
.tour-sim-name { font:800 54px/1 var(--font);letter-spacing:-.04em;color:#fbbf24;min-width:240px;text-align:center;transition:text-shadow .3s; }
.tour-sim-sub { font:400 11px var(--b);color:#527276; }
/* Tour panel no form de edição de usuário */
.ev-tour-panel { display:flex;flex-direction:column;gap:8px; }
.ev-tp-status  { display:flex;align-items:center;gap:6px;flex-wrap:wrap; }
.ev-tp-full-prog,.ev-tour-mini-prog { display:flex;align-items:center;gap:2px;flex-wrap:wrap; }
.ev-tp-dot { width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.14);flex-shrink:0;transition:background .2s; }
.ev-tp-dot--done { background:#7c3aed; }
.ev-tp-dur { font:500 10px var(--b);color:rgba(255,255,255,.38);margin-left:5px; }
.ev-tour-mini-prog { margin-top:4px; }
.ev-tour-mini-prog .ev-tp-dot { width:4px;height:4px; }
.ev-tp-force-btn { width:100%;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;border-radius:8px;font:600 10.5px var(--font);cursor:pointer;transition:all .15s;border:1px solid rgba(168,85,247,.3);background:rgba(168,85,247,.1);color:#c084fc; }
.ev-tp-force-btn--sm { width:auto;padding:3px 8px;font-size:9px;border-radius:6px;flex-shrink:0; }
.ev-tp-force-btn:hover { background:rgba(168,85,247,.22); }
.ev-tp-force-btn--cancel { border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.08);color:#f87171; }
.ev-tp-force-btn--cancel:hover { background:rgba(239,68,68,.16); }
.ev-tp-force-btn--exempt { border-color:rgba(255,255,255,.1);background:transparent;color:rgba(255,255,255,.32);font-weight:400; }
.ev-tp-force-btn--exempt:hover { background:rgba(255,255,255,.06);color:rgba(255,255,255,.5); }
.ev-tp-forced-note { font:400 10px var(--b);color:#fbbf24;padding:4px 7px;background:rgba(251,191,36,.07);border:1px solid rgba(251,191,36,.18);border-radius:6px;text-align:center; }

/* ── Pré-inscrição "Exibir na tela" — botão âmbar ── */
.ev-link-btn--show-pre { border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.10);color:rgba(251,191,36,.95); }
.ev-link-btn--show-pre:hover { background:rgba(245,158,11,.20);color:#fff; }

/* ═══ fonte/estilo/30-evento/070-pre-inscricao.css ═══ */
/* ──────────────────────────────────────────────────────────────────────
 * Overlay de QR da pré-inscrição
 *
 * ORIGEM: ../dvi-sorteio/site/style.css  linhas 9848–9947
 * TAMANHO PREVISTO: 100 linhas
 *
 * ⚠️ AINDA VAZIO — nada foi portado para cá.
 * Como portar: docs/04-ARQUITETURA.md › "Como portar sem quebrar".
 *──────────────────────────────────────────────────────────────────────
 */

/* ── Pré-inscrição QR overlay ── */
#evPreQROv {
  position:fixed;inset:0;z-index:9999;
  background:rgba(0,0,0,.72);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .2s ease;
}
#evPreQROv.ev-pre-qr--in { opacity:1; }
#evPreQRBox {
  position:relative;
  display:flex;flex-direction:column;align-items:center;
  background:#0c1510;
  border:1px solid rgba(245,158,11,.22);
  box-shadow:0 0 48px rgba(245,158,11,.08),0 12px 40px rgba(0,0,0,.6);
  border-radius:20px;padding:52px 24px 28px;
  transform:scale(.9);transition:transform .22s cubic-bezier(.34,1.3,.64,1);
  max-width:calc(100vw - 32px);
}
#evPreQROv.ev-pre-qr--in #evPreQRBox { transform:scale(1); }
#evPreQRClose {
  position:absolute;top:12px;right:12px;
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
  font-size:17px;color:rgba(255,255,255,.9);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .15s,color .15s;line-height:1;
}
#evPreQRClose:hover { background:rgba(255,255,255,.22);color:#fff; }
#evPreQRCanvas { border-radius:10px;overflow:hidden;outline:2px solid rgba(245,158,11,.18);outline-offset:4px;max-width:100%; }
.evPreQRName { margin-top:16px;font:600 15px var(--b);color:rgba(255,255,255,.85);letter-spacing:-.01em;text-align:center;max-width:90vw; }
.evPreQRSub  { margin-top:5px;font:500 11px var(--b);color:rgba(245,158,11,.75);letter-spacing:.04em;text-align:center; }
.ev-tour-req-badge { display:inline-flex;align-items:center;font:600 9px var(--b);padding:1px 5px;border-radius:99px;background:rgba(251,191,36,.15);color:#fbbf24;border:1px solid rgba(251,191,36,.28);vertical-align:middle;margin-left:4px; }

/* ── Review de Criação de Evento ─────────────────────────────────────────── */
.ev-em-box { position:relative; }
.ev-review-wrap {
  position:absolute;inset:0;z-index:30;
  background:var(--bgcard2);
  border-radius:20px;
  display:flex;flex-direction:column;
  padding:22px 24px 20px;
  overflow:hidden;
  animation:ev-review-in .28s cubic-bezier(.22,.68,0,1.2) both;
}
.ev-review-wrap.ev-review-out { animation:ev-review-out .2s ease-in both;pointer-events:none; }
@keyframes ev-review-in  { from{transform:translateX(28px);opacity:0} to{transform:translateX(0);opacity:1} }
@keyframes ev-review-out { from{transform:translateX(0);opacity:1} to{transform:translateX(28px);opacity:0} }
.ev-review-hd { display:flex;align-items:center;gap:8px;margin-bottom:18px; }
.ev-review-hd-icon { width:32px;height:32px;border-radius:10px;background:rgba(0,171,169,.12);border:1px solid rgba(0,171,169,.22);display:flex;align-items:center;justify-content:center;color:#2dd4bf;flex-shrink:0; }
.ev-review-hd-title { font:700 14px var(--font);color:var(--text);letter-spacing:-.01em; }
.ev-review-hd-sub { font:400 11px var(--b);color:var(--text3);margin-top:1px; }
.ev-review-fields { display:flex;flex-direction:column;gap:0;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden; }
.ev-review-row { display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.055); }
.ev-review-row:last-child { border-bottom:none; }
.ev-review-icon { width:28px;height:28px;border-radius:7px;background:rgba(0,171,169,.1);border:1px solid rgba(0,171,169,.18);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#2dd4bf;margin-top:1px; }
.ev-review-lbl { font:600 9px var(--b);text-transform:uppercase;letter-spacing:.07em;color:var(--text3);line-height:1;margin-bottom:4px; }
.ev-review-val { font:500 12px var(--b);color:var(--text);line-height:1.4; }
.ev-review-tag { display:inline-flex;align-items:center;gap:4px;font:600 10px var(--b);padding:2px 8px;border-radius:99px; }
.ev-review-tag--on  { background:rgba(34,197,94,.12);color:#4ade80;border:1px solid rgba(34,197,94,.22); }
.ev-review-tag--off { background:rgba(255,255,255,.06);color:var(--text3);border:1px solid rgba(255,255,255,.1); }
.ev-review-actions { display:flex;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08); }
.ev-review-btn-edit {
  flex:1;padding:10px 14px;border:1px solid rgba(255,255,255,.14);background:transparent;
  border-radius:10px;font:600 12px var(--b);color:var(--text2);cursor:pointer;
  transition:background .15s,color .15s;display:flex;align-items:center;justify-content:center;gap:6px;
}
.ev-review-btn-edit:hover { background:rgba(255,255,255,.06);color:var(--text); }
.ev-review-btn-confirm {
  flex:2;padding:10px 14px;border:none;
  background:linear-gradient(135deg,#00aba9,#0284c7);
  border-radius:10px;font:700 12px var(--b);color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:6px;
  transition:opacity .15s,transform .1s;box-shadow:0 4px 14px rgba(0,171,169,.25);
}
.ev-review-btn-confirm:hover { opacity:.9; }
.ev-review-btn-confirm:active { transform:scale(.98); }
.ev-review-btn-confirm:disabled { opacity:.6;cursor:default; }
/* Success overlay */
.ev-review-success {
  position:absolute;inset:0;border-radius:20px;
  background:var(--bgcard2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;
  z-index:40;
  animation:ev-rev-suc-in .3s cubic-bezier(.22,.68,0,1.2) both;
}
@keyframes ev-rev-suc-in { from{opacity:0;transform:scale(.93)} to{opacity:1;transform:scale(1)} }
.ev-review-suc-ring {
  width:60px;height:60px;border-radius:50%;
  background:rgba(34,197,94,.12);border:1.5px solid rgba(34,197,94,.3);
  display:flex;align-items:center;justify-content:center;color:#4ade80;
  margin-bottom:14px;
  animation:ev-rev-suc-ring .4s .05s cubic-bezier(.22,.68,0,1.2) both;
}
@keyframes ev-rev-suc-ring { from{transform:scale(0);opacity:0} to{transform:scale(1);opacity:1} }
.ev-review-suc-title { font:700 16px var(--font);color:var(--text);letter-spacing:-.01em;margin-bottom:5px; }
.ev-review-suc-sub   { font:400 11px var(--b);color:var(--text3); }

/* Sympla OFF (toggle master): esconde qualquer elemento marcado .sympla-only */
body.sympla-off .sympla-only { display: none !important; }
