:root{--cream:#f4efe1;--beige:#ece2c8;--beige2:#e3d3a8;--warm-brown:#c72856;--dark-brown:#16130f;--text-primary:#16130f;--text-secondary:#514a3f;--text-muted:#7a7264;--accent-sage:#2f8f6b;--accent-gold:#f0ad1f;--surface:#f4efe1;--border:#16130f;--border-light:rgba(22,19,15,.18);--card-bg:#fffdf6;--shadow-md:rgba(22,19,15,.28);--transition:0.4s cubic-bezier(.25,.46,.45,.94);--nu-raised:7px 7px 0 var(--dark-brown);--nu-pressed:2px 2px 0 var(--dark-brown);--nu-soft:5px 5px 0 var(--dark-brown)}
[data-theme=dark]{--cream:#141110;--beige:#1c1815;--beige2:#251f19;--warm-brown:#ff5f96;--text-primary:#f4efe1;--text-secondary:#c4bbab;--text-muted:#8f8576;--surface:#141110;--border:#f4efe1;--border-light:rgba(244,239,225,.2);--card-bg:#1c1815;--nu-raised:7px 7px 0 rgba(0,0,0,.9);--nu-pressed:2px 2px 0 rgba(0,0,0,.9);--nu-soft:5px 5px 0 rgba(0,0,0,.9)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Space Grotesk",sans-serif;background:var(--cream);color:var(--text-primary);transition:background var(--transition),color var(--transition)}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button{border:none;background:0 0;cursor:pointer;font-family:inherit}
.container{max-width:1200px;margin:0 auto;padding:0 2rem}
.section-label{display:inline-block;font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--warm-brown);font-weight:700;border-bottom:2px solid var(--warm-brown);padding-bottom:.2rem;margin-bottom:.9rem}
.section-title{font-family:Fraunces,serif;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:600;letter-spacing:-.01em;color:var(--text-primary);line-height:1.15}
.section-subtitle{font-size:.98rem;color:var(--text-secondary);line-height:1.7;margin-top:.7rem}

/* nav */
nav#navbar{position:sticky;top:0;z-index:500;background:var(--cream);border-bottom:2.5px solid var(--border)}
.nav-inner{max-width:1280px;margin:0 auto;padding:.9rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.nav-logo{display:flex;align-items:center;gap:.6rem;cursor:pointer}
.nav-logo-img{width:34px;height:34px;border-radius:50%;object-fit:cover}
.nav-logo-text{font-family:Fraunces,serif;font-weight:700;font-size:1.15rem}
.nav-links{display:flex;align-items:center;gap:1.6rem;font-size:.86rem;font-weight:500}
.nav-links a:hover{color:var(--warm-brown)}
.nav-links a.active{color:var(--warm-brown)}
.nav-actions{display:flex;align-items:center;gap:.7rem}
.theme-toggle{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border);background:var(--card-bg)}
.menu-toggle{display:none;flex-direction:column;gap:5px;padding:11px}
.menu-toggle span{width:22px;height:1.5px;background:var(--text-primary);display:block;transition:all .3s ease}
.mobile-menu{display:none;position:fixed;top:68px;left:0;right:0;background:var(--cream);backdrop-filter:blur(18px);border-bottom:1px solid var(--border);padding:1.5rem 2rem;z-index:899}
.mobile-menu.open{display:block}
.mobile-menu a{display:block;padding:.75rem 0;border-bottom:1px solid var(--border-light);font-size:.9rem;font-weight:500;color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase}
@media (max-width:780px){.nav-links{display:none}.menu-toggle{display:flex}}

/* hero */
.inv-hero{padding:4rem 0 2.5rem;background:var(--beige);border-bottom:2px solid var(--border)}
.inv-hero-feats{display:flex;gap:1.6rem;flex-wrap:wrap;margin-top:1rem}
.inv-hero-feat{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--text-secondary)}
.inv-hero-feat i{color:var(--warm-brown)}

/* steps */
.inv-wrap{padding:3rem 0 6rem}
.inv-steps{display:flex;gap:.6rem;margin-bottom:2.2rem;flex-wrap:wrap}
.inv-step-pill{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1.5px solid var(--border);border-radius:50px;font-size:.76rem;font-weight:700;color:var(--text-muted);background:var(--card-bg)}
.inv-step-pill.active{color:#fff;background:var(--warm-brown);border-color:var(--border)}
.inv-step-pill i{font-size:.7rem}

.inv-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.2rem;align-items:start}
@media (max-width:980px){.inv-grid{grid-template-columns:1fr}}

.inv-card{background:var(--card-bg);border:2px solid var(--border);border-radius:3px;box-shadow:var(--nu-soft);padding:1.8rem}
.inv-card+.inv-card{margin-top:1.5rem}
.inv-card-title{font-family:Fraunces,serif;font-size:1.2rem;font-weight:600;margin-bottom:1.2rem;display:flex;align-items:center;gap:.5rem}

/* template picker */
.inv-tpl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
@media (max-width:560px){.inv-tpl-grid{grid-template-columns:repeat(2,1fr)}}
.inv-tpl-card{border:2px solid var(--border);border-radius:4px;overflow:hidden;cursor:pointer;box-shadow:var(--nu-soft);transition:transform .15s ease,box-shadow .15s ease;position:relative}
.inv-tpl-card:hover{transform:translate(-2px,-2px);box-shadow:var(--nu-raised)}
.inv-tpl-card.selected{outline:3px solid var(--warm-brown);outline-offset:1px}
.inv-tpl-card.selected::after{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:6px;right:6px;width:22px;height:22px;background:var(--warm-brown);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.68rem;z-index:5}
.inv-tpl-thumb{aspect-ratio:3/4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:.5rem;position:relative;overflow:hidden}
.inv-tpl-thumb .tt{font-size:.6rem;letter-spacing:.06em;position:relative;z-index:2}
.inv-tpl-thumb .tn{font-size:.86rem;font-weight:700;position:relative;z-index:2}
.inv-tpl-name{font-size:.68rem;font-weight:700;text-align:center;padding:.4rem;background:var(--surface);border-top:1.5px solid var(--border)}

/* form */
.form-group{margin-bottom:1.05rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:560px){.form-row{grid-template-columns:1fr}}
.form-label{display:block;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.35rem;font-weight:600}
.form-label .req{color:var(--warm-brown)}
.form-input,.form-select,.form-textarea{width:100%;padding:.7rem .9rem;border:1.5px solid var(--border);border-radius:3px;background:var(--surface);color:var(--text-primary);font-size:.86rem;outline:0;font-family:inherit;transition:border-color .25s}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--warm-brown)}
.form-textarea{min-height:70px;resize:vertical}
.form-hint{font-size:.72rem;color:var(--text-muted);margin-top:.3rem}

.btn-primary{padding:.85rem 1.8rem;background:var(--warm-brown);color:#fff;border:2px solid var(--border);border-radius:2px;font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:var(--nu-soft);transition:transform .15s ease,box-shadow .15s ease;width:100%}
.btn-primary:hover{transform:translate(-2px,-2px);box-shadow:var(--nu-raised)}
.btn-primary:active{transform:translate(1px,1px);box-shadow:var(--nu-pressed)}
.btn-outline{padding:.7rem 1.3rem;background:var(--surface);border:1.5px solid var(--border);color:var(--text-primary);border-radius:2px;font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:100%;transition:all .15s ease}
.btn-outline:hover{color:var(--warm-brown);transform:translate(-2px,-2px);box-shadow:var(--nu-soft)}
.btn-outline.small{width:auto;padding:.5rem .9rem;font-size:.68rem}
.inv-actions{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1.2rem}
@media (max-width:420px){.inv-actions{grid-template-columns:1fr}}

/* ===== Options panel (step 2.5) ===== */
.inv-opt-row{display:flex;flex-wrap:wrap;gap:.8rem;align-items:flex-start;margin-bottom:1.1rem}
.inv-opt-block{flex:1;min-width:150px}
.swatch-group{display:flex;gap:.5rem;flex-wrap:wrap}
.swatch{width:30px;height:30px;border-radius:50%;border:2px solid var(--border);cursor:pointer;position:relative;flex-shrink:0;transition:transform .15s ease}
.swatch:hover{transform:scale(1.1)}
.swatch.selected{outline:2.5px solid var(--warm-brown);outline-offset:2px}
.toggle-row{display:flex;align-items:center;gap:.6rem;font-size:.82rem;font-weight:600;color:var(--text-secondary);cursor:pointer;user-select:none}
.toggle-switch{width:38px;height:21px;border-radius:20px;background:var(--border-light);position:relative;transition:background .2s ease;flex-shrink:0}
.toggle-switch::after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s ease}
.toggle-switch.on{background:var(--warm-brown)}
.toggle-switch.on::after{transform:translateX(17px)}
.photo-upload-row{display:flex;align-items:center;gap:.8rem}
.photo-preview{width:52px;height:52px;border-radius:50%;border:2px solid var(--border);object-fit:cover;background:var(--surface);flex-shrink:0}
.photo-preview.empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1rem}
.font-select-row{display:flex;gap:.5rem;flex-wrap:wrap}
.font-chip{padding:.4rem .8rem;border:1.5px solid var(--border);border-radius:50px;font-size:.74rem;cursor:pointer;background:var(--surface)}
.font-chip.selected{background:var(--warm-brown);color:#fff;border-color:var(--border)}

/* preview column */
.inv-preview-col{position:sticky;top:5.5rem}
.inv-canvas-frame{background:var(--surface);border:2px solid var(--border);border-radius:4px;padding:1.4rem;display:flex;justify-content:center;box-shadow:var(--nu-soft)}
#invCanvas{width:100%;max-width:400px;aspect-ratio:3/4;position:relative;overflow:hidden;border:1px solid rgba(0,0,0,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2.2rem 1.9rem}
#invCanvas .inv-ornament{position:absolute;width:76px;height:76px;opacity:.9;pointer-events:none;z-index:1}
#invCanvas .orn-tl{top:10px;left:10px}
#invCanvas .orn-tr{top:10px;right:10px;transform:scaleX(-1)}
#invCanvas .orn-bl{bottom:10px;left:10px;transform:scaleY(-1)}
#invCanvas .orn-br{bottom:10px;right:10px;transform:scale(-1,-1)}
#invCanvas .inv-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
#invCanvas .inv-photo{width:74px;height:74px;border-radius:50%;object-fit:cover;margin-bottom:.8rem;border:3px solid rgba(255,255,255,.7);box-shadow:0 2px 10px rgba(0,0,0,.25)}
#invCanvas .inv-kicker{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;margin-bottom:.85rem;opacity:.9}
#invCanvas .inv-names{font-size:1.6rem;line-height:1.25;margin-bottom:.65rem;word-break:break-word}
#invCanvas .inv-title{font-size:1rem;letter-spacing:.03em;margin-bottom:1rem;opacity:.92}
#invCanvas .inv-divider{width:46px;height:2px;margin:.85rem auto;opacity:.7}
#invCanvas .inv-datetime{font-size:.82rem;font-weight:600;margin-bottom:.3rem}
#invCanvas .inv-venue{font-size:.77rem;margin-bottom:.85rem;opacity:.9;max-width:260px}
#invCanvas .inv-message{font-size:.73rem;line-height:1.6;opacity:.85;max-width:270px;margin-bottom:.7rem}
#invCanvas .inv-footer{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;opacity:.8;position:absolute;bottom:14px;left:0;right:0;z-index:2}

/* ===== Template themes (background + palette) ===== */
.tpl-floral{background:radial-gradient(circle at 15% 8%,#f0c4d0 0,transparent 42%),radial-gradient(circle at 88% 94%,#f0c4d0 0,transparent 42%),#fdf6ee;color:#5a2a3a}
.tpl-floral .inv-names{font-family:Fraunces,serif;font-weight:600;color:#8b1e3f}
.tpl-floral .inv-kicker,.tpl-floral .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#c72856)}
.tpl-floral .inv-title{font-family:Fraunces,serif;font-style:italic}
.tpl-floral .inv-divider{background:var(--inv-accent,#c72856)}
.tpl-floral{border:6px double var(--inv-accent,#c72856)}

.tpl-minimal{background:#16130f;color:#f4efe1;border:1px solid #f4efe1}
.tpl-minimal .inv-names{font-family:"Space Grotesk",sans-serif;font-weight:700;letter-spacing:-.01em}
.tpl-minimal .inv-kicker,.tpl-minimal .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#f0ad1f)}
.tpl-minimal .inv-title{font-family:"Space Grotesk",sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem}
.tpl-minimal .inv-divider{background:var(--inv-accent,#f0ad1f)}

.tpl-golden{background:linear-gradient(160deg,#1a1a1a,#2b2410 60%,#1a1a1a);color:#f0d98c;border:3px solid var(--inv-accent,#cba135)}
.tpl-golden .inv-names{font-family:"Playfair Display",serif;font-weight:700;color:#f5e2a4}
.tpl-golden .inv-kicker,.tpl-golden .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#cba135)}
.tpl-golden .inv-title{font-family:"Playfair Display",serif;font-style:italic}
.tpl-golden .inv-divider{background:var(--inv-accent,#cba135)}

.tpl-pastel{background:linear-gradient(160deg,#fbe4ee,#e8e0fb 60%,#fdf1e6);color:#5a4a6b;border:2px solid var(--inv-accent,#d9b8e8)}
.tpl-pastel .inv-names{font-family:"Great Vibes",cursive;font-size:2.2rem;font-weight:400;color:var(--inv-accent,#a5518f)}
.tpl-pastel .inv-kicker,.tpl-pastel .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#8a6aa8)}
.tpl-pastel .inv-title{font-family:"Cormorant Garamond",serif;font-size:1.1rem}
.tpl-pastel .inv-divider{background:var(--inv-accent,#a5518f)}

.tpl-tropical{background:radial-gradient(circle at 92% 6%,#c3ecd0 0,transparent 48%),radial-gradient(circle at 6% 96%,#c3ecd0 0,transparent 48%),#eef7f0;color:#1d4d38;border:5px solid var(--inv-accent,#2f8f6b)}
.tpl-tropical .inv-names{font-family:Fraunces,serif;font-weight:700;color:#1d6b48}
.tpl-tropical .inv-kicker,.tpl-tropical .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#2f8f6b)}
.tpl-tropical .inv-title{font-family:Fraunces,serif;font-style:italic}
.tpl-tropical .inv-divider{background:var(--inv-accent,#2f8f6b)}

.tpl-classic{background:#fffdf6;color:#16130f;border:8px double #16130f}
.tpl-classic .inv-names{font-family:"Cormorant Garamond",serif;font-weight:700;font-size:1.85rem}
.tpl-classic .inv-kicker,.tpl-classic .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#514a3f)}
.tpl-classic .inv-title{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.1rem}
.tpl-classic .inv-divider{background:var(--inv-accent,#16130f)}

.tpl-boho{background:linear-gradient(180deg,#f6ece0 0%,#f6ece0 58%,#d9a679 58%,#c9895c 100%);color:#4a2f1d;border:4px solid var(--inv-accent,#a9673d)}
.tpl-boho .inv-names{font-family:Fraunces,serif;font-weight:700;color:#6b3d1e}
.tpl-boho .inv-kicker,.tpl-boho .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#a9673d)}
.tpl-boho .inv-title{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.1rem}
.tpl-boho .inv-divider{background:var(--inv-accent,#a9673d)}

.tpl-mandala{background:radial-gradient(circle at 50% 50%,#3a0f1e 0%,#220914 70%,#180712 100%);color:#f2d9a8;border:4px solid var(--inv-accent,#d4af37)}
.tpl-mandala .inv-names{font-family:"Playfair Display",serif;font-weight:700;color:#f2d9a8}
.tpl-mandala .inv-kicker,.tpl-mandala .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#d4af37)}
.tpl-mandala .inv-title{font-family:"Playfair Display",serif;font-style:italic}
.tpl-mandala .inv-divider{background:var(--inv-accent,#d4af37)}

.tpl-sunset{background:linear-gradient(160deg,#ff9a76 0%,#ff6f91 45%,#c94b7d 100%);color:#3a0d1f;border:3px solid var(--inv-accent,#e8547a)}
.tpl-sunset .inv-names{font-family:"Abril Fatface",serif;font-weight:400;color:#5a1030}
.tpl-sunset .inv-kicker,.tpl-sunset .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#7a1030)}
.tpl-sunset .inv-title{font-family:"Cormorant Garamond",serif;font-style:italic}
.tpl-sunset .inv-divider{background:var(--inv-accent,#7a1030)}

.tpl-noir{background:linear-gradient(180deg,#0a0a0a,#1c1c1c);color:#e8e8e8;border:1px solid var(--inv-accent,#c9a94f)}
.tpl-noir .inv-names{font-family:"Cinzel",serif;font-weight:700;letter-spacing:.03em;color:#f2f2f2}
.tpl-noir .inv-kicker,.tpl-noir .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#c9a94f);text-transform:uppercase;letter-spacing:.12em}
.tpl-noir .inv-title{font-family:"Marcellus",serif;font-style:italic}
.tpl-noir .inv-divider{background:var(--inv-accent,#c9a94f)}

.tpl-ivory{background:#fbfaf6;color:#3a352c;border:2px solid var(--inv-accent,#b8a074)}
.tpl-ivory .inv-names{font-family:"Prata",serif;font-weight:400;color:#4a4030}
.tpl-ivory .inv-kicker,.tpl-ivory .inv-footer{font-family:"Josefin Sans",sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--inv-accent,#b8a074)}
.tpl-ivory .inv-title{font-family:"EB Garamond",serif;font-style:italic;font-size:1.05rem}
.tpl-ivory .inv-divider{background:var(--inv-accent,#b8a074)}

.tpl-emerald{background:radial-gradient(circle at 10% 10%,#1c4d3a 0,transparent 55%),linear-gradient(160deg,#0d2b21,#123b2c);color:#dff2e8;border:3px solid var(--inv-accent,#b7935a)}
.tpl-emerald .inv-names{font-family:"Playfair Display",serif;font-weight:700;color:#f0e2c0}
.tpl-emerald .inv-kicker,.tpl-emerald .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#b7935a)}
.tpl-emerald .inv-title{font-family:"Cormorant Garamond",serif;font-style:italic}
.tpl-emerald .inv-divider{background:var(--inv-accent,#b7935a)}

.tpl-lavender{background:linear-gradient(160deg,#e9e1fb,#f5ecf9 55%,#fdf5f9);color:#4b3b63;border:2px solid var(--inv-accent,#9b7fc4)}
.tpl-lavender .inv-names{font-family:"Caveat",cursive;font-size:2.4rem;font-weight:600;color:var(--inv-accent,#7a5aa8)}
.tpl-lavender .inv-kicker,.tpl-lavender .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#9b7fc4)}
.tpl-lavender .inv-title{font-family:"Quicksand",sans-serif;font-weight:500}
.tpl-lavender .inv-divider{background:var(--inv-accent,#9b7fc4)}

.tpl-rustic{background:linear-gradient(180deg,#e7d8bd 0%,#dcc8a3 100%);color:#3f2c1a;border:6px double var(--inv-accent,#7a5230)}
.tpl-rustic .inv-names{font-family:"Lora",serif;font-weight:700;color:#4a2f14}
.tpl-rustic .inv-kicker,.tpl-rustic .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#7a5230)}
.tpl-rustic .inv-title{font-family:"Lora",serif;font-style:italic}
.tpl-rustic .inv-divider{background:var(--inv-accent,#7a5230)}

.tpl-celestial{background:radial-gradient(circle at 20% 20%,#2b2f6b 0,transparent 45%),radial-gradient(circle at 85% 80%,#4a2f6b 0,transparent 45%),#0e0e2b;color:#e8e6ff;border:2px solid var(--inv-accent,#8fa6ff)}
.tpl-celestial .inv-names{font-family:"Cinzel",serif;font-weight:600;color:#eae6ff}
.tpl-celestial .inv-kicker,.tpl-celestial .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#8fa6ff);letter-spacing:.1em}
.tpl-celestial .inv-title{font-family:"Cormorant Garamond",serif;font-style:italic}
.tpl-celestial .inv-divider{background:var(--inv-accent,#8fa6ff)}

.tpl-coral{background:linear-gradient(160deg,#ffe3e0,#ffd0d8 60%,#ffe8d6);color:#7a2b3a;border:3px solid var(--inv-accent,#ff7a8a)}
.tpl-coral .inv-names{font-family:"Pacifico",cursive;font-size:1.9rem;font-weight:400;color:var(--inv-accent,#e8546f)}
.tpl-coral .inv-kicker,.tpl-coral .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#e8546f)}
.tpl-coral .inv-title{font-family:"Quicksand",sans-serif;font-weight:500}
.tpl-coral .inv-divider{background:var(--inv-accent,#e8546f)}


.inv-hint-box{margin-top:1rem;text-align:center;font-size:.78rem;color:var(--text-muted)}

footer{background:var(--dark-brown);color:var(--cream);padding:2.2rem 0;text-align:center;font-size:.8rem;opacity:.85}
footer a{color:var(--warm-brown)}

.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--dark-brown);color:var(--cream);padding:.75rem 1.4rem;border-radius:50px;font-size:.82rem;z-index:9999;box-shadow:0 10px 30px rgba(0,0,0,.3);display:none}
.toast.show{display:block;animation:toast-in .3s ease}
@keyframes toast-in{from{opacity:0;transform:translateX(-50%) translateY(14px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* ===== Custom uploaded designs + fonts + bg colors + payment gate ===== */
.tpl-custom{background:#20161c;color:#fff;border:1px solid rgba(255,255,255,.25);text-shadow:0 1px 6px rgba(0,0,0,.55)}
.tpl-custom .inv-names{font-weight:700;color:#fff}
.tpl-custom .inv-kicker,.tpl-custom .inv-footer{font-family:"Space Mono",monospace;color:var(--inv-accent,#f4d9e0)}
.tpl-custom .inv-title{font-style:italic}
.tpl-custom .inv-divider{background:var(--inv-accent,#f4d9e0)}

.inv-tpl-badge{position:absolute;top:6px;left:6px;z-index:4;font-size:.6rem;font-weight:700;letter-spacing:.04em;padding:.22rem .5rem;border-radius:20px;display:inline-flex;align-items:center;gap:.3rem;text-transform:uppercase;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.inv-tpl-badge-free{background:#2f8f6b;color:#fff}
.inv-tpl-badge-owned{background:#2f6f8f;color:#fff}
.inv-tpl-badge-price{background:rgba(0,0,0,.72);color:#fff}

.bg-swatch-default{display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--text-muted);font-size:.8rem}

.btn-primary.small{width:auto;padding:.5rem 1rem;font-size:.7rem}

.inv-pay-gate{margin:.9rem 0;padding:.8rem 1rem;background:rgba(199,40,86,.08);border:1.5px dashed var(--warm-brown);border-radius:6px;align-items:center;gap:.7rem;flex-wrap:wrap;font-size:.82rem;color:var(--text-primary)}
.inv-pay-gate i.fa-lock{color:var(--warm-brown)}

#invDownloadBtn:disabled,#invShareBtn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}

/* ===== Venue location picker ===== */
.venue-input-row{display:flex;gap:.5rem;flex-wrap:wrap}
.venue-input-row .form-input{flex:1;min-width:180px}
.venue-input-row .btn-outline.small{flex-shrink:0}
#invLocBtn:disabled{opacity:.6;cursor:wait}

/* ===== Map location picker modal ===== */
.inv-map-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9998;align-items:center;justify-content:center;padding:1rem}
.inv-map-overlay.open{display:flex}
.inv-map-modal{background:var(--surface,#fff);width:100%;max-width:640px;max-height:92vh;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.inv-map-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;border-bottom:1.5px solid var(--border);font-family:Fraunces,serif;font-weight:600;font-size:1.02rem;color:var(--text-primary)}
.inv-map-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-muted);padding:.3rem}
.inv-map-close:hover{color:var(--warm-brown)}
.inv-map-search-row{display:flex;gap:.5rem;padding:.8rem 1.1rem 0}
.inv-map-search-row .form-input{flex:1;min-width:0}
.inv-map-search-results{padding:0 1.1rem;max-height:160px;overflow-y:auto}
.inv-map-search-result-item{padding:.55rem .7rem;font-size:.8rem;border-radius:4px;cursor:pointer;color:var(--text-primary);border-bottom:1px solid var(--border)}
.inv-map-search-result-item:hover{background:var(--beige,#f3ede3)}
.inv-map-container{flex:1;min-height:320px;height:min(46vh,420px);margin:.8rem 1.1rem 0;border-radius:6px;border:1.5px solid var(--border);z-index:1}
.inv-map-modal-footer{display:flex;align-items:center;gap:.8rem;padding:.9rem 1.1rem;border-top:1.5px solid var(--border);flex-wrap:wrap}
.inv-map-selected-address{flex:1;min-width:180px;font-size:.78rem;color:var(--text-muted);line-height:1.5}
.inv-map-modal-footer .btn-primary.small{flex-shrink:0}

/* ===== Location QR code on invitation ===== */
.inv-qr-block{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin-top:.5rem;margin-bottom:.6rem}
.inv-qr-img{width:64px;height:64px;background:#fff;padding:4px;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.inv-qr-label{font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
