/* Events visual refresh: public page, shared components, and explicit contrast pairs.
   Loaded after the existing styles so application behavior and layouts are preserved. */
:root {
  --refresh-ink: #1b1035;
  --refresh-violet: #5b2eff;
  --refresh-pink: #ff4d8d;
  --refresh-yellow: #ffcb42;
  --refresh-sky: #8ee3f5;
  --refresh-paper: #f5f1ff;
  --refresh-muted: #55496f;
  --refresh-border: #ded5f3;
  --refresh-shadow: 0 18px 52px rgba(35, 20, 70, .08);
  --refresh-shadow-hover: 0 24px 55px rgba(35, 20, 70, .15);
  --refresh-ease: cubic-bezier(.22, 1, .36, 1);
  color-scheme: light;
}
html { scroll-behavior: smooth; }
body { font-family: var(--events-fonte-corpo); }
::selection { background: #d8caff; color: var(--refresh-ink); }
:focus-visible { scroll-margin: 24px; }

/* Public landing page */
.landing-page {
  color: var(--refresh-ink);
  background: var(--refresh-paper);
  font-family: var(--events-fonte-corpo);
  font-size: 16px;
  line-height: 1.55;
  overflow: clip;
}
.landing-page :is(h1,h2,h3,p) { margin-block: 0; }
.landing-page :is(h1,h2,h3) {
  font-family: var(--events-fonte-titulo);
  font-weight: 800;
  letter-spacing: -.045em;
  line-height: 1.08;
}
.landing-page :is(a,button):focus-visible { outline: 3px solid var(--refresh-violet); outline-offset: 4px; }
.landing-page a { text-decoration: none; }
.landing-intro { background: var(--refresh-yellow); }
.landing-container, .landing-header, .landing-hero {
  width: min(100% - 2 * clamp(20px, 6vw, 88px), 1300px);
  margin-inline: auto;
}
.landing-header { min-height: 96px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.landing-logo { display:inline-flex; align-items:center; color:var(--refresh-ink); font-family:var(--events-fonte-titulo); font-weight:800; font-size:21px; white-space:nowrap; }
.landing-logo-dot { color:var(--refresh-violet); }
.landing-links { display:flex; align-items:center; gap:clamp(15px,2.2vw,35px); font-weight:700; font-size:14px; }
.landing-links .landing-signup-participant { background:var(--events-branco); }
.landing-links > a:not(.landing-pill) { padding-block:10px; color:var(--refresh-ink); white-space:nowrap; }
.landing-links > a:not(.landing-pill):hover { text-decoration: underline; text-underline-offset: 6px; }
.landing-pill { display:inline-flex; align-items:center; justify-content:center; gap:18px; padding:15px 25px; border:2px solid transparent; border-radius:999px; font-weight:800; font-size:14px; line-height:1.2; text-align:center; transition:transform .25s var(--refresh-ease), box-shadow .25s var(--refresh-ease), background-color .25s; white-space:nowrap; }
.landing-pill:hover { transform: translateY(-3px); box-shadow:0 9px 24px rgba(27,16,53,.16); }
.landing-pill-dark { background:var(--refresh-ink); color:var(--events-branco); }
.landing-pill-outline { border-color:var(--refresh-ink); color:var(--refresh-ink); }
.landing-pill-outline:hover { background:#fff6d7; }
.landing-pill-yellow { background:var(--refresh-yellow); color:var(--refresh-ink); }
.landing-links .language-toggle { min-height:auto; padding:13px 18px; border:2px solid var(--refresh-ink); border-radius:999px; background:transparent; color:var(--refresh-ink); font-size:14px; font-weight:800; }
.landing-links .language-toggle:hover { background:#fff6d7; color:var(--refresh-ink); }
.landing-hero { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:clamp(28px,6vw,95px); min-height:650px; padding-block:58px 105px; }
.landing-hero-copy { min-width:0; position:relative; z-index:1; }
.landing-kicker, .landing-section-label { display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:800; letter-spacing:.15em; }
.landing-kicker span { display:block; width:10px; height:10px; border-radius:50%; background:var(--refresh-pink); }
.landing-hero h1 { max-width:760px; font-size:clamp(53px,5.8vw,93px); margin:25px 0 23px; }
.landing-hero h1 > span { color:var(--refresh-violet); }
.landing-hero-copy > p { max-width:525px; font-size:clamp(16px,1.5vw,20px); line-height:1.6; }
.landing-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.landing-hero-note { display:block; margin-top:22px; font-size:13px; font-weight:600; opacity:.8; }
/* Stickers overlap the arch only where it carries no text: the bubble sits on the
   empty dome corner, the note below the caption, the sparkle beside the label. */
.landing-art { position:relative; height:510px; isolation:isolate; }
.landing-art-arch { position:absolute; left:6%; top:6%; width:66%; height:76%; padding:33px; display:flex; flex-direction:column; justify-content:space-between; gap:16px; border-radius:230px 230px 28px 28px; transform:rotate(-6deg); background:var(--refresh-violet); color:var(--events-branco); box-shadow:0 25px 60px rgba(86,39,241,.20); }
.landing-art-top { width:58%; padding-left:12%; font-size:var(--events-rotulo); font-weight:800; line-height:1.4; letter-spacing:.1em; }
.landing-art-sparkle { position:absolute; top:9%; left:62%; font-size:64px; line-height:1; opacity:.5; }
.landing-art-title { max-width:9ch; font-family:var(--events-fonte-titulo); font-weight:800; font-size:clamp(26px,3vw,42px); line-height:1.07; }
.landing-art-bottom { align-self:flex-end; font-size:14px; font-weight:800; white-space:nowrap; }
.landing-art-bubble { position:absolute; top:0; right:0; width:190px; height:190px; padding:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; background:var(--refresh-pink); color:var(--refresh-ink); transform:rotate(9deg); box-shadow:0 20px 30px rgba(40,10,50,.10); }
.landing-art-bubble strong { font-family:var(--events-fonte-titulo); font-size:20px; line-height:1.2; }
.landing-art-bubble span { font-size:var(--events-rotulo); font-weight:700; }
.landing-art-note { position:absolute; bottom:2%; left:0; width:225px; padding:19px 22px; border-radius:22px 24px 55px 22px; background:var(--refresh-sky); transform:rotate(6deg); box-shadow:0 20px 30px rgba(40,10,50,.1); }
.landing-art-note > span { display:block; font-size:var(--events-rotulo); font-weight:800; letter-spacing:.1em; }
.landing-art-note strong { display:block; font-family:var(--events-fonte-titulo); font-size:21px; line-height:1.2; }
.landing-art-star { position:absolute; bottom:10%; right:8%; font-size:58px; line-height:1; color:var(--refresh-ink); }
.landing-features { padding:105px 0 115px; background:var(--refresh-paper); }
.landing-section-label { color:var(--refresh-violet); }
.landing-features-heading { display:flex; justify-content:space-between; align-items:end; gap:50px; margin:18px 0 42px; }
.landing-features-heading h2, .landing-audiences h2 { max-width:840px; font-size:clamp(35px,4.5vw,65px); }
.landing-features-heading h2 em { color:var(--refresh-violet); font-style:normal; }
.landing-features-heading p { max-width:290px; color:var(--refresh-muted); font-size:16px; flex:none; }
.landing-feature-grid { display:grid; grid-template-columns:1.17fr 1fr .92fr; grid-template-rows:repeat(2,260px); gap:18px; }
.landing-feature { position:relative; display:flex; flex-direction:column; justify-content:space-between; min-width:0; padding:28px; border-radius:25px; transition:transform .28s var(--refresh-ease), box-shadow .28s var(--refresh-ease); overflow:hidden; }
.landing-feature:hover { transform:translateY(-7px); box-shadow:var(--refresh-shadow-hover); }
.landing-feature-tall { grid-row:span 2; border-radius:220px 220px 25px 25px; justify-content:flex-end; padding:40px; }
.landing-feature-symbol { position:absolute; right:26px; top:20px; font-size:34px; font-weight:700; opacity:.5; }
.landing-feature-tall .landing-feature-symbol { font-size:130px; top:20%; left:35%; }
.landing-feature-index { font-size:var(--events-rotulo); font-weight:800; letter-spacing:.09em; }
.landing-feature h3 { max-width:420px; margin:12px 0 9px; font-size:clamp(20px,2vw,27px); line-height:1.15; }
.landing-feature p { max-width:350px; font-size:15px; line-height:1.55; }
.landing-feature-purple { background:var(--refresh-violet); color:var(--events-branco); }
.landing-feature-pink { background:var(--refresh-pink); color:var(--refresh-ink); }
.landing-feature-yellow { background:var(--refresh-yellow); color:var(--refresh-ink); }
.landing-feature-ink { background:var(--refresh-ink); color:var(--events-branco); }
.landing-feature-blue { background:var(--refresh-sky); color:var(--refresh-ink); border-radius:25px 25px 90px 25px; }
.landing-feature-wide { grid-column:span 2; }
.landing-audiences { padding:75px 0 120px; background:var(--refresh-paper); }
.landing-audiences h2 { margin:19px 0 40px; }
.landing-audience-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.landing-audience-grid article { padding:24px 16px 0 0; border-top:2px solid var(--refresh-ink); }
.landing-audience-number { display:block; margin-bottom:32px; font-size:13px; font-weight:800; color:var(--refresh-violet); }
.landing-audience-grid h3 { font-size:clamp(20px,2vw,26px); margin-bottom:12px; }
.landing-audience-grid p { max-width:340px; font-size:16px; color:var(--refresh-muted); }
.landing-end { position:relative; padding:98px 0 112px; background:var(--refresh-violet); color:var(--events-branco); border-radius:0 0 36px 36px; overflow:hidden; }
.landing-end .landing-container { position:relative; }
.landing-end .landing-section-label { color:var(--events-branco); }
.landing-end h2 { margin:18px 0 35px; max-width:980px; font-size:clamp(42px,6vw,84px); }
.landing-end-sparkle { position:absolute; right:4%; bottom:10%; font-size:220px; line-height:1; opacity:.13; pointer-events:none; }
.landing-footer { background:var(--refresh-paper); padding:30px 0 38px; }
.landing-footer .landing-container { display:flex; align-items:center; gap:22px; }
.landing-footer p { font-size:13px; color:var(--refresh-muted); }
.landing-footer .landing-container > div { margin-left:auto; display:flex; gap:22px; font-size:14px; font-weight:700; }
.landing-footer a:hover { text-decoration:underline; text-underline-offset:4px; }

/* A common, accessible visual vocabulary for the signed-in application. */
:root:not([data-theme=dark]) .app-frame .topbar { background:var(--events-branco); color:var(--refresh-ink); border-bottom:1px solid var(--refresh-border); }
:root:not([data-theme=dark]) .app-frame .sidebar { background:var(--refresh-ink); color:var(--events-branco); }
:root:not([data-theme=dark]) .app-frame .sidebar .nav-label { color:#c7bde0; }
:root:not([data-theme=dark]) .app-frame .sidebar .nav button { color:#eee8fc; }
:root:not([data-theme=dark]) .app-frame .sidebar .nav button:hover { color:var(--events-branco); background:#352252; }
:root:not([data-theme=dark]) .app-frame .sidebar .nav button.active { color:var(--refresh-ink); background:var(--refresh-yellow); }
:root:not([data-theme=dark]) .app-frame .sidebar-tools :is(.btn,a) { border-color:#695887; color:var(--events-branco); }
:root:not([data-theme=dark]) .app-frame .sidebar-tools :is(.btn,a):hover { border-color:var(--refresh-yellow); color:var(--refresh-ink); background:var(--refresh-yellow); }
:root:not([data-theme=dark]) .app-frame .content { background:var(--refresh-paper); }
.app-frame .topbar { position:sticky; top:0; z-index:30; }
.app-frame .sidebar { border-right:0; }
.app-frame .sidebar .nav button { transition:background-color .2s, color .2s, transform .2s var(--refresh-ease); }
.app-frame .sidebar .nav button:hover { transform:translateX(3px); }
.app-frame .page-head h1 { max-width:960px; line-height:1.14; }
.app-frame .page-head p { margin-top:10px; }
.app-frame .eyebrow { letter-spacing:.12em; }
.app-frame .welcome-panel {
  position:relative;
  overflow:hidden;
  background:var(--refresh-yellow);
  box-shadow:var(--refresh-shadow);
}
.app-frame .welcome-panel::after { content:'✳'; position:absolute; right:10%; top:-30%; color:rgba(91,46,255,.18); font-size:320px; line-height:1; pointer-events:none; }
.app-frame .welcome-panel > * { position:relative; z-index:1; }
.app-frame .grid { gap:18px; }
.app-frame .card,
.app-frame .event-card,
.app-frame .stat,
.app-frame .analytics-panel,
.app-frame .event-share,
.app-frame .finance-metric {
  box-shadow:var(--refresh-shadow);
  transition:transform .28s var(--refresh-ease), box-shadow .28s var(--refresh-ease);
}
.app-frame .event-card:hover, .app-frame .stat-link:hover {
  transform:translateY(-5px);
  box-shadow:var(--refresh-shadow-hover);
  outline:0;
}
:root:not([data-theme=dark]) .app-frame .grid > .stat:first-child { background:var(--events-branco); color:var(--refresh-ink); }
:root:not([data-theme=dark]) .app-frame .grid > .stat:nth-child(4n+2) { background:var(--refresh-violet); color:var(--events-branco); }
:root:not([data-theme=dark]) .app-frame .grid > .stat:nth-child(4n+3) { background:var(--refresh-pink); color:var(--refresh-ink); }
:root:not([data-theme=dark]) .app-frame .grid > .stat:nth-child(4n+4) { background:var(--refresh-sky); color:var(--refresh-ink); }
:root:not([data-theme=dark]) .app-frame .grid > .stat:nth-child(4n+2) :is(.num,.muted,a,span) { color:var(--events-branco); }
:root:not([data-theme=dark]) .app-frame .grid > .stat:nth-child(4n+3) :is(.num,.muted,a,span),
:root:not([data-theme=dark]) .app-frame .grid > .stat:nth-child(4n+4) :is(.num,.muted,a,span) { color:var(--refresh-ink); }
.app-frame .stat .num { font-variant-numeric:tabular-nums; }
.app-frame .card h2, .app-frame .analytics-panel h2 { line-height:1.22; }
.app-frame .event-cover { min-height:var(--events-imagem-card-altura); }
.app-frame .event-card:hover .event-cover-image { transform:scale(1.035); }
.app-frame .event-cover-image { transition:transform .4s var(--refresh-ease); }
.app-frame .btn, .auth-shell .btn, .invite-page .btn, dialog.modal .btn, .business-page .btn {
  transition:transform .2s var(--refresh-ease), box-shadow .2s, background-color .2s, color .2s, border-color .2s;
}
.app-frame .content .btn:hover:not(:disabled), dialog.modal .btn:hover:not(:disabled), .invite-page .btn:hover:not(:disabled), .auth-shell .btn:hover:not(:disabled) {
  transform:translateY(-2px);
  box-shadow:0 8px 17px rgba(35,20,70,.16);
}
.app-frame .table-wrap { border-radius:16px; }
.app-frame .table th { font-weight:800; }
.app-frame .table td { line-height:1.55; }
.app-frame .table tbody tr { transition:background-color .15s; }
.app-frame .event-row-actions .btn { box-shadow:none; }
.app-frame .notice, .app-frame .detail-card, .app-frame .profile-prompt { border-radius:20px; }
.app-frame :is(input,select,textarea), .auth-shell :is(input,select,textarea), .invite-page :is(input,select,textarea) {
  transition:border-color .18s, box-shadow .18s, background-color .18s;
}
.app-frame :is(input,select,textarea):focus-visible, .auth-shell :is(input,select,textarea):focus-visible, .invite-page :is(input,select,textarea):focus-visible {
  box-shadow:0 0 0 4px rgba(91,46,255,.12);
}
.app-frame .badge { font-weight:800; }
.app-frame .topbar .account-dropdown { box-shadow:var(--refresh-shadow-hover); }

/* Registration, login and public event pages: saturated hero + legible white surface. */
.auth-shell:not(:has(#forgotPassword)) .auth-hero { position:relative; overflow:hidden; background:var(--refresh-yellow); }
.auth-shell:not(:has(#forgotPassword)) .auth-hero::after { content:'✳'; position:absolute; top:8%; right:-60px; font-size:240px; color:rgba(91,46,255,.13); pointer-events:none; }
.auth-shell:not(:has(#forgotPassword)) .auth-hero > * { position:relative; z-index:1; }
.auth-shell .auth-card, .invite-ticket { box-shadow:0 20px 70px rgba(27,16,53,.13); }
.auth-shell .auth-card { border:1px solid var(--refresh-border); }
.auth-shell .auth-card > p { line-height:1.55; }
.auth-shell .auth-story h1 { line-height:1.08; }
.auth-shell .auth-side .auth-top .theme-toggle { border-radius:999px; }
.invite-story h1 { max-width:750px; }
.invite-layout { gap:clamp(36px,5vw,90px); }
.invite-ticket { align-self:start; }
.invite-ticket, .invite-page .notice { border-radius:25px; }
.invite-form .field :is(input,select,textarea) { background:var(--events-branco); color:var(--refresh-ink); border-color:#c6b5ee; }
.invite-form .field :is(input,select,textarea)::placeholder { color:#6b6179; opacity:1; }
.invite-form .btn { background:var(--refresh-violet); border-color:var(--refresh-violet); color:var(--events-branco); }
.invite-form .btn:hover:not(:disabled) { background:var(--refresh-ink); border-color:var(--refresh-ink); color:var(--events-branco); }
.invite-ticket h2 { line-height:1.2; }
.invite-page .invite-status { background:var(--refresh-violet); color:var(--events-branco); }
.invite-page .notice { background:var(--refresh-sky); color:var(--refresh-ink); }
.invite-story > .eyebrow { font-size:var(--events-rotulo); }
/* Registration hero: labels at the 12px floor, ink on sol (uva and link blue fail AA there). */
.auth-shell:not(:has(#forgotPassword)) .admission-ticket .eyebrow,
.auth-shell:not(:has(#forgotPassword)) .ticket-stub span { font-size:var(--events-rotulo); }
:root:not([data-theme=dark]) .auth-shell:not(:has(#forgotPassword)) .auth-story .eyebrow { color:var(--tinta); }
:root:not([data-theme=dark]) .auth-shell:not(:has(#forgotPassword)) .auth-foot a { color:var(--tinta); font-weight:var(--events-peso-forte); text-decoration:underline; text-underline-offset:3px; }
.auth-shell:not(:has(#forgotPassword)) .auth-bottom :is(.small, a) { font-size:var(--events-corpo-pequeno); }
:root[data-theme=dark] .auth-shell:not(:has(#forgotPassword)) :is(.auth-top, .auth-bottom) :is(.muted, a, .language-toggle span) { color:var(--events-branco); }

/* Dark mode: each surface sets both its own foreground and background.
   Avoid inheriting a light card's dark-mode white text. */
:root[data-theme=dark] {
  --paper:#150e28;
  --sheet:#291b45;
  --inset:#211637;
  --ink:#f8f4ff;
  --secondary:#d5caec;
  --muted:#d5caec;
  --line:#584973;
  --control:#2b1d45;
  --accent:#cfbaff;
  --on-accent:#201034;
  --refresh-shadow:0 18px 50px rgba(0,0,0,.22);
  --refresh-shadow-hover:0 22px 55px rgba(0,0,0,.32);
  color-scheme:dark;
}
:root[data-theme=dark] .app-frame .topbar { background:#211435; color:var(--events-branco); border-bottom:1px solid #493861; }
:root[data-theme=dark] .app-frame .topbar .brand-wordmark { color:var(--events-branco); }
:root[data-theme=dark] .app-frame .sidebar { background:#160d27; color:var(--events-branco); }
:root[data-theme=dark] .app-frame .sidebar .nav-label { color:#d2c6e8; }
:root[data-theme=dark] .app-frame .sidebar .nav button:hover { background:#3b265a; }
:root[data-theme=dark] .app-frame .sidebar .nav button.active { background:var(--refresh-yellow); color:var(--refresh-ink); }
:root[data-theme=dark] .app-frame .content,
:root[data-theme=dark] .app-frame .layout { background:#150e28; color:#f8f4ff; }
:root[data-theme=dark] .app-frame .page-head :is(h1,p) { color:#f8f4ff; }
:root[data-theme=dark] .app-frame .grid > .stat:nth-child(4n+2) { background:var(--refresh-violet); color:var(--events-branco); }
:root[data-theme=dark] .app-frame .grid > .stat:nth-child(4n+2) :is(.num,.muted,a,span) { color:var(--events-branco); }
:root[data-theme=dark] .app-frame .grid > .stat:nth-child(4n+3) { background:var(--refresh-pink); color:var(--refresh-ink); }
:root[data-theme=dark] .app-frame .grid > .stat:nth-child(4n+3) :is(.num,.muted,a,span) { color:var(--refresh-ink); }
:root[data-theme=dark] .app-frame .grid > .stat:nth-child(4n+4) { background:var(--refresh-sky); color:var(--refresh-ink); }
:root[data-theme=dark] .app-frame .grid > .stat:nth-child(4n+4) :is(.num,.muted,a,span) { color:var(--refresh-ink); }
/* Regular light cards keep dark text, including sublabels and action buttons. */
:root[data-theme=dark] .app-frame .card:not(.reception-form):not(:has(.analytics-page)) { color:var(--refresh-ink); }
:root[data-theme=dark] .app-frame .card:not(.reception-form):not(:has(.analytics-page)) :is(h2,h3,p,.muted,.small,label) { color:var(--refresh-ink); }
/* Analytics and event detail intentionally have dark feature surfaces instead. */
:root[data-theme=dark] .app-frame:has(.event-page-head) .content .card:not(.reception-form):not(:has(#groupSummary)),
:root[data-theme=dark] .app-frame:has(.analytics-page) .analytics-panel { background:#302048; color:var(--events-branco); }
:root[data-theme=dark] .app-frame:has(.event-page-head) .content .card:not(.reception-form):not(:has(#groupSummary)) :is(h2,h3,p,.muted,.small,label),
:root[data-theme=dark] .app-frame:has(.analytics-page) .analytics-panel :is(h2,h3,p,.muted,.small,label) { color:var(--events-branco); }
:root[data-theme=dark] .app-frame:has(.event-page-head) .content .card.reception-form { background:var(--events-superficie-escura); color:var(--events-branco); }
:root[data-theme=dark] .app-frame:has(.event-page-head) .content .card.reception-form :is(h2,p,label,.muted,.eyebrow) { color:var(--events-branco); }
:root[data-theme=dark] .app-frame:has(.event-page-head) .content .card:has(#groupSummary) { background:var(--refresh-sky); color:var(--refresh-ink); }
:root[data-theme=dark] .app-frame:has(.event-page-head) .content .card:has(#groupSummary) :is(h2,p,label,.muted,.eyebrow) { color:var(--refresh-ink); }
:root[data-theme=dark] .app-frame:has(.event-page-head) .detail-card { background:#201333; color:var(--events-branco); }
:root[data-theme=dark] .app-frame:has(.event-page-head) .detail-card :is(span,strong) { color:var(--events-branco); }
:root[data-theme=dark] .app-frame .card :is(input,select,textarea),
:root[data-theme=dark] .app-frame .card .field :is(input,select,textarea),
:root[data-theme=dark] dialog.modal :is(input,select,textarea) { background:var(--events-branco); border-color:#bfaee5; color:var(--refresh-ink); color-scheme:light; }
:root[data-theme=dark] .app-frame .card :is(input,select,textarea)::placeholder,
:root[data-theme=dark] dialog.modal :is(input,select,textarea)::placeholder { color:#5f5375; }
:root[data-theme=dark] .app-frame:has(.event-page-head) .content .btn.ghost,
:root[data-theme=dark] .app-frame:has(.analytics-page) .content .btn.ghost { color:var(--events-branco); border-color:#ddd0fb; }
:root[data-theme=dark] .app-frame:has(.event-page-head) .card .btn.ghost,
:root[data-theme=dark] .app-frame:has(.analytics-page) .analytics-panel .btn.ghost { color:var(--events-branco); border-color:#ddd0fb; }
:root[data-theme=dark] .app-frame .table td { color:inherit; }
:root[data-theme=dark] .app-frame .table th { background:#eae3fa; color:var(--refresh-ink); }
:root[data-theme=dark] .app-frame .card .table td { color:var(--refresh-ink); }
:root[data-theme=dark] .app-frame:has(.event-page-head) .content .card:not(.reception-form):not(:has(#groupSummary)) .table td,
:root[data-theme=dark] .app-frame:has(.analytics-page) .analytics-panel .table td { color:var(--events-branco); }
:root[data-theme=dark] .app-frame:has(.event-page-head) .content .card:not(.reception-form):not(:has(#groupSummary)) .table th,
:root[data-theme=dark] .app-frame:has(.analytics-page) .analytics-panel .table th { background:#211333; color:var(--events-branco); }
/* Public invitation: accessible entry actions and a genuinely dark alternative. */
.invite-page .invite-entry-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 30px;
}
.invite-page .invite-entry-actions .btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding-inline: 16px;
  text-decoration: none;
  font-weight: 800;
  white-space: nowrap;
}
.invite-page .invite-entry-actions .invite-action-primary {
  background: var(--refresh-violet);
  border-color: var(--refresh-violet);
  color: var(--events-branco);
}
.invite-page .invite-entry-actions .invite-action-primary:hover {
  background: var(--refresh-ink);
  border-color: var(--refresh-ink);
  color: var(--events-branco);
}
.invite-page .invite-entry-actions .invite-action-secondary {
  background: transparent;
  border-color: var(--refresh-violet);
  color: var(--refresh-ink);
}
.invite-page .invite-entry-actions .invite-action-secondary:hover {
  background: #eee8ff;
  border-color: var(--refresh-violet);
  color: var(--refresh-ink);
}
.invite-page .invite-entry-hint {
  font-size: 13px;
  line-height: 1.5;
  margin: 18px 0 0;
  color: var(--refresh-muted);
}
.invite-page .invite-ticket { border: 1px solid rgba(27, 16, 53, .08); }

:root[data-theme=dark] .invite-page {
  background: #160c2b;
  color: #f7f3ff;
  color-scheme: dark;
}
:root[data-theme=dark] .invite-page .invite-topbar { background: var(--tinta); }
:root[data-theme=dark] .invite-page .invite-layout {
  background: radial-gradient(ellipse at 13% 25%, #39216d 0%, var(--tinta) 54%, #160c2b 100%);
}
:root[data-theme=dark] .invite-page .invite-brand,
:root[data-theme=dark] .invite-page .invite-story h1,
:root[data-theme=dark] .invite-page .invite-description,
:root[data-theme=dark] .invite-page .invite-details :is(span,strong),
:root[data-theme=dark] .invite-page .invite-details a,
:root[data-theme=dark] .invite-page .invite-rating :is(span,strong,small) { color: #f7f3ff; }
:root[data-theme=dark] .invite-page .invite-story > .eyebrow { background: var(--refresh-yellow); color: var(--tinta); }
:root[data-theme=dark] .invite-page .theme-toggle {
  border-color: #ddd1ff;
  color: var(--events-branco);
  background: transparent;
}
:root[data-theme=dark] .invite-page .theme-toggle:hover { background: var(--refresh-yellow); color: var(--tinta); border-color: var(--refresh-yellow); }
:root[data-theme=dark] .invite-page .invite-ticket,
:root[data-theme=dark] .invite-page .invite-error .card {
  background: var(--events-superficie-escura);
  color: #f7f3ff;
  border: 1px solid #645286;
  box-shadow: 0 25px 65px rgba(8, 4, 22, .35);
}
:root[data-theme=dark] .invite-page .invite-ticket-head .eyebrow { color: #e6dbff; }
:root[data-theme=dark] .invite-page .invite-ticket :is(h2,p,label,.small,.privacy-inline),
:root[data-theme=dark] .invite-page .invite-error .card :is(h1,p) { color: #f7f3ff; }
:root[data-theme=dark] .invite-page .invite-entry-hint { color: #ddd1f5; }
:root[data-theme=dark] .invite-page .invite-status { background: var(--ceu); color: var(--tinta); }
:root[data-theme=dark] .invite-page .btn,
:root[data-theme=dark] .invite-page .invite-entry-actions .invite-action-primary {
  background: var(--refresh-yellow);
  border-color: var(--refresh-yellow);
  color: var(--tinta);
}
:root[data-theme=dark] .invite-page .btn:hover:not(:disabled),
:root[data-theme=dark] .invite-page .invite-entry-actions .invite-action-primary:hover {
  background: var(--events-branco);
  border-color: var(--events-branco);
  color: var(--tinta);
}
:root[data-theme=dark] .invite-page .invite-entry-actions .invite-action-secondary {
  background: transparent;
  border-color: #bba7ec;
  color: var(--events-branco);
}
:root[data-theme=dark] .invite-page .invite-entry-actions .invite-action-secondary:hover {
  background: #453261;
  border-color: var(--events-branco);
  color: var(--events-branco);
}
:root[data-theme=dark] .invite-page .invite-ticket a:not(.btn) { color: #f0dbff; }
:root[data-theme=dark] .invite-page .invite-form :is(input,select,textarea) {
  background: var(--tinta);
  color: var(--events-branco);
  border-color: #bba7ec;
  color-scheme: dark;
}
:root[data-theme=dark] .invite-page .invite-form :is(input,select,textarea)::placeholder { color: #ddd1f5; }
:root[data-theme=dark] .invite-page .notice { background: var(--ceu); color: var(--tinta); }
:root[data-theme=dark] .invite-page .notice.error { background: var(--events-vermelho); color: var(--tinta); }
:root[data-theme=dark] .invite-page .notice.success { background: var(--events-verde); color: var(--tinta); }
:root[data-theme=dark] .invite-page .invite-ticket .notice a:not(.btn),
:root[data-theme=dark] .invite-page .notice a { color: var(--tinta); }
:root[data-theme=dark] .invite-page .invite-footer { background: #160c2b; color: #e6dbff; }
:root[data-theme=dark] .invite-page .invite-footer a { color: var(--events-branco); }
:root[data-theme=dark] .invite-page :is(a,button,input,select,textarea):focus-visible { outline-color: var(--refresh-yellow); }

@media (max-width: 520px) {
  .invite-page .invite-entry-actions { grid-template-columns: minmax(0,1fr); }
}

@media(max-width:1050px) {
  .landing-header { flex-wrap:wrap; padding-block:16px; }
  .landing-links { flex-wrap:wrap; justify-content:flex-end; }
  .landing-hero { min-height:570px; gap:22px; }
  .landing-art { height:450px; }
  .landing-art-arch { height:72%; }
  .landing-art-top { width:58%; padding-left:6%; }
  .landing-art-sparkle { display:none; }
  .landing-art-bubble { width:160px; height:160px; padding:18px; }
  .landing-art-bubble strong { font-size:17px; }
  .landing-art-note { bottom:-4%; width:210px; }
  .landing-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; }
  .landing-feature { min-height:245px; }
  .landing-feature-tall { grid-row:span 2; min-height:510px; }
}
@media(max-width:760px) {
  .landing-header { min-height:78px; flex-wrap:wrap; row-gap:0; }
  .landing-links { gap:14px; }
  .landing-links > a[href="#para-quem"] { display:none; }
  .landing-links .landing-pill { padding:11px 14px; }
  .landing-hero { grid-template-columns:minmax(0,1fr); padding-block:60px 65px; }
  .landing-hero h1 { max-width:700px; font-size:clamp(46px,9vw,75px); }
  .landing-art { width:min(100%,480px); height:430px; margin-inline:auto; }
  .landing-features { padding:75px 0; }
  .landing-features-heading { display:block; }
  .landing-features-heading p { max-width:520px; margin-top:18px; }
  .landing-audiences { padding:50px 0 80px; }
  .landing-audience-grid { grid-template-columns:minmax(0,1fr); gap:27px; }
  .landing-audience-grid article { padding-top:15px; }
  .landing-audience-number { margin-bottom:10px; }
  .landing-audience-grid p { max-width:540px; }
  .landing-footer .landing-container { flex-wrap:wrap; }
}
@media(max-width:520px) {
  .landing-header { padding-block:16px; }
  .landing-logo { font-size:17px; }
  .landing-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:10px; font-size:13px; }
  .landing-links > a[href="#recursos"] { display:none; }
  .landing-links > a[href="/login"] { grid-column:1 / -1; justify-self:end; }
  .landing-links:has(.language-toggle) > a[href="/login"] { grid-row:1; grid-column:2; }
  .landing-links .language-toggle { grid-row:1; grid-column:1; justify-self:start; }
  .landing-links .landing-pill { min-height:var(--events-altura-toque); padding:10px 12px; white-space:normal; }
  .landing-hero { padding-block:38px 50px; }
  .landing-hero h1 { font-size:clamp(39px,10vw,56px); }
  .landing-art { height:400px; }
  .landing-art-arch { left:4%; width:70%; height:70%; padding:24px; gap:10px; }
  .landing-art-top { width:62%; }
  .landing-art-sparkle { display:block; top:12%; left:58%; font-size:44px; }
  .landing-art-title { font-size:26px; }
  .landing-art-bubble { width:132px; height:132px; padding:14px; }
  .landing-art-bubble strong { font-size:14px; }
  .landing-art-note { width:180px; padding:14px; }
  .landing-art-note strong { font-size:17px; }
  .landing-features-heading h2, .landing-audiences h2 { font-size:34px; }
  .landing-feature-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
  .landing-feature, .landing-feature-tall { grid-row:auto; min-height:245px; border-radius:24px; padding:25px; }
  .landing-feature-wide { grid-column:auto; }
  .landing-feature-tall { min-height:320px; border-radius:150px 150px 24px 24px; padding:30px; }
  .landing-feature-tall .landing-feature-symbol { font-size:70px; }
  .landing-end { padding-block:76px 85px; }
  .landing-end h2 { font-size:clamp(36px,9.5vw,50px); }
  .landing-end-sparkle { font-size:120px; }
  .landing-footer p { order:3; flex-basis:100%; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .landing-page *, .app-frame .event-card, .app-frame .event-cover-image,
  .app-frame .btn, .app-frame .sidebar .nav button, .auth-shell .btn, .invite-page .btn { transition:none !important; animation:none !important; }
  .landing-feature:hover, .landing-pill:hover, .app-frame .event-card:hover,
  .app-frame .stat-link:hover, .app-frame .sidebar .nav button:hover { transform:none; }
}

/* Invitation funnel: one public action, then explicit account choice. */
.invite-page .invite-entry-actions { grid-template-columns: minmax(0, 1fr); }
.invite-page .invite-entry-actions .invite-action-primary,
.invite-page .invite-start-button { width: 100%; min-height: 54px; }
.invite-page .invite-start-button { margin-top: 16px; background: var(--refresh-violet); border-color: var(--refresh-violet); color: var(--events-branco); font-weight: 800; }
.invite-page .invite-start-button:hover:not(:disabled) { background: var(--refresh-ink); color:var(--events-branco); }
:root[data-theme=dark] .invite-page .invite-start-button { background: var(--refresh-yellow); border-color: var(--refresh-yellow); color: var(--refresh-ink); }
.invite-page .invite-calendar-button { width: 100%; margin-top: 12px; }
:root[data-theme=dark] .invite-page .invite-start-button:hover:not(:disabled) { background: var(--events-branco); border-color:var(--events-branco); color:var(--refresh-ink); }
.auth-shell .invite-auth-choices { display: grid; gap: 14px; margin-top: 26px; }
.auth-shell .invite-auth-choices .btn { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 55px; padding: 13px 20px; border-radius: 999px; text-decoration: none; font-weight: 800; text-align: center; }
.auth-shell .invite-auth-choices .invite-auth-login { background: var(--refresh-violet); border: 2px solid var(--refresh-violet); color: var(--events-branco); }
.auth-shell .invite-auth-choices .invite-auth-login:hover { background: var(--refresh-ink); border-color: var(--refresh-ink); color: var(--events-branco); }
.auth-shell .invite-auth-choices .invite-auth-register { background: transparent; border: 2px solid var(--refresh-violet); color: var(--refresh-ink); }
.auth-shell .invite-auth-choices .invite-auth-register:hover { background: #eee8ff; color:var(--refresh-ink); }
.auth-shell .invite-auth-choices p { text-align:center; line-height:1.55; margin:10px 0 0; color:var(--refresh-muted); }
:root[data-theme=dark] .auth-shell .invite-auth-choices .invite-auth-login { background: var(--refresh-yellow); border-color:var(--refresh-yellow); color:var(--refresh-ink); }
:root[data-theme=dark] .auth-shell .invite-auth-choices .invite-auth-login:hover { background: #ffe18a; border-color:#ffe18a; color:var(--refresh-ink); }
:root[data-theme=dark] .auth-shell .invite-auth-choices .invite-auth-register { background: transparent; border-color:#ddd1ff; color:var(--refresh-ink); }
:root[data-theme=dark] .auth-shell .invite-auth-choices .invite-auth-register:hover { background:#eee8ff; color:var(--refresh-ink); }
