:root {
  --pink: #ff4d7d;
  --pink-dark: #d93668;
  --ink: #111827;
  --muted: #667085;
  --line: #e6e8ef;
  --soft: #f7f8fb;
  --admin: #111936;
  --cyan: #00b8d9;
  --gold: #f6b73c;
}

body {
  color: var(--ink);
  font-family: Inter, 'Segoe UI', Arial, sans-serif;
  background: #fff;
}

a { color: var(--pink-dark); text-decoration: none; }
.text-pink { color: var(--pink-dark) !important; }
.brand-mark {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg, var(--pink), var(--gold));
  font-weight: 800;
}

.btn-primary {
  --tblr-btn-bg: var(--pink);
  --tblr-btn-border-color: var(--pink);
  --tblr-btn-hover-bg: var(--pink-dark);
  --tblr-btn-hover-border-color: var(--pink-dark);
}

.public-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(230, 232, 239, .8);
}

.hero {
  min-height: 680px;
  display: flex;
  align-items: center;
  background:
    linear-gradient(110deg, rgba(255, 77, 125, .98), rgba(246, 183, 60, .9)),
    url("https://images.unsplash.com/photo-1530103862676-de8c9debad1d?auto=format&fit=crop&w=1800&q=80") center/cover;
  color: #fff;
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
  gap: 4rem;
  align-items: center;
}

.hero h1 {
  font-size: clamp(4rem, 12vw, 8.5rem);
  line-height: .88;
  letter-spacing: 0;
  margin: 0 0 1.25rem;
}

.hero p, .page-hero p {
  max-width: 720px;
  font-size: 1.2rem;
}

.eyebrow {
  display: inline-block;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
  color: inherit;
  opacity: .86;
  margin-bottom: .75rem;
}

.phone-frame {
  width: min(100%, 390px);
  aspect-ratio: 9 / 16;
  margin-left: auto;
  border: 12px solid rgba(255, 255, 255, .72);
  border-radius: 34px;
  background: #fff;
  box-shadow: 0 30px 70px rgba(17, 24, 39, .28);
  padding: 1rem;
}

.invite-mini {
  height: 100%;
  border-radius: 22px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: end;
  color: #fff;
  background:
    linear-gradient(180deg, rgba(17, 24, 39, 0), rgba(17, 24, 39, .88)),
    url("https://images.unsplash.com/photo-1513151233558-d860c5398176?auto=format&fit=crop&w=900&q=80") center/cover;
}

.invite-mini h2 { font-size: 2rem; margin-top: .75rem; }
.invite-mini button {
  border: 0;
  border-radius: 8px;
  padding: .9rem 1rem;
  font-weight: 800;
  color: var(--pink-dark);
}

.stat-card, .feature-card, .price-card, .panel, .metric-card, .gift-card, .confirm-card, .qr-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(17, 24, 39, .06);
}

.stat-card {
  padding: 1.5rem;
  display: grid;
  gap: .35rem;
}
.stat-card i, .feature-card i { color: var(--pink); font-size: 2rem; }
.stat-card strong { font-size: 2.4rem; }

.feature-band { background: var(--soft); padding: 5rem 0; }
.section-title { margin-bottom: 2rem; }
.section-title h2, .page-hero h1 { font-size: clamp(2.3rem, 5vw, 4rem); letter-spacing: 0; }
.feature-card, .price-card, .gift-card { height: 100%; padding: 1.5rem; }
.feature-card h3, .gift-card h3 { font-size: 1.2rem; margin: 1rem 0 .5rem; }
.price-card strong { display: block; font-size: 2.75rem; margin: 1rem 0; }

.page-hero {
  padding: 6rem 0 4rem;
  background: linear-gradient(135deg, #fff2f6, #effbff);
}

.timeline { display: grid; gap: 1rem; }
.timeline-step {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.timeline-step span {
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: var(--pink);
  color: #fff;
  font-weight: 800;
}

.auth-shell { min-height: 100vh; background: var(--soft); }
.auth-wrap {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(340px, 520px) minmax(0, 1fr);
}
.auth-panel { padding: clamp(2rem, 6vw, 4rem); background: #fff; }
.auth-art {
  display: flex;
  align-items: end;
  padding: 4rem;
  color: #fff;
  background:
    linear-gradient(180deg, rgba(17, 24, 39, .08), rgba(17, 24, 39, .72)),
    url("https://images.unsplash.com/photo-1464349153735-7db50ed83c84?auto=format&fit=crop&w=1400&q=80") center/cover;
}
.auth-art h1 { max-width: 700px; font-size: clamp(2.6rem, 6vw, 5rem); letter-spacing: 0; }
.auth-art p { max-width: 640px; font-size: 1.15rem; }

.app-shell, .admin-shell {
  min-height: 100vh;
  background: #f4f6fb;
}
.app-sidebar nav a.active,
.mobile-bottom-nav a.active {
  background: rgba(255, 77, 125, .12);
  color: var(--pink-dark);
}
.mobile-brand { display: none; align-items: center; gap: .5rem; font-weight: 900; color: var(--ink); }
.app-actions { display: flex; gap: .5rem; align-items: center; }
.icon-only { width: 42px; padding-inline: 0; }
.mobile-bottom-nav { display: none; }
.mobile-dashboard-hero {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: clamp(1.2rem, 4vw, 2rem);
  border-radius: 8px;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(17,25,54,.95), rgba(255,77,125,.84)),
    url("https://images.unsplash.com/photo-1513151233558-d860c5398176?auto=format&fit=crop&w=1200&q=80") center/cover;
  box-shadow: 0 18px 40px rgba(17,24,39,.14);
  margin-bottom: 1rem;
}
.mobile-dashboard-hero h1 {
  max-width: 760px;
  font-size: clamp(2rem, 6vw, 4rem);
  line-height: 1;
  margin: 0 0 .7rem;
}
.mobile-dashboard-hero p { margin: 0; max-width: 620px; opacity: .9; }
.quick-actions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: 1rem;
}
.quick-actions a {
  display: flex;
  align-items: center;
  gap: .6rem;
  min-height: 56px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: .8rem;
  color: var(--ink);
  font-weight: 850;
  box-shadow: 0 10px 24px rgba(17,24,39,.05);
}
.quick-actions i { color: var(--pink); font-size: 1.35rem; }
.event-card-list { display: grid; gap: .75rem; }
.event-mini-card {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: .8rem;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .8rem;
  background: #fff;
}
.event-date {
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #fff0f5;
  color: var(--pink-dark);
  min-height: 54px;
}
.event-date strong { font-size: 1.35rem; line-height: 1; }
.event-date span { font-size: .72rem; font-weight: 900; }
.event-mini-card h3 { margin: 0; font-size: 1rem; }
.event-mini-card p { margin: .15rem 0 0; color: var(--muted); }
.sidebar, .admin-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: 270px;
  padding: 1.25rem;
  background: #fff;
  border-right: 1px solid var(--line);
  z-index: 10;
}
.admin-sidebar {
  background: linear-gradient(180deg, var(--admin), #1a2450);
  color: #fff;
  border: 0;
}
.brand {
  display: flex;
  align-items: center;
  gap: .65rem;
  font-weight: 900;
  font-size: 1.1rem;
  margin-bottom: 1.5rem;
}
.sidebar nav, .admin-sidebar nav { display: grid; gap: .4rem; }
.sidebar nav a, .admin-sidebar nav a {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .85rem 1rem;
  border-radius: 8px;
  color: #374151;
  font-weight: 700;
}
.admin-sidebar nav a { color: rgba(255, 255, 255, .84); }
.sidebar nav a:hover, .admin-sidebar nav a:hover { background: rgba(255, 77, 125, .1); color: var(--pink-dark); }

.workspace, .admin-workspace { margin-left: 270px; min-height: 100vh; }
.topbar, .admin-topbar {
  height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.5rem;
  background: rgba(255, 255, 255, .9);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 8;
  backdrop-filter: blur(12px);
}
.workspace-content { padding: 1.5rem; }
.page-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1.5rem;
}
.page-head h1 { margin: 0; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: 0; }
.page-head p { color: var(--muted); margin: .25rem 0 0; }

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.metric-grid.compact { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.metric-card {
  padding: 1.25rem;
  display: grid;
  gap: .4rem;
}
.metric-card i {
  color: var(--pink);
  font-size: 1.6rem;
}
.metric-card strong { font-size: 2.1rem; line-height: 1; }
.metric-card span { color: var(--muted); font-weight: 700; }
.metric-card.admin i { color: var(--cyan); }

.panel { padding: 1.25rem; }
.panel h2 { font-size: 1.2rem; margin-bottom: 1rem; }
.panel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
.panel-head h2 { margin: 0; }
.activity-item, .gift-row, .log-row {
  display: flex;
  gap: .9rem;
  align-items: center;
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.activity-item i {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 8px;
  background: #e7f9ef;
  color: #1b8a4d;
}
.gift-row, .log-row { justify-content: space-between; }
.log-row { display: grid; }
.log-row span { color: var(--muted); font-size: .9rem; }
.accent-panel { background: linear-gradient(135deg, #111936, #26346d); color: #fff; }
.check-list { display: grid; gap: .85rem; }
.check-list span { display: flex; gap: .6rem; align-items: center; }

.plans-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.plan-card {
  position: relative;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 1.25rem;
  box-shadow: 0 14px 34px rgba(17, 24, 39, .06);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.plan-card.featured {
  border-color: var(--pink);
  box-shadow: 0 22px 48px rgba(255, 77, 125, .16);
}
.plan-card h2 { margin: 0; font-size: 1.3rem; }
.plan-card strong { font-size: 2.2rem; line-height: 1; }
.plan-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .65rem;
  color: var(--muted);
}
.plan-card li { display: flex; align-items: center; gap: .5rem; }
.plan-card li i { color: #16a34a; }
.plan-badge {
  position: absolute;
  right: 1rem;
  top: 1rem;
  border-radius: 999px;
  background: #fff0f5;
  color: var(--pink-dark);
  padding: .35rem .7rem;
  font-weight: 800;
  font-size: .8rem;
}
.upsell-strip {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  padding: 1rem;
  border: 1px dashed rgba(255,77,125,.5);
  border-radius: 8px;
  background: #fff7fa;
}
.upsell-strip span {
  border-radius: 999px;
  background: #fff;
  padding: .55rem .85rem;
  color: var(--pink-dark);
  font-weight: 800;
}
.segmented, .payment-methods {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem;
}
.payment-methods { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.segmented input, .payment-methods input { position: absolute; opacity: 0; pointer-events: none; }
.segmented span, .payment-methods span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font-weight: 800;
  cursor: pointer;
}
.segmented input:checked + span, .payment-methods input:checked + span {
  border-color: var(--pink);
  color: var(--pink-dark);
  background: #fff0f5;
}
.upgrade-note {
  display: flex;
  gap: .65rem;
  align-items: flex-start;
  padding: .85rem;
  border-radius: 8px;
  background: #fff7e6;
  color: #8a5a00;
  font-weight: 700;
  margin: .75rem 0 1rem;
}
.checkout-summary strong {
  display: block;
  font-size: 2.8rem;
  margin-bottom: 1rem;
}
.payment-status {
  text-align: center;
  padding: 2rem;
}
.payment-status > i {
  font-size: 4rem;
  color: var(--pink);
}
.payment-status.approved > i { color: #16a34a; }
.payment-status.rejected > i { color: #dc2626; }
.pix-qr {
  width: min(100%, 260px);
  border-radius: 8px;
  border: 1px solid var(--line);
}
.referral-box {
  background: linear-gradient(135deg, #fff0f5, #ecfeff);
}
.referral-box h2 {
  overflow-wrap: anywhere;
  font-size: clamp(1.4rem, 4vw, 2.4rem);
}
.onboarding-panel {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  background: linear-gradient(135deg, #fff0f5, #ecfeff);
}
.wizard-flow {
  display: grid;
  gap: 1rem;
}
.wizard-step {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 1.25rem;
  box-shadow: 0 14px 34px rgba(17, 24, 39, .06);
}
.wizard-step > span {
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 8px;
  background: var(--pink);
  color: #fff;
  font-weight: 900;
  margin-bottom: .75rem;
}
.wizard-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-radius: 8px;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(17,25,54,.94), rgba(255,77,125,.82)),
    url("https://images.unsplash.com/photo-1513151233558-d860c5398176?auto=format&fit=crop&w=1400&q=80") center/cover;
  box-shadow: 0 18px 42px rgba(17,24,39,.14);
}
.wizard-hero h1 {
  margin: 0 0 .45rem;
  font-size: clamp(2.4rem, 7vw, 5.2rem);
  line-height: .95;
}
.wizard-hero p {
  max-width: 760px;
  margin: 0;
  font-size: clamp(1rem, 2vw, 1.18rem);
  opacity: .92;
}
.wizard-hero .btn {
  flex: 0 0 auto;
  background: rgba(255,255,255,.94);
  border-color: rgba(255,255,255,.94);
}
.event-wizard {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}
.wizard-progress {
  position: sticky;
  top: 90px;
  display: grid;
  gap: .5rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: .75rem;
  box-shadow: 0 14px 34px rgba(17,24,39,.06);
}
.wizard-progress button {
  display: grid;
  grid-template-columns: 34px 24px minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #475467;
  min-height: 46px;
  padding: .45rem .55rem;
  text-align: left;
  font-weight: 800;
}
.wizard-progress button span {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: #eef2f7;
  color: #475467;
}
.wizard-progress button.active {
  background: #fff0f5;
  color: var(--pink-dark);
}
.wizard-progress button.active span,
.wizard-progress button.done span {
  background: var(--pink);
  color: #fff;
}
.wizard-progress button.done {
  color: #147a48;
}
.wizard-stage {
  min-width: 0;
}
.wizard-panel {
  display: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: clamp(1rem, 3vw, 1.45rem);
  box-shadow: 0 14px 34px rgba(17,24,39,.06);
}
.wizard-panel.active {
  display: block;
}
.wizard-panel-head {
  display: flex;
  gap: .85rem;
  align-items: flex-start;
  margin-bottom: 1.25rem;
}
.wizard-panel-head > span {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 8px;
  background: var(--pink);
  color: #fff;
  font-weight: 900;
  font-size: 1.1rem;
}
.wizard-panel-head h2 {
  margin: 0;
  font-size: clamp(1.35rem, 4vw, 2rem);
}
.wizard-panel-head p {
  margin: .25rem 0 0;
  color: var(--muted);
}
.event-type-grid,
.choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}
.event-type-card,
.choice-card {
  position: relative;
  display: grid;
  gap: .55rem;
  min-height: 150px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 1rem;
  cursor: pointer;
  box-shadow: 0 10px 26px rgba(17,24,39,.05);
}
.event-type-card input,
.choice-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.event-type-card > span,
.choice-card > span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 8px;
  background: #fff0f5;
  color: var(--pink-dark);
}
.event-type-card i,
.choice-card i {
  font-size: 1.35rem;
}
.event-type-card strong,
.choice-card strong {
  font-size: 1rem;
  line-height: 1.2;
}
.event-type-card small,
.choice-card small {
  color: var(--muted);
  font-weight: 700;
  line-height: 1.35;
}
.event-type-card:has(input:checked),
.choice-card:has(input:checked) {
  border-color: var(--pink);
  box-shadow: 0 0 0 3px rgba(255,77,125,.13), 0 14px 30px rgba(255,77,125,.12);
}
.wizard-field-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
}
.wizard-field {
  display: grid;
  gap: .35rem;
}
.wizard-field > span {
  color: #344054;
  font-size: .9rem;
  font-weight: 850;
}
.required-label::after {
  content: " *";
  color: #dc2626;
  font-weight: 900;
}
.wizard-field.wide { grid-column: span 2; }
.wizard-field.full { grid-column: 1 / -1; }
.wizard-field textarea {
  min-height: 148px;
  resize: vertical;
}
.wizard-actions {
  display: flex;
  justify-content: flex-end;
  gap: .65rem;
  margin-top: 1.15rem;
}
.wizard-template-grid {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}
.wizard-template-card {
  cursor: default;
  overflow: hidden;
}
.wizard-template-card label {
  display: grid;
  cursor: pointer;
}
.wizard-template-card .template-thumb {
  position: relative;
  display: grid;
  align-items: end;
  min-height: 190px;
  background: var(--template-bg);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.wizard-template-card .template-thumb::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 16% 18%, rgba(255,255,255,.85) 0 3px, transparent 4px),
    radial-gradient(circle at 76% 24%, rgba(255,255,255,.55) 0 4px, transparent 5px),
    radial-gradient(circle at 44% 10%, rgba(255,255,255,.42) 0 2px, transparent 3px);
  opacity: .9;
}
.wizard-template-card:has(input:checked)::before {
  content: "";
  position: absolute;
  top: .55rem;
  left: .55rem;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--pink);
  color: #fff;
  box-shadow: 0 8px 18px rgba(255,77,125,.35);
}
.wizard-template-card:has(input:checked)::after {
  content: "";
  position: absolute;
  top: 1.02rem;
  left: 1.05rem;
  z-index: 3;
  width: 12px;
  height: 7px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
}
.template-phone-preview {
  display: grid;
  gap: .4rem;
  margin: .75rem;
  padding: .75rem;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(180deg, rgba(17,24,39,0), rgba(17,24,39,.78));
}
.template-phone-preview b {
  font-size: 1.05rem;
  line-height: 1.1;
}
.template-phone-preview small {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  color: var(--pink-dark);
  padding: .25rem .55rem;
  font-weight: 900;
}
.template-preview-btn {
  margin: 0 .75rem .75rem;
}
.wizard-upload-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: .85rem;
  align-items: center;
  margin-top: 1rem;
  border: 1px dashed rgba(255,77,125,.5);
  border-radius: 8px;
  background: #fff7fa;
  padding: .9rem;
}
.wizard-upload-strip span {
  display: block;
  color: var(--muted);
  margin-top: .2rem;
}
.pix-fields {
  margin-top: 1rem;
  border: 1px solid #ffd6e2;
  border-radius: 8px;
  background: #fff7fa;
  padding: 1rem;
}
.publish-benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: 1rem;
}
.publish-benefits div {
  display: grid;
  gap: .35rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1rem;
  background: #f8fafc;
}
.publish-benefits i {
  color: var(--pink);
  font-size: 1.6rem;
}
.publish-benefits span,
.publish-switch small {
  display: block;
  color: var(--muted);
  font-weight: 600;
}
.publish-switch {
  align-items: flex-start;
  gap: .75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 1rem;
}
.template-preview-modal .modal-body {
  position: relative;
  padding: 1rem;
}
.template-preview-modal .btn-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  filter: invert(1);
}
.template-preview-large {
  min-height: 520px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-radius: 8px;
  color: #fff;
  padding: 1.25rem;
  overflow: hidden;
  position: relative;
  isolation: isolate;
}
.template-preview-large::before,
.template-preview-large::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  filter: blur(1px);
  animation: previewFloat 7s ease-in-out infinite;
  z-index: -1;
}
.template-preview-large::before {
  width: 180px;
  height: 180px;
  top: 8%;
  right: -42px;
}
.template-preview-large::after {
  width: 110px;
  height: 110px;
  left: -30px;
  bottom: 18%;
  animation-delay: -2s;
}
.template-live-confetti {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 16%, #fff 0 3px, transparent 4px),
    radial-gradient(circle at 72% 22%, #fef08a 0 4px, transparent 5px),
    radial-gradient(circle at 42% 12%, #67e8f9 0 3px, transparent 4px),
    radial-gradient(circle at 82% 62%, #f9a8d4 0 4px, transparent 5px),
    radial-gradient(circle at 26% 76%, #bbf7d0 0 3px, transparent 4px);
  animation: confettiDrift 5s linear infinite;
  opacity: .8;
}
.template-preview-phone {
  position: relative;
  z-index: 1;
  display: grid;
  gap: .85rem;
  padding: 1.15rem;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(17,24,39,.08), rgba(17,24,39,.72));
  backdrop-filter: blur(4px);
}
.template-preview-info {
  display: grid;
  gap: .4rem;
}
.template-preview-info div {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-weight: 800;
}
.template-preview-large span {
  width: fit-content;
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  color: var(--pink-dark);
  padding: .35rem .75rem;
  font-weight: 900;
}
.template-preview-large h3 {
  font-size: clamp(2.2rem, 10vw, 4rem);
  line-height: .95;
  margin: .75rem 0 .4rem;
}
.template-preview-large p {
  max-width: 420px;
  font-size: 1rem;
}
.template-preview-large button {
  width: 100%;
  border: 0;
  border-radius: 8px;
  background: #fff;
  color: var(--pink-dark);
  min-height: 46px;
  font-weight: 900;
}
.publish-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
}
.publish-actions .btn {
  min-height: 50px;
}
.publish-switch {
  display: flex;
}
.publish-switch .form-check-input {
  flex: 0 0 auto;
  margin-left: 0;
}
.edit-switches {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 1rem;
}
@keyframes previewFloat {
  0%, 100% { transform: translate3d(0,0,0) scale(1); }
  50% { transform: translate3d(-16px,18px,0) scale(1.08); }
}
@keyframes confettiDrift {
  0% { transform: translateY(-18px); }
  100% { transform: translateY(28px); }
}
.template-picker {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}
.template-preview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: .85rem;
}
.template-preview-grid.compact { grid-template-columns: 1fr; }
.template-card {
  position: relative;
  display: grid;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 12px 26px rgba(17,24,39,.06);
}
.template-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.template-thumb {
  display: block;
  aspect-ratio: 4 / 3;
  background-color: #f1f5f9;
  background-size: cover;
  background-position: center;
}
.template-meta {
  display: grid;
  gap: .15rem;
  padding: .8rem;
}
.template-meta strong { font-size: .95rem; }
.template-meta small { color: var(--muted); font-weight: 800; }
.template-card:has(input:checked) {
  border-color: var(--pink);
  box-shadow: 0 0 0 3px rgba(255,77,125,.16);
}
.template-card.locked {
  opacity: .58;
  cursor: not-allowed;
}
.template-card.locked::after {
  content: "Premium";
  position: absolute;
  top: .55rem;
  right: .55rem;
  border-radius: 999px;
  background: rgba(17,24,39,.85);
  color: #fff;
  padding: .25rem .55rem;
  font-size: .75rem;
  font-weight: 900;
}
.plan-context {
  display: flex;
  align-items: center;
  gap: .6rem;
  min-height: 44px;
  border: 1px solid #ffd6e2;
  border-radius: 8px;
  background: #fff7fa;
  color: #9f234d;
  padding: .65rem .8rem;
  font-weight: 800;
}
.plan-context a { margin-left: auto; white-space: nowrap; }
.template-picker input {
  position: absolute;
  opacity: 0;
}
.template-picker span {
  display: grid;
  min-height: 82px;
  align-content: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .85rem;
  cursor: pointer;
  font-weight: 900;
}
.template-picker small {
  color: var(--muted);
  font-weight: 700;
}
.template-picker input:checked + span {
  border-color: var(--pink);
  background: #fff0f5;
  color: var(--pink-dark);
}
.phrase-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
.phrase-chip {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .6rem .9rem;
  font-weight: 800;
  color: var(--ink);
}
.csv-sample {
  background: #0f172a;
  color: #dbeafe;
  border-radius: 8px;
  padding: 1rem;
  white-space: pre-wrap;
}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.gallery-grid figure {
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.gallery-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.gallery-grid figcaption {
  padding: .75rem;
  color: var(--muted);
}
.empty-state {
  text-align: center;
  padding: 2rem;
}
.empty-state > i {
  font-size: 3.4rem;
  color: var(--pink);
}
.invite-result {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}
.analytics-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .75rem .9rem;
}
.analytics-row span {
  overflow-wrap: anywhere;
}

.invite-hero {
  min-height: 720px;
  display: flex;
  align-items: center;
  color: #fff;
  background:
    linear-gradient(110deg, rgba(17, 24, 39, .8), rgba(255, 77, 125, .56)),
    url("https://images.unsplash.com/photo-1519671482749-fd09be7ccebf?auto=format&fit=crop&w=1800&q=80") center/cover;
}
.invite-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 2rem;
  align-items: end;
}
.invite-card-public {
  max-width: 820px;
  padding: 2rem 0;
}
.free-brand {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, .88);
  color: var(--pink-dark);
  padding: .45rem .8rem;
  font-weight: 900;
  margin-bottom: 1rem;
}
.invite-card-public h1 {
  font-size: clamp(3.5rem, 9vw, 7rem);
  line-height: .9;
  letter-spacing: 0;
}
.invite-main-image {
  width: min(100%, 520px);
  max-height: 360px;
  object-fit: cover;
  border-radius: 8px;
  border: 6px solid rgba(255, 255, 255, .78);
  box-shadow: 0 22px 60px rgba(17, 24, 39, .28);
  margin: 1rem 0;
}
.invite-details {
  display: grid;
  gap: .75rem;
  margin-top: 2rem;
}
.invite-details div { display: flex; align-items: center; gap: .75rem; font-size: 1.05rem; }
.qr-panel {
  padding: 1.25rem;
  text-align: center;
  color: var(--ink);
}
.qr-panel img { width: 100%; max-width: 220px; border-radius: 8px; }
.qr-panel span { color: var(--muted); display: block; }
.guest-cloud { display: flex; flex-wrap: wrap; gap: .7rem; }
.guest-cloud span {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .55rem .9rem;
  background: #fff;
}
.pix-public-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
  gap: 1rem;
  align-items: center;
  border: 1px solid #ffd6e2;
  border-radius: 8px;
  background:
    linear-gradient(135deg, #fff7fa, #ecfeff);
  padding: clamp(1.25rem, 4vw, 2rem);
  box-shadow: 0 14px 34px rgba(17,24,39,.06);
}
.pix-public-card h2 {
  margin: 0 0 .5rem;
  font-size: clamp(2rem, 5vw, 3.5rem);
}
.pix-public-card p {
  max-width: 680px;
  color: #475467;
  margin: 0;
}
.pix-copy-box {
  display: grid;
  gap: .6rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 1rem;
}
.pix-copy-box small {
  color: var(--muted);
  font-weight: 900;
}
.pix-copy-box strong {
  overflow-wrap: anywhere;
  font-size: 1.2rem;
}
.event-show-hero {
  display: grid;
  grid-template-columns: minmax(260px, 380px) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
  padding: clamp(1rem, 3vw, 1.35rem) 0 1.25rem;
  border-bottom: 1px solid rgba(230,232,239,.8);
  margin-bottom: 1.25rem;
}
.event-show-hero h1 {
  margin: .45rem 0 .35rem;
  font-size: clamp(2.4rem, 6vw, 4.2rem);
  line-height: .95;
}
.event-show-hero p {
  color: var(--muted);
  margin: 0;
}
.event-action-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  justify-content: flex-end;
}
.event-action-bar form {
  margin: 0;
}
.event-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 44px;
  border: 1px solid #cfd6e4;
  border-radius: 8px;
  background: #fff;
  color: #1f2a44;
  padding: .65rem .85rem;
  font-weight: 850;
  white-space: nowrap;
  box-shadow: 0 8px 18px rgba(17,24,39,.04);
}
.event-action:hover {
  color: var(--pink-dark);
  border-color: #ffc0d2;
  background: #fff7fa;
}
.event-action.primary {
  color: #fff;
  border-color: var(--pink);
  background: var(--pink);
}
.event-action.accent {
  color: var(--pink-dark);
  border-color: #ffd6e2;
  background: #fff0f5;
}
.event-action.success {
  color: #087443;
  border-color: #a7f3d0;
  background: #ecfdf3;
}
.event-action.dark {
  color: #fff;
  border-color: #111936;
  background: #111936;
}
.event-action.danger {
  color: #b42318;
  border-color: #fecaca;
  background: #fff1f2;
}
.confirm-page {
  min-height: calc(100vh - 72px);
  display: grid;
  place-items: center;
  padding: 2rem;
  background:
    linear-gradient(135deg, rgba(255, 77, 125, .9), rgba(0, 184, 217, .74)),
    url("https://images.unsplash.com/photo-1527529482837-4698179dc6ce?auto=format&fit=crop&w=1600&q=80") center/cover;
}
.confirm-card {
  width: min(100%, 620px);
  padding: clamp(1.25rem, 4vw, 2rem);
}
.confirm-meta { display: grid; gap: .5rem; color: var(--muted); }

@media (max-width: 980px) {
  .hero-grid, .invite-layout, .auth-wrap { grid-template-columns: 1fr; }
  .hero { padding: 5rem 0; }
  .phone-frame { margin: 0; }
  .auth-art { min-height: 420px; }
  .pix-public-card { grid-template-columns: 1fr; }
  .event-show-hero { grid-template-columns: 1fr; }
  .event-action-bar {
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: .25rem;
  }
  .sidebar, .admin-sidebar { position: static; width: auto; }
  .workspace, .admin-workspace { margin-left: 0; }
  .metric-grid, .metric-grid.compact, .plans-grid, .template-picker, .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-head { align-items: stretch; flex-direction: column; }
  .event-wizard { grid-template-columns: 1fr; }
  .wizard-progress {
    position: static;
    grid-template-columns: repeat(6, minmax(76px, 1fr));
    overflow-x: auto;
  }
  .wizard-progress button {
    grid-template-columns: 1fr;
    place-items: center;
    min-width: 76px;
    text-align: center;
    gap: .25rem;
  }
  .wizard-progress button strong {
    font-size: .78rem;
  }
  .wizard-progress button i {
    display: none;
  }
  .event-type-grid,
  .choice-grid,
  .publish-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wizard-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
  .app-shell { padding-bottom: calc(108px + env(safe-area-inset-bottom)); }
  .app-sidebar { display: none; }
  .app-workspace { margin-left: 0; }
  .app-topbar {
    min-height: 64px;
    height: auto;
    padding: .7rem 1rem;
  }
  .mobile-brand { display: inline-flex; }
  .app-user { display: none; }
  .app-actions .btn span { display: none; }
  .mobile-bottom-nav {
    position: fixed;
    inset: auto 0 0 0;
    z-index: 30;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    min-height: 66px;
    padding: .35rem .35rem calc(.35rem + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.96);
    border-top: 1px solid var(--line);
    box-shadow: 0 -10px 30px rgba(17,24,39,.08);
    backdrop-filter: blur(14px);
  }
  .mobile-bottom-nav a {
    display: grid;
    place-items: center;
    gap: .1rem;
    border-radius: 8px;
    color: #475467;
    font-size: .72rem;
    font-weight: 800;
  }
  .mobile-bottom-nav i { font-size: 1.35rem; }
  .mobile-dashboard-hero { align-items: stretch; flex-direction: column; }
  .mobile-dashboard-hero .btn { width: 100%; }
  .quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mobile-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .metric-grid, .metric-grid.compact, .plans-grid, .payment-methods, .template-picker, .gallery-grid { grid-template-columns: 1fr; }
  .workspace-content { padding: 1rem; }
  .topbar, .admin-topbar { height: auto; padding: 1rem; align-items: flex-start; }
  .hero h1, .invite-card-public h1 { font-size: 3.7rem; }
  .quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-actions a { min-height: 54px; padding: .7rem; }
  .mobile-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .mobile-metrics .metric-card { padding: .9rem; }
  .mobile-metrics .metric-card strong { font-size: 1.75rem; }
  .event-mini-card { grid-template-columns: 52px minmax(0, 1fr) 40px; }
  .event-mini-card .btn { width: 36px; padding-inline: 0; }
  .template-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .template-meta { padding: .65rem; }
  .template-meta strong { font-size: .86rem; }
  .wizard-hero {
    align-items: stretch;
    flex-direction: column;
    padding: 1.15rem;
  }
  .wizard-hero .btn { width: 100%; }
  .wizard-progress {
    margin-inline: -1rem;
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    padding-inline: 1rem;
  }
  .wizard-panel { padding: 1rem; }
  .wizard-panel-head {
    gap: .65rem;
  }
  .wizard-panel-head > span {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
  }
  .event-type-grid,
  .choice-grid,
  .publish-benefits,
  .wizard-field-grid,
  .wizard-upload-strip { grid-template-columns: 1fr; }
  .wizard-field.wide,
  .wizard-field.full { grid-column: auto; }
  .event-type-card,
  .choice-card {
    min-height: 118px;
    padding: .9rem;
  }
  .wizard-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .wizard-actions .btn { width: 100%; }
  .wizard-template-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wizard-template-card .template-thumb { min-height: 150px; }
  .template-preview-btn {
    width: calc(100% - 1.5rem);
  }
  .template-preview-large { min-height: 460px; }
  .publish-actions { grid-template-columns: 1fr; }
  .event-action-bar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow-x: visible;
  }
  .event-action-bar form,
  .event-action {
    width: 100%;
  }
  .event-action {
    min-height: 46px;
    padding-inline: .55rem;
  }
}

/* Professional polish pass */
html { text-size-adjust: 100%; }
body { font-size: 16px; }
.form-control, .form-select, .btn { min-height: 42px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; font-weight: 750; }
.table { vertical-align: middle; }
.table td, .table th { white-space: nowrap; }
.table td:first-child, .table td:nth-child(2) { white-space: normal; }

.public-nav .navbar-brand { gap: .5rem; }
.public-nav .nav-link { font-weight: 650; color: #344054; }
.public-nav .btn { min-height: 38px; }
.hero {
  min-height: clamp(560px, 78vh, 760px);
  padding: 5rem 0 3.5rem;
  background:
    linear-gradient(105deg, rgba(255, 77, 125, .92), rgba(246, 183, 60, .78)),
    url("https://images.unsplash.com/photo-1530103862676-de8c9debad1d?auto=format&fit=crop&w=1800&q=80") center/cover;
}
.hero-grid {
  grid-template-columns: minmax(0, .95fr) minmax(280px, 420px);
  gap: clamp(2rem, 5vw, 4rem);
}
.hero-copy { max-width: 680px; }
.hero h1 {
  font-size: clamp(3.4rem, 8vw, 6.7rem);
  line-height: .93;
  max-width: 680px;
}
.hero p { font-size: clamp(1rem, 1.7vw, 1.22rem); line-height: 1.55; }
.hero-preview { display: flex; justify-content: flex-end; }
.phone-frame { width: min(100%, 330px); border-width: 10px; }
.invite-mini h2 { font-size: clamp(1.45rem, 4vw, 2rem); line-height: 1.05; }
.feature-band { padding: clamp(3rem, 7vw, 5rem) 0; }
.section-title h2 { max-width: 820px; font-size: clamp(2.1rem, 4.5vw, 3.8rem); line-height: 1.02; }
.feature-card p { color: #475467; line-height: 1.55; }

.auth-shell { background: #101828; }
.auth-wrap {
  grid-template-columns: minmax(360px, 560px) minmax(0, 1fr);
  overflow: hidden;
}
.auth-panel {
  min-height: 100vh;
  overflow-y: auto;
  padding: clamp(1.5rem, 4vw, 3rem);
}
.auth-panel .navbar-brand { margin-bottom: clamp(1rem, 4vh, 2.25rem) !important; }
.auth-form { display: grid; gap: 1rem; }
.auth-form .form-check { align-items: flex-start; gap: .6rem; }
.auth-form .form-check-input { margin-top: .2rem; }
.auth-art {
  position: relative;
  align-items: end;
  min-width: 0;
  padding: clamp(2rem, 5vw, 4rem);
  background:
    linear-gradient(180deg, rgba(16, 24, 40, .12), rgba(16, 24, 40, .82)),
    url("https://images.unsplash.com/photo-1464349153735-7db50ed83c84?auto=format&fit=crop&w=1600&q=80") center/cover;
}
.auth-art-copy { max-width: 720px; }
.auth-art h1 {
  max-width: 720px;
  font-size: clamp(2.6rem, 5.4vw, 5.2rem);
  line-height: .96;
  overflow-wrap: normal;
}
.auth-art p { font-size: clamp(1rem, 1.5vw, 1.18rem); line-height: 1.55; }

.admin-shell { background: #f3f5f9; }
.admin-tabler-sidebar {
  background: #111936;
  border-right: 0;
  box-shadow: 10px 0 30px rgba(17, 25, 54, .12);
}
.admin-tabler-sidebar .navbar-brand {
  width: 100%;
  justify-content: flex-start;
  margin: .7rem 0 1rem;
}
.admin-tabler-sidebar .navbar-brand a {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  color: #fff;
}
.admin-tabler-sidebar .navbar-collapse {
  max-height: calc(100vh - 92px);
  overflow-y: auto;
  padding-bottom: 1rem;
}
.admin-tabler-sidebar .nav-link {
  border-radius: 8px;
  margin: .08rem .55rem;
  color: rgba(255,255,255,.82);
  font-weight: 700;
}
.admin-tabler-sidebar .nav-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, .08);
}
.admin-header {
  min-height: 72px;
  background: rgba(255,255,255,.92);
  border-bottom: 1px solid #e6e8ef;
  backdrop-filter: blur(10px);
}
.page-body { padding: 1.5rem 0 2.5rem; }
.page-head {
  padding: .25rem 0 1rem;
  border-bottom: 1px solid rgba(230,232,239,.7);
}
.page-head h1 { font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.05; }
.panel {
  overflow: hidden;
  padding: clamp(1rem, 2vw, 1.35rem);
}
.panel > .table-responsive { margin: -1rem; }
.dataTable-wrapper, .dt-container { width: 100%; overflow-x: auto; }
.datatable { width: 100% !important; }
.admin-action-inline {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  min-width: 280px;
}
.admin-action-inline .form-control,
.admin-action-inline .form-select { width: auto; min-width: 90px; }
input[name="master_password"],
input[name="current_master_password"] { display: none !important; }

.admin-tabler-sidebar .nav-link.active,
.admin-subnav a.active {
  color: #fff;
  background: rgba(255, 77, 125, .22);
}
.admin-nav-group details { width: 100%; }
.admin-nav-group summary {
  list-style: none;
  cursor: pointer;
}
.admin-nav-group summary::-webkit-details-marker { display: none; }
.admin-submenu-chevron {
  transition: transform .18s ease;
  font-size: .95rem;
}
.admin-nav-group details[open] .admin-submenu-chevron { transform: rotate(180deg); }
.admin-subnav {
  display: grid;
  gap: .1rem;
  padding: .25rem .75rem .55rem 2.45rem;
}
.admin-subnav a {
  display: flex;
  align-items: center;
  gap: .55rem;
  border-radius: 8px;
  color: rgba(255,255,255,.72);
  font-size: .92rem;
  font-weight: 700;
  min-height: 36px;
  padding: .45rem .65rem;
}
.admin-subnav a:hover {
  color: #fff;
  background: rgba(255,255,255,.08);
}
.admin-header-actions {
  align-items: center;
  gap: .25rem;
}
.admin-layout-horizontal .page {
  display: block;
}
.admin-layout-horizontal .admin-tabler-sidebar {
  position: sticky;
  top: 0;
  z-index: 20;
  width: 100%;
  min-height: auto;
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 10px 30px rgba(17, 25, 54, .12);
}
.admin-layout-horizontal .admin-tabler-sidebar .container-fluid {
  max-width: 1320px;
}
.admin-layout-horizontal .admin-tabler-sidebar .navbar-brand {
  width: auto;
  margin: .35rem 1.1rem .35rem 0;
}
.admin-layout-horizontal .admin-tabler-sidebar .navbar-collapse {
  max-height: none;
  overflow: visible;
  padding-bottom: 0;
}
.admin-layout-horizontal .admin-tabler-sidebar .navbar-nav {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: .15rem;
  padding-top: 0 !important;
}
.admin-layout-horizontal .admin-tabler-sidebar .nav-link {
  margin: .2rem .05rem;
  min-height: 42px;
}
.admin-layout-horizontal .admin-nav-group {
  position: relative;
}
.admin-layout-horizontal .admin-subnav {
  position: absolute;
  left: 0;
  top: calc(100% + .35rem);
  z-index: 25;
  min-width: 230px;
  padding: .45rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  background: #111936;
  box-shadow: 0 18px 45px rgba(17,24,39,.25);
}
.admin-layout-horizontal .admin-subnav a {
  min-height: 38px;
  white-space: nowrap;
}
.user-profile-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.user-tabs-panel .nav-tabs {
  flex-wrap: wrap;
  gap: .2rem;
}
.user-tabs-panel .nav-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-weight: 750;
}
.user-summary-card {
  height: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1.15rem;
  background: #f8fafc;
}
.user-summary-card h2 {
  margin: 0 0 .5rem;
  font-size: 1.35rem;
}
.user-detail-list {
  display: grid;
  gap: .65rem;
  margin-bottom: 0;
}
.user-detail-list div {
  display: grid;
  gap: .1rem;
  border-bottom: 1px solid rgba(230,232,239,.9);
  padding-bottom: .55rem;
}
.user-detail-list dt {
  color: var(--muted);
  font-size: .8rem;
  font-weight: 800;
  text-transform: uppercase;
}
.user-detail-list dd {
  margin: 0;
  overflow-wrap: anywhere;
}
.admin-credit-panel {
  display: grid;
  grid-template-columns: 160px 190px auto;
  gap: .75rem;
  align-items: end;
  border: 1px dashed rgba(255, 77, 125, .45);
  border-radius: 8px;
  background: #fff7fa;
  padding: 1rem;
}

.legal-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}
.legal-summary {
  position: sticky;
  top: 92px;
  display: grid;
  gap: .65rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1rem;
  background: #fff;
}
.legal-content {
  display: grid;
  gap: 1rem;
}
.legal-content article {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 1.35rem;
}
.legal-content h2 { font-size: 1.25rem; }

@media (max-width: 991px) {
  .auth-wrap { grid-template-columns: 1fr; }
  .auth-panel { min-height: auto; }
  .auth-art { min-height: 420px; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-preview { justify-content: flex-start; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-summary { position: static; }
  .admin-header .container-xl {
    gap: .75rem;
    flex-wrap: wrap;
  }
  .admin-header-actions {
    width: 100%;
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: .25rem;
  }
  .admin-layout-horizontal .admin-tabler-sidebar .navbar-nav {
    flex-direction: column;
    align-items: stretch;
  }
  .admin-layout-horizontal .admin-tabler-sidebar .navbar-collapse {
    max-height: calc(100vh - 70px);
    overflow-y: auto;
    padding-bottom: 1rem;
  }
  .admin-layout-horizontal .admin-subnav {
    position: static;
    min-width: 0;
    border: 0;
    box-shadow: none;
    padding: .25rem .75rem .55rem 2.45rem;
  }
  .user-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-credit-panel { grid-template-columns: 1fr; }
}

@media (max-width: 575px) {
  .hero { min-height: auto; padding: 4rem 0 2.5rem; }
  .hero h1 { font-size: clamp(3rem, 16vw, 4.4rem); }
  .phone-frame { width: min(100%, 280px); }
  .auth-panel { padding: 1.25rem; }
  .auth-art h1 { font-size: clamp(2.35rem, 12vw, 3.6rem); }
  .page-body { padding: 1rem 0 2rem; }
  .table td, .table th { white-space: nowrap; }
  .admin-header-actions .btn span { display: none; }
  .admin-header-actions .btn-group .btn span { display: inline; }
  .admin-tabler-sidebar .navbar-brand span:last-child { display: inline; }
  .user-profile-grid { grid-template-columns: 1fr; }
  .user-tabs-panel .nav-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: .25rem;
  }
  .user-tabs-panel .nav-link { white-space: nowrap; }
}

/* Auth refinement: professional registration/login experience */
body {
  font-family: "Inter", "Segoe UI", Arial, sans-serif;
}

.auth-shell {
  background: #101828;
}

.auth-wrap {
  grid-template-columns: minmax(390px, 600px) minmax(0, 1fr);
}

.auth-panel {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.98));
}

.auth-panel .navbar-brand {
  font-family: "Plus Jakarta Sans", "Segoe UI", Arial, sans-serif;
  font-weight: 800;
  letter-spacing: 0;
}

.auth-card-head {
  margin-bottom: 1.15rem;
}

.auth-kicker {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  border: 1px solid #ffd3df;
  border-radius: 999px;
  background: #fff0f5;
  color: var(--pink-dark);
  padding: .42rem .78rem;
  font-size: .82rem;
  font-weight: 900;
}

.auth-card-head h1 {
  margin: .7rem 0 .45rem;
  font-family: "Plus Jakarta Sans", "Segoe UI", Arial, sans-serif;
  font-size: clamp(2.05rem, 5vw, 3.25rem);
  line-height: 1;
  letter-spacing: 0;
}

.auth-card-head p {
  max-width: 520px;
  margin: 0;
  color: #667085;
  font-size: clamp(1rem, 2vw, 1.08rem);
  line-height: 1.5;
}

.auth-form-card {
  gap: .9rem;
  border: 1px solid rgba(207, 214, 228, .92);
  border-radius: 8px;
  background: rgba(255,255,255,.96);
  padding: clamp(1rem, 2.6vw, 1.35rem);
  box-shadow: 0 20px 48px rgba(16, 24, 40, .1);
}

.auth-label {
  display: grid;
  gap: .38rem;
  margin: 0;
  color: #1d2939;
  font-size: .9rem;
  font-weight: 850;
}

.auth-label > span::after {
  content: ":";
}

.required-label::before {
  content: "* ";
  color: #dc2626;
  font-weight: 950;
}

.required-label::after {
  content: ":";
  color: inherit;
  font-weight: inherit;
}

.required-marker {
  color: #dc2626;
  font-weight: 950;
}

.auth-label .form-control,
.auth-label .form-select {
  margin-top: 0 !important;
  min-height: 46px;
  border-color: #cfd6e4;
  border-radius: 8px;
  background: #fff;
  font-size: .98rem;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}

.auth-label .form-control:focus,
.auth-label .form-select:focus {
  border-color: var(--pink);
  box-shadow: 0 0 0 .22rem rgba(255, 77, 125, .12);
}

.password-field {
  position: relative;
}

.password-field .form-control {
  padding-right: 3rem;
}

.password-toggle {
  position: absolute;
  inset: 0 .35rem 0 auto;
  width: 2.45rem;
  border: 0;
  background: transparent;
  color: #667085;
  display: grid;
  place-items: center;
  font-size: 1.12rem;
}

.password-toggle:hover,
.password-toggle:focus-visible {
  color: var(--pink-dark);
  outline: 0;
}

.email-availability-feedback {
  display: block;
  min-height: 1.05rem;
  margin-top: .16rem;
  font-size: .84rem;
  font-weight: 800;
  line-height: 1.35;
}

.email-availability-feedback.checking {
  color: #667085;
}

.email-availability-feedback.available {
  color: #087443;
}

.email-availability-feedback.exists {
  color: #b42318;
}

.email-availability-feedback a {
  color: var(--pink-dark);
  font-weight: 950;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.auth-check {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  margin: 0;
  border: 1px solid #edf0f6;
  border-radius: 8px;
  background: #fafbff;
  padding: .82rem .9rem;
  color: #344054;
  line-height: 1.45;
}

.auth-check .form-check-input {
  flex: 0 0 auto;
  width: 1.18rem;
  height: 1.18rem;
  margin: .12rem 0 0;
}

.auth-check .form-check-label {
  font-weight: 650;
}

.auth-submit {
  min-height: 50px;
  border-radius: 8px;
  font-family: "Plus Jakarta Sans", "Segoe UI", Arial, sans-serif;
  font-weight: 850;
  box-shadow: 0 14px 28px rgba(255, 77, 125, .22);
}

.auth-link-row,
.auth-alt-link {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: #667085;
  font-weight: 800;
}

.auth-alt-link {
  justify-content: center;
}

.auth-link-row a,
.auth-alt-link a {
  color: var(--pink-dark);
  font-weight: 950;
}

.auth-art {
  align-items: center;
  background:
    linear-gradient(180deg, rgba(16,24,40,.08), rgba(16,24,40,.88)),
    url("https://images.unsplash.com/photo-1464349153735-7db50ed83c84?auto=format&fit=crop&w=1600&q=80") center/cover;
}

.auth-art-copy {
  max-width: 760px;
}

.auth-art h1 {
  font-family: "Plus Jakarta Sans", "Segoe UI", Arial, sans-serif;
  font-size: clamp(3rem, 5.7vw, 5.65rem);
  line-height: .98;
}

.auth-art p {
  line-height: 1.55;
}

@media (max-width: 991px) {
  .auth-wrap {
    grid-template-columns: 1fr;
  }

  .auth-panel {
    min-height: auto;
  }

  .auth-art {
    min-height: 360px;
    align-items: end;
  }
}

@media (max-width: 575px) {
  .auth-form-card {
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    margin-inline: -1.25rem;
    box-shadow: 0 14px 34px rgba(16,24,40,.08);
  }

  .auth-card-head h1 {
    font-size: 2.25rem;
  }

  .auth-link-row {
    flex-direction: column;
    align-items: center;
  }
}
/* Local vendor + app-style mobile navigation */
body {
  font-family: "Inter", "Segoe UI", Arial, sans-serif;
}

h1, h2, h3, .navbar-brand, .brand, .btn, .metric-card strong {
  font-family: "Plus Jakarta Sans", "Inter", "Segoe UI", Arial, sans-serif;
}

.public-desktop-nav {
  align-items: center;
}

.public-menu-trigger,
.app-menu-trigger {
  display: none;
}

.public-mobile-offcanvas,
.app-mobile-offcanvas {
  max-width: min(88vw, 380px);
  border: 0;
  background: #f8fafc;
}

.public-offcanvas-head,
.app-offcanvas-head {
  min-height: 148px;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(17,25,54,.98), rgba(255,77,125,.88)),
    url("https://images.unsplash.com/photo-1513151233558-d860c5398176?auto=format&fit=crop&w=900&q=80") center/cover;
}

.public-offcanvas-head > div,
.app-offcanvas-head > div {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: .25rem .75rem;
  align-items: center;
}

.public-offcanvas-head .brand-mark,
.app-offcanvas-head .brand-mark {
  grid-row: span 2;
  width: 42px;
  height: 42px;
}

.public-offcanvas-head strong,
.app-offcanvas-head strong {
  display: block;
  font-size: 1.15rem;
  line-height: 1;
}

.public-offcanvas-head small,
.app-offcanvas-head small {
  color: rgba(255,255,255,.78);
  font-weight: 700;
}

.public-offcanvas-body,
.app-offcanvas-body {
  display: grid;
  gap: .75rem;
  padding: 1rem;
}

.public-offcanvas-body > a:not(.btn),
.app-offcanvas-nav a,
.app-offcanvas-logout {
  display: flex;
  align-items: center;
  gap: .78rem;
  min-height: 52px;
  border: 1px solid #e6e8ef;
  border-radius: 8px;
  background: #fff;
  color: #1f2937;
  padding: .85rem .95rem;
  font-weight: 850;
  box-shadow: 0 10px 24px rgba(17,24,39,.05);
}

.public-offcanvas-body > a:not(.btn) i,
.app-offcanvas-nav a i,
.app-offcanvas-logout i {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: #fff0f5;
  color: var(--pink-dark);
  font-size: 1.18rem;
}

.app-offcanvas-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .65rem;
  margin-bottom: .25rem;
}

.app-offcanvas-actions .btn,
.public-offcanvas-body .btn {
  min-height: 48px;
  border-radius: 8px;
  font-weight: 900;
}

.app-offcanvas-nav {
  display: grid;
  gap: .55rem;
}

.app-offcanvas-nav a.active,
.public-offcanvas-body > a:not(.btn):hover,
.app-offcanvas-nav a:hover {
  border-color: #ffc0d2;
  background: #fff7fa;
  color: var(--pink-dark);
}

.app-offcanvas-logout {
  margin-top: .25rem;
  color: #b42318;
}

.app-offcanvas-logout i {
  background: #fff1f2;
  color: #b42318;
}

.mobile-dashboard-hero {
  position: relative;
  overflow: hidden;
}

.mobile-dashboard-hero::after {
  content: "";
  position: absolute;
  inset: auto -42px -70px auto;
  width: 180px;
  height: 180px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  pointer-events: none;
}

.quick-actions a,
.metric-card,
.panel {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.quick-actions a:hover,
.metric-card:hover,
.panel:hover {
  transform: translateY(-1px);
  border-color: #d7dce8;
  box-shadow: 0 18px 42px rgba(17,24,39,.08);
}

@media (max-width: 991px) {
  .public-desktop-nav {
    display: none !important;
  }

  .public-menu-trigger,
  .app-menu-trigger {
    display: inline-flex;
  }

  .app-topbar {
    gap: .55rem;
  }

  .app-actions {
    margin-left: auto;
  }

  .app-actions .btn-outline-secondary.icon-only {
    display: none;
  }
}

@media (max-width: 575px) {
  .public-nav .container-xl,
  .app-topbar {
    min-height: 62px;
  }

  .app-actions .btn:not(.btn-primary) {
    display: none;
  }

  .app-actions .btn-primary {
    width: 42px;
    padding-inline: 0;
  }

  .app-actions .btn-primary span {
    display: none;
  }

  .mobile-dashboard-hero {
    border-radius: 0;
    margin: -1rem -1rem 1rem;
  }

  .app-offcanvas-actions {
    grid-template-columns: 1fr;
  }
}
/* Required labels after colon + legal modal */
.required-label::before {
  content: "" !important;
}

.required-label::after {
  content: ":*" !important;
  color: #dc2626;
  font-weight: 950;
}

.auth-label > span:not(.required-label)::after {
  content: ":";
}

.auth-check .form-check-label {
  font-weight: 750;
}

.auth-check .form-check-label a {
  font-weight: 950;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.legal-content-modal .modal-content {
  border: 0;
  border-radius: 8px;
  overflow: hidden;
}

.legal-content-modal .modal-header {
  background: #111936;
  color: #fff;
}

.legal-content-modal .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

.legal-modal-frame {
  display: block;
  width: 100%;
  height: min(72vh, 760px);
  border: 0;
  background: #fff;
}
/* Email verification and admin support polish */
.auth-art {
  background:
    linear-gradient(90deg, rgba(15, 23, 42, .92), rgba(15, 23, 42, .58)),
    var(--auth-art-image) center/cover no-repeat;
}
.auth-card-head.verification-head { margin-bottom: 1.5rem; }
.auth-kicker {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: #e7336f;
  font-weight: 800;
  text-transform: uppercase;
  font-size: .78rem;
  letter-spacing: .04em;
  margin-bottom: .65rem;
}
.verification-head h1 {
  font-family: "Plus Jakarta Sans", Inter, sans-serif;
  font-size: clamp(2rem, 5vw, 3.15rem);
  line-height: 1.02;
  margin: 0 0 .8rem;
}
.verification-head p { color: #5b667a; font-size: 1.05rem; line-height: 1.6; max-width: 620px; }
.auth-form-card {
  background: #fff;
  border: 1px solid #e5eaf3;
  border-radius: 18px;
  padding: 1rem;
  box-shadow: 0 20px 45px rgba(15, 23, 42, .08);
}
.verification-code-input {
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: .42rem;
  text-indent: .42rem;
}
.verification-status {
  display: flex;
  gap: .85rem;
  align-items: flex-start;
  border-radius: 16px;
  padding: .95rem 1rem;
  border: 1px solid #dbeafe;
  background: #eff6ff;
  color: #1d4ed8;
}
.verification-status i { font-size: 1.45rem; margin-top: .05rem; }
.verification-status strong { display: block; color: #111827; }
.verification-status span { display: block; color: #526079; font-size: .92rem; }
.verification-status-sent { background: #ecfdf3; border-color: #bbf7d0; color: #15803d; }
.verification-status-failed { background: #fff1f2; border-color: #fecdd3; color: #be123c; }
.verification-actions { display: flex; align-items: center; gap: .75rem; margin-top: 1rem; flex-wrap: wrap; }
.verification-actions form { margin: 0; }
.admin-user-name { display: flex; align-items: center; gap: .7rem; min-width: 210px; }
.admin-user-actions { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; }
.admin-user-actions form { margin: 0; }
.admin-user-actions .btn { display: inline-flex; align-items: center; gap: .35rem; font-weight: 750; }
.admin-impersonation-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .75rem 1rem;
  background: linear-gradient(135deg, #e7336f, #ff7a59);
  color: #fff;
  box-shadow: 0 14px 30px rgba(231, 51, 111, .22);
  position: sticky;
  top: 0;
  z-index: 30;
}
.admin-impersonation-bar > div { display: flex; align-items: center; gap: .45rem; min-width: 0; }
.admin-impersonation-bar span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.admin-impersonation-bar .btn { color: #e7336f; border: 0; font-weight: 800; }
@media (max-width: 767.98px) {
  .verification-actions { flex-direction: column; align-items: stretch; }
  .verification-actions .btn, .verification-actions form { width: 100%; }
  .verification-actions button { width: 100%; }
  .admin-user-actions { justify-content: flex-start !important; }
  .admin-user-actions .btn span { display: none; }
  .admin-impersonation-bar { align-items: stretch; flex-direction: column; }
  .admin-impersonation-bar .btn { width: 100%; }
}
/* SMTP admin screen */
.smtp-admin-grid .panel { height: 100%; }
.smtp-config-panel .panel-head { gap: 1rem; margin-bottom: 1.25rem; }
.smtp-config-panel .panel-head h2,
.smtp-status-panel h2 { margin-bottom: .35rem; }
.smtp-form .form-label { font-weight: 800; color: #111827; }
.smtp-form-actions { display: flex; gap: .75rem; flex-wrap: wrap; padding-top: .5rem; }
.smtp-form-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; }
.smtp-autofill-decoy {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.smtp-active-switch {
  border: 1px solid #e5eaf3;
  border-radius: 14px;
  padding: .9rem 1rem .9rem 3.25rem;
  background: #f8fafc;
}
.smtp-status-panel { position: sticky; top: 1rem; }
.smtp-status-icon {
  width: 58px;
  height: 58px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eff6ff;
  color: #0f62bd;
  font-size: 1.8rem;
  margin-bottom: 1rem;
}
.smtp-status-icon.success { background: #ecfdf3; color: #15803d; }
.smtp-status-icon.failed { background: #fff1f2; color: #be123c; }
@media (max-width: 767.98px) {
  .smtp-config-panel .panel-head { flex-direction: column; align-items: flex-start !important; }
  .smtp-form-actions .btn { width: 100%; }
  .smtp-status-panel { position: static; }
}
/* SweetAlert2 local fallback */
.swal2-container {
  position: fixed;
  inset: 0;
  z-index: 20000;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(15, 23, 42, .48);
  backdrop-filter: blur(3px);
}
.swal2-container.swal2-top-end {
  align-items: start;
  justify-items: end;
  background: transparent;
  pointer-events: none;
}
.swal2-popup {
  width: min(100%, 460px);
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 26px 80px rgba(15, 23, 42, .26);
  padding: 1.4rem;
  color: #101828;
  font-family: Inter, system-ui, -apple-system, Segoe UI, sans-serif;
  border: 1px solid rgba(148, 163, 184, .22);
  pointer-events: auto;
}
.swal2-toast {
  width: min(360px, calc(100vw - 2rem));
  border-radius: 14px;
  padding: .9rem 1rem;
  margin: 1rem;
}
.swal2-icon {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  margin: .2rem auto 1rem;
  font-weight: 900;
  font-size: 1.8rem;
}
.swal2-icon.swal2-warning { background: #fff7ed; color: #c2410c; border: 1px solid #fed7aa; }
.swal2-icon.swal2-error { background: #fff1f2; color: #be123c; border: 1px solid #fecdd3; }
.swal2-icon.swal2-success { background: #ecfdf3; color: #15803d; border: 1px solid #bbf7d0; }
.swal2-icon.swal2-info { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }
.swal2-title {
  font-family: "Plus Jakarta Sans", Inter, sans-serif;
  font-size: 1.35rem;
  line-height: 1.25;
  margin: 0 0 .55rem;
  text-align: center;
  font-weight: 850;
}
.swal2-html-container {
  color: #5b667a;
  font-size: .98rem;
  text-align: center;
  margin-bottom: 1rem;
}
.swal2-input {
  width: 100%;
  min-height: 46px;
  border: 1px solid #d8dee9;
  border-radius: 10px;
  padding: .65rem .8rem;
  font-size: 1rem;
  outline: 0;
  margin: .35rem 0 1rem;
}
.swal2-input:focus {
  border-color: #e7336f;
  box-shadow: 0 0 0 3px rgba(231, 51, 111, .12);
}
.swal2-actions {
  display: flex;
  justify-content: center;
  gap: .65rem;
  flex-wrap: wrap;
  margin-top: .5rem;
}
.swal2-confirm,
.swal2-cancel,
.swal2-deny {
  border: 0;
  border-radius: 10px;
  min-height: 42px;
  padding: .62rem 1rem;
  font-weight: 800;
  cursor: pointer;
}
.swal2-confirm { background: #e7336f; color: #fff; }
.swal2-cancel { background: #eef2f7; color: #334155; }
.swal2-deny { background: #dc2626; color: #fff; }
.swal2-footer {
  display: flex;
  justify-content: center;
  border-top: 1px solid #edf1f7;
  margin: 1rem -1.4rem -1.4rem;
  padding: .85rem 1.4rem;
}
.swal2-master-recovery {
  color: #0f62bd;
  font-weight: 800;
  text-decoration: none;
}
.swal2-validation-message {
  background: #fff1f2;
  color: #be123c;
  border-radius: 10px;
  padding: .55rem .7rem;
  margin-bottom: .7rem;
  font-weight: 700;
  text-align: center;
}
@media (max-width: 575.98px) {
  .swal2-popup { border-radius: 16px; padding: 1.1rem; }
  .swal2-actions { flex-direction: column; }
  .swal2-confirm, .swal2-cancel, .swal2-deny { width: 100%; }
}
/* Convitae compact toast notifications */
.convitae-toast-stack {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 30000;
  display: grid;
  gap: .75rem;
  width: min(420px, calc(100vw - 2rem));
  pointer-events: none;
}
.convitae-toast {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .75rem;
  width: 100%;
  background: #fff;
  color: #111827;
  border: 1px solid #e5eaf3;
  border-left: 5px solid #16a34a;
  border-radius: 14px;
  box-shadow: 0 18px 50px rgba(15, 23, 42, .18);
  padding: .85rem .9rem;
  animation: convitaeToastIn .22s ease-out;
  pointer-events: auto;
}
.convitae-toast i { font-size: 1.25rem; }
.convitae-toast > i { color: #16a34a; }
.convitae-toast strong { font-size: .96rem; line-height: 1.35; font-weight: 800; }
.convitae-toast button {
  width: 30px;
  height: 30px;
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: #f1f5f9;
  color: #64748b;
  cursor: pointer;
}
.convitae-toast-warning { border-left-color: #f59e0b; }
.convitae-toast-warning > i { color: #d97706; }
.convitae-toast-error { border-left-color: #e11d48; }
.convitae-toast-error > i { color: #e11d48; }
.convitae-toast.is-hiding { opacity: 0; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease; }
@keyframes convitaeToastIn {
  from { opacity: 0; transform: translateY(-8px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 575.98px) {
  .convitae-toast-stack {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: calc(100vw - 1rem);
    top: .5rem;
  }
}
/* Premium public invitation experience */
.invite-premium-hero {
  --invite-cover: url("https://images.unsplash.com/photo-1519671482749-fd09be7ccebf?auto=format&fit=crop&w=1800&q=80");
  position: relative;
  overflow: hidden;
  min-height: clamp(680px, 86vh, 860px);
  display: flex;
  align-items: center;
  color: #fff;
  background:
    radial-gradient(circle at 20% 15%, rgba(255,255,255,.18), transparent 25%),
    linear-gradient(115deg, rgba(13, 18, 35, .92), rgba(231, 51, 111, .58), rgba(255, 183, 66, .42)),
    var(--invite-cover) center/cover;
  isolation: isolate;
}
.invite-premium-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 140px;
  background: linear-gradient(0deg, #f5f7fb, transparent);
  z-index: -1;
}
.invite-premium-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
  align-items: center;
  gap: clamp(1.5rem, 5vw, 4rem);
  position: relative;
  z-index: 2;
}
.invite-glass-card {
  max-width: 870px;
  padding: clamp(1.25rem, 4vw, 2.25rem);
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.06));
  box-shadow: 0 30px 90px rgba(15, 23, 42, .28);
  backdrop-filter: blur(12px);
}
.invite-topline,
.invite-action-row,
.invite-location-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  align-items: center;
}
.invite-topline { justify-content: space-between; margin-bottom: 1rem; }
.invite-status-pill,
.gift-status {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 999px;
  padding: .42rem .72rem;
  font-weight: 850;
  font-size: .82rem;
  background: rgba(255,255,255,.9);
  color: #101828;
}
.invite-glass-card h1 {
  font-size: clamp(3rem, 9vw, 7.4rem);
  line-height: .88;
  margin: .55rem 0 1rem;
  letter-spacing: 0;
  text-wrap: balance;
}
.invite-honoree {
  font-size: clamp(1.05rem, 2.2vw, 1.35rem);
  color: rgba(255,255,255,.9);
  max-width: 760px;
}
.invite-glass-card .lead {
  max-width: 760px;
  color: rgba(255,255,255,.96);
  font-size: clamp(1.06rem, 2.2vw, 1.32rem);
  line-height: 1.55;
}
.invite-phone-card {
  justify-self: center;
  width: min(100%, 360px);
  padding: .8rem;
  border-radius: 32px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 28px 90px rgba(15, 23, 42, .32);
  transform: rotate(2deg);
}
.invite-phone-screen {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  border-radius: 24px;
  background: linear-gradient(145deg, #ff4d7d, #ffb742);
}
.invite-phone-screen img {
  width: 100%;
  height: 100%;
  min-height: 560px;
  object-fit: cover;
  filter: saturate(1.08);
}
.invite-phone-overlay {
  position: absolute;
  inset: auto 1rem 1rem;
  display: grid;
  gap: .35rem;
  padding: 1rem;
  border-radius: 8px;
  background: rgba(17, 24, 39, .72);
  color: #fff;
  backdrop-filter: blur(10px);
}
.invite-phone-overlay span {
  width: max-content;
  max-width: 100%;
  border-radius: 999px;
  background: #fff;
  color: var(--pink-dark);
  padding: .28rem .55rem;
  font-weight: 850;
}
.invite-phone-overlay strong { font-size: 1.65rem; line-height: 1; }
.invite-section-stack {
  display: grid;
  gap: 1.25rem;
  padding-top: clamp(1.5rem, 4vw, 3rem);
  padding-bottom: clamp(2rem, 5vw, 4rem);
}
.invite-info-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.invite-info-card,
.invite-section-panel {
  border: 1px solid #e4eaf4;
  border-radius: 8px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 18px 50px rgba(15, 23, 42, .08);
}
.invite-info-card {
  display: grid;
  gap: .45rem;
  padding: 1.1rem;
}
.invite-info-card i {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border-radius: 8px;
  background: #fff0f5;
  color: var(--pink-dark);
  font-size: 1.4rem;
}
.invite-info-card span { color: #667085; font-weight: 750; }
.invite-info-card strong { color: #111827; font-size: 1.05rem; overflow-wrap: anywhere; }
.invite-info-card-wide { grid-column: span 2; }
.invite-section-panel { padding: clamp(1.1rem, 3vw, 1.6rem); }
.invite-section-head { margin-bottom: 1rem; }
.invite-section-head h2,
.invite-final-cta h2 {
  margin: .25rem 0 0;
  font-size: clamp(1.55rem, 4vw, 2.6rem);
  line-height: 1.05;
}
.invite-location-box,
.invite-final-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.invite-location-box p,
.invite-final-cta p { margin: .35rem 0 0; color: #5f6b80; }
.pix-premium-card { margin: 0; }
.invite-gift-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.invite-gift-card { position: relative; overflow: hidden; }
.invite-gift-card::before {
  content: "";
  display: block;
  height: 8px;
  margin: -1.5rem -1.5rem 1rem;
  background: linear-gradient(90deg, #ff4d7d, #ffb742, #00b8d9);
}
.gift-status { background: #eff6ff; color: #0f62bd; }
.gift-status-reserved { background: #fff7ed; color: #c2410c; }
.gift-status-purchased { background: #ecfdf3; color: #15803d; }
.gift-store-link { display: inline-flex; align-items: center; gap: .35rem; font-weight: 800; }
.invite-guest-cloud span {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}
.invite-guest-cloud small {
  color: #667085;
  font-weight: 750;
  margin-left: .25rem;
}
.invite-final-cta {
  background: linear-gradient(135deg, #fff7fa, #eef9ff);
  border-color: #ffd6e2;
}
.invite-animate-in { animation: inviteFadeUp .72s ease both; }
.invite-animate-in:nth-child(2) { animation-delay: .1s; }
.invite-section-panel.invite-animate-in { animation-timeline: auto; }
.invite-confetti span,
.invite-balloons span {
  position: absolute;
  display: block;
  pointer-events: none;
  z-index: 1;
}
.invite-confetti span {
  width: 10px;
  height: 18px;
  border-radius: 3px;
  background: #fff;
  opacity: .78;
  animation: inviteConfetti 7s linear infinite;
}
.invite-confetti span:nth-child(1) { left: 12%; top: -20px; background: #ff4d7d; animation-delay: .1s; }
.invite-confetti span:nth-child(2) { left: 32%; top: -30px; background: #ffb742; animation-delay: 1.2s; }
.invite-confetti span:nth-child(3) { left: 52%; top: -25px; background: #00b8d9; animation-delay: 2s; }
.invite-confetti span:nth-child(4) { left: 74%; top: -35px; background: #fff; animation-delay: 3.3s; }
.invite-confetti span:nth-child(5) { left: 88%; top: -15px; background: #22c55e; animation-delay: 4s; }
.invite-balloons span {
  width: 58px;
  height: 74px;
  border-radius: 50% 50% 45% 45%;
  background: rgba(255,255,255,.16);
  box-shadow: inset -10px -12px 22px rgba(15, 23, 42, .12);
  animation: inviteBalloon 9s ease-in-out infinite;
}
.invite-balloons span:nth-child(1) { left: 8%; bottom: 8%; }
.invite-balloons span:nth-child(2) { right: 14%; top: 14%; animation-delay: 1.3s; }
.invite-balloons span:nth-child(3) { right: 34%; bottom: 16%; animation-delay: 2.4s; }
.btn { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease; }
.btn:hover { transform: translateY(-1px); }

/* RSVP individual confirmation */
.confirm-premium-page {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255, 77, 125, .84), rgba(0, 184, 217, .68)),
    url("https://images.unsplash.com/photo-1464349153735-7db50ed83c84?auto=format&fit=crop&w=1600&q=80") center/cover;
}
.confirm-card-premium {
  position: relative;
  z-index: 2;
  border: 1px solid rgba(255,255,255,.7);
  box-shadow: 0 30px 90px rgba(15, 23, 42, .22);
  animation: inviteFadeUp .58s ease both;
}
.confirm-orb {
  position: absolute;
  width: 260px;
  height: 260px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  filter: blur(1px);
  animation: inviteBalloon 8s ease-in-out infinite;
}
.confirm-orb-one { top: 5%; left: 7%; }
.confirm-orb-two { right: 8%; bottom: 9%; animation-delay: 1.5s; }
.rsvp-people-fields {
  display: grid;
  gap: .75rem;
  border: 1px solid #e4eaf4;
  border-radius: 8px;
  padding: .9rem;
  background: #f8fafc;
}
.rsvp-people-title {
  display: grid;
  gap: .15rem;
}
.rsvp-people-title span { color: #667085; font-size: .92rem; }
.rsvp-person-row {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: center;
  margin: 0;
}
.rsvp-person-row > span {
  font-weight: 800;
  color: #344054;
}
.rsvp-child-check {
  min-width: 118px;
  margin: 0;
  padding: .62rem .72rem;
  border: 1px solid #d8dee9;
  border-radius: 8px;
  background: #fff;
}
.confirmed-people-summary {
  display: grid;
  gap: .75rem;
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid #e4eaf4;
  border-radius: 8px;
  background: #f8fafc;
}
.confirmed-people-list { display: flex; flex-wrap: wrap; gap: .55rem; }
.confirmed-people-list span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 999px;
  padding: .45rem .7rem;
  background: #fff;
  border: 1px solid #e4eaf4;
  font-weight: 750;
}
.public-mobile-conversion { display: none; }
@keyframes inviteFadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes inviteConfetti {
  0% { transform: translate3d(0, -20px, 0) rotate(0deg); opacity: 0; }
  12% { opacity: .9; }
  100% { transform: translate3d(36px, 760px, 0) rotate(540deg); opacity: 0; }
}
@keyframes inviteBalloon {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-22px) rotate(2deg); }
}
@media (max-width: 980px) {
  .invite-premium-layout,
  .invite-info-grid,
  .invite-gift-grid { grid-template-columns: 1fr; }
  .invite-premium-hero { min-height: auto; padding: 4.5rem 0 5rem; }
  .invite-phone-card { display: none; }
  .invite-info-card-wide { grid-column: auto; }
  .invite-location-box,
  .invite-final-cta { align-items: stretch; flex-direction: column; }
  .invite-location-actions .btn,
  .invite-final-cta .btn { width: 100%; }
}
@media (max-width: 575.98px) {
  body.public-shell { padding-bottom: 88px; }
  .invite-glass-card { background: rgba(17,24,39,.38); }
  .invite-action-row .btn { width: 100%; }
  .invite-info-card,
  .invite-section-panel { border-radius: 8px; }
  .rsvp-person-row { grid-template-columns: 1fr; }
  .rsvp-child-check { width: 100%; }
  .public-mobile-conversion {
    position: fixed;
    left: .75rem;
    right: .75rem;
    bottom: .75rem;
    z-index: 1040;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: .35rem .75rem;
    padding: .82rem .9rem;
    border-radius: 8px;
    background: linear-gradient(135deg, #e7336f, #ff7a59);
    color: #fff;
    box-shadow: 0 18px 45px rgba(231, 51, 111, .34);
    text-decoration: none;
  }
  .public-mobile-conversion span,
  .public-mobile-conversion em { min-width: 0; }
  .public-mobile-conversion span { font-size: .95rem; line-height: 1.15; }
  .public-mobile-conversion em { font-style: normal; font-weight: 850; font-size: .82rem; opacity: .92; }
  .public-mobile-conversion i { grid-row: 1 / span 2; grid-column: 2; font-size: 1.25rem; }
  footer .d-flex.gap-3 { flex-wrap: wrap; gap: .75rem !important; }
}.invite-gift-image {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 8px;
  margin-bottom: .85rem;
  border: 1px solid #e4eaf4;
}
.gift-pix-box {
  display: grid;
  gap: .35rem;
  margin-top: .85rem;
  padding: .8rem;
  border: 1px solid #dbeafe;
  border-radius: 8px;
  background: #eff6ff;
}
.gift-pix-box small { color: #0f62bd; font-weight: 850; }
.gift-pix-box strong { color: #111827; overflow-wrap: anywhere; }
.gift-pix-box span { color: #526079; font-size: .9rem; }
/* RSVP participant cards refinement */
.rsvp-person-card {
  display: grid;
  gap: .85rem;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #fff;
  padding: .95rem;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .04);
}
.rsvp-person-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.rsvp-person-head strong {
  color: #1d2939;
  font-size: 1rem;
}
.rsvp-person-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: .75rem;
}
.rsvp-person-grid .form-label {
  display: grid;
  gap: .35rem;
  margin: 0;
  font-weight: 800;
  color: #344054;
}
.rsvp-child-toggle {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 38px;
  margin: 0;
  padding: .45rem .65rem .45rem 2.75rem;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #f8fafc;
  color: #344054;
  font-weight: 800;
  white-space: nowrap;
}
.rsvp-child-toggle .form-check-input {
  margin-top: 0;
  cursor: pointer;
}
.rsvp-child-toggle .form-check-label {
  cursor: pointer;
}
.rsvp-person-grid input:disabled {
  background: #f1f5f9;
  color: #98a2b3;
  cursor: not-allowed;
}
@media (max-width: 575.98px) {
  .rsvp-person-head,
  .rsvp-person-grid { grid-template-columns: 1fr; }
  .rsvp-person-head { align-items: stretch; flex-direction: column; }
  .rsvp-child-toggle { width: 100%; justify-content: flex-start; }
}
/* Event show professional tabs/actions */
.event-show-hero-compact {
  grid-template-columns: minmax(260px, 1fr) minmax(320px, 1.25fr);
  align-items: start;
}
.event-toolbar { display: grid; gap: .35rem; justify-items: end; }
.btn-list { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.btn-list form { margin: 0; display: inline-flex; }
.btn-list-sm .btn { min-height: 34px; font-weight: 800; }
.event-tabs {
  border-bottom: 1px solid #dfe6f2;
  gap: .25rem;
}
.event-tabs .nav-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  border-radius: 8px 8px 0 0;
  font-weight: 850;
  color: #536178;
}
.event-tabs .nav-link.active {
  color: var(--pink-dark);
  border-color: #dfe6f2 #dfe6f2 #fff;
  background: #fff;
}
.event-tab-content { padding-top: 1rem; }
.gift-list-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .85rem; }
.gift-row-card {
  display: grid;
  grid-template-columns: 58px 1fr auto;
  align-items: center;
  gap: .8rem;
  border: 1px solid #dfe6f2;
  border-radius: 8px;
  padding: .75rem;
  background: #fff;
}
.gift-row-card img,
.gift-thumb {
  width: 58px;
  height: 58px;
  border-radius: 8px;
  object-fit: cover;
  display: grid;
  place-items: center;
  background: #fff0f5;
  color: var(--pink-dark);
  font-size: 1.4rem;
}
.form-label .text-danger,
.wizard-field .text-danger { margin-left: .1rem; }
.modal .form-label { width: 100%; font-weight: 800; color: #344054; }
.modal .form-label .form-control,
.modal .form-label .form-select { margin-top: .35rem; }
.btn-loading { pointer-events: none; opacity: .78; position: relative; }
.btn-loading::after {
  content: "";
  width: .85rem;
  height: .85rem;
  margin-left: .45rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 999px;
  display: inline-block;
  animation: btnLoadingSpin .65s linear infinite;
}
@keyframes btnLoadingSpin { to { transform: rotate(360deg); } }
@media (max-width: 980px) {
  .event-show-hero-compact { grid-template-columns: 1fr; }
  .event-toolbar { justify-items: start; }
  .event-tabs { overflow-x: auto; flex-wrap: nowrap; }
  .event-tabs .nav-link { white-space: nowrap; }
}
@media (max-width: 575.98px) {
  .gift-row-card { grid-template-columns: 48px 1fr; }
  .gift-row-card > a { grid-column: 1 / -1; width: 100%; }
  .btn-list-sm .btn { padding-left: .55rem; padding-right: .55rem; }
}
/* Event tables and modal polish */
.event-tab-content .form-label,
.modal .form-label {
  font-weight: 500;
  color: #344054;
  margin-bottom: .35rem;
}
.event-tab-content .text-danger,
.modal .text-danger { margin-left: 1px; }
.table-filter-row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .55rem;
  margin: -.25rem 0 1rem;
}
.table-filter-row .form-control { max-width: 340px; }
.table.table-sm > :not(caption) > * > * {
  padding: .55rem .65rem;
  vertical-align: middle;
}
.gift-table-item {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-width: 220px;
}
.gift-table-item img,
.gift-thumb,
.gift-avatar {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  object-fit: cover;
  flex: 0 0 42px;
}
.gift-avatar {
  --tblr-avatar-size: 42px;
  background-size: cover;
  background-position: center;
}
.gift-thumb,
.gift-avatar:not([style*="background-image"]) {
  display: inline-grid;
  place-items: center;
  color: var(--pink-dark);
  background: #fff0f5;
}
.drag-handle {
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 8px;
  color: #667085;
  background: transparent;
  cursor: grab;
}
.drag-handle:hover { color: var(--pink-dark); background: #fff0f5; }
tr.is-dragging {
  opacity: .58;
  outline: 2px dashed rgba(255, 77, 125, .45);
  outline-offset: -2px;
}
.btn-list-sm { gap: .35rem; }
@media (max-width: 767px) {
  .table-filter-row {
    align-items: stretch;
    flex-direction: column;
  }
  .table-filter-row .form-control { max-width: none; }
}
body, button, input, select, textarea { font-family: Inter, 'Segoe UI', Arial, sans-serif !important; }
h1, h2, h3, h4, h5, h6, .hero h1, .page-head h1 { font-family: Inter, 'Segoe UI', Arial, sans-serif !important; }

.table-filter-row .btn { flex: 0 0 auto; }
.table-filter-row input { min-width: min(360px, 100%); }
.table .btn-list form { display: inline-flex; }
.drag-handle i { pointer-events: none; }
.event-tab-content th:first-child,
.event-tab-content td:first-child { white-space: nowrap; }
.table-filter-row-fluid {
  justify-content: stretch;
  width: 100%;
  margin-top: 0;
}
.table-filter-row-fluid .form-label { flex: 0 0 auto; }
.table-filter-row-fluid .form-control {
  flex: 1 1 auto;
  max-width: none;
  min-width: 0;
}
.table-filter-row-fluid .btn {
  min-height: 2.25rem;
  white-space: nowrap;
}
.event-tab-content .panel > .table-filter-row:first-child { margin-top: 0; }
@media (max-width: 767px) {
  .table-filter-row-fluid .btn { width: 100%; }
}
.convitae-dialog-modal {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  z-index: 1095;
}
.convitae-dialog-modal .modal-dialog {
  min-height: calc(100% - var(--bs-modal-margin) * 2);
  display: flex;
  align-items: center;
  margin-right: auto;
  margin-left: auto;
}
.convitae-dialog-modal .modal-dialog.modal-dialog-centered {
  transform: none;
}
.convitae-dialog-modal .modal-content {
  border: 0;
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .18);
}
.convitae-dialog-modal .convitae-dialog-icon {
  display: inline-grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  margin-bottom: .75rem;
  border-radius: 999px;
  background: color-mix(in srgb, currentColor 12%, transparent);
  font-size: 1.65rem;
}
.convitae-dialog-modal .modal-status + .convitae-dialog-footer {
  padding: .75rem 1rem 0;
  text-align: center;
}
.convitae-dialog-modal .modal-footer .row > .col {
  min-width: 0;
}

.gift-smart-modal .modal-content { max-height: min(92vh, 980px); }
.gift-smart-body { overflow: auto; background: #f8fafc; }
.gift-smart-section {
  padding: 1rem;
  margin-bottom: 1rem;
  border: 1px solid #e3e8ef;
  border-radius: 10px;
  background: #fff;
}
.gift-smart-section h3 {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin: 0 0 .9rem;
  font-size: 1rem;
  font-weight: 800;
}
.gift-category-hint {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .55rem .7rem;
  margin-bottom: .85rem;
  border-radius: 8px;
  color: #0f3b73;
  background: #eff6ff;
  font-size: .9rem;
}
.gift-dynamic-field { animation: convitaeFadeIn .18s ease both; }
.gift-smart-footer {
  position: sticky;
  bottom: 0;
  z-index: 2;
  background: #fff;
}
.gift-image-preview {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: #667085;
  font-size: .85rem;
}
.gift-priority-stars { color: #f59f00; letter-spacing: .08rem; white-space: nowrap; }
.invite-gift-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: .75rem 0;
}
.invite-gift-attributes {
  display: grid;
  gap: .45rem;
  margin: .85rem 0;
  padding: .75rem;
  border-radius: 10px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(226,232,240,.9);
}
.invite-gift-attribute {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  font-size: .9rem;
}
.invite-gift-attribute span { color: #64748b; }
.invite-gift-attribute strong { text-align: right; color: #111827; overflow-wrap: anywhere; }
.gift-pix-secret[hidden] { display: none !important; }
@media (max-width: 767px) {
  .gift-smart-section { padding: .85rem; }
  .gift-smart-modal .modal-body { padding: .85rem; }
  .invite-gift-attribute { display: block; }
  .invite-gift-attribute strong { display: block; text-align: left; }
}
/* Planejamento do evento */
.planning-hero {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: 1.25rem;
  margin-bottom: 1rem;
  background: linear-gradient(135deg, #fff, #fff4f7);
}
.planning-hero h2 { margin: .4rem 0 .3rem; font-size: clamp(1.45rem, 3vw, 2.25rem); }
.planning-hero p { margin: 0; color: var(--muted); }
.planning-summary-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.45fr) repeat(3, minmax(150px, 1fr));
  gap: .75rem;
  margin-bottom: .75rem;
}
.planning-progress-card,
.planning-mini-card {
  padding: 1rem;
  display: flex;
  align-items: center;
  gap: .85rem;
  min-height: 108px;
}
.planning-progress-card strong,
.planning-mini-card strong { display: block; font-size: 1.35rem; color: var(--ink); }
.planning-progress-card p,
.planning-mini-card span { margin: 0; color: var(--muted); }
.planning-mini-card i { color: var(--pink); font-size: 1.45rem; }
.planning-progress-ring {
  --value: calc(var(--progress) * 1%);
  width: 76px;
  height: 76px;
  flex: 0 0 76px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: conic-gradient(var(--pink) var(--value), #edf1f7 0);
  position: relative;
  font-weight: 900;
}
.planning-progress-ring::before {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: inherit;
  background: #fff;
}
.planning-progress-ring span { position: relative; }
.planning-next-actions,
.planning-workspace { padding: 1rem; margin-bottom: 1rem; }
.planning-next-actions .panel-head h3,
.task-form-section h3 {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: 1rem;
  margin: 0 0 .85rem;
}
.planning-action-list { display: grid; gap: .55rem; }
.planning-action-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .65rem;
  padding: .7rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.planning-toolbar { display: grid; gap: .75rem; }
.planning-filters .form-select { max-width: 190px; }
.planning-view { display: none; }
.planning-view.active { display: block; animation: convitaeFadeIn .18s ease both; }
.planning-task-title { display: flex; align-items: flex-start; gap: .65rem; min-width: 240px; }
.planning-task-title > i { color: var(--pink); font-size: 1.3rem; margin-top: .1rem; }
.planning-status-form .form-select { min-width: 150px; }
.planning-empty { text-align: center; padding: 2.5rem 1rem; color: var(--muted); }
.planning-empty i { font-size: 3rem; color: var(--pink); }
.planning-empty h3 { margin: .75rem 0 .25rem; color: var(--ink); }
.planning-kanban {
  display: grid;
  grid-template-columns: repeat(6, minmax(220px, 1fr));
  gap: .75rem;
  overflow-x: auto;
  padding-bottom: .35rem;
}
.kanban-column {
  min-height: 260px;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
}
.kanban-column h3 {
  display: flex;
  justify-content: space-between;
  font-size: .95rem;
  margin: 0 0 .75rem;
}
.kanban-list { display: grid; gap: .55rem; min-height: 180px; }
.kanban-card {
  display: grid;
  gap: .45rem;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  cursor: grab;
  box-shadow: 0 8px 18px rgba(17,24,39,.05);
}
.kanban-card.is-dragging { opacity: .55; }
.planning-timeline { display: grid; gap: .85rem; margin-top: 1rem; }
.timeline-group {
  position: relative;
  padding-left: 1rem;
  border-left: 2px solid #ffd4df;
}
.timeline-group h3 { font-size: 1rem; margin: 0 0 .55rem; }
.timeline-group article {
  display: flex;
  gap: .65rem;
  align-items: center;
  padding: .7rem;
  margin-bottom: .45rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.timeline-group article i { color: var(--pink); }
.timeline-group article span { display: block; color: var(--muted); font-size: .85rem; }
.planning-category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}
.category-card {
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.category-card h3 { display: flex; gap: .45rem; align-items: center; margin: 0 0 .65rem; font-size: 1rem; }
.category-card h3 span { margin-left: auto; color: var(--muted); }
.category-task { padding: .55rem 0; border-top: 1px solid #eef1f6; }
.category-task small { display: block; color: var(--muted); }
.task-form-section {
  padding: 1rem;
  margin-bottom: 1rem;
  border: 1px solid #e3e8ef;
  border-radius: 10px;
  background: #fff;
}
.planning-task-modal .modal-body { background: #f8fafc; }
.task-modal-footer { position: sticky; bottom: 0; background: #fff; z-index: 2; }
.subtask-row + .subtask-row { margin-top: .5rem; }
@keyframes convitaeFadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (max-width: 1199px) {
  .planning-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .planning-hero { align-items: stretch; flex-direction: column; }
  .planning-summary-grid { grid-template-columns: 1fr; }
  .planning-action-item { grid-template-columns: 1fr; }
  .planning-filters .form-select { max-width: none; width: 100%; }
  .planning-kanban { grid-template-columns: repeat(6, 82vw); }
  .planning-view-tabs .btn { flex: 1 1 calc(50% - .35rem); }
  .planning-workspace { padding: .75rem; }
}
/* Orçamento profissional */
.budget-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem;
  margin-bottom: 1rem;
  background: linear-gradient(135deg, #fff, #fff4f7 48%, #eef7ff);
}
.budget-hero h2 { margin: .4rem 0 .3rem; font-size: clamp(1.45rem, 3vw, 2.2rem); }
.budget-hero p { margin: 0; color: var(--muted); max-width: 760px; }
.budget-progress-ring {
  --value: calc(var(--progress) * 1%);
  width: 92px;
  height: 92px;
  flex: 0 0 92px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: conic-gradient(var(--pink) var(--value), #e8eef6 0);
  position: relative;
  text-align: center;
  font-weight: 900;
}
.budget-progress-ring::before { content: ""; position: absolute; inset: 9px; border-radius: inherit; background: #fff; }
.budget-progress-ring span, .budget-progress-ring small { position: relative; display: block; }
.budget-progress-ring span { font-size: 1.25rem; color: var(--ink); }
.budget-progress-ring small { margin-top: -1.1rem; color: var(--muted); font-size: .75rem; }
.budget-summary-grid { display: grid; grid-template-columns: repeat(6, minmax(150px, 1fr)); gap: .75rem; margin-bottom: .75rem; }
.budget-mini-card { padding: 1rem; min-height: 104px; display: grid; align-content: center; gap: .3rem; }
.budget-mini-card i { color: var(--pink); font-size: 1.35rem; }
.budget-mini-card strong { display: block; font-size: 1.2rem; color: var(--ink); }
.budget-mini-card span { color: var(--muted); }
.budget-category-strip { display: flex; gap: .6rem; overflow-x: auto; padding-bottom: .6rem; margin-bottom: .5rem; }
.budget-category-pill { min-width: 180px; padding: .75rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.budget-category-pill span, .budget-category-pill small { display: block; color: var(--muted); }
.budget-category-pill strong { display: block; color: var(--ink); margin: .2rem 0; }
.budget-panel { padding: 1rem; }
.budget-toolbar .form-select { max-width: 190px; }
.budget-row-title strong { font-weight: 700; }
.budget-empty { display: grid; place-items: center; gap: .35rem; padding: 2rem 1rem; color: var(--muted); text-align: center; }
.budget-empty i { color: var(--pink); font-size: 2.5rem; }
.budget-empty strong { color: var(--ink); }
.budget-smart-modal .modal-content { max-height: min(92vh, 980px); }
.budget-smart-body { overflow: auto; background: #f8fafc; }
.budget-form-section { padding: 1rem; margin-bottom: 1rem; border: 1px solid #e3e8ef; border-radius: 10px; background: #fff; }
.budget-form-section h3 { display: flex; align-items: center; gap: .45rem; margin: 0 0 .9rem; font-size: 1rem; font-weight: 800; }
.budget-smart-footer { position: sticky; bottom: 0; z-index: 2; background: #fff; }
@media (max-width: 1199px) { .budget-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .budget-hero { flex-direction: column; align-items: flex-start; }
  .budget-summary-grid { grid-template-columns: 1fr 1fr; }
  .budget-toolbar .form-select { max-width: none; width: 100%; }
  .budget-panel { padding: .75rem; }
}
/* Convidados profissional */
.guest-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem;
  margin-bottom: 1rem;
  background: linear-gradient(135deg, #fff, #fff4f7 48%, #eef7ff);
}
.guest-hero h2 { margin: .4rem 0 .3rem; font-size: clamp(1.45rem, 3vw, 2.2rem); }
.guest-hero p { margin: 0; color: var(--muted); max-width: 760px; }
.guest-progress-ring {
  --value: calc(var(--progress) * 1%);
  width: 92px;
  height: 92px;
  flex: 0 0 92px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: conic-gradient(var(--pink) var(--value), #e8eef6 0);
  position: relative;
  text-align: center;
  font-weight: 900;
}
.guest-progress-ring::before { content: ""; position: absolute; inset: 9px; border-radius: inherit; background: #fff; }
.guest-progress-ring span, .guest-progress-ring small { position: relative; display: block; }
.guest-progress-ring span { font-size: 1.25rem; color: var(--ink); }
.guest-progress-ring small { margin-top: -1.1rem; color: var(--muted); font-size: .72rem; }
.guest-summary-grid { display: grid; grid-template-columns: repeat(6, minmax(150px, 1fr)); gap: .75rem; margin-bottom: .75rem; }
.guest-mini-card { padding: 1rem; min-height: 104px; display: grid; align-content: center; gap: .3rem; }
.guest-mini-card i { color: var(--pink); font-size: 1.35rem; }
.guest-mini-card strong { display: block; font-size: 1.2rem; color: var(--ink); }
.guest-mini-card span { color: var(--muted); }
.guest-group-strip { display: flex; gap: .6rem; overflow-x: auto; padding-bottom: .6rem; margin-bottom: .5rem; }
.guest-group-pill { min-width: 180px; padding: .75rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.guest-group-pill span, .guest-group-pill small { display: block; color: var(--muted); }
.guest-group-pill strong { display: block; color: var(--ink); margin: .2rem 0; }
.guest-panel { padding: 1rem; }
.guest-toolbar .form-select { max-width: 190px; }
.guest-insights { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .85rem; }
.guest-insights span { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .65rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--muted); font-size: .88rem; }
.guest-insights i { color: var(--pink); }
.guest-row-title { display: flex; align-items: center; gap: .65rem; min-width: 230px; }
.guest-row-title strong { font-weight: 700; }
.guest-empty { display: grid; place-items: center; gap: .35rem; padding: 2rem 1rem; color: var(--muted); text-align: center; }
.guest-empty i { color: var(--pink); font-size: 2.5rem; }
.guest-empty strong { color: var(--ink); }
.guest-smart-modal .modal-content { max-height: min(92vh, 980px); }
.guest-smart-body { overflow: auto; background: #f8fafc; }
.guest-form-section { padding: 1rem; margin-bottom: 1rem; border: 1px solid #e3e8ef; border-radius: 10px; background: #fff; }
.guest-form-section h3 { display: flex; align-items: center; gap: .45rem; margin: 0 0 .9rem; font-size: 1rem; font-weight: 800; }
.guest-smart-footer { position: sticky; bottom: 0; z-index: 2; background: #fff; }
@media (max-width: 1199px) { .guest-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .guest-hero { flex-direction: column; align-items: flex-start; }
  .guest-summary-grid { grid-template-columns: 1fr 1fr; }
  .guest-toolbar .form-select { max-width: none; width: 100%; }
  .guest-panel { padding: .75rem; }
}
.guest-member-list { display: grid; gap: .65rem; }
.guest-member-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(190px, 1fr) auto auto;
  gap: .65rem;
  align-items: end;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.guest-member-child { min-width: 120px; margin-bottom: .45rem; }
.guest-member-age { display: block; margin-top: .25rem; color: #667085; font-size: .78rem; }
.guest-member-mini { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .35rem; }
.guest-member-mini span { padding: .18rem .45rem; border-radius: 999px; background: #f1f5f9; color: #526079; font-size: .75rem; }
.rsvp-authorized-box { padding: 1rem; border: 1px solid #e3e8ef; border-radius: 12px; background: #f8fafc; }
.rsvp-member-list { display: grid; gap: .65rem; }
.rsvp-member-card { display: grid; grid-template-columns: minmax(210px, .9fr) minmax(300px, 1.35fr); gap: .85rem; align-items: center; padding: .9rem; border: 1px solid #e3e8ef; border-radius: 10px; background: #fff; transition: opacity .18s ease, transform .18s ease; }
.rsvp-member-card.is-muted { opacity: .55; }
.rsvp-member-identity { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .55rem; align-items: center; min-width: 0; }
.rsvp-member-identity .form-check-label { overflow-wrap: anywhere; }
.rsvp-label-text { display: inline-flex; align-items: baseline; gap: 1px; margin-bottom: .35rem; }
.required-dot { color: #dc2626; font-weight: 800; }
.rsvp-member-card small { color: #526079; overflow-wrap: anywhere; }
.rsvp-birth-field { margin: 0; }
.rsvp-member-fields { display: grid; gap: .65rem; }
.rsvp-child-fields { grid-template-columns: minmax(170px, 1fr) minmax(170px, .9fr); align-items: start; }
.rsvp-adult-email-field { margin: 0; }
.rsvp-child-name-field { margin: 0; }
.rsvp-member-summary { display: flex; flex-wrap: wrap; gap: .5rem; }
.rsvp-member-summary span { padding: .4rem .65rem; border-radius: 999px; background: #fff; border: 1px solid #e3e8ef; color: #526079; }
@media (max-width: 767px) {
  .guest-member-row, .rsvp-member-card, .rsvp-child-fields, .rsvp-member-identity { grid-template-columns: 1fr; align-items: stretch; }
  .guest-member-child { margin-bottom: 0; }
}

/* RSVP final layout guard */
.confirm-card-premium .rsvp-authorized-box,
.confirm-card-premium .rsvp-member-list,
.confirm-card-premium .rsvp-member-card,
.confirm-card-premium .rsvp-member-fields,
.confirm-card-premium .rsvp-member-card .form-label,
.confirm-card-premium .rsvp-member-card .form-control {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.confirm-card-premium .rsvp-member-card {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  gap: .8rem;
  align-items: stretch;
  overflow: hidden;
  padding: 1rem;
}
.confirm-card-premium .rsvp-member-identity {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  min-width: 0;
}
.confirm-card-premium .rsvp-member-identity .form-check {
  min-width: 0;
  flex: 1 1 auto;
}
.confirm-card-premium .rsvp-member-identity .form-check-label {
  overflow-wrap: anywhere;
  line-height: 1.25;
  font-size: 1.05rem;
}
.confirm-card-premium .rsvp-member-identity .badge {
  flex: 0 0 auto;
}
.confirm-card-premium .rsvp-label-text {
  display: inline-flex;
  align-items: baseline;
  gap: 1px;
  margin-bottom: .35rem;
}
.confirm-card-premium .rsvp-label-text::after {
  content: "" !important;
}
.confirm-card-premium .rsvp-label-text[data-required="1"]::after {
  content: "*" !important;
  color: #dc2626;
  font-weight: 800;
}
.confirm-card-premium .required-dot {
  display: none !important;
}
.confirm-card-premium .rsvp-member-fields {
  width: 100%;
}
.confirm-card-premium .rsvp-child-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: .85rem;
  align-items: start;
}
.confirm-card-premium .rsvp-adult-email-field {
  display: block;
  width: 100%;
  max-width: none;
}
.confirm-card-premium .rsvp-adult-email-stack {
  display: grid;
  gap: .45rem;
}
.confirm-card-premium .rsvp-no-email-switch {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  width: fit-content;
  margin: 0;
  color: #526079;
}
.confirm-card-premium .rsvp-child-name-field,
.confirm-card-premium .rsvp-birth-field {
  margin: 0;
  width: 100%;
}
.confirm-card-premium .rsvp-adult-email-field .form-control,
.confirm-card-premium .rsvp-child-name-field .form-control,
.confirm-card-premium .rsvp-birth-field .form-control {
  width: 100%;
}
@media (max-width: 720px) {
  .confirm-card-premium .rsvp-child-fields {
    grid-template-columns: 1fr;
  }
  .confirm-card-premium .rsvp-member-identity {
    align-items: flex-start;
  }
}
/* Event edit modal tabs */
.event-edit-modal .modal-content { max-height: min(94vh, 980px); }
.event-edit-body { background: #f8fafc; }
.event-edit-tabs { gap: .25rem; overflow-x: auto; flex-wrap: nowrap; }
.event-edit-tabs .nav-link { white-space: nowrap; display: inline-flex; align-items: center; gap: .35rem; font-weight: 750; }
.event-edit-tab-content { padding: 1rem; border: 1px solid #dfe6f2; border-top: 0; border-radius: 0 0 10px 10px; background: #fff; }
.event-edit-tab-content .tab-pane { min-height: 320px; }
.event-edit-switch { min-height: 44px; padding: .65rem .75rem .65rem 2.9rem; border: 1px solid #e3e8ef; border-radius: 8px; background: #fff; }
.event-edit-footer { position: sticky; bottom: 0; z-index: 2; background: #fff; }
.upload-guide { display: grid; gap: .65rem; padding: .9rem; border: 1px solid #dfe6f2; border-radius: 10px; background: #fff; }
.upload-guide strong { color: #111827; font-size: 1rem; }
.upload-guide span { color: #667085; font-size: .9rem; }
.upload-guide img { width: 100%; max-height: 180px; object-fit: cover; border-radius: 8px; border: 1px solid #e3e8ef; background: #f8fafc; }
@media (max-width: 767px) {
  .event-edit-tab-content { padding: .75rem; }
  .event-edit-tabs .nav-link { padding-left: .75rem; padding-right: .75rem; }
}
/* Event edit modal separated forms */
.event-edit-feedback { margin-bottom: 1rem; display: flex; align-items: center; gap: .5rem; }
.event-edit-form { display: grid; gap: 1rem; }
.event-edit-section-footer { display: flex; justify-content: flex-end; gap: .75rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e6edf5; }
.event-template-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 1rem; }
.event-template-option { position: relative; display: grid; gap: .65rem; padding: .75rem; border: 1px solid #dfe6f2; border-radius: 10px; background: #fff; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.event-template-option:hover { transform: translateY(-1px); box-shadow: 0 12px 28px rgba(15, 23, 42, .08); }
.event-template-option input { position: absolute; opacity: 0; pointer-events: none; }
.event-template-option:has(input:checked) { border-color: #fb3f7f; box-shadow: 0 0 0 2px rgba(251, 63, 127, .14); }
.event-template-option.is-locked { opacity: .58; cursor: not-allowed; }
.event-template-preview { min-height: 140px; border-radius: 8px; padding: 1rem; display: flex; flex-direction: column; justify-content: flex-end; gap: .35rem; color: #fff; background: linear-gradient(145deg, var(--template-color, #fb3f7f), #111827); overflow: hidden; }
.event-template-preview strong { font-size: 1.05rem; line-height: 1.1; }
.event-template-preview em { align-self: flex-start; padding: .15rem .5rem; border-radius: 999px; background: rgba(255,255,255,.9); color: #d6336c; font-style: normal; font-size: .78rem; font-weight: 800; }
.event-template-meta { display: grid; gap: .15rem; }
.event-template-meta small { color: #667085; line-height: 1.35; }
.event-edit-modal .upload-guide img { aspect-ratio: 16 / 10; height: auto; max-height: 220px; object-fit: cover; }
.event-edit-modal .upload-guide [data-event-image-preview="invite_image"] { aspect-ratio: 9 / 16; max-height: 300px; object-fit: cover; justify-self: center; width: min(180px, 100%); }
@media (max-width: 767.98px) {
  .event-edit-section-footer { position: sticky; bottom: 0; z-index: 3; background: #fff; margin-inline: -.75rem; padding: .75rem; }
  .event-edit-section-footer .btn { width: 100%; }
}

/* Import/export event modals */
.import-dropzone { height: 100%; display: grid; gap: 1rem; align-content: center; padding: 1.25rem; border: 1px dashed #b8c7da; border-radius: 12px; background: linear-gradient(180deg, #f8fbff, #fff); }
.csv-helper-card { height: 100%; display: grid; gap: .75rem; padding: 1rem; border: 1px solid #e3e8ef; border-radius: 12px; background: #fff; }
.csv-helper-card ul { padding-left: 1.1rem; color: #526173; }
.csv-sample { white-space: pre-wrap; padding: .85rem; border-radius: 10px; background: #0f172a; color: #f8fafc; font-size: .82rem; line-height: 1.45; }
.export-options-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.export-option-card { text-align: left; display: grid; gap: .55rem; min-height: 190px; padding: 1.1rem; border: 1px solid #dfe6f2; border-radius: 12px; background: #fff; color: inherit; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.export-option-card:hover { transform: translateY(-1px); box-shadow: 0 16px 36px rgba(15, 23, 42, .08); border-color: #fb3f7f; color: inherit; }
.export-option-card small { color: #667085; line-height: 1.45; }
.export-option-card em { align-self: end; color: #d6336c; font-style: normal; font-weight: 800; }
.import-page-head .badge { margin-bottom: .5rem; }
.panel-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
@media (max-width: 767.98px) {
  .export-options-grid { grid-template-columns: 1fr; }
}

/* WhatsApp sending page */
.whatsapp-page-head .badge { margin-bottom: .5rem; }
.whatsapp-metrics .metric-card .ti-brand-whatsapp { color: #16a34a; }
.whatsapp-panel .table td { vertical-align: middle; }
.whatsapp-panel .btn-list form { display: inline-flex; }
@media (max-width: 767.98px) {
  .whatsapp-page-head { gap: 1rem; }
  .whatsapp-page-head .btn { width: 100%; }
  .whatsapp-panel .table-filter-row-fluid { grid-template-columns: 1fr; }
  .whatsapp-panel .table-filter-row-fluid .btn { width: 100%; }
}

/* Check-in page */
.checkin-page-head .badge { margin-bottom: .5rem; }
.checkin-progress-panel { margin-bottom: 1rem; }
.checkin-progress-panel .progress { height: .7rem; border-radius: 999px; background: #e8eef7; }
.checkin-progress-panel .progress-bar { background: linear-gradient(90deg, #fb3f7f, #0d6efd); border-radius: 999px; }
.checkin-panel .table td { vertical-align: middle; }
.checkin-count { display: inline-flex; align-items: baseline; gap: .2rem; margin-right: .45rem; }
.checkin-count strong { font-size: 1.15rem; line-height: 1; }
.checkin-count span { color: #667085; font-weight: 700; }
.checkin-inline-form { display: inline-flex; justify-content: flex-end; gap: .35rem; align-items: center; }
.checkin-inline-form .form-control { width: 76px; text-align: center; }
@media (max-width: 767.98px) {
  .checkin-page-head { gap: 1rem; }
  .checkin-page-head .btn { width: 100%; }
  .checkin-panel .table-filter-row-fluid { grid-template-columns: 1fr; }
  .checkin-panel .table-filter-row-fluid .btn { width: 100%; }
  .checkin-inline-form { justify-content: flex-start; }
}

/* Check-in modal refinements */
.checkin-page-head { margin-bottom: 1.35rem; }
.checkin-metrics { margin-top: .75rem; margin-bottom: 1.35rem; }
.checkin-progress-panel { margin-top: 1rem; margin-bottom: 1.35rem; }
.checkin-modal-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.checkin-modal-summary span { display: grid; gap: .15rem; padding: .75rem; border: 1px solid #e3e8ef; border-radius: 10px; background: #f8fafc; color: #667085; }
.checkin-modal-summary strong { color: #111827; font-size: 1.35rem; line-height: 1; }
.checkin-person-list { display: grid; gap: .65rem; }
.checkin-person-item { display: flex; align-items: center; gap: .75rem; padding: .85rem; border: 1px solid #dfe6f2; border-radius: 10px; background: #fff; cursor: pointer; }
.checkin-person-item span { display: grid; gap: .1rem; }
.checkin-person-item small { color: #667085; }
.checkin-person-item.is-checked { background: #f1f5f9; color: #667085; cursor: not-allowed; }
.checkin-history-list { display: grid; gap: .75rem; }
.checkin-history-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem; border: 1px solid #dfe6f2; border-radius: 10px; background: #fff; }
.checkin-history-item div { display: grid; gap: .15rem; }
.checkin-history-item small { color: #667085; }
@media (max-width: 767.98px) {
  .checkin-modal-summary { grid-template-columns: 1fr; }
  .checkin-history-item { align-items: stretch; flex-direction: column; }
  .checkin-history-item .btn { width: 100%; }
}

/* Events index */
.events-index-head .badge { margin-bottom: .5rem; }
.events-index-head { align-items: flex-end; }
.events-index-metrics { margin-bottom: 1.35rem; }
.events-index-panel,
.events-index-panel .responsive-table-shell,
.events-index-panel .events-table,
.events-index-panel .events-table tbody,
.events-index-panel .events-table tr,
.events-index-panel .events-table td { overflow: visible; }
.events-index-panel { position: relative; z-index: 2; }
.events-table .dropdown { position: relative; }
.events-table .dropdown-menu { z-index: 1085; box-shadow: 0 18px 42px rgba(15, 23, 42, .16); }
.events-table .dropdown-item {
  display: flex;
  align-items: center;
  gap: .55rem;
}
.events-table .dropdown-item i {
  width: 1.05rem;
  min-width: 1.05rem;
  text-align: center;
  font-size: 1rem;
}.events-table .btn-list form { display: inline-flex; }
.event-list-title { display: flex; align-items: center; gap: .75rem; min-width: 260px; }
.event-list-title > span:last-child { display: grid; gap: .1rem; }
.event-list-title small { color: #667085; }
.event-date-chip { width: 48px; min-width: 48px; height: 52px; display: grid; place-items: center; gap: .05rem; border-radius: 10px; background: #fff0f5; color: #d6336c; border: 1px solid #ffd6e5; }
.event-date-chip strong { font-size: 1.25rem; line-height: 1; }
.event-date-chip small { color: #d6336c; font-size: .68rem; font-weight: 900; letter-spacing: 0; }
.event-list-guests { display: grid; gap: .14rem; min-width: 230px; }
.event-list-guests strong { color: #172033; font-weight: 800; }
.event-list-guests span,
.event-list-guests small { color: #667085; line-height: 1.25; }
.event-list-guests small { font-size: .78rem; }
.responsive-table-shell { width: 100%; }
.event-public-link { display: inline-block; max-width: 280px; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; white-space: nowrap; font-weight: 750; color: #d6336c; }
.events-empty-state { display: grid; place-items: center; gap: .75rem; text-align: center; padding: 3rem 1rem; }
.events-empty-state h2 { margin: 0; }
.events-empty-state p { max-width: 520px; margin: 0; color: #667085; }
@media (max-width: 991.98px) {
  .events-index-head { align-items: stretch; }
  .events-index-head .btn-list { justify-content: stretch; }
  .events-index-head .btn { flex: 1 1 auto; }
}
@media (max-width: 767.98px) {
  .events-index-panel { padding: .75rem; }
  .events-index-panel .table-filter-row-fluid { grid-template-columns: 1fr; gap: .5rem; }
  .events-index-panel .table-filter-row-fluid .form-label { margin-bottom: -.15rem !important; }
  .events-index-panel .table-filter-row-fluid .form-control,
  .events-index-panel .table-filter-row-fluid .btn { width: 100%; min-width: 0; }
  .event-public-link { max-width: 190px; }
  .responsive-table-shell { overflow: visible; }
  .responsive-card-table {
    display: block;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
  }
  .responsive-card-table thead { display: none; }
  .responsive-card-table tbody { display: grid; gap: .75rem; width: 100%; }
  .responsive-card-table tr {
    display: block;
    width: 100%;
    padding: .85rem;
    border: 1px solid #e3e8ef;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 14px 30px rgba(15, 23, 42, .06);
  }
  .responsive-card-table td {
    display: grid;
    grid-template-columns: minmax(82px, .36fr) minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
    width: 100%;
    padding: .42rem 0 !important;
    border: 0 !important;
    text-align: left !important;
    white-space: normal;
  }
  .responsive-card-table td::before {
    content: attr(data-label);
    color: #667085;
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .02em;
    text-transform: uppercase;
    padding-top: .15rem;
  }
  .events-table td[data-label="#"] { display: none; }
  .events-table td[data-label="Evento"] {
    display: block;
    padding-top: 0 !important;
  }
  .events-table td[data-label="Evento"]::before { display: none; }
  .events-table td[data-label="Ações"] {
    display: block;
    padding-top: .7rem !important;
    border-top: 1px solid #edf1f7 !important;
  }
  .events-table td[data-label="Ações"]::before { display: none; }
  .events-table td[data-label="Ações"] .btn-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .45rem;
    justify-content: stretch !important;
  }
  .events-table td[data-label="Ações"] .btn,
  .events-table td[data-label="Ações"] .dropdown,
  .events-table td[data-label="Ações"] .dropdown > .btn {
    width: 100%;
  }
  .events-table .dropdown-menu { min-width: 13.5rem; }
  .event-list-title { min-width: 0; align-items: flex-start; }
  .event-list-title strong { display: block; line-height: 1.2; }
  .event-list-guests { min-width: 0; }
}

/* Agenda virtual */
.agenda-page-head .badge { margin-bottom: .5rem; }
.agenda-page-head { align-items: flex-end; }
.agenda-metrics { margin-bottom: 1.25rem; }
.agenda-plan-alert { display: flex; align-items: flex-start; gap: .75rem; border-radius: 12px; }
.agenda-plan-alert .ti { font-size: 1.35rem; margin-top: .1rem; }
.agenda-plan-alert span { display: block; color: #526173; }
.agenda-shell { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1rem; align-items: start; }
.agenda-calendar-panel { min-width: 0; overflow: hidden; }
.agenda-sidebar-panel { position: sticky; top: 1rem; }
.agenda-upcoming-list { display: grid; gap: .75rem; }
.agenda-upcoming-item { width: 100%; display: flex; align-items: center; gap: .75rem; padding: .85rem; border: 1px solid #dfe6f2; border-radius: 12px; background: #fff; text-align: left; color: inherit; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.agenda-upcoming-item:hover { transform: translateY(-1px); border-color: #fb3f7f; box-shadow: 0 12px 28px rgba(15, 23, 42, .08); }
.agenda-upcoming-item > span:last-child { display: grid; gap: .1rem; min-width: 0; }
.agenda-upcoming-item strong { color: #111827; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-upcoming-item small { color: #667085; font-weight: 700; }
.agenda-date-chip { width: 48px; min-width: 48px; height: 52px; display: grid; place-items: center; gap: .05rem; border-radius: 10px; background: #fff0f5; color: #d6336c; border: 1px solid #ffd6e5; }
.agenda-date-chip strong { font-size: 1.25rem; line-height: 1; color: #d6336c; }
.agenda-date-chip small { color: #d6336c; font-size: .68rem; font-weight: 900; letter-spacing: 0; }
.agenda-calendar { min-height: 680px; }
.agenda-calendar .fc { color: #172033; font-family: inherit; }
.agenda-calendar .fc-toolbar { gap: .75rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.agenda-calendar .fc-toolbar-title { font-size: clamp(1.25rem, 2vw, 1.8rem); font-weight: 850; color: #111827; text-transform: capitalize; }
.agenda-calendar .fc-button { border-radius: 8px !important; border: 1px solid #cbd7e6 !important; background: #fff !important; color: #0f172a !important; box-shadow: none !important; font-weight: 800 !important; padding: .5rem .8rem !important; }
.agenda-calendar .fc-button:hover,
.agenda-calendar .fc-button-active { background: #fb3f7f !important; border-color: #fb3f7f !important; color: #fff !important; }
.agenda-calendar .fc-scrollgrid,
.agenda-calendar .fc-theme-standard td,
.agenda-calendar .fc-theme-standard th { border-color: #e3e8ef; }
.agenda-calendar .fc-col-header-cell { background: #f8fafc; padding: .65rem .25rem; }
.agenda-calendar .fc-col-header-cell-cushion { color: #526173; font-size: .78rem; font-weight: 900; text-transform: uppercase; text-decoration: none; }
.agenda-calendar .fc-daygrid-day-number { color: #526173; font-weight: 800; text-decoration: none; padding: .45rem; }
.agenda-calendar .fc-day-today { background: #fff7fb !important; }
.agenda-calendar .fc-daygrid-day-frame { min-height: 112px; }
.agenda-calendar .fc-event { border-radius: 8px; border: 0; padding: .25rem .35rem; box-shadow: 0 8px 18px rgba(15, 23, 42, .08); }
.agenda-calendar .fc-event-main { color: inherit; }
.agenda-calendar .agenda-fc-event { display: grid; gap: .05rem; min-width: 0; line-height: 1.15; }
.agenda-calendar .agenda-fc-event strong { font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-calendar .agenda-fc-event small { font-size: .67rem; opacity: .88; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-calendar .calendar-source-event { box-shadow: none; border: 1px solid #ffd6e5 !important; }
.agenda-calendar .fc-list { border-color: #e3e8ef; border-radius: 12px; overflow: hidden; }
.agenda-calendar .fc-list-day-cushion { background: #f8fafc !important; color: #111827; }
.agenda-calendar .fc-list-event:hover td { background: #fff7fb; }
.agenda-toast { position: fixed; top: 1rem; right: 1rem; z-index: 1100; min-width: 280px; border-radius: 12px; box-shadow: 0 16px 48px rgba(15, 23, 42, .18); }
.empty-state.mini { min-height: 180px; padding: 1.5rem; border: 1px dashed #d7e0ec; border-radius: 12px; background: #f8fafc; }
.empty-state.mini .ti { font-size: 2rem; color: #fb3f7f; }
.empty-state.mini p { margin: 0; color: #667085; }
@media (max-width: 1199.98px) {
  .agenda-shell { grid-template-columns: 1fr; }
  .agenda-sidebar-panel { position: static; }
}
@media (max-width: 767.98px) {
  .agenda-page-head { align-items: stretch; }
  .agenda-page-head .btn-list,
  .agenda-page-head .btn { width: 100%; }
  .agenda-calendar { min-height: 520px; }
  .agenda-calendar .fc-header-toolbar { align-items: stretch; flex-direction: column; }
  .agenda-calendar .fc-toolbar-chunk { display: flex; justify-content: center; flex-wrap: wrap; gap: .35rem; }
  .agenda-calendar .fc-toolbar-title { text-align: center; }
  .agenda-calendar .fc-daygrid-day-frame { min-height: 82px; }
  .agenda-toast { left: 1rem; right: 1rem; min-width: 0; }
}
/* Minha conta */
.account-page-head .badge { margin-bottom: .5rem; }
.account-page-head { align-items: flex-end; }
.account-profile-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.25rem; align-items: center; margin-bottom: 1.25rem; overflow: hidden; position: relative; }
.account-profile-hero::after { content: ""; position: absolute; inset: auto -80px -120px auto; width: 280px; height: 280px; border-radius: 999px; background: radial-gradient(circle, rgba(251,63,127,.14), transparent 68%); pointer-events: none; }
.account-hero-content { display: grid; gap: .45rem; min-width: 0; position: relative; z-index: 1; }
.account-hero-content h2 { margin: 0; font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.02; letter-spacing: 0; }
.account-hero-content p { margin: 0; color: #667085; font-size: 1.05rem; overflow-wrap: anywhere; }
.account-hero-meta { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .4rem; }
.account-hero-meta span { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .65rem; border-radius: 999px; background: #f8fafc; border: 1px solid #e3e8ef; color: #526173; font-weight: 750; }
.account-brand-preview { position: relative; z-index: 1; display: grid; justify-items: center; gap: .55rem; padding: 1rem; min-width: 190px; border: 1px solid #e3e8ef; border-radius: 14px; background: linear-gradient(180deg, #fff, #f8fafc); }
.account-avatar { --tblr-avatar-size: 112px; font-size: 2.5rem; box-shadow: 0 16px 36px rgba(15,23,42,.10); background-size: cover; background-position: center; }
.account-brand-preview small { color: #667085; font-weight: 800; }
.account-tabs-panel { padding: 0; overflow: hidden; }
.account-tabs { padding: 0 1rem; background: #f8fafc; overflow-x: auto; flex-wrap: nowrap; }
.account-tabs .nav-link { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; font-weight: 800; }
.account-tab-content { padding: 1.25rem; }
.account-tab-content .tab-pane { min-height: 300px; }
.account-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.account-section-head h2 { margin: 0; }
.account-section-head p { margin: .15rem 0 0; color: #667085; }
.account-preview-row { display: flex; flex-wrap: wrap; gap: .85rem; padding: .9rem; border: 1px solid #e3e8ef; border-radius: 12px; background: #f8fafc; }
.account-preview-row > div { display: flex; align-items: center; gap: .75rem; min-width: 220px; }
.account-preview-row strong { color: #111827; }
.account-preview-row .avatar { background-size: cover; background-position: center; }
.security-option-card,
.settings-option-card { min-height: 94px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid #dfe6f2; border-radius: 12px; background: #fff; color: inherit; text-decoration: none; }
.security-option-card > div,
.settings-option-card > span:first-child { display: grid; grid-template-columns: auto 1fr; gap: .15rem .7rem; align-items: start; min-width: 0; }
.security-option-card i,
.settings-option-card i { grid-row: span 2; color: #fb3f7f; font-size: 1.35rem; margin-top: .1rem; }
.security-option-card strong,
.settings-option-card strong { color: #111827; }
.security-option-card span,
.settings-option-card small { color: #667085; line-height: 1.35; }
.security-option-card.is-muted { background: #f8fafc; opacity: .78; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.account-password-panel { margin-top: 1.25rem; }
.password-field { position: relative; }
.password-field .form-control { padding-right: 3rem; }
.password-field .btn { position: absolute; right: .25rem; top: .25rem; border: 0; color: #667085; }
@media (max-width: 991.98px) {
  .account-profile-hero { grid-template-columns: 1fr; }
  .account-brand-preview { justify-self: stretch; }
  .settings-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .account-page-head { align-items: stretch; }
  .account-page-head .btn { width: 100%; }
  .account-section-head { flex-direction: column; }
  .account-section-head .btn { width: 100%; }
  .account-tab-content { padding: .9rem; }
  .account-tabs { padding: 0 .5rem; }
  .security-option-card,
  .settings-option-card { align-items: flex-start; flex-direction: column; }
}
/* Evento completo */
.event-create-head .badge { margin-bottom: .5rem; }
.event-create-head { align-items: flex-end; }
.event-create-layout { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 1rem; align-items: start; }
.event-create-summary { position: sticky; top: 1rem; display: grid; gap: 1rem; }
.event-create-phone-preview { display: grid; place-items: center; padding: 1rem; border-radius: 16px; background: linear-gradient(160deg, #111827, #fb3f7f); }
.event-create-phone-screen { width: min(230px, 100%); aspect-ratio: 9 / 16; display: flex; flex-direction: column; justify-content: flex-end; gap: .55rem; padding: 1.1rem; border: 8px solid #fff; border-radius: 28px; color: #fff; background: linear-gradient(150deg, #fb3f7f, #ffb347); box-shadow: 0 24px 56px rgba(15, 23, 42, .24); overflow: hidden; }
.event-create-phone-screen.is-premium { background: linear-gradient(150deg, #7952b3, #0d6efd); }
.event-create-phone-screen span { align-self: flex-start; padding: .25rem .55rem; border-radius: 999px; background: rgba(255,255,255,.9); color: #d6336c; font-size: .78rem; font-weight: 900; }
.event-create-phone-screen strong { font-size: 2rem; line-height: .98; overflow-wrap: anywhere; }
.event-create-phone-screen small { color: rgba(255,255,255,.86); line-height: 1.35; }
.event-create-phone-screen em { margin-top: .3rem; padding: .55rem; border-radius: 10px; background: #fff; color: #d6336c; text-align: center; font-style: normal; font-weight: 900; }
.event-create-plan { margin: 0; }
.event-create-checklist { display: grid; gap: .55rem; padding: .85rem; border: 1px solid #e3e8ef; border-radius: 12px; background: #f8fafc; }
.event-create-checklist strong { color: #111827; }
.event-create-checklist span { display: flex; align-items: center; gap: .45rem; color: #526173; font-weight: 750; }
.event-create-checklist .ti { color: #2fb344; }
.event-create-panel { padding: 0; overflow: hidden; }
.event-create-tabs { padding: 0 1rem; background: #f8fafc; overflow-x: auto; flex-wrap: nowrap; }
.event-create-tabs .nav-link { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; font-weight: 850; }
.event-create-tab-content { padding: 1.25rem; min-height: 560px; }
.event-create-section-head { margin-bottom: 1rem; }
.event-create-section-head h2 { margin: 0; }
.event-create-section-head p { margin: .2rem 0 0; color: #667085; }
.event-create-auto-link { min-height: 44px; display: flex; align-items: center; gap: .45rem; color: #667085; padding: .45rem 0; }
.create-template-picker { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.create-template-picker .event-template-preview { min-height: 190px; background: linear-gradient(145deg, #fb3f7f, #111827); }
.create-template-picker .event-template-preview small { color: rgba(255,255,255,.84); font-weight: 750; }
.event-create-upload { min-height: 100%; }
.event-create-upload img { width: 100%; object-fit: cover; background: #f8fafc; }
.event-create-upload [data-create-image-preview="invite"] { aspect-ratio: 9 / 16; max-height: 360px; width: min(220px, 100%); justify-self: center; }
.event-create-upload [data-create-image-preview="cover"] { aspect-ratio: 16 / 9; max-height: 260px; }
.event-create-switch { height: 100%; min-height: 64px; display: flex; align-items: center; gap: .8rem; padding: .8rem .9rem .8rem 3rem; border: 1px solid #dfe6f2; border-radius: 10px; background: #fff; }
.event-create-footer { position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: flex-end; gap: .75rem; padding: 1rem 1.25rem; border-top: 1px solid #e3e8ef; background: rgba(255,255,255,.96); backdrop-filter: blur(8px); }
@media (max-width: 1199.98px) {
  .event-create-layout { grid-template-columns: 1fr; }
  .event-create-summary { position: static; grid-template-columns: minmax(220px, 340px) 1fr; }
  .event-create-phone-preview { grid-row: span 2; }
}
@media (max-width: 767.98px) {
  .event-create-head { align-items: stretch; }
  .event-create-head .btn-list,
  .event-create-head .btn { width: 100%; }
  .event-create-summary { grid-template-columns: 1fr; }
  .event-create-tab-content { padding: .9rem; min-height: auto; }
  .event-create-tabs { padding: 0 .5rem; }
  .event-create-footer { flex-direction: column-reverse; padding: .85rem; }
  .event-create-footer .btn { width: 100%; }
}
/* Event template catalog */
.event-create-phone-screen {
  background: var(--event-preview-bg, linear-gradient(135deg,#ff4d7d,#ffb347));
  position: relative;
  overflow: hidden;
  transition: background .35s ease, transform .35s ease, box-shadow .35s ease;
}
.event-create-phone-screen::before {
  content: "";
  position: absolute;
  inset: -25%;
  background: radial-gradient(circle at 30% 25%, rgba(255,255,255,.38), transparent 28%), radial-gradient(circle at 74% 12%, rgba(255,255,255,.24), transparent 24%);
  animation: templatePreviewGlow 7s ease-in-out infinite alternate;
  pointer-events: none;
}
.event-create-phone-screen > * { position: relative; z-index: 1; }
.event-create-phone-screen [data-preview-template-name] {
  display: inline-flex;
  width: fit-content;
  margin-top: .45rem;
  padding: .22rem .55rem;
  border-radius: 999px;
  background: rgba(255,255,255,.2);
  color: #fff;
  font-size: .75rem;
  font-style: normal;
  backdrop-filter: blur(8px);
}
.event-create-phone-screen.template-pulse {
  animation: templatePhonePulse .55s ease;
}
.preview-spark {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  background: rgba(255,255,255,.75);
  z-index: 0;
  animation: templateSpark 5s ease-in-out infinite;
}
.preview-spark-one { top: 18%; right: 20%; }
.preview-spark-two { top: 38%; left: 15%; animation-delay: 1s; }
.preview-spark-three { bottom: 22%; right: 32%; animation-delay: 2s; }
.template-filter-shell {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
}
.template-category-tabs {
  display: flex;
  gap: .5rem;
  overflow-x: auto;
  padding-bottom: .15rem;
}
.template-filter-chip {
  border: 1px solid var(--tblr-border-color, #dce3ed);
  background: #fff;
  color: #52637a;
  min-height: 42px;
  border-radius: 8px;
  padding: .45rem .65rem;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  white-space: nowrap;
  font-weight: 700;
  transition: all .2s ease;
}
.template-filter-chip small {
  min-width: 24px;
  height: 24px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f1f5f9;
  color: #64748b;
  font-size: .75rem;
}
.template-filter-chip:hover,
.template-filter-chip.active {
  border-color: #ff477d;
  color: #e12d68;
  box-shadow: 0 10px 24px rgba(255,71,125,.16);
  transform: translateY(-1px);
}
.template-filter-chip.active small { background: #ffe4ef; color: #e12d68; }
.template-filter-controls {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px;
  gap: .75rem;
}
.selected-template-ribbon {
  display: flex;
  gap: .75rem;
  align-items: center;
  padding: .85rem 1rem;
  border: 1px solid #ffd0df;
  border-radius: 8px;
  background: linear-gradient(135deg,#fff7fa,#fff);
  margin-bottom: 1rem;
}
.selected-template-ribbon i { color: #ff477d; font-size: 1.35rem; }
.selected-template-ribbon strong { display: block; color: #172033; }
.selected-template-ribbon span { color: #64748b; }
.create-template-picker.categorized {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1rem;
}
.create-template-picker.categorized .event-template-option {
  border: 1px solid #dce3ed;
  border-radius: 10px;
  background: #fff;
  padding: .75rem;
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.create-template-picker.categorized .event-template-option:hover,
.create-template-picker.categorized .event-template-option.is-selected {
  border-color: #ff477d;
  box-shadow: 0 16px 34px rgba(15,23,42,.12);
  transform: translateY(-2px);
}
.create-template-picker.categorized .event-template-option.is-locked {
  opacity: .58;
  cursor: not-allowed;
}
.create-template-picker.categorized .event-template-option input { position: absolute; opacity: 0; pointer-events: none; }
.create-template-picker.categorized .event-template-preview {
  min-height: 188px;
  border-radius: 9px;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  justify-content: end;
  position: relative;
  overflow: hidden;
  background: var(--template-bg, linear-gradient(135deg,#ff4d7d,#ffb347));
  background-size: cover;
  background-position: center;
  color: #fff;
}
.create-template-picker.categorized .event-template-preview::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,rgba(15,23,42,.03),rgba(15,23,42,.55));
  z-index: 0;
}
.create-template-picker.categorized .event-template-preview::after {
  content: "";
  position: absolute;
  top: -45%;
  left: -70%;
  width: 70%;
  height: 190%;
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);
  transform: rotate(18deg);
  animation: templateShine 5.5s ease-in-out infinite;
  z-index: 0;
}
.event-template-preview em,
.event-template-preview strong,
.event-template-preview small { position: relative; z-index: 1; }
.event-template-preview em {
  width: fit-content;
  border-radius: 999px;
  padding: .18rem .55rem;
  background: rgba(255,255,255,.9);
  color: #e12d68;
  font-style: normal;
  font-weight: 800;
  margin-bottom: .45rem;
}
.event-template-preview strong { font-size: 1.15rem; line-height: 1.15; }
.event-template-preview small { color: rgba(255,255,255,.86); font-weight: 700; }
.template-float {
  position: absolute;
  width: 14px;
  height: 14px;
  border-radius: 4px;
  background: rgba(255,255,255,.7);
  z-index: 0;
  animation: templateSpark 4.8s ease-in-out infinite;
}
.template-float.one { top: 18%; left: 18%; }
.template-float.two { top: 24%; right: 20%; animation-delay: 1.2s; }
.template-float.three { bottom: 34%; right: 42%; animation-delay: 2.1s; }
.event-template-meta {
  display: grid;
  gap: .25rem;
  padding: .8rem .25rem .15rem;
}
.event-template-meta strong { color: #172033; }
.event-template-meta small { color: #64748b; font-weight: 700; }
.event-template-meta span { color: #66758a; font-size: .88rem; }
.template-empty-state {
  border: 1px dashed #d8e0eb;
  border-radius: 10px;
  padding: 2rem;
  text-align: center;
  color: #64748b;
}
.template-empty-state i { display: block; font-size: 2rem; color: #ff477d; margin-bottom: .5rem; }
.template-empty-state strong { display: block; color: #172033; }
@keyframes templatePhonePulse {
  0% { transform: scale(.98); }
  60% { transform: scale(1.018); }
  100% { transform: scale(1); }
}
@keyframes templatePreviewGlow {
  from { transform: translate3d(-2%, -2%, 0) rotate(0deg); opacity: .72; }
  to { transform: translate3d(3%, 2%, 0) rotate(8deg); opacity: 1; }
}
@keyframes templateSpark {
  0%, 100% { transform: translateY(0) rotate(0deg); opacity: .35; }
  50% { transform: translateY(-16px) rotate(24deg); opacity: .9; }
}
@keyframes templateShine {
  0%, 55% { left: -85%; opacity: 0; }
  65% { opacity: 1; }
  100% { left: 130%; opacity: 0; }
}
@media (max-width: 768px) {
  .template-filter-controls { grid-template-columns: 1fr; }
  .create-template-picker.categorized { grid-template-columns: 1fr; }
  .template-category-tabs { margin-inline: -.25rem; padding-inline: .25rem; }
}

/* Commercial plans */
.billing-plans-head .badge { margin-bottom: .5rem; }
.plan-audience-tabs {
  gap: .5rem;
  margin-bottom: 1rem;
}
.plan-audience-tabs .nav-link {
  border: 1px solid var(--line);
  background: #fff;
  color: #52637a;
  font-weight: 800;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 44px;
}
.plan-audience-tabs .nav-link.active {
  background: #111936;
  border-color: #111936;
  color: #fff;
  box-shadow: 0 16px 32px rgba(17,25,54,.18);
}
.plan-period-toggle {
  display: inline-flex;
  gap: .35rem;
  padding: .35rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  margin-bottom: 1.15rem;
}
.plan-period-toggle button {
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #52637a;
  font-weight: 800;
  padding: .55rem .9rem;
}
.plan-period-toggle button.active {
  background: var(--pink);
  color: #fff;
  box-shadow: 0 10px 24px rgba(255,71,125,.22);
}
.plan-section-intro {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-end;
  margin-bottom: 1rem;
}
.plan-section-intro h2 { margin: 0; font-size: 1.3rem; }
.plan-section-intro p { margin: .25rem 0 0; color: var(--muted); }
.plan-section-intro > span {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .55rem .75rem;
  border-radius: 8px;
  background: #eef6ff;
  color: #075985;
  font-weight: 800;
}
.commercial-plans-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.commercial-plan-card {
  min-height: 100%;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.commercial-plan-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 48px rgba(17, 24, 39, .1);
}
.plan-card-head {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: flex-start;
}
.plan-card-head span {
  padding: .25rem .55rem;
  border-radius: 999px;
  background: #eef2ff;
  color: #3150a7;
  font-weight: 800;
  font-size: .78rem;
  white-space: nowrap;
}
.plan-price {
  display: flex;
  align-items: flex-end;
  gap: .4rem;
}
.plan-price strong { font-size: 2.35rem; line-height: 1; }
.plan-price small { color: var(--muted); font-weight: 800; padding-bottom: .15rem; }
.commercial-upsell-strip span {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}
.pricing-hero { background: linear-gradient(135deg, #111936, #26346d); color: #fff; }
.pricing-hero p { color: rgba(255,255,255,.82); }
@media (max-width: 1180px) {
  .commercial-plans-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .plan-section-intro { align-items: flex-start; flex-direction: column; }
  .plan-period-toggle { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; }
  .plan-period-toggle button { padding-inline: .4rem; }
  .commercial-plans-grid { grid-template-columns: 1fr; }
}

/* Account operators */
.operators-head .badge { margin-bottom: .45rem; }
.operator-upgrade-panel {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid #ffd0df;
  border-radius: 10px;
  background: linear-gradient(135deg,#fff7fa,#fff);
  margin-bottom: 1rem;
}
.operator-upgrade-panel > i {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: #ffe4ef;
  color: var(--pink-dark);
  font-size: 1.35rem;
}
.operator-upgrade-panel div { flex: 1; }
.operator-upgrade-panel strong { display: block; color: #172033; }
.operator-upgrade-panel span { color: var(--muted); }
.operators-metrics { margin-bottom: 1rem; }
.operators-toolbar {
  display: flex;
  align-items: center;
  gap: .65rem;
}
.operators-table th,
.operators-table td { vertical-align: middle; }
.operator-permission-list {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  max-width: 520px;
}
.operator-permission-list span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: .15rem .45rem;
  border-radius: 999px;
  background: #eef6ff;
  color: #075985;
  font-weight: 800;
  font-size: .78rem;
}
.operator-permission-list span.muted {
  background: #f1f5f9;
  color: #64748b;
}
.operator-form-modal .modal-body { background: #fbfcff; }
.operator-permission-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
.operator-permission-card {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.operator-permission-card:hover {
  border-color: var(--pink);
  box-shadow: 0 12px 26px rgba(17,24,39,.08);
  transform: translateY(-1px);
}
.operator-permission-card input { margin-top: .2rem; }
.operator-permission-card strong { display: block; color: #172033; }
.operator-permission-card small { display: block; color: var(--muted); margin-top: .15rem; }
.empty-state.compact {
  display: grid;
  place-items: center;
  gap: .35rem;
  padding: 2rem;
  color: var(--muted);
}
.empty-state.compact i { color: var(--pink); font-size: 2rem; }
.empty-state.compact strong { color: #172033; }
@media (max-width: 760px) {
  .operator-upgrade-panel { align-items: flex-start; flex-direction: column; }
  .operators-toolbar { flex-direction: column; align-items: stretch; }
  .operator-permission-grid { grid-template-columns: 1fr; }
}

/* Billing credits */
.credits-head .badge { margin-bottom: .45rem; }
.credits-metrics { margin-bottom: 1rem; }
.credits-subscription-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid #dbeafe;
  border-radius: 10px;
  background: linear-gradient(135deg,#eff6ff,#fff);
  margin-bottom: 1rem;
}
.credits-subscription-card.muted {
  border-color: #ffd0df;
  background: linear-gradient(135deg,#fff7fa,#fff);
}
.credits-subscription-card > i {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: #dbeafe;
  color: #075985;
  font-size: 1.35rem;
}
.credits-subscription-card.muted > i {
  background: #ffe4ef;
  color: var(--pink-dark);
}
.credits-subscription-card div { flex: 1; }
.credits-subscription-card strong { display: block; color: #172033; }
.credits-subscription-card span { color: var(--muted); }
.credits-toolbar {
  display: flex;
  gap: .65rem;
  align-items: center;
}
.credits-table th,
.credits-table td { vertical-align: middle; }
.credit-progress {
  width: 130px;
  height: 7px;
  border-radius: 999px;
  background: #e5eaf2;
  overflow: hidden;
  margin-bottom: .25rem;
}
.credit-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--pink), #2563eb);
}
@media (max-width: 760px) {
  .credits-subscription-card { align-items: flex-start; flex-direction: column; }
  .credits-toolbar { flex-direction: column; align-items: stretch; }
  .credit-progress { width: 100%; }
}

.account-push-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--tblr-border-color, #dce3ec);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(255, 63, 127, .08), rgba(13, 110, 253, .06)), #fff;
}
.account-push-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(135deg, #ff3f7f, #0d6efd);
  box-shadow: 0 12px 28px rgba(255, 63, 127, .22);
  font-size: 1.35rem;
}
.account-push-copy {
  display: grid;
  gap: .25rem;
  min-width: 0;
}
.account-push-copy strong {
  font-size: 1rem;
  color: #172033;
}
.account-push-copy span:not(.badge) {
  color: #60708a;
  line-height: 1.35;
}
.account-push-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .5rem;
}
.account-push-status {
  margin-top: .25rem;
}
@media (max-width: 767.98px) {
  .account-push-card {
    grid-template-columns: auto 1fr;
  }
  .account-push-actions {
    grid-column: 1 / -1;
    justify-content: stretch;
  }
  .account-push-actions .btn {
    flex: 1 1 auto;
  }
}
.credits-subscription-card.warning {
  border-color: rgba(245, 159, 0, .35);
  background: linear-gradient(135deg, rgba(245, 159, 0, .10), rgba(255, 255, 255, .95));
}
.credits-subscription-card.warning > i {
  color: #f59f00;
  background: rgba(245, 159, 0, .14);
}
.credits-subscription-card.danger {
  border-color: rgba(214, 51, 108, .35);
  background: linear-gradient(135deg, rgba(214, 51, 108, .10), rgba(255, 255, 255, .95));
}
.credits-subscription-card.danger > i {
  color: #d6336c;
  background: rgba(214, 51, 108, .14);
}
@media (max-width: 767.98px) {
  .events-table td:last-child {
    display: block;
    padding-top: .7rem !important;
    border-top: 1px solid #edf1f7 !important;
  }
  .events-table td:last-child::before { display: none; }
  .events-table td:last-child .btn-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .45rem;
    justify-content: stretch !important;
  }
  .events-table td:last-child .btn,
  .events-table td:last-child .dropdown,
  .events-table td:last-child .dropdown > .btn {
    width: 100%;
  }
}
.create-template-picker.categorized .event-template-option.template-pulse {
  animation: templateCardPulse .45s ease;
}
.wizard-template-catalog .template-filter-shell {
  margin-top: .25rem;
}
@keyframes templateCardPulse {
  0% { transform: translateY(-2px) scale(1); }
  45% { transform: translateY(-3px) scale(1.015); }
  100% { transform: translateY(-2px) scale(1); }
}
/* Public invite refinement + PWA install */
.public-footer-mobile { display: none; }
.invite-section-stack { max-width: 1180px; }
.invite-info-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.invite-info-card {
  position: relative;
  overflow: hidden;
  min-height: 138px;
  padding: 1.25rem;
  border-color: rgba(228, 234, 244, .95);
  background: linear-gradient(145deg, #fff, #f8fbff);
}
.invite-info-card::after {
  content: "";
  position: absolute;
  inset: auto -20% -45% 35%;
  height: 90px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,63,127,.12), transparent 68%);
}
.invite-info-card-wide { grid-column: 1 / -1; min-height: 124px; }
.invite-section-panel {
  border-color: rgba(214, 222, 235, .9);
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(248,251,255,.96));
}
.invite-section-head h2,
.invite-final-cta h2,
.pix-premium-card h2 {
  max-width: 760px;
  font-size: clamp(1.75rem, 3.7vw, 3.05rem);
  line-height: 1.03;
  text-wrap: balance;
}
.pix-premium-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  align-items: center;
  gap: clamp(1rem, 3vw, 2rem);
}
.pix-premium-card h2 { font-size: clamp(1.9rem, 4.6vw, 3.45rem); }
.pix-copy-box {
  display: grid;
  gap: .65rem;
  padding: 1.1rem;
  border: 1px solid #dde6f2;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15,23,42,.06);
}
.pix-copy-box small { font-weight: 850; color: #667085; }
.pix-copy-box strong { font-size: 1.1rem; overflow-wrap: anywhere; }
.invite-location-box { padding: .35rem; }
.invite-final-cta {
  align-items: center;
  padding: clamp(1.25rem, 3vw, 2rem);
}
.invite-final-cta .btn { white-space: nowrap; }
.pwa-install-banner {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 1080;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .8rem;
  width: min(520px, calc(100vw - 2rem));
  padding: .9rem;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 14px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 55px rgba(15,23,42,.18);
  backdrop-filter: blur(14px);
}
.pwa-install-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  background: linear-gradient(135deg, #ff3f7f, #0d6efd);
  font-size: 1.35rem;
}
.pwa-install-copy { display: grid; gap: .12rem; min-width: 0; }
.pwa-install-copy strong { color: #111827; }
.pwa-install-copy span { color: #667085; line-height: 1.25; }
.settings-admin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.settings-feature-card { display: grid; gap: 1.1rem; }
.settings-card-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .9rem;
  align-items: start;
}
.settings-card-head h2 { margin: 0; }
.settings-card-head p { margin: .2rem 0 0; color: #667085; }
.settings-card-icon {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(135deg, #ff3f7f, #0d6efd);
  font-size: 1.35rem;
}
.settings-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.settings-form-wide { grid-column: 1 / -1; }
.settings-inline-form { display: grid; gap: .35rem; }
.settings-status-list { display: flex; flex-wrap: wrap; gap: .5rem; }
.settings-status-list span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .45rem .65rem;
  border-radius: 999px;
  background: #f2f6fb;
  color: #526176;
  font-weight: 700;
  font-size: .86rem;
}
.settings-status-list i { color: #0d6efd; }
@media (max-width: 980px) {
  .settings-admin-grid { grid-template-columns: 1fr; }
  .pix-premium-card { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  body.public-shell { padding-bottom: 0; }
  .public-footer { padding: .8rem 0 !important; }
  .public-footer-desktop { display: none !important; }
  .public-footer-mobile {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    color: #667085;
    font-size: .88rem;
  }
  .public-footer-mobile strong { color: #111827; }
  .public-footer-mobile a { color: var(--pink-dark); font-weight: 800; }
  .public-mobile-conversion { display: none !important; }
  .invite-section-stack { gap: .9rem; padding-top: 1rem; }
  .invite-info-grid { gap: .75rem; }
  .invite-info-card { min-height: auto; padding: 1rem; }
  .invite-section-panel { padding: 1rem; }
  .invite-section-head h2,
  .invite-final-cta h2,
  .pix-premium-card h2 { font-size: clamp(1.55rem, 9vw, 2.35rem); }
  .pix-copy-box .btn,
  .invite-location-actions .btn,
  .invite-final-cta .btn { width: 100%; }
  .pwa-install-banner {
    left: .75rem;
    right: .75rem;
    bottom: .75rem;
    width: auto;
    grid-template-columns: auto 1fr auto;
  }
  .pwa-install-banner [data-pwa-install-action] { grid-column: 1 / -1; width: 100%; }
  .settings-form-grid { grid-template-columns: 1fr; }
}
/* Referral program */
.referral-head .badge { margin-bottom: .45rem; }
.referral-hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 1.25rem;
  align-items: stretch;
  overflow: hidden;
  position: relative;
  background: linear-gradient(135deg, rgba(255,63,127,.08), rgba(13,110,253,.07)), #fff;
}
.referral-hero-panel::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -140px;
  width: 320px;
  height: 320px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,63,127,.15), transparent 70%);
  pointer-events: none;
}
.referral-hero-copy,
.referral-steps-card { position: relative; z-index: 1; }
.referral-hero-copy h2 {
  max-width: 820px;
  margin: .65rem 0 .55rem;
  font-size: clamp(1.8rem, 4vw, 3.25rem);
  line-height: 1.04;
}
.referral-hero-copy p { max-width: 760px; color: var(--muted); font-size: 1.05rem; }
.referral-chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .4rem .7rem;
  border-radius: 999px;
  background: #ffe4ef;
  color: var(--pink-dark);
  font-weight: 850;
}
.referral-link-box {
  max-width: 900px;
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid #dfe7f2;
  border-radius: 12px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 16px 34px rgba(17,24,39,.06);
}
.referral-link-box .form-control { font-weight: 800; color: #172033; overflow: hidden; text-overflow: ellipsis; }
.referral-share-actions { margin-top: .85rem; }
.referral-steps-card {
  padding: 1rem;
  border: 1px solid #dfe7f2;
  border-radius: 14px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 18px 42px rgba(17,24,39,.08);
}
.referral-steps-card > strong { display: block; margin-bottom: .75rem; color: #172033; font-size: 1.05rem; }
.referral-steps-card ol { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.referral-steps-card li { display: grid; grid-template-columns: auto 1fr; gap: .65rem; align-items: flex-start; }
.referral-steps-card li > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--pink), #ff8b51);
  color: #fff;
  font-weight: 900;
}
.referral-steps-card b { display: block; color: #172033; }
.referral-steps-card small { color: var(--muted); }
.referral-metrics { margin: 1rem 0; }
.referral-info-card { margin-bottom: 1rem; }
.referral-toolbar { display: flex; gap: .65rem; align-items: center; }
.referral-table th,
.referral-table td { vertical-align: middle; }
@media (max-width: 900px) {
  .referral-hero-panel { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .referral-head .btn-list,
  .referral-share-actions,
  .referral-toolbar { flex-direction: column; align-items: stretch; }
  .referral-link-box .input-group { display: grid; gap: .55rem; }
  .referral-link-box .input-group > .form-control,
  .referral-link-box .input-group > .btn { width: 100%; border-radius: 8px !important; }
  .referral-table thead { display: none; }
  .referral-table tbody tr { display: grid; gap: .35rem; padding: .85rem 0; border-bottom: 1px solid #e5eaf2; }
  .referral-table tbody td { display: flex; justify-content: space-between; gap: 1rem; padding: .15rem 0 !important; border: 0 !important; }
  .referral-table tbody td::before { content: attr(data-label); color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
}
/* SaaS pricing decision flow */
.pricing-saas-head .badge,
.pricing-saas-public-hero .eyebrow { margin-bottom: .55rem; }
.pricing-saas-head h1 { max-width: 840px; }
.pricing-saas-head p { max-width: 760px; }
.pricing-saas-shell {
  display: grid;
  gap: 1.35rem;
}
.pricing-audience-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}
.pricing-audience-card {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas: "icon title" "icon text";
  column-gap: .85rem;
  row-gap: .2rem;
  min-height: 126px;
  padding: 1.1rem;
  border: 1px solid #dfe7f2;
  border-radius: 16px;
  background: #fff;
  color: #172033;
  text-align: left;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .06);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.pricing-audience-card:hover,
.pricing-audience-card.active {
  transform: translateY(-3px);
  border-color: rgba(255, 63, 127, .58);
  box-shadow: 0 24px 58px rgba(255, 63, 127, .13), 0 18px 42px rgba(15, 23, 42, .08);
  background: linear-gradient(135deg, #fff, #fff7fb);
}
.pricing-audience-card.active::after {
  content: "";
  position: absolute;
  left: 1.1rem;
  right: 1.1rem;
  bottom: -1px;
  height: 3px;
  border-radius: 999px 999px 0 0;
  background: linear-gradient(90deg, var(--pink), #ff8a5c);
}
.pricing-audience-icon {
  grid-area: icon;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: #ffe5ef;
  color: var(--pink);
  font-size: 1.45rem;
}
.pricing-audience-card strong {
  grid-area: title;
  align-self: end;
  font-size: 1.05rem;
  line-height: 1.15;
}
.pricing-audience-card small {
  grid-area: text;
  color: #64748b;
  font-size: .9rem;
  line-height: 1.35;
}
.pricing-saas-content {
  padding: 1.2rem;
  border: 1px solid #e1e8f2;
  border-radius: 20px;
  background: linear-gradient(180deg, #fff, #f9fbff);
  box-shadow: 0 24px 58px rgba(15, 23, 42, .07);
}
.pricing-section-title {
  display: flex;
  align-items: flex-start;
  gap: .9rem;
  margin-bottom: 1.4rem;
}
.pricing-section-title > span {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: #172033;
  color: #fff;
  font-weight: 850;
}
.pricing-section-title h2 {
  margin: 0;
  font-size: clamp(1.55rem, 2vw, 2.1rem);
  letter-spacing: 0;
}
.pricing-section-title p {
  margin: .15rem 0 0;
  color: #64748b;
  font-size: 1rem;
}
.pricing-saas-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}
.pricing-saas-grid.pricing-count-2 { grid-template-columns: repeat(2, minmax(280px, 1fr)); }
.pricing-saas-grid.pricing-count-1 { grid-template-columns: minmax(280px, 760px); justify-content: center; }
.pricing-saas-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 1.25rem;
  border: 1px solid #dfe7f2;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(15, 23, 42, .06);
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.pricing-saas-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 26px 62px rgba(15, 23, 42, .1);
}
.pricing-saas-card.is-featured {
  z-index: 2;
  transform: translateY(-8px) scale(1.025);
  border-color: rgba(255, 63, 127, .75);
  box-shadow: 0 30px 76px rgba(255, 63, 127, .18), 0 18px 46px rgba(15, 23, 42, .1);
}
.pricing-saas-card.is-featured:hover { transform: translateY(-11px) scale(1.03); }
.pricing-saas-card.is-featured::before,
.pricing-saas-card.is-enterprise::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, var(--pink), #ff8a5c);
}
.pricing-saas-card.is-enterprise {
  border-color: #172033;
  background: linear-gradient(145deg, #111827, #1f2937 55%, #0f172a);
  color: #fff;
  box-shadow: 0 30px 80px rgba(15, 23, 42, .25);
}
.pricing-card-topline {
  min-height: 30px;
  margin-bottom: .5rem;
}
.pricing-plan-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: .35rem .65rem;
  border-radius: 999px;
  font-size: .76rem;
  font-weight: 850;
  line-height: 1;
}
.pricing-plan-badge.neutral { color: #405067; background: #eef3f8; }
.pricing-plan-badge.hot { color: #be185d; background: #ffe4ef; }
.pricing-plan-badge.value { color: #047857; background: #dcfce7; }
.pricing-plan-badge.enterprise { color: #fff; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.24); }
.pricing-card-heading h3 {
  margin: 0;
  color: #111827;
  font-size: 1.35rem;
  letter-spacing: 0;
}
.pricing-card-heading p {
  min-height: 48px;
  margin: .4rem 0 0;
  color: #64748b;
  line-height: 1.38;
}
.pricing-saas-card.is-enterprise .pricing-card-heading h3,
.pricing-saas-card.is-enterprise .pricing-card-heading p { color: #fff; }
.pricing-saas-card.is-enterprise .pricing-card-heading p,
.pricing-saas-card.is-enterprise .pricing-enterprise-note { color: rgba(255,255,255,.74); }
.pricing-card-price {
  display: flex;
  align-items: baseline;
  gap: .35rem;
  margin: 1rem 0;
}
.pricing-card-price strong {
  color: #0f172a;
  font-size: clamp(2rem, 4vw, 2.75rem);
  line-height: 1;
  letter-spacing: 0;
}
.pricing-card-price span { color: #64748b; font-weight: 750; }
.pricing-saas-card.is-enterprise .pricing-card-price strong,
.pricing-saas-card.is-enterprise .pricing-card-price span { color: #fff; }
.pricing-enterprise-note { margin: -.35rem 0 1rem; }
.pricing-main-cta {
  min-height: 48px;
  justify-content: center;
  gap: .4rem;
  margin-bottom: 1rem;
  border-radius: 12px;
  font-weight: 850;
}
.pricing-feature-list {
  display: grid;
  gap: .65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pricing-feature-list li {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  color: #334155;
  line-height: 1.3;
}
.pricing-feature-list i {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  margin-top: -.05rem;
  color: #15803d;
  background: #dcfce7;
  font-size: .88rem;
}
.pricing-saas-card.is-enterprise .pricing-feature-list li { color: rgba(255,255,255,.86); }
.pricing-saas-card.is-enterprise .pricing-feature-list i { color: #86efac; background: rgba(34,197,94,.16); }
.pricing-proof-strip {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1.25rem;
  padding: 1rem;
  border: 1px solid #e1e8f2;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(15, 23, 42, .05);
}
.pricing-proof-strip span {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .7rem;
  border-radius: 999px;
  background: #f8fafc;
  color: #42526b;
  font-weight: 750;
}
.pricing-proof-strip i { color: var(--pink); }
.pricing-saas-public-hero {
  min-height: 430px;
  display: flex;
  align-items: center;
}
.pricing-saas-public-hero h1 { max-width: 920px; }
.pricing-saas-public-hero p { max-width: 780px; }
.public-pricing-saas-shell { margin-top: -2rem; }
@media (max-width: 1100px) {
  .pricing-saas-grid,
  .pricing-saas-grid.pricing-count-2 { grid-template-columns: 1fr; }
  .pricing-saas-card.is-featured,
  .pricing-saas-card.is-featured:hover { transform: none; }
}
@media (max-width: 900px) {
  .pricing-audience-tabs { grid-template-columns: 1fr; }
  .pricing-saas-content { padding: .85rem; border-radius: 16px; }
}
@media (max-width: 760px) {
  .pricing-saas-head .btn-list { flex-direction: column; align-items: stretch; }
  .pricing-audience-card { min-height: auto; padding: 1rem; }
  .pricing-section-title { gap: .65rem; }
  .pricing-section-title > span { width: 36px; height: 36px; flex-basis: 36px; border-radius: 12px; }
  .pricing-saas-card { padding: 1rem; }
  .pricing-card-heading p { min-height: 0; }
  .pricing-proof-strip { display: grid; grid-template-columns: 1fr 1fr; }
}
/* Public invite refinements */
.invite-section-tabs {
  position: sticky;
  top: .75rem;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  align-items: center;
  padding: .75rem;
  border: 1px solid rgba(226, 232, 240, .9);
  border-radius: 14px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 18px 50px rgba(15, 23, 42, .08);
  backdrop-filter: blur(14px);
}
.invite-section-tabs a {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  min-height: 40px;
  padding: .55rem .82rem;
  border-radius: 999px;
  color: #344054;
  font-weight: 850;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}
.invite-section-tabs a:hover {
  color: #e7336f;
  background: #fff0f5;
  transform: translateY(-1px);
}
.invite-section-head-split {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.invite-soft-pill {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  padding: .45rem .7rem;
  border-radius: 999px;
  background: #eff6ff;
  color: #0f62bd;
  font-weight: 850;
  white-space: nowrap;
}
.invite-gift-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 1.25rem;
}
.invite-gift-card::before {
  margin: -1.25rem -1.25rem 1rem;
}
.invite-gift-card h3 {
  margin: .85rem 0 .15rem;
}
.invite-gift-card p {
  color: #526079;
  line-height: 1.55;
}
.invite-gift-card form {
  margin-top: auto !important;
}
.invite-gift-card-muted {
  background: linear-gradient(180deg, #fff, #f8fafc);
}
.invite-gift-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
  margin-bottom: .95rem;
  border: 1px solid #e4eaf4;
  background: #f8fafc;
}
.invite-gift-closed {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  margin-top: auto;
  min-height: 44px;
  border-radius: 10px;
  background: #fff7ed;
  color: #c2410c;
  font-weight: 850;
}
.gift-status-delivered,
.gift-status-received,
.gift-status-thanked {
  background: #ecfdf3;
  color: #15803d;
}
@media (max-width: 575.98px) {
  .invite-section-tabs {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-radius: 12px;
  }
  .invite-section-tabs a {
    justify-content: center;
    width: 100%;
  }
  .invite-section-head-split {
    display: grid;
  }
  .invite-soft-pill {
    width: max-content;
    max-width: 100%;
  }
}
.invite-hero-shortcuts {
  margin-top: 1.35rem;
}
.invite-hero-shortcuts .btn {
  min-height: 46px;
  border-radius: 8px;
  font-weight: 850;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .18);
}
.invite-hero-shortcuts .btn i {
  margin-right: .35rem;
}
.invite-section-panel,
.invite-info-grid {
  scroll-margin-top: 90px;
}
@media (max-width: 575.98px) {
  .invite-hero-shortcuts .btn {
    width: 100%;
    justify-content: center;
  }
}

.guest-panel {
  position: relative;
  overflow: visible;
}
.guest-bottom-add {
  padding: .9rem .35rem 0;
}
.guest-bottom-add .btn {
  min-height: 48px;
  justify-content: center;
  box-shadow: 0 18px 42px rgba(231, 51, 111, .18);
}
@media (max-width: 575.98px) {
  .guest-bottom-add {
    padding: .75rem 0 0;
  }
}
.guest-quick-section {
  background: linear-gradient(135deg, #fff7fb 0%, #f8fbff 100%);
}
.guest-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.guest-school-card {
  display: grid;
  gap: .75rem;
  padding: .85rem;
  border: 1px solid #e4eaf4;
  border-radius: 10px;
  background: rgba(255, 255, 255, .82);
}
.guest-school-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: end;
}
@media (max-width: 575.98px) {
  .guest-quick-actions,
  .guest-school-fields {
    grid-template-columns: 1fr;
  }
  .guest-quick-actions .btn,
  .guest-school-fields .btn {
    width: 100%;
    justify-content: center;
  }
}

.checkin-share-panel {
  margin: 1.25rem 0;
  background: linear-gradient(135deg, #fff7fb 0%, #eef8ff 100%);
}
.checkin-share-head h2,
.gallery-upload-hero h1,
.gallery-card-head h2,
.gallery-wall h2 {
  margin: .35rem 0 .25rem;
  letter-spacing: 0;
}
.checkin-share-head p,
.gallery-upload-hero p,
.gallery-card-head p {
  color: #5d6b82;
  margin: 0;
}
.checkin-share-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.checkin-share-grid article {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid #dbe4f0;
  border-radius: 14px;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 18px 48px rgba(15, 23, 42, .06);
}
.checkin-share-grid img {
  width: 112px;
  height: 112px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: .35rem;
}
.gallery-upload-shell {
  padding: 3rem 0;
  background: radial-gradient(circle at top left, rgba(255, 63, 127, .12), transparent 34%), linear-gradient(180deg, #f6f8fc 0%, #ffffff 70%);
}
.gallery-upload-hero {
  max-width: 760px;
  margin-bottom: 1.25rem;
}
.gallery-upload-hero h1 {
  font-size: clamp(2.2rem, 7vw, 5rem);
  line-height: .96;
  font-weight: 900;
}
.gallery-upload-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: 1rem;
  align-items: start;
}
.gallery-upload-card,
.gallery-limit-card,
.gallery-wall {
  border-radius: 16px;
}
.gallery-card-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.gallery-card-head > i {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: #ffe7f0;
  color: #ff3f7f;
  font-size: 1.7rem;
  flex: 0 0 auto;
}
.gallery-limit-card {
  display: grid;
  gap: 1rem;
}
.gallery-limit-item {
  display: grid;
  gap: .45rem;
}
.gallery-wall {
  margin-top: 1rem;
}
.gallery-wall-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1rem;
}
.gallery-wall-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: .85rem;
}
.gallery-wall-grid figure {
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid #dbe4f0;
  background: #fff;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .07);
}
.gallery-wall-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
.gallery-wall-grid figcaption {
  display: grid;
  gap: .15rem;
  padding: .7rem .8rem;
  color: #5d6b82;
}
.gallery-wall-grid figcaption strong {
  color: #111827;
}
.gallery-wall-grid figcaption span {
  font-size: .85rem;
}
@media (max-width: 767.98px) {
  .checkin-share-grid,
  .gallery-upload-grid {
    grid-template-columns: 1fr;
  }
  .checkin-share-grid article {
    grid-template-columns: 88px minmax(0, 1fr);
  }
  .checkin-share-grid img {
    width: 88px;
    height: 88px;
  }
  .gallery-upload-shell {
    padding: 1.25rem 0 5rem;
  }
}


.gallery-admin-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: linear-gradient(135deg, #fff7fb 0%, #eef8ff 100%);
}
.gallery-admin-hero h2 {
  margin: .3rem 0 .25rem;
  font-size: clamp(1.55rem, 3vw, 2.4rem);
  letter-spacing: 0;
}
.gallery-admin-hero p { margin: 0; color: #5d6b82; max-width: 760px; }
.gallery-admin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(360px, 1.25fr);
  gap: 1rem;
  margin: 1rem 0;
}
.gallery-admin-card {
  display: grid;
  gap: .55rem;
  align-content: center;
}
.gallery-admin-card > i {
  color: #ff3f7f;
  font-size: 1.55rem;
}
.gallery-admin-card strong {
  font-size: 1.55rem;
  line-height: 1;
}
.gallery-admin-card span { color: #5d6b82; }
.gallery-admin-qr {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
}
.gallery-admin-qr img {
  width: 108px;
  height: 108px;
  border: 1px solid #dbe4f0;
  border-radius: 14px;
  padding: .35rem;
  background: #fff;
}
.gallery-admin-panel { overflow: visible; }
.gallery-admin-wall {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: .9rem;
}
.gallery-admin-photo {
  overflow: hidden;
  border: 1px solid #dbe4f0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(15, 23, 42, .06);
}
.gallery-admin-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  transition: transform .18s ease;
}
.gallery-admin-photo a:hover img { transform: scale(1.035); }
.gallery-photo-body {
  display: grid;
  gap: .15rem;
  padding: .8rem .9rem .55rem;
}
.gallery-photo-body small { color: #5d6b82; }
.gallery-photo-actions {
  padding: 0 .9rem .9rem;
}
.convitae-lightbox-modal .modal-dialog { max-width: min(1120px, calc(100vw - 1.5rem)); }
.convitae-lightbox-img {
  display: block;
  width: 100%;
  max-height: calc(100vh - 7rem);
  object-fit: contain;
  background: #050816;
}
.convitae-lightbox-caption {
  min-height: 44px;
  padding: .75rem 1rem;
  color: #fff;
  background: rgba(5, 8, 22, .92);
}
.gallery-wall-grid figure { position: relative; }
.gallery-wall-grid figure > a { display: block; color: inherit; text-decoration: none; }
@media (max-width: 991.98px) {
  .gallery-admin-hero { align-items: stretch; flex-direction: column; }
  .gallery-admin-grid { grid-template-columns: 1fr; }
  .gallery-admin-qr { grid-template-columns: 88px minmax(0, 1fr); }
  .gallery-admin-qr img { width: 88px; height: 88px; }
}
@media (max-width: 575.98px) {
  .gallery-admin-wall { grid-template-columns: 1fr; }
  .gallery-admin-hero .btn-list .btn { width: 100%; justify-content: center; }
}
