/*
 * NIVER DIGITAL — PREMIUM DESIGN SYSTEM
 * Arquivo único de estilos da aplicação.
 * Sem Tailwind, Font Awesome, Google Fonts ou qualquer CSS externo.
 * Compatível com desktop, tablet e celular.
 */

:root {
  --nd-primary: #e94683;
  --nd-primary-strong: #c92f6b;
  --nd-primary-soft: #fff0f6;
  --nd-secondary: #f4bf54;
  --nd-ink: #202331;
  --nd-ink-soft: #596071;
  --nd-muted: #8e95a5;
  --nd-page: #f6f7fb;
  --nd-surface: #ffffff;
  --nd-surface-soft: #fbfbfd;
  --nd-line: #e9ebf1;
  --nd-success: #17a673;
  --nd-warning: #d89120;
  --nd-danger: #d9485f;
  --nd-info: #3979d5;
  --nd-dark: #191b29;
  --nd-radius-sm: 10px;
  --nd-radius-md: 16px;
  --nd-radius-lg: 22px;
  --nd-radius-xl: 30px;
  --nd-shell: 480px;
  --nd-nav: 78px;
  --nd-shadow-xs: 0 1px 2px rgba(31, 36, 52, .04);
  --nd-shadow-sm: 0 5px 16px rgba(31, 36, 52, .06);
  --nd-shadow-md: 0 12px 34px rgba(31, 36, 52, .09);
  --nd-shadow-lg: 0 22px 58px rgba(31, 36, 52, .13);
  --nd-focus: 0 0 0 4px rgba(233, 70, 131, .15);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  min-height: 100%;
  background: var(--nd-page);
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  color: var(--nd-ink);
  background:
    radial-gradient(circle at 0 0, rgba(233, 70, 131, .045), transparent 32rem),
    var(--nd-page);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overscroll-behavior-y: none;
}

body,
button,
input,
select,
textarea { font-family: inherit; }

button,
input,
select,
textarea { font-size: inherit; }

button { border: 0; }

a { color: inherit; text-decoration: none; }

a,
button,
input,
select,
textarea { -webkit-tap-highlight-color: transparent; }

img { display: block; max-width: 100%; }

::selection { color: #fff; background: var(--nd-primary); }

:focus-visible { outline: none; box-shadow: var(--nd-focus); }

/* Shell mobile-first */
.niv_app-shell {
  position: relative;
  width: 100%;
  max-width: var(--nd-shell);
  min-height: 85vh;
  max-height: 92vh;
  margin: 0 auto;
  overflow: hidden;
  background: var(--nd-page);
  box-shadow: 0 0 70px rgba(30, 35, 50, .08);
}

.niv_status-bar-fake {
  height: env(safe-area-inset-top, 0px);
  min-height: 0;
}

.niv_app-shell.pb-20 { padding-bottom: calc(var(--nd-nav) + 1.5rem); }

/* Header */
.niv_app-shell > header,
.niv_app-shell header {
  min-height: 64px;
  color: var(--nd-ink);
  border-bottom: 1px solid rgba(233, 235, 241, .78);
  background: rgba(246, 247, 251, .9);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.niv_app-shell > header a,
.niv_app-shell header a { transition: opacity .2s ease, transform .2s ease; }
.niv_app-shell > header a:hover,
.niv_app-shell header a:hover { opacity: .82; }

/* Navegação de aplicativo */
.niv_bottom-nav {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: space-around;
  min-height: var(--nd-nav);
  padding: 9px 7px calc(9px + env(safe-area-inset-bottom, 0px));
  overflow: visible;
  background: rgba(255, 255, 255, .96);
  border-top: 1px solid rgba(233, 235, 241, .9);
  box-shadow: 0 -10px 28px rgba(31, 36, 52, .07);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}

.niv_bottom-nav.app-shell {
  width: 100%;
  max-width: var(--nd-shell);
  min-height: 0;
  height: var(--nd-nav);
  margin: 0;
  overflow: visible;
  background: rgba(255, 255, 255, .96);
}

.niv_bottom-nav.fixed {
  position: fixed;
  right: auto;
  left: 50%;
  width: min(100%, var(--nd-shell));
  transform: translateX(-50%);
}

.niv_bottom-nav a {
  position: relative;
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 50px;
  gap: 4px;
  padding: 5px 3px;
  color: #9ca1af;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.15;
  text-align: center;
  border-radius: var(--nd-radius-md);
  transition: color .2s ease, background .2s ease, transform .2s ease;
}

.niv_bottom-nav a:hover,
.niv_bottom-nav a:focus-visible { color: var(--nd-primary); background: var(--nd-primary-soft); }
.niv_bottom-nav a.active { color: var(--nd-primary); }
.niv_bottom-nav a.active::before {
  position: absolute;
  top: 1px;
  width: 22px;
  height: 3px;
  content: "";
  border-radius: 999px;
  background: var(--nd-primary);
}
.niv_bottom-nav a i { margin-bottom: 1px; font-size: 18px; line-height: 1; }
.niv_bottom-nav > a.relative { z-index: 3; overflow: visible; }

/* Cartões */
.niv_nd-card {
  position: relative;
  background: var(--nd-surface);
  border: 1px solid rgba(233, 235, 241, .82);
  border-radius: var(--nd-radius-lg);
  box-shadow: var(--nd-shadow-sm);
}

.niv_nd-card:hover { border-color: rgba(233, 70, 131, .14); }

/* Botões */
.niv_nd-btn-primary,
.niv_nd-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding-right: 18px;
  padding-left: 18px;
  cursor: pointer;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  border-radius: var(--nd-radius-md);
  transition: transform .16s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}

.niv_nd-btn-primary {
  color: #fff;
  background: linear-gradient(135deg, var(--nd-primary), #f878a7);
  box-shadow: 0 9px 22px rgba(233, 70, 131, .28);
}

.niv_nd-btn-primary:hover { box-shadow: 0 13px 28px rgba(233, 70, 131, .36); transform: translateY(-1px); }
.niv_nd-btn-primary:active,
.niv_nd-btn-secondary:active { transform: translateY(1px) scale(.985); }

.niv_nd-btn-secondary {
  color: var(--nd-primary);
  background: var(--nd-surface);
  border: 1px solid rgba(233, 70, 131, .4);
}

.niv_nd-btn-secondary:hover { background: var(--nd-primary-soft); border-color: var(--nd-primary); }

/* Campos */
.niv_nd-input {
  display: block;
  width: 100%;
  min-height: 46px;
  padding: 12px 14px;
  color: var(--nd-ink);
  background: var(--nd-surface);
  border: 1px solid var(--nd-line);
  border-radius: var(--nd-radius-md);
  outline: none;
  box-shadow: var(--nd-shadow-xs);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.niv_nd-input:hover { border-color: #d6dae4; }
.niv_nd-input:focus { border-color: var(--nd-primary); box-shadow: var(--nd-focus); }
.niv_nd-input::placeholder { color: #a8adba; }
textarea.nd-input { min-height: 96px; resize: vertical; }
input[type="file"].niv_nd-input { padding: 9px 12px; }
input[type="color"].niv_nd-input { min-height: 50px; padding: 5px; cursor: pointer; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--nd-primary); }

/* Hero e temas */
.niv_gradient-hero {
  color: #fff;
  background: linear-gradient(140deg, #d92d70 0%, var(--nd-primary) 44%, #f6c45a 150%);
}

.niv_confetti-bg {
  background-color: var(--nd-primary);
  background-image:
    radial-gradient(circle at 12% 20%, rgba(255,255,255,.36) 0 2px, transparent 3px),
    radial-gradient(circle at 84% 28%, rgba(255,255,255,.28) 0 2px, transparent 3px),
    radial-gradient(circle at 64% 82%, rgba(255,255,255,.24) 0 1px, transparent 2px),
    linear-gradient(140deg, #d92d70 0%, var(--nd-primary) 44%, #f6c45a 150%);
  background-size: 56px 56px, 74px 74px, 42px 42px, auto;
  background-position: 0 0, 0 0, 0 0, center;
}

/* Abas */
.niv_tab-content { display: block; width: 100%; min-width: 0; }
.niv_tab-content.hidden, .niv_hidden { display: none !important; }
.niv_tab-btn { flex: 0 0 auto; cursor: pointer; transition: background .2s ease, color .2s ease, box-shadow .2s ease; }

/* Badges e estados */
.niv_badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.15;
}
.niv_badge-green { color: #08794e; background: #e0f8ed; }
.niv_badge-yellow { color: #986010; background: #fff4d5; }
.niv_badge-red { color: #ae3044; background: #ffe6eb; }
.niv_badge-blue { color: #245fae; background: #e5f0ff; }
.niv_badge-gray { color: #626a79; background: #eef0f4; }

.niv_progress-track { height: 8px; overflow: hidden; background: #edf0f4; border-radius: 999px; }
.niv_progress-fill { height: 100%; background: linear-gradient(90deg, var(--nd-primary), var(--nd-secondary)); border-radius: inherit; transition: width .5s ease; }

/* Admin */
.niv_admin-sidebar {
  width: 250px;
  min-height: 100vh;
  color: #e9ebf3;
  background: linear-gradient(180deg, #1b1e2d, #151722);
  border-right: 1px solid rgba(255,255,255,.06);
}
.niv_admin-sidebar a {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 3px 12px;
  padding: 12px 16px;
  color: #b9bfce;
  font-size: 14px;
  border-radius: var(--nd-radius-md);
  transition: color .2s ease, background .2s ease, transform .2s ease;
}
.niv_admin-sidebar a:hover { color: #fff; background: rgba(255,255,255,.08); transform: translateX(2px); }
.niv_admin-sidebar a.active { color: #fff; background: linear-gradient(135deg, var(--nd-primary), #c9366f); box-shadow: 0 8px 18px rgba(233,70,131,.18); }

/* Modal */
.niv_nd-modal-overlay {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
  background: rgba(17, 19, 28, .56);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}
.niv_nd-modal-overlay.hidden { display: none !important; }
.niv_nd-modal-box {
  width: 100%;
  max-width: var(--nd-shell);
  max-height: 88vh;
  overflow-y: auto;
  background: var(--nd-surface);
  border: 1px solid rgba(255,255,255,.75);
  border-radius: var(--nd-radius-xl) var(--nd-radius-xl) 0 0;
  box-shadow: var(--nd-shadow-lg);
  animation: nd-slide-up .28s ease both;
}

/* Dropdown genérico (topbar, ações de tabela, etc.) */
.niv_nd-dropdown { position: relative; display: inline-block; }
.niv_nd-dropdown-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 200px;
  background: var(--nd-surface);
  border: 1px solid var(--nd-line);
  border-radius: var(--nd-radius-md);
  box-shadow: var(--nd-shadow-lg);
  padding: 8px;
  z-index: 200;
  animation: nd-dropdown-in .16s ease both;
}
.niv_nd-dropdown-menu.niv_nd-dropdown-left { right: auto; left: 0; }
.niv_nd-dropdown-menu a,
.niv_nd-dropdown-menu button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border-radius: var(--nd-radius-sm);
  font-size: 14px;
  color: var(--nd-ink-soft);
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  text-decoration: none;
}
.niv_nd-dropdown-menu a:hover,
.niv_nd-dropdown-menu button:hover { background: var(--nd-primary-soft); color: var(--nd-primary-strong); }
.niv_nd-dropdown-menu .niv_nd-dropdown-divider { height: 1px; background: var(--nd-line); margin: 6px 4px; }
.niv_nd-dropdown-menu .niv_nd-dropdown-danger { color: var(--nd-danger); }
.niv_nd-dropdown-menu .niv_nd-dropdown-danger:hover { background: #fdecee; color: var(--nd-danger); }
@keyframes nd-dropdown-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }

/* Elementos utilitários usados pelo HTML existente */
.niv_block { display: block; }
.niv_inline { display: inline; }
.niv_inline-block { display: inline-block; }
.niv_flex { display: flex; }
.niv_grid { display: grid; }
.niv_hidden { display: none !important; }
.niv_relative { position: relative; }
.niv_absolute { position: absolute; }
.niv_sticky { position: sticky; }
.niv_fixed { position: fixed; }
.niv_top-0 { top: 0; }
.niv_top-3 { top: .75rem; }
.niv_top-4 { top: 1rem; }
.niv_right-0 { right: 0; }
.niv_right-3 { right: .75rem; }
.niv_right-4 { right: 1rem; }
.niv_bottom-0 { bottom: 0; }
.niv_bottom-20 { bottom: 5rem; }
.niv_left-0 { left: 0; }
.niv_inset-0 { inset: 0; }
.niv_z-10 { z-index: 10; }
.niv_z-30 { z-index: 30; }
.niv_z-40 { z-index: 40; }
.niv_mx-auto { margin-inline: auto; }
.niv_-mt-8 { margin-top: -2rem; }
.niv_-mt-6 { margin-top: -1.5rem; }
.niv_mt-0\\\.5 { margin-top: .125rem; }
.niv_mt-1 { margin-top: .25rem; }
.niv_mt-1\\\.5 { margin-top: .375rem; }
.niv_mt-2 { margin-top: .5rem; }
.niv_mt-3 { margin-top: .75rem; }
.niv_mt-4 { margin-top: 1rem; }
.niv_mt-5 { margin-top: 1.25rem; }
.niv_mt-6 { margin-top: 1.5rem; }
.niv_mt-8 { margin-top: 2rem; }
.niv_mb-1 { margin-bottom: .25rem; }
.niv_mb-2 { margin-bottom: .5rem; }
.niv_mb-3 { margin-bottom: .75rem; }
.niv_mb-4 { margin-bottom: 1rem; }
.niv_mb-5 { margin-bottom: 1.25rem; }
.niv_mb-6 { margin-bottom: 1.5rem; }
.niv_mb-8 { margin-bottom: 2rem; }
.niv_mb-10 { margin-bottom: 2.5rem; }
.niv_ml-2 { margin-left: .5rem; }
.niv_mr-1 { margin-right: .25rem; }
.niv_my-1 { margin-block: .25rem; }
.niv_my-3 { margin-block: .75rem; }
.niv_my-6 { margin-block: 1.5rem; }
.niv_flex-1 { flex: 1 1 0%; }
.niv_flex-col { flex-direction: column; }
.niv_flex-wrap { flex-wrap: wrap; }
.niv_items-center { align-items: center; }
.niv_items-start { align-items: flex-start; }
.niv_justify-center { justify-content: center; }
.niv_justify-between { justify-content: space-between; }
.niv_shrink-0 { flex-shrink: 0; }
.niv_gap-1 { gap: .25rem; }
.niv_gap-2 { gap: .5rem; }
.niv_gap-3 { gap: .75rem; }
.niv_gap-4 { gap: 1rem; }
.niv_gap-5 { gap: 1.25rem; }
.niv_gap-6 { gap: 1.5rem; }
.niv_grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.niv_grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.niv_grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.niv_w-full { width: 100%; }
.niv_w-4 { width: 1rem; }
.niv_w-5 { width: 1.25rem; }
.niv_w-9 { width: 2.25rem; }
.niv_w-10 { width: 2.5rem; }
.niv_w-11 { width: 2.75rem; }
.niv_w-12 { width: 3rem; }
.niv_w-14 { width: 3.5rem; }
.niv_w-16 { width: 4rem; }
.niv_w-20 { width: 5rem; }
.niv_w-48 { width: 12rem; }
.niv_w-52 { width: 13rem; }
.niv_w-56 { width: 14rem; }
.niv_w-64 { width: 16rem; }
.niv_h-4 { height: 1rem; }
.niv_h-6 { height: 1.5rem; }
.niv_h-7 { height: 1.75rem; }
.niv_h-8 { height: 2rem; }
.niv_pl-1 { padding-left: .25rem; }
.niv_pr-3 { padding-right: .75rem; }
.niv_w-8 { width: 2rem; }
.niv_max-w-full { max-width: 100%; }
.niv_max-h-full { max-height: 100%; }
.niv_text-indigo-500 { color: #6366f1; }
.niv_items-end { align-items: flex-end; }
.niv_h-9 { height: 2.25rem; }
.niv_h-10 { height: 2.5rem; }
.niv_h-11 { height: 2.75rem; }
.niv_h-12 { height: 3rem; }
.niv_h-14 { height: 3.5rem; }
.niv_h-16 { height: 4rem; }
.niv_h-20 { height: 5rem; }
.niv_h-24 { height: 6rem; }
.niv_h-28 { height: 7rem; }
.niv_h-40 { height: 10rem; }
.niv_h-48 { height: 12rem; }
.niv_h-52 { height: 13rem; }
.niv_h-56 { height: 14rem; }
.niv_h-full { height: 100%; }
.niv_h-72 { height: 18rem; }
.niv_min-w-0 { min-width: 0; }
.niv_min-h-screen { min-height: 100vh; }
.niv_max-w-sm { max-width: 24rem; }
.niv_max-w-7xl { max-width: 80rem; }
.niv_max-h-96 { max-height: 24rem; }
.niv_min-w-\\\[700px\\\] { min-width: 700px; }
.niv_p-3 { padding: .75rem; }
.niv_p-4 { padding: 1rem; }
.niv_p-5 { padding: 1.25rem; }
.niv_p-6 { padding: 1.5rem; }
.niv_p-7 { padding: 1.75rem; }
.niv_p-8 { padding: 2rem; }
.niv_p-10 { padding: 2.5rem; }
.niv_px-1 { padding-inline: .25rem; }
.niv_px-2 { padding-inline: .5rem; }
.niv_px-3 { padding-inline: .75rem; }
.niv_px-4 { padding-inline: 1rem; }
.niv_px-5 { padding-inline: 1.25rem; }
.niv_px-6 { padding-inline: 1.5rem; }
.niv_px-8 { padding-inline: 2rem; }
.niv_pt-1 { padding-top: .25rem; }
.niv_pt-2 { padding-top: .5rem; }
.niv_pt-4 { padding-top: 1rem; }
.niv_pt-14 { padding-top: 3.5rem; }
.niv_pt-16 { padding-top: 4rem; }
.niv_py-1 { padding-block: .25rem; }
.niv_py-1\\\.5 { padding-block: .375rem; }
.niv_py-2 { padding-block: .5rem; }
.niv_py-2\\\.5 { padding-block: .625rem; }
.niv_py-3 { padding-block: .75rem; }
.niv_py-3\\\.5 { padding-block: .875rem; }
.niv_py-4 { padding-block: 1rem; }
.niv_py-6 { padding-block: 1.5rem; }
.niv_py-8 { padding-block: 2rem; }
.niv_py-10 { padding-block: 2.5rem; }
.niv_pb-1 { padding-bottom: .25rem; }
.niv_pb-2 { padding-bottom: .5rem; }
.niv_pb-8 { padding-bottom: 2rem; }
.niv_pb-10 { padding-bottom: 2.5rem; }
.niv_pb-12 { padding-bottom: 3rem; }
.niv_pb-16 { padding-bottom: 4rem; }
.niv_text-left { text-align: left; }
.niv_text-right { text-align: right; }
.niv_text-center { text-align: center; }
.niv_font-normal { font-weight: 400; }
.niv_font-medium { font-weight: 500; }
.niv_font-semibold { font-weight: 600; }
.niv_font-bold { font-weight: 700; }
.niv_italic { font-style: italic; }
.niv_uppercase { text-transform: uppercase; }
.niv_leading-tight { line-height: 1.25; }
.niv_leading-relaxed { line-height: 1.625; }
.niv_tracking-wide { letter-spacing: .025em; }
.niv_tracking-widest { letter-spacing: .1em; }
.niv_truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.niv_break-all { word-break: break-all; }
.niv_text-xs { font-size: .75rem; line-height: 1rem; }
.niv_text-\\\[10px\\\] { font-size: 10px; line-height: 1.2; }
.niv_text-\\\[11px\\\] { font-size: 11px; line-height: 1.2; }
.niv_text-sm { font-size: .875rem; line-height: 1.25rem; }
.niv_text-base { font-size: 1rem; line-height: 1.5rem; }
.niv_text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.niv_text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.niv_text-2xl { font-size: 1.5rem; line-height: 2rem; }
.niv_text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.niv_text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.niv_text-5xl { font-size: 3rem; line-height: 1; }
.niv_text-6xl { font-size: 3.75rem; line-height: 1; }
.niv_text-white { color: #fff; }
.niv_text-gray-300 { color: #d1d5db; }
.niv_text-gray-400 { color: #9ca3af; }
.niv_text-gray-500 { color: #6b7280; }
.niv_text-gray-600 { color: #4b5563; }
.niv_text-gray-700 { color: #374151; }
.niv_text-gray-800 { color: var(--nd-ink); }
.niv_text-pink-300 { color: #f9a8d4; }
.niv_text-pink-400 { color: #f472b6; }
.niv_text-pink-500 { color: var(--nd-primary); }
.niv_text-pink-600 { color: var(--nd-primary-strong); }
.niv_text-red-300 { color: #fca5a5; }
.niv_text-red-400 { color: #f87171; }
.niv_text-red-500 { color: #ef4444; }
.niv_text-red-600 { color: #dc2626; }
.niv_text-red-700 { color: #b91c1c; }
.niv_text-green-500 { color: #22c55e; }
.niv_text-green-600 { color: #16a34a; }
.niv_text-green-700 { color: #15803d; }
.niv_text-blue-500 { color: #3b82f6; }
.niv_text-purple-500 { color: #a855f7; }
.niv_text-yellow-500 { color: #eab308; }
.niv_text-yellow-600 { color: #ca8a04; }
.niv_text-yellow-700 { color: #a16207; }
.niv_text-yellow-800 { color: #854d0e; }
.niv_bg-white { background-color: #fff; }
.niv_bg-gray-50 { background-color: #f9fafb; }
.niv_bg-gray-100 { background-color: #f3f4f6; }
.niv_bg-gray-200 { background-color: #e5e7eb; }
.niv_bg-pink-50 { background-color: #fdf2f8; }
.niv_bg-pink-100 { background-color: #fce7f3; }
.niv_bg-pink-500 { background-color: var(--nd-primary); }
.niv_bg-green-50 { background-color: #f0fdf4; }
.niv_bg-green-100 { background-color: #dcfce7; }
.niv_bg-green-500 { background-color: #22c55e; }
.niv_bg-red-50 { background-color: #fef2f2; }
.niv_bg-red-100 { background-color: #fee2e2; }
.niv_bg-red-200 { background-color: #fecaca; }
.niv_bg-yellow-50 { background-color: #fefce8; }
.niv_bg-yellow-100 { background-color: #fef9c3; }
.niv_bg-blue-100 { background-color: #dbeafe; }
.niv_opacity-80 { opacity: .8; }
.niv_opacity-90 { opacity: .9; }
.niv_border { border: 1px solid var(--nd-line); }
.niv_border-2 { border: 2px solid var(--nd-line); }
.niv_border-b { border-bottom: 1px solid var(--nd-line); }
.niv_border-t { border-top: 1px solid var(--nd-line); }
.niv_border-gray-200 { border-color: #e5e7eb; }
.niv_border-green-100 { border-color: #dcfce7; }
.niv_border-green-200 { border-color: #bbf7d0; }
.niv_border-red-200 { border-color: #fecaca; }
.niv_border-yellow-200 { border-color: #fde68a; }
.niv_rounded { border-radius: .25rem; }
.niv_rounded-lg { border-radius: .5rem; }
.niv_rounded-xl { border-radius: .75rem; }
.niv_rounded-2xl { border-radius: 1rem; }
.niv_rounded-3xl { border-radius: 1.5rem; }
.niv_rounded-full { border-radius: 9999px; }
.niv_rounded-b-\\\[40px\\\] { border-bottom-right-radius: 40px; border-bottom-left-radius: 40px; }
.niv_shadow { box-shadow: var(--nd-shadow-sm); }
.niv_shadow-sm { box-shadow: var(--nd-shadow-xs); }
.niv_shadow-2xl { box-shadow: var(--nd-shadow-lg); }
.niv_overflow-hidden { overflow: hidden; }
.niv_overflow-x-auto { overflow-x: auto; }
.niv_overflow-y-auto { overflow-y: auto; }
.niv_object-cover { object-fit: cover; }
.niv_cursor-pointer { cursor: pointer; }
.niv_whitespace-nowrap { white-space: nowrap; }
.niv_underline { text-decoration: underline; }
.niv_backdrop-blur { -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.niv_space-y-1 > * + * { margin-top: .25rem; }
.niv_space-y-1\\\.5 > * + * { margin-top: .375rem; }
.niv_space-y-2 > * + * { margin-top: .5rem; }
.niv_space-y-3 > * + * { margin-top: .75rem; }
.niv_space-y-4 > * + * { margin-top: 1rem; }
.niv_space-y-5 > * + * { margin-top: 1.25rem; }
.niv_space-y-6 > * + * { margin-top: 1.5rem; }
.niv_divide-y > * + * { border-top: 1px solid var(--nd-line); }
.niv_last\\\:border-0 > *:last-child { border-width: 0; }
.niv_hover\\\:underline:hover { text-decoration: underline; }
.niv_hover\\\:text-red-600:hover { color: #dc2626; }
.niv_hover\\\:bg-white\\\/10:hover { background: rgba(255,255,255,.1); }
.niv_peer { position: absolute; opacity: 0; pointer-events: none; }
.niv_font-tema { font-family: Georgia, "Times New Roman", serif; }

/* Ícones locais leves */
.niv_fa-solid, .niv_fa-brands, .niv_fa-solid, .niv_fa-brands { display: inline-block; width: 1.15em; font-family: Arial, sans-serif; font-style: normal; font-weight: 700; line-height: 1; text-align: center; }
.niv_fa-house::before { content: "⌂"; }
.niv_fa-bell::before { content: "●"; font-size: .7em; }
.niv_fa-user::before { content: "●"; }
.niv_fa-plus::before { content: "+"; }
.niv_fa-check::before, .niv_fa-circle-check::before { content: "✓"; }
.niv_fa-xmark::before { content: "×"; }
.niv_fa-trash::before { content: "⌫"; }
.niv_fa-pen::before { content: "✎"; }
.niv_fa-arrow-left::before { content: "←"; }
.niv_fa-search::before { content: "⌕"; }
.niv_fa-copy::before { content: "▣"; }
.niv_fa-qrcode::before { content: "▦"; }
.niv_fa-gift::before { content: "◆"; }
.niv_fa-users::before { content: "♟"; }
.niv_fa-user-check::before { content: "✓"; }
.niv_fa-calendar-days::before { content: "▣"; }
.niv_fa-cake-candles::before { content: "♨"; }
.niv_fa-champagne-glasses::before { content: "♢"; }
.niv_fa-crown::before { content: "♛"; }
.niv_fa-credit-card::before { content: "▤"; }
.niv_fa-money-bill-wave::before { content: "$"; }
.niv_fa-right-from-bracket::before { content: "↪"; }
.niv_fa-eye::before { content: "◉"; }
.niv_fa-whatsapp::before { content: "◔"; }
.niv_fa-google-drive::before { content: "△"; }
.niv_fa-wand-magic-sparkles::before { content: "✦"; }
.niv_fa-triangle-exclamation::before { content: "!"; }
.niv_fa-sack-dollar::before { content: "$"; }

/* Animações */
@keyframes nd-fade-up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes nd-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(233, 70, 131, .28); } 50% { box-shadow: 0 0 0 11px rgba(233, 70, 131, 0); } }
@keyframes nd-slide-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
.niv_fade-in-up { animation: nd-fade-up .45s ease both; }
.niv_pulse-ring { animation: nd-pulse 2.2s ease-in-out infinite; }

/* Desktop: experiência de sistema, com maior largura e densidade. */
@media (min-width: 769px) {
  .niv_app-shell { border: 1px solid rgba(233,235,241,.9); border-radius: 28px; box-shadow: var(--nd-shadow-lg); }
  .niv_app-shell.pb-20 { padding-bottom: 1.5rem; }
  .niv_bottom-nav.app-shell { height: var(--nd-nav); border-radius: 0 0 28px 28px; }
  .niv_bottom-nav.fixed { bottom: 26px; }
  .niv_nd-modal-box { align-self: center; border-radius: var(--nd-radius-xl); }
}

/* Tablet */
@media (min-width: 600px) and (max-width: 768px) {
  .niv_app-shell { max-width: 680px; }
  .niv_bottom-nav.app-shell, .niv_bottom-nav.fixed { max-width: 680px; }
}

/* Mobile: pegada de aplicativo e toque confortável. */
@media (max-width: 599px) {
  body { background: var(--nd-page); }
  .niv_app-shell { box-shadow: none; }
  .niv_nd-card { border-radius: var(--nd-radius-lg); }
  .niv_nd-input { min-height: 48px; }
  .niv_bottom-nav a { min-height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Cobertura final das variantes especiais presentes nos templates. */
.niv_-right-1 { right: -.25rem; }
.niv_-top-1 { top: -.25rem; }
.niv_-top-4 { top: -1rem; }
.niv_\!px-0 { padding-right: 0 !important; padding-left: 0 !important; }
.niv_\!py-2 { padding-top: .5rem !important; padding-bottom: .5rem !important; }
.niv_mt-0\.5 { margin-top: .125rem; }
.niv_mt-1\.5 { margin-top: .375rem; }
.niv_py-1\.5 { padding-top: .375rem; padding-bottom: .375rem; }
.niv_py-2\.5 { padding-top: .625rem; padding-bottom: .625rem; }
.niv_py-3\.5 { padding-top: .875rem; padding-bottom: .875rem; }
.niv_text-\[10px\] { font-size: 10px; line-height: 1.2; }
.niv_text-\[11px\] { font-size: 11px; line-height: 1.2; }
.niv_rounded-b-\[40px\] { border-bottom-right-radius: 40px; border-bottom-left-radius: 40px; }
.niv_min-w-\[700px\] { min-width: 700px; }
.niv_bg-\[\#1A1A2E\] { background: #1a1a2e; }
.niv_bg-\[\#F7F7FB\] { background: #f7f7fb; }
.niv_bg-\[\#F7F7FB\]\/90 { background: rgba(246,247,251,.9); }
.niv_bg-white\/20 { background: rgba(255,255,255,.2); }
.niv_border-white\/10 { border-color: rgba(255,255,255,.1); }
.niv_ring-pink-300 { box-shadow: 0 0 0 3px #f9a8d4; }
.niv_to-transparent { --nd-gradient-to: transparent; }
.niv_from-black\/70 { --nd-gradient-from: rgba(0,0,0,.7); }
.niv_via-black\/10 { --nd-gradient-via: rgba(0,0,0,.1); }
.niv_scroll-x { scrollbar-width: none; }
.niv_scroll-x::-webkit-scrollbar { width: 0; height: 0; }
.niv_space-y-1\.5 > * + * { margin-top: .375rem; }

.niv_hover\:\!bg-transparent:hover { background: transparent !important; }
.niv_hover\:bg-green-600:hover { background: #16a34a; }
.niv_hover\:bg-red-200:hover { background: #fecaca; }
.niv_hover\:bg-white\/10:hover { background: rgba(255,255,255,.1); }
.niv_hover\:text-red-200:hover { color: #fecaca; }
.niv_hover\:text-red-600:hover { color: #dc2626; }
.niv_hover\:underline:hover { text-decoration: underline; }
.niv_last\:border-0:last-child { border-width: 0; }

input.peer:checked + .niv_peer-checked\:bg-green-50 { background: #f0fdf4; }
input.peer:checked + .niv_peer-checked\:bg-red-50 { background: #fef2f2; }
input.peer:checked + .niv_peer-checked\:bg-yellow-50 { background: #fefce8; }
input.peer:checked + .niv_peer-checked\:border-green-400 { border-color: #4ade80; }
input.peer:checked + .niv_peer-checked\:border-red-400 { border-color: #f87171; }
input.peer:checked + .niv_peer-checked\:border-yellow-400 { border-color: #facc15; }
input.peer:checked + .niv_peer-checked\:ring-4 { box-shadow: 0 0 0 4px rgba(233,70,131,.25); }

@media (min-width: 640px) {
  .niv_sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
  .niv_md\:flex { display: flex; }
  .niv_md\:flex-row { flex-direction: row; }
  .niv_md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .niv_md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .niv_md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .niv_md\:items-center { align-items: center; }
  .niv_md\:hidden { display: none !important; }
  .niv_md\:p-8 { padding: 2rem; }
}


/* Classes especiais de cor, agora como seletores CSS convencionais. */
.niv_bg-\[\#1A1A2E\] { background-color: #1a1a2e; }
.niv_bg-\[\#F7F7FB\] { background-color: #f7f7fb; }
.niv_bg-\[\#F7F7FB\]\/90 { background-color: rgba(246,247,251,.9); }
.niv_bg-white\/20 { background-color: rgba(255,255,255,.2); }


/* Ícones locais Niver Digital — sem dependência externa. */
.niv_fa-solid, .niv_fa-brands {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.2em;
  min-width: 1.2em;
  height: 1.2em;
  font-family: "Segoe UI Symbol", "Arial Unicode MS", Arial, sans-serif;
  font-size: 1em;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  vertical-align: -.08em;
}
.niv_fa-solid::before, .niv_fa-brands::before { content: "•"; }
.niv_fa-bars::before { content: "☰"; }
.niv_fa-house::before { content: "⌂"; }
.niv_fa-bell::before { content: "●"; }
.niv_fa-user::before { content: "●"; }
.niv_fa-user-group::before, .niv_fa-users::before { content: "♟"; }
.niv_fa-user-check::before { content: "✓"; }
.niv_fa-user-shield::before { content: "♙"; }
.niv_fa-plus::before { content: "+"; }
.niv_fa-check::before, .niv_fa-circle-check::before { content: "✓"; }
.niv_fa-xmark::before { content: "×"; }
.niv_fa-trash::before { content: "⌫"; }
.niv_fa-pen::before { content: "✎"; }
.niv_fa-arrow-left::before { content: "←"; }
.niv_fa-chevron-right::before { content: "›"; }
.niv_fa-search::before { content: "⌕"; }
.niv_fa-copy::before { content: "▣"; }
.niv_fa-qrcode::before { content: "▦"; }
.niv_fa-gift::before { content: "◆"; }
.niv_fa-calendar-day::before, .niv_fa-calendar-days::before { content: "▣"; }
.niv_fa-cake-candles::before { content: "♨"; }
.niv_fa-champagne-glasses::before { content: "♢"; }
.niv_fa-crown::before { content: "♛"; }
.niv_fa-credit-card::before { content: "▤"; }
.niv_fa-money-bill-wave::before { content: "$"; }
.niv_fa-sack-dollar::before, .niv_fa-piggy-bank::before { content: "$"; }
.niv_fa-right-from-bracket::before { content: "↪"; }
.niv_fa-eye::before { content: "◉"; }
.niv_fa-whatsapp::before { content: "◔"; }
.niv_fa-telegram::before { content: "➤"; }
.niv_fa-google-drive::before { content: "△"; }
.niv_fa-wand-magic-sparkles::before { content: "✦"; }
.niv_fa-triangle-exclamation::before { content: "!"; }
.niv_fa-circle-info::before { content: "i"; }
.niv_fa-envelope::before { content: "✉"; }
.niv_fa-lock::before { content: "▣"; }
.niv_fa-location-dot::before { content: "●"; }
.niv_fa-globe::before { content: "◎"; }
.niv_fa-building-columns::before { content: "▥"; }
.niv_fa-file-csv::before { content: "▤"; }
.niv_fa-rotate::before { content: "↻"; }
.niv_fa-share-nodes::before { content: "⌯"; }
.niv_fa-paperclip::before { content: "⌕"; }
.niv_fa-robot::before { content: "◫"; }
.niv_fa-palette::before { content: "◉"; }
.niv_fa-layer-group::before { content: "▤"; }
.niv_fa-chart-line::before { content: "⌁"; }
.niv_fa-gear::before { content: "⚙"; }
.niv_fa-spinner::before { content: "◌"; }
.niv_fa-spin { animation: niv_icon_spin 1s linear infinite; }
@keyframes nd_icon_spin { to { transform: rotate(360deg); } }

/* Ferramentas avançadas do editor de convites */
.nd-advanced-tools{box-shadow:0 8px 24px rgba(139,47,201,.08)}
.nd-ai-tool-btn{border:0;background:transparent;color:#8b2fc9;font-size:.65rem;font-weight:800;cursor:pointer;margin-left:6px}
.nd-ai-tool-btn:hover{text-decoration:underline}
.nd-custom-html{overflow-wrap:anywhere;word-break:break-word;max-width:100%}


/* ========================================================================
   CAMADAS DE CONTEXTO — não usar seletores globais de body/html em páginas
   diferentes. Cada aplicação recebe uma classe de escopo no elemento body.
   ======================================================================== */

/* Público */
.nd-public-page { min-height: 100%; margin: 0; background: #f7f7fb; color: #1a1a2e; font-family: Poppins, sans-serif; overflow-x: hidden; overflow-y: auto; }
.nd-public-page *, .nd-checkout-page *, .nd-panel-page *, .nd-admin-page * { box-sizing: border-box; }
.nd-public-page .nd-nav-wrap { position: sticky; top: 0; z-index: 100; background: #fff; border-bottom: 1px solid #f0f2f8; box-shadow: 0 1px 8px rgba(0,0,0,.06); }
.nd-public-page .nd-nav { display: flex; align-items: center; justify-content: space-between; flex-wrap: nowrap; gap: 10px; max-width: 1080px; margin: 0 auto; padding: 12px 20px; }
.nd-public-page .nd-section { max-width: 1080px; margin: 0 auto; padding: 28px 20px; }
.nd-public-page .nd-pub-footer { padding: 24px 20px 40px; color: #b8bfcc; font-size: .75rem; text-align: center; }

/* Convite público: um único scroll no documento. */
.nd-invite-page { min-height: 100%; margin: 0; overflow-x: hidden; overflow-y: auto; background: var(--cf, #f7f7fb); color: var(--ct, #596071); overscroll-behavior-y: auto; }
.nd-invite-page .niv_app-shell { width: 100%; max-width: 480px; max-height: none; min-height: 100dvh; margin: 0 auto; overflow: visible; box-shadow: none; }
.nd-invite-page .niv-scroll-content { display: block; min-height: 0; overflow: visible; padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
.nd-invite-page .niv-invite-hero { position: relative; width: 100%; height: 65dvh; overflow: hidden; transition: height .42s ease, min-height .42s ease; }
.nd-invite-page .niv-invite-hero.is-collapsed { height: auto; min-height: 0; }
.nd-invite-page .niv-invite-hero .hero-bg { display: block; width: 100%; object-fit: cover; transition: height .42s ease, min-height .42s ease; }
.nd-invite-page .niv-invite-hero.is-collapsed .hero-bg { height: min(30vh, 380px); min-height: 230px; }
.nd-invite-page .niv-invite-hero .hero-no-img { display: flex; width: 100%; height: 100dvh; min-height: 100dvh; position: relative; background: linear-gradient(135deg, var(--cp), var(--cs)); transition: height .42s ease, min-height .42s ease; }
.nd-invite-page .niv-invite-hero.is-collapsed .hero-no-img { height: min(42vh, 380px); min-height: 230px; }
.nd-invite-page .niv-invite-hero::after { content: ''; position: absolute; inset: 35% 0 0; z-index: 1; pointer-events: none; background: linear-gradient(to top, rgba(0,0,0,.82), transparent); }
.nd-invite-page .niv-rsvp-footer { position: fixed; right: 0; bottom: 0; left: 0; z-index: 50; display: flex; gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: #8892a1; box-shadow: 0 -4px 16px rgba(0,0,0,.12); }
.nd-invite-page .niv-rsvp-footer .rsvp-btn-sim, .nd-invite-page .niv-rsvp-footer .rsvp-btn-nao { flex: 1; width: auto; padding: 14px 10px; }
.nd-invite-page .niv-modal-overlay { position: fixed; inset: 0; z-index: 500; }

/* Checkout */
.nd-checkout-page { min-height: 100%; margin: 0; overflow-x: hidden; overflow-y: auto; background: #f7f8fc; color: #202331; font-family: Poppins, sans-serif; }
.nd-checkout-page .cx-shell { width: 100%; min-height: 100dvh; max-height: none; overflow: visible; }
.nd-checkout-page .cx-main { min-height: 100dvh; overflow: visible; }
.nd-checkout-page .cx-card { max-width: 100%; }

/* Painel */
.nd-panel-page { min-height: 100%; margin: 0; overflow-x: hidden; background: #f7f7fb; }
.nd-panel-page .niv_app-shell { max-height: none; min-height: 100dvh; overflow: visible; }
.nd-panel-page .niv_app-scroll { min-height: 0; max-height: none; overflow-y: auto; overflow-x: hidden; }

/* Administração */
.nd-admin-page { min-height: 100%; margin: 0; overflow-x: hidden; background: #f0f2f8; }
.nd-admin-page .nd-admin-shell, .nd-admin-page .admin-shell { min-height: 100dvh; max-height: none; overflow: visible; }

@media (max-width: 560px) {
  .nd-public-page .nd-nav { gap: 8px; padding: 10px 14px; }
  .nd-public-page .nd-nav-logo span { max-width: 90px; font-size: .82rem; }
  .nd-invite-page .niv-invite-hero .evento-nome { max-width: 220px; font-size: 1.15rem; }
}
@media (prefers-reduced-motion: reduce) {
  .nd-invite-page .niv-invite-hero, .nd-invite-page .niv-invite-hero .hero-bg, .nd-invite-page .niv-invite-hero .hero-no-img { transition: none; }
}

/* Componentes do convite público migrados do renderizador original */

:root{ --cp:<?= $corP ?>; --cs:<?= $corS ?>; --cf:<?= $corFundo ?>; --ct:<?= $corTexto ?>; --exp-intensity:<?= (int)$experiencia['intensidade'] ?>; }
.niv-experience-layer{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;opacity:calc(.18 + var(--exp-intensity) / 180);}
.niv-experience-layer::before,.niv-experience-layer::after{content:'';position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.75),rgba(255,255,255,0) 68%);width:38vw;height:38vw;max-width:260px;max-height:260px;animation:nivExperienceFloat 8s ease-in-out infinite;}
.niv-experience-layer::before{top:-18%;left:-8%;}.niv-experience-layer::after{right:-12%;bottom:-22%;animation-delay:-3s;}
.niv-experience-layer.exp-filtro-warm{mix-blend-mode:screen;filter:sepia(.25) saturate(1.15)}.niv-experience-layer.exp-filtro-rose{filter:hue-rotate(315deg) saturate(1.2)}.niv-experience-layer.exp-filtro-midnight{filter:brightness(.68) saturate(1.25)}.niv-experience-layer.exp-filtro-soft{filter:brightness(1.15) saturate(.85)}.niv-experience-layer.exp-filtro-mono{filter:grayscale(1)}
.niv-experience-layer.exp-anim-rise{animation:nivExperienceRise .9s ease both}.niv-experience-layer.exp-anim-zoom{animation:nivExperienceZoom 1s ease both}.niv-experience-layer.exp-anim-float{animation:nivExperienceFloat 7s ease-in-out infinite}.niv-experience-layer.exp-anim-drift{animation:nivExperienceDrift 9s ease-in-out infinite}
.niv-experience-deco{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(1rem,5vw,2rem);letter-spacing:clamp(8px,4vw,28px);color:rgba(255,255,255,.72);text-shadow:0 0 14px rgba(255,255,255,.25);}
.niv-experience-deco[data-decoracao="sparkles"]::after{content:'✦  ✧  ✦  ✧  ✦'}.niv-experience-deco[data-decoracao="hearts"]::after{content:'♡  ♥  ♡  ♥  ♡'}.niv-experience-deco[data-decoracao="confetti"]::after{content:'•  ⁕  ·  ✦  ·  ⁕  •'}.niv-experience-deco[data-decoracao="flowers"]::after{content:'✿  ❀  ✿  ❀  ✿'}.niv-experience-deco[data-decoracao="stars"]::after{content:'☆  ★  ☆  ★  ☆'}
@keyframes nivExperienceFloat{0%,100%{transform:translate3d(-2%,0,0) scale(.92);opacity:.45}50%{transform:translate3d(3%,4%,0) scale(1.08);opacity:.85}}@keyframes nivExperienceRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes nivExperienceZoom{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}@keyframes nivExperienceDrift{0%,100%{transform:translateX(-2%)}50%{transform:translateX(2%)}}

.layout-cartao .hero-wrap{margin:12px;border-radius:22px;overflow:hidden;box-shadow:0 12px 34px rgba(0,0,0,.14)}.layout-minimalista .hero-evento-block .evento-nome{letter-spacing:.12em;font-weight:700}.layout-elegante .hero-wrap:before{content:'✦';position:absolute;z-index:12;left:50%;top:10px;transform:translateX(-50%);color:#fff;font-size:1.4rem;text-shadow:0 0 12px rgba(255,255,255,.8)}.layout-festivo .niv-experience-layer{opacity:.7}.layout-cinema .hero-wrap{border-bottom:5px solid var(--cp)}.layout-polaroid .layout-magazine .hero-evento-block .evento-nome{font-size:1.8rem;line-height:1.05}.layout-infantil .hero-wrap{border-radius:0 0 28px 28px}
.font-tema{ font-family:var(--niv-font),sans-serif; }

/* ===== SHELL: hero fixo + conteúdo rolável ===== */
/* HERO */
.hero-wrap{ position:relative; flex:0 0 auto; }

/* DEGRADÊ PRETO POR CIMA DA IMAGEM */
.hero-wrap::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 65%; /* Ajuste aqui: quanto maior, mais sobe */
    background: linear-gradient(to top, rgba(0,0,0,0.8) 50%, rgba(0,0,0,0) 100%);
    pointer-events: none;
    z-index: 1;
}

/* Se quiser que o degradê também apareça no .hero-no-img */
.hero-no-img::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 70%;
    background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0) 100%);
    pointer-events: none;
    z-index: 1;
}
/* 4 cantos sobre a imagem: topo-esquerda = contagem, topo-direita = aniversariante+idade,
   base-esquerda = nome do evento + data/hora. Base-direita livre.
   Cada bloco de texto tem seu próprio degradê preto suave por trás (não cobre a imagem toda). */
.hero-corners{ position:absolute; inset:0; padding:14px; display:flex; flex-direction:column; justify-content:space-between; pointer-events:none; }
.hero-corners-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.hero-corners-bottom{ display: flex;
    align-items: flex-end;
    justify-content: space-between;
    box-sizing: border-box;
    width: 100%;
    z-index: 10; }

.hero-glow{ position:relative; }
.hero-glow::before{ content:''; position:absolute; inset:-10px -14px; background:radial-gradient(ellipse at center, rgba(0,0,0,.5) 0%, rgba(0,0,0,.3) 55%, rgba(0,0,0,0) 100%); filter:blur(6px); z-index:-1; }

.hero-count-block{ display:flex; flex-direction:column; gap:4px; }
.hero-count-label{ font-size:.6rem;color:rgba(255,255,255,.9);text-transform:uppercase;font-weight:700;letter-spacing:.4px; }
.hero-count-boxes{ display:flex; gap:6px; }
.hero-count-box{ min-width:32px; text-align:center; background:rgba(255,255,255,.18); border-radius:8px; padding:3px 4px; backdrop-filter:blur(2px); }
.hero-count-box .n{ font-size:.9rem;font-weight:800;color:#fff;line-height:1.1; }
.hero-count-box .l{ font-size:.5rem;color:rgba(255,255,255,.85);text-transform:uppercase;font-weight:600; }

.hero-aniv-block{ text-align:right; max-width:56%; }
.hero-aniv-block .aniv-nome{ font-size:1rem;font-weight:800;color:#fff;margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hero-aniv-block .aniv-idade{ font-size:.72rem;font-weight:600;color:rgba(255,255,255,.92);margin-top:2px;  }

.hero-evento-block{ max-width:80%; }
.hero-evento-block .evento-nome{ 
      font-size: 1.4rem;
    font-weight: 900;
    color: #fff;
    font-family: system-ui;
    text-transform: uppercase;
    max-width: 300px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    
}
.hero-evento-block .evento-data{ font-size:.8rem;color:rgba(255,255,255,.92);text-shadow:0 1px 4px rgba(0,0,0,.4); display:flex; align-items:center; gap:6px; }

/* NOVO ESTILO PARA O CONTADOR INTELIGENTE */
.hero-countdown-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0px;
  color: #fff;
  font-weight: 700;
  white-space: nowrap;
  z-index: 10;
}

.hero-countdown-text {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: rgba(255, 255, 255, 0.9);
}

.hero-countdown-icon {
  font-size: 40px;
    margin: -6px;
}

.hero-countdown-value {
  font-size: 0.9rem;
  font-weight: 800;
  color: #fff;
}

/* BOTÕES RSVP */
.rsvp-btn-sim{ background:linear-gradient(135deg,var(--cp),var(--cs));color:#fff;border:none;border-radius:14px;padding:16px 20px;width:48%;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 6px 20px rgba(0,0,0,.15);transition:transform .2s; }
.rsvp-btn-sim:hover{ transform:scale(1.03); }
.rsvp-btn-nao{ background:#fff;color:#596071;border:2px solid #E9EBF1;border-radius:14px;padding:16px 20px;width:48%;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s; }
.rsvp-btn-nao:hover{ border-color:#d9485f;color:#d9485f; }

/* FLUXO STEPS */
.step{ display:none;flex-direction:column; }
.step.active{ display:flex; }

/* CHAT BUBBLES (fluxo "não") */
.bubble-wrap{ display:flex;flex-direction:column;gap:8px;padding:8px 0; }
.bubble{ max-width:80%;padding:12px 16px;border-radius:20px;font-size:.9rem;line-height:1.5;animation:bubbleIn .3s ease; }
.bubble-left{ align-self:flex-start;background:#fff;border-bottom-left-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.06); }
.bubble-right{ align-self:flex-end;background:linear-gradient(135deg,var(--cp),var(--cs));color:#fff;border-bottom-right-radius:4px; }
@keyframes bubbleIn{ from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;} }

/* GRADE DE PRESENTES (estilo app, 3 por linha) */
.presentes-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.presente-grid-card{ position:relative; border:2px solid #E9EBF1;border-radius:14px;padding:10px 6px 8px;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;background:#fff; }
.presente-grid-card:active{ transform:scale(.97); }
.presente-grid-card.selected{ border-color:var(--cp);background:#fff0f6;box-shadow:0 2px 10px rgba(0,0,0,.06); }
.presente-grid-card.esgotado{ opacity:.45;cursor:not-allowed; }
.presente-grid-card .icon-circle{ width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.9rem; }
.presente-grid-card .p-nome{ font-size:.68rem;font-weight:700;color:#1A1A2E;line-height:1.2;max-height:2.3em;overflow:hidden; }
.presente-grid-card .p-valor{ font-size:.62rem;color:var(--cp);font-weight:700; }
.presente-grid-card .p-badge{ font-size:.58rem;background:#e6faf3;color:#17a673;padding:2px 7px;border-radius:999px;font-weight:700; }
.presente-grid-card .p-badge.esgotado-badge{ background:#F0F2F8;color:#8e95a5; }
.presente-grid-card .check-sel{ position:absolute;top:6px;right:6px;width:16px;height:16px;border-radius:50%;background:var(--cp);color:#fff;font-size:.55rem;display:flex;align-items:center;justify-content:center; }
.qty-stepper{ display:flex;align-items:center;gap:8px;margin-top:2px; }
.qty-stepper button{ width:20px;height:20px;border-radius:50%;border:none;background:var(--cp);color:#fff;font-size:.75rem;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1; }
.qty-stepper span{ font-size:.72rem;font-weight:800;color:#1A1A2E;min-width:12px;text-align:center; }

/* GRADE DE VALORES PIX */
.pix-valores-grid{ display:grid;grid-template-columns:repeat(2,1fr);gap:8px; }
.pix-valor-card{ border:2px solid #E9EBF1;border-radius:14px;padding:14px 8px;cursor:pointer;text-align:center;transition:all .2s;background:#fff;font-size:1rem;font-weight:800;color:#06D6A0; }
.pix-valor-card:hover{ border-color:#06D6A0;background:#e6faf3; }

/* PIX (legado, reaproveitado em áreas pontuais) */
.pix-option{ border:2px solid #E9EBF1;border-radius:14px;padding:14px;cursor:pointer;text-align:center;transition:all .2s; }
.pix-option:hover{ border-color:#06D6A0; }

/* ESTILO DA MENSAGEM DO CONVITE — SEMPRE TOTALMENTE VISÍVEL (sem "ver mais") */
.niv-msg-body-inner {
   background: #F8F9FD;
    border-radius: 14px;
    padding: 16px;
    font-size: 1rem;
    color: #596071;
    line-height: 1.4;
    font-weight: 600;
    text-align: justify;
    border-left:3px solid var(--cp);
}

/* RODAPÉ FIXO — botões Sim/Não (não rola; só o conteúdo do meio rola) */
.niv-rsvp-footer{ flex: 0 0 auto;
    display: flex;
    gap: 10px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    background: #8892a1;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, .06);
    position: fixed;
    z-index: 5;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0 auto;}
.niv-rsvp-footer .rsvp-btn-sim, .niv-rsvp-footer .rsvp-btn-nao{ width:auto; flex:1; padding:14px 10px; font-size:.9rem; }

/* ===== MODAIS SEMPRE CENTRALIZADOS NA TELA ===== */
.niv-modal-overlay{ display:none;position:fixed;inset:0;background:rgba(15,20,40,.55);z-index:500;align-items:center;justify-content:center;backdrop-filter:blur(3px);padding:16px; }
.niv-modal-card{ background:#fff;border-radius:22px;padding:24px 20px 26px;width:100%;max-width:440px;max-height:75vh;overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:0 20px 60px rgba(0,0,0,.25); }
.niv-modal-sticky-actions{    position: sticky;
    bottom: -28px;
    background: #fff;
    padding: 10px 5px;}

/* BOTÃO DE MÚSICA — animaçãozinha de equalizador enquanto toca */
.niv-music-btn{ position:relative; transition:box-shadow .2s; }
.niv-music-btn.tocando{ animation:nivMusicPulse 1.6s ease-in-out infinite; }
@keyframes nivMusicPulse{
  0%,100%{ box-shadow:0 2px 10px rgba(0,0,0,.25), 0 0 0 0 rgba(255,255,255,.35); }
  50%{ box-shadow:0 2px 10px rgba(0,0,0,.25), 0 0 0 7px rgba(255,255,255,0); }
}
.niv-music-eq{ display:none; align-items:flex-end; gap:2.5px; height:14px; }
.niv-music-btn.tocando .niv-music-eq{ display:flex; }
.niv-music-btn.tocando #niv-music-icon{ display:none; }
.niv-music-eq span{ display:block; width:3px; background:#fff; border-radius:2px; animation:nivEqBar .9s ease-in-out infinite; }
.niv-music-eq span:nth-child(1){ height:6px;  animation-delay:0s;   }
.niv-music-eq span:nth-child(2){ height:13px; animation-delay:.2s;  }
.niv-music-eq span:nth-child(3){ height:9px;  animation-delay:.4s;  }
@keyframes nivEqBar{ 0%,100%{ transform:scaleY(.35); } 50%{ transform:scaleY(1); } }



/* Checkout migrado de caixa/checkout.php */

.cx-topbar {
  background: linear-gradient(135deg, #1A1A2E, #2d2d4e);
  padding: 16px 20px;
  display: flex; align-items: center; justify-content: center; gap: 10px;
}
.cx-topbar img { height: 28px; }
.cx-topbar-nome { color: #fff; font-weight: 800; font-size: 1rem; letter-spacing: .2px; }
.cx-topbar-lock { color: rgba(255,255,255,.55); font-size: .72rem; display: flex; align-items: center; gap: 5px; margin-left: 10px; }

.cx-wrap { max-width: 960px; margin: 0 auto; padding: 22px 16px 60px; }

.cx-steps { display: flex; align-items: center; justify-content: center; gap: 6px; margin-bottom: 24px; }
.cx-step { display: flex; align-items: center; gap: 8px; font-size: .74rem; font-weight: 700; color: #b8bfcc; }
.cx-step-num { width: 22px; height: 22px; border-radius: 50%; background: #E9EBF1; color: #8e95a5; display: flex; align-items: center; justify-content: center; font-size: .7rem; transition: all .2s; }
.cx-step.ativo { color: #1A1A2E; }
.cx-step.ativo .cx-step-num { background: linear-gradient(135deg,#e94683,#c92f6b); color: #fff; }
.cx-step.feito .cx-step-num { background: var(--nd-success,#17a673); color: #fff; }
.cx-step-line { width: 30px; height: 2px; background: #E9EBF1; }

.cx-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 860px) { .cx-grid { grid-template-columns: 340px 1fr; align-items: start; } }

.cx-card { background: #fff; border-radius: var(--nd-radius-lg, 22px); border: 1px solid var(--nd-line,#e9ebf1); box-shadow: var(--nd-shadow-sm, 0 5px 16px rgba(31,36,52,.06)); overflow: hidden; }

.cx-resumo-capa { height: 140px; position: relative; background-size: cover; background-position: center; display: flex; align-items: flex-end; padding: 14px; color: #fff; }
.cx-resumo-capa img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.cx-resumo-capa-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.6) 100%); z-index: 1; }
.cx-resumo-capa-titulo { position: relative; z-index: 2; font-weight: 800; font-size: 1rem; text-shadow: 0 2px 8px rgba(0,0,0,.35); }
.cx-resumo-body { padding: 18px; }
.cx-resumo-nome { font-size: .78rem; font-weight: 700; color: #8e95a5; text-transform: uppercase; letter-spacing: .3px; margin: 0 0 4px; }
.cx-resumo-desc { font-size: .85rem; color: #596071; line-height: 1.5; margin: 0 0 16px; }
.cx-resumo-linha { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-top: 1px dashed var(--nd-line,#e9ebf1); font-size: .82rem; color: #596071; }
.cx-resumo-total { display: flex; align-items: center; justify-content: space-between; padding-top: 14px; margin-top: 4px; border-top: 2px solid #1A1A2E; }
.cx-resumo-total b { font-size: 1.3rem; color: #e94683; }
.cx-resumo-selo { display: flex; align-items: center; gap: 8px; font-size: .72rem; color: #8e95a5; margin-top: 14px; }
.cx-resumo-selo i { color: var(--nd-success,#17a673); }

.cx-painel { padding: 24px; }
.cx-painel h2 { font-size: 1.1rem; font-weight: 800; margin: 0 0 4px; color: #1A1A2E; }
.cx-painel p.cx-sub { font-size: .82rem; color: #8e95a5; margin: 0 0 20px; }

.cx-cupom-box { border: 1.5px dashed var(--nd-line,#e9ebf1); border-radius: 14px; padding: 14px 16px; margin-bottom: 18px; }
.cx-cupom-box label { display: block; font-size: .76rem; font-weight: 700; color: #596071; margin-bottom: 8px; }
.cx-cupom-linha { display: flex; gap: 8px; }
.cx-cupom-linha input { flex: 1; padding: 11px 14px; border-radius: 10px; border: 1.5px solid var(--nd-line,#e9ebf1); font-size: .85rem; text-transform: uppercase; box-sizing: border-box; }
.cx-btn-cupom { padding: 0 18px; border-radius: 10px; border: none; background: #1A1A2E; color: #fff; font-weight: 700; font-size: .82rem; cursor: pointer; white-space: nowrap; }
.cx-cupom-msg { font-size: .76rem; font-weight: 600; margin: 10px 0 0; display: flex; align-items: center; gap: 6px; }
.cx-cupom-ok { color: #17a673; }
.cx-cupom-erro { color: #d9485f; }

.cx-id-tabs { display: flex; background: #F0F2F8; border-radius: 12px; padding: 4px; gap: 4px; margin-bottom: 18px; }
.cx-id-tab { flex: 1; padding: 9px; border-radius: 9px; border: none; cursor: pointer; font-size: .8rem; font-weight: 700; color: #8e95a5; background: transparent; }
.cx-id-tab.ativo { background: #fff; color: #e94683; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.cx-id-field { width: 100%; padding: 11px 14px; border-radius: 10px; border: 1.5px solid var(--nd-line,#e9ebf1); font-size: .85rem; box-sizing: border-box; margin-bottom: 10px; font-family: inherit; }
.cx-id-field:focus { border-color: #e94683; outline: none; }

.cx-metodos { display: grid; gap: 12px; }
.cx-metodo {
  display: flex; align-items: center; gap: 14px; padding: 16px; border-radius: 14px;
  border: 1.5px solid var(--nd-line,#e9ebf1); cursor: pointer; transition: all .15s; text-align: left;
  background: #fff; width: 100%; font-family: inherit;
}
.cx-metodo:hover { border-color: #e94683; box-shadow: 0 4px 14px rgba(233,70,131,.1); }
.cx-metodo:disabled { opacity: .5; cursor: wait; }
.cx-metodo-icone { width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; color: #fff; flex-shrink: 0; }
.cx-metodo-info { flex: 1; }
.cx-metodo-nome { font-weight: 700; font-size: .88rem; color: #1A1A2E; }
.cx-metodo-desc { font-size: .74rem; color: #8e95a5; margin-top: 2px; }
.cx-metodo-seta { color: #b8bfcc; font-size: .85rem; }

.cx-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 50px 20px; gap: 14px; }
.cx-spinner { width: 38px; height: 38px; border: 3px solid #F0F2F8; border-top-color: #e94683; border-radius: 50%; animation: cxspin .8s linear infinite; }
@keyframes cxspin { to { transform: rotate(360deg); } }
.cx-loading span { font-size: .85rem; color: #8e95a5; font-weight: 600; }

.cx-pix-wrap { text-align: center; }
.cx-pix-valor { font-size: 1.6rem; font-weight: 800; color: #e94683; margin-bottom: 4px; }
.cx-pix-gateway-tag { display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 700; color: #8e95a5; background: #F8F9FD; padding: 4px 12px; border-radius: 999px; margin-bottom: 18px; }
.cx-pix-qr { width: 220px; height: 220px; border-radius: 16px; border: 1px solid var(--nd-line,#e9ebf1); margin: 0 auto 18px; display: block; object-fit: contain; background: #fff; }
.cx-pix-copia-label { font-size: .76rem; color: #8e95a5; margin-bottom: 6px; }
.cx-pix-copia-box { background: #F8F9FD; border-radius: 12px; padding: 12px 14px; font-size: .74rem; color: #596071; word-break: break-all; margin-bottom: 12px; text-align: left; max-height: 90px; overflow-y: auto; }
.cx-btn { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 13px; border-radius: 12px; font-weight: 700; font-size: .85rem; border: none; cursor: pointer; width: 100%; text-decoration: none; }
.cx-btn-primary { background: linear-gradient(135deg,#e94683,#c92f6b); color: #fff; box-shadow: 0 6px 18px rgba(233,70,131,.3); }
.cx-btn-secondary { background: #F0F2F8; color: #596071; }
.cx-btn-dark { background: linear-gradient(135deg,#1A1A2E,#2d2d4e); color: #fff; }
.cx-btn:disabled { opacity: .6; cursor: not-allowed; }
.cx-btn + .cx-btn { margin-top: 10px; }

.cx-status-pill { display: inline-flex; align-items: center; gap: 8px; font-size: .78rem; font-weight: 700; padding: 8px 16px; border-radius: 999px; margin-bottom: 18px; }
.cx-status-pill.pendente { background: #fff8e6; color: #7a5c00; }
.cx-status-pill.checando i { animation: cxspin 1s linear infinite; }

.cx-upload-box { border: 1.5px dashed var(--nd-line,#e9ebf1); border-radius: 14px; padding: 16px; margin-top: 18px; text-align: left; }
.cx-upload-box label { font-size: .76rem; font-weight: 700; color: #596071; display: block; margin-bottom: 8px; }
.cx-upload-box input[type=file] { width: 100%; font-size: .78rem; }

.cx-sucesso { text-align: center; padding: 30px 10px; }
.cx-sucesso-icone { width: 76px; height: 76px; border-radius: 50%; background: #eafaf3; color: var(--nd-success,#17a673); display: flex; align-items: center; justify-content: center; font-size: 1.8rem; margin: 0 auto 18px; }
.cx-sucesso h2 { margin: 0 0 8px; }
.cx-sucesso p { color: #8e95a5; font-size: .88rem; margin: 0 0 24px; }

.cx-voltar-loja { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; color: #8e95a5; text-decoration: none; font-weight: 600; margin-bottom: 16px; }
.cx-erro-box { background: #fff2f2; border: 1px solid #ffd4d4; color: #b3253a; padding: 12px 14px; border-radius: 12px; font-size: .8rem; margin-bottom: 16px; display: none; align-items: center; gap: 8px; }
.cx-erro-box.mostrar { display: flex; }



/* Ingresso público migrado de convite/ingresso.php */

:root{ --cp:var(--cp); --cs:var(--cs); }
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
/* ===== TICKET ===== */
.ticket-wrap{
    max-width:400px; margin:0 auto; padding:20px 16px 100px;
}
.ticket{
    background:#fff;
    border-radius:24px;
    box-shadow: 0 20px 60px rgba(0,0,0,.18), 0 4px 12px rgba(0,0,0,.08);
    overflow:hidden;
    position:relative;
}
/* Topo gradiente com capa */
.ticket-header{
    background:linear-gradient(135deg,var(--cp),var(--cs));
    min-height:140px;
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:16px 20px 20px;
}
.ticket-header-bg{
    position:absolute;
    inset:0;
    object-fit:cover;
    width:100%;
    height:100%;
    opacity:.25;
}
.ticket-header::after{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(to bottom, rgba(0,0,0,.1) 0%, rgba(0,0,0,.55) 100%);
}
.ticket-header-content{ position:relative; z-index:2; }
.ticket-event-name{
    font-size:1.25rem; font-weight:800; color:#fff;
    text-shadow:0 2px 8px rgba(0,0,0,.4);
    margin:0 0 4px;
    line-height:1.2;
}
.ticket-aniv{
    font-size:.8rem; font-weight:600; color:rgba(255,255,255,.92);
    display:flex; align-items:center; gap:6px;
}
.ticket-badge-status{
    position:absolute; top:14px; right:14px; z-index:3;
    background:rgba(255,255,255,.92);
    border-radius:20px;
    padding:5px 12px;
    font-size:.72rem; font-weight:800;
    color:#1A1A2E;
    backdrop-filter:blur(4px);
}
.ticket-badge-status.usado{
    background:#d9485f;
    color:#fff;
}

/* ===== BANNER GRANDE: INGRESSO JÁ UTILIZADO ===== */
.usado-banner{
    background:linear-gradient(135deg,#d9485f,#b8283f);
    border-radius:18px;
    padding:20px 18px;
    margin-bottom:14px;
    text-align:center;
    box-shadow:0 10px 30px rgba(217,72,95,.35);
    animation:usadoPulse 1.8s ease-in-out infinite;
}
.usado-banner-icon{ font-size:2.4rem; color:#fff; margin-bottom:6px; }
.usado-banner-title{
    font-size:1.35rem; font-weight:900; color:#fff;
    text-transform:uppercase; letter-spacing:.5px; line-height:1.2;
    margin-bottom:4px;
}
.usado-banner-sub{ font-size:.85rem; font-weight:600; color:rgba(255,255,255,.92); }
@keyframes usadoPulse{
    0%,100%{ box-shadow:0 10px 30px rgba(217,72,95,.35); }
    50%{ box-shadow:0 10px 40px rgba(217,72,95,.6); }
}

/* Selo diagonal "USADO" sobre o QR quando o ingresso já foi utilizado */
.ticket-qr-section{ position:relative; }
.qr-usado-stamp{
    position:absolute; top:50%; left:50%;
    transform:translate(-50%,-50%) rotate(-18deg);
    border:4px solid #d9485f; color:#d9485f;
    font-weight:900; font-size:1.5rem; letter-spacing:2px;
    padding:6px 18px; border-radius:10px;
    background:rgba(255,255,255,.85);
    z-index:4;
}
.ticket-qr-img.usado{ filter:grayscale(1); opacity:.35; }

/* Corte tipo ticket (picote) */
.ticket-notch{
    display:flex;
    align-items:center;
    position:relative;
    margin:0;
}
.notch-left,.notch-right{
    width:22px; height:22px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--cp)22,var(--cs)11);
    flex-shrink:0;
}
.notch-left{ margin-left:-11px; }
.notch-right{ margin-right:-11px; }
.notch-line{
    flex:1;
    border-top:2px dashed #E9EBF1;
}

/* Corpo do ticket */
.ticket-.ticket-row{
    display:flex; align-items:flex-start; gap:12px;
    margin-bottom:14px;
}
.ticket-icon{
    width:36px; height:36px;
    border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
    font-size:.9rem;
}
.ticket-info-label{ font-size:.65rem; font-weight:700; color:#8e95a5; text-transform:uppercase; letter-spacing:.4px; margin-bottom:2px; }
.ticket-info-value{ font-size:.9rem; font-weight:700; color:#1A1A2E; line-height:1.3; }
.ticket-info-sub{ font-size:.75rem; color:#596071; margin-top:1px; }

/* Seção QR */
.ticket-qr-section{
    background:#F7F8FC;
    border-radius:16px;
    padding:16px;
    text-align:center;
    margin-top:4px;
}
.ticket-qr-img{
    width:160px; height:160px;
    border-radius:10px;
    border:3px solid #fff;
    box-shadow:0 4px 14px rgba(0,0,0,.1);
    display:block; margin:0 auto 10px;
}
.ticket-qr-label{
    font-size:.72rem; font-weight:700; color:#596071;
    margin-bottom:4px;
}
.ticket-qr-hint{
    font-size:.62rem; color:#8e95a5; line-height:1.4;
}
.ticket-token{
    font-family:monospace;
    font-size:.62rem;
    color:#b8bfcc;
    margin-top:8px;
    word-break:break-all;
    letter-spacing:.3px;
}

/* Rodapé ticket */
.ticket-footer{
    background:linear-gradient(135deg,var(--cp),var(--cs));
    padding:12px 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.ticket-footer-brand{
    font-size:.7rem; font-weight:700; color:rgba(255,255,255,.9);
}
.ticket-footer-url{
    font-size:.65rem; color:rgba(255,255,255,.75);
}

/* ===== BOTÕES DE AÇÃO ===== */
.acoes-fixas{
    position:fixed;
    bottom:0; left:0; right:0;
    background:#fff;
    box-shadow:0 -4px 20px rgba(0,0,0,.1);
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    display:flex; gap:8px;
    max-width:440px; margin:0 auto;
    z-index:200;
}
.btn-download{
    flex:1; padding:13px 10px;
    border-radius:14px;
    background:linear-gradient(135deg,var(--cp),var(--cs));
    color:#fff; font-weight:700; font-size:.875rem;
    border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:8px;
    font-family:'Quicksand',sans-serif;
}
.btn-pdf{
    flex:1; padding:13px 8px;
    border-radius:14px;
    background:#1A1A2E;
    color:#fff; font-weight:700; font-size:.875rem;
    border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:6px;
    font-family:'Quicksand',sans-serif;
}
.btn-wpp{
    flex:0 0 auto; width:48px; padding:13px 10px;
    border-radius:14px;
    background:#25D366;
    color:#fff; font-weight:700; font-size:1rem;
    border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:8px;
    font-family:'Quicksand',sans-serif;
}
.btn-editar{
    padding:13px 14px;
    border-radius:14px;
    background:#F0F2F8;
    color:#596071; font-weight:700; font-size:.875rem;
    border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:6px;
    font-family:'Quicksand',sans-serif;
}

/* ===== MODAL EDIÇÃO ===== */
.modal-overlay{
    display:none; position:fixed; inset:0;
    background:rgba(15,20,40,.55); z-index:500;
    align-items:center; justify-content:center;
    backdrop-filter:blur(3px); padding:16px;
}
.modal-card{
    background:#fff; border-radius:22px;
    padding:24px 20px 26px;
    width:100%; max-width:400px;
    max-height:88vh; overflow-y:auto;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.modal-title{ font-size:1.05rem; font-weight:800; color:#1A1A2E; margin-bottom:16px; }
.form-label{ font-size:.8rem; font-weight:700; color:#596071; display:block; margin-bottom:5px; }
.form-select, .form-input{
    width:100%; padding:11px 14px;
    border:1.5px solid #E9EBF1; border-radius:12px;
    font-size:.875rem; outline:none;
    font-family:'Quicksand',sans-serif;
    margin-bottom:14px;
}
.form-select:focus, .form-input:focus{ border-color:var(--cp); }
.btn-salvar{
    width:100%; padding:13px;
    border-radius:12px;
    background:linear-gradient(135deg,var(--cp),var(--cs));
    color:#fff; font-weight:700; font-size:.9rem;
    border:none; cursor:pointer;
    font-family:'Quicksand',sans-serif;
}
.btn-cancelar{
    width:100%; margin-top:8px; padding:11px;
    border-radius:12px; background:#F0F2F8;
    border:none; font-size:.875rem; font-weight:600;
    color:#596071; cursor:pointer;
    font-family:'Quicksand',sans-serif;
}

/* Toast */
.nd-toast{
    position:fixed; bottom:90px; left:50%; transform:translateX(-50%);
    z-index:9999; padding:12px 20px; border-radius:12px;
    font-size:.875rem; font-weight:600; max-width:300px;
    text-align:center; box-shadow:0 8px 24px rgba(0,0,0,.15);
    animation:fadeIn .3s ease; color:#fff;
    font-family:'Quicksand',sans-serif;
}
@keyframes fadeIn{ from{opacity:0;transform:translateX(-50%) translateY(8px);}to{opacity:1;transform:translateX(-50%);} }



/* Detalhes migrado de convite_detalhes.php */

.cd-wrap{max-width:1080px;margin:0 auto;padding:20px 20px 60px;}
.cd-voltar{display:inline-flex;align-items:center;gap:6px;color:#8e95a5;font-size:.82rem;text-decoration:none;font-weight:600;margin-bottom:16px;}
.cd-grid{display:grid;grid-template-columns:1fr;gap:24px;}
@media (min-width:860px){.cd-grid{grid-template-columns:380px 1fr;}}

.cd-gallery{position:relative;height:280px;border-radius:20px;overflow:hidden;background:#1A1A2E;box-shadow:0 10px 30px rgba(0,0,0,.12);}
.cd-gallery.sem-galeria{<?= $coverStyle ?>background-size:cover;background-position:center;}
.cd-gallery img{width:100%;height:100%;object-fit:cover;display:none;}
.cd-gallery img.active{display:block;}
.cd-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.25);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(3px);}
.cd-gallery-nav.prev{left:12px;} .cd-gallery-nav.next{right:12px;}
.cd-premium-badge{position:absolute;top:14px;right:14px;background:rgba(255,255,255,.92);color:#B8860B;font-size:.68rem;font-weight:800;padding:4px 11px;border-radius:999px;display:flex;align-items:center;gap:5px;z-index:2;}

.cd-cat-badge{display:inline-flex;align-items:center;gap:6px;background:#FFF0F6;color:#e94683;font-weight:800;font-size:.72rem;padding:6px 12px;border-radius:999px;margin-bottom:10px;}
.cd-nome{font-size:1.6rem;font-weight:800;color:#1A1A2E;margin:0 0 6px;}
.cd-desc{color:#596071;font-size:.9rem;line-height:1.6;margin:0 0 14px;}
.cd-rating{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#596071;margin-bottom:16px;}
.cd-rating .stars{color:#F5A623;font-size:.95rem;}
.cd-preco{font-size:1.8rem;font-weight:800;color:#e94683;margin-bottom:18px;}
.cd-preco .free{color:#17a673;font-size:1rem;font-weight:700;}

.cd-section-title{font-size:.78rem;font-weight:800;color:#1A1A2E;text-transform:uppercase;letter-spacing:.03em;margin:0 0 10px;}
.cd-list{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:8px;}
.cd-list li{font-size:.85rem;color:#596071;display:flex;align-items:center;gap:10px;}
.cd-list li i{color:#17a673;font-size:.78rem;width:16px;flex-shrink:0;}

.cd-cta{display:block;width:100%;padding:15px;border-radius:14px;text-align:center;text-decoration:none;background:linear-gradient(135deg,#e94683,#c92f6b);color:#fff;font-weight:800;font-size:.95rem;box-shadow:0 8px 22px rgba(233,70,131,.32);}



/* Detalhes migrado de painel/convite_detalhes.php */

.cvd-gallery{position:relative;height:220px;border-radius:var(--nd-radius-lg);overflow:hidden;background:linear-gradient(135deg,var(--cvd-primary),var(--cvd-secondary));}
.cvd-gallery img{width:100%;height:100%;object-fit:cover;display:none;}
.cvd-gallery img.active{display:block;}
.cvd-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.25);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(3px);}
.cvd-gallery-nav.prev{left:10px;} .cvd-gallery-nav.next{right:10px;}
.cvd-list{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.cvd-list li{font-size:.85rem;color:var(--nd-ink-soft);display:flex;align-items:center;gap:10px;}
.cvd-list li i{color:var(--nd-success);font-size:.78rem;width:16px;flex-shrink:0;}
.cvd-promise{background:linear-gradient(135deg,#fff7fb,#faf8ff);border:1px solid #f0e5f3;border-radius:18px;padding:15px 16px;}
.cvd-promise-title{font-size:.84rem;font-weight:850;color:#2b2035;display:flex;align-items:center;gap:8px;}
.cvd-promise-title i{color:#8b2fc9;}
.cvd-promise p{font-size:.74rem;line-height:1.55;color:#81768d;margin:7px 0 12px;}
.cvd-promise-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;font-size:.68rem;color:#665674;font-weight:700;}
.cvd-promise-grid span{display:flex;align-items:center;gap:6px;}
.cvd-promise-grid i{color:#e94683;font-size:.72rem;}
.cvd-estrelas i{color:#F5A623;font-size:1.05rem;cursor:pointer;transition:transform .1s;}
.cvd-estrelas i:hover{transform:scale(1.2);}


/* Resumo fixo do convite público */
.niv-event-summary{position:fixed;top:0;left:50%;z-index:70;display:flex;align-items:center;gap:9px;width:min(100%,var(--nd-shell));min-height:58px;padding:7px 10px;opacity:0;pointer-events:none;transform:translate(-50%,-110%);background:rgba(255,255,255,.94);border-bottom:1px solid rgba(233,235,241,.9);box-shadow:0 8px 24px rgba(31,36,52,.12);backdrop-filter:blur(18px);transition:transform .35s ease,opacity .35s ease}
.niv-event-summary.is-visible{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.niv-event-summary-photo{position:relative;width:40px;height:40px;flex:0 0 40px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--cp),var(--cs));border-radius:12px}.niv-event-summary-photo img.niv-summary-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease}.niv-event-summary-photo img.niv-summary-slide.is-active{opacity:1}
.niv-event-summary-info{display:flex;min-width:0;flex:1;flex-direction:column;line-height:1.15}.niv-event-summary-info strong{overflow:hidden;color:var(--nd-ink);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.niv-event-summary-info span{margin-top:3px;color:var(--nd-muted);font-size:.65rem}.niv-event-summary-gps{display:flex;width:36px;height:36px;align-items:center;justify-content:center;flex:0 0 36px;color:#fff;background:linear-gradient(135deg,var(--cp),var(--cs));border-radius:50%;box-shadow:0 5px 12px rgba(233,70,131,.25)}
.nd-invite-page{scroll-behavior:smooth}.nd-invite-page .niv-invite-hero{transition:height .45s cubic-bezier(.22,.61,.36,1),min-height .45s cubic-bezier(.22,.61,.36,1),transform .45s ease}

/* Abas dos criadores de convites */
.nd-admin-tab-nav{display:flex;gap:6px;margin-bottom:10px;padding:4px;background:#f5f2f8;border-radius:12px}.nd-admin-tab-btn{flex:1;padding:9px 6px;border:0;border-radius:9px;background:transparent;color:#8e95a5;font-size:.7rem;font-weight:800;cursor:pointer}.nd-admin-tab-btn.active{color:#fff;background:linear-gradient(135deg,#e94683,#8b2fc9);box-shadow:0 5px 14px rgba(139,47,201,.2)}
.nd-admin-tab-panel{min-width:0}.nd-advanced-tools{box-shadow:0 8px 24px rgba(139,47,201,.08)}.nd-ai-tool-btn{border:0;background:transparent;color:#8b2fc9;font-size:.65rem;font-weight:800;cursor:pointer;margin-left:6px}.nd-ai-tool-btn:hover{text-decoration:underline}

/* Recursos de mídia dos convites: slides, movimento e imagem final */
.nd-public-slides{margin:20px auto;max-width:680px;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(26,26,46,.12)}
.nd-public-slides-track{display:flex;position:relative;min-height:180px}
.nd-public-slide{display:none;width:100%;margin:0;animation:ndInviteSlideIn .55s ease both}
.nd-public-slide.is-active{display:block}
.nd-public-slide img{display:block;width:100%;max-height:430px;object-fit:cover;aspect-ratio:16/10}
.nd-public-slides-dots{display:flex;justify-content:center;gap:7px;padding:10px;background:#fff}
.nd-public-slides-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#d7dbe7;cursor:pointer}
.nd-public-slides-dots button.is-active{background:var(--cor-primaria,#e94683);transform:scale(1.2)}
.nd-public-final-image{max-width:680px;margin:22px auto 36px;text-align:center;animation:ndInviteSlideIn .7s ease both}
.nd-public-final-image img{display:block;width:100%;max-height:420px;object-fit:cover;border-radius:18px;box-shadow:0 12px 30px rgba(26,26,46,.14)}
@keyframes ndInviteSlideIn{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
.nd-public-slides[data-motion-collection="flutuante"] .nd-public-slide.is-active img{animation:ndInviteFloat 4s ease-in-out infinite}
.nd-public-slides[data-motion-collection="organico"] .nd-public-slide.is-active img{animation:ndInviteOrganic 5s ease-in-out infinite alternate}
.nd-public-slides[data-motion-collection="celebracao"] .nd-public-slide.is-active img{animation:ndInviteCelebrate 3.5s ease-in-out infinite}
@keyframes ndInviteFloat{50%{transform:translateY(-6px) scale(1.01)}}
@keyframes ndInviteOrganic{to{transform:scale(1.035) rotate(.4deg)}}
@keyframes ndInviteCelebrate{50%{filter:saturate(1.15) brightness(1.05);transform:scale(1.025)}}
@media (prefers-reduced-motion:reduce){.nd-public-slide,.nd-public-final-image,.nd-public-slides img{animation:none!important}}

/* Seleção individual de conteúdos liberados por plano */
.nd-plan-checklist{display:grid;gap:6px;max-height:190px;overflow:auto;padding:8px;background:#fff;border:1px solid #dbeafe;border-radius:9px}
.nd-plan-check{display:flex;align-items:flex-start;gap:7px;padding:7px 8px;border-radius:7px;color:#334155;font-size:.75rem;line-height:1.25;cursor:pointer;transition:background .15s,border-color .15s}
.nd-plan-check:hover{background:#f8fbff}
.nd-plan-check input{flex:0 0 auto;margin-top:2px;accent-color:#2563eb}
.nd-plan-check:has(input:checked){background:#eff6ff;color:#1d4ed8;font-weight:700}
@media (max-width:800px){.nd-plan-relationships>div:nth-child(2){grid-template-columns:1fr!important}}

/* Prévia administrativa usando o renderer público real */
.nd-public-preview-shell{width:100%;min-height:520px;overflow:hidden;background:#f6f7fb;border:1px solid #e9ebf1;border-radius:18px}
.nd-public-preview-frame{display:block;width:100%;height:560px;border:0;background:#f6f7fb}
.nd-public-preview-empty{min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:32px;text-align:center;color:#8e95a5;background:linear-gradient(145deg,#fff,#f8f5ff)}
.nd-public-preview-empty i{font-size:2.1rem;color:#e94683}
.nd-public-preview-empty strong{font-size:.95rem;color:#1a1a2e}
.nd-public-preview-empty span{max-width:320px;font-size:.75rem;line-height:1.5}
@media (max-width:700px){.nd-public-preview-frame{height:640px}.nd-public-preview-shell,.nd-public-preview-empty{min-height:600px}}

/* Creator Studio — página profissional de criação de convites */
.nd-creator-page{max-width:1540px;margin:0 auto;padding-bottom:48px}.nd-creator-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.nd-creator-header h1{margin:6px 0 5px}.nd-creator-header p{margin:0;max-width:680px}.nd-creator-eyebrow,.nd-kicker{display:inline-flex;align-items:center;gap:7px;color:#8b2fc9;font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.nd-creator-actions{display:flex;gap:9px;flex-wrap:wrap}.nd-creator-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);gap:22px;align-items:start}.nd-creator-editor{min-width:0}.nd-preview-sticky{position:sticky;top:20px}.nd-creator-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;margin-bottom:12px;background:#fff;border:1px solid #e9ebf1;border-radius:16px;box-shadow:0 8px 26px rgba(31,36,52,.06)}.nd-creator-toolbar>div:last-child{display:flex;gap:7px}.nd-creator-toolbar strong{display:block;color:#1a1a2e;font-size:.92rem}.nd-creator-toolbar span{display:block;color:#8e95a5;font-size:.68rem;margin-top:3px}.nd-creator-tabs{display:flex;gap:6px;padding:5px;margin-bottom:14px;background:#f1eff6;border-radius:15px;overflow-x:auto}.nd-creator-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:1;min-width:120px;padding:11px 13px;border:0;border-radius:11px;color:#8e95a5;background:transparent;font-size:.76rem;font-weight:800;cursor:pointer;white-space:nowrap;transition:all .2s}.nd-creator-tabs button.active{color:#fff;background:linear-gradient(135deg,#e94683,#8b2fc9);box-shadow:0 7px 18px rgba(139,47,201,.2)}.nd-creator-tab{display:none;gap:16px;padding:22px;background:#fff;border:1px solid #e9ebf1;border-radius:20px;box-shadow:0 9px 28px rgba(31,36,52,.06)}.nd-creator-tab.active{display:grid}.nd-section-heading{display:flex;justify-content:space-between;gap:16px;padding-bottom:4px;border-bottom:1px solid #f0eff4}.nd-section-heading h2{margin:5px 0 4px;color:#1a1a2e;font-size:1.28rem}.nd-section-heading p{margin:0;color:#8e95a5;font-size:.76rem}.nd-field-grid{display:grid;gap:14px}.nd-field-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.nd-field-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.nd-label{display:grid;gap:7px;color:#596071;font-size:.73rem;font-weight:800}.nd-label small{color:#9ba1ae;font-size:.66rem;font-weight:500;line-height:1.45}.nd-color-input{height:46px;padding:4px!important;cursor:pointer}.nd-code-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;line-height:1.55;background:#171925;color:#edf1ff;border-color:#30344a}.nd-toggle-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nd-toggle-row label{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid #eceaf2;border-radius:13px;cursor:pointer;transition:.2s}.nd-toggle-row label:has(input:checked){border-color:#e94683;background:#fff5f9}.nd-toggle-row input{margin-top:3px;accent-color:#e94683}.nd-toggle-row strong,.nd-toggle-row small{display:block}.nd-toggle-row strong{color:#343647;font-size:.76rem}.nd-toggle-row small{margin-top:3px;color:#8e95a5;font-size:.65rem}.nd-resource-box{padding:15px;background:linear-gradient(145deg,#fff8fc,#f8f5ff);border:1px solid #f0ddec;border-radius:15px}.nd-box-title{margin-bottom:11px;color:#3d234f;font-size:.8rem;font-weight:850}.nd-box-title i{margin-right:6px;color:#8b2fc9}.nd-resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nd-resource-grid label{display:flex;align-items:flex-start;gap:7px;color:#596071;font-size:.7rem;line-height:1.35;cursor:pointer}.nd-resource-grid input{margin-top:2px;accent-color:#8b2fc9}.nd-upload-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:14px}.nd-file-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.nd-file-grid .nd-input{min-width:0;padding:7px;font-size:.65rem}.nd-choice-block{display:grid;gap:10px}.nd-choice-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.nd-choice-title strong{color:#343647;font-size:.78rem}.nd-choice-title span{color:#9ba1ae;font-size:.65rem}.nd-choice-rail{display:flex;gap:10px;overflow-x:auto;padding:3px 2px 10px;scroll-snap-type:x proximity;scrollbar-width:thin}.nd-choice-card{position:relative;display:grid;flex:0 0 142px;gap:6px;padding:8px;background:#fff;border:1px solid #e9ebf1;border-radius:14px;cursor:pointer;scroll-snap-align:start;transition:transform .18s,box-shadow .18s,border-color .18s}.nd-choice-card:hover{transform:translateY(-2px);border-color:#e94683}.nd-choice-card.selected{border-color:#e94683;box-shadow:0 0 0 2px rgba(233,70,131,.16),0 8px 18px rgba(233,70,131,.12)}.nd-choice-card input{position:absolute;opacity:0;pointer-events:none}.nd-choice-card strong{overflow:hidden;color:#343647;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.nd-choice-card small{overflow:hidden;color:#9ba1ae;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.nd-choice-visual{display:flex;align-items:center;justify-content:center;height:70px;color:#fff;background:linear-gradient(135deg,var(--choice-a,#e94683),var(--choice-b,#8b2fc9));border-radius:10px;font-size:1.25rem}.nd-choice-visual.layout-editorial{background:linear-gradient(135deg,#172033,#b88c49)}.nd-choice-visual.layout-cinema{background:linear-gradient(135deg,#05050a,#813c78)}.nd-choice-visual.layout-minimal{background:linear-gradient(135deg,#f6f7fb,#d5dae5);color:#596071}.nd-choice-visual.layout-magazine{background:linear-gradient(135deg,#ea5a8a,#f4bf54)}.nd-choice-visual.layout-story{background:linear-gradient(135deg,#4e65a5,#78c4d4)}.nd-status-toggle{display:flex;align-items:center;gap:8px;min-height:46px;padding:12px 14px;background:#fff;border:1px solid #e9ebf1;border-radius:16px;font-size:.76rem;font-weight:700;color:#596071;cursor:pointer}.nd-status-toggle input{accent-color:#17a673}.nd-status-toggle:has(input:checked){border-color:#17a673;background:#f0fbf6;color:#08794e}.nd-choice-visual.preset-editorial{background:linear-gradient(135deg,#172033,#b88c49)}.nd-choice-visual.preset-festa{background:linear-gradient(135deg,#e94683,#f4bf54)}.nd-choice-visual.preset-encanto{background:linear-gradient(135deg,#8b2fc9,#e9a7d4)}.nd-choice-visual.preset-noite{background:linear-gradient(135deg,#101a3c,#493a87)}.nd-choice-visual.preset-praia{background:linear-gradient(135deg,#0ea5a8,#f4bf54)}.nd-ai-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px;background:linear-gradient(135deg,#fff1f7,#f4edff);border:1px solid #f0ddec;border-radius:16px}.nd-ai-hero strong{color:#3d234f;font-size:.9rem}.nd-ai-hero p{margin:5px 0 0;color:#81768d;font-size:.7rem;line-height:1.45}.nd-creator-submit{display:flex;justify-content:flex-end;padding-top:14px}.nd-preview-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 12px}.nd-preview-heading h2{margin:5px 0 3px;color:#1a1a2e;font-size:1.18rem}.nd-preview-heading p{margin:0;color:#8e95a5;font-size:.7rem}.nd-live-dot{display:inline-flex;align-items:center;gap:5px;color:#17a673;font-size:.68rem;font-weight:800}.nd-live-dot i{width:7px;height:7px;border-radius:50%;background:#17a673;box-shadow:0 0 0 4px rgba(23,166,115,.12)}.nd-preview-tip{display:flex;gap:8px;margin-top:10px;padding:11px 12px;color:#81768d;background:#fff;border:1px solid #e9ebf1;border-radius:12px;font-size:.68rem;line-height:1.45}.nd-preview-tip i{color:#3979d5;margin-top:2px}.nd-existing-models{margin-top:32px}.nd-existing-models h2{margin:4px 0 0}.nd-table td small{display:block;margin-top:3px;color:#8e95a5;font-size:.68rem}.nd-model-thumb{display:block;width:58px;height:42px;object-fit:cover;border-radius:8px}.nd-model-gradient{background:linear-gradient(135deg,var(--choice-a,#e94683),var(--choice-b,#ffd166))}.nd-row-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}@media(max-width:1100px){.nd-creator-layout{grid-template-columns:1fr}.nd-preview-sticky{position:relative}.nd-public-preview-frame{height:620px}}@media(max-width:720px){.nd-creator-header,.nd-creator-toolbar{align-items:stretch;flex-direction:column}.nd-field-grid-2,.nd-field-grid-3,.nd-upload-grid,.nd-toggle-row{grid-template-columns:1fr}.nd-resource-grid{grid-template-columns:1fr}.nd-creator-tab{padding:15px}.nd-ai-hero{align-items:stretch;flex-direction:column}.nd-creator-actions{width:100%}.nd-creator-actions .nd-btn{flex:1}.nd-choice-card{flex-basis:128px}}

/* Abas principais do administrador: Convites e Categorias */
.nd-main-admin-tabs{display:flex;gap:6px;padding:5px;margin:16px 0;background:#f1eff6;border-radius:15px;overflow-x:auto}.nd-main-admin-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:1;min-width:180px;padding:13px 16px;border:0;border-radius:11px;background:transparent;color:#8e95a5;font-size:.8rem;font-weight:850;cursor:pointer;transition:all .2s}.nd-main-admin-tabs button.active{color:#fff;background:linear-gradient(135deg,#e94683,#8b2fc9);box-shadow:0 7px 18px rgba(139,47,201,.2)}.nd-main-admin-panel{display:none}.nd-main-admin-panel.active{display:block}.nd-category-studio{display:grid;gap:20px;padding:22px;background:#fff;border:1px solid #e9ebf1;border-radius:20px;box-shadow:0 9px 28px rgba(31,36,52,.06)}.nd-category-form{display:grid;grid-template-columns:1.1fr 1.8fr 120px auto;gap:12px;align-items:end;padding:16px;background:linear-gradient(145deg,#fff8fb,#f8f5ff);border:1px solid #f0ddec;border-radius:15px}.nd-category-form .nd-btn{min-height:46px}.nd-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.nd-category-card{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:11px;padding:15px;background:#fff;border:1px solid #e9ebf1;border-radius:15px;box-shadow:0 5px 16px rgba(31,36,52,.04)}.nd-category-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;color:#fff;background:var(--category-color,#e94683);border-radius:13px}.nd-category-card strong{display:block;color:#343647;font-size:.82rem}.nd-category-card small{display:block;margin-top:2px;color:#8e95a5;font-size:.65rem}.nd-category-card p{margin:7px 0 0;color:#81768d;font-size:.68rem;line-height:1.4}.nd-empty-state{padding:36px;text-align:center;color:#8e95a5;border:1px dashed #dfe2eb;border-radius:14px}@media(max-width:720px){.nd-category-form{grid-template-columns:1fr}.nd-main-admin-tabs button{min-width:140px}.nd-category-card{grid-template-columns:auto 1fr}.nd-category-card .nd-badge{grid-column:2}}

/* Rebuild server-side de Convites Prontos: abas e categorias */
.nd-main-admin-tabs{display:flex;gap:6px;padding:5px;margin:16px 0;background:#f1eff6;border-radius:15px;overflow-x:auto}.nd-main-admin-tabs a{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:1;min-width:180px;padding:13px 16px;border-radius:11px;color:#8e95a5;background:transparent;font-size:.8rem;font-weight:850;text-decoration:none;transition:all .2s}.nd-main-admin-tabs a.active{color:#fff;background:linear-gradient(135deg,#e94683,#8b2fc9);box-shadow:0 7px 18px rgba(139,47,201,.2)}.nd-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0;padding:18px 20px;background:#fff;border:1px solid #e9ebf1;border-radius:18px;box-shadow:0 8px 24px rgba(31,36,52,.06)}.nd-list-toolbar h2{margin:0 0 4px;color:#1a1a2e;font-size:1.05rem}.nd-list-toolbar p{margin:0;color:#8e95a5;font-size:.72rem}.nd-category-studio{display:grid;gap:20px;padding:22px;background:#fff;border:1px solid #e9ebf1;border-radius:20px;box-shadow:0 9px 28px rgba(31,36,52,.06)}.nd-category-form{display:grid;grid-template-columns:1.1fr 1.8fr 120px auto;gap:12px;align-items:end;padding:16px;background:linear-gradient(145deg,#fff8fb,#f8f5ff);border:1px solid #f0ddec;border-radius:15px}.nd-category-form .nd-btn{min-height:46px}.nd-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.nd-category-card{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:11px;padding:15px;background:#fff;border:1px solid #e9ebf1;border-radius:15px;box-shadow:0 5px 16px rgba(31,36,52,.04)}.nd-category-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;color:#fff;background:var(--category-color,#e94683);border-radius:13px}.nd-category-card strong{display:block;color:#343647;font-size:.82rem}.nd-category-card small{display:block;margin-top:2px;color:#8e95a5;font-size:.65rem}.nd-category-card p{margin:7px 0 0;color:#81768d;font-size:.68rem;line-height:1.4}.nd-empty-state{padding:36px;text-align:center;color:#8e95a5;border:1px dashed #dfe2eb;border-radius:14px}@media(max-width:720px){.nd-list-toolbar{align-items:stretch;flex-direction:column}.nd-list-toolbar .nd-btn{width:100%}.nd-category-form{grid-template-columns:1fr}.nd-main-admin-tabs a{min-width:140px}.nd-category-card{grid-template-columns:auto 1fr}.nd-category-card .nd-badge{grid-column:2}}

/* Cards de experiência visual usados pelo editor administrativo */
.nd-choice-card{font:inherit;text-align:left;color:inherit}.nd-choice-card .nd-choice-visual{width:100%;border:0}.nd-choice-card[data-choice-value]{appearance:none}.nd-choice-card[data-choice-value]:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(233,70,131,.2)}
