@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Outfit:wght@200;300;400;500&family=JetBrains+Mono:wght@300;400&family=Caveat:wght@400;500;600&display=swap');
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg-0:#1c1c1c;--bg-1:#212121;--bg-2:#272727;--bg-3:#2d2d2d;--bg-side:#191919;
  --line-1:rgba(255,255,255,.05);--line-2:rgba(255,255,255,.09);--line-3:rgba(255,255,255,.14);
  --t1:rgba(255,255,255,.90);--t2:rgba(255,255,255,.55);--t3:rgba(255,255,255,.30);--t4:rgba(255,255,255,.14);
  --btn-bg:rgba(255,255,255,.06);--btn-hov:rgba(255,255,255,.10);--btn-line:rgba(255,255,255,.10);
  --gold:#b89d56;--gold-d:rgba(184,157,86,.10);--gold-g:rgba(184,157,86,.22);
  --sh-1:0 12px 36px rgba(0,0,0,.40);--sh-2:0 6px 16px rgba(0,0,0,.30);
  --r:12px;--r-s:8px;
  --playfair:'Playfair Display',Georgia,serif;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Outfit',sans-serif;
  --mono:'JetBrains Mono',monospace;--hand:'Caveat',cursive;
}
html{scroll-behavior:smooth}
body{background:var(--bg-0);color:var(--t1);font-family:var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased;font-weight:300}
input,textarea,select,button{font-family:inherit;font-weight:300}
::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.06);border-radius:2px}
.app{min-height:100vh;position:relative}
.fluid{position:fixed;inset:0;pointer-events:none;z-index:0}

/* ── Sidebar ── */
.side{position:fixed;left:0;top:0;bottom:0;width:200px;background:var(--bg-side);z-index:100;display:flex;flex-direction:column;padding:32px 0}
.s-brand{display:flex;align-items:center;justify-content:center;padding:0 16px;margin-bottom:48px;cursor:pointer;background:none;border:none;width:100%}
.s-brand-text{font-family:var(--serif);font-size:28px;color:var(--gold);font-weight:400;letter-spacing:.02em}
.s-city{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px;margin:16px 0 8px}
.s-city-btn{font-size:10px;color:var(--t4);padding:4px 10px;border:1px solid var(--line-1);border-radius:5px;background:transparent;cursor:pointer;transition:all .25s;font-family:var(--sans);font-weight:300}
.s-city-btn:hover{border-color:var(--t3);color:var(--t2)}
.s-city-btn.sel{border-color:var(--gold);color:var(--gold)}
.s-nav{flex:1;display:flex;flex-direction:column;padding-top:55px}
.s-i{display:flex;align-items:center;gap:13px;padding:11px 26px;cursor:pointer;transition:all .3s;color:var(--t3);font-size:13px;font-weight:300;letter-spacing:.02em;border:none;background:none;text-align:left;width:100%;position:relative}
.s-i:hover{color:var(--t2)}.s-i.on{color:var(--t1);background:rgba(255,255,255,.04)}
.s-i.on::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--gold);border-radius:1px}
.s-i svg{width:15px;height:15px}
.s-i i{font-size:15px}
.wedding-nav-wrap{position:relative}
.s-i.wedding-nav{position:relative;padding:11px 26px;opacity:.7;transition:all .3s}
.s-i.wedding-nav:hover{opacity:1}
.wedding-nav-icon{font-size:15px;line-height:1}
.s-sep{height:1px;background:var(--line-1);margin:12px 26px}
.s-ft{padding:0 26px;margin-top:auto}

/* Graffiti CTA — sidebar bottom */
.s-cta{position:relative;padding:0 0 16px;text-align:center}
.s-cta-text{font-family:var(--hand);font-size:19px;font-weight:500;color:var(--t2);line-height:1.3;transform:rotate(-2deg);margin-bottom:8px}
.s-cta-arrow{display:flex;align-items:center;justify-content:center;gap:4px;font-family:var(--hand);font-size:13px;color:var(--gold);transform:rotate(-1deg);animation:nudge 2.5s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:rotate(-1deg) translateY(0)}50%{transform:rotate(-1deg) translateY(3px)}}

.s-user{display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--t3);font-size:12px;background:none;border:none;text-align:left;width:100%;padding:12px 0;transition:color .3s}
.s-user:hover{color:var(--t2)}
.s-user-row{display:flex;align-items:center;justify-content:space-between;width:100%}
.s-logout{background:none;border:1px solid var(--line-1);border-radius:5px;color:var(--t4);cursor:pointer;padding:6px 8px;display:flex;align-items:center;transition:all .25s}
.s-logout:hover{border-color:#b05050;color:#b05050}
.s-contact{background:none;border:none;color:var(--gold);cursor:pointer;padding:12px;display:flex;align-items:center;justify-content:center;margin:12px auto 0;transition:all .25s;opacity:.7}
.s-contact:hover{opacity:1;transform:scale(1.1)}
.s-icons-row{display:flex;justify-content:center;gap:16px;margin-top:12px}
.s-profile-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:rgba(255,255,255,.03);border:1px solid var(--line-1);border-radius:6px;color:var(--t2);font-size:13px;font-weight:300;cursor:pointer;transition:all .2s;margin-bottom:12px}
.s-profile-btn:hover{background:rgba(184,157,86,.1);border-color:var(--gold);color:var(--gold)}
.s-profile-btn i{font-size:16px}
.s-icon-btn{background:none;border:none;color:var(--gold);cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;transition:all .25s;opacity:.7}
.s-icon-btn:hover{opacity:1;transform:scale(1.1)}
.contact-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .3s}
.contact-overlay.open{opacity:1}
.contact-popup{background:linear-gradient(180deg,rgba(48,48,48,.98),rgba(38,38,38,.98));border:1px solid var(--line-2);border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.04);width:100%;max-width:420px;padding:28px;position:relative}
.contact-popup h3{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--t1);margin-bottom:6px}
.contact-popup .sub{font-size:12px;color:var(--t4);margin-bottom:20px;line-height:1.5}
.contact-popup .close{position:absolute;top:16px;right:16px;width:28px;height:28px;border-radius:var(--r-s);border:1px solid var(--line-1);background:var(--btn-bg);color:var(--t3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;padding:0}
.contact-popup .close:hover{color:var(--t1);border-color:var(--t3)}
.contact-popup label{display:block;font-size:11px;color:var(--t3);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}
.contact-popup input,.contact-popup textarea{width:100%;background:rgba(30,30,30,.6);border:1px solid var(--line-1);border-radius:6px;padding:10px 12px;color:var(--t1);font-size:13px;margin-bottom:16px;font-family:inherit;text-overflow:ellipsis}
.contact-popup input:focus,.contact-popup textarea:focus{outline:none;border-color:var(--gold)}
.contact-popup textarea{min-height:100px;resize:vertical}
.contact-popup .char-count{font-size:10px;color:var(--t4);text-align:right;margin-top:-12px;margin-bottom:16px}
.vip-contact-hint{font-size:9px;color:var(--gold);margin-top:-12px;margin-bottom:16px;font-weight:200}
.contact-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.contact-cat{background:rgba(30,30,30,.4);border:1px solid var(--line-1);border-radius:5px;padding:8px 14px;color:var(--t3);font-size:12px;cursor:pointer;transition:all .25s}
.contact-cat:hover{border-color:var(--t3);color:var(--t2)}
.contact-cat.sel{border-color:var(--gold);color:var(--gold);background:rgba(184,157,86,.08)}
.contact-cat.vip.sel{border-color:var(--gold);color:var(--gold);background:linear-gradient(135deg,rgba(184,157,86,.12),rgba(184,157,86,.04))}
.contact-popup .submit{width:100%;background:linear-gradient(135deg,var(--gold),#a08945);border:none;border-radius:6px;padding:12px;color:#1c1c1c;font-size:13px;font-weight:500;cursor:pointer;transition:all .25s}
.contact-popup .submit:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(184,157,86,.3)}
.contact-popup .submit:disabled{opacity:.5;cursor:not-allowed;transform:none}
.contact-popup .info{font-size:10px;color:var(--t4);margin-top:16px;line-height:1.5;padding-top:16px;border-top:1px solid var(--line-1)}
.embed-popup{max-width:400px}
.embed-preview{margin:20px 0;display:flex;justify-content:center}
.embed-widget{width:280px;background:linear-gradient(180deg,#1a1a1a,#141414);border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden;font-size:11px}
.embed-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06)}
.embed-logo{font-family:var(--serif);color:var(--gold);font-size:14px;font-weight:400}
.embed-city{color:var(--t4);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.embed-list{padding:8px 0;max-height:200px;overflow-y:auto}
.embed-item{display:flex;align-items:center;gap:10px;padding:8px 14px;transition:background .2s}
.embed-item:hover{background:rgba(255,255,255,.03)}
.embed-num{width:16px;height:16px;background:rgba(184,157,86,.15);border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--gold);flex-shrink:0}
.embed-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--t2)}
.embed-time{color:var(--t4);font-size:10px;flex-shrink:0}
.embed-empty{padding:20px;text-align:center;color:var(--t4);font-style:italic}
.embed-footer{padding:10px 14px;border-top:1px solid rgba(255,255,255,.06);text-align:center;font-size:9px;color:var(--t4)}
.embed-code-box{display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.3);border:1px solid var(--line-1);border-radius:6px;padding:12px;margin-top:8px}
.embed-code-box code{flex:1;font-size:10px;color:var(--t3);word-break:break-all;font-family:var(--mono)}
.embed-copy{width:32px;height:32px;border:1px solid var(--line-1);border-radius:5px;background:transparent;color:var(--t4);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s;flex-shrink:0}
.embed-copy:hover{border-color:var(--gold);color:var(--gold)}
.embed-copy.ok{border-color:var(--gold);color:var(--gold);background:rgba(184,157,86,.1)}

/* ── Wedding Page ── */
.wedding-page{max-width:480px;margin:0 auto;padding:20px 0}
.wedding-header{text-align:center;padding:40px 20px;margin-bottom:24px}
.wedding-badge{margin-bottom:16px}
.wedding-soon{display:inline-block;font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:var(--gold);padding:6px 14px;border:1px solid var(--gold);border-radius:6px;background:rgba(184,157,86,.08)}
.wedding-rings{font-size:48px;margin:20px 0}
.wedding-couple{font-family:var(--serif);font-size:32px;font-weight:300;color:var(--t1);letter-spacing:.02em}
.wedding-couple span{color:var(--gold);margin:0 12px}
.wedding-date{font-size:13px;color:var(--t3);margin-top:12px;font-weight:200}
.wedding-lock{text-align:center;padding:40px 20px;background:linear-gradient(180deg,rgba(30,30,30,.6),rgba(25,25,25,.6));border:1px solid var(--line-1);border-radius:12px}
.wedding-lock-title{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--t2);font-size:14px;margin-bottom:8px}
.wedding-lock-sub{font-size:11px;color:var(--t4);font-weight:200}
.wedding-content{animation:fadeIn .5s}
.wedding-card{background:linear-gradient(180deg,rgba(184,157,86,.08),rgba(184,157,86,.02));border:1px solid rgba(184,157,86,.2);border-radius:12px;padding:32px 24px;text-align:center;margin-bottom:24px}
.wedding-card-icon{color:var(--gold);margin-bottom:16px}
.wedding-message{font-family:var(--serif);font-size:15px;color:var(--t2);line-height:1.8;font-style:italic;font-weight:300}
.wedding-section{background:rgba(30,30,30,.4);border:1px solid var(--line-1);border-radius:10px;padding:20px;margin-bottom:16px}
.wedding-section-title{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--t4);text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;font-weight:300}
.wedding-venue{font-family:var(--serif);font-size:16px;color:var(--t1);margin-bottom:4px}
.wedding-address{font-size:12px;color:var(--t3);font-weight:200;margin-bottom:12px}
.wedding-route{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--gold);text-decoration:none;padding:6px 12px;border:1px solid rgba(184,157,86,.3);border-radius:5px;transition:all .25s}
.wedding-route:hover{background:rgba(184,157,86,.1);border-color:var(--gold)}
.wedding-detail{font-size:13px;color:var(--t2);margin-bottom:6px;font-weight:200}
.wedding-detail strong{color:var(--t3);font-weight:400}
.wedding-guests{display:flex;flex-direction:column;gap:8px}
.wedding-guest{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(0,0,0,.2);border-radius:6px;font-size:12px}
.wedding-guest.yes .wedding-guest-status{color:#6a9955}
.wedding-guest.no .wedding-guest-status{color:#b05050}
.wedding-guest.pending .wedding-guest-status{color:var(--t4)}
.wedding-guest-name{flex:1;color:var(--t2);font-weight:300}
.wedding-guest-music{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--t4)}
.wedding-rsvp{background:linear-gradient(180deg,rgba(40,40,40,.6),rgba(35,35,35,.6));border:1px solid var(--line-2);border-radius:12px;padding:24px;margin-top:24px}
.wedding-field{margin-bottom:18px}
.wedding-field label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t3);margin-bottom:8px;font-weight:300}
.wedding-field input,.wedding-field textarea{width:100%;background:rgba(0,0,0,.3);border:1px solid var(--line-1);border-radius:6px;padding:12px;font-size:13px;color:var(--t1);font-family:var(--sans);transition:border-color .25s}
.wedding-field input:focus,.wedding-field textarea:focus{outline:none;border-color:var(--gold)}
.wedding-field textarea{min-height:80px;resize:none}
.wedding-status-btns{display:flex;gap:10px}
.wedding-status-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border:1px solid var(--line-1);border-radius:6px;background:transparent;color:var(--t3);font-size:12px;cursor:pointer;transition:all .25s}
.wedding-status-btn.yes:hover,.wedding-status-btn.yes.sel{border-color:#6a9955;color:#6a9955;background:rgba(106,153,85,.1)}
.wedding-status-btn.no:hover,.wedding-status-btn.no.sel{border-color:#b05050;color:#b05050;background:rgba(176,80,80,.1)}
.wedding-submit{width:100%;padding:14px;background:linear-gradient(135deg,var(--gold),#a08945);border:none;border-radius:6px;color:#1c1c1c;font-size:13px;font-weight:500;cursor:pointer;transition:all .25s;margin-top:8px}
.wedding-submit:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(184,157,86,.3)}
.wedding-submit:disabled{opacity:.4;cursor:not-allowed;transform:none}
.wedding-confirmed{text-align:center;padding:40px 20px}
.wedding-confirmed-icon{font-size:48px;margin-bottom:16px}
.wedding-confirmed-title{font-family:var(--serif);font-size:18px;color:var(--t1);margin-bottom:8px}
.wedding-confirmed-sub{font-size:12px;color:var(--t4);font-weight:200}
.wedding-footer{text-align:center;margin-top:40px;padding-top:24px;border-top:1px solid var(--line-1)}
.wedding-footer-text{font-size:10px;color:var(--t4);margin-bottom:6px;font-weight:200}
.wedding-footer-logo{font-family:var(--serif);font-size:16px;color:var(--t3)}
.wedding-footer-logo span{color:var(--gold)}
.wedding-footer-price{font-size:9px;color:var(--t4);margin-top:12px;font-weight:200}
.wedding-price{font-size:10px;color:var(--gold);text-transform:uppercase;letter-spacing:.12em;margin-bottom:16px;padding:6px 14px;border:1px solid rgba(184,157,86,.3);border-radius:6px;display:inline-block;background:rgba(184,157,86,.08)}

/* Wedding Form - narrower */
.wedding-creator{max-width:480px}
.wedding-form{background:var(--bg-1);border:1px solid var(--line-1);border-radius:12px;padding:24px}

/* Gold Labels */
.fl.gold{color:var(--gold)}
.create-hint.gold{color:var(--gold);font-size:11px;text-align:center;margin:16px 0 0}

/* Action Buttons Row */
.wedding-actions{display:flex;gap:12px;margin-top:20px}
.wedding-actions .btn-g{flex:1}
.btn-coffee{display:flex;align-items:center;justify-content:center;width:48px;height:44px;background:transparent;border:1px solid var(--line-2);border-radius:6px;color:var(--gold);text-decoration:none;transition:all .25s}
.btn-coffee:hover{border-color:var(--gold);background:rgba(184,157,86,.1)}

/* Preview Button */
.btn-preview{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;margin-top:16px;background:transparent;border:1px solid var(--line-2);border-radius:6px;color:var(--t3);font-size:12px;cursor:pointer;transition:all .25s}
.btn-preview:hover{border-color:var(--gold);color:var(--gold)}
.btn-preview svg{color:var(--gold)}

/* Guest Section */
.wedding-guests-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--line-1)}
.wedding-guests-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.btn-sm{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:11px;background:transparent;border:1px solid var(--line-2);border-radius:5px;color:var(--t3);cursor:pointer;transition:all .25s}
.btn-sm:hover{border-color:var(--gold);color:var(--gold)}
.btn-sm svg{color:var(--gold)}
.wedding-guests-list{display:flex;flex-wrap:wrap;gap:8px}
.wedding-guests-empty{font-size:12px;color:var(--t4);font-style:italic}
.wedding-guest-item{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-2);border:1px solid var(--line-1);border-radius:5px;font-size:12px;color:var(--t2)}
.wedding-guest-remove{background:none;border:none;color:var(--t4);cursor:pointer;font-size:14px;padding:0 2px;transition:color .2s}
.wedding-guest-remove:hover{color:#b05050}
.wedding-guests-count{font-size:11px;color:var(--gold);margin-top:8px}

/* Guest Popup */
.guest-popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;opacity:0;transition:opacity .3s;overflow-y:auto}
.guest-popup-overlay.open{opacity:1}
.guest-popup{background:var(--bg-0);border:1px solid var(--line-1);border-radius:16px;width:100%;max-width:400px;overflow:hidden}
.guest-popup-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line-1)}
.guest-popup-header h3{font-family:var(--serif);font-size:18px;font-weight:400;color:var(--t1);margin:0}
.guest-popup-close{background:none;border:none;color:var(--t3);font-size:24px;cursor:pointer;padding:0}
.guest-popup-input{display:flex;gap:10px;padding:16px 20px;border-bottom:1px solid var(--line-1)}
.guest-popup-input input{flex:1;background:var(--bg-1);border:1px solid var(--line-2);border-radius:6px;padding:10px 12px;color:var(--t1);font-size:14px}
.guest-popup-input input:focus{outline:none;border-color:var(--gold)}
.guest-popup-input .btn-g{padding:10px 16px}
.guest-popup-list{padding:16px 20px;max-height:300px;overflow-y:auto}
.guest-popup-empty{text-align:center;color:var(--t4);font-size:13px;padding:20px 0}
.guest-popup-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg-1);border-radius:6px;margin-bottom:8px}
.guest-popup-item span{color:var(--t2);font-size:13px}
.guest-popup-remove{background:none;border:none;color:var(--t4);cursor:pointer;font-size:18px;padding:0 4px}
.guest-popup-remove:hover{color:#b05050}
.guest-popup-actions{display:flex;gap:10px;padding:16px 20px;border-top:1px solid var(--line-1)}
.guest-popup-actions .btn-outline{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;background:transparent;border:1px solid var(--line-2);border-radius:6px;color:var(--t3);font-size:12px;cursor:pointer;transition:all .25s}
.guest-popup-actions .btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.guest-popup-actions .btn-g{flex:1}

/* Preview Popup */
.preview-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .3s;overflow-y:auto}
.preview-overlay.open{opacity:1}
.preview-popup{background:linear-gradient(180deg,#1a1a1a,#121212);border:1px solid var(--line-1);border-radius:20px;width:100%;max-width:360px;position:relative;overflow:hidden}
.preview-close{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.5);border:none;color:var(--t3);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:18px;z-index:1}
.preview-content{padding:32px 24px;text-align:center}
.preview-ring{font-size:48px;margin-bottom:8px}
.preview-badge{display:inline-block;font-size:9px;color:var(--gold);text-transform:uppercase;letter-spacing:.15em;padding:5px 12px;border:1px solid var(--gold);border-radius:6px;margin-bottom:16px}
.preview-couple{font-family:var(--serif);font-size:28px;font-weight:300;color:var(--t1);margin:0 0 8px}
.preview-couple span{color:var(--gold);margin:0 8px}
.preview-date{font-size:12px;color:var(--t3);margin-bottom:24px}
.preview-card{background:rgba(184,157,86,.08);border:1px solid rgba(184,157,86,.2);border-radius:10px;padding:20px;margin-bottom:24px}
.preview-message{font-family:var(--serif);font-size:14px;color:var(--t2);font-style:italic;line-height:1.6}
.preview-sections{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.preview-section{text-align:center;padding:16px;background:var(--bg-1);border-radius:10px}
.preview-section-icon{font-size:24px;margin-bottom:8px}
.preview-section-title{font-size:10px;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}
.preview-section-time{font-size:16px;color:var(--gold);font-weight:500;margin-bottom:4px}
.preview-section-venue{font-size:11px;color:var(--t3)}
.preview-dresscode{font-size:11px;color:var(--t3);margin-bottom:20px;padding:10px;background:var(--bg-1);border-radius:6px}
.preview-rsvp{padding-top:20px;border-top:1px solid var(--line-1)}
.preview-rsvp-title{font-size:14px;color:var(--t2);margin-bottom:12px}
.preview-rsvp-btns{display:flex;gap:10px}
.preview-rsvp-btn{flex:1;padding:12px;border-radius:8px;font-size:12px;cursor:pointer;border:none;transition:all .25s}
.preview-rsvp-btn.yes{background:linear-gradient(135deg,var(--gold),#a08945);color:#1c1c1c}
.preview-rsvp-btn.no{background:var(--bg-1);border:1px solid var(--line-2);color:var(--t3)}
.preview-footer{padding:12px;text-align:center;font-size:10px;color:var(--t4);border-top:1px solid var(--line-1);background:rgba(0,0,0,.3)}
.wedding-demo-badge{font-size:9px;color:var(--t4);text-transform:uppercase;letter-spacing:.12em;margin-bottom:16px;padding:6px 14px;border:1px solid var(--line-1);border-radius:6px;display:inline-block}
.wedding-login{text-align:center;padding:40px 24px;background:linear-gradient(180deg,rgba(35,35,35,.6),rgba(28,28,28,.6));border:1px solid var(--line-1);border-radius:12px}
.wedding-login-title{font-family:var(--serif);font-size:20px;color:var(--t1);margin-bottom:8px}
.wedding-login-sub{font-size:12px;color:var(--t3);margin-bottom:24px;font-weight:200}
.wedding-login-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;border:1px solid var(--line-2);border-radius:6px;background:rgba(255,255,255,.03);color:var(--t2);font-size:13px;cursor:pointer;transition:all .25s;margin-bottom:10px}
.wedding-login-btn:hover{background:rgba(255,255,255,.06);border-color:var(--line-3)}
.wedding-login-btn.dis{opacity:.4;cursor:not-allowed}
.wedding-time{font-size:22px;font-family:var(--serif);color:var(--gold);margin-bottom:8px}
.wedding-detail-text{font-size:13px;color:var(--t2);line-height:1.6;font-weight:200}
.wedding-menu{font-size:12px;color:var(--t2);line-height:1.8;white-space:pre-line;font-weight:200}
.wedding-photos-link{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--gold);text-decoration:none;padding:10px 16px;border:1px solid rgba(184,157,86,.3);border-radius:6px;transition:all .25s}
.wedding-photos-link:hover{background:rgba(184,157,86,.1);border-color:var(--gold)}
.wedding-absagen{font-size:11px;color:var(--t4);margin-top:12px;font-weight:200;font-style:italic}
.wedding-lock-hint{font-size:10px;color:var(--t4);margin-top:16px;font-weight:200}
.wedding-agb{font-size:10px;color:var(--t4);margin-top:16px;font-weight:200}
.back-btn{display:inline-flex;align-items:center;gap:6px;color:var(--gold);cursor:pointer;font-size:12px;margin-bottom:28px;background:none;border:none;font-weight:200;letter-spacing:.03em}

.pin-box{background:linear-gradient(180deg,rgba(20,20,20,.95),rgba(15,15,15,.98));border:1px solid var(--line-2);border-radius:12px;padding:28px 24px;margin:20px 0;text-align:center}
.pin-label{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--gold);font-size:11px;margin-bottom:20px;text-transform:uppercase;letter-spacing:.1em}
.pin-input{display:flex;gap:12px;justify-content:center}
.pin-input input{width:48px;height:56px;background:rgba(0,0,0,.5);border:1px solid var(--line-1);border-radius:8px;color:var(--gold);font-size:24px;text-align:center;font-family:var(--serif);letter-spacing:0;-webkit-text-security:disc;transition:all .2s}
.pin-input input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 1px rgba(184,157,86,.2),0 4px 20px rgba(184,157,86,.1)}
.pin-input input.filled{border-color:var(--gold);background:rgba(184,157,86,.08)}
.pin-error{color:#b05050;font-size:10px;text-align:center;margin-top:14px;text-transform:uppercase;letter-spacing:.05em}
.pin-success{color:var(--gold);font-size:10px;text-align:center;margin-top:14px;text-transform:uppercase;letter-spacing:.05em}
.pin-attempts{display:flex;justify-content:center;gap:10px;margin-top:16px}
.pin-x{font-size:14px;color:var(--line-2);font-weight:300;transition:all .3s}
.pin-x.used{color:#b05050}
.pin-locked{text-align:center;padding:12px 0}
.pin-tilt{font-family:var(--serif);font-size:28px;font-weight:400;color:#b05050;letter-spacing:.2em;margin-bottom:12px}
.pin-locked-msg{color:var(--t2);font-size:13px;margin-bottom:8px}
.pin-locked-hint{color:var(--t4);font-size:11px}
.pin-input.error input{border-color:#b05050;animation:pinShake .4s ease}
.pin-input.success input{border-color:var(--gold);background:rgba(184,157,86,.15)}
@keyframes pinShake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}
.vip-badge{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,var(--gold),#a08945);color:#1c1c1c;font-size:9px;font-weight:600;padding:3px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}
.cat.vip{background:linear-gradient(135deg,rgba(184,157,86,.15),rgba(184,157,86,.05));border-color:var(--gold);color:var(--gold)}
.exp-cat.vip{background:linear-gradient(135deg,var(--gold),#d4af37,#a08945);color:#1c1c1c;padding:4px 10px;font-weight:500;display:inline-flex;align-items:center;gap:4px}
.exp-cat.vip svg{color:#1c1c1c}
.s-logout:hover{border-color:#b05050;color:#b05050}
.s-av{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:12px;font-weight:500;color:var(--gold)}
.s-login{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;font-size:12px;font-weight:300;color:var(--t1);border:1px solid var(--btn-line);border-radius:var(--r-s);background:var(--btn-bg);box-shadow:var(--sh-2);font-family:var(--sans);width:100%;text-align:left;transition:all .3s;letter-spacing:.02em}
.s-login:hover{background:var(--btn-hov);border-color:var(--line-3)}.s-login svg{color:var(--gold)}

/* ── Mobile ── */
.mn{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-side);z-index:100;padding:8px 0 calc(8px+env(safe-area-inset-bottom))}
.mn-in{display:flex;justify-content:space-around;align-items:center}
.mn-i{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 12px;cursor:pointer;color:var(--t4);font-size:9px;font-weight:300;letter-spacing:.08em;transition:color .3s;background:none;border:none}
.mn-i.on{color:var(--t1)}.mn-i svg,.mn-i i{font-size:18px;width:18px;height:18px;line-height:1}
.mn-c{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2);background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s}
.mn-c:hover{background:var(--btn-bg);border-color:var(--line-3)}.mn-c svg,.mn-c i{color:var(--t2);font-size:16px;width:16px;height:16px}

.mx{margin-left:200px;min-height:100vh;padding:32px 52px;position:relative;z-index:1}

/* ── Header ── */
/* ── Weekday bar — pinned top ── */
.wd-bar{
  display:flex;justify-content:flex-end;
  margin-bottom:14px;
  min-height:28px;
  opacity:0;animation:rise .6s cubic-bezier(.23,1,.32,1) .02s forwards;
}

/* Mobile Search (hidden on desktop) */
.mobile-search{display:none}

.ph{margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-end}
.ph-left{flex:1}
.ph-city{font-family:var(--serif);font-size:48px;font-weight:300;letter-spacing:.015em;color:var(--t1);line-height:1;margin-bottom:8px;opacity:0;animation:rise .9s cubic-bezier(.23,1,.32,1) .05s forwards}
.ph-city span{font-weight:200;color:var(--t3);font-size:42px}
.ph-sub{font-size:12px;color:var(--t3);font-weight:200;letter-spacing:.08em;text-transform:uppercase;opacity:0;animation:rise .9s cubic-bezier(.23,1,.32,1) .15s forwards}

/* ── Search right-aligned ── */
.ph-right{
  display:flex;flex-direction:column;align-items:flex-end;
  flex-shrink:0;
  opacity:0;animation:rise .9s cubic-bezier(.23,1,.32,1) .2s forwards;
}

@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* ── Weekday ── */
.wd{display:flex;gap:6px}
.wd-d{width:34px;height:28px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:400;letter-spacing:.06em;color:var(--t4);cursor:pointer;border:1px solid transparent;border-radius:5px;background:transparent;transition:all .3s cubic-bezier(.23,1,.32,1);font-family:var(--sans)}
.wd-d:hover{color:var(--t2);border-color:var(--line-2)}
.wd-d.today{color:var(--t3);border-color:var(--gold)}
.wd-d.today:hover{color:var(--t2)}
.wd-d.sel{color:var(--t1);border-color:var(--line-3);background:rgba(255,255,255,.06)}
.wd-d.sel.today{color:var(--t1);border-color:var(--gold);background:var(--gold-d)}

/* ── Search ── */
.sr{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line-2);background:transparent;width:200px;padding-bottom:8px;transition:border-color .4s}
.sr:focus-within{border-bottom-color:var(--t3)}
.sr input{background:transparent;border:none;outline:none;font-size:13px;color:var(--t1);width:100%;font-weight:200;letter-spacing:.02em;text-overflow:ellipsis}
.sr input::placeholder{color:var(--t4)}.sr svg{color:var(--t4);width:13px;height:13px}

/* ── Categories ── */
.cats{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:4px;opacity:0;animation:rise .9s cubic-bezier(.23,1,.32,1) .25s forwards}
.cat{font-size:13px;color:var(--t3);cursor:pointer;transition:color .3s;background:none;border:none;font-weight:300;letter-spacing:.02em;padding:0;position:relative;font-family:var(--sans)}
.cat::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--gold);transition:width .35s cubic-bezier(.23,1,.32,1)}
.cat:hover{color:var(--t2)}.cat:hover::after{width:60%}
.cat.on{color:var(--t1);font-weight:400}.cat.on::after{width:100%}
.cat.wedding-cat{color:var(--gold)}
.cat.wedding-cat:hover{color:var(--gold)}

.sl{font-family:var(--serif);font-size:13px;font-weight:400;color:var(--t3);letter-spacing:.05em;font-style:italic;margin-bottom:18px;text-transform:lowercase}
.sl-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.sl-row .sl{margin-bottom:0}
.fav-filter{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:transparent;border:1px solid rgba(184,157,86,.15);border-radius:var(--r-s);font-size:10px;font-weight:300;color:var(--t3);cursor:pointer;font-family:var(--sans);transition:all .2s}
.fav-filter:hover,.fav-filter.on{border-color:var(--gold);color:var(--gold)}
.fav-filter i{font-size:12px}
.ln{width:100%;height:1px;background:var(--line-1);margin:20px 0}

/* ── Event Grid ── */
.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.ev{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid var(--line-1);border-radius:var(--r);padding:26px 24px 38px;cursor:pointer;position:relative;box-shadow:var(--sh-2);transition:background .35s,border-color .35s,transform .25s cubic-bezier(.23,1,.32,1),box-shadow .35s,opacity .45s cubic-bezier(.23,1,.32,1);opacity:0;transform:translateY(14px)}
.ev.vis{opacity:1;transform:translateY(0)}
.ev:hover{background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03));border-color:var(--line-2);transform:translateY(-2px);box-shadow:var(--sh-1)}
.ev.hl{border:1px solid rgba(184,157,86,.25)}
.ev.hl .ev-t{color:var(--gold)}
.ev.hl:hover{border-color:rgba(184,157,86,.35)}
.ev-star{position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:5px;border:1px solid rgba(184,157,86,.20);background:rgba(184,157,86,.06);display:flex;align-items:center;justify-content:center}
.ev-star svg{width:10px;height:10px;color:var(--gold)}
.ev-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.ev-cat-label{font-size:10px;color:var(--t4);letter-spacing:.1em;text-transform:uppercase;font-weight:300}
.ev-cat-label.vip{display:inline-flex;align-items:center;gap:4px;color:var(--gold)}
.ev-cat-label.vip svg{color:var(--gold)}
.ev.vip{border-color:var(--gold)}
.ev-crown{position:absolute;top:12px;right:12px;color:var(--gold);filter:drop-shadow(0 0 6px rgba(184,157,86,.5));animation:crownGlow 2s ease-in-out infinite}
@keyframes crownGlow{0%,100%{filter:drop-shadow(0 0 6px rgba(184,157,86,.4))}50%{filter:drop-shadow(0 0 10px rgba(184,157,86,.7))}}
.ev-att{position:absolute;bottom:18px;right:20px;font-size:10px;color:var(--t4);font-family:var(--mono);display:flex;align-items:center;gap:4px;font-weight:300}.ev-att svg{width:10px;height:10px}
.ev-t{font-family:var(--serif);font-size:22px;font-weight:400;margin-bottom:14px;letter-spacing:.01em;line-height:1.2;transition:color .3s}
.ev-meta{display:flex;flex-direction:column;gap:5px}
.ev-mr{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--t3);font-weight:200}.ev-mr svg{width:11px;height:11px;opacity:.3}

/* ── Expand Overlay ── */
.exp-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .3s}
.exp-overlay.open{opacity:1;pointer-events:auto}
.exp-bg{position:absolute;inset:0;background:rgba(20,20,20,.80);backdrop-filter:blur(12px);transition:opacity .35s;opacity:0}
.exp-overlay.open .exp-bg{opacity:1}
.exp-card{position:relative;z-index:1;width:90%;max-width:520px;max-height:85vh;overflow-y:auto;background:linear-gradient(180deg,rgba(48,48,48,.98),rgba(38,38,38,.98));border:1px solid var(--line-2);border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.04);padding:36px 32px 32px;transform:scale(.85) translateY(30px);opacity:0;transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .35s}
.exp-overlay.open .exp-card{transform:scale(1) translateY(0);opacity:1}
.exp-close{position:absolute;top:16px;right:16px;width:28px;height:28px;border-radius:var(--r-s);border:1px solid var(--line-1);background:var(--btn-bg);color:var(--t3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}
.exp-close:hover{background:var(--btn-hov);border-color:var(--line-2);color:var(--t1)}
.exp-cat{font-size:10px;color:var(--t4);letter-spacing:.1em;text-transform:uppercase;font-weight:300}
.exp-hl{display:inline-flex;align-items:center;gap:4px;font-size:9px;color:var(--gold);font-weight:400;letter-spacing:.06em;text-transform:uppercase;margin-left:12px}.exp-hl svg{width:9px;height:9px}
.exp-title{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:.01em;line-height:1.15;margin-bottom:6px}
.exp-title.hl{color:var(--gold)}
.exp-venue{font-size:13px;color:var(--t3);font-weight:200;margin-bottom:24px}
.exp-info{margin-bottom:24px;padding:20px 0;border-top:1px solid var(--line-1);border-bottom:1px solid var(--line-1);display:flex;flex-direction:column;gap:20px}
.exp-row{display:flex;gap:32px}
.exp-il{font-size:9px;color:var(--t4);text-transform:uppercase;letter-spacing:.12em;margin-bottom:5px;font-weight:300}
.exp-iv{font-size:13px;font-weight:300;color:var(--t1)}
.exp-where{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.exp-where-left{flex:1;min-width:0}
.exp-addr-row{display:flex;align-items:center;gap:7px;margin-top:2px}
.exp-addr-row svg{flex-shrink:0}
.exp-addr-text{font-size:12px;color:var(--t3);font-weight:200}
.exp-copy{width:22px;height:22px;border-radius:4px;border:1px solid rgba(184,157,86,.25);background:transparent;color:var(--gold);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .25s;flex-shrink:0;margin-left:2px;padding:0}
.exp-copy:hover{border-color:var(--gold);color:var(--gold);background:rgba(184,157,86,.1)}
.exp-copy.ok{border-color:var(--gold);color:var(--gold);background:rgba(184,157,86,.15)}
.exp-route{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;font-size:11px;font-weight:300;color:var(--t2);border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--btn-bg);cursor:pointer;transition:all .3s;text-decoration:none;font-family:var(--sans);letter-spacing:.02em;white-space:nowrap;flex-shrink:0}
.exp-route:hover{background:var(--btn-hov);border-color:var(--line-3);color:var(--t1)}
.exp-route svg{width:11px;height:11px;color:var(--gold)}
.exp-desc{font-size:14px;line-height:1.8;color:var(--t2);margin-bottom:28px;font-weight:200}
.exp-att{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--t4);font-family:var(--mono);font-weight:300;margin-bottom:24px}.exp-att svg{width:11px;height:11px}
.exp-acts{display:flex;gap:10px;flex-wrap:wrap}

/* ── Orte ── */
.o-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.o-card{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid var(--line-1);border-radius:var(--r);padding:24px;box-shadow:var(--sh-2);transition:opacity .45s,transform .45s;opacity:0;transform:translateY(14px)}
.o-card.vis{opacity:1;transform:translateY(0)}
.o-fav{position:absolute;top:10px;right:10px;background:none;border:none;cursor:pointer;color:var(--t4);font-size:14px;padding:4px;transition:all .2s;line-height:1}
.o-fav:hover,.o-fav.on{color:var(--gold)}
.o-name{font-family:var(--serif);font-size:17px;font-weight:400;margin-bottom:4px;letter-spacing:.01em}
.o-addr{font-size:11px;color:var(--t4);font-weight:200;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.o-copy{width:18px;height:18px;border-radius:3px;border:1px solid rgba(184,157,86,.25);background:transparent;color:var(--gold);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .25s;flex-shrink:0;padding:0}
.o-copy:hover{border-color:var(--gold);color:var(--gold);background:rgba(184,157,86,.1)}
.o-copy.ok{border-color:var(--gold);color:var(--gold);background:rgba(184,157,86,.15)}
.o-desc{font-size:12px;color:var(--t2);font-weight:200;line-height:1.65;margin-bottom:12px}
.o-tags{display:flex;gap:10px;flex-wrap:wrap}.o-tag{font-size:10px;color:var(--t4);letter-spacing:.03em;font-weight:300}.o-tag::before{content:'— ';opacity:.25}

/* ── Buttons ── */
.btn-g{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;cursor:pointer;font-size:12px;font-weight:400;transition:all .3s;background:var(--btn-bg);color:var(--t1);border:1px solid var(--btn-line);border-radius:var(--r-s);font-family:var(--sans);letter-spacing:.02em;box-shadow:var(--sh-2)}
.create-city{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.create-choice{display:flex;gap:10px;margin-top:28px}
.create-opt{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px 12px;background:transparent;border:1px solid var(--line-2);border-radius:var(--r-s);cursor:pointer;transition:all .3s;max-width:90px}
.create-opt:hover{border-color:var(--gold)}
.create-opt.vip{border-color:var(--gold)}
.create-opt.vip .create-opt-icon{color:var(--gold)}
.create-opt.vip .create-opt-title{color:var(--gold)}
.create-opt.wedding{border-color:rgba(255,182,193,.4)}
.create-opt.wedding .create-opt-icon{color:rgba(255,182,193,.9)}
.create-opt.wedding .create-opt-title{color:rgba(255,182,193,.9)}
.wedding-pricing{display:inline-block;font-size:10px;color:var(--t4);padding:8px 14px;border:1px solid var(--line-1);border-radius:var(--r-s);margin-bottom:24px;font-weight:200}
.wedding-pricing span{color:var(--gold)}
.wedding-form-section{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;margin:24px 0 12px;padding-top:16px;border-top:1px solid var(--line-1);font-weight:300}
.email-hint{font-size:9px;color:var(--t4);margin-top:-8px;margin-bottom:8px;font-weight:200}
.wedding-form-section:first-of-type{border-top:none;margin-top:0;padding-top:0}
.wedding-btn{background:linear-gradient(135deg,rgba(255,182,193,.2),rgba(255,182,193,.1))!important;border-color:rgba(255,182,193,.3)!important}

.create-opt-icon{color:var(--t4);transition:color .3s;display:flex;align-items:center;justify-content:center}
.create-opt-icon i{font-size:24px;line-height:1}
.create-opt:hover .create-opt-icon{color:var(--gold)}
.create-opt-title{font-family:var(--serif);font-size:11px;color:var(--t2);font-weight:400}
.cat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.cat-chip{font-size:12px;color:var(--t3);padding:8px 14px;border:1px solid var(--line-2);border-radius:5px;background:transparent;cursor:pointer;transition:all .25s;font-family:var(--sans);font-weight:300}
.cat-chip:hover{border-color:var(--t3);color:var(--t2)}
.cat-chip.sel{border-color:var(--gold);color:var(--gold);background:rgba(184,157,86,.08)}
.cat-chip.vip{border-color:var(--gold);color:var(--gold);display:inline-flex;align-items:center;gap:5px}
.cat-chip.vip.sel{background:linear-gradient(135deg,rgba(184,157,86,.15),rgba(184,157,86,.05))}
.btn-g:hover{background:var(--btn-hov);border-color:var(--line-3)}.btn-g svg{width:13px;height:13px;color:var(--gold)}
.btn-o{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;cursor:pointer;font-size:12px;font-weight:200;transition:all .3s;background:transparent;color:var(--t3);border:1px solid var(--line-1);border-radius:var(--r-s);font-family:var(--sans);letter-spacing:.02em}
.btn-o:hover{color:var(--t2);border-color:var(--line-2)}.btn-o svg{width:13px;height:13px}
.echo-row{display:flex;align-items:center;gap:14px}
.echo-hint{font-size:10px;color:var(--t4);font-weight:200;font-style:italic}

/* ── Create ── */
.cf{max-width:460px}.fg{margin-bottom:26px}
.fl{display:block;font-size:10px;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-weight:300}
.fi,.ft2{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line-2);padding:10px 0;font-size:15px;color:var(--t1);outline:none;transition:border-color .35s;font-weight:200;text-overflow:ellipsis}
.fi:focus,.ft2:focus{border-bottom-color:var(--gold)}.fi::placeholder,.ft2::placeholder{color:var(--t4)}
input[type="date"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator{display:none}
input[type="date"],input[type="time"]{-webkit-appearance:none}
input[type="date"]:not(:valid)::-webkit-datetime-edit{color:var(--t4)}
input[type="time"]:not(:valid)::-webkit-datetime-edit{color:var(--t4)}
.fi::-webkit-calendar-picker-indicator{filter:invert(70%) sepia(50%) saturate(400%) hue-rotate(5deg);cursor:pointer;opacity:.7;transition:opacity .2s}
.fi::-webkit-calendar-picker-indicator:hover{opacity:1}
.ft2{resize:none;min-height:72px;line-height:1.7}
.fs{width:100%;color:var(--t1);cursor:pointer;background:var(--bg-2);border-radius:4px;padding:10px 12px;border:1px solid var(--line-2);font-size:15px}
.fs:focus{border-color:var(--gold);outline:none}
.fs option{background:var(--bg-2);color:var(--t1);padding:10px 12px}
.fs option:checked{background:var(--gold);color:var(--bg-0)}
.fs option:hover{background:rgba(184,157,86,.3)}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:24px}

.hl-toggle{display:flex;align-items:center;gap:12px;padding:16px 0;margin-bottom:10px}
.hl-toggle-label{font-size:13px;font-weight:300;color:var(--t2);display:flex;align-items:center;gap:8px}
.hl-toggle-label svg{color:var(--gold);width:14px;height:14px}
.hl-toggle-price{font-size:11px;color:var(--t3);font-family:var(--mono);font-weight:300}
.create-hint{font-size:10px;color:var(--t4);font-weight:200;margin-top:12px;text-align:center;font-style:italic}

/* ── Admin ── */
.at{display:flex;gap:0;margin-bottom:36px}
.atb{padding:12px 20px;cursor:pointer;font-size:12px;color:var(--t4);font-weight:300;transition:all .3s;border:none;background:none;letter-spacing:.03em;position:relative}
.atb::after{content:'';position:absolute;bottom:0;left:20px;right:20px;height:1px;background:transparent;transition:background .3s}
.atb:hover{color:var(--t3)}.atb.on{color:var(--t1)}.atb.on::after{background:var(--gold)}
.sg{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:32px;max-width:800px}
.sc{padding:22px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid var(--line-1);border-radius:var(--r);box-shadow:var(--sh-2)}
.scl{font-size:10px;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-weight:300}
.scv{font-family:var(--mono);font-size:24px;font-weight:300;letter-spacing:-.02em;color:var(--t1)}
.scx{font-size:10px;margin-top:4px;font-family:var(--mono);color:var(--gold);font-weight:300}
.cb{padding:22px;margin-bottom:16px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));border:1px solid var(--line-1);border-radius:var(--r);box-shadow:var(--sh-2);max-width:800px}
.cbt{font-family:var(--serif);font-size:13px;font-weight:400;margin-bottom:18px;color:var(--t3);font-style:italic}
.ctt{background:var(--bg-2)!important;border:1px solid var(--line-2)!important;border-radius:var(--r-s);padding:8px 12px}
.cttl{color:var(--t3);font-size:10px;margin-bottom:2px}.cttv{font-family:var(--mono);font-size:11px}
.cei{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line-1)}
.cel{display:flex;align-items:center;gap:12px}.cen{font-size:13px;font-weight:300}
.cebs{display:flex;gap:6px}
.ceb{width:28px;height:28px;border:1px solid var(--line-1);border-radius:var(--r-s);background:transparent;color:var(--t4);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}
.ceb:hover{border-color:var(--line-2);color:var(--t2)}.ceb.del:hover{border-color:rgba(180,80,80,.3);color:#b05050}
.cea{display:flex;gap:10px;align-items:flex-end;margin-top:20px}
.ceai{flex:1;background:transparent;border:none;border-bottom:1px solid var(--line-2);padding:8px 0;font-size:13px;color:var(--t1);outline:none;font-weight:200}.ceai:focus{border-bottom-color:var(--gold)}
.ceab{padding:8px 16px;background:var(--btn-bg);color:var(--t1);border:1px solid var(--btn-line);border-radius:var(--r-s);font-size:11px;cursor:pointer;font-weight:300;letter-spacing:.03em;font-family:var(--sans);transition:all .3s;box-shadow:var(--sh-2)}.ceab:hover{background:var(--btn-hov);border-color:var(--line-3)}
.txi{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line-1)}
.txe{font-size:13px;font-weight:300}.txd{font-size:10px;color:var(--t4);margin-top:1px;font-weight:200}
.txa{font-family:var(--mono);font-size:12px;color:var(--gold);font-weight:300}
.fbs{display:flex;gap:12px;margin-top:24px}
.fb{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line-1);border-radius:var(--r-s);background:var(--btn-bg);color:var(--t2);font-size:11px;cursor:pointer;transition:all .3s;font-family:var(--sans);font-weight:200;letter-spacing:.03em;box-shadow:var(--sh-2)}.fb:hover{background:var(--btn-hov);border-color:var(--line-2);color:var(--t1)}
.tr{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line-1)}
.trl{font-size:13px;font-weight:300}.trd{font-size:10px;color:var(--t4);margin-top:2px;font-weight:200}
.tg{width:38px;height:20px;border-radius:10px;cursor:pointer;position:relative;border:1px solid var(--line-2);transition:all .3s;background:transparent}
.tg.on{border-color:var(--gold)}.tgk{width:14px;height:14px;border-radius:50%;position:absolute;top:2px;transition:all .35s cubic-bezier(.23,1,.32,1)}
.tg.on .tgk{left:20px;background:var(--gold)}.tg.off .tgk{left:2px;background:var(--t4)}
.admin-content-section{margin-bottom:32px}
.admin-content-title{font-size:12px;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;font-weight:300}
.admin-list{max-height:300px;overflow-y:auto}
.admin-list-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line-1)}
.admin-list-info{flex:1;min-width:0}
.admin-list-name{font-size:13px;font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-list-meta{font-size:10px;color:var(--t4);margin-top:2px;font-weight:200;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-del{width:28px;height:28px;border:1px solid var(--line-1);border-radius:var(--r-s);background:transparent;color:var(--t4);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;flex-shrink:0;margin-left:12px}
.admin-del:hover{border-color:rgba(180,80,80,.4);color:#b05050;background:rgba(180,80,80,.08)}
.admin-wedding-item{padding:16px;background:rgba(30,30,30,.4);border:1px solid var(--line-1);border-radius:8px;margin-bottom:12px}
.admin-wedding-item.approved{border-color:rgba(106,153,85,.3);background:rgba(106,153,85,.05)}
.admin-wedding-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.admin-wedding-couple{font-family:var(--serif);font-size:15px;color:var(--t1)}
.admin-wedding-date{font-size:11px;color:var(--t4)}
.admin-wedding-details{font-size:11px;color:var(--t3);line-height:1.8;margin-bottom:12px;font-weight:200}
.admin-wedding-details strong{color:var(--t4);font-weight:400}
.admin-wedding-msg{font-style:italic;color:var(--t4);margin-top:8px;padding:8px;background:rgba(0,0,0,.2);border-radius:4px}
.admin-wedding-info{font-size:11px;color:var(--t3);margin-bottom:12px}
.admin-wedding-pin{font-family:var(--mono);color:var(--gold);background:rgba(184,157,86,.1);padding:2px 8px;border-radius:4px}
.admin-email{color:var(--gold);text-decoration:none;transition:opacity .2s}
.admin-email:hover{opacity:.7}
.admin-wedding-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-wedding-pin-row{display:flex;gap:4px;align-items:center}
.admin-pin-gen{width:32px;height:32px;border:1px solid var(--line-1);border-radius:5px;background:transparent;cursor:pointer;font-size:14px;transition:all .2s}
.admin-pin-gen:hover{border-color:var(--gold);background:rgba(184,157,86,.1)}
.admin-approve{padding:8px 14px;background:rgba(106,153,85,.15);border:1px solid rgba(106,153,85,.3);border-radius:5px;color:#6a9955;font-size:11px;cursor:pointer;transition:all .2s}
.admin-approve:hover{background:rgba(106,153,85,.25);border-color:#6a9955}
.admin-copy{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line-1);border-radius:5px;background:transparent;color:var(--t3);font-size:11px;cursor:pointer;transition:all .2s}
.admin-copy:hover{border-color:var(--gold);color:var(--gold)}

/* Admin Settings */
.admin-settings{max-width:500px}
.as-section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--line-1)}
.as-title{font-size:14px;color:var(--t1);margin-bottom:8px;font-weight:400}
.as-desc{font-size:11px;color:var(--t4);margin-bottom:16px;line-height:1.6;font-weight:200}
.as-row{display:flex;align-items:flex-end}
.as-row .fi{flex:1}
.as-checks{display:flex;flex-direction:column;gap:12px}
.as-check{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--t3);cursor:pointer;font-weight:300}
.as-check input[type="checkbox"]{width:16px;height:16px;accent-color:var(--gold);cursor:pointer}

/* ── Echo ── */
.eov{position:fixed;inset:0;background:rgba(20,20,20,.90);backdrop-filter:blur(16px);z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeIn .25s}
.emo{width:90%;max-width:400px;padding:40px;background:linear-gradient(180deg,rgba(48,48,48,.98),rgba(38,38,38,.98));border:1px solid var(--line-2);border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.55);position:relative;animation:rise .5s cubic-bezier(.23,1,.32,1)}
.emx{position:absolute;top:16px;right:16px;width:22px;height:22px;border:none;background:transparent;color:var(--t4);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .3s}.emx:hover{color:var(--t2)}
.emt{font-family:var(--serif);font-size:24px;font-weight:300;margin-bottom:8px}
.ems{font-size:13px;color:var(--t3);margin-bottom:28px;line-height:1.7;font-weight:200}.ems b{color:var(--gold);font-weight:400}
.echo-ev-info{font-size:11px;color:var(--t4);margin-bottom:12px;font-weight:200;font-style:italic}
.emta{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line-2);padding:12px 0;font-size:14px;color:var(--t1);outline:none;resize:none;min-height:80px;line-height:1.7;font-weight:200;font-family:var(--sans);transition:border-color .35s}
.emta:focus{border-bottom-color:var(--t3)}.emta::placeholder{color:var(--t4)}
.emft{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.emct{font-size:10px;color:var(--t4);font-family:var(--mono);font-weight:300}
.emen{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--t4);font-weight:200}
.emsb{padding:10px 18px;background:var(--btn-bg);color:var(--t1);border:1px solid var(--btn-line);border-radius:var(--r-s);font-size:12px;font-weight:300;cursor:pointer;margin-top:24px;font-family:var(--sans);letter-spacing:.03em;transition:all .3s;box-shadow:var(--sh-2)}
.emsb:hover{background:var(--btn-hov);border-color:var(--line-3)}.emsb:disabled{opacity:.12;cursor:not-allowed}

/* ── Login ── */
.lp{max-width:280px;padding:44px 0}.lpt{font-family:var(--serif);font-size:24px;font-weight:300;margin-bottom:8px}
.lpst{font-size:12px;color:var(--t3);margin-bottom:28px;font-weight:200;line-height:1.6}
.lpb{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;margin-bottom:10px;border:1px solid var(--line-1);border-radius:var(--r-s);background:var(--btn-bg);color:var(--t2);font-size:13px;font-weight:300;cursor:pointer;transition:all .3s;font-family:var(--sans);box-shadow:var(--sh-2)}
.lpb:hover{background:var(--btn-hov);border-color:var(--line-2);color:var(--t1)}
.lpb.dis{opacity:.4;pointer-events:none}
.agb-box{display:flex;gap:12px;align-items:flex-start;margin-bottom:20px;padding:16px;border:1px solid var(--line-1);border-radius:var(--r-s);background:rgba(255,255,255,.02)}
.agb-check{width:18px;height:18px;min-width:18px;border:1px solid var(--line-2);border-radius:4px;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s;color:var(--bg-0)}
.agb-check:hover{border-color:var(--gold)}
.agb-check.on{background:var(--gold);border-color:var(--gold)}
.agb-text{font-size:10px;color:var(--t4);line-height:1.6;font-weight:200}
.pr{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line-1);cursor:pointer;transition:all .3s}.pr:hover{padding-left:6px}
.profile-section{margin-bottom:28px}
.profile-section-title{font-size:11px;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px;font-weight:300}
.profile-empty{font-size:12px;color:var(--t4);font-style:italic;font-weight:200}
.profile-hint{font-size:10px;color:var(--t4);margin-top:16px;padding-top:12px;border-top:1px solid var(--line-1);font-weight:200;line-height:1.5}
.profile-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line-1)}
.profile-item-info{flex:1}
.profile-item-title{font-size:14px;color:var(--t1);font-weight:300;margin-bottom:2px}
.profile-item-meta{font-size:11px;color:var(--t4);font-weight:200}
.profile-item-actions{display:flex;gap:8px}
.profile-btn{width:28px;height:28px;border:1px solid var(--line-2);border-radius:5px;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--t3);transition:all .25s}
.profile-btn:hover{border-color:var(--gold);color:var(--gold)}
.profile-btn.del:hover{border-color:#b05050;color:#b05050}
.echo-item{padding:14px;border:1px solid var(--line-1);border-radius:5px;margin-bottom:10px;background:rgba(255,255,255,.02)}
.echo-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.echo-item-event{font-size:11px;color:var(--t4);font-weight:200;font-style:italic}
.echo-item-lock{font-size:10px;color:var(--gold);display:flex;align-items:center;gap:4px;font-weight:300}
.echo-item-text{font-size:13px;color:var(--t2);font-weight:200;line-height:1.6;font-style:italic}
.echo-item-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.echo-item-date{font-size:9px;color:var(--t4);font-weight:200}
.prl{font-size:13px;font-weight:300}.prd{font-size:10px;color:var(--t4);margin-top:1px;font-weight:200}
.empty{padding:48px 0;color:var(--t4);font-size:13px;font-weight:200;font-style:italic}
.smh{margin-bottom:36px;padding-top:24px}.smh-t{font-family:var(--serif);font-size:32px;font-weight:300;letter-spacing:.01em}.smh-s{font-size:12px;color:var(--t3);font-weight:200;margin-top:6px}

/* Profile Wedding Section */
.profile-wedding{border:1px solid var(--line-1);border-radius:8px;margin-bottom:12px;overflow:hidden}
.profile-wedding-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;cursor:pointer;transition:background .2s}
.profile-wedding-header:hover{background:rgba(255,255,255,.02)}
.profile-wedding-info{flex:1}
.profile-wedding-couple{font-family:var(--serif);font-size:16px;color:var(--t1);font-weight:300}
.profile-wedding-date{font-size:11px;color:var(--t4);margin-top:2px;font-weight:200}
.profile-wedding-stats{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:300}
.profile-wedding-stats .yes{color:#6a9955}
.profile-wedding-stats .no{color:#b05050}
.profile-wedding-details{padding:0 16px 16px;border-top:1px solid var(--line-1);background:rgba(0,0,0,.15)}
.profile-wedding-link{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--t3);margin-top:12px;font-weight:200}
.profile-wedding-link button{background:transparent;border:1px solid var(--line-2);border-radius:4px;padding:4px 6px;cursor:pointer;color:var(--t3);transition:all .2s}
.profile-wedding-link button:hover{border-color:var(--gold);color:var(--gold)}
.profile-wedding-pin{font-size:11px;color:var(--t4);margin-top:8px;font-weight:200}
.profile-wedding-pin strong{color:var(--gold);font-weight:400}
.profile-wedding-guests{margin-top:16px}
.profile-wedding-guests-title{font-size:10px;color:var(--t4);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-weight:300}
.profile-wedding-guest{padding:10px 12px;border:1px solid var(--line-1);border-radius:6px;margin-bottom:6px;background:rgba(255,255,255,.01)}
.profile-wedding-guest.yes{border-left:2px solid #6a9955}
.profile-wedding-guest.no{border-left:2px solid #b05050}
.profile-wedding-guest-name{font-size:13px;color:var(--t2);font-weight:300}
.profile-wedding-guest-note{font-size:11px;color:var(--t3);margin-top:4px;font-style:italic;font-weight:200}

/* ══════════════════════════════════════════════════════════
   MOBILE ELEMENTS - Hidden on Desktop
   ══════════════════════════════════════════════════════════ */
.mobile-header{display:none}
.day-picker{display:none}
.day-picker-spacer{display:none}
.pickers-row{display:none}
.desktop-only{display:flex}

/* Slide Menu Base (always needed for JS) */
.slide-menu{position:fixed;top:0;left:0;bottom:0;width:280px;background:var(--bg-0);border-right:1px solid var(--line-1);z-index:9999;transform:translateX(-100%);transition:transform .3s ease;padding:20px}
.slide-menu.open{transform:translateX(0)}
.slide-menu-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9998;opacity:0;pointer-events:none;transition:opacity .3s}
.slide-menu-overlay.open{opacity:1;pointer-events:auto}

/* Search Overlay Base */
.search-overlay{position:fixed;inset:0;background:var(--bg-0);z-index:9998;padding:20px;display:none}
.search-overlay.open{display:block}
.search-overlay-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.search-overlay .sr{flex:1}
.search-overlay .sr input{width:100%;font-size:16px;padding:12px 12px 12px 40px}
.search-close{background:none;border:none;color:var(--gold);padding:8px;cursor:pointer;font-size:13px;white-space:nowrap}

@media(max-width:768px){
  /* Sidebar verstecken */
  .side{display:none}
  .desktop-only{display:none}
  
  /* Main Content */
  .mx{margin-left:0;padding:16px 16px 100px}
  
  /* Mobile Header - now handled at end of file */
  .mobile-header{display:flex}
  .mobile-header-left{cursor:pointer}
  
  /* Android Timer Style Pickers */
  .pickers-row{display:flex;gap:12px;margin:16px 0}
  .picker-wrapper{flex:1}
  .picker-label{font-size:9px;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;text-align:center}
  .picker{position:relative;height:90px;overflow:hidden;border:1px solid var(--line-1);border-radius:10px;background:var(--bg-1)}
  .picker-track{display:flex;flex-direction:column;align-items:center;padding:30px 0;gap:0;overflow-y:auto;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;height:100%}
  .picker-track::-webkit-scrollbar{display:none}
  .picker-item{flex-shrink:0;height:30px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--t4);scroll-snap-align:center;transition:all .15s;cursor:pointer;width:100%;padding:0 10px}
  .picker-item.sel{font-size:14px;color:var(--gold);font-weight:500}
  .picker-item.vip.sel{color:var(--gold)}
  .picker-highlight{position:absolute;left:8px;right:8px;top:50%;transform:translateY(-50%);height:32px;border:1px solid var(--gold);border-radius:6px;pointer-events:none;background:rgba(184,157,86,.05)}
  
  /* Day Picker */
  .day-picker{display:block;position:relative;height:50px;margin:8px 0;overflow:hidden}
  .day-picker .picker-track{flex-direction:row;padding:0 calc(50% - 25px);height:100%;overflow-x:auto;scroll-snap-type:x mandatory}
  .day-picker .picker-item{width:50px;height:50px;flex-shrink:0;scroll-snap-align:center}
  .day-picker .picker-item.center{font-size:14px;color:var(--t2)}
  .day-picker .picker-item.near{font-size:12px;color:var(--t3)}
  .day-picker .picker-highlight{left:50%;transform:translate(-50%,-50%);width:44px;right:auto}
  .day-picker-spacer{display:block;height:66px}
  
  /* Mobile Search */
  .mobile-search{display:block;margin:20px 0 12px;padding:0}
  .mobile-search .sr{width:100%;border-bottom:none;padding-bottom:0}
  .mobile-search .sr input{font-size:14px;color:var(--t3)}
  .mobile-search .sr input::placeholder{color:var(--t4)}
  
  /* Page Header verstecken auf Mobile */
  .ph{display:none}
  .wd-bar{display:none}
  
  /* Bottom Nav höher + safe area */
  .mn{display:block;position:fixed;bottom:0;left:0;right:0;background:linear-gradient(180deg,transparent,var(--bg-0) 20%);padding:16px 0 32px;z-index:100}
  .mn-in{display:flex;justify-content:center;align-items:center;gap:6px;padding:8px 12px;background:rgba(30,30,30,.95);border:1px solid var(--line-1);border-radius:16px;margin:0 16px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
  .mn-i{padding:10px 12px;font-size:10px}
  .mn-c{width:44px;height:44px}
  
  /* Event Popup breiter auf Mobile */
  .exp-card{width:96%;max-width:none;padding:28px 20px 24px;border-radius:14px}
  
  /* Event Grid */
  .ev-grid,.o-grid{grid-template-columns:1fr}
  .ev{padding:16px}
  .ev-t{font-size:18px}
  
  /* Stats Grid */
  .sg{grid-template-columns:1fr 1fr;max-width:100%}
  .cb{max-width:100%}
  .fr{grid-template-columns:1fr}
  
  /* Expand Card */
  .exp-row{flex-direction:column;gap:14px}
  .exp-where{flex-direction:column;gap:12px;align-items:flex-start}
  .exp-card{padding:24px 20px 20px;margin:0;border-radius:16px;max-height:85vh}
  
  /* Admin on Mobile */
  .at{display:flex;flex-wrap:wrap;gap:4px;padding:0}
  .atb{flex-shrink:0;padding:10px 12px;font-size:11px;white-space:nowrap}
  .admin-section-header{flex-wrap:wrap;gap:8px}
  .admin-form-grid{grid-template-columns:1fr}
  .admin-form-row{flex-direction:column}
  .admin-list{max-width:100%}
  .admin-form{max-width:100%}
  
  /* Slide Menu auf Mobile */
  .slide-menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--line-1)}
  .slide-menu-close{background:none;border:none;color:var(--t3);font-size:24px;cursor:pointer;padding:4px}
  .slide-menu-nav{display:flex;flex-direction:column;gap:4px}
  .slide-menu-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;background:none;border:none;color:var(--t2);font-size:14px;cursor:pointer;text-align:left;transition:all .2s}
  .slide-menu-item:hover,.slide-menu-item.active{background:rgba(184,157,86,.1);color:var(--gold)}
  .slide-menu-cities{margin-top:20px;padding-top:20px;border-top:1px solid var(--line-1)}
  .slide-menu-cities-title{font-size:10px;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}
  .slide-menu-city{padding:10px 12px;border-radius:6px;background:none;border:1px solid var(--line-1);color:var(--t3);font-size:12px;cursor:pointer;transition:all .2s}
  .slide-menu-city.sel{border-color:var(--gold);color:var(--gold);background:rgba(184,157,86,.1)}
}

/* ══════════════════════════════════════════════════════════
   FIX: Overlay Pointer Events
   ══════════════════════════════════════════════════════════ */
.exp-overlay{pointer-events:none}
.exp-overlay.open{pointer-events:auto}
.contact-overlay{pointer-events:none}
.contact-overlay.open{pointer-events:auto}
#expand-overlay{pointer-events:none}
#expand-overlay.open{pointer-events:auto}
#contact-overlay{pointer-events:none}
#contact-overlay.open{pointer-events:auto}
#embed-overlay{pointer-events:none}
#embed-overlay.open{pointer-events:auto}

/* ══════════════════════════════════════════════════════════
   FIX: Badges Row (no more absolute overlap)
   ══════════════════════════════════════════════════════════ */
.ev{position:relative}
.ev-star{position:absolute;top:12px;right:12px;color:var(--gold);z-index:2}
.exp-card{position:relative}
.exp-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.exp-badge-hl{display:inline-flex;align-items:center;gap:4px;font-size:9px;color:var(--gold);font-weight:400;letter-spacing:.06em;text-transform:uppercase}
.exp-badge-hl svg{width:9px;height:9px}
.exp-badge-cat{font-size:10px;color:var(--t4);letter-spacing:.1em;text-transform:uppercase;font-weight:300}
.exp-badge-cat.vip{background:linear-gradient(135deg,var(--gold),#d4af37,#a08945);color:#1c1c1c;padding:4px 10px;border-radius:4px;font-weight:500;display:inline-flex;align-items:center;gap:4px}
.exp-badge-cat.vip svg{color:#1c1c1c}

/* ══════════════════════════════════════════════════════════
   FIX: Popup Styling
   ══════════════════════════════════════════════════════════ */
.exp-t{font-family:var(--serif);font-size:32px;font-weight:400;letter-spacing:.01em;line-height:1.15;margin:12px 0 20px;color:var(--t1)}
.exp-when{display:flex;flex-direction:column;gap:8px}
.exp-date,.exp-time{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--t2);font-weight:300}
.exp-date svg,.exp-time svg{color:var(--gold);flex-shrink:0}
.exp-where{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:20px 0;padding:20px 0;border-top:1px solid var(--line-1);border-bottom:1px solid var(--line-1)}
.exp-venue-name{font-size:15px;color:var(--t1);font-weight:400;margin-bottom:4px}
.exp-venue-addr{display:flex!important;font-size:12px;color:var(--t3);font-weight:200;display:flex;justify-content:space-between;align-items:center;gap:12px}
.exp-map{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;font-size:11px;font-weight:300;color:var(--t2);border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--btn-bg);cursor:pointer;transition:all .3s;text-decoration:none;font-family:var(--sans);letter-spacing:.02em;white-space:nowrap;flex-shrink:0}
.exp-map:hover{background:var(--btn-hov);border-color:var(--line-3);color:var(--t1)}
.exp-map svg{width:11px;height:11px;color:var(--gold)}
.exp-desc{font-size:13px;color:var(--t2);line-height:1.7;font-weight:200;margin:16px 0}
.exp-org{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--t3);font-weight:200}
.exp-org-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.exp-reactions{display:flex;gap:6px;margin-left:auto}
.exp-route-link{margin-left:auto;color:var(--t2);font-size:10px;font-weight:300;text-decoration:none;padding:4px 10px;border:1px solid rgba(255,255,255,0.15);border-radius:4px;opacity:.6;transition:all .2s;white-space:nowrap}
.exp-route-link:hover{opacity:1;border-color:var(--gold);color:var(--gold)}
.exp-foot{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--line-1)}
.exp-org svg{color:var(--gold)}
.exp-stats{display:flex;gap:16px}
.exp-stat{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t3);font-weight:200}
.exp-stat svg{color:var(--gold)}
.exp-bottom{display:flex;flex-direction:column;gap:0;margin-top:20px;padding-top:16px;border-top:1px solid var(--line-1)}
.exp-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.exp-share{display:flex;align-items:center;gap:8px;padding:10px 20px;font-size:12px;color:var(--t2);border:1px solid var(--line-2);border-radius:6px;background:transparent;cursor:pointer;transition:all .25s}
.exp-share:hover{border-color:var(--gold);color:var(--gold)}

/* VIP PIN Input */
.exp-pin-section{margin:20px 0;padding:20px;background:rgba(184,157,86,.05);border:1px solid rgba(184,157,86,.2);border-radius:10px;text-align:center}
.exp-pin-label{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--gold);margin-bottom:16px}
.exp-pin-inputs{display:flex;justify-content:center;gap:10px;margin-bottom:16px}
.exp-pin-digit{width:44px;height:52px;background:var(--bg-1);border:1px solid var(--line-2);border-radius:8px;text-align:center;font-size:20px;font-weight:500;color:var(--t1);font-family:var(--mono)}
.exp-pin-digit:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px rgba(184,157,86,.2)}
.exp-pin-btn{background:linear-gradient(135deg,var(--gold),#a08945);border:none;border-radius:6px;padding:10px 24px;color:#1c1c1c;font-size:12px;font-weight:500;cursor:pointer;transition:all .25s}
.exp-pin-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(184,157,86,.3)}
.exp-pin-error{color:#b05050;font-size:11px;margin-top:12px}
.exp-pin-success{display:flex;align-items:center;justify-content:center;gap:8px;color:#6a9955;font-size:13px}

/* ══════════════════════════════════════════════════════════
   FIX: Loading State
   ══════════════════════════════════════════════════════════ */
.loading{text-align:center;padding:60px 20px;color:var(--t3)}
.loading::after{content:'';display:inline-block;width:20px;height:20px;border:2px solid var(--gold);border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite;margin-left:10px;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
.no-results{text-align:center;padding:40px 20px;color:var(--t3);font-style:italic}

/* ══════════════════════════════════════════════════════════
   ADMIN PANEL STYLES
   ══════════════════════════════════════════════════════════ */
.admin-section{margin:24px 0;padding:20px;background:var(--bg-1);border-radius:var(--r);border:1px solid var(--line-1)}
.admin-section-title{font-family:var(--serif);font-size:16px;color:var(--t1);margin-bottom:16px;font-weight:400}
.admin-list{display:flex;flex-direction:column;gap:8px}
.admin-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-2);border-radius:var(--r-s);border:1px solid var(--line-1)}
.admin-item-info{flex:1;min-width:0}
.admin-item-title{font-size:13px;color:var(--t1);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-item-meta{font-size:11px;color:var(--t3);margin-top:2px;font-weight:200}
.admin-item-del{background:none;border:none;cursor:pointer;font-size:14px;padding:4px 8px;opacity:.6;transition:opacity .2s}
.admin-item-del:hover{opacity:1}
.admin-item-amount{font-size:13px;color:var(--gold);font-weight:400}
.admin-empty{text-align:center;padding:24px;color:var(--t4);font-style:italic;font-size:12px}

/* Admin Wedding Cards */
.admin-wedding-list{display:flex;flex-direction:column;gap:16px}
.admin-wedding-card{padding:20px;background:var(--bg-2);border-radius:var(--r);border:1px solid var(--line-1)}
.admin-wedding-card.pending{border-left:3px solid #d4a024}
.admin-wedding-card.approved{border-left:3px solid #4a9}
.admin-wedding-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.admin-wedding-couple{font-family:var(--serif);font-size:18px;color:var(--t1)}
.admin-wedding-status{font-size:10px;padding:4px 10px;border-radius:4px;font-weight:500;letter-spacing:.05em}
.admin-wedding-card.pending .admin-wedding-status{background:rgba(212,160,36,.15);color:#d4a024}
.admin-wedding-card.approved .admin-wedding-status{background:rgba(68,170,153,.15);color:#4a9}
.admin-wedding-date{font-size:12px;color:var(--t2);margin-bottom:6px}
.admin-wedding-email{font-size:12px;color:var(--t3);margin-bottom:8px}
.admin-wedding-email-link{color:var(--gold);text-decoration:none}
.admin-wedding-email-link:hover{text-decoration:underline}
.admin-wedding-detail{font-size:11px;color:var(--t3);margin-bottom:4px}
.admin-wedding-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line-1);align-items:center}
.admin-wedding-pin-input{display:flex;align-items:center;gap:8px}
.admin-wedding-pin-input label{font-size:12px;color:var(--t2)}
.admin-pin-input{width:60px;text-align:center;font-family:var(--mono);font-size:14px;letter-spacing:2px;padding:8px;background:var(--bg-0);border:1px solid var(--line-2);border-radius:4px;color:var(--t1)}
.admin-wedding-pin-display{font-size:13px;color:var(--t2);padding:8px 12px;background:var(--bg-0);border-radius:4px}
.admin-wedding-pin-display strong{color:var(--gold);font-family:var(--mono);letter-spacing:2px}

/* Admin Buttons */
.admin-btn{padding:8px 14px;font-size:11px;border:1px solid var(--line-2);border-radius:4px;background:transparent;color:var(--t2);cursor:pointer;transition:all .2s;font-weight:300}
.admin-btn:hover{border-color:var(--gold);color:var(--gold)}
.admin-btn.success{border-color:rgba(68,170,153,.4);color:#4a9}
.admin-btn.success:hover{background:rgba(68,170,153,.1);border-color:#4a9}
.admin-btn.danger{border-color:rgba(180,80,80,.4);color:#b55}
.admin-btn.danger:hover{background:rgba(180,80,80,.1);border-color:#b55}
.admin-btn-icon{background:none;border:none;cursor:pointer;font-size:16px;padding:4px;opacity:.7;transition:opacity .2s}
.admin-btn-icon:hover{opacity:1}

/* Admin Chart */
.admin-chart{height:180px;background:rgba(255,255,255,.02);border-radius:8px;display:flex;align-items:flex-end;padding:20px;gap:8px}
.admin-chart-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.admin-chart-fill{background:var(--gold);width:100%;border-radius:4px 4px 0 0;opacity:.8;transition:height .3s}
.admin-chart-label{font-size:9px;color:var(--t4)}

/* Admin Categories */
.admin-cat-add{display:flex;gap:10px;margin-bottom:16px}
.admin-cat-add .fi{flex:1}
.admin-cat-list{display:flex;flex-direction:column;gap:6px}
.admin-cat-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-2);border-radius:var(--r-s);border:1px solid var(--line-1)}
.admin-cat-name{font-size:13px;color:var(--t1)}
.admin-cat-actions{display:flex;gap:4px}

/* Admin Finance */
.admin-finance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.admin-finance-total{font-size:14px;color:var(--t1)}
.admin-finance-total strong{color:var(--gold)}
.admin-finance-actions{margin:16px 0}

/* Admin Settings */
.admin-settings-checks{display:flex;flex-direction:column;gap:12px;margin:16px 0}
.admin-check{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;color:var(--t2)}
.admin-check input[type="checkbox"]{width:16px;height:16px;accent-color:var(--gold)}

/* Create Choice */
.create-city{display:flex;gap:6px;margin-bottom:20px}
.create-choice{display:flex;gap:12px;flex-wrap:wrap}

/* Admin Section Header */
.admin-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.admin-item-actions{display:flex;gap:4px;align-items:center}
.admin-item.highlighted{background:rgba(184,157,86,.08);border-color:rgba(184,157,86,.2)}
.admin-hl-badge{color:var(--gold);font-size:10px;margin-right:4px}
.admin-vip-badge{background:var(--gold);color:var(--bg-0);font-size:8px;padding:2px 5px;border-radius:3px;margin-right:6px;font-weight:500}

/* Admin List Items - kompakter */
.admin-section{max-width:600px}
.admin-list{display:flex;flex-direction:column;gap:6px}
.admin-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-2);border-radius:var(--r-s);border:1px solid var(--line-1);gap:12px}
.admin-item-info{flex:1;min-width:0}
.admin-item-title{font-size:13px;color:var(--t1);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-item-meta{font-size:10px;color:var(--t3);margin-top:2px;font-weight:200}

/* Admin Form */
.admin-form{background:var(--bg-2);border:1px solid var(--gold);border-radius:var(--r);padding:20px;margin-bottom:16px}
.admin-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line-1)}
.admin-form-header h4{font-family:var(--serif);font-size:15px;color:var(--gold);font-weight:400;margin:0}
.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.admin-form-row{display:flex;gap:12px;align-items:flex-start;margin-top:12px}
.admin-form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;padding-top:16px;border-top:1px solid var(--line-1)}

/* Select Dropdown Fix */
select.fi,.admin-form select{
    background:var(--bg-1);
    color:var(--t1);
    border:1px solid var(--line-2);
    border-radius:var(--r-s);
    padding:10px 12px;
    font-size:13px;
    font-family:var(--sans);
    font-weight:300;
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 10px center;
    padding-right:32px;
}
select.fi:focus,.admin-form select:focus{
    outline:none;
    border-color:var(--gold);
}
select.fi option,.admin-form select option{
    background:var(--bg-1);
    color:var(--t1);
    padding:8px;
}

@media(max-width:768px){
  .admin-form-grid{grid-template-columns:1fr}
  .admin-form-row{flex-direction:column}
  .admin-list{max-width:100%}
  .admin-form{max-width:100%}
}

/* ══════════════════════════════════════════════════════════════════════
   DUX v9 - VIP LOCKED SECTION
   ══════════════════════════════════════════════════════════════════════ */
.exp-vip-locked{margin:20px 0;padding:24px;background:rgba(180,80,80,.06);border:1px solid rgba(180,80,80,.15);border-radius:10px;text-align:center}
.exp-vip-lock-icon{color:rgba(180,80,80,.5);margin-bottom:12px}
.exp-vip-lock-text{font-size:12px;color:var(--t3);margin-bottom:16px}
.exp-vip-unlock-btn{padding:10px 20px;background:#b05050;border:none;border-radius:6px;color:#fff;font-size:12px;cursor:pointer;transition:all .2s}
.exp-vip-unlock-btn:hover{background:#a04545;transform:translateY(-1px)}
.exp-vip-unlocked{margin:16px 0}
.exp-vip-success{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;background:rgba(106,153,85,.1);border:1px solid rgba(106,153,85,.25);border-radius:6px;color:#6a9955;font-size:12px;margin-bottom:12px}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.exp-vip-locked.shake{animation:shake .4s ease-out}

/* ══════════════════════════════════════════════════════════════════════
   DUX v9 - GUEST POPUP WITH COUNTERS
   ══════════════════════════════════════════════════════════════════════ */
.guest-popup-form{padding:16px 20px;border-bottom:1px solid var(--line-1)}
.guest-popup-form input{width:100%;background:var(--bg-1);border:1px solid var(--line-2);border-radius:6px;padding:10px 12px;color:var(--t1);font-size:13px;margin-bottom:12px}
.guest-popup-form input:focus{outline:none;border-color:var(--gold)}
.guest-counters{display:flex;gap:12px;margin-bottom:12px}
.guest-counter{flex:1;display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-1);border:1px solid var(--line-1);border-radius:6px}
.guest-counter span{font-size:12px;color:var(--t2)}
.counter-box{display:flex;align-items:center;gap:8px}
.counter-box button{width:28px;height:28px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:4px;color:var(--t2);font-size:16px;cursor:pointer;transition:all .2s}
.counter-box button:hover{border-color:var(--gold);color:var(--gold)}
.counter-box span{width:20px;text-align:center;font-size:14px;color:var(--t1)}
.guest-popup-form .btn-g{width:100%}
.guest-popup-total{padding:0 20px}
.guest-total{padding:12px 0;font-size:12px;color:var(--gold);text-align:center;border-top:1px solid var(--line-1)}

/* ══════════════════════════════════════════════════════════════════════
   DUX v9 - APPROVAL MODAL
   ══════════════════════════════════════════════════════════════════════ */
.approval-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .3s}
.approval-overlay.open{opacity:1}
.approval-modal{background:var(--bg-0);border:1px solid var(--line-2);border-radius:16px;width:100%;max-width:400px;padding:28px;position:relative;text-align:center}
.approval-close{position:absolute;top:12px;right:12px;width:28px;height:28px;background:transparent;border:1px solid var(--line-1);border-radius:6px;color:var(--t3);font-size:18px;cursor:pointer}
.approval-close:hover{color:var(--t1);border-color:var(--t3)}
.approval-icon{width:48px;height:48px;margin:0 auto 12px;background:rgba(106,153,85,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;color:#6a9955}
.approval-modal h3{font-family:var(--serif);font-size:20px;color:#6a9955;margin-bottom:4px}
.approval-couple{font-size:14px;color:var(--t2);margin-bottom:20px}
.approval-link{text-align:left;margin-bottom:16px}
.approval-link label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:6px}
.approval-link-box{display:flex;gap:8px}
.approval-link-box input{flex:1;background:var(--bg-1);border:1px solid var(--line-1);border-radius:6px;padding:10px;color:var(--gold);font-size:11px;font-family:var(--mono)}
.approval-link-box button{padding:10px 14px;background:var(--btn-bg);border:1px solid var(--line-2);border-radius:6px;color:var(--t2);font-size:11px;cursor:pointer;transition:all .2s}
.approval-link-box button:hover{border-color:var(--gold);color:var(--gold)}
.approval-link-box button.copied{border-color:#6a9955;color:#6a9955}
.approval-pin{padding:12px;background:rgba(184,157,86,.06);border:1px solid rgba(184,157,86,.12);border-radius:8px;margin-bottom:16px;font-size:13px;color:var(--t2)}
.approval-pin strong{font-family:var(--mono);color:var(--gold);letter-spacing:2px;font-size:16px}
.approval-pin span{font-size:11px;color:var(--t4)}
.approval-email{display:block;padding:10px;border:1px solid var(--gold);border-radius:6px;color:var(--gold);font-size:12px;text-decoration:none;margin-bottom:16px;transition:all .2s}
.approval-email:hover{background:rgba(184,157,86,.1)}
.approval-done{width:100%}

/* ══════════════════════════════════════════════════════════════════════
   DUX - ECHO (Private Reflexion)
   ══════════════════════════════════════════════════════════════════════ */
.echo-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s}
.echo-overlay.open{opacity:1;pointer-events:auto}
.echo-card{background:var(--bg-0);border:1px solid var(--line-2);border-radius:16px;width:100%;max-width:380px;padding:28px;position:relative}
.echo-close{position:absolute;top:12px;right:12px;width:28px;height:28px;background:transparent;border:1px solid var(--line-1);border-radius:6px;color:var(--t3);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.echo-close:hover{color:var(--t1);border-color:var(--t3)}
.echo-header{text-align:center;margin-bottom:20px}
.echo-icon{width:48px;height:48px;margin:0 auto 12px;background:rgba(184,157,86,.1);border:1px solid rgba(184,157,86,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold)}
.echo-icon.sealed{background:rgba(255,255,255,.03);border-color:var(--line-2);color:var(--t3)}
.echo-icon.unlocked{background:rgba(106,153,85,.1);border-color:rgba(106,153,85,.2);color:#6a9955}
.echo-title{font-family:var(--serif);font-size:18px;color:var(--t1);margin-bottom:4px}
.echo-event{font-size:12px;color:var(--t4);font-weight:200}
.echo-info{font-size:11px;color:var(--t3);text-align:center;margin-bottom:16px;font-weight:200;line-height:1.5}
.echo-input{width:100%;min-height:120px;background:var(--bg-1);border:1px solid var(--line-1);border-radius:8px;padding:14px;color:var(--t1);font-size:13px;font-family:var(--sans);resize:none;font-weight:200;line-height:1.6}
.echo-input:focus{outline:none;border-color:var(--gold)}
.echo-input::placeholder{color:var(--t4)}
.echo-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.echo-chars{font-size:10px;color:var(--t4);font-family:var(--mono)}
.echo-save{padding:10px 20px;background:linear-gradient(135deg,var(--gold),#a08945);border:none;border-radius:6px;color:#1c1c1c;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}
.echo-save:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(184,157,86,.3)}
.echo-sealed{text-align:center;padding:24px 0}
.echo-countdown{display:flex;justify-content:center;gap:16px;margin-bottom:16px}
.echo-time-block{display:flex;flex-direction:column;align-items:center;gap:4px}
.echo-time-block span{font-family:var(--mono);font-size:28px;color:var(--t1);font-weight:300}
.echo-time-block{font-size:10px;color:var(--t4);text-transform:uppercase;letter-spacing:.08em}
.echo-unlock-date{font-size:11px;color:var(--gold);font-weight:200}
.echo-content{font-size:14px;color:var(--t2);line-height:1.7;font-weight:200;padding:20px 0;border-top:1px solid var(--line-1);border-bottom:1px solid var(--line-1);margin:16px 0}
.echo-meta{font-size:10px;color:var(--t4);text-align:center;font-weight:200}

/* ══════════════════════════════════════════════════════════════════════
   DUX - PROFILE (Meine Echos)
   ══════════════════════════════════════════════════════════════════════ */
.profile-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s}
.profile-overlay.open{opacity:1;pointer-events:auto}
.profile-card{background:var(--bg-0);border:1px solid var(--line-2);border-radius:16px;width:100%;max-width:400px;padding:28px;position:relative;max-height:80vh;overflow-y:auto}
.profile-close{position:absolute;top:12px;right:12px;width:28px;height:28px;background:transparent;border:1px solid var(--line-1);border-radius:6px;color:var(--t3);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.profile-close:hover{color:var(--t1);border-color:var(--t3)}
.profile-header{text-align:center;margin-bottom:24px}
.profile-icon{width:48px;height:48px;margin:0 auto 12px;background:rgba(255,255,255,.04);border:1px solid var(--line-1);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--t2)}
.profile-title{font-family:var(--serif);font-size:18px;color:var(--t1)}
.profile-echos{display:flex;flex-direction:column;gap:8px}
.profile-echo{display:flex;align-items:center;gap:12px;padding:14px 16px;background:rgba(255,255,255,.02);border:1px solid var(--line-1);border-radius:8px;cursor:pointer;transition:all .2s}
.profile-echo:hover{background:rgba(255,255,255,.04);border-color:var(--line-2)}
.profile-echo-name{flex:1;font-size:13px;color:var(--t2);font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-echo-lock{color:var(--t4)}
.echo-timer{font-family:var(--mono);font-size:11px;color:var(--t3);white-space:nowrap}
.echo-unlocked-badge{font-size:10px;color:var(--gold);text-transform:uppercase;letter-spacing:.05em}
.profile-empty{text-align:center;padding:32px 16px;color:var(--t4);font-size:12px;font-weight:200}

/* Profile Tabs */
.profile-tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:1px solid var(--line-1);padding-bottom:12px}
.profile-tab{flex:1;padding:10px 16px;background:transparent;border:1px solid var(--line-1);border-radius:6px;color:var(--t3);font-size:12px;font-weight:300;cursor:pointer;transition:all .2s}
.profile-tab:hover{color:var(--t2);border-color:var(--line-2)}
.profile-tab.active{background:rgba(184,157,86,.1);border-color:var(--gold);color:var(--gold)}
.profile-tab-content{max-height:300px;overflow-y:auto}

/* Profile Entries */
.profile-entry{display:flex;align-items:center;gap:12px;padding:12px 14px;background:rgba(255,255,255,.02);border:1px solid var(--line-1);border-radius:8px;margin-bottom:8px;transition:all .2s}
.profile-entry:hover{background:rgba(255,255,255,.04);border-color:var(--line-2)}
.profile-entry-info{flex:1;display:flex;align-items:center;gap:12px;cursor:pointer;min-width:0}
.profile-entry-info i{font-size:18px;color:var(--t3);flex-shrink:0}
.profile-entry-details{min-width:0}
.profile-entry-name{font-size:13px;color:var(--t2);font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-entry-meta{font-size:11px;color:var(--t4);font-weight:200;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-entry-delete{width:32px;height:32px;background:transparent;border:1px solid rgba(220,80,80,.3);border-radius:6px;color:rgba(220,80,80,.6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.profile-entry-delete:hover{background:rgba(220,80,80,.1);border-color:rgba(220,80,80,.5);color:rgba(220,80,80,.9)}
.profile-entry-delete i{font-size:16px}

/* Profile User Info */
.profile-email{font-size:12px;color:var(--t4);font-weight:200;margin-top:4px}
.profile-logout{width:100%;margin-top:16px;padding:12px;background:transparent;border:1px solid rgba(220,80,80,.3);border-radius:6px;color:rgba(220,80,80,.7);font-size:13px;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}
.profile-logout:hover{background:rgba(220,80,80,.1);border-color:rgba(220,80,80,.5);color:rgba(220,80,80,.9)}
.profile-logout i{font-size:16px}

/* Auth Tabs & Forms */
.auth-tabs{display:flex;gap:8px;margin-bottom:20px}
.auth-tab{flex:1;padding:10px 16px;background:transparent;border:1px solid var(--line-1);border-radius:6px;color:var(--t3);font-size:13px;font-weight:300;cursor:pointer;transition:all .2s}
.auth-tab:hover{color:var(--t2);border-color:var(--line-2)}
.auth-tab.active{background:rgba(184,157,86,.1);border-color:var(--gold);color:var(--gold)}
.auth-content{display:flex;flex-direction:column;gap:16px}
.auth-field{display:flex;flex-direction:column;gap:6px}
.auth-field label{font-size:12px;color:var(--t3);font-weight:300}
.auth-field input{background:rgba(255,255,255,.03);border:1px solid var(--line-1);border-radius:6px;padding:12px 14px;color:var(--t1);font-size:14px;font-family:var(--sans);transition:all .2s}
.auth-field input:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.05)}
.auth-field input::placeholder{color:var(--t4)}
.auth-error{font-size:12px;color:#dc5050;min-height:16px}
.auth-btn{width:100%;padding:14px;background:linear-gradient(135deg,var(--gold),#a08945);border:none;border-radius:6px;color:#1c1c1c;font-size:14px;font-weight:400;cursor:pointer;transition:all .2s}
.auth-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}
.auth-forgot{width:100%;margin-top:12px;padding:10px;background:transparent;border:none;color:var(--t4);font-size:12px;cursor:pointer;transition:color .2s}
.auth-forgot:hover{color:var(--gold)}
.auth-back{width:100%;margin-top:12px;padding:10px;background:transparent;border:none;color:var(--t3);font-size:13px;cursor:pointer;transition:color .2s}
.auth-back:hover{color:var(--t1)}
.auth-info{font-size:13px;color:var(--t3);line-height:1.5;margin-bottom:16px}
.auth-success{font-size:12px;color:#4a9;min-height:16px;margin-bottom:8px}

/* Reset Password Page */
.reset-page{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:20px}
.reset-card{background:linear-gradient(180deg,rgba(42,42,42,.98),rgba(32,32,32,.98));border:1px solid var(--line-2);border-radius:16px;padding:40px;max-width:400px;width:100%}
.reset-header{text-align:center;margin-bottom:32px}
.reset-header h1{font-family:var(--serif);font-size:24px;font-weight:400;color:var(--t1);margin:12px 0 0}
.reset-icon{font-size:40px;color:var(--gold)}
.reset-home{display:block;text-align:center;margin-top:20px;color:var(--t4);font-size:13px;text-decoration:none;transition:color .2s}
.reset-home:hover{color:var(--gold)}

/* ══════════════════════════════════════════════════════════════════════
   DUX - CREATE FORM OVERLAY
   ══════════════════════════════════════════════════════════════════════ */
.create-overlay{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s;overflow-y:auto}
.create-overlay.open{opacity:1;pointer-events:auto}
.create-form-popup{background:linear-gradient(180deg,rgba(42,42,42,.98),rgba(32,32,32,.98));border:1px solid var(--line-2);border-radius:16px;width:100%;max-width:520px;padding:32px;position:relative;box-shadow:var(--sh-1)}
.create-form-close{position:absolute;top:16px;right:16px;width:32px;height:32px;background:transparent;border:1px solid var(--line-1);border-radius:6px;color:var(--t3);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}
.create-form-close:hover{color:var(--t1);border-color:var(--t3)}
.create-form-header{text-align:center;margin-bottom:28px}
.create-form-icon{font-size:36px;margin-bottom:12px;color:var(--gold)}
.create-form-icon i{font-size:40px}
.create-form-header h2{font-family:var(--serif);font-size:24px;font-weight:400;color:var(--t1);margin-bottom:6px}
.create-form-header p{font-size:13px;color:var(--t3);font-weight:200}
.create-form{display:flex;flex-direction:column;gap:16px}
.cf-row{display:flex;gap:12px}
.cf-field{flex:1;display:flex;flex-direction:column;gap:6px}
.cf-field.full{flex:1 1 100%}
.cf-field label{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;font-weight:300}
.cf-field input,.cf-field select,.cf-field textarea{width:100%;background:rgba(25,25,25,.8);border:1px solid var(--line-1);border-radius:6px;padding:12px 14px;color:var(--t1);font-size:14px;font-weight:300;transition:border-color .2s}
.cf-field input:focus,.cf-field select:focus,.cf-field textarea:focus{outline:none;border-color:var(--gold)}
.cf-field input::placeholder,.cf-field textarea::placeholder{color:var(--t4)}
.cf-field select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.3)' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.cf-field textarea{resize:vertical;min-height:80px}
.cf-actions{display:flex;gap:12px;margin-top:12px;padding-top:20px;border-top:1px solid var(--line-1)}
.cf-btn{flex:1;padding:14px 20px;border-radius:6px;font-size:14px;font-weight:400;cursor:pointer;transition:all .2s;border:none}
.cf-btn.secondary{background:rgba(255,255,255,.06);color:var(--t2);border:1px solid var(--line-1)}
.cf-btn.secondary:hover{background:rgba(255,255,255,.1);color:var(--t1)}
.cf-btn.primary{background:linear-gradient(135deg,var(--gold),#a08945);color:#1c1c1c;font-weight:500}
.cf-btn.primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(184,157,86,.35)}
@media(max-width:600px){
    .cf-row{flex-direction:column;gap:16px}
    .create-form-popup{padding:24px;margin:10px}
}

/* Success Toast */
.success-toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(20px);background:linear-gradient(135deg,var(--gold),#a08945);color:#1c1c1c;padding:14px 28px;border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 8px 32px rgba(184,157,86,.4);opacity:0;transition:all .3s;z-index:99999;pointer-events:none}
.success-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ══════════════════════════════════════════════════════════════════════
   DUX - ADMIN ADDITIONAL STYLES
   ══════════════════════════════════════════════════════════════════════ */
.admin-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.admin-btn{padding:8px 16px;background:rgba(255,255,255,.06);border:1px solid var(--line-1);border-radius:6px;color:var(--t2);font-size:12px;cursor:pointer;transition:all .2s}
.admin-btn:hover{background:rgba(255,255,255,.1);border-color:var(--t3)}
.admin-btn.success{background:rgba(106,153,85,.15);border-color:rgba(106,153,85,.4);color:#6a9955}
.admin-btn.success:hover{background:rgba(106,153,85,.25)}
.admin-btn.danger{background:rgba(180,80,80,.1);border-color:rgba(180,80,80,.3);color:#b05050}
.admin-btn.danger:hover{background:rgba(180,80,80,.2)}
.admin-btn-icon{width:32px;height:32px;background:transparent;border:1px solid var(--line-1);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:14px}
.admin-btn-icon:hover{border-color:var(--gold);background:rgba(184,157,86,.1)}
.admin-item.highlighted{border-color:var(--gold);background:rgba(184,157,86,.05)}
.admin-hl-badge,.admin-vip-badge{font-size:10px;margin-right:6px}
.admin-vip-badge{color:var(--gold)}
.admin-item-actions{display:flex;gap:6px;align-items:center}
.admin-form{background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r);padding:20px;margin-bottom:16px}
.admin-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.admin-form-header h4{font-family:var(--serif);font-size:15px;font-weight:400}
.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.admin-form-row{display:flex;gap:12px;align-items:flex-start;margin-top:12px}
.admin-form-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line-1)}
.admin-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;color:var(--t2)}
.admin-check input{width:16px;height:16px;accent-color:var(--gold)}

/* Admin Wedding Cards */
.admin-wedding-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.admin-wedding-couple{font-family:var(--serif);font-size:18px;color:var(--t1)}
.admin-wedding-status{font-size:10px;font-weight:500;padding:4px 10px;border-radius:4px}
.admin-wedding-card.pending .admin-wedding-status{background:rgba(212,160,36,.2);color:#d4a024}
.admin-wedding-card.approved .admin-wedding-status{background:rgba(68,170,153,.2);color:#4a9}
.admin-wedding-date,.admin-wedding-detail{font-size:12px;color:var(--t3);margin:6px 0;font-weight:200}
.admin-wedding-email{font-size:12px;color:var(--t3);margin:8px 0}
.admin-wedding-email-link{color:var(--gold);text-decoration:none;transition:opacity .2s}
.admin-wedding-email-link:hover{opacity:.7}
.admin-wedding-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--line-1)}
.admin-wedding-pin-input{display:flex;align-items:center;gap:8px}
.admin-wedding-pin-input label{font-size:12px;color:var(--t3)}
.admin-pin-input{width:60px;text-align:center;font-family:var(--mono);font-size:14px;letter-spacing:2px;background:var(--bg-1);border:1px solid var(--line-2);border-radius:6px;padding:8px;color:var(--gold)}
.admin-wedding-pin-display{font-family:var(--mono);font-size:14px;color:var(--gold);background:rgba(184,157,86,.1);padding:8px 12px;border-radius:6px}
.admin-wedding-rsvp{display:flex;gap:16px;font-size:11px;margin:8px 0;padding:8px 12px;background:var(--bg-0);border-radius:6px}
.admin-wedding-rsvp .rsvp-yes{color:#6a9955}
.admin-wedding-rsvp .rsvp-no{color:#b05050}

/* Admin Categories */
.admin-cat-add{display:flex;gap:8px;margin-bottom:16px}
.admin-cat-list{display:flex;flex-direction:column;gap:8px}
.admin-cat-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-2);border-radius:var(--r-s);border:1px solid var(--line-1)}
.admin-cat-name{font-size:13px;color:var(--t1)}
.admin-cat-actions{display:flex;gap:6px}

/* Admin Finance */
.admin-finance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.admin-finance-total{font-size:14px;color:var(--t1)}
.admin-finance-total strong{color:var(--gold);font-weight:500}
.admin-finance-actions{margin:16px 0}

/* Admin Settings */
.admin-settings-checks{display:flex;flex-direction:column;gap:12px;margin:20px 0}

/* Approval Modal */
.approval-overlay{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:10001;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s}
.approval-overlay.open{opacity:1;pointer-events:auto}
.approval-modal{background:linear-gradient(180deg,rgba(45,45,45,.98),rgba(35,35,35,.98));border:1px solid var(--line-2);border-radius:16px;width:100%;max-width:420px;padding:32px;text-align:center;position:relative}
.approval-close{position:absolute;top:14px;right:14px;width:28px;height:28px;background:transparent;border:1px solid var(--line-1);border-radius:6px;color:var(--t3);font-size:18px;cursor:pointer}
.approval-icon{font-size:48px;margin-bottom:16px;color:#4a9}
.approval-modal h3{font-family:var(--serif);font-size:20px;font-weight:400;margin-bottom:8px}
.approval-couple{font-size:16px;color:var(--gold);margin-bottom:24px}
.approval-link{text-align:left;margin-bottom:16px}
.approval-link label{display:block;font-size:11px;color:var(--t4);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.approval-link-box{display:flex;gap:8px}
.approval-link-box input{flex:1;background:var(--bg-1);border:1px solid var(--line-1);border-radius:6px;padding:10px 12px;color:var(--t2);font-size:12px;font-family:var(--mono)}
.approval-link-box button{padding:10px 16px;background:var(--gold);border:none;border-radius:6px;color:#1c1c1c;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}
.approval-link-box button:hover{transform:translateY(-1px)}
.approval-link-box button.copied{background:#4a9}
.approval-pin{font-size:14px;color:var(--t2);margin:16px 0}
.approval-pin strong{font-family:var(--mono);color:var(--gold);font-size:18px}
.approval-pin span{font-size:11px;color:var(--t4)}
.approval-email{display:inline-block;margin:16px 0;padding:10px 20px;background:rgba(184,157,86,.15);border:1px solid rgba(184,157,86,.3);border-radius:6px;color:var(--gold);text-decoration:none;font-size:13px;transition:all .2s}
.approval-email:hover{background:rgba(184,157,86,.25)}
.approval-done{width:100%;margin-top:16px}


/* Sponsored Ad Card */
.ev.ad{background:var(--bg-2);border:1px dashed var(--line-2);cursor:pointer;opacity:.7}
.ev.ad:hover{opacity:1;border-color:var(--line-1)}
.ev.ad .ev-hl{background:transparent;color:var(--t4);font-size:10px;border:none}
.ev.ad .ev-t{font-size:14px;color:var(--t3)}
.ev.ad .ev-v{font-size:12px;color:var(--t4)}

/* ══════════════════════════════════════════════════════════
   FIX: Mobile Header - Brand left, City right
   ══════════════════════════════════════════════════════════ */
@media(max-width:768px){
  .mobile-header{display:flex;align-items:center;justify-content:space-between;padding:12px 0 8px}
  .mobile-header-left{cursor:pointer;flex-shrink:0}
  .mobile-header-right{text-align:right;flex:1;min-width:0}
  .mobile-brand{font-family:var(--mono);font-size:13px;color:var(--gold);letter-spacing:.04em;font-weight:300}
  .mobile-city{font-family:var(--serif);font-size:18px;color:var(--t1);font-weight:300;margin:0}
  .mobile-city span{color:var(--t3);font-size:14px}
  .mobile-date{font-size:9px;color:var(--t4);text-transform:uppercase;letter-spacing:.05em;display:block;margin-top:1px}
}

/* ══════════════════════════════════════════════════════════
   FIX: Wizard Steps for Create Forms
   ══════════════════════════════════════════════════════════ */
.cf-steps{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:20px}
.cf-step{width:28px;height:28px;border-radius:50%;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--t4);font-weight:300;transition:all .3s}
.cf-step.active{border-color:var(--gold);color:var(--gold)}
.cf-step-line{width:40px;height:1px;background:var(--line-2)}
.cf-page{display:none;flex-direction:column;gap:16px}
.cf-page.active{display:flex}

/* ══════════════════════════════════════════════════════════
   FIX: Like/Maybe Reaction Buttons (outlined, no login)
   ══════════════════════════════════════════════════════════ */
.exp-where-btns{display:flex;gap:6px;flex-shrink:0;align-items:center}
.exp-react-btn{display:inline-flex;align-items:center;gap:5px;padding:8px 12px;font-size:11px;font-weight:300;color:var(--t3);border:1px solid var(--line-2);border-radius:var(--r-s);background:transparent;cursor:pointer;transition:all .3s;font-family:var(--sans);letter-spacing:.02em;white-space:nowrap}
.exp-react-btn:hover{border-color:var(--line-3);color:var(--t2)}
.exp-react-btn svg{width:11px;height:11px;transition:all .3s}
.exp-react-btn.reacted{border-color:var(--gold);color:var(--gold)}
.exp-react-btn.reacted svg{fill:var(--gold);stroke:var(--gold)}
.exp-react-count{font-size:10px;font-family:var(--mono)}

@media(max-width:768px){
  .exp-where-btns{flex-wrap:wrap;gap:6px}
  .exp-react-btn{padding:7px 10px;font-size:10px}
}

/* ══════════════════════════════════════════════════════════
   Login Hint on Create Page
   ══════════════════════════════════════════════════════════ */
.create-login-hint{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;margin:0 0 16px;background:transparent;border:1px solid rgba(184,157,86,.15);border-radius:var(--r-s);font-size:10px;color:var(--t3);font-weight:200;cursor:pointer;transition:all .3s}
.create-login-hint:hover{border-color:var(--gold);color:var(--gold)}
.create-login-hint i{color:var(--gold);font-size:12px;flex-shrink:0}

/* ══════════════════════════════════════════════════════════
   Owner Delete Button in Expand
   ══════════════════════════════════════════════════════════ */
.exp-delete{color:var(--t4) !important;border-color:rgba(220,80,80,.2) !important}
.exp-delete:hover{color:#dc5050 !important;border-color:#dc5050 !important;background:rgba(220,80,80,.06) !important}
.exp-delete svg{color:inherit !important}

/* ══════════════════════════════════════════════════════════
   WEDDING PUBLIC PAGE
   ══════════════════════════════════════════════════════════ */
.wedding-page-container{margin:0;padding:0;max-width:100%;overflow-x:hidden}
.wedding-fullpage{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-0)}
.wedding-page-inner{width:100%;max-width:520px;margin:0 auto}

/* Loading */
.wedding-loading{text-align:center;padding:60px 20px}
.wedding-loading-ring{font-size:40px;animation:weddingPulse 1.5s ease-in-out infinite}
.wedding-loading-text{font-size:12px;color:var(--t4);margin-top:16px;font-weight:200;letter-spacing:.05em}
@keyframes weddingPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.7}}

/* Error */
.wedding-error{text-align:center;padding:60px 20px}
.wedding-error-icon{font-size:40px;margin-bottom:16px}
.wedding-error p{font-size:13px;color:var(--t3);font-weight:200;margin-bottom:24px}

/* PIN Entry */
.wedding-pin-page{text-align:center;padding:40px 20px}
.wedding-pin-ring{font-size:48px;margin-bottom:20px}
.wedding-pin-couple{font-family:var(--serif);font-size:28px;font-weight:300;color:var(--t1);margin:0 0 8px;line-height:1.2}
.wedding-pin-date{font-size:13px;color:var(--t3);font-weight:200;margin:0 0 4px}
.wedding-pin-venue{font-size:11px;color:var(--t4);font-weight:200;margin:0 0 32px}
.wedding-pin-box{margin:32px 0}
.wedding-pin-label{font-size:10px;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px}
.wedding-pin-inputs{display:flex;gap:10px;justify-content:center}
.wedding-pin-digit{width:48px;height:56px;background:var(--bg-1);border:1px solid var(--line-2);border-radius:10px;text-align:center;font-size:22px;font-family:var(--mono);color:var(--t1);outline:none;transition:border-color .2s;-webkit-appearance:none}
.wedding-pin-digit:focus{border-color:var(--gold)}
.wedding-pin-error{font-size:11px;color:#b05050;margin-top:12px;min-height:16px}

/* Hero */
.wedding-hero{text-align:center;padding:40px 0 32px}
.wedding-hero-ring{font-size:36px;margin-bottom:12px}
.wedding-hero-badge{display:inline-block;font-size:9px;color:var(--gold);text-transform:uppercase;letter-spacing:.15em;font-weight:400;margin-bottom:16px;border:1px solid rgba(184,157,86,.25);padding:4px 12px;border-radius:20px}
.wedding-hero-couple{font-family:var(--serif);font-size:32px;font-weight:300;color:var(--t1);margin:0 0 8px;line-height:1.15}
.wedding-hero-amp{color:var(--gold);font-weight:200}
.wedding-hero-date{font-size:13px;color:var(--t3);font-weight:200}

/* Sections */
.wedding-section{margin-bottom:24px}
.wedding-section-title{font-size:10px;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px;font-weight:300}
.wedding-message-section{text-align:center;padding:24px 0;border-bottom:1px solid var(--line-1)}
.wedding-message{font-family:var(--serif);font-size:15px;color:var(--t2);font-weight:200;font-style:italic;line-height:1.7;margin:0}

/* Detail cards (ceremony/party) */
.wedding-sections-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0}
.wedding-detail-card{background:var(--bg-1);border:1px solid var(--line-1);border-radius:12px;padding:20px;text-align:center}
.wedding-detail-icon{font-size:24px;margin-bottom:8px}
.wedding-detail-title{font-size:10px;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}
.wedding-detail-time{font-size:18px;color:var(--gold);font-family:var(--mono);font-weight:300;margin-bottom:6px}
.wedding-detail-venue{font-size:13px;color:var(--t1);font-weight:300;margin-bottom:4px}
.wedding-detail-addr{font-size:11px;color:var(--t4);font-weight:200;margin-bottom:10px;line-height:1.4}
.wedding-maps-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:10px;color:var(--t3);border:1px solid var(--line-2);border-radius:6px;text-decoration:none;transition:all .2s;font-family:var(--sans)}
.wedding-maps-btn:hover{border-color:var(--gold);color:var(--gold)}
.wedding-maps-btn svg{color:var(--gold)}

/* Info grid (dresscode, music, parking) */
.wedding-info-grid{display:flex;flex-wrap:wrap;gap:12px;padding:20px 0;border-top:1px solid var(--line-1)}
.wedding-info-item{flex:1;min-width:120px;background:var(--bg-1);border:1px solid var(--line-1);border-radius:8px;padding:12px 14px}
.wedding-info-label{display:block;font-size:9px;color:var(--t4);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}
.wedding-info-value{font-size:12px;color:var(--t2);font-weight:300}

/* Menu */
.wedding-menu-text{font-size:13px;color:var(--t2);font-weight:200;line-height:1.7;white-space:pre-line;margin:0}

/* RSVP */
.wedding-rsvp-section{padding:28px 0;border-top:1px solid var(--line-1);margin-top:8px}
.wedding-rsvp-btns{display:flex;gap:12px;margin-bottom:16px}
.wedding-rsvp-btn{flex:1;padding:14px;font-size:13px;font-weight:300;border-radius:10px;cursor:pointer;transition:all .25s;font-family:var(--sans)}
.wedding-rsvp-btn.yes{background:transparent;border:1px solid rgba(106,153,85,.35);color:#6a9955}
.wedding-rsvp-btn.yes:hover,.wedding-rsvp-btn.yes.selected{background:rgba(106,153,85,.12);border-color:#6a9955}
.wedding-rsvp-btn.no{background:transparent;border:1px solid rgba(180,80,80,.3);color:#b05050}
.wedding-rsvp-btn.no:hover,.wedding-rsvp-btn.no.selected{background:rgba(180,80,80,.1);border-color:#b05050}
.wedding-rsvp-details{display:flex;flex-direction:column;gap:12px}
.wedding-rsvp-input{width:100%;background:var(--bg-1);border:1px solid var(--line-2);border-radius:8px;padding:11px 14px;color:var(--t1);font-size:13px;font-family:var(--sans);font-weight:200;outline:none;transition:border-color .2s;resize:none;box-sizing:border-box}
.wedding-rsvp-input:focus{border-color:var(--gold)}
.wedding-rsvp-counters{display:flex;gap:12px}
.wedding-rsvp-counter{flex:1;display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-1);border:1px solid var(--line-1);border-radius:8px}
.wedding-rsvp-counter>span{font-size:12px;color:var(--t3);font-weight:200}
.wedding-rsvp-counter-btns{display:flex;align-items:center;gap:10px}
.wedding-rsvp-counter-btns button{width:30px;height:30px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:6px;color:var(--t2);font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}
.wedding-rsvp-counter-btns button:hover{border-color:var(--gold);color:var(--gold)}
.wedding-rsvp-counter-btns span{width:20px;text-align:center;font-size:14px;color:var(--t1);font-family:var(--mono)}
.wedding-rsvp-submit{width:100%;padding:14px;background:var(--gold);color:#1a1a1a;border:none;border-radius:10px;font-size:13px;font-weight:400;cursor:pointer;transition:all .25s;font-family:var(--sans);letter-spacing:.02em}
.wedding-rsvp-submit:hover{filter:brightness(1.1);transform:translateY(-1px)}
.wedding-rsvp-done{display:flex;align-items:center;justify-content:center;gap:10px;padding:20px;background:rgba(106,153,85,.08);border:1px solid rgba(106,153,85,.2);border-radius:10px;color:#6a9955;font-size:13px;font-weight:300}

/* Footer */
.wedding-footer{display:flex;justify-content:space-between;align-items:center;padding:32px 0 20px;margin-top:16px}
.wedding-back-link{background:none;border:none;color:var(--t4);font-size:11px;cursor:pointer;font-family:var(--sans);padding:8px 0;transition:color .2s}
.wedding-back-link:hover{color:var(--gold)}
.wedding-back-btn{padding:10px 20px;background:transparent;border:1px solid var(--line-2);border-radius:8px;color:var(--t2);font-size:12px;cursor:pointer;font-family:var(--sans);transition:all .2s}
.wedding-back-btn:hover{border-color:var(--gold);color:var(--gold)}
.wedding-footer-branding{font-family:var(--mono);font-size:10px;color:var(--t4);letter-spacing:.04em;opacity:.5}

/* Wedding mobile */
@media(max-width:768px){
    .wedding-fullpage{padding:16px;align-items:flex-start}
    .wedding-hero-couple{font-size:26px}
    .wedding-sections-row{grid-template-columns:1fr}
    .wedding-pin-couple{font-size:24px}
    .wedding-pin-digit{width:44px;height:50px;font-size:20px}
    .wedding-rsvp-counters{flex-direction:column}
    .wedding-info-grid{flex-direction:column}
    .wedding-info-item{min-width:auto}
}

/* ══════════════════════════════════════════════════════════
   PROFILE: Republish + Expired State
   ══════════════════════════════════════════════════════════ */
.profile-entry{display:flex;align-items:center;justify-content:space-between;gap:8px}
.profile-entry-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}
.profile-entry-expired{font-size:9px;color:#b05050;font-weight:300;margin-top:2px}
.profile-entry-republish{background:none;border:1px solid var(--line-2);border-radius:6px;color:var(--t3);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;transition:all .2s}
.profile-entry-republish:hover{border-color:var(--gold);color:var(--gold)}
.profile-entry-republish i{font-size:14px}

/* ══════════════════════════════════════════════════════════
   MOBILE PERFECTION FIXES
   ══════════════════════════════════════════════════════════ */

/* Ad Card - matches event card exactly */
.ev.ad-card{cursor:pointer;border:1px solid rgba(184,157,86,.15);background:linear-gradient(135deg,rgba(184,157,86,.04),transparent)}
.ev.ad-card:hover{border-color:rgba(184,157,86,.3)}
.ev.ad-card .ev-cat-label.ad-label{color:var(--gold);display:flex;align-items:center;gap:4px}

/* Job form chips */
.cf-chips{display:flex;flex-wrap:wrap;gap:8px}
.cf-chip{padding:8px 14px;font-size:12px;border:1px solid var(--line-2);border-radius:8px;background:transparent;color:var(--t3);cursor:pointer;transition:all .2s;font-family:var(--sans)}
.cf-chip:hover{border-color:var(--line-3);color:var(--t2)}
.cf-chip.sel{border-color:var(--gold);color:var(--gold);background:rgba(184,157,86,.08)}

/* Create opt jobs */
.create-opt.jobs .create-opt-icon{color:var(--gold)}

/* ══════════════════════════════════════════════════════════
   JOBS - Apply Form + Owner View
   ══════════════════════════════════════════════════════════ */
.job-apply-section,.job-owner-section{margin:20px 0;padding:20px;background:var(--bg-1);border:1px solid var(--line-1);border-radius:10px}
.job-apply-title{font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;font-weight:400}
.job-input{width:100%;background:var(--bg-0);border:1px solid var(--line-2);border-radius:8px;padding:10px 12px;color:var(--t1);font-size:13px;font-family:var(--sans);font-weight:200;margin-bottom:8px;outline:none;transition:border-color .2s;resize:none;box-sizing:border-box}
.job-input:focus{border-color:var(--gold)}
.job-agb{font-size:10px;color:var(--t4);margin:8px 0 12px;font-weight:200}
.job-agb a{color:var(--gold);text-decoration:none}
.job-submit{width:100%;padding:12px;background:var(--gold);color:#1a1a1a;border:none;border-radius:8px;font-size:12px;font-weight:400;cursor:pointer;font-family:var(--sans);transition:all .2s;letter-spacing:.02em}
.job-submit:hover{filter:brightness(1.1);transform:translateY(-1px)}
.job-submit-dezent{width:100%;padding:10px;background:transparent;border:1px solid rgba(184,157,86,.25);border-radius:8px;font-size:11px;font-weight:300;color:var(--gold);cursor:pointer;font-family:var(--sans);transition:all .2s;letter-spacing:.02em}
.job-submit-dezent:hover{border-color:var(--gold);background:rgba(184,157,86,.06)}

/* Newsletter save - dezent */
.btn-nl-save{width:100%;padding:10px;background:transparent;border:1px solid rgba(184,157,86,.25);border-radius:8px;font-size:11px;font-weight:300;color:var(--gold);cursor:pointer;font-family:var(--sans);transition:all .2s;letter-spacing:.02em}
.btn-nl-save:hover{border-color:var(--gold);background:rgba(184,157,86,.06)}
.job-applied{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;background:rgba(106,153,85,.08);border:1px solid rgba(106,153,85,.2);border-radius:8px;color:#6a9955;font-size:12px;font-weight:300;margin:16px 0}
.job-login-hint{display:flex;align-items:center;gap:8px;padding:14px;background:rgba(184,157,86,.06);border:1px solid rgba(184,157,86,.15);border-radius:8px;font-size:11px;color:var(--t3);font-weight:200;margin:16px 0}
.job-login-hint i{color:var(--gold);font-size:14px}

/* Owner: Application list */
.job-app-item{display:flex;justify-content:space-between;align-items:flex-start;padding:12px;background:var(--bg-0);border:1px solid var(--line-1);border-radius:8px;margin-bottom:8px}
.job-app-nick{font-size:13px;color:var(--t1);font-weight:400;margin-bottom:2px}
.job-app-email{font-size:11px;margin-bottom:4px}
.job-app-email a{color:var(--gold);text-decoration:none}
.job-app-detail{font-size:11px;color:var(--t3);font-weight:200}
.job-app-note{font-size:11px;color:var(--t2);font-weight:200;font-style:italic;margin-top:4px;padding:6px 8px;background:rgba(255,255,255,.03);border-radius:4px}
.job-app-date{font-size:9px;color:var(--t4);margin-top:4px}
.job-app-delete{background:none;border:1px solid rgba(220,80,80,.2);border-radius:6px;color:var(--t4);cursor:pointer;padding:6px;transition:all .2s;flex-shrink:0}
.job-app-delete:hover{border-color:#dc5050;color:#dc5050}
.job-app-count{font-size:10px;color:var(--t4);text-align:center;margin-top:8px;font-weight:200}
.job-apps-empty{font-size:12px;color:var(--t4);text-align:center;padding:20px;font-weight:200}
.job-loading{font-size:11px;color:var(--t4);text-align:center;padding:16px;font-weight:200}

/* ══════════════════════════════════════════════════════════
   AD CARD - Identical to Event Card
   ══════════════════════════════════════════════════════════ */
.ev.ad-card{cursor:pointer;border:1px solid rgba(184,157,86,.12);background:var(--bg-2)}
.ev.ad-card:hover{border-color:rgba(184,157,86,.25);transform:translateY(-2px)}
.ev.ad-card .ev-cat-label.ad-label{color:var(--gold);display:flex;align-items:center;gap:4px;font-size:9px}
.ev.ad-card .ev-t{color:var(--t2)}
.ev.ad-card .ev-meta .ev-mr{color:var(--t3)}

/* Newsletter settings in profile */
.newsletter-desc{font-size:12px;color:var(--t3);font-weight:200;line-height:1.6;margin:0 0 16px}
.newsletter-toggle{margin-bottom:16px}
.newsletter-cats{display:flex;flex-wrap:wrap;gap:6px 12px;margin:12px 0}
.newsletter-city{margin-top:12px}

/* Slide menu legal */
.slide-menu-legal{margin-top:20px;padding-top:16px;border-top:1px solid var(--line-1)}
.slide-menu-legal-link{background:none;border:none;color:var(--t4);font-size:11px;cursor:pointer;font-family:var(--sans);padding:4px 0;transition:color .2s}
.slide-menu-legal-link:hover{color:var(--gold)}
@media(max-width:768px){
    /* Touch targets minimum 44px */
    .mn-i{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}
    .atb{min-height:40px}
    
    /* Prevent zoom on inputs */
    input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],select,textarea{font-size:16px !important}
    
    /* Create form mobile scroll */
    .create-overlay{align-items:flex-start;padding:0}
    .create-form-popup{border-radius:0;min-height:100vh;min-height:100dvh;padding:20px;margin:0;max-height:none;overflow-y:auto}
    
    /* Profile modal mobile */
    .profile-overlay{align-items:flex-start;padding:0}
    .profile-card{border-radius:0;min-height:100vh;min-height:100dvh;max-width:100%;max-height:none;padding:20px}
    
    /* Expand card mobile - full screen */
    .exp-card{max-height:none;min-height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}
    
    /* Fix event grid spacing */
    .ev-grid{gap:12px;padding-bottom:20px}
    .ev{border-radius:12px}
    
    /* Fix bottom nav safe area */
    .mn{padding-bottom:max(28px, env(safe-area-inset-bottom))}
    
    /* Fix admin tabs horizontal scroll */
    .at{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap}
    .at::-webkit-scrollbar{display:none}
    
    /* Admin wedding cards mobile */
    .wedding-admin-card{padding:16px}
    .wedding-admin-actions{flex-wrap:wrap;gap:8px}
    
    /* Fix search bar */
    .mobile-search .sr input{padding:12px 0;font-size:16px !important}
    
    /* Contact overlay mobile fullscreen */
    .contact-overlay.open .contact-form{border-radius:0;min-height:100vh;min-height:100dvh;max-width:100%}
    
    /* Embed overlay mobile */
    #embed-overlay .embed-widget{max-width:100%;margin:0 10px}
    
    /* Fix category bar scroll */
    .ct{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}
    .ct::-webkit-scrollbar{display:none}
    
    /* Smooth scroll everywhere */
    html{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
    
    /* Fix body scroll when modal open */
    body.modal-open{overflow:hidden;position:fixed;width:100%;height:100%}
}
