:root{
  --blue-900:#071e4a; --blue-800:#0a2a6b; --blue-700:#123a8a;
  --blue-500:#2f6bd8; --blue-400:#4f8bf0; --blue-300:#8fb8ff;
  --sky:#bfe0ff; --cream:#fff7ee; --pink:#ffb7d5; --gold:#ffd580;
  --card:rgba(255,255,255,0.14); --card-solid:rgba(255,255,255,0.96);
  --ink:#0b1f45; --shadow:0 18px 50px rgba(3,15,45,0.45);
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
html,body{margin:0; min-height:100%;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:#fff; overflow-x:hidden;
  background:linear-gradient(180deg,#0a2a6b 0%,#123a8a 42%,#1f57c0 78%,#2f6bd8 100%);
  min-height:100vh; -webkit-font-smoothing:antialiased;
}
.sea{position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none;}
.bubble{position:absolute; bottom:-40px; border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.55), rgba(255,255,255,.05));
  animation:rise linear infinite;}
@keyframes rise{0%{transform:translateY(0) translateX(0); opacity:0;}10%{opacity:.7;}90%{opacity:.5;}100%{transform:translateY(-108vh) translateX(20px); opacity:0;}}
.petal{position:absolute; top:-30px; font-size:22px; animation:fall linear infinite; opacity:.85; z-index:1;}
@keyframes fall{0%{transform:translateY(-30px) rotate(0deg); opacity:0;}10%{opacity:.9;}100%{transform:translateY(112vh) rotate(360deg); opacity:0;}}
.waves{position:fixed; left:0; right:0; bottom:0; height:120px; z-index:0; opacity:.5;}
.waves svg{width:200%; height:100%; animation:drift 14s linear infinite;}
@keyframes drift{from{transform:translateX(0);} to{transform:translateX(-50%);}}

.app{position:relative; z-index:2; max-width:560px; margin:0 auto; padding:18px 18px 48px; min-height:100vh; display:flex; flex-direction:column;}
.topbar{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px;}
.brand{font-weight:700; letter-spacing:.3px; font-size:14px; opacity:.9; display:flex; align-items:center; gap:7px;}
.brand a{color:#fff;}
.lang{display:flex; background:rgba(255,255,255,.15); border-radius:999px; padding:3px; backdrop-filter:blur(6px);}
.lang button{border:0; background:transparent; color:#fff; font-weight:700; padding:6px 12px; border-radius:999px; cursor:pointer; font-size:13px; opacity:.7;}
.lang button.active{background:#fff; color:var(--blue-800); opacity:1;}

#progWrap{margin-bottom:26px;}
.progress{height:8px; background:rgba(255,255,255,.16); border-radius:999px; margin:14px 2px 4px; overflow:hidden; position:relative;}
.progress > i{position:absolute; left:0; top:0; bottom:0; width:0%; border-radius:999px; background:linear-gradient(90deg,var(--sky),#fff); transition:width .5s cubic-bezier(.2,.8,.2,1);}
.dolphin-track{position:relative; height:26px; margin-bottom:8px;}
.dolphin-track .d{position:absolute; top:-2px; left:0; transition:left .5s cubic-bezier(.2,.8,.2,1); font-size:22px; transform:scaleX(-1);}

.stage{flex:1; display:flex; align-items:center; justify-content:center;}
.card{width:100%; background:var(--card); border:1px solid rgba(255,255,255,.25); border-radius:26px; padding:26px 22px 24px; box-shadow:var(--shadow); backdrop-filter:blur(14px); animation:pop .45s cubic-bezier(.2,.9,.25,1.1);}
@keyframes pop{from{opacity:0; transform:translateY(16px) scale(.98);} to{opacity:1; transform:none;}}
.eyebrow{text-transform:uppercase; letter-spacing:2px; font-size:11px; opacity:.75; margin-bottom:8px; font-weight:700;}
h1{font-size:26px; line-height:1.2; margin:0 0 8px;}
h2{font-size:22px; line-height:1.25; margin:0 0 6px;}
.sub{opacity:.9; font-size:15px; line-height:1.5; margin:0 0 18px;}
.hero-emoji{font-size:60px; text-align:center; margin:6px 0 12px; animation:bob 3s ease-in-out infinite;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

.grid{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.opt{position:relative; border:1.5px solid rgba(255,255,255,.35); background:rgba(255,255,255,.1); border-radius:18px; padding:16px 12px; text-align:center; cursor:pointer; transition:.18s; color:#fff; font-size:15px; font-weight:600;}
.opt:active{transform:scale(.97);}
.opt .ic{font-size:30px; display:block; margin-bottom:6px;}
.opt small{display:block; font-weight:500; opacity:.8; font-size:12px; margin-top:3px;}
.opt.sel{background:#fff; color:var(--ink); border-color:#fff; box-shadow:0 8px 24px rgba(0,0,0,.25);}
.opt.sel .ic{transform:scale(1.08);}

.field{margin:12px 0;}
label.lab{display:block; font-size:13px; font-weight:700; opacity:.9; margin-bottom:7px; letter-spacing:.3px;}
input[type=date],input[type=time],input[type=text],input[type=email],input[type=password],textarea,select{
  width:100%; max-width:100%; box-sizing:border-box; border:1.5px solid rgba(255,255,255,.4); background:rgba(255,255,255,.95); color:var(--ink);
  border-radius:14px; padding:14px; font-size:16px; font-family:inherit; outline:none;}
/* iOS: Datum/Zeit-Felder nicht über die Box hinauslaufen lassen */
input[type=date],input[type=time]{ -webkit-appearance:none; appearance:none; min-width:0; }
textarea{min-height:96px; resize:vertical;}
input:focus,textarea:focus,select:focus{border-color:#fff; box-shadow:0 0 0 4px rgba(255,255,255,.25);}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:4px;}
.chip{border:1.5px solid rgba(255,255,255,.4); background:rgba(255,255,255,.1); color:#fff; padding:9px 13px; border-radius:999px; font-size:13px; cursor:pointer; font-weight:600;}
.chip.sel{background:#fff; color:var(--ink); border-color:#fff;}

.rest{display:flex; gap:12px; align-items:flex-start; border:1.5px solid rgba(255,255,255,.35); background:rgba(255,255,255,.1); border-radius:16px; padding:12px; cursor:pointer; margin-bottom:10px; transition:.15s;}
.rest:active{transform:scale(.98);}
.rest.sel{background:#fff; color:var(--ink); border-color:#fff;}
.rest .rico{font-size:26px;}
.rest .rname{font-weight:700; font-size:15px;}
.rest .rmeta{font-size:12.5px; opacity:.8; margin-top:2px; line-height:1.35;}

.nav{display:flex; gap:10px; margin-top:20px;}
.btn{display:inline-flex; align-items:center; justify-content:center; text-align:center; text-decoration:none; color:inherit; flex:1; border:0; border-radius:16px; padding:15px; font-size:16px; font-weight:800; cursor:pointer; font-family:inherit; transition:.15s;}
.btn:active{transform:scale(.98);}
.btn.primary{background:#fff; color:var(--blue-800); box-shadow:0 10px 26px rgba(0,0,0,.3);}
.btn.primary:disabled{opacity:.45; cursor:not-allowed; box-shadow:none;}
.btn.ghost{background:rgba(255,255,255,.14); color:#fff; border:1.5px solid rgba(255,255,255,.3);}
.btn.full{display:flex; width:100%; flex:0 0 auto;}
.btn.gbtn{background:#fff; color:#1f2d5a; border:1px solid #dbe0ea; box-shadow:0 6px 18px rgba(0,0,0,.18);}
.btn.gbtn:hover{background:#f6f8fc;}
.or-sep{display:flex; align-items:center; gap:10px; margin:14px 0 10px; opacity:.65; font-size:12px; font-weight:700;}
.or-sep::before,.or-sep::after{content:""; height:1px; flex:1; background:rgba(255,255,255,.3);}
.btn.small{flex:0 0 auto; padding:9px 14px; font-size:13px; border-radius:12px;}
.btn.danger{background:#ff6b8a; color:#3a0012;}

.summary{background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); border-radius:16px; padding:8px 4px; margin:14px 0;}
.row{display:flex; justify-content:space-between; gap:12px; padding:11px 14px; border-bottom:1px solid rgba(255,255,255,.14); font-size:14.5px;}
.row:last-child{border-bottom:0;}
.row b{opacity:.75; font-weight:600;}
.row span{text-align:right; font-weight:700;}

.center{text-align:center;}
.tiny{font-size:12px; opacity:.75; text-align:center; margin-top:14px; line-height:1.5;}
.heartbeat{display:inline-block; animation:hb 1.4s ease-in-out infinite;}
@keyframes hb{0%,100%{transform:scale(1);}14%{transform:scale(1.25);}28%{transform:scale(1);}42%{transform:scale(1.2);}}
.confetti-emoji{font-size:64px; text-align:center; animation:bob 3s ease-in-out infinite;}
.hidden{display:none !important;}
.fadein{animation:pop .45s cubic-bezier(.2,.9,.25,1.1);}
.slider-wrap{display:flex; align-items:center; gap:12px;}
input[type=range]{flex:1;}
.hint{font-size:12.5px; opacity:.8; margin-top:6px; line-height:1.4;}
a.plainlink{color:#fff; text-decoration:underline;}

/* ── Admin / Me widgets ── */
.tabs{display:flex; gap:7px; margin:2px 0 18px; flex-wrap:nowrap; overflow-x:auto; -ms-overflow-style:none; scrollbar-width:none; padding-bottom:3px; -webkit-overflow-scrolling:touch;}
.tabs::-webkit-scrollbar{display:none;}
.tab{flex:0 0 auto; white-space:nowrap; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.08); color:#fff; padding:9px 14px; border-radius:999px; font-size:13.5px; font-weight:700; cursor:pointer; opacity:.85; transition:.15s;}
.tab:hover{opacity:1; background:rgba(255,255,255,.14);}
.tab.active{background:#fff; color:var(--blue-800); opacity:1; border-color:#fff; box-shadow:0 4px 14px rgba(0,0,0,.18);}
.item{background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); border-radius:16px; padding:14px; margin-bottom:12px;}
.item h3{margin:0 0 4px; font-size:16px;}
.item .meta{font-size:13px; opacity:.85; line-height:1.5;}
.badge{display:inline-block; font-size:11px; font-weight:800; padding:3px 9px; border-radius:999px; letter-spacing:.4px; text-transform:uppercase;}
.badge.new{background:#ffe08a; color:#4a3600;}
.badge.confirmed{background:#9be6b4; color:#003a1c;}
.badge.cancelled{background:#ffb3c0; color:#4a0016;}
.actions{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px;}
.toggle{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.12);}
.toggle:last-child{border-bottom:0;}
.switch{position:relative; width:52px; height:30px; flex:0 0 auto;}
.switch input{opacity:0; width:0; height:0;}
.slider{position:absolute; inset:0; background:rgba(255,255,255,.25); border-radius:999px; transition:.2s; cursor:pointer;}
.slider:before{content:""; position:absolute; height:24px; width:24px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.2s;}
.switch input:checked + .slider{background:#54d98c;}
.switch input:checked + .slider:before{transform:translateX(22px);}
.cal{display:grid; grid-template-columns:repeat(7,1fr); gap:5px; margin:10px 0;}
.cal .dow{font-size:11px; opacity:.7; text-align:center; font-weight:700;}
.cal .day{aspect-ratio:1; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:13px; background:rgba(255,255,255,.07); position:relative;}
.cal .day.other{opacity:.3;}
.cal .day.today{outline:2px solid #fff;}
.cal .day .dot{position:absolute; bottom:4px; width:6px; height:6px; border-radius:50%;}
.cal .day .dot.book{background:#ffe08a;}
.cal .day .dot.block{background:#ff8aa5;}
.cal .day.hasboth .dot.book{left:calc(50% - 8px);} .cal .day.hasboth .dot.block{left:calc(50% + 2px);}
.calnav{display:flex; align-items:center; justify-content:space-between; margin-bottom:4px;}
.calnav button{background:rgba(255,255,255,.15); border:0; color:#fff; border-radius:10px; padding:6px 12px; cursor:pointer; font-weight:700;}
.linkbox{display:flex; gap:8px; align-items:center; background:rgba(255,255,255,.14); border-radius:12px; padding:10px 12px; margin-top:8px; word-break:break-all; font-size:12.5px;}
.copybtn{flex:0 0 auto; background:#fff; color:var(--blue-800); border:0; border-radius:9px; padding:7px 11px; font-weight:800; cursor:pointer;}
.notif{background:rgba(255,255,255,.09); border-left:3px solid var(--gold); border-radius:8px; padding:10px 12px; margin-bottom:8px; font-size:13.5px; line-height:1.45;}
.notif.unread{background:rgba(255,255,255,.16);}
.smallrow{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.smallrow > *{min-width:0;}
.smallrow input{padding:9px; font-size:14px; min-width:0; flex:1 1 120px;}

/* ── App-weite Politur & Landingpage ── */
.app.wide{max-width:920px;}
.navbar{position:sticky; top:8px;}
.foot{text-align:center; opacity:.68; font-size:13px; padding:22px 0 10px;}
.swimdolphin{position:fixed; left:0; bottom:12px; z-index:3; pointer-events:none; opacity:.92; will-change:transform; filter:drop-shadow(0 3px 5px rgba(0,0,0,.35));}
.swimdolphin span{display:inline-block;}

/* Landing: klar getrennte Hintergrund-Panels */
.hero{position:relative; text-align:center; padding:44px 24px 40px; margin-bottom:22px;
  background:linear-gradient(160deg, rgba(18,58,138,.92), rgba(47,107,216,.82));
  border:1px solid rgba(255,255,255,.22); border-radius:26px; box-shadow:var(--shadow); overflow:hidden;}
.hero:before{content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 0%, rgba(143,184,255,.35), transparent 60%); pointer-events:none;}
.hero > *{position:relative;}
.hero-badge{display:inline-block; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28); padding:6px 15px; border-radius:999px; font-size:11.5px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:16px;}
.hero-h1{font-size:38px; line-height:1.08; margin:0 0 14px; font-weight:850; letter-spacing:-.5px;}
.hero-p{font-size:16.5px; line-height:1.6; opacity:.94; max-width:560px; margin:0 auto 26px;}
.hero-cta{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
.hero-sign{margin:18px 0 0; font-size:13px; font-weight:700; opacity:.85; letter-spacing:.3px;}
.hero-art{font-size:40px; margin-top:14px; letter-spacing:8px; animation:bob 3s ease-in-out infinite;}
.btn.big{flex:0 0 auto; padding:16px 26px; font-size:16px; border-radius:16px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center;}

.panel{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:24px; padding:28px 22px; margin:0 0 26px; backdrop-filter:blur(10px); box-shadow:0 12px 34px rgba(3,15,45,.22);}
main#main .section, .app.wide .section{margin-bottom:26px;}
main#main > .hero{margin-bottom:26px;}
.panel.cta-panel{text-align:center; background:linear-gradient(135deg, rgba(255,255,255,.16), rgba(143,184,255,.12));}
.section{margin:0;}
.section.center{text-align:center;}
.sec-title{font-size:21px; text-align:center; margin:0 0 20px; font-weight:850; letter-spacing:-.2px;}
.cards3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.cards2{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
.pcard{background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); border-radius:18px; padding:22px 16px; text-align:center; transition:.2s;}
.pcard:hover{background:rgba(255,255,255,.16); transform:translateY(-3px);}
.pcard h3{margin:10px 0 6px; font-size:16px;}
.pcard p{margin:0; font-size:13.5px; opacity:.85; line-height:1.5;}
.pico{font-size:34px; line-height:1;}

.pwa-tip{background:linear-gradient(135deg, rgba(255,255,255,.22), rgba(143,184,255,.16)); border:1.5px solid rgba(255,255,255,.42); border-radius:22px; padding:24px 22px; text-align:center; box-shadow:var(--shadow);}
.pwa-badge{display:inline-block; background:#fff; color:var(--blue-800); font-weight:800; font-size:12px; padding:5px 13px; border-radius:999px; letter-spacing:.5px; margin-bottom:12px;}
.pwa-h{font-size:21px; margin:0 0 8px;}
.pwa-p{opacity:.92; font-size:14.5px; line-height:1.55; margin:0 auto 14px; max-width:540px;}
.pwa-list{list-style:none; padding:0; margin:6px 0 0; display:inline-block; text-align:left;}
.pwa-list li{font-size:13.5px; opacity:.92; margin:7px 0; padding-left:2px;}

@media(max-width:640px){
  .cards3,.cards2{grid-template-columns:1fr;}
  .hero-h1{font-size:29px;}
  .hero-p{font-size:15.5px;}
}

/* ── Map & Autocomplete ── */
.map{height:230px; border-radius:16px; overflow:hidden; margin-top:12px; border:1.5px solid rgba(255,255,255,.35); box-shadow:0 8px 24px rgba(0,0,0,.25);}
.map .leaflet-container{height:100%; width:100%; background:#0c2a5e;}
.pin{font-size:26px; line-height:1; text-align:center; filter:drop-shadow(0 2px 3px rgba(0,0,0,.4));}
.leaflet-control-attribution{font-size:9px; opacity:.7;}
.ac-list{position:absolute; left:0; right:0; top:100%; margin-top:6px; background:#fff; color:var(--ink);
  border-radius:12px; box-shadow:0 14px 34px rgba(0,0,0,.35); overflow:hidden auto; max-height:240px; display:none; z-index:1200;}
.ac-item{padding:10px 13px; cursor:pointer; border-bottom:1px solid #eef1f8;}
.ac-item:last-child{border-bottom:0;}
.ac-item:hover,.ac-item:active{background:#eaf1ff;}
.ac-item b{display:block; font-size:14px; font-weight:700;}
.ac-item small{color:#647; font-size:12px;}

/* ── Navigation ── */
/* Nav bricht aus dem (evtl. schmalen) Container aus und ist so auf JEDER Seite gleich breit (max 920px, zentriert) */
#nav{position:sticky; top:8px; z-index:20; width:100vw; margin-left:calc(50% - 50vw); padding:0 16px; box-sizing:border-box;}
.navbar{display:flex; align-items:center; gap:8px; max-width:920px; margin:0 auto 16px; background:rgba(9,26,64,.72); border:1px solid rgba(255,255,255,.18); border-radius:16px; padding:8px 12px; backdrop-filter:blur(16px); box-shadow:0 10px 30px rgba(3,15,45,.35);}
.navbrand{font-weight:850; color:#fff; text-decoration:none; font-size:16px; display:flex; align-items:center; gap:6px; flex:0 0 auto;}
.navbrand span{background:linear-gradient(90deg,#bfe0ff,#fff); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;}
.navlinks{display:flex; gap:4px; flex-wrap:nowrap; overflow-x:auto; flex:1; justify-content:center; min-width:0; -ms-overflow-style:none; scrollbar-width:none;}
.navlinks::-webkit-scrollbar{display:none;}
.navlink{color:#fff; text-decoration:none; font-size:13px; font-weight:700; padding:8px 12px; border-radius:11px; opacity:.82; position:relative; white-space:nowrap;}
.navlink:hover{background:rgba(255,255,255,.14); opacity:1;}
.navlink.active{background:#fff; color:var(--blue-800); opacity:1; box-shadow:0 4px 14px rgba(0,0,0,.2);}
.navlink.navout{padding:8px 10px; font-size:15px;}
.navbadge{background:#ff6b8a; color:#fff; font-size:10px; font-weight:800; border-radius:999px; padding:1px 6px; margin-left:5px; vertical-align:top;}
.navright{display:flex; align-items:center; gap:8px; flex:0 0 auto;}
.navuser{font-size:12px; opacity:.9; font-weight:700; white-space:nowrap;}
.navlang{display:flex; background:rgba(255,255,255,.14); border-radius:999px; padding:2px;}
.navlang button{border:0; background:transparent; color:#fff; font-weight:800; padding:5px 9px; border-radius:999px; cursor:pointer; font-size:11.5px; opacity:.65;}
.navlang button.active{background:#fff; color:var(--blue-800); opacity:1;}
@media(max-width:720px){
  .navbar{flex-wrap:wrap;}
  /* Auf dem Handy: Links umbrechen (alle sichtbar) statt abschneiden */
  .navlinks{order:3; width:100%; justify-content:center; flex-wrap:wrap; overflow:visible; gap:6px; margin-top:6px;}
  .navlink{font-size:12.5px; padding:7px 11px;}
  .navright{margin-left:auto;}
}

/* ── Toast-Popups ── */
.toast-wrap{position:fixed; left:0; right:0; bottom:22px; z-index:9999; display:flex; flex-direction:column; align-items:center; gap:10px; pointer-events:none; padding:0 14px;}
.toast{display:flex; align-items:center; gap:10px; max-width:440px; width:auto; padding:13px 18px; border-radius:14px; font-size:14.5px; font-weight:700; color:#0b1f45; background:#fff; box-shadow:0 16px 44px rgba(0,0,0,.4); transform:translateY(20px); opacity:0; transition:.28s cubic-bezier(.2,.8,.2,1); border-left:6px solid #8fb8ff;}
.toast.show{transform:none; opacity:1;}
.toast.success{border-left-color:#2fbf71; background:#eafff3;}
.toast.error{border-left-color:#ff5470; background:#fff0f2;}
.toast.info{border-left-color:#2f6bd8; background:#eef5ff;}
.toast-ic{font-size:18px;}
.hint.err, .hint.error{color:#ffd0d0;}
.hint.ok{color:#b6f2cf;}
.pagehead{margin:2px 0 14px;}
.pagehead h2{margin:0; font-size:22px;}

/* ── Kalender: klickbare Tage + Popover ── */
.cal .day.has{cursor:pointer; transition:.15s;}
.cal .day.has:hover{background:rgba(255,255,255,.22); transform:translateY(-1px);}
.calpop-back{position:fixed; inset:0; z-index:9998; background:rgba(4,12,34,.55); backdrop-filter:blur(3px); display:flex; align-items:center; justify-content:center; padding:18px;}
.calpop{width:100%; max-width:400px; background:var(--card-solid); color:var(--ink); border-radius:20px; padding:18px 18px 16px; box-shadow:0 24px 60px rgba(0,0,0,.5); max-height:80vh; overflow:auto;}
.calpop h3{margin:0 0 12px; font-size:17px; display:flex; justify-content:space-between; align-items:center;}
.calpop .cpclose{cursor:pointer; border:0; background:#eef1f8; border-radius:9px; width:30px; height:30px; font-size:16px; font-weight:800; color:#333;}
.calpop .cpitem{border:1px solid #e6eaf3; border-left:4px solid #2f6bd8; border-radius:12px; padding:11px 13px; margin-bottom:9px;}
.calpop .cpitem.book{border-left-color:#f0a500;}
.calpop .cpitem.block{border-left-color:#ff5470;}
.calpop .cpitem b{font-size:14.5px;}
.calpop .cpitem .cpmeta{font-size:12.5px; color:#566; margin-top:3px; line-height:1.45;}
.calbtns{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 4px;}
.calbtns .btn{flex:1 1 46%;}

/* Invitation / proposal card */
.invite-card{background:linear-gradient(135deg, rgba(255,255,255,.2), rgba(143,184,255,.18)); border:1.5px solid rgba(255,255,255,.5); border-radius:18px; padding:16px; margin-bottom:14px; box-shadow:0 10px 30px rgba(0,0,0,.25);}
.invite-card h3{font-size:17px; margin:0 0 6px;}
.maplink{display:inline-block; margin-top:6px; font-size:12.5px;}
