:root {
  --bg:#FDFAF6;--bg2:#F7F2EB;--bg3:#EDE6DB;
  --text:#3B3228;--textMd:#6B5E52;--textLt:#A69B8F;--textXl:#C9BFB3;
  --gold:#C6A96C;--goldLt:#E8D9B5;
  --blush:#D4A0A0;--blushLt:#F2E0E0;
  --sage:#8FA68A;--sageLt:#D6E4D3;
  --lavender:#A692B8;--lavLt:#E5DDF0;
  --white:#FFFFFF;--accent:#B8886F;
  --serif:'Playfair Display',serif;
  --sans:'Nunito Sans',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);font-family:var(--sans);color:var(--text);overflow-x:hidden}
html{overflow-x:hidden}
img{max-width:100%;height:auto}
::selection{background:var(--goldLt);color:var(--text)}
input:focus,textarea:focus,select:focus{border-color:var(--gold)!important;outline:none}
button{cursor:pointer}
button:hover{opacity:0.88}
input[type="range"]{height:24px;accent-color:var(--gold);cursor:pointer;-webkit-appearance:none;appearance:none;background:transparent}
input[type="range"]::-webkit-slider-runnable-track{height:6px;background:var(--bg3);border-radius:3px}
input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--gold);border:2px solid var(--white);box-shadow:0 1px 4px rgba(0,0,0,.15);margin-top:-6px;cursor:pointer}
input[type="range"]::-moz-range-track{height:6px;background:var(--bg3);border-radius:3px;border:none}
input[type="range"]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--gold);border:2px solid var(--white);box-shadow:0 1px 4px rgba(0,0,0,.15);cursor:pointer}
@keyframes gentlePulse{0%,100%{opacity:.3;transform:translate(-50%,-50%) scale(1)}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.03)}}
.section-pad{padding:100px 48px}
.navbar{position:fixed;top:0;left:0;right:0;z-index:2500;padding:18px 32px;display:flex;justify-content:space-between;align-items:center;transition:all .5s ease}
.navbar.scrolled{background:rgba(253,250,246,.94);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--goldLt);padding:10px 32px}
.nav-toggle{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;gap:5px;padding:6px;z-index:2502}
.nav-toggle span{display:block;width:22px;height:1.5px;background:var(--gold);border-radius:1px;transition:all .3s ease}
.nav-toggle.open span:nth-child(1){transform:rotate(45deg) translate(4px,5px)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:rotate(-45deg) translate(4px,-5px)}
.nav-drawer{position:fixed;top:0;right:-300px;width:280px;height:100vh;background:var(--bg);box-shadow:-8px 0 40px rgba(0,0,0,.08);z-index:2502;transition:right .4s ease;padding:90px 32px 40px;overflow-y:auto}
.nav-drawer.open{right:0}
.nav-drawer-inner{display:flex;flex-direction:column;gap:4px}
.nav-overlay{position:fixed;inset:0;background:rgba(59,50,40,.18);z-index:2500;opacity:0;pointer-events:none;transition:opacity .4s ease}
.nav-overlay.open{opacity:1;pointer-events:auto}
.nav-link{background:none;border:none;cursor:pointer;font-family:var(--sans);font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--textMd);font-weight:400;transition:all .3s;padding:12px 16px;border-radius:8px;text-align:left;border-bottom:2px solid transparent}
.nav-link:hover{background:rgba(198,169,108,.06)}
.nav-link.active{color:var(--gold);font-weight:600;background:rgba(198,169,108,.08);border-bottom:2px solid var(--gold)}
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:linear-gradient(175deg,var(--bg) 0%,var(--bg2) 40%,var(--blushLt) 70%,var(--sageLt) 100%);position:relative;overflow:hidden}
.hero-content{z-index:2;opacity:0;transform:translateY(24px);transition:all 1s ease}
.hero-content.loaded{opacity:1;transform:translateY(0)}
.countdown-val{font-family:var(--serif);font-size:2.2rem;font-weight:600;color:var(--text);width:68px;height:68px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.69);border-radius:12px;box-shadow:0 4px 20px rgba(198,169,108,.1);border:1px solid rgba(232,217,181,.38)}
.btn-primary{font-family:var(--sans);font-size:.7rem;letter-spacing:3px;text-transform:uppercase;background:var(--gold);color:var(--white);border:none;padding:15px 36px;cursor:pointer;border-radius:4px;font-weight:500;box-shadow:0 4px 16px rgba(198,169,108,.3)}
.btn-outline{font-family:var(--sans);font-size:.7rem;letter-spacing:3px;text-transform:uppercase;background:transparent;color:var(--gold);border:1.5px solid var(--gold);padding:15px 36px;cursor:pointer;border-radius:4px;font-weight:500}
.section-title{text-align:center;margin-bottom:56px}
.section-title .label{font-family:var(--sans);font-size:.65rem;letter-spacing:5px;color:var(--gold);margin-bottom:12px;text-transform:uppercase;font-weight:600}
.section-title h2{font-family:var(--serif);font-size:2.8rem;font-weight:500;color:var(--text);margin:0 0 14px;line-height:1.2}
.section-title p{font-family:var(--sans);font-size:.85rem;color:var(--textLt);max-width:480px;margin:0 auto;line-height:1.8;font-weight:300}
.section-title .divider{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:20px}
.section-title .divider .line{width:40px;height:1px;background:var(--goldLt)}
.section-title .divider .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);opacity:.5}

.menu-card{position:relative;background:rgba(255,255,255,.5);border:1.5px solid var(--bg3);padding:0;cursor:pointer;text-align:center;border-radius:10px;transition:all .4s;overflow:hidden}
.menu-card.selected{background:var(--white);border-color:var(--gold);border-width:2px;box-shadow:0 2px 8px rgba(198,169,108,.15)}
.vendor-slot{position:relative;background:rgba(255,255,255,.5);border:1.5px solid var(--bg3);padding:0;cursor:pointer;text-align:center;border-radius:10px;transition:all .4s;overflow:hidden}
.vendor-slot.selected{background:var(--white);border-color:var(--gold);border-width:2px;box-shadow:0 2px 8px rgba(198,169,108,.15)}
.vendor-pick-card{background:rgba(255,255,255,.5);border:1.5px solid var(--bg3);padding:16px;cursor:pointer;text-align:left;border-radius:12px;transition:all .4s;overflow:hidden;display:flex;flex-direction:row;align-items:center;gap:16px}
.vendor-pick-card:hover{border-color:var(--goldLt);transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,0,0,.05)}
.vendor-pick-card.chosen{background:var(--white);border-color:var(--gold);border-width:2px;box-shadow:0 2px 8px rgba(198,169,108,.15)}

.filter-tab{font-family:var(--sans);font-size:.6rem;letter-spacing:1.5px;text-transform:uppercase;padding:7px 16px;border-radius:16px;border:1px solid var(--bg3);background:transparent;color:var(--textLt);cursor:pointer;font-weight:500}
.filter-tab.active{border-color:var(--gold);background:rgba(198,169,108,.07);color:var(--gold)}
.check-box{width:20px;height:20px;border-radius:4px;border:1.5px solid var(--textXl);background:transparent;display:inline-flex;align-items:center;justify-content:center;font-size:.6rem;color:var(--sage);font-weight:600;transition:all .3s;flex-shrink:0}
.check-box.checked{border-color:var(--sage);background:rgba(143,166,138,.09)}
.month-btn{font-family:var(--sans);font-size:.6rem;letter-spacing:1px;padding:8px 12px;border-radius:20px;border:1.5px solid var(--bg3);background:transparent;color:var(--textLt);cursor:pointer;font-weight:400;transition:all .3s}
.month-btn.active{border-color:var(--gold);background:var(--white);color:var(--gold);font-weight:600;box-shadow:0 2px 12px rgba(198,169,108,.1)}
.guest-row{background:var(--white);border-radius:8px;border:1px solid var(--bg3);padding:14px 18px;display:flex;align-items:center;gap:14px;box-shadow:0 1px 4px rgba(0,0,0,.02);margin-bottom:6px}

/* ══════════════════════════════════════════════════════════════ */
/* RESPONSIVE                                                     */
/* ══════════════════════════════════════════════════════════════ */

/* Tablet */
@media(max-width:768px){
  .section-pad{padding:72px 28px}
  .section-title h2{font-size:2.2rem}
  .section-title p{font-size:.8rem}
  .section-title{margin-bottom:40px}
  .hero-content h1{font-size:3.8rem!important}
  .countdown-val{font-size:1.8rem;width:58px;height:58px}
  .menu-grid{grid-template-columns:repeat(2,1fr)!important}
  .vendor-grid{grid-template-columns:repeat(2,1fr)!important}
}

/* Mobile */
@media(max-width:520px){
  .section-pad{padding:56px 18px}
  .section-title h2{font-size:1.7rem}
  .section-title p{font-size:.75rem;max-width:320px}
  .section-title .label{font-size:.55rem;letter-spacing:3px}
  .section-title{margin-bottom:32px}
  .hero{min-height:92vh;padding:0 20px}
  .hero-content h1{font-size:2.8rem!important}
  .hero-content p{font-size:.8rem!important;max-width:300px!important}
  .countdown-val{font-size:1.5rem;width:50px;height:50px;border-radius:10px}
  .congrats-heading{font-size:1.4rem}
  .congrats-names{font-size:1.5rem}
  .congrats-msg{font-size:.78rem}
  .btn-primary,.btn-outline{font-size:.6rem;padding:12px 24px;letter-spacing:2px}
  .navbar{padding:14px 16px}
  .navbar.scrolled{padding:8px 16px}
  .guest-row{padding:12px 14px;gap:8px;flex-wrap:wrap}
  .guest-row select{font-size:.65rem!important;max-width:100px!important}
  .guest-row input{min-width:0!important}
  .filter-tab{font-size:.52rem;padding:6px 12px}
  .month-btn{font-size:.5rem;padding:6px 9px}
  .vendor-slot{min-height:180px!important}
  .vendor-form-row{grid-template-columns:1fr!important}
  .picker-body-lg{padding:20px 18px}
  .menu-card{padding:0}
  .menu-grid{grid-template-columns:1fr!important}
  .vendor-grid{grid-template-columns:1fr!important}
  .tl-line{display:none!important}
  .tl-dot{display:none!important}
  .tl-row{gap:0!important}
  .tl-time{width:auto!important;text-align:left!important;padding:0 0 4px 16px!important;font-size:.62rem!important;color:var(--gold)!important;font-weight:600!important}
  .tl-row{flex-direction:column!important}
  .tl-card{padding:10px 12px!important;gap:8px!important}
  .nav-drawer{width:260px;padding:80px 24px 40px}
}

/* Very small */
@media(max-width:380px){
  .section-pad{padding:44px 14px}
  .hero-content h1{font-size:2.2rem!important}
  .countdown-val{font-size:1.2rem;width:44px;height:44px}
  .section-title h2{font-size:1.4rem}
  .profile-label{display:none}
}

/* Touch devices: prevent sticky hover states */
@media(hover:none){
  .vendor-pick-card:hover{border-color:var(--bg3);transform:none;box-shadow:none}
  .nav-link:hover{background:transparent}
  button:hover{opacity:1}
}

/* Safe area insets for notch phones */
@supports(padding-bottom:env(safe-area-inset-bottom)){
  .footer{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
  .navbar{padding-left:max(32px,env(safe-area-inset-left));padding-right:max(32px,env(safe-area-inset-right))}
}

/* ═══ Extracted utility classes ═══ */

/* ── Modals & Overlays ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(59,50,40,.3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:center;justify-content:center}
.modal-overlay-dark{display:none;position:fixed;inset:0;background:rgba(59,50,40,.35);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:center;justify-content:center}
.modal-overlay-solid{display:none;position:fixed;inset:0;background:var(--bg);align-items:center;justify-content:center;flex-direction:column}
.modal-box{max-width:520px;width:90%;max-height:85vh;overflow-y:auto;background:var(--bg);border-radius:16px;border:1.5px solid var(--goldLt);box-shadow:0 16px 60px rgba(0,0,0,.12);padding:0}
.modal-box-sm{text-align:center;max-width:380px;width:90%;padding:36px 32px;background:var(--bg);border-radius:16px;border:1.5px solid var(--blush);box-shadow:0 16px 60px rgba(0,0,0,.12)}
.modal-box-md{text-align:center;max-width:480px;width:90%;padding:40px 32px;background:var(--white);border-radius:16px;border:1.5px solid var(--goldLt);box-shadow:0 16px 60px rgba(0,0,0,.1)}
.modal-inner-center{text-align:center;max-width:340px;width:90%}

/* ── Panel Headers ── */
.panel-header{padding:28px 28px 20px;border-bottom:1px solid var(--bg3);display:flex;justify-content:space-between;align-items:flex-start}

/* ── Typography: Labels (base + overrides) ── */
[class^="lbl-"],[class*=" lbl-"]{font-family:var(--sans);font-weight:600;letter-spacing:2px;color:var(--textLt)}
.lbl-gold{font-size:.55rem;letter-spacing:4px;color:var(--gold);margin-bottom:6px}
.lbl-gold-sm{font-size:.48rem;letter-spacing:4px;color:var(--gold);margin-bottom:4px}
.lbl-gold-section{font-size:.58rem;letter-spacing:4px;color:var(--gold);margin-bottom:14px}
.lbl-gold-cat{font-size:.52rem;letter-spacing:3px;color:var(--gold);margin-bottom:3px}
.lbl-gold-cat-lg{font-size:.48rem;letter-spacing:3px;color:var(--gold);margin-bottom:4px}
.lbl-muted{font-size:.5rem;margin-bottom:5px}
.lbl-muted-sm{font-size:.45rem;margin-bottom:4px}
.lbl-form{font-size:.62rem;letter-spacing:1.5px;display:block;margin-bottom:7px}
.lbl-section-sm{font-size:.48rem;font-weight:500}
.lbl-removed{font-size:.48rem;letter-spacing:1px;color:var(--textXl);font-weight:500;margin-bottom:6px}
.lbl-stat{font-size:.52rem;font-weight:500}
.lbl-stat-sm{font-size:.5rem;letter-spacing:3px;color:var(--gold);margin-bottom:6px}
.lbl-total{font-size:.68rem;letter-spacing:4px;margin-bottom:10px}
.lbl-removed-section{font-size:.55rem;margin-bottom:10px}
.lbl-gold-track{font-size:.55rem;letter-spacing:4px;color:var(--gold);margin-bottom:4px}

/* ── Typography: Headings ── */
.heading-panel{font-family:var(--serif);font-size:1.6rem;color:var(--text);font-weight:500}
.heading-section{font-family:var(--serif);font-size:1rem;color:var(--text);font-weight:500}
.heading-picker{font-family:var(--serif);font-size:1.2rem;color:var(--text);font-weight:500}
.heading-card{font-family:var(--serif);font-size:1.05rem;color:var(--text);font-weight:500;margin-bottom:4px}
.heading-privacy{font-family:var(--serif);font-size:.95rem;color:var(--text);font-weight:500;margin:0 0 10px}
.heading-vendor{font-family:var(--serif);font-size:1.2rem;color:var(--text);font-weight:500;margin-bottom:4px}
.heading-card-lg{font-family:var(--serif);font-size:1.15rem;color:var(--text);font-weight:500;margin-bottom:4px}
.heading-music{font-family:var(--serif);font-size:.95rem;color:var(--text);font-weight:500}

/* ── Typography: Body ── */
.body-text{font-family:var(--sans);font-size:.78rem;color:var(--textMd);font-weight:300;line-height:1.8;margin:0 0 20px}
.body-text-center{font-family:var(--sans);font-size:.78rem;color:var(--textMd);font-weight:300;line-height:1.8;margin:0}
.body-text-beta{font-family:var(--sans);font-size:.82rem;color:var(--textMd);font-weight:300;line-height:1.8;margin:0 0 8px}
.body-text-lg{font-family:var(--sans);font-size:.82rem;color:var(--textMd);font-weight:300;line-height:1.8;margin:0 0 24px}
.text-desc-sm{font-family:var(--sans);font-size:.55rem;color:var(--textLt);font-weight:300}
.text-desc-md{font-family:var(--sans);font-size:.65rem;color:var(--textLt);font-weight:300}
.text-meta{font-family:var(--sans);font-size:.6rem;color:var(--textLt);font-weight:300}
.text-contact{font-family:var(--sans);font-size:.75rem;color:var(--textMd)}
.text-italic-muted{font-family:var(--sans);font-size:.65rem;color:var(--textLt);margin-top:6px;font-weight:300;font-style:italic}
.text-journal{font-family:var(--sans);font-size:.82rem;color:var(--textMd);font-weight:300;line-height:1.8;white-space:pre-wrap}
.text-vendor-desc{font-family:var(--sans);font-size:.92rem;color:var(--textMd);font-weight:300;line-height:1.55}

/* ── Buttons ── */
.btn-close{background:none;border:none;cursor:pointer;font-size:1.4rem;color:var(--textMd);line-height:1;padding:4px}
.btn-close-picker{background:none;border:1px solid var(--bg3);color:var(--textLt);font-family:var(--sans);font-size:.5rem;letter-spacing:1.5px;padding:6px 14px;border-radius:6px;cursor:pointer;font-weight:500}
.btn-close-picker-lg{background:none;border:1px solid var(--bg3);color:var(--textLt);font-family:var(--sans);font-size:.6rem;letter-spacing:1.5px;padding:8px 16px;border-radius:6px;cursor:pointer;font-weight:500}
.btn-gold{background:var(--gold);color:var(--white);border:none;padding:14px;border-radius:8px;cursor:pointer;font-family:var(--sans);font-size:.68rem;letter-spacing:2px;font-weight:500;box-shadow:0 2px 10px rgba(198,169,108,.2)}
.btn-gold-wide{width:100%;padding:12px;background:var(--gold);color:var(--white);border:none;border-radius:8px;cursor:pointer;font-family:var(--sans);font-size:.65rem;letter-spacing:2px;font-weight:500;box-shadow:0 2px 10px rgba(198,169,108,.2)}
.btn-outline-gold{width:100%;padding:12px;background:transparent;color:var(--gold);border:1.5px solid var(--gold);border-radius:8px;cursor:pointer;font-family:var(--sans);font-size:.65rem;letter-spacing:2px;font-weight:500}
.btn-outline-blush{width:100%;padding:12px;background:transparent;color:var(--blush);border:1px solid var(--blush);border-radius:8px;cursor:pointer;font-family:var(--sans);font-size:.6rem;letter-spacing:2px;font-weight:500;margin-top:4px}
.btn-add-dashed{width:100%;padding:14px;background:transparent;border:1.5px dashed var(--goldLt);border-radius:10px;cursor:pointer;font-family:var(--sans);font-size:.65rem;letter-spacing:2px;color:var(--gold);font-weight:500;transition:all .3s}
.btn-add-sm{width:100%;margin-top:8px;padding:8px;background:transparent;border:1px dashed var(--bg3);border-radius:6px;cursor:pointer;font-family:var(--sans);font-size:.58rem;letter-spacing:1px;color:var(--textLt);font-weight:400;transition:all .3s}
.btn-card-close{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;background:rgba(59,50,40,.5);border:none;color:#fff;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.btn-delete{background:var(--blushLt);border:1px solid rgba(212,160,160,.2);color:var(--blush);width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:.7rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.btn-delete-sm{background:var(--blushLt);border:1px solid rgba(212,160,160,.2);color:var(--blush);width:22px;height:22px;border-radius:6px;cursor:pointer;font-size:.55rem;display:flex;align-items:center;justify-content:center}
.btn-delete-tl{background:var(--blushLt);border:1px solid rgba(212,160,160,.2);color:var(--blush);width:24px;height:24px;border-radius:6px;cursor:pointer;font-size:.6rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.btn-edit-sm{background:none;border:1px solid var(--bg3);color:var(--textLt);font-family:var(--sans);font-size:.5rem;letter-spacing:1px;padding:5px 12px;border-radius:6px;cursor:pointer;font-weight:500}
.btn-edit-del{background:none;border:1px solid var(--bg3);color:var(--blush);font-family:var(--sans);font-size:.5rem;letter-spacing:1px;padding:5px 10px;border-radius:6px;cursor:pointer;font-weight:500}
.btn-cancel{padding:10px 24px;background:transparent;color:var(--textLt);border:1px solid var(--bg3);border-radius:8px;cursor:pointer;font-family:var(--sans);font-size:.6rem;letter-spacing:1.5px;font-weight:500}
.btn-save-journal{padding:10px 24px;background:var(--gold);color:var(--white);border:none;border-radius:8px;cursor:pointer;font-family:var(--sans);font-size:.6rem;letter-spacing:1.5px;font-weight:500}

/* ── Contact / Social pills ── */
.pill-contact{font-family:var(--sans);font-size:.7rem;letter-spacing:.5px;padding:4px 11px;border-radius:10px;background:var(--bg2);color:var(--textMd);cursor:pointer}
.pill-contact:focus-visible{outline:2px solid var(--gold);outline-offset:2px}


/* ── Cards & Panels ── */
.card-panel{background:var(--white);border-radius:12px;border:1px solid var(--bg3);padding:28px 24px;box-shadow:0 4px 20px rgba(0,0,0,.03)}
.picker-container{background:var(--white);border:1.5px solid var(--goldLt);border-radius:16px;padding:0;box-shadow:0 8px 32px rgba(198,169,108,.08);overflow:hidden;margin-bottom:16px}

/* ── Completion banner ── */
.completion-banner{text-align:center;padding:16px;background:linear-gradient(135deg,rgba(143,166,138,.06),rgba(198,169,108,.06));border:1px solid var(--sageLt);border-radius:12px}
.completion-icon{color:var(--sage);font-size:.8rem;font-weight:600}
.completion-text{font-family:var(--sans);font-size:.7rem;color:var(--sage);font-weight:500;letter-spacing:1px}

/* ── Decorative elements ── */
.divider-dot-sm{width:28px;height:1px;background:var(--goldLt)}
.divider-dot-md{width:32px;height:1px;background:var(--goldLt)}
.divider-dot-center{width:5px;height:5px;border-radius:50%;background:var(--gold);opacity:.4}
.divider-line-sm{width:28px;height:1px;background:var(--bg3)}
.divider-dot-footer{width:4px;height:4px;border-radius:50%;background:var(--goldLt)}

/* ── Form elements ── */
.input-standard{width:100%;font-family:var(--sans);font-size:.88rem;color:var(--text);border:1.5px solid var(--bg3);padding:14px 16px;border-radius:10px;outline:none;background:var(--white);box-sizing:border-box;transition:border-color .3s,box-shadow .3s;line-height:1.5}
.input-standard::placeholder{color:var(--textXl);font-weight:300}
.input-standard:focus{border-color:var(--gold)!important;box-shadow:0 0 0 3px rgba(198,169,108,.1)}
textarea.input-standard{min-height:80px}
.input-pin{width:100%;text-align:center;font-family:var(--sans);font-size:1.2rem;letter-spacing:8px;color:var(--text);border:1.5px solid var(--bg3);padding:14px;border-radius:10px;outline:none;background:var(--white);box-sizing:border-box}
.input-checklist-edit{flex:1;font-family:var(--sans);font-size:.76rem;color:var(--text);border:none;border-bottom:1px dashed var(--bg3);background:transparent;outline:none;padding:4px 0}
.input-music{width:100%;background:var(--bg2);border:1px solid var(--bg3);padding:10px 12px;font-family:var(--sans);font-size:.75rem;color:var(--text);border-radius:6px;outline:none;box-sizing:border-box}

/* ── Layout helpers ── */
.flex-center-gap8{display:flex;align-items:center;justify-content:center;gap:8px}
.checklist-item{display:flex;align-items:center;gap:10px;padding:8px 0}
.checklist-toggle{display:flex;align-items:center;gap:10px;flex:1;background:none;border:none;cursor:pointer;text-align:left;padding:0}

/* ── Empty state ── */
.empty-state{text-align:center;padding:48px 24px;background:var(--white);border:1.5px dashed var(--bg3);border-radius:16px}

/* ── Footer links ── */
.footer-link{text-decoration:none;font-family:var(--sans);font-size:.55rem;letter-spacing:2px;color:var(--textXl);cursor:pointer;font-weight:500}

/* ── Vendor-specific ── */
.vendor-selected-badge{flex-shrink:0;background:rgba(143,166,138,.12);color:var(--sage);font-family:var(--sans);font-size:.68rem;letter-spacing:1.5px;padding:6px 14px;border-radius:8px;font-weight:600}

/* ── Info boxes ── */
.info-box-gradient{padding:16px 18px;background:linear-gradient(135deg,rgba(232,217,181,.15),rgba(242,224,224,.12));border:1.5px solid var(--goldLt);border-radius:10px}
.info-box-sage{padding:16px;background:linear-gradient(135deg,rgba(232,217,181,.12),rgba(214,228,211,.1));border-radius:10px;border:1px solid var(--bg3)}
.privacy-note{font-family:var(--sans);font-size:.6rem;color:var(--textLt);font-weight:300;line-height:1.6;font-style:italic;margin:0}

/* ── Pin / Lock ── */
.pin-error{font-family:var(--sans);font-size:.68rem;color:var(--blush);margin-top:10px;min-height:20px}

/* ── Floral ── */
.floral-tip{background:linear-gradient(135deg,rgba(232,217,181,.19),rgba(214,228,211,.25));border-radius:12px;padding:22px 24px}

/* ── Logo / Brand ── */
.brand-accent{font-weight:400;font-style:italic;color:var(--blush)}


/* ═══ Additional extracted classes ═══ */
.flex-gap10-mb{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.flex-gap12{display:flex;align-items:center;gap:12px}
.flex-gap6-mb{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.flex-gap8-mt{display:flex;align-items:center;gap:8px;margin-top:10px}
.flex-center-gap8-mb{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:28px}
.flex-stats{display:flex;justify-content:center;gap:32px;margin-bottom:36px;flex-wrap:wrap}
.color-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:8px}
.fork-tine{width:1.5px;height:18px;background:linear-gradient(to bottom,#C0B8AD,#A69B8F);border-radius:1px 1px 0 0}
.silverware-base{width:8px;height:12px;background:linear-gradient(to bottom,#A69B8F,#B8AFA4);border-radius:0 0 4px 4px}
.countdown-label{font-family:var(--sans);font-size:.5rem;letter-spacing:2px;color:var(--textLt);margin-top:8px;text-transform:uppercase;font-weight:500}
.vendor-footer-quote{margin-top:24px;padding:20px 24px;background:linear-gradient(135deg,rgba(232,217,181,.19),rgba(242,224,224,.31));border-radius:10px;text-align:center}
.text-subtle{font-family:var(--sans);font-size:.6rem;color:var(--textLt);font-weight:400}
.text-subtitle{font-family:var(--sans);font-size:.72rem;color:var(--textMd);font-weight:300}
.countdown-input{font-family:var(--sans);font-size:.75rem;color:var(--text);border:1px solid var(--bg3);padding:6px 10px;border-radius:6px;outline:none;background:var(--white)}
.text-check-done{margin-left:auto;color:var(--sage);font-size:.7rem;font-weight:600;flex-shrink:0;margin-right:52px}
.text-slot-hint{font-family:var(--sans);font-size:.55rem;letter-spacing:3px;color:var(--textLt);font-weight:500}
.text-slot-cta{font-family:var(--sans);font-size:.78rem;color:var(--textMd);font-weight:300}
.text-card-name{font-family:var(--serif);font-size:1.05rem;color:var(--text);font-weight:500;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vendor-add-circle{width:44px;height:44px;border-radius:50%;border:2px solid var(--goldLt);display:flex;align-items:center;justify-content:center}
.menu-add-circle{width:52px;height:52px;border-radius:50%;border:2px solid var(--goldLt);display:flex;align-items:center;justify-content:center}
.add-icon-gold{font-size:1.4rem;color:var(--gold);line-height:1}
.add-icon-gold-sm{font-size:1.2rem;color:var(--gold);line-height:1}
.pin-on-box{background:rgba(143,166,138,.08);border:1px solid rgba(143,166,138,.2);border-radius:10px;padding:14px 16px;margin-bottom:10px}
.pin-off-box{background:var(--bg2);border:1px solid var(--bg3);border-radius:10px;padding:14px 16px;margin-bottom:10px}
.pin-status-text-on{font-family:var(--sans);font-size:.65rem;color:var(--sage);font-weight:600}
.pin-status-text-off{font-family:var(--sans);font-size:.65rem;color:var(--textLt);font-weight:500}
.profile-section-border{padding:0 28px 20px;border-top:1px solid var(--bg3);margin-top:4px;padding-top:20px}
.profile-actions{padding:0 28px;display:flex;flex-direction:column;gap:8px}
.profile-fields{padding:24px 28px;display:flex;flex-direction:column;gap:12px}
.progress-bar{padding:20px 28px;border-bottom:1px solid var(--bg3);display:flex;align-items:center;gap:16px}
.hero-deco-circle-blush{position:absolute;top:-100px;right:-100px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(242,224,224,.38),transparent 70%)}
.hero-deco-circle-sage{position:absolute;bottom:-80px;left:-80px;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(214,228,211,.38),transparent 70%)}
.hero-deco-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;border-radius:50%;border:1px solid rgba(232,217,181,.25);animation:gentlePulse 6s ease-in-out infinite}
.hero-subtitle{font-family:var(--sans);font-size:.7rem;letter-spacing:7px;color:var(--gold);margin-bottom:20px;text-transform:uppercase;font-weight:500}
.hero-desc{font-family:var(--sans);font-size:.9rem;color:var(--textMd);max-width:450px;margin:28px auto;line-height:1.9;font-weight:300}
.hero-buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.countdown-row{display:flex;justify-content:center;gap:20px;margin:36px 0 12px;flex-wrap:wrap}
.congrats-wrap{text-align:center;animation:congratsFadeIn .8s ease}
.congrats-emoji{font-size:2.8rem;margin-bottom:8px;animation:congratsPulse 2s ease-in-out infinite}
.congrats-heading{font-family:var(--serif);font-size:1.8rem;color:var(--text);font-weight:500;line-height:1.3}
.congrats-names{font-family:var(--serif);font-size:2rem;font-weight:600;font-style:italic;color:var(--blush);line-height:1.3;margin-top:2px}
.congrats-msg{font-family:var(--sans);font-size:.85rem;color:var(--textMd);font-weight:300;margin-top:12px;line-height:1.6}
.congrats-sub{font-family:var(--sans);font-size:.68rem;letter-spacing:2px;color:var(--textMd);font-weight:400;text-align:center;cursor:pointer;margin-bottom:36px}
@keyframes congratsFadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes congratsPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
.storage-warning-text{font-family:var(--sans);font-size:.68rem;color:var(--textMd);font-weight:300;line-height:1.7;margin:0}
.storage-warning-title{font-family:var(--sans);font-size:.75rem;color:var(--text);font-weight:600;letter-spacing:.5px}


/* ═══ Semi-dynamic & remaining patterns ═══ */
.text-venue-contact{font-family:var(--sans);font-size:.7rem;color:var(--textLt);font-weight:300;margin-top:2px}
.text-summary-label{font-family:var(--sans);font-size:.6rem;color:var(--text);letter-spacing:1px;font-weight:600}
.btn-delete-sm-abs{position:absolute;top:10px;right:10px}
.vendor-img-container{width:100%;height:180px;overflow:hidden;background:var(--bg2);position:relative}
.card-padding{padding:12px 14px}
.card-padding-lg{padding:14px 16px}
.picker-body{padding:20px 24px}
.picker-body-lg{padding:24px 28px}
.section-max-sm{max-width:700px;margin:0 auto}
.section-max-md{max-width:800px;margin:0 auto}
.section-max-lg{max-width:860px;margin:0 auto}
.section-max-xl{max-width:880px;margin:0 auto}
.section-max-xxl{max-width:900px;margin:0 auto}
.section-max-xxxl{max-width:1100px;margin:0 auto}
.footer{padding:44px 24px 24px;background:var(--white);border-top:1px solid var(--bg3);text-align:center}
.footer-brand{text-decoration:none;font-family:var(--serif);font-size:1.2rem;font-weight:500;color:var(--text);letter-spacing:2px;margin-bottom:10px;display:inline-block}
.footer-address{font-family:var(--sans);font-size:.7rem;color:var(--textLt);font-weight:300;margin-bottom:18px}
.footer-links{display:flex;justify-content:center;gap:24px;margin-bottom:20px}
.footer-divider{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px}
.footer-copy{font-family:var(--sans);font-size:.55rem;color:var(--textXl)}
.footer-privacy-btn{background:none;border:none;cursor:pointer;font-family:var(--sans);font-size:.55rem;letter-spacing:1.5px;color:var(--textLt);font-weight:500;margin-top:10px;text-decoration:underline;text-underline-offset:3px}
.privacy-body{padding:24px 28px 28px}
.privacy-divider{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:24px}
.catering-note{max-width:860px;margin:24px auto 0;text-align:center;padding:20px 28px;background:linear-gradient(135deg,rgba(198,169,108,.06),rgba(242,224,224,.06));border:1px solid var(--goldLt);border-radius:12px}
.nav-brand{text-decoration:none;font-family:var(--serif);font-size:1.35rem;font-weight:500;color:var(--text);letter-spacing:2px}
#seoFallback{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.profile-btn{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--bg3);padding:6px 14px 6px 8px;border-radius:20px;cursor:pointer;transition:all .3s}
.profile-avatar{width:26px;height:26px;border-radius:50%;background:var(--blushLt);border:1.5px solid var(--blush);display:flex;align-items:center;justify-content:center;font-size:.7rem}
.nav-close{position:absolute;top:28px;right:24px;background:none;border:none;cursor:pointer;font-size:1.4rem;color:var(--textMd);line-height:1;padding:6px;z-index:1}
.nav-divider{height:1px;background:var(--bg3);margin:12px 0}



/* ═══ Extracted from inline styles ═══ */

/* Stat display */
.stat-box{text-align:center}
.stat-value{font-family:var(--serif);font-size:2rem;font-weight:600}

/* Reorder arrows */
.reorder-col{display:flex;flex-direction:column;gap:1px}
.btn-reorder{background:var(--white);border:1px solid var(--bg3);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--textLt);transition:all .2s ease;line-height:1}
.btn-reorder:hover:not(:disabled){background:rgba(198,169,108,.08);border-color:var(--goldLt);color:var(--gold)}
.btn-reorder:active:not(:disabled){background:rgba(198,169,108,.15);transform:scale(.92)}
.btn-reorder:disabled{cursor:default}
.btn-reorder-up{width:22px;height:16px;border-radius:5px 5px 2px 2px;font-size:.5rem}
.btn-reorder-down{width:22px;height:16px;border-radius:2px 2px 5px 5px;font-size:.5rem}
.btn-reorder-up-lg{width:24px;height:18px;border-radius:6px 6px 2px 2px;font-size:.55rem}
.btn-reorder-down-lg{width:24px;height:18px;border-radius:2px 2px 6px 6px;font-size:.55rem}

/* Budget */
.budget-total-section{text-align:center;margin-bottom:44px}
.flex-center-gap6{display:flex;align-items:center;justify-content:center;gap:6px}
.budget-dollar{font-family:var(--serif);font-size:3rem;color:var(--gold);font-weight:600}
.budget-total-input{font-family:var(--serif);font-size:3rem;color:var(--text);font-weight:600;border:none;border-bottom:2px solid var(--goldLt);background:transparent;width:220px;max-width:60%;text-align:center;outline:none}
.budget-slider{width:100%;max-width:300px;margin-top:14px}
.budget-bar{height:12px;border-radius:6px;background:var(--bg3);overflow:hidden;display:flex;margin-bottom:8px}
.budget-status-row{display:flex;justify-content:space-between;margin-bottom:32px}
.budget-alloc-label{font-family:var(--sans);font-size:.7rem;color:var(--textLt);font-weight:500;letter-spacing:1px}
.budget-card{background:var(--white);border-radius:12px;border:1px solid var(--bg3);padding:0;box-shadow:0 2px 8px rgba(0,0,0,.02);position:relative;overflow:hidden}
.budget-card-accent{height:4px;width:100%;border-radius:12px 12px 0 0}
.budget-cat-header{padding:16px 20px 0;padding-right:40px}
.budget-cat-name{display:flex;align-items:center;gap:10px}
.budget-cat-emoji{font-size:1.5rem}
.budget-cat-input{font-family:var(--serif);font-size:1.05rem;color:var(--text);font-weight:500;border:none;background:transparent;outline:none;min-width:80px;flex:1}
.budget-amt{font-family:var(--serif);font-size:1.5rem;font-weight:600;padding:6px 20px 0;line-height:1.3}
.budget-slider-row{display:flex;align-items:center;gap:10px;padding:10px 20px 16px}
.budget-presets{display:flex;justify-content:center;gap:6px;margin-top:8px;flex-wrap:wrap}
.btn-delete-budget{position:absolute;top:14px;right:14px;background:var(--blushLt);border:1px solid rgba(212,160,160,.2);color:var(--blush);width:22px;height:22px;border-radius:6px;cursor:pointer;font-size:.5rem;display:flex;align-items:center;justify-content:center;z-index:1}

/* Grids */
.grid-auto-280{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.grid-auto-280-14{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.grid-auto-220{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 24px}
.vendor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}
.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px}

/* Guests */
.guest-total-wrap{text-align:center;margin:0 auto 20px}
.guest-total-box{display:inline-block;padding:18px 40px;background:linear-gradient(135deg,rgba(232,217,181,.15),rgba(214,228,211,.12));border:1.5px solid var(--goldLt);border-radius:12px;box-shadow:0 4px 16px rgba(198,169,108,.08)}
.guest-total-number{font-family:var(--serif);font-size:2.4rem;color:var(--text);font-weight:600;line-height:1}
.guest-total-sub{font-family:var(--sans);font-size:.6rem;color:var(--textLt);font-weight:300;margin-top:10px}
.guest-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:.85rem;font-weight:600;flex-shrink:0;border:2px solid}
.guest-name{font-family:var(--serif);font-size:.95rem;color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.guest-rsvp{font-family:var(--sans);font-size:.6rem;letter-spacing:1px;padding:5px 10px;border-radius:12px;font-weight:600;outline:none;cursor:pointer;text-transform:uppercase;border:1px solid}
.btn-plusone{font-family:var(--sans);font-size:.55rem;padding:5px 8px;border-radius:6px;cursor:pointer;font-weight:600;white-space:nowrap;border:1px solid}

/* Guest card (redesigned) */
.gs-card{background:var(--white);border-radius:12px;border:1px solid var(--bg3);padding:14px 16px;margin-bottom:8px;box-shadow:0 1px 4px rgba(0,0,0,.02);transition:border-color .2s}
.gs-card:hover{border-color:var(--goldLt)}
.gs-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gs-name-col{flex:1;min-width:100px}
.gs-card-meta{font-family:var(--sans);font-size:.65rem;color:var(--textLt);font-weight:400;margin-top:1px}
.gs-rsvp-select{font-family:var(--sans);font-size:.6rem;letter-spacing:1px;padding:5px 20px 5px 10px;border-radius:16px;font-weight:600;outline:none;cursor:pointer;text-transform:uppercase;border:1.5px solid;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 24 24' fill='%23A69B8F'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center;flex-shrink:0}
.gs-meal-select{font-family:var(--sans);font-size:.7rem;letter-spacing:.3px;padding:5px 26px 5px 10px;border-radius:8px;border:1.5px solid var(--goldLt);background:rgba(198,169,108,.04);color:var(--text);font-weight:500;outline:none;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='%23C6A96C'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;transition:all .2s;max-width:200px;flex-shrink:0}
.gs-meal-select:focus,.gs-meal-select:hover{border-color:var(--gold);background:rgba(198,169,108,.08)}
.gs-allergy-pill{font-size:.65rem;color:var(--blush);background:rgba(212,160,160,.08);border:1px solid rgba(212,160,160,.18);padding:4px 10px;border-radius:12px;white-space:nowrap;flex-shrink:0;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.gs-delete-btn{background:none;border:1.5px solid rgba(212,160,160,.25);color:var(--blush);width:26px;height:26px;border-radius:6px;cursor:pointer;font-size:.65rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;margin-left:auto}
.gs-delete-btn:hover{background:rgba(212,160,160,.08);border-color:var(--blush)}
.gs-row-plus{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(166,146,184,.2)}
.gs-plus-btn{font-family:var(--sans);font-size:.6rem;font-weight:600;padding:5px 9px;border-radius:6px;cursor:pointer;white-space:nowrap;border:1.5px solid var(--bg3);background:transparent;color:var(--textXl);transition:all .2s;letter-spacing:.5px;flex-shrink:0}
.gs-plus-btn.on{background:rgba(166,146,184,.08);border-color:rgba(166,146,184,.25);color:var(--lavender)}
.gs-plus-btn:hover{border-color:var(--lavender);color:var(--lavender)}
.gs-plus-name{font-size:.78rem;font-weight:500;color:var(--lavender)}
.gs-plus-meal-tag{font-size:.68rem;color:var(--textMd);background:rgba(198,169,108,.06);border:1px solid var(--goldLt);padding:3px 8px;border-radius:6px;white-space:nowrap}
.gs-plus-awaiting{font-size:.68rem;color:var(--textLt);font-style:italic}
.gs-sync-btn{font-family:var(--sans);font-size:.62rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;padding:8px 14px;border-radius:8px;cursor:pointer;white-space:nowrap;border:1.5px solid var(--sage);background:rgba(143,166,138,.08);color:var(--sage);transition:all .2s;display:flex;align-items:center;gap:6px}
.gs-sync-btn:hover{background:rgba(143,166,138,.15);border-color:#7a9575}
@media(max-width:600px){
  .gs-row{gap:6px}
  .gs-name-col{min-width:80px}
  .gs-meal-select{max-width:140px;font-size:.62rem}
  .gs-rsvp-select{font-size:.55rem;padding:4px 18px 4px 8px}
  .gs-allergy-pill{max-width:140px;font-size:.6rem}
}

/* Checklist */
.center-mb40{text-align:center;margin-bottom:40px}
.progress-ring-lg{position:relative;width:120px;height:120px;margin:0 auto 14px}
.progress-ring-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.progress-ring-pct{font-family:var(--serif);font-size:1.8rem;color:var(--gold);font-weight:600}

/* Timeline */
.tl-time-input{width:56px;font-family:var(--sans);font-size:.7rem;color:var(--text);font-weight:500;border:none;background:transparent;text-align:right;outline:none;padding:14px 0;flex-shrink:0}
.tl-event-input{flex:1;min-width:0;font-family:var(--serif);font-size:.9rem;color:var(--text);font-weight:500;border:none;background:transparent;outline:none}
.tl-event-icon{font-size:1.2rem;flex-shrink:0}
.badge-fixed{font-family:var(--sans);font-size:.45rem;letter-spacing:1px;padding:3px 8px;background:var(--lavLt);border-radius:8px;color:var(--lavender);font-weight:600;flex-shrink:0}
.tl-duration-box{text-align:center;margin-top:20px;padding:14px;background:linear-gradient(135deg,rgba(232,217,181,.15),rgba(242,224,224,.2));border-radius:10px}
.tl-duration-text{font-family:var(--sans);font-size:.6rem;color:var(--textLt);letter-spacing:1px;font-weight:500}
.tl-duration-time{color:var(--gold);font-weight:600}

/* Music */
.music-card{background:var(--white);border:1.5px solid;border-radius:12px;padding:20px;transition:all .3s;position:relative}
.music-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;transition:all .3s}
.music-label-input{font-family:var(--serif);font-size:.95rem;color:var(--text);font-weight:500;border:none;background:transparent;outline:none;width:100%;padding:0}
.music-complete-box{margin-top:20px;padding:20px;background:linear-gradient(135deg,rgba(143,166,138,.08),rgba(198,169,108,.08));border:1.5px solid rgba(143,166,138,.2);border-radius:12px;text-align:center}
.text-complete-sub{font-family:var(--sans);font-size:.68rem;color:var(--textLt);font-weight:300;margin-top:4px}
.restore-box{margin-top:16px;padding:16px 18px;background:var(--bg2);border:1px solid var(--bg3);border-radius:10px}
.restore-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--white);border:1px solid var(--bg3);border-radius:16px;cursor:pointer;transition:all .3s}

/* Floral */
.palette-row{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.palette-swatches{display:flex;gap:8px}
.palette-swatch{flex:1;text-align:center}
.palette-swatch-color{height:56px;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.08);margin-bottom:8px}
.palette-swatch-label{font-family:var(--sans);font-size:.5rem;color:var(--textLt);font-weight:500}

/* Vendors */
.vendor-slot-empty{padding:0;overflow:hidden;min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-style:dashed}
.menu-slot-empty{padding:0;overflow:hidden;min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-style:dashed}
.vendor-slot-emoji{font-size:1.8rem;margin-bottom:2px}
.vendor-img-circle{flex-shrink:0;width:96px;height:96px;border-radius:50%;overflow:hidden;background:var(--bg2);border:2px solid}
.picker-footer-text{font-family:var(--sans);font-size:.72rem;color:var(--textLt);font-weight:300;font-style:italic}
.picker-footer-text-sm{font-family:var(--sans);font-size:.62rem;color:var(--textLt);font-weight:300;font-style:italic}
.vendor-form-heading{font-family:var(--serif);font-size:1.1rem;color:var(--text);font-weight:500;margin-bottom:4px;text-align:center}
.vendor-form-subheading{font-family:var(--sans);font-size:.78rem;color:var(--textLt);font-weight:300;margin-bottom:20px;text-align:center}
.vendor-divider-row{display:flex;align-items:center;gap:16px;margin:28px 0 20px}
.vendor-divider-line{flex:1;height:1px;background:var(--bg3)}
.vendor-divider-text{font-family:var(--sans);font-size:.58rem;letter-spacing:3px;color:var(--textLt);font-weight:600}
.vendor-form-fields{display:flex;flex-direction:column;gap:16px}
.color-swatch-lg{width:32px;height:32px;border-radius:50%;margin:0 auto 6px;box-shadow:0 2px 6px rgba(0,0,0,.08);border:2px solid}

/* Emoji sizes */
.emoji-lg{font-size:2rem;margin-bottom:12px}
.emoji-md{font-size:1.4rem;margin-bottom:6px}

/* Empty state */
.empty-heading{font-family:var(--serif);font-size:1.3rem;color:var(--textMd);font-weight:500;margin-bottom:8px}
.empty-desc{font-family:var(--sans);font-size:.78rem;color:var(--textLt);font-weight:300;line-height:1.7}

/* Journal */
.journal-count{text-align:center;margin-top:8px;font-family:var(--sans);font-size:.62rem;color:var(--textLt);font-weight:300}

/* Profile progress */
.progress-ring-sm{position:relative;width:52px;height:52px;flex-shrink:0}
.progress-ring-pct-sm{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:.85rem;color:var(--gold);font-weight:600}

/* Countdown */
.countdown-edit-wrap{margin-bottom:36px;text-align:center}
.countdown-display-wrap{margin-bottom:36px;cursor:pointer}
.countdown-display-text{font-family:var(--sans);font-size:.68rem;letter-spacing:2px;color:var(--textMd);font-weight:400;display:inline-flex;flex-direction:column;align-items:center;gap:4px}
.countdown-edit-icon{font-size:1rem;color:var(--textMd);transition:opacity .3s}

/* ══════════════════════════════════════════════════════════════ */
/* PINNED MUSIC PLAYER                                            */
/* ══════════════════════════════════════════════════════════════ */
.mp-bar{position:fixed;bottom:0;left:0;right:0;z-index:2000;background:rgba(253,250,246,.96);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--goldLt);box-shadow:0 -4px 30px rgba(198,169,108,.1);transition:transform .4s cubic-bezier(.4,0,.2,1);padding-bottom:env(safe-area-inset-bottom,0)}
.mp-hidden{transform:translateY(100%)}
.mp-inner{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 28px;max-width:1400px;margin:0 auto}
.mp-art-wrap{width:60px;height:60px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--bg2);border:1.5px solid var(--bg3);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.mp-art-wrap img{width:100%;height:100%;object-fit:cover}
.mp-art-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;background:linear-gradient(135deg,var(--blushLt),var(--sageLt))}
.mp-info{min-width:0;flex:0 1 220px}
.mp-title{font-family:var(--serif);font-size:1rem;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-artist{font-family:var(--sans);font-size:.85rem;color:var(--textMd);font-weight:400;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.mp-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}
.mp-btn{background:none;border:none;color:var(--textMd);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;border-radius:50%;padding:4px}
.mp-btn:hover{color:var(--gold)}
.mp-btn-sm{width:34px;height:34px}
.mp-btn-play{width:48px;height:48px;background:var(--gold);color:var(--white);border-radius:50%;box-shadow:0 2px 10px rgba(198,169,108,.35)}
.mp-btn-play:hover{opacity:.9;color:var(--white);transform:scale(1.05)}
.mp-progress-wrap{flex:0 1 240px;min-width:80px;display:flex;flex-direction:column;gap:2px}
.mp-seek{width:100%;height:24px;accent-color:var(--gold);cursor:pointer;-webkit-appearance:none;appearance:none;background:transparent;margin:0}
.mp-seek::-webkit-slider-runnable-track{height:5px;background:var(--bg3);border-radius:3px}
.mp-seek::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--gold);border:2px solid var(--white);box-shadow:0 1px 4px rgba(0,0,0,.15);margin-top:-5.5px;cursor:pointer}
.mp-seek::-moz-range-track{height:5px;background:var(--bg3);border-radius:3px;border:none}
.mp-seek::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--gold);border:2px solid var(--white);box-shadow:0 1px 4px rgba(0,0,0,.15);cursor:pointer}
.mp-times{display:flex;justify-content:space-between;font-family:var(--sans);font-size:.6rem;color:var(--textMd);font-weight:400;letter-spacing:.5px}
.mp-vol-wrap{position:relative;flex-shrink:0}
.mp-btn-vol.active{color:var(--gold)}
.mp-vol-popup{display:none;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);background:rgba(253,250,246,.98);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1.5px solid var(--goldLt);border-radius:14px;padding:14px 16px 10px;box-shadow:0 -4px 24px rgba(0,0,0,.1);flex-direction:column;align-items:center;gap:10px;z-index:10}
.mp-vol-popup.open{display:flex}
.mp-vol-popup::after{content:'';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:10px;height:10px;background:rgba(253,250,246,.98);border-right:1.5px solid var(--goldLt);border-bottom:1.5px solid var(--goldLt)}
.mp-vol-label{font-family:var(--sans);font-size:.6rem;font-weight:600;color:var(--gold);letter-spacing:.5px;min-width:28px;text-align:center}
.mp-vol-track{position:relative;width:28px;height:120px;cursor:pointer;display:flex;justify-content:center;-webkit-user-select:none;user-select:none;touch-action:none}
.mp-vol-track::before{content:'';position:absolute;left:50%;transform:translateX(-50%);width:5px;height:100%;background:var(--bg3);border-radius:3px}
.mp-vol-fill{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:5px;background:linear-gradient(to top,var(--gold),var(--goldLt));border-radius:3px;transition:height .05s linear}
.mp-vol-thumb{position:absolute;left:50%;transform:translate(-50%,50%);width:18px;height:18px;border-radius:50%;background:var(--white);border:2.5px solid var(--gold);box-shadow:0 1px 6px rgba(0,0,0,.18);cursor:grab;transition:bottom .05s linear,transform .15s ease}
.mp-vol-thumb:hover{transform:translate(-50%,50%) scale(1.15)}
.mp-vol-thumb:active{cursor:grabbing;transform:translate(-50%,50%) scale(1.1)}
.mp-vol-mute-btn{background:none;border:none;cursor:pointer;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--textLt);transition:all .2s}
.mp-vol-mute-btn:hover{color:var(--gold);background:rgba(198,169,108,.08)}
.mp-vol-mute-btn.muted{color:var(--blush)}
.mp-btn-list{width:36px;height:36px}
.mp-btn-list.active{color:var(--gold)}
.mp-btn-close-player{width:36px;height:36px;color:var(--textMd);opacity:.8;transition:all .2s}
.mp-btn-close-player:hover{opacity:1;color:var(--blush)}
.mp-btn-close-player svg{width:18px;height:18px}
.mp-pv-tag{display:inline-block;font-family:var(--sans);font-size:.48rem;letter-spacing:1px;text-transform:uppercase;color:var(--gold);background:rgba(198,169,108,.1);border:1px solid rgba(198,169,108,.25);padding:1px 6px;border-radius:4px;font-weight:600;vertical-align:middle;margin-left:4px;white-space:nowrap}

/* Playlist panel */
.mp-playlist{position:absolute;bottom:100%;left:0;right:0;background:rgba(253,250,246,.98);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--bg3);box-shadow:0 -8px 40px rgba(0,0,0,.08);max-height:420px;display:flex;flex-direction:column}
.mp-playlist-header{display:flex;justify-content:space-between;align-items:center;padding:16px 28px 12px;border-bottom:1px solid var(--bg3)}
.mp-playlist-title{font-family:var(--sans);font-size:.65rem;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600}
.mp-playlist-scroll{overflow-y:auto;flex:1;padding:8px 12px}
.mp-track{display:flex;align-items:center;gap:14px;padding:12px 16px;cursor:pointer;transition:all .2s;border-bottom:none;border-radius:10px;margin-bottom:4px}
.mp-track:hover{background:rgba(198,169,108,.07)}
.mp-track.active{background:rgba(198,169,108,.12);box-shadow:0 2px 8px rgba(198,169,108,.08)}
.mp-track-num{font-family:var(--sans);font-size:.65rem;color:var(--textLt);font-weight:500;width:22px;text-align:center;flex-shrink:0}
.mp-track.active .mp-track-num{color:var(--gold)}
.mp-track-art{width:48px;height:48px;border-radius:8px;overflow:hidden;flex-shrink:0;background:var(--bg2);border:1.5px solid var(--bg3);box-shadow:0 2px 6px rgba(0,0,0,.05)}
.mp-track-art img{width:100%;height:100%;object-fit:cover}
.mp-track-info{min-width:0;flex:1}
.mp-track-name{font-family:var(--serif);font-size:.88rem;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}
.mp-track.active .mp-track-name{color:var(--gold)}
.mp-track-artist{font-family:var(--sans);font-size:.75rem;color:var(--textMd);font-weight:400;letter-spacing:.2px}
.mp-eq{display:none;align-items:flex-end;gap:2px;height:12px;flex-shrink:0}
.mp-track.active .mp-eq{display:flex}
.mp-track.active .mp-track-num-text{display:none}
.mp-eq span{width:3px;background:var(--gold);border-radius:1px;animation:mpEq .8s ease-in-out infinite alternate}
.mp-eq span:nth-child(1){height:4px;animation-delay:0s}
.mp-eq span:nth-child(2){height:8px;animation-delay:.2s}
.mp-eq span:nth-child(3){height:5px;animation-delay:.4s}
@keyframes mpEq{0%{height:3px}100%{height:12px}}

/* Nav drawer music player toggle */
.mp-nav-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:8px;background:rgba(198,169,108,.04)}
.mp-nav-toggle-label{font-family:var(--sans);font-size:.72rem;letter-spacing:1.5px;color:var(--textMd);font-weight:500}
.mp-toggle-switch{position:relative;width:46px;height:26px;border-radius:13px;border:none;background:#D4A0A0;cursor:pointer;padding:0;transition:background .3s ease;flex-shrink:0}
.mp-toggle-switch.on{background:#8FA68A}
.mp-toggle-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--white);box-shadow:0 1px 4px rgba(0,0,0,.18);transition:transform .3s ease}
.mp-toggle-switch.on .mp-toggle-knob{transform:translateX(20px)}

/* Add bottom padding to body/footer so content isn't hidden behind the player */
body.mp-active{padding-bottom:90px}

/* Large screens: two-column playlist */
@media(min-width:769px){
  .mp-playlist{max-height:460px}
  .mp-playlist-scroll{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:12px 20px}
  .mp-track{margin-bottom:0}
  .mp-track-art{width:52px;height:52px}
  .mp-track-name{font-size:.92rem}
  .mp-track-artist{font-size:.78rem}
  .mp-track-num{font-size:.7rem;width:24px}
  .mp-track{gap:14px;padding:14px 16px}
}

/* Extra-large screens */
@media(min-width:1200px){
  .mp-playlist-scroll{padding:14px 32px;gap:6px 20px}
  .mp-track-art{width:56px;height:56px;border-radius:10px}
  .mp-track-name{font-size:.95rem}
  .mp-track-artist{font-size:.8rem}
  .mp-track{gap:16px;padding:14px 18px;border-radius:12px}
}

/* ── Responsive ── */
@media(max-width:768px){
  .mp-inner{gap:12px;padding:10px 16px}
  .mp-art-wrap{width:48px;height:48px;border-radius:8px}
  .mp-info{flex:0 1 140px}
  .mp-title{font-size:.85rem}
  .mp-artist{font-size:.75rem}
  .mp-btn-sm{width:30px;height:30px}
  .mp-vol-wrap{display:block}
  .mp-vol-popup{bottom:calc(100% + 10px)}
  .mp-btn-play{width:42px;height:42px}
  .mp-btn-play svg{width:18px;height:18px}
  .mp-progress-wrap{min-width:60px}
  .mp-playlist{max-height:300px}
  .mp-playlist-scroll{display:block;padding:6px 8px}
  .mp-track-art{width:42px;height:42px}
  .mp-track-name{font-size:.8rem}
  .mp-track-artist{font-size:.68rem}
  .mp-track{padding:10px 14px;gap:12px}
}
@media(max-width:520px){
  .mp-inner{gap:10px;padding:10px 14px;flex-wrap:wrap}
  .mp-art-wrap{width:42px;height:42px;border-radius:7px}
  .mp-info{flex:0 1 100px}
  .mp-title{font-size:.78rem}
  .mp-artist{font-size:.68rem}
  .mp-controls{gap:6px}
  .mp-btn-sm{width:28px;height:28px}
  .mp-btn-sm svg{width:15px;height:15px}
  .mp-btn-play{width:38px;height:38px}
  .mp-btn-play svg{width:17px;height:17px}
  .mp-progress-wrap{order:10;flex:1 0 100%;margin-top:-2px}
  .mp-btn-list{display:none}
  .mp-playlist{max-height:260px}
}

/* ═══ Extracted inline styles ═══ */

/* ── Utilities ── */
.f1{flex:1}
.f1-min0{flex:1;min-width:0}
.ta-l{text-align:left}
.ta-c{text-align:center}
.pos-rel{position:relative}
.op-3{opacity:.3}
.resize-v{resize:vertical}
.rotate-neg90{transform:rotate(-90deg)}
.mb-28{margin-bottom:28px}
.mt-14{margin-top:14px}
.mt-12{margin-top:12px}
.mt-20{margin-top:20px}
.fshrink-0{flex-shrink:0}
.fw-500{font-weight:500}

/* ── Flex layouts ── */
.flex-col-20{display:flex;flex-direction:column;gap:20px}
.flex-col-8{display:flex;flex-direction:column;gap:8px}
.flex-gap6{display:flex;gap:6px}
.flex-gap5{display:flex;gap:5px}
.flex-wrap-gap8{display:flex;gap:8px;flex-wrap:wrap}
.flex-wrap-gap6{display:flex;gap:6px;flex-wrap:wrap}
.flex-wrap-gap7-mt8{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.flex-wrap-gap7-mt7{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}
.flex-wrap-gap10{display:flex;gap:10px;flex-wrap:wrap}
.flex-ai-gap8{display:flex;align-items:center;gap:8px}
.flex-ai-gap10{display:flex;align-items:center;gap:10px}
.flex-ai-gap10-mb14{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.flex-ai-gap10-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.flex-ai-gap8-mb12{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.flex-ai-gap8-mb8{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.flex-as-gap12{display:flex;align-items:flex-start;gap:12px}
.flex-jc-gap36-wrap{display:flex;justify-content:center;gap:36px;margin-bottom:36px;flex-wrap:wrap}
.flex-jc-gap4-wrap{display:flex;justify-content:center;gap:4px;margin-bottom:40px;flex-wrap:wrap}
.flex-jsb-as-gap12-mb12{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.flex-gap6-fshrink0{display:flex;gap:6px;flex-shrink:0}
.flex-gap8-jfe-mt16{display:flex;gap:8px;margin-top:16px;justify-content:flex-end}
.flex-inline-gap6{display:inline-flex;align-items:center;gap:6px}
.flex-wrap-gap8-pl46{display:flex;gap:8px;flex-wrap:wrap;padding-left:46px}
.flex-wrap-gap6-mb16{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.flex-wrap-gap8-mb20{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
.flex-col-gap10-stretch{flex-direction:column;align-items:stretch;gap:10px}

/* ── Grids ── */
.grid-200{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;align-items:stretch}
.grid-280-28{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px}
.grid-280-10{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.grid-140-10{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.grid-1col-14{display:grid;grid-template-columns:1fr;gap:14px}
.grid-2col-16{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* ── Picker / Panel headers ── */
.picker-header{padding:20px 24px;border-bottom:1px solid var(--bg3);display:flex;align-items:center;justify-content:space-between}
.picker-header-lg{padding:22px 28px;border-bottom:1px solid var(--bg3);display:flex;align-items:center;justify-content:space-between}
.picker-footer{padding:14px 24px;border-top:1px solid var(--bg3);text-align:center}
.picker-footer-lg{padding:16px 28px;border-top:1px solid var(--bg3);text-align:center}

/* ── Card content ── */
.card-content-col{padding:14px 14px 18px;flex:1;display:flex;flex-direction:column}
.card-cursor{cursor:pointer;padding:0;overflow:hidden;text-align:left;position:relative}
.card-cursor-rel{cursor:pointer;text-align:left;position:relative}
.card-cursor-pad{cursor:pointer;position:relative;padding:18px}

/* ── Image containers ── */
.img-cover-abs{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.img-contain{max-width:85%;max-height:85%;object-fit:contain;display:block}
.img-full{width:100%;height:100%;object-fit:cover;display:block}
.img-slot{width:100%;height:160px;overflow:hidden;background:var(--bg2);position:relative;flex-shrink:0}
.vendor-img-slot{width:100%;height:180px;overflow:hidden;background:var(--bg2);position:relative;display:flex;align-items:center;justify-content:center;padding:16px}
.vendor-empty-bg-gold{width:100%;height:180px;background:linear-gradient(135deg,rgba(198,169,108,.12),rgba(212,160,160,.1));display:flex;align-items:center;justify-content:center}
.vendor-empty-bg-lav{width:100%;height:180px;background:linear-gradient(135deg,rgba(166,146,184,.1),rgba(232,217,181,.15));display:flex;align-items:center;justify-content:center}

/* ── Buttons ── */
.btn-gold-add{background:var(--gold);color:var(--white);border:none;padding:11px 20px;font-family:var(--sans);font-size:.68rem;letter-spacing:2px;border-radius:6px;cursor:pointer;font-weight:500}
.btn-gold-sm{background:var(--gold);color:var(--white);border:none;padding:6px 14px;border-radius:6px;font-family:var(--sans);font-size:.55rem;letter-spacing:1px;font-weight:500;cursor:pointer;margin-top:14px}
.btn-gold-nav{padding:8px 18px;background:var(--gold);color:var(--white);border:none;border-radius:6px;cursor:pointer;font-family:var(--sans);font-size:.6rem;letter-spacing:1.5px;font-weight:500;white-space:nowrap;box-shadow:0 2px 8px rgba(198,169,108,.2)}

/* ── Form inputs ── */
.input-guest{flex:1;background:var(--white);border:1.5px solid var(--bg3);padding:11px 14px;font-family:var(--sans);font-size:.8rem;color:var(--text);outline:none;border-radius:6px}
.input-guest-select{background:var(--white);border:1.5px solid var(--bg3);padding:11px 14px;font-family:var(--sans);font-size:.8rem;color:var(--text);outline:none;border-radius:6px;min-width:100px}
.select-meal{background:var(--bg2);border:1px solid var(--bg3);color:var(--textMd);font-family:var(--sans);font-size:.68rem;padding:5px 10px;border-radius:6px;outline:none;cursor:pointer}
.select-meal-styled{font-family:var(--sans);font-size:.7rem;letter-spacing:.5px;padding:7px 28px 7px 12px;border-radius:8px;border:1.5px solid var(--goldLt);background:rgba(198,169,108,.04);color:var(--text);font-weight:500;outline:none;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='%23C6A96C'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;transition:all .2s}
.select-meal-styled:focus{border-color:var(--gold);background:rgba(198,169,108,.08)}
.select-meal-styled:hover{border-color:var(--gold)}

/* ── Text styles ── */
.text-desc-lt-clamp{font-family:var(--sans);font-size:.75rem;color:var(--textLt);font-weight:300;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.text-desc-lt{font-family:var(--sans);font-size:.75rem;color:var(--textLt);font-weight:300;line-height:1.6}
.text-desc-lt-15{font-family:var(--sans);font-size:.75rem;color:var(--textLt);font-weight:300;line-height:1.5;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.text-sans-lt-85{font-family:var(--sans);font-size:.85rem;color:var(--textLt);font-weight:300;margin-bottom:6px}
.text-serif-heading-16{font-family:var(--serif);font-size:1.6rem;color:var(--text);font-weight:500;margin-bottom:18px}
.text-serif-heading-135{font-family:var(--serif);font-size:1.35rem;color:var(--text);font-weight:500}
.text-sans-lt-76{font-family:var(--sans);font-size:.76rem;color:var(--textMd);font-weight:300;line-height:1.7;margin:0}
.text-sans-lt-60{font-family:var(--sans);font-size:.6rem;color:var(--textLt);font-weight:300;letter-spacing:1px}
.text-sans-sage-78{font-family:var(--sans);font-size:.78rem;color:var(--sage);font-weight:600}
.text-sans-text-78{font-family:var(--sans);font-size:.78rem;color:var(--text);font-weight:500}
.text-italic-quote{font-family:var(--serif);font-size:1.05rem;font-style:italic;color:var(--textMd);font-weight:400;margin-bottom:10px}
.text-md-500{color:var(--textMd);font-weight:500}
.text-gold{color:var(--gold)}
.text-sage-11{color:var(--sage);font-size:1.1rem}
.text-blush-err{font-family:var(--sans);font-size:.6rem;color:var(--blush);min-height:16px}
.text-pct-rt{font-family:var(--sans);font-size:.75rem;color:var(--textLt);min-width:36px;text-align:right;font-weight:600}
.text-sans-sage-60{font-family:var(--sans);font-size:.6rem;color:var(--sage);font-weight:600}
.text-sans-md-60{font-family:var(--sans);font-size:.6rem;color:var(--textMd);font-weight:400}
.lbl-pv{font-size:.7rem;letter-spacing:3px;margin-bottom:18px}
.lbl-custom-badge{font-size:.58rem;letter-spacing:1.5px;padding:3px 10px;border-radius:8px;background:var(--lavLt);color:var(--lavender)}
.lbl-byline{font-size:.58rem;margin-top:6px;font-weight:500}
.lbl-select-hint{font-size:.48rem;letter-spacing:1px;margin-top:2px;font-weight:500}

/* ── Vendor social pill ── */
.pill-social{font-family:var(--sans);font-size:.7rem;letter-spacing:.5px;padding:4px 11px;border-radius:10px;background:rgba(198,169,108,.08);color:var(--gold);cursor:pointer;transition:background .2s}
.pill-social:hover{background:rgba(198,169,108,.18)}

/* ── Countdown ── */
.countdown-edit-box{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;background:rgba(255,255,255,.7);padding:14px 20px;border-radius:12px;border:1.5px solid var(--goldLt);box-shadow:0 4px 20px rgba(198,169,108,.1)}
.countdown-edit-field{font-family:var(--sans);font-size:.75rem;color:var(--text);border:1px solid var(--bg3);padding:6px 10px;border-radius:6px;outline:none;background:var(--white);width:100%;max-width:180px}

/* ── Linen preview ── */
.linen-plate{width:140px;height:140px;border-radius:50%;margin:0 auto;position:relative;box-shadow:0 5px 20px rgba(0,0,0,.1),0 2px 5px rgba(0,0,0,.06)}
.linen-rim-gold{position:absolute;inset:0;border-radius:50%;border:2px solid #C6A96C;box-shadow:inset 0 0 0 1px rgba(198,169,108,.3)}
.linen-rim-surface{position:absolute;inset:3px;border-radius:50%;background:linear-gradient(145deg,#FEFEFE,#F5F0EA);border:1px solid #E8E0D4}
.linen-rim-ridge{position:absolute;inset:14px;border-radius:50%;border:1px solid #E0D8CC;box-shadow:inset 0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(255,255,255,.8)}
.linen-well{position:absolute;inset:17px;border-radius:50%;background:linear-gradient(160deg,#FFFFFF,#FAF8F4);box-shadow:inset 0 2px 6px rgba(0,0,0,.04)}
.linen-well-ring{position:absolute;inset:24px;border-radius:50%;border:1px solid rgba(198,169,108,.15)}
.linen-shine{position:absolute;top:28%;left:25%;width:40%;height:20%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent);transform:rotate(-15deg)}
.linen-sw-area{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:250px;height:160px;pointer-events:none}
.linen-sw-fork{position:absolute;left:8px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;opacity:.35}
.linen-sw-knife{position:absolute;right:22px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;opacity:.35}
.linen-sw-spoon{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;opacity:.28}
.linen-sw-handle{width:5px;height:52px;background:linear-gradient(to right,#C0B8AD,#A69B8F,#B8AFA4);border-radius:2px}
.linen-sw-handle-50{width:5px;height:50px;background:linear-gradient(to right,#C0B8AD,#A69B8F,#B8AFA4);border-radius:2px}
.linen-sw-handle-4{width:4px;height:50px;background:linear-gradient(to right,#C0B8AD,#A69B8F,#B8AFA4);border-radius:2px}
.linen-knife-blade{width:10px;height:24px;background:linear-gradient(to right,#D0C8BC,#C0B8AD);border-radius:2px 2px 0 0;border-right:1.5px solid #D8D0C4;position:relative}
.linen-knife-edge{position:absolute;right:0;top:0;bottom:4px;width:1.5px;background:linear-gradient(to bottom,#E0D8CC,#C0B8AD)}
.linen-spoon-bowl{width:12px;height:18px;background:linear-gradient(to bottom,#D0C8BC,#C0B8AD);border-radius:50%;box-shadow:inset 0 2px 4px rgba(0,0,0,.06)}
.linen-spoon-base{width:7px;height:11px;background:linear-gradient(to bottom,#A69B8F,#B8AFA4);border-radius:0 0 4px 4px}
.linen-fork-neck{width:8px;height:8px;background:linear-gradient(to bottom,#B8AFA4,#A69B8F);border-radius:0 0 3px 3px}
.linen-fork-tines{display:flex;gap:1.5px;margin-bottom:1px}
.linen-summary{position:relative;z-index:1;margin-top:24px;text-align:center;width:100%}
.linen-center{position:relative;z-index:1;text-align:center}

/* ── Music ── */
.music-moment-card{background:var(--white);border:1.5px solid var(--gold);border-radius:14px;padding:24px;margin-bottom:16px;box-shadow:0 4px 20px rgba(198,169,108,.1)}
.music-moment-card-empty{background:var(--white);border:1.5px solid var(--bg3);border-radius:14px;padding:24px;margin-bottom:16px;transition:all .3s}

/* ── Checklist ── */
.ck-section-border{margin-top:10px;padding-top:8px;border-top:1px solid var(--bg3)}

/* ── Profile ── */
.profile-dot-sage{width:8px;height:8px;border-radius:50%;background:var(--sage)}
.profile-dot-muted{width:8px;height:8px;border-radius:50%;background:var(--textXl)}
.profile-stat-icon{font-size:1.1rem}
.profile-mb-32{text-align:center;margin-bottom:32px}

/* ── Positioning ── */
.reorder-pos{position:absolute;top:12px;right:36px}
.reorder-pos-music{position:absolute;top:10px;right:38px}

/* ── Dynamic-split classes (static portion extracted) ── */
.linen-cloth-area{background:var(--lp-cl);border:2px solid var(--lp-cb);border-radius:16px;padding:40px 30px;position:relative;box-shadow:0 8px 32px rgba(0,0,0,.06);min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.linen-napkin{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:38px;background:var(--lp-nk);border:1px solid var(--lp-nb);border-radius:3px;box-shadow:0 3px 10px rgba(0,0,0,.1);z-index:1}
.linen-cloth-pattern{position:absolute;inset:0;opacity:.04;background:repeating-linear-gradient(45deg,transparent,transparent 10px,var(--lp-cb) 10px,var(--lp-cb) 11px)}
.lp-cl-swatch{background:var(--lp-cl);border:2px solid var(--lp-cb)}
.lp-nk-swatch{background:var(--lp-nk);border:2px solid var(--lp-nb)}
.linen-swatch-input{width:28px;height:28px;border-radius:6px;border:2px solid;flex-shrink:0;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.linen-summary-bar{display:inline-flex;gap:12px;align-items:center;padding:14px 24px;border-radius:14px;box-shadow:0 2px 12px rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.06)}
.vendor-tag-badge{font-family:var(--sans);font-size:.48rem;letter-spacing:1.5px;padding:2px 8px;border-radius:8px;font-weight:600;display:inline-block}
.menu-picker-card{padding:0;overflow:hidden;text-align:left;display:flex;flex-direction:column}
.floral-bloom-icon{width:48px;height:48px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}
.floral-bloom-row{display:flex;align-items:center;gap:12px;padding:12px 0}
.vendor-catering-status{margin-top:18px;padding:16px 20px;border-radius:10px;border:1.5px solid}
.vendor-custom-form{background:var(--bg);border:1.5px solid;border-radius:12px;padding:28px}
.tl-row{display:flex;gap:16px;align-items:flex-start}
.tl-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;margin-top:18px;border:3px solid var(--goldLt)}
.tl-card{flex:1;min-width:0;background:var(--white);border:1px solid;border-radius:10px;padding:14px 16px;display:flex;align-items:center;gap:12px}
.ck-month-card{background:var(--white);border-radius:12px;border:1.5px solid;padding:20px;margin-bottom:14px}
.dot-indicator{width:8px;height:8px;border-radius:50%}
.color-pick-btn{padding:12px 8px;border-radius:8px;border:1.5px solid;cursor:pointer;text-align:center;transition:all .3s}
.color-pick-label{font-family:var(--sans);font-size:.6rem}
.input-hex{flex:1;font-family:var(--sans);font-size:.7rem;color:var(--text);border:1.5px solid;padding:8px 10px;border-radius:6px;outline:none;background:var(--white);letter-spacing:1px}
.ck-item-text{font-family:var(--sans);font-size:.76rem}
