/* Uses the existing EventToParty tokens, typography and light/dark surfaces. */
.celebration-shell { max-width:1180px; margin:auto; padding:24px 24px 110px; color:var(--ux-ink); }
.celebration-shell h1,.celebration-shell h2,.celebration-shell h3 { color:var(--ux-ink); }
.celebration-shell h1 { font-size:clamp(36px,4vw,48px); line-height:1.1; margin:12px 0; letter-spacing:-.025em; font-weight:800; }
.celebration-shell h2 { font-size:28px; line-height:1.18; margin:0 0 12px; font-weight:800; }
.celebration-shell h3 { font-size:19px; line-height:1.3; margin:0 0 8px; font-weight:700; }
.celebration-shell p { line-height:1.55; }
.celebration-card { padding:28px; background:var(--ux-surface); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); min-width:0; }
.celebration-hero { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:24px; align-items:center; margin:24px 0; border-radius:var(--radius-lg); overflow:hidden; }
.celebration-hero img { width:240px; height:180px; object-fit:cover; border-radius:var(--radius-md); }
.celebration-back { display:inline-flex; align-items:center; min-height:44px; color:var(--ux-link); font-weight:600; }
.celebration-muted { color:var(--ux-muted); font-size:14px; }
.celebration-status { padding:12px 16px; border-radius:var(--radius-sm); background:var(--ux-soft); color:var(--ux-muted); }
.celebration-status:empty { display:none; }
.celebration-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.celebration-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.celebration-actions button,.celebration-actions a { min-height:44px; }
.celebration-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; margin-bottom:24px; }
.celebration-price { font-size:32px; font-weight:800; display:block; margin:16px 0 4px; color:var(--ux-ink); }
.celebration-tariff ul { padding-left:20px; margin:20px 0; color:var(--ux-muted); line-height:1.8; }
.celebration-tariff { display:flex; flex-direction:column; }
.celebration-tariff .primary-button { margin-top:auto; }
.celebration-package-note { margin:16px 0 0; font-size:14px; color:var(--ux-muted); }
.celebration-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:24px 0; }
.celebration-tabs button { border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--ux-surface); color:var(--ux-muted); min-height:46px; padding:12px 16px; font:600 15px 'Nunito Sans',sans-serif; cursor:pointer; }
.celebration-tabs button[aria-selected="true"] { background:var(--blue); color:#fff; border-color:var(--blue); }
.celebration-tabs button:focus-visible,.celebration-shell button:focus-visible,.celebration-shell a:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.celebration-panel { scroll-margin-top:24px; }
.celebration-panel[hidden],.celebration-shell [hidden] { display:none !important; }
.celebration-panel > .celebration-card + .celebration-card { margin-top:20px; }
.celebration-editor-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:24px; align-items:start; }
.celebration-shell form,.celebration-dialog form { max-width:none; margin:0; }
.celebration-fields { align-content:start; }
.celebration-shell label,.celebration-dialog label { margin:0; }
.celebration-shell input[type="checkbox"] { min-height:20px; padding:0; margin:0; box-shadow:none; }
.celebration-actions .primary-button { width:auto; margin:0; padding:12px 20px; }
.celebration-preview { position:sticky; top:24px; min-width:0; }
.celebration-preview .invitation-hero h1 { font-size:32px; }
.celebration-preview .invitation-hero > :is(img,.event-cover-frame) { height:180px; }
.celebration-preview .invitation-content { padding:20px; }
.celebration-preview-label { display:block; margin-bottom:12px; font-size:13px; font-weight:600; color:var(--ux-muted); }
.celebration-fields { display:grid; gap:16px; }
.celebration-field { display:grid; gap:8px; min-width:0; }
.celebration-field label { font-size:14px; font-weight:600; color:var(--ux-ink); }
.celebration-field input:not([type="checkbox"]),.celebration-field select,.celebration-field textarea { width:100%; box-sizing:border-box; min-height:50px; padding:13px 15px; border:1px solid var(--line); border-radius:var(--radius-sm); font:400 16px 'Nunito Sans',sans-serif; color:var(--ux-ink); background:var(--ux-surface); }
.celebration-field textarea { resize:vertical; }
.celebration-field input:focus,.celebration-field textarea:focus,.celebration-field select:focus { outline:3px solid var(--blue-soft); border-color:var(--blue); }
.celebration-checkbox { display:flex; gap:12px; align-items:center; min-height:44px; font-size:14px; color:var(--ux-ink); }
.celebration-checkbox input { width:20px; height:20px; flex-shrink:0; accent-color:var(--blue); }
.celebration-templates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.celebration-template { position:relative; padding:14px; border:1px solid var(--line); border-radius:var(--radius-sm); color:var(--ux-ink); background:var(--ux-soft); cursor:pointer; min-height:100px; }
.celebration-template[aria-pressed="true"] { border:2px solid var(--blue); padding:13px; }
.celebration-template strong,.celebration-template small { display:block; margin-top:8px; }
.celebration-template small { color:var(--ux-muted); font-size:12px; }
.celebration-template-mark { display:block; height:28px; border-radius:10px; background:color-mix(in srgb,var(--event-accent) 20%,var(--ux-surface)); }
.celebration-template[data-template="ribbon"] .celebration-template-mark { border-left:8px solid var(--event-accent); }
.celebration-template[data-template="postcard"] .celebration-template-mark { border:2px dashed var(--event-accent); }
.celebration-template[data-template="evening"] .celebration-template-mark { background:#111a46; border-bottom:3px solid var(--event-accent); }
.celebration-list { display:grid; gap:12px; }
.celebration-row { padding:16px; border-radius:var(--radius-sm); background:var(--ux-soft); min-width:0; overflow-wrap:anywhere; }
.celebration-row p { margin:6px 0 12px; white-space:pre-wrap; }
.celebration-row .celebration-actions { margin-top:12px; }
.celebration-row .secondary-button { padding:9px 12px; font-size:14px; }
.celebration-empty { padding:32px 20px; text-align:center; background:var(--ux-soft); border-radius:var(--radius-sm); color:var(--ux-muted); }
.celebration-empty strong { display:block; font-size:19px; color:var(--ux-ink); margin-bottom:8px; }
.celebration-task { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; }
.celebration-task label { display:flex; align-items:center; min-height:44px; }
.celebration-task input { width:22px; height:22px; accent-color:var(--blue); }
.celebration-task.is-done h3 { text-decoration:line-through; color:var(--ux-muted); }
.celebration-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0 0 24px; }
.celebration-metric { background:var(--ux-soft); padding:16px; border-radius:var(--radius-sm); }
.celebration-metric strong { display:block; font-size:24px; color:var(--ux-ink); font-weight:800; margin-top:4px; overflow-wrap:anywhere; }
.celebration-metric span { font-size:13px; color:var(--ux-muted); }
.celebration-badge { display:inline-flex; padding:5px 10px; border-radius:999px; background:var(--ux-soft); color:var(--ux-party); font:700 12px 'Nunito Sans',sans-serif; }
.celebration-table { border:1px solid var(--line); border-top:4px solid var(--event-accent); }
.celebration-table ul { padding-left:20px; line-height:1.7; }
.celebration-dialog { width:min(600px,calc(100vw - 32px)); max-height:88vh; box-sizing:border-box; padding:24px; border:1px solid var(--line); border-radius:24px; color:var(--ux-ink); background:var(--ux-surface); overflow:auto; }
.celebration-dialog::backdrop { background:rgba(10,15,35,.6); }
.celebration-dialog h2 { margin:0 0 20px; font-size:26px; color:var(--ux-ink); }
.celebration-dialog-actions { position:sticky; bottom:-24px; z-index:5; padding:16px 24px; background:var(--ux-surface); border-top:1px solid var(--line); margin:24px -24px -24px; display:flex; align-items:center; gap:12px; justify-content:flex-end; }
.celebration-locked { border:1px dashed var(--line); text-align:center; padding:40px 24px; }
.celebration-error { color:var(--ux-danger); font-size:14px; white-space:pre-wrap; }
.celebration-link-box { overflow-wrap:anywhere; margin-top:16px; }
.celebration-bottom-space { margin-bottom:24px; }
.invitation-page { max-width:850px; margin:auto; }
.invitation-brand { display:block; text-align:center; margin:24px 0; color:var(--ux-muted); font-size:14px; }
.invitation-sheet { color:var(--ux-ink); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; background:var(--ux-surface); box-shadow:var(--shadow-md); }
.invitation-hero { text-align:center; }
.invitation-hero > :is(img,.event-cover-frame) { display:block; width:100%; height:300px; object-fit:cover; }
.invitation-content { padding:32px; }
.invitation-hero h1 { font-size:clamp(36px,5vw,56px); margin:12px 0 20px; overflow-wrap:anywhere; font-weight:800; }
.invitation-date { color:var(--ux-party); font-size:19px; font-weight:700; }
.invitation-copy { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.6; }
.invitation-block { margin:0 32px 24px; padding:24px; background:var(--ux-soft); border-radius:var(--radius-md); }
.invitation-block h2 { font-size:26px; }
.invitation-program { list-style:none; padding:0; display:grid; gap:16px; }
.invitation-program li { display:grid; grid-template-columns:56px minmax(0,1fr); gap:12px; }
.invitation-program time { color:var(--ux-party); font-weight:700; }
.invitation-template-ribbon .invitation-content { border-left:8px solid var(--event-accent); text-align:left; }
.invitation-template-postcard .invitation-hero { margin:16px; border:2px dashed var(--event-accent); border-radius:var(--radius-md); overflow:hidden; }
.invitation-template-evening .invitation-hero .invitation-content { background:var(--event-cover-evening); color:#fff; }
.invitation-template-evening .invitation-hero h1,.invitation-template-evening .invitation-hero .invitation-date,.invitation-template-evening .invitation-hero .eyebrow { color:#fff; }
.invitation-rsvp { margin-top:24px; }
.invitation-rsvp h2 { margin-bottom:12px; }
.invitation-rsvp .celebration-actions { margin-top:20px; }
.invitation-rsvp button[value="going"] { background:color-mix(in srgb,var(--ux-party) 12%,var(--ux-surface)); color:var(--ux-party); border:1px solid var(--ux-party); box-shadow:none; }
.invitation-rsvp button[value="going"][aria-pressed="true"] { background:var(--purple); color:white; border-color:var(--purple); }
.invitation-rsvp button[value="declined"] { color:var(--ux-danger); border-color:var(--ux-danger); background:color-mix(in srgb,var(--ux-danger) 8%,var(--ux-surface)); }
.invitation-rsvp button[value="declined"][aria-pressed="true"] { color:white; background:var(--coral-action); border-color:var(--coral-action); }
.celebration-print-root { display:none; }
.celebration-qr { width:160px; height:160px; display:block; background:white; }
@media(max-width:900px) { .celebration-editor-grid { grid-template-columns:1fr; } .celebration-preview { position:static; } .celebration-hero { grid-template-columns:minmax(0,1fr) 180px; } .celebration-hero img { width:180px; height:160px; } }
@media(max-width:600px) { .celebration-shell { padding:16px 16px 110px; } .celebration-card { padding:20px; } .celebration-hero { grid-template-columns:1fr; } .celebration-hero img { width:100%; height:150px; grid-row:1; } .celebration-grid { grid-template-columns:1fr; } .celebration-tabs { gap:6px; } .celebration-tabs button { padding:10px 12px; } .celebration-metrics { grid-template-columns:1fr; } .celebration-metric { display:flex; justify-content:space-between; align-items:center; gap:12px; } .celebration-metric strong { margin:0; font-size:22px; } .celebration-task { grid-template-columns:auto minmax(0,1fr); } .celebration-task > button { grid-column:2; justify-self:start; } .invitation-content { padding:24px 20px; } .invitation-block { margin:0 16px 20px; padding:20px; } .invitation-hero > :is(img,.event-cover-frame) { height:220px; } .celebration-dialog-actions { flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { .celebration-shell * { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
/* Printed QR needs pure black/white; print is independent of the chosen app theme. */
@media print { body > *:not(.celebration-print-root) { display:none !important; } .celebration-print-root { display:block; color:black; background:white; font:16px 'Nunito Sans',sans-serif; } .celebration-print-root h1 { font-size:28px; } .celebration-print-root .print-card { break-inside:avoid; border:1px solid #ccc; padding:20px; margin:0 0 16px; } .celebration-print-root .celebration-qr { width:40mm; height:40mm; } .celebration-print-root table { width:100%; border-collapse:collapse; } .celebration-print-root th,.celebration-print-root td { padding:8px; border:1px solid #ccc; text-align:left; } .celebration-print-root .print-note { font-size:12px; } @page { margin:15mm; } }
/* Rich invitation content uses the app surfaces; custom styling stays inside the invitation. */
.invitation-appearance-panel { border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px; }
.invitation-appearance-panel summary { min-height:44px; cursor:pointer; font-weight:700; }
.invitation-appearance-panel > div { margin-top:16px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.invitation-media-library,.invitation-image-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }
.invitation-media-option { display:grid; gap:8px; min-width:0; }
.invitation-media-option img { width:100%; height:140px; object-fit:cover; border-radius:var(--radius-sm); }
.invitation-image-gallery img { width:100%; height:240px; object-fit:cover; border-radius:var(--radius-sm); background:var(--ux-soft); }
.invitation-color-samples { display:flex; flex-wrap:wrap; gap:12px; margin:20px 0; }
.invitation-color-sample { width:44px; height:44px; border:1px solid var(--line); border-radius:50%; }
.invitation-detail-row { border-top:1px solid var(--line); padding:16px 0; }
.invitation-detail-row summary { min-height:44px; cursor:pointer; font-size:18px; font-weight:700; }
.invitation-sheet { --invite-accent:var(--ux-party); }
.invitation-palette-lilac { --invite-accent:#7444d8; --event-accent:#b987f2; }
.invitation-palette-rose { --invite-accent:#a64166; --event-accent:#e4a1b8; }
.invitation-palette-sage { --invite-accent:#386753; --event-accent:#92b7a5; }
.invitation-palette-gold { --invite-accent:#806127; --event-accent:#d4b77a; }
.invitation-palette-ocean { --invite-accent:#236d88; --event-accent:#87bfd0; }
html[data-theme="dark"] .invitation-palette-lilac { --invite-accent:#d3b5ff; }
html[data-theme="dark"] .invitation-palette-rose { --invite-accent:#edb5cb; }
html[data-theme="dark"] .invitation-palette-sage { --invite-accent:#b1ddc7; }
html[data-theme="dark"] .invitation-palette-gold { --invite-accent:#e6ce9a; }
html[data-theme="dark"] .invitation-palette-ocean { --invite-accent:#a5ddec; }
.invitation-sheet .invitation-date,.invitation-sheet .invitation-program time { color:var(--invite-accent); }
.invitation-font-classic h1,.invitation-font-classic h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; }
.invitation-align-left .invitation-content { text-align:left; }
.invitation-title_size-large .invitation-hero h1 { font-size:clamp(40px,5vw,68px); }
.invitation-density-compact .invitation-content { padding:20px; }
.invitation-density-compact .invitation-block { padding:20px; margin-bottom:16px; }
.invitation-cover_position-top .invitation-hero > :is(img,.event-cover-frame) { object-position:center top; }
.invitation-cover_position-bottom .invitation-hero > :is(img,.event-cover-frame) { object-position:center bottom; }
.invitation-layout-split .invitation-hero { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.invitation-layout-split .invitation-hero > :is(img,.event-cover-frame) { height:100%; min-height:280px; }
.invitation-layout-split .invitation-content { align-self:center; }
.invitation-layout-postcard .invitation-hero { padding:20px; }
.invitation-layout-postcard .invitation-hero > :is(img,.event-cover-frame) { border-radius:var(--radius-md); }
.invitation-template-evening .invitation-content { --invite-accent:#fff; }
@media(max-width:600px) { .invitation-appearance-panel > div,.invitation-layout-split .invitation-hero { grid-template-columns:1fr; } .invitation-layout-split .invitation-hero > :is(img,.event-cover-frame) { height:220px; min-height:0; } .invitation-image-gallery img { height:180px; } }

/* The full event page reuses the existing event form and its visual language. */
.event-basics { margin-bottom:24px; }
.event-basics h1 { margin:10px 0; font-size:clamp(28px,4vw,42px); }
.event-tier-options { border:0; padding:0; margin:24px 0; min-width:0; }
.event-tier-options legend { font-weight:800; font-size:clamp(20px,3vw,24px); line-height:1.2; margin-bottom:8px; }
.event-tier-intro { color:var(--ux-muted); font-size:14px; line-height:1.5; margin:0 0 16px; }
.event-tier-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.event-tier-option { display:flex; flex-direction:column; cursor:pointer; border:2px solid var(--line); border-radius:22px; padding:18px; background:var(--ux-surface); color:var(--ux-ink); min-width:0; }
.event-tier-option:has(input:checked) { border-color:var(--ux-link); background:color-mix(in srgb,var(--ux-link) 5%,var(--ux-surface)); }
.event-tier-option:hover { border-color:var(--ux-link); }
.event-tier-option:focus-within { outline:3px solid var(--ux-link); outline-offset:3px; }
.event-tier-top { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:12px; }
.event-tier-badge { color:var(--ux-muted); font-size:11px; font-weight:700; line-height:1.4; text-transform:uppercase; letter-spacing:.04em; }
.event-tier-option input { accent-color:var(--blue); width:20px; height:20px; flex:0 0 20px; margin:0; }
.event-tier-option .event-tier-name { display:block; font-size:22px; font-weight:800; line-height:1.2; margin-bottom:6px; }
.event-tier-description { color:var(--ux-muted); font-size:13px; font-weight:400; line-height:1.5; min-height:40px; }
.event-tier-pricing { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; padding:12px 0; margin-bottom:12px; border-bottom:1px solid var(--line); }
.event-tier-amount { font-size:28px; font-weight:800; line-height:1.1; letter-spacing:-.025em; }
.event-tier-period,.event-tier-future { color:var(--ux-muted); font-size:12px; font-weight:400; line-height:1.4; }
.event-tier-future { margin-left:auto; }
.event-tier-includes { font-size:13px; font-weight:700; margin-bottom:8px; }
.event-tier-features { display:grid; gap:6px; }
.event-tier-features > span { display:grid; grid-template-columns:14px minmax(0,1fr); gap:6px; font-size:13px; font-weight:400; line-height:1.45; }
.event-tier-features > span::before { content:"✓"; color:var(--ux-link); font-weight:700; }
.event-tier-details { margin-top:12px; border-bottom:1px solid var(--line); }
.event-basics-form .event-tier-details > summary { font-size:14px; font-weight:600; padding:12px 0; min-height:44px; }
.event-tier-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:8px 0 16px; }
.event-tier-detail-grid h3 { font-size:18px; margin:0 0 8px; }
.event-tier-detail-grid p,.event-tier-detail-grid li { font-size:13px; line-height:1.5; color:var(--ux-muted); }
.event-tier-detail-grid p { margin:0 0 12px; }
.event-tier-detail-grid ul { margin:0; padding-left:18px; }
.event-tier-detail-grid li + li { margin-top:8px; }
.event-tier-demo { color:var(--ux-muted); font-size:12px; line-height:1.5; margin:12px 0 8px; }
@media(max-width:760px) {
 .event-tier-grid,.event-tier-detail-grid { grid-template-columns:1fr; }
 .event-tier-grid .event-tier-option { display:grid; grid-template-columns:minmax(0,1fr) 20px; gap:0 8px; padding:14px; }
 .event-tier-top { grid-column:2; grid-row:1; margin:0; }
 .event-tier-badge { display:none; }
 .event-tier-option .event-tier-name { grid-column:1; grid-row:1; font-size:20px; margin:0; }
 .event-tier-description { grid-column:1 / -1; min-height:0; margin-top:6px; }
 .event-tier-pricing { grid-column:1 / -1; padding:8px 0 0; margin:0; border:0; }
 .event-tier-amount { font-size:24px; }
 .event-tier-includes,.event-tier-features { grid-column:1 / -1; }
 .event-tier-includes { margin:12px 0 8px; }
 .event-tier-option:not(:has(input:checked)) :is(.event-tier-includes,.event-tier-features) { display:none; }
}
.event-basics-form details > summary { cursor:pointer; font-weight:800; padding:16px 0; }
.event-basics-form .event-form-section { margin:16px 0; }
.event-basics-form label:not(.event-tier-option):not(.wishlist-surprise-control) { display:block; font-weight:700; margin:16px 0 8px; }
.event-basics-form :is(input:not([type=radio]):not([type=checkbox]),select,textarea) { display:block; width:100%; min-width:0; min-height:48px; padding:12px 16px; border:1px solid var(--line); border-radius:16px; background:var(--paper); color:var(--navy); font:inherit; box-sizing:border-box; }
.event-basics-form textarea { resize:vertical; }
.event-basics-form :is(input,select,textarea):focus-visible { outline:3px solid var(--blue); outline-offset:2px; }
.event-basics-form .event-cover-preview { max-width:640px; }
.event-editor-actions { display:flex; align-items:center; justify-content:flex-end; gap:20px; flex-wrap:wrap; }
.event-editor-actions .dialog-message { flex:1; min-width:180px; }
html[data-theme=dark] .event-basics-form :is(input:not([type=radio]):not([type=checkbox]),select,textarea) { background:#11192b; color:#edf1ff; border-color:#36415a; }
@media(max-width:760px) { .event-tier-grid { grid-template-columns:1fr; } .event-tier-option { padding:18px; } .event-basics-form .event-form-section { padding:16px; } .event-basics-form .form-columns { grid-template-columns:minmax(0,1fr); } }

.invitation-image-open { display:block; padding:0; border:0; background:transparent; cursor:zoom-in; border-radius:var(--radius-sm); min-width:0; }
.invitation-image-open img { display:block; object-fit:contain; }
.invitation-image-open:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.invitation-image-dialog { width:min(900px,calc(100vw - 32px)); }
.invitation-image-dialog img { display:block; width:100%; max-height:75dvh; object-fit:contain; margin-top:16px; }
#rich-colors-picker input { width:54px; height:46px; border:1px solid var(--line); border-radius:10px; background:var(--ux-surface); padding:4px; }
.invitation-align-center .invitation-content { text-align:center; }
.celebration-preview { container-type:inline-size; }
@container(max-width:550px) { .invitation-layout-split .invitation-hero { grid-template-columns:1fr; } .invitation-layout-split .invitation-hero > :is(img,.event-cover-frame) { height:220px; min-height:0; } }

/* Short, interruptible editor transitions; clipping exists only during a height change. */
.celebration-resizing { overflow: clip; }
@media (prefers-reduced-motion: no-preference) {
  .event-tier-option, .celebration-tabs button {
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
  }
}

/* Component gaps own spacing; inherited form/button margins must not double it. */
.celebration-shell > .app-header { margin-bottom:24px; }
.celebration-panel > .event-plan-section { margin-top:0; }
.celebration-fields > :is(h2,h3,p) { margin:0; }
.celebration-fields > :is(.invitation-media-library,.celebration-dialog-actions) { margin-top:0; }
.celebration-fields > :is(.celebration-list,.invitation-media-library):empty,
.celebration-error:empty { display:none; }
.celebration-toolbar > div > :last-child,
.celebration-row > :last-child { margin-bottom:0; }
.celebration-dialog-actions .primary-button,
.celebration-dialog-actions .secondary-button { width:auto; min-height:44px; margin:0; padding:12px 20px; }
.celebration-dialog { overscroll-behavior:contain; }
.event-editor-actions { margin-top:24px; }
.event-editor-actions > .primary-button { width:100%; margin:0; padding:12px 24px; }
.event-editor-actions .dialog-message { margin:0; }
.event-editor-actions .dialog-message:empty { display:none; }
.celebration-preview .invitation-block { margin-inline:16px; padding:20px; }
.celebration-shell :is(.celebration-panel,.event-basics,details) { scroll-margin-top:104px; }
@media(max-width:600px) {
  .celebration-dialog-actions { flex-direction:column-reverse; align-items:stretch; }
  .celebration-dialog-actions .primary-button,
  .celebration-dialog-actions .secondary-button,
  .event-editor-actions > .primary-button { width:100%; }
}

/* Shared page design: local Cyrillic families, used in preview and member page. */
@font-face { font-family:'ETP Comfortaa'; src:url('assets/fonts/comfortaa/comfortaa.ttf') format('truetype'); font-weight:300 700; font-display:swap; }
@font-face { font-family:'ETP Cormorant'; src:url('assets/fonts/cormorantgaramond/cormorantgaramond.ttf') format('truetype'); font-weight:300 700; font-display:swap; }
@font-face { font-family:'ETP Oswald'; src:url('assets/fonts/oswald/oswald.ttf') format('truetype'); font-weight:200 700; font-display:swap; }
.invitation-font-elegant :is(h1,h2) { font-family:'ETP Cormorant',Georgia,serif; font-weight:600; }
.invitation-font-playful :is(h1,h2) { font-family:'ETP Comfortaa','Nunito Sans',sans-serif; font-weight:700; }
.invitation-font-modern :is(h1,h2) { font-family:'ETP Oswald','Arial Narrow',sans-serif; font-weight:600; }
.event-basics-form #event-accent-picker > summary { padding:16px; gap:12px; }
.event-basics-form #event-theme,.event-basics-form #event-wishlist,.event-basics-form #reservation-visibility { appearance:none; padding-right:48px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%23536184' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; background-size:16px; }
html[data-theme=dark] .event-basics-form :is(#event-theme,#event-wishlist,#reservation-visibility) { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%23c7d2ef' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; background-size:16px; }
.event-basics-form #event-wishlist-field .wishlist-surprise-control { margin-top:20px; }
#event-basic-title { font-size:24px; margin:24px 0; }
#event-map-title { margin:20px 0 16px; }
.event-block-option { align-items:flex-start; padding:16px; border:1px solid var(--line); border-radius:var(--radius-sm); }
.event-block-option span { display:grid; gap:4px; }
.event-block-option input { flex-shrink:0; margin-top:3px; }
.event-custom-design #event-content { display:grid; grid-template-columns:minmax(0,1fr) auto; }
.event-custom-design :is(#event-cover-image,.event-cover-frame) { grid-column:1 / -1; }
.event-custom-design .event-date-poster { height:auto; min-height:200px; max-width:200px; margin:24px 30px 24px 0; }
.event-custom-design .event-date-poster strong { overflow-wrap:anywhere; }
@media(max-width:820px) {
 .event-custom-design #event-content { grid-template-columns:minmax(0,1fr); }
 .event-custom-design .event-date-poster { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:12px; min-height:0; max-width:none; margin:0 24px 24px; }
 .event-custom-design .event-date-poster span { font-size:44px; }
 .event-custom-design .event-date-poster strong,.event-custom-design .event-date-poster small { margin:0; }
}
.event-custom-design.invitation-align-center .event-hero-main { text-align:center; }
.event-custom-design.invitation-align-center .event-hero-labels { justify-content:center; }
.event-custom-design.invitation-align-left .event-hero-main { text-align:left; }
.event-custom-design.invitation-template-ribbon .event-hero-main { border-left:8px solid var(--event-accent); }
.event-custom-design.invitation-template-postcard #event-content { border:2px dashed var(--event-accent); }
.event-custom-design.invitation-template-evening .event-hero-main { color:#fff; }
.event-custom-design.invitation-template-evening .event-hero-main :is(h1,.event-description) { color:#fff; }
.event-custom-design.invitation-title_size-large #event-title { font-size:clamp(40px,5vw,68px); }
.event-custom-design.invitation-density-compact .event-hero-main { padding:20px; }
.event-custom-design.invitation-density-compact :is(.event-hub-panel,.event-community-panel) { padding:20px; }
.event-custom-design.invitation-cover_position-top :is(#event-cover-image,.event-cover-frame) { object-position:center top; }
.event-custom-design.invitation-cover_position-bottom :is(#event-cover-image,.event-cover-frame) { object-position:center bottom; }
.event-custom-design.invitation-layout-split #event-content { display:grid; grid-template-columns:1fr 1fr; }
.event-custom-design.invitation-layout-split :is(#event-cover-image,.event-cover-frame) { height:100%; min-height:280px; }
.event-custom-design.invitation-layout-postcard :is(#event-cover-image,.event-cover-frame) { margin:20px 20px 0; width:calc(100% - 40px); border-radius:var(--radius-md); }
@media(max-width:760px) {
 .event-custom-design.invitation-layout-split #event-content { grid-template-columns:minmax(0,1fr); }
 .event-custom-design.invitation-layout-split :is(#event-cover-image,.event-cover-frame) { height:230px; min-height:0; }
}
/* A split cover spans both the event copy and its compact date, without an empty grid cell. */
@media(min-width:761px) {
 .event-custom-design.invitation-layout-split #event-content { position:relative; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .event-custom-design.invitation-layout-split :is(#event-cover-image,.event-cover-frame) { position:absolute; inset:0 auto 0 0; width:50%; height:100%; min-height:0; }
 .event-custom-design.invitation-layout-split .event-hero-main { grid-column:2; grid-row:1; }
 .event-custom-design.invitation-layout-split .event-date-poster { grid-column:2; grid-row:2; display:flex; flex-direction:row; justify-content:flex-start; align-self:start; gap:12px; height:auto; min-height:0; min-width:0; max-width:none; flex-wrap:wrap; margin:0 36px 24px; padding:16px; }
 .event-custom-design.invitation-layout-split .event-date-poster span { font-size:44px; }
 .event-custom-design.invitation-layout-split .event-date-poster strong,.event-custom-design.invitation-layout-split .event-date-poster small { margin:0; }
}

/* Page typography intentionally overrides component font shorthands, including dialogs and toasts. */
.event-page-typography,.event-page-typography :where(*),
.invitation-sheet,.invitation-sheet :where(*) { font-family:var(--event-body-font,'Nunito Sans',sans-serif) !important; }
.event-page-typography :is(h1,h2,h3,h4,h5,h6),.event-page-typography :is(h1,h2,h3,h4,h5,h6) *,
.invitation-sheet :is(h1,h2,h3,h4,h5,h6),.invitation-sheet :is(h1,h2,h3,h4,h5,h6) * { font-family:var(--event-heading-font,'Nunito Sans',sans-serif) !important; }

/* Readable status colors and focus indicators on the three event surfaces. */
html[data-theme=dark] .system-toast { --toast-accent:var(--ux-danger); }
html[data-theme=dark] .system-toast.tone-success { --toast-accent:#8bd8b2; }
html[data-theme=dark] .system-toast.tone-warning { --toast-accent:#f0cd83; }
html[data-theme=dark] :is(.event-body,.celebration-shell) .dialog-message { color:var(--ux-danger); }
html[data-theme=dark] .event-plan-section .eyebrow { color:var(--ux-link); }
html[data-theme=dark] .celebration-shell :is(button,a,input,select,textarea):focus-visible { outline-color:var(--ux-link); }

.event-plan-section h2 { color:var(--ux-ink); }
.event-plan-section .event-plan-intro { color:var(--ux-muted); }
.event-body :is(.user-public-id,.items-empty) { color:var(--ux-muted); }
html[data-theme=dark] .event-body .event-overflow-trigger { color:var(--ux-ink); }


.event-body .event-overflow-trigger { color:var(--ux-muted); }

.event-custom-design .event-date-poster strong { color:var(--ux-ink); }
.event-custom-design .event-date-poster small { color:var(--ux-muted); }
.event-custom-design.invitation-template-evening .event-overflow-trigger { color:#dbe2f4; }
html[data-theme=dark] .event-body :is(.invite-method,.event-invite-friend-card) { color:var(--ux-ink); background:var(--ux-soft); border-color:var(--line); }
html[data-theme=dark] #event-invite-dialog .eyebrow { color:var(--ux-danger); }
html[data-theme=dark] .notification-achievement-icon { color:var(--ux-party); background:var(--ux-soft); }

/* The cover surface follows the event color even when a separate design palette is chosen. */
.event-shell,.invitation-sheet {
 --event-cover-surface:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 10%,var(--ux-surface));
 --event-cover-evening:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 22%,#101522);
}
.event-layout-b #event-content,.invitation-sheet .invitation-hero { background:var(--event-cover-surface); }
.event-layout-b :is(#event-cover-image,.event-cover-frame),.invitation-hero > :is(img,.event-cover-frame) { background:var(--event-cover-surface); }
.event-custom-design.invitation-template-evening #event-content { background:var(--event-cover-evening); }
.invitation-template-evening .invitation-hero { background:var(--event-cover-evening); }

/* Flow gaps include the full counter box, independent of the chosen font metrics. */
.event-layout-b :is(.event-priority-grid,.event-open-grid,.event-wishlist-section) .section-heading { gap:16px; margin:0 0 24px; }
.event-layout-b .section-heading .event-section-copy { display:grid; gap:12px; justify-items:start; min-width:0; }
.event-layout-b .section-heading .event-section-copy > :is(h2,p,.event-counter) { margin:0; }
.event-layout-b .section-heading h2 { line-height:1.3; overflow-wrap:anywhere; }
.event-layout-b .event-counter { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:fit-content; min-width:44px; min-height:44px; box-sizing:border-box; padding:8px 12px; margin:0; line-height:1.4; }
.event-layout-b .section-heading > h2 { flex:1; min-width:0; }
.event-layout-b .event-priority-grid .event-plan-heading > div { flex-basis:auto; }
@media(max-width:820px) {
 .event-layout-b .event-plan-heading > div { width:100%; }
 .event-layout-b .section-heading .event-section-copy { flex-basis:auto; }
}

/* Approved cover motifs: decorative descendants never participate in page layout. */
.event-cover-decorated { position:relative; isolation:isolate; }
.event-cover-decoration { position:absolute; inset:0; z-index:-1; overflow:hidden; border-radius:inherit; pointer-events:none; color:var(--event-cover-accent,var(--event-accent)); }
.cover-motif { position:absolute; display:block; pointer-events:none; }
.cover-motif-heart { background:currentColor; transform:rotate(-45deg); border-radius:4px; opacity:.23; }
.cover-motif-heart::before,.cover-motif-heart::after { content:''; position:absolute; width:100%; height:100%; border-radius:50%; background:currentColor; }
.cover-motif-heart::before { top:-50%; left:0; }
.cover-motif-heart::after { left:50%; top:0; }
.cover-motif-ring { border:1px solid currentColor; border-radius:50%; opacity:.33; }
.cover-motif-leaf { border:1px solid currentColor; border-radius:0 95% 0 95%; background:color-mix(in srgb,currentColor 12%,transparent); opacity:.45; }
.cover-motif-stem { width:120px; height:330px; bottom:-40px; border-left:1px solid currentColor; border-radius:50%; opacity:.35; }
.cover-motif-piece { width:8px; height:22px; border-radius:3px; background:currentColor; opacity:.3; }
.cover-motif-shape { background:currentColor; opacity:.18; }
.cover-motif-arch { border:1px solid currentColor; border-radius:50% 50% 0 0; opacity:.36; }
.cover-motif-frame { border:1px solid currentColor; opacity:.2; border-radius:inherit; }
.cover-motif-wave { width:150%; height:270px; border:1px solid currentColor; border-radius:45%; left:-25%; opacity:.21; }
.cover-motif-flower { background:repeating-conic-gradient(from 0deg,currentColor 0deg 15deg,transparent 15deg 30deg); border-radius:50%; opacity:.1; mask-image:radial-gradient(circle,transparent 10%,#000 12%,#000 38%,transparent 40%,transparent 46%,#000 48%); }
.celebration-template-mark { height:72px; overflow:hidden; }
.celebration-template-mark.event-cover-decorated { background:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 10%,var(--ux-surface)); }
#event-design-color .event-accent-picker { margin:0; }
#event-design-color .event-accent-heading { display:flex; flex-wrap:wrap; align-items:center; padding:16px; gap:12px; }
#event-design-color .event-accent-heading h3 { margin:0; font-size:16px; }
#event-design-color .event-accent-heading small { margin-left:auto; color:var(--ux-muted); font-size:12px; }
#event-design-color .event-accent-grid { grid-template-columns:repeat(auto-fill,minmax(44px,1fr)); gap:10px; padding:2px 16px 16px; }
#event-design-color .event-accent-swatch { width:100%; height:44px; min-height:44px; position:relative; border:3px solid var(--ux-surface); background:var(--swatch-color); }
#event-design-color .event-accent-swatch.is-active { box-shadow:0 0 0 2px var(--ux-ink); }
#event-design-color .event-accent-swatch.is-active::after { content:"✓"; display:grid; place-items:center; position:absolute; inset:0; margin:auto; width:20px; height:20px; border-radius:50%; background:var(--ux-surface); color:var(--ux-ink); font:700 14px/1 sans-serif; }
#event-design-color .event-accent-swatch:focus-visible { outline:3px solid var(--ux-ink); outline-offset:3px; }

/* Event-owned actions follow the chosen event color; destructive/status actions retain their meaning. */
.event-body #event-content { border-top-color:var(--event-cover-accent,var(--event-accent)); }
.event-body :is(.event-shell,.app-dialog,.celebration-dialog) :is(.primary-button:not(.danger):not(.action-danger),.reservation-button:not(.cancel):not(:disabled),#event-poll-create,#event-poll-submit),
html .event-body #rsvp-going[aria-pressed="true"] { background:var(--event-cover-accent,var(--event-accent)); border-color:var(--event-cover-accent,var(--event-accent)); color:var(--event-accent-ink,#fff); }
.event-body :is(.event-shell,.app-dialog,.celebration-dialog) :is(.primary-button:not(.danger):not(.action-danger),.reservation-button:not(.cancel):not(:disabled),#event-poll-create,#event-poll-submit):is(:hover,:focus-visible,:active),
html .event-body #rsvp-going[aria-pressed="true"]:is(:hover,:focus-visible,:active) { background:var(--event-cover-accent,var(--event-accent)); color:var(--event-accent-ink,#fff); }
.event-body :is(.event-shell,.app-dialog,.celebration-dialog) :is(.secondary-button:not(.danger):not(.action-danger),.reservation-button.cancel,#event-poll-results),
html .event-body #rsvp-going[aria-pressed="false"] { border-color:var(--event-cover-accent,var(--event-accent)); background:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 10%,var(--ux-surface)); color:var(--ux-ink); }
.event-body :is(.event-shell,.app-dialog,.celebration-dialog) :is(.secondary-button:not(.danger):not(.action-danger),.reservation-button.cancel,#event-poll-results):is(:hover,:focus-visible,:active),
html .event-body #rsvp-going[aria-pressed="false"]:is(:hover,:focus-visible,:active) { color:var(--ux-ink);background:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 18%,var(--ux-surface));border-color:var(--event-cover-accent,var(--event-accent)); }
.event-body .event-product-link { color:var(--ux-link);background:var(--ux-soft);border-color:var(--line); }
.event-body .event-product-link:is(:hover,:focus-visible,:active) { color:var(--ux-link);background:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 12%,var(--ux-surface));border-color:var(--event-cover-accent,var(--event-accent)); }
.event-body .event-gift-body > :is(.gift-priority,.quantity-badge,.gift-reservation-badge) { margin-block-end:8px; }

/* Nested expense surfaces must change theme together with their card. */
.event-body :is(.event-expense-payment,.event-expense-participants) { color:var(--ux-ink);background:var(--ux-surface);border-color:var(--line); }
.event-body :is(.event-expense-participant,.event-expense-no-receipt,.event-expense-personal,.event-expense-receipt) { color:var(--ux-muted);background:var(--ux-soft);border-color:var(--line); }
.event-body .event-expense-kicker { color:var(--ux-party); }
.event-body :is(.event-expense-private-note,.event-expense-payment-copy span,.event-expense-payment-copy small,.event-expense-participant-copy span,.event-expense-personal-amount span,.event-expense-split-mode small,.event-rsvp small,.event-comment time) { color:var(--ux-muted); }
html[data-theme=dark] .event-body :is(.event-expense-status,.event-expense-waiting,.event-expense-confirmed) { color:var(--ux-ink);background:var(--ux-soft); }
.event-body .event-plan-menu-action.is-danger { color:var(--ux-danger); }
.event-body .event-plan-menu-action.is-danger:is(:hover,:focus-visible) { color:var(--ux-danger);background:color-mix(in srgb,var(--ux-danger) 12%,var(--ux-surface)); }
.event-body .event-overflow-menu .danger { color:var(--ux-danger); }
.event-body .reservation-button:disabled { color:var(--ux-muted);background:var(--ux-soft);border-color:var(--line);box-shadow:none; }
.event-body .guest-empty { color:var(--ux-muted);background:var(--ux-surface);border-color:var(--line); }
.event-body :is(button,a,input,select,textarea,summary):focus-visible { outline:3px solid var(--ux-link);outline-offset:3px; }
.event-body .event-date-poster { background:var(--event-date-light-surface,var(--ux-surface)); }
.event-body .event-date-poster :is(strong,small) { color:var(--event-date-light-ink,var(--ux-ink)); }
.event-body #event-day { color:var(--event-cover-accent,var(--event-accent)); }
html[data-theme=dark] .event-body .event-date-poster { background:var(--event-date-dark-surface,var(--ux-surface)); }
html[data-theme=dark] .event-body .event-date-poster :is(strong,small) { color:var(--event-date-dark-ink,var(--ux-ink)); }

/* Brand typography is independent of event heading/body choices. */
.event-page-typography .brand,.event-page-typography .brand * {
 font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
}
/* Native tariff radios must not inherit text-input padding or a rectangular surface. */
.event-basics-form .event-tier-option input[type=radio] {
 appearance:auto; width:20px; height:20px; min-height:20px; padding:0;
 border:0; border-radius:50%; background:transparent; box-shadow:none;
}
.event-basics-form .event-tier-option input[type=radio]:focus-visible { outline:3px solid var(--ux-link,var(--blue)); outline-offset:3px; }

.invitation-template-picker { min-width:0; }
.invitation-template-controls { display:flex; gap:8px; }
.invitation-template-controls .secondary-button { width:44px; min-height:44px; padding:0; margin:0; }
#invitation-templates { display:flex; gap:12px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scroll-padding:4px; padding:4px 4px 14px; scrollbar-width:thin; scrollbar-color:var(--event-accent) var(--ux-soft); }
#invitation-templates .celebration-template { flex:0 0 184px; scroll-snap-align:start; text-align:left; }

/* Larger motifs on the actual cover and preview; gallery thumbnails remain compact. */
:is(#event-content,.invitation-hero) > .event-cover-decoration :is(.cover-motif-heart,.cover-motif-leaf,.cover-motif-piece,.cover-motif-shape,.cover-motif-flower) { scale:1.75; }
:is(#event-content,.invitation-hero) > .event-cover-decoration .cover-motif-stem { scale:1.35; }
:is(#event-content,.invitation-hero) > .event-cover-decoration[data-decoration=hearts] .cover-motif-ring { scale:1.4; }
:is(#event-content,.invitation-hero) > .event-cover-decoration[data-decoration=memphis] .cover-motif-ring { scale:1.6; }
:is(#event-content,.invitation-hero) > .event-cover-decoration[data-decoration=orbit] .cover-motif-ring { scale:1.08; border-width:2px; }
:is(#event-content,.invitation-hero) > .event-cover-decoration[data-decoration=deco] :is(.cover-motif-arch,.cover-motif-frame) { border-width:2px; }
:is(#event-content,.invitation-hero) > .event-cover-decoration .cover-motif-wave { height:360px; border-width:2px; }
@media(max-width:600px) {
 :is(#event-content,.invitation-hero) > .event-cover-decoration :is(.cover-motif-heart,.cover-motif-leaf,.cover-motif-piece,.cover-motif-shape,.cover-motif-flower) { scale:1.5; }
}

/* Public invitations carry their event's colors through every surface. */
html body.public-invitation-body {
  --invitation-canvas: #fafaff;
  background: radial-gradient(circle at 8% 6%,color-mix(in srgb,var(--event-cover-accent,#5d6de3) 25%,transparent),transparent 31rem),
    radial-gradient(circle at 94% 30%,color-mix(in srgb,var(--event-cover-accent,#5d6de3) 15%,transparent),transparent 29rem),var(--invitation-canvas);
  color: var(--ux-ink);
}
.public-invitation-body::after { display:none; }
html[data-theme=dark] .public-invitation-body { --invitation-canvas:#101522; }
.invitation-sheet,.public-invitation-body {
  --invitation-block-surface:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 8%,var(--ux-surface));
  --invitation-line:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 25%,var(--line));
  --invitation-link:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 35%,#111a46);
}
html[data-theme=dark] :is(.invitation-sheet,.public-invitation-body) { --invitation-link:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 45%,#ffffff); }
.invitation-sheet { background:color-mix(in srgb,var(--event-cover-accent,var(--event-accent)) 3%,var(--ux-surface)); border-color:var(--invitation-line); }
.invitation-sheet .invitation-block,.public-invitation-body .invitation-rsvp { background:var(--invitation-block-surface); border-color:var(--invitation-line); }
.invitation-sheet .invitation-hero + .invitation-block { margin-top:24px; }
.invitation-sheet :is(.invitation-date,.invitation-program time,.celebration-back,.eyebrow) { color:var(--invitation-link); }
.invitation-sheet.invitation-template-evening .invitation-hero :is(.invitation-date,.eyebrow) { color:#fff; }
.invitation-sheet :is(.invitation-detail-row,.invitation-color-sample) { border-color:var(--invitation-line); }
.public-invitation-body,.public-invitation-body :where(*) { font-family:var(--event-body-font,'Nunito Sans',sans-serif) !important; }
.public-invitation-body :is(h1,h2,h3,h4,h5,h6) { font-family:var(--event-heading-font,'Nunito Sans',sans-serif) !important; }
.invitation-album { min-width:0; margin-top:20px; }
.invitation-album-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; border-radius:var(--radius-sm); }
.invitation-album-slide { flex:0 0 100%; min-width:0; scroll-snap-align:start; }
.invitation-album-slide .invitation-image-open { display:block; width:100%; padding:0; border:0; border-radius:var(--radius-sm); background:var(--invitation-block-surface); }
.invitation-album-slide img { display:block; width:100%; aspect-ratio:16/10; object-fit:contain; }
.invitation-album :focus-visible { outline:3px solid var(--invitation-link); outline-offset:-3px; }
@media(max-width:600px) { .invitation-sheet .invitation-hero + .invitation-block { margin-top:20px; } }

/* One reversible crop shared by file/URL previews, the event and public invitation. */
.event-cover-frame { position:relative; overflow:hidden; min-width:0; }
html .event-cover-frame > img { position:absolute; inset:0; display:block; width:100%; height:100%; min-height:0; max-height:none; margin:0; border-radius:0; object-fit:cover; object-position:var(--cover-position,50% 50%); transform:scale(var(--cover-zoom,1)); transform-origin:var(--cover-position,50% 50%); }
#event-cover-fields .event-cover-preview { cursor:grab; touch-action:none; }
#event-cover-fields .event-cover-preview:active { cursor:grabbing; }
#event-cover-clear { margin-top:16px; }
.cover-crop-controls { margin:16px 0 24px; }
.event-basics-form .cover-crop-controls input[type=range] { padding:0; border:0; background:transparent; accent-color:var(--event-accent); min-height:44px; }
.invitation-album-track { scrollbar-width:none; }
.invitation-album-track::-webkit-scrollbar { display:none; }
.invitation-album-dots { display:flex; justify-content:center; gap:0; margin-top:8px; }
.invitation-album-dot { display:grid; place-items:center; width:44px; height:44px; min-width:44px; min-height:44px; padding:0; background:transparent; border:0; box-shadow:none; cursor:pointer; }
.invitation-album-dot::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--invitation-link); opacity:.3; transition:opacity .2s,transform .2s; }
.invitation-album-dot[aria-current=true]::before { opacity:1; transform:scale(1.25); }
@media(prefers-reduced-motion:reduce) { .invitation-album-dot::before { transition:none; } }

:is(#event-content,.invitation-hero) > .event-cover-frame { position:relative; }
html .event-cover-frame > img { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; min-height:0 !important; margin:0 !important; object-position:var(--cover-position,50% 50%) !important; }
@media(min-width:601px) { .event-custom-design.invitation-layout-split #event-content > .event-cover-frame { position:absolute; } }

#invitation-add-block { margin-top:16px; }
.invitation-account { margin-top:24px; background:var(--invitation-block-surface); border-color:var(--invitation-line); }
.invitation-account a { display:inline-flex; align-items:center; justify-content:center; padding:12px 20px; text-decoration:none; box-sizing:border-box; }

.cover-crop-controls { max-width:640px; }

/* Invitation content repeats the selected cover design, with quieter motifs. */
.invitation-block > .event-cover-decoration { opacity:.65; }
.invitation-sheet.invitation-template-ribbon .invitation-block { border-left:4px solid var(--event-accent); }
.invitation-sheet.invitation-template-postcard .invitation-block { border:2px dashed var(--event-accent); }
.invitation-sheet.invitation-template-evening .invitation-block {
  --invitation-block-surface:var(--event-cover-evening);
  --invitation-link:#e4e9ff;
  --invitation-line:color-mix(in srgb,var(--event-cover-accent) 45%,#707b95);
  color:#f4f6ff;
  background:var(--invitation-block-surface);
}
.invitation-sheet.invitation-template-evening .invitation-block :is(h2,h3,summary) { color:inherit; }

.invitation-poll-choices { display: grid; gap: .8rem; min-width: 0; margin: 0; padding: 0; border: 0; text-align: left; }
.invitation-poll-choices legend { margin-bottom: .9rem; }
.invitation-poll .celebration-fields { text-align: left; }
.invitation-poll .celebration-checkbox { align-items: center; }
.invitation-poll input[type="radio"], .invitation-poll input[type="checkbox"] { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; accent-color: var(--event-accent); }
#invitation-add-poll { margin-top: .75rem; }

.invitation-map { display:block; width:100%; height:320px; margin:20px 0 16px; border:1px solid var(--invitation-line,var(--line)); border-radius:var(--radius-md); background:var(--invitation-block-surface,var(--paper)); }
.invitation-account h2 { margin-top:0; }
.invitation-account p { max-width:760px; line-height:1.6; }
.invitation-account .celebration-actions { margin-top:20px; }
@media(max-width:480px) { .invitation-map { height:280px; } .invitation-account .celebration-actions a { width:100%; } }

.package-checkout-dialog { width: min(720px, calc(100% - 24px)); }
.package-checkout-dialog form { display: grid; gap: 20px; }
.package-checkout-dialog .checkout-summary { font-weight: 700; font-size: 18px; }
.package-checkout-dialog .dialog-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.package-checkout-dialog .dialog-actions button { white-space: normal; }
.package-checkout-dialog details > summary { cursor: pointer; min-height: 44px; }
@media (max-width: 480px) { .package-checkout-dialog .dialog-actions button { width: 100%; } }

html .package-checkout-dialog,
html .package-checkout-dialog :is(h2, label, summary, .checkout-summary) { color: var(--ux-ink); }
html .package-checkout-dialog { background: var(--ux-surface); }
html .package-checkout-dialog :is(.dialog-intro, .field-note) { color: var(--ux-muted); }
html .package-checkout-dialog input { background: var(--ux-soft); color: var(--ux-ink); border-color: var(--line); }
html .package-checkout-dialog .dialog-actions { background: var(--ux-surface); }
html .package-checkout-dialog .secondary-button { background: var(--ux-soft); color: var(--ux-ink); border-color: var(--line); }
html .package-checkout-dialog a { color: var(--ux-link); }
.package-checkout-dialog form > :is(p, details) { margin: 0; }
