:root{
  --bg:#FEFAF4;--card:#FFF;--text:#2B2D42;--muted:#7A7D8A;
  --border:#E8E4DC;--accent:#FF6B35;--shadow:0 2px 16px rgba(43,45,66,.09);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Nunito',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;min-height:100dvh;padding-top:60px;}

/* ── NAV ── */
nav{background:var(--card);border-bottom:1.5px solid var(--border);padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:60px;position:fixed;top:0;left:0;right:0;z-index:1100;gap:12px;}
.nav-logo{font-family:'Fraunces',serif;font-size:18px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap;}
.nav-links{display:flex;gap:3px;}
.nav-btn{background:none;border:none;padding:7px 11px;border-radius:10px;font-family:'Nunito',sans-serif;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;transition:all .15s;white-space:nowrap;}
.nav-btn:hover{background:var(--bg);color:var(--text);}
.nav-btn.active{background:var(--bg);color:var(--accent);}
.nav-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.role-badge{padding:4px 11px;border-radius:20px;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;}
.role-org{background:#FFF0E8;color:#CC4400;}
.role-leiding{background:#E8F0FF;color:#1A3BB3;}
.role-admin{background:#F0FFF4;color:#166534;}
.user-avatar-btn{width:36px;height:36px;border-radius:50%;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:transparent;transition:opacity .15s;}
.user-avatar-btn:hover{opacity:.82;}
.user-avatar-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.nav-ava{width:36px;height:36px;pointer-events:none;}
/* ── USER DROPDOWN ── */
.user-dropdown{display:none;position:fixed;right:1.5rem;top:60px;background:var(--card);border:1.5px solid var(--border);border-radius:16px;box-shadow:var(--shadow);min-width:220px;z-index:1100;overflow:hidden;}
.user-dropdown.open{display:block;}
.user-dropdown-head{display:flex;align-items:center;gap:12px;padding:14px 16px;}
.user-dropdown-ava{width:40px;height:40px;font-size:15px;flex-shrink:0;}
.user-dropdown-name{font-size:14px;font-weight:700;color:var(--text);}
.user-dropdown-email{font-size:12px;color:var(--muted);margin-top:1px;}
.user-dropdown-sep{height:1px;background:var(--border);}
.user-dropdown-item{width:100%;background:none;border:none;padding:11px 16px;text-align:left;font-family:'Nunito',sans-serif;font-size:13px;font-weight:700;color:var(--text);cursor:pointer;transition:background .12s;}
.user-dropdown-item:hover{background:var(--bg);}
.user-dropdown-item-danger{color:#CC0000;}
.user-dropdown-item-danger:hover{background:#FFF0F0;}
.user-dropdown-nav{display:none;}

/* ── PAGES ── */
.page{display:none;padding:2rem 1.5rem;max-width:980px;margin:0 auto;}
.page.active{display:block;}
.ph{margin-bottom:1.75rem;}
.ph h1{font-family:'Fraunces',serif;font-size:32px;font-weight:700;margin-bottom:4px;}
.ph::after{content:'';display:block;width:36px;height:3px;background:linear-gradient(90deg,var(--accent),transparent);border-radius:2px;margin-top:.6rem;}
.ph p{color:var(--muted);font-size:15px;}

/* ── LOGIN ── */
#login-page{position:fixed;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:1;align-items:flex-start;justify-content:center;padding:2rem;background:transparent;}
#login-page.lp-show{display:flex;}
#login-page.lp-hide{display:none!important;}
.lcard{background:var(--card);border:1.5px solid var(--border);border-radius:24px;padding:2.75rem 2.25rem;max-width:420px;width:100%;box-shadow:var(--shadow);}
.ltitle{font-family:'Fraunces',serif;font-size:clamp(18px, 5vw, 30px);font-weight:700;margin-bottom:6px;line-height:1.2;}
.lsub{color:var(--muted);font-size:14px;margin-bottom:1.75rem;line-height:1.6;}
.flabel{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px;display:block;}
.finput{width:100%;border:1.5px solid var(--border);border-radius:12px;padding:11px 14px;font-size:16px;font-family:'Nunito',sans-serif;background:var(--bg);color:var(--text);transition:border .15s;}
.finput:focus{outline:none;border-color:var(--accent);}
.fg{margin-bottom:1.1rem;}
.sbtn{width:100%;background:var(--text);color:white;border:none;border-radius:12px;padding:13px;font-size:15px;font-weight:800;font-family:'Nunito',sans-serif;cursor:pointer;transition:opacity .15s;margin-top:4px;}
.sbtn:hover{opacity:.82;}
.sbtn:disabled{opacity:.5;cursor:not-allowed;}
.ibox{background:#FFF8F0;border:1.5px solid #FFD6B0;border-radius:12px;padding:11px 14px;font-size:13px;color:#994400;margin-top:1rem;line-height:1.5;}
.ebox{background:#FFF0F0;border:1.5px solid #FFB0B0;border-radius:12px;padding:11px 14px;font-size:13px;color:#880000;margin-top:1rem;line-height:1.5;display:none;}
.codedisp{background:var(--bg);border:1.5px dashed var(--border);border-radius:12px;padding:1rem;text-align:center;font-size:30px;font-weight:900;letter-spacing:8px;color:var(--text);margin:.75rem 0;}
.backlink{background:none;border:none;color:var(--muted);font-size:13px;font-family:'Nunito',sans-serif;cursor:pointer;text-decoration:underline;margin-top:1rem;display:block;text-align:center;}

/* ── TEAM REVEAL OVERLAY ── */
#teamreveal-overlay{position:fixed;inset:0;z-index:200;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;}
#teamreveal-overlay.wo-show{display:flex;}
#teamreveal-overlay.wo-hide{display:none!important;}
#teamreveal-overlay.fade-out{opacity:0;pointer-events:none;transition:opacity .6s ease;}
.w-bg{position:absolute;inset:0;transition:background .15s ease;}
.w-content{position:relative;z-index:1;text-align:center;color:white;padding:2rem 2.5rem;display:flex;flex-direction:column;align-items:center;}
.w-pre{font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.15em;color:rgba(255,255,255,.75);margin-bottom:1rem;opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s;}
.w-pre.show{opacity:1;transform:translateY(0);}
.slot-window{height:88px;overflow:hidden;width:100%;max-width:500px;position:relative;}
.slot-reel{display:flex;flex-direction:column;}
.slot-item{height:88px;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:clamp(42px,9vw,70px);font-weight:700;color:white;white-space:nowrap;gap:12px;}
.w-emoji{font-size:clamp(36px,7vw,56px);margin-top:.5rem;opacity:0;transform:translateY(10px);}
.w-emoji.show{opacity:1;transform:translateY(0);transition:opacity .6s,transform .6s;}
.w-btn{margin-top:2.5rem;background:rgba(255,255,255,.18);border:2px solid rgba(255,255,255,.6);color:white;font-family:'Nunito',sans-serif;font-size:16px;font-weight:800;padding:13px 36px;border-radius:50px;cursor:pointer;opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s,background .2s;}
.w-btn.show{opacity:1;transform:translateY(0);}
.w-btn:hover{background:rgba(255,255,255,.32);}
.bubble{position:absolute;border-radius:50%;opacity:.11;animation:floatup linear infinite;animation-fill-mode:backwards;}
@keyframes floatup{from{transform:translateY(110vh);}to{transform:translateY(-20vh);}}

/* ── TILES & CARDS ── */
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:.875rem;margin-bottom:1.5rem;}
.info-tile{background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:1.1rem;}
.tlabel{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:5px;}
.tval{font-size:17px;font-weight:800;}
.card{background:var(--card);border:1.5px solid var(--border);border-radius:16px;padding:1.25rem;}

/* ── REVEAL BUTTON ── */
.reveal-btn{width:100%;background:linear-gradient(135deg,#2B2D42 0%,#3d3f5c 100%);color:white;border:none;border-radius:20px;padding:2rem 1.5rem;margin-bottom:1rem;font-family:'Nunito',sans-serif;font-weight:900;font-size:20px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .15s,box-shadow .15s;overflow:hidden;position:relative;}
.reveal-btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(43,45,66,.45);}
.reveal-btn:active{transform:translateY(0);}
.reveal-btn-sm{font-size:14px;padding:10px 18px;border-radius:12px;margin-bottom:0;width:auto;}
.reveal-qm{position:absolute;bottom:-8px;font-size:18px;font-weight:900;color:white;opacity:0;animation:floatqm linear infinite;pointer-events:none;}
@keyframes floatqm{0%{transform:translateY(0);opacity:0;}15%{opacity:.22;}85%{opacity:.22;}100%{transform:translateY(-90px);opacity:0;}}

/* ── HOME ACTION BUTTONS ── */
.home-action-btn{width:100%;background:var(--card);border:1.5px solid var(--border);border-radius:16px;padding:1rem 1.25rem;margin-bottom:.625rem;font-family:'Nunito',sans-serif;cursor:pointer;display:flex;align-items:center;gap:1rem;text-align:left;transition:box-shadow .15s,transform .15s;}
.home-action-btn:hover{box-shadow:var(--shadow);transform:translateY(-1px);}
.home-action-btn:active{transform:translateY(0);}
.hab-icon{font-size:24px;flex-shrink:0;}
.hab-text{flex:1;}
.hab-title{font-size:16px;font-weight:800;color:var(--text);}
.hab-sub{font-size:13px;color:var(--muted);margin-top:2px;}
.hab-arrow{font-size:20px;color:var(--muted);font-weight:800;}

/* ── ANIMATIE TOGGLE ── */
.anim-toggle{background:none;border:1.5px solid var(--border);border-radius:8px;padding:3px 10px;font-size:14px;font-weight:700;font-family:'Nunito',sans-serif;cursor:pointer;color:var(--muted);transition:border-color .15s,color .15s,background .15s;}
.anim-toggle.anim-on{border-color:var(--accent);color:var(--accent);background:#FFF5F0;}

/* ── TEAM HERO ── */
.team-hero{border-radius:20px;padding:2.25rem 2rem;margin-bottom:1.5rem;color:white;position:relative;overflow:hidden;}
.th-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;opacity:.7;margin-bottom:7px;}
.th-name{font-family:'Fraunces',serif;font-size:40px;font-weight:700;margin-bottom:4px;}
.th-person{font-size:15px;opacity:.82;}
.th-d1{position:absolute;right:-24px;bottom:-24px;width:130px;height:130px;border-radius:50%;opacity:.12;background:white;}
.th-d2{position:absolute;right:65px;bottom:45px;width:65px;height:65px;border-radius:50%;opacity:.08;background:white;}
.team-hero-pulse{cursor:pointer;animation:team-ring 2s ease-out infinite;}
@keyframes team-ring{0%{box-shadow:0 0 0 0 var(--tc-light);}70%{box-shadow:0 0 0 14px transparent;}100%{box-shadow:0 0 0 0 transparent;}}

/* ── TWO COLUMN ── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.5rem;align-items:start;}
@media(max-width:680px){.two-col{grid-template-columns:1fr;}}

/* ── MINI CALENDAR ── */
.mcal-hdr{font-size:15px;font-weight:800;margin-bottom:.875rem;}
.mcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.mcd{text-align:center;font-size:10px;font-weight:800;text-transform:uppercase;color:var(--muted);padding:3px 0;}
.mcc{min-height:30px;border-radius:6px;border:1px solid var(--border);padding:2px 3px;background:var(--card);}
.mcc.empty{border-color:transparent;background:transparent;}
.mcc.kamp{background:#FFF5F0;border-color:#FFD0B0;}
.mcc-n{font-size:10px;font-weight:800;}
.mcc.kamp .mcc-n{color:var(--accent);font-weight:900;}
.mcc-dot{width:5px;height:5px;border-radius:50%;margin:2px auto 0;}
.m-evs{margin-top:.875rem;display:flex;flex-direction:column;gap:7px;}
.m-ev{display:flex;align-items:flex-start;gap:8px;}
.m-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:3px;}

/* ── MAP ── */
.map-wrap{border-radius:12px;overflow:hidden;border:1.5px solid var(--border);position:relative;}
.map-wrap img{width:100%;height:260px;object-fit:cover;display:block;}
.map-overlay{position:absolute;bottom:8px;right:8px;background:rgba(255,255,255,.9);border-radius:8px;padding:4px 10px;font-size:11px;font-weight:700;color:var(--text);}

/* ── PAKLIJST ── */
.pak-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;}
@media(max-width:500px){.pak-grid{grid-template-columns:1fr;}}
.pak-sec{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:1rem 0 .4rem;grid-column:1/-1;}
.pak-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer;transition:background .1s;user-select:none;}
.pak-item:hover{background:var(--bg);}
.pak-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;}
.pak-item label{font-size:14px;font-weight:600;cursor:pointer;line-height:1.3;}
.pak-item.done label{text-decoration:line-through;color:var(--muted);}
.pak-edit-open-btn{font-size:12px;font-weight:700;padding:4px 10px;border-radius:8px;border:1.5px solid var(--accent);color:var(--accent);background:transparent;cursor:pointer;}
.pak-edit-open-btn:hover{background:var(--accent);color:#fff;}
.pak-edit-category{border:1.5px solid var(--border);border-radius:10px;padding:.75rem;margin-bottom:.75rem;}
.pak-edit-category-header{display:flex;align-items:center;gap:6px;margin-bottom:.5rem;}
.pak-edit-category-name{flex:1;font-weight:700;font-size:14px;border:none;border-bottom:1.5px solid var(--border);padding:4px 6px;background:transparent;outline:none;}
.pak-edit-items{display:flex;flex-direction:column;gap:4px;margin-bottom:.5rem;}
.pak-edit-item{display:flex;align-items:center;gap:6px;}
.pak-edit-item-name{flex:1;font-size:13px;border:none;border-bottom:1px solid var(--border);padding:4px 6px;background:transparent;outline:none;}
.pak-move-btn,.pak-delete-btn{width:26px;height:26px;border:none;border-radius:6px;cursor:pointer;font-size:13px;flex-shrink:0;background:var(--bg);}
.pak-delete-btn{color:#c0392b;}
.pak-add-btn{font-size:12px;font-weight:600;color:var(--accent);background:transparent;border:none;cursor:pointer;padding:4px 0;}
.pak-add-category-btn{display:block;margin:.5rem 0;}
.pak-edit-footer{display:flex;gap:.5rem;margin-top:1rem;}
.pak-save-btn{padding:8px 18px;border-radius:10px;font-weight:700;font-size:14px;border:none;cursor:pointer;background:var(--accent);color:#fff;}
.pak-cancel-btn{padding:8px 18px;border-radius:10px;font-weight:700;font-size:14px;border:1.5px solid var(--border);cursor:pointer;background:transparent;color:var(--text);}

/* ── DATA TABLE ── */
.data-table{width:100%;border-collapse:collapse;background:var(--card);border:1.5px solid var(--border);border-radius:16px;overflow:hidden;}
.data-table th{background:var(--bg);padding:9px 14px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:left;border-bottom:1.5px solid var(--border);}
.data-table td{padding:10px 14px;font-size:14px;border-bottom:1px solid var(--border);}
.data-table tr:last-child td{border-bottom:none;}
.data-table tr:hover td{background:#FAFAF8;}
.tsel{border:1.5px solid var(--border);border-radius:8px;padding:5px 8px;font-family:'Nunito',sans-serif;font-size:13px;font-weight:700;background:var(--card);color:var(--text);cursor:pointer;}
.tsel:focus{outline:none;border-color:var(--accent);}

/* ── FILTER + TABS ── */
.filter-bar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:1.25rem;}
.chip{background:var(--card);border:1.5px solid var(--border);border-radius:20px;padding:6px 13px;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;}
.chip:hover{border-color:var(--text);}
.chip.active{background:var(--text);color:white;border-color:var(--text);}
.tab-row{display:flex;gap:2px;margin-bottom:1.5rem;border-bottom:1.5px solid var(--border);}
.tab-btn{background:none;border:none;padding:10px 16px;font-size:14px;font-weight:700;font-family:'Nunito',sans-serif;color:var(--muted);cursor:pointer;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;transition:all .15s;}
.tab-btn:hover{color:var(--text);}
.tab-btn.active{color:var(--text);border-bottom-color:var(--accent);}


/* ── CAMPING MAP ── */
#camping-map{height:380px;border-radius:16px;overflow:hidden;border:1.5px solid var(--border);margin-bottom:1.25rem;}
.leaflet-popup-content-wrapper{border-radius:12px;box-shadow:var(--shadow);font-family:'Nunito',sans-serif;font-size:13px;}
.leaflet-popup-content{margin:10px 14px;line-height:1.5;}
.leaflet-popup-tip{display:none;}

/* ── CAMPING ── */
.cg{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem;}
.cc{background:var(--card);border:1.5px solid var(--border);border-radius:16px;overflow:hidden;transition:box-shadow .15s;}
.cc:hover{box-shadow:var(--shadow);}
.ci{height:86px;display:flex;align-items:center;justify-content:center;font-size:34px;}
.cb{padding:.875rem 1rem;}
.cn{font-size:15px;font-weight:800;margin-bottom:3px;}
.cl{font-size:13px;color:var(--muted);margin-bottom:8px;}
.cm{display:flex;justify-content:space-between;align-items:center;}
.cy{font-size:12px;font-weight:700;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:2px 9px;color:var(--muted);}
.ct{font-size:13px;font-weight:800;color:var(--accent);}

/* ── KALENDER ── */
.cal-wrap{background:var(--card);border:1.5px solid var(--border);border-radius:16px;padding:1.25rem;margin-bottom:1.5rem;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.cday-n{text-align:center;font-size:11px;font-weight:800;text-transform:uppercase;color:var(--muted);padding:4px 0;}
.ccell{min-height:50px;border-radius:8px;border:1.5px solid var(--border);padding:4px;background:var(--card);overflow:visible;}
.ccell.empty{border-color:transparent;background:transparent;}
.ccell-n{font-size:12px;font-weight:800;}
.ccell-bar{padding:2px 5px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.4;white-space:nowrap;overflow:hidden;min-height:calc(1.4em + 4px);}
.inlever-bar{background:#2DC653;color:white;border-radius:4px;margin:3px -4px 0;}
.kamp-bar{background:#FF6B35;color:white;}
.kamp-start{border-radius:4px 0 0 4px;margin:3px -7px 0 -4px;}
.kamp-mid{border-radius:0;margin:3px -7px 0 -7px;}
.kamp-end{border-radius:0 4px 4px 0;margin:3px -4px 0 -7px;}
.cdots{display:flex;gap:3px;flex-wrap:wrap;margin-top:3px;}
.cdot{width:6px;height:6px;border-radius:50%;}
.ev-list{display:flex;flex-direction:column;gap:8px;}
.ev-item{background:var(--card);border:1.5px solid var(--border);border-radius:12px;padding:.875rem 1rem;display:flex;align-items:center;gap:12px;}
.ev-card{background:var(--card);border:1.5px solid var(--border);border-radius:14px;margin-bottom:.75rem;overflow:hidden;}
.ev-card.ev-open{margin-bottom:1.5rem;}
.ev-card-hdr{display:flex;align-items:center;gap:.875rem;padding:.9rem 1rem;cursor:pointer;user-select:none;}
.ev-card-hdr:hover{background:var(--bg);}
.ev-card-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.ev-card-main{flex:1;}
.ev-card-title{font-weight:700;font-size:14px;}
.ev-card-sub{font-size:13px;color:var(--muted);margin-top:2px;}
.ev-card-chev{font-size:18px;color:var(--muted);transition:transform .2s;}
.ev-card-body{padding:0 1rem .875rem 2.75rem;display:none;}
.ev-nav-btn{display:inline-flex;align-items:center;gap:6px;margin-top:.5rem;background:var(--accent);color:white;border:none;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:700;font-family:'Nunito',sans-serif;cursor:pointer;text-decoration:none;}
.ev-du-loc-section{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.625rem .75rem;display:flex;flex-direction:column;gap:4px;}
.ev-du-loc-naam{font-weight:700;font-size:13px;margin-bottom:2px;}
.ev-du-tijd{font-size:13px;color:var(--muted);}
.ev-du-loc-section .ev-nav-btn{margin-top:.375rem;}

/* ── CAMPING MAP ── */
.addr-row{display:flex;gap:10px;margin-bottom:1.25rem;align-items:flex-end;flex-wrap:wrap;}
.addr-row .finput{flex:1;min-width:180px;}
.addr-display{display:flex;align-items:center;min-height:46px;cursor:default;}
.abtn{background:var(--text);color:white;border:none;border-radius:12px;padding:11px 16px;font-size:13px;font-weight:800;font-family:'Nunito',sans-serif;cursor:pointer;white-space:nowrap;}
.abtn:hover{opacity:.85;}
.map-ph{background:var(--card);border:1.5px solid var(--border);border-radius:16px;height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);font-size:14px;margin-bottom:1rem;gap:8px;}

/* ── MEMBER ROW ── */
.mrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);}
.mrow:last-child{border-bottom:none;}
.ava{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;color:white;flex-shrink:0;}

/* ── TOAST ── */
#toast{position:fixed;bottom:5rem;left:50%;transform:translateX(-50%) translateY(200px);background:#2B2D42;color:white;padding:10px 22px;border-radius:50px;font-size:14px;font-weight:700;z-index:300;transition:transform .35s cubic-bezier(.34,1.56,.64,1);pointer-events:none;white-space:nowrap;}
#toast.show{transform:translateX(-50%) translateY(0);}

/* ── LOADING ── */
.spinner{display:inline-block;width:18px;height:18px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:6px;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ── TEAM TAG ── */
.team-tag{font-size:13px;font-weight:700;}

/* ── USER SELECTIE (gedeeld e-mailadres) ── */
.user-sel-btn{width:100%;border:none;border-radius:16px;padding:.9rem 1.2rem;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:3px;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden;}
.user-sel-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.22);}
.user-sel-btn:active{transform:translateY(0);}

/* ── EDIT KNOP IN TABEL ── */
.edit-btn{background:transparent;border:1.5px solid var(--border);border-radius:7px;padding:3px 8px;cursor:pointer;font-size:13px;color:var(--muted);transition:all .15s;}
.edit-btn:hover{border-color:var(--accent);color:var(--accent);}

@media(max-width:640px){
  nav{padding:.65rem 1.25rem;}
  .nav-links{display:none;}
  .page{padding:1.5rem 1rem;}
  .user-dropdown{left:0;right:0;border-radius:0 0 16px 16px;border-left:none;border-right:none;}
  .user-dropdown.open{display:flex;flex-direction:column;}
  .user-dropdown-nav{display:block;}
  .col-plaatsnaam,.col-reistijd{display:none;}
  .addr-row{flex-wrap:wrap;}
  .addr-row .sbtn{flex:1;min-width:0;}
}

/* ── ACCOUNTS TOOLBAR ICON BUTTONS ── */
.acc-icon-btn{width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--text);color:white;border:none;border-radius:12px;cursor:pointer;flex-shrink:0;transition:opacity .15s;}
.acc-icon-btn:hover{opacity:.82;}
.acc-icon-btn--muted{background:var(--muted);}

/* ── TABLE SCROLL WRAPPER ── */
.table-scroll-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* ── CLICKABLE TABLE ROWS ── */
.data-table tbody tr.clickable-row{cursor:pointer;}
.data-table tbody tr.clickable-row:hover td{background:#FFF5F0;}
.data-table tbody tr.clickable-row.row-selected td{background:#FFF0E8;border-left:3px solid var(--accent);}

/* ── CAMPING DETAIL CARD (floating overlay over map) ── */
.camping-detail-card{position:absolute;top:1rem;left:1rem;bottom:1rem;width:340px;z-index:1050;background:var(--card);border:1.5px solid var(--border);border-radius:16px;box-shadow:0 8px 32px rgba(43,45,66,.22);overflow-y:auto;animation:slide-in-left .2s ease;}
@keyframes slide-in-left{from{opacity:0;transform:translateX(-12px);}to{opacity:1;transform:translateX(0);}}
.cdc-close{position:sticky;top:0;float:right;background:none;border:none;font-size:22px;cursor:pointer;color:var(--muted);line-height:1;padding:8px 10px;border-radius:6px;z-index:1;}
.cdc-close:hover{background:var(--bg);color:var(--text);}
.cdc-header{display:flex;align-items:flex-start;gap:10px;margin:1.25rem 1.25rem .75rem;padding-right:2rem;}
.cdc-icon{flex-shrink:0;margin-top:3px;}
.cdc-name{font-family:'Fraunces',serif;font-size:22px;font-weight:700;line-height:1.2;}
.cdc-location{font-size:14px;color:var(--muted);margin-top:2px;}
.cdc-meta{display:flex;flex-direction:column;gap:.5rem;margin:0 1.25rem 1rem;font-size:14px;}
.cdc-meta-row{display:flex;align-items:baseline;gap:.4rem;}
.cdc-meta-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);min-width:80px;flex-shrink:0;}
.cdc-meta-value{color:var(--text);font-weight:600;}
.cdc-years{display:flex;flex-wrap:wrap;gap:.3rem;}
.cdc-year-chip{background:var(--bg);border:1.5px solid var(--border);border-radius:20px;padding:2px 10px;font-size:12px;font-weight:700;}
.cdc-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 1.25rem 1.25rem;}
.cdc-btn{display:inline-flex;align-items:center;gap:5px;padding:9px 16px;border-radius:10px;font-family:'Nunito',sans-serif;font-size:13px;font-weight:800;cursor:pointer;border:1.5px solid var(--border);background:var(--bg);color:var(--text);text-decoration:none;transition:all .15s;}
.cdc-btn:hover{border-color:var(--text);background:var(--text);color:white;}
.cdc-btn-primary{background:var(--text);color:white;border-color:var(--text);}
.cdc-btn-primary:hover{opacity:.82;}

/* ── CAMPING TABLE (compact variant) ── */
#camping-table-container .data-table th{padding:7px 10px;}
#camping-table-container .data-table td{padding:7px 10px;font-size:13px;}
#camping-table-container .col-plaatsnaam,
#camping-table-container .col-reistijd{white-space:nowrap;}
#camping-table-container .camping-name-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
#camping-table-container td:has(.camping-name-cell){max-width:160px;overflow:hidden;}
#camping-table-container .cdc-year-chip{font-size:11px;padding:1px 7px;}
#camping-table-container td.col-years{white-space:nowrap;}

/* ── MOBILE MAP POPUP (floating callout on marker tap) ── */
#camping-map-popup{position:absolute;width:280px;background:var(--card);border:1.5px solid var(--border);border-radius:14px;box-shadow:0 4px 24px rgba(43,45,66,.22);z-index:900;max-height:55vh;overflow-y:auto;animation:popup-appear .18s ease;}
#camping-map-popup::before{content:'';position:absolute;bottom:-12px;left:var(--arrow-left,50%);transform:translateX(-50%);width:0;height:0;border:11px solid transparent;border-top-color:var(--border);border-bottom:none;pointer-events:none;}
#camping-map-popup::after{content:'';position:absolute;bottom:-10px;left:var(--arrow-left,50%);transform:translateX(-50%);width:0;height:0;border:10px solid transparent;border-top-color:var(--card);border-bottom:none;pointer-events:none;}
@keyframes popup-appear{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}

/* ── DEPARTURE BUTTON ── */
.departure-btn{display:flex;align-items:center;gap:10px;width:100%;background:var(--bg);border:1.5px solid var(--border);border-radius:12px;padding:.75rem 1rem;cursor:pointer;text-align:left;margin-bottom:.875rem;transition:border-color .15s;}
.departure-btn:hover{border-color:var(--accent);}
.departure-btn-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.departure-btn-value{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ── CAMPING SPLIT LAYOUT ── */
.page.active.camping-split{
  display:grid;
  grid-template-columns:480px 1fr;
  grid-template-rows:auto auto 1fr;
  grid-template-areas:"header right" "filter right" "left right";
  height:calc(100vh - 60px);
  max-width:none;padding:0;margin:0;overflow:hidden;
}
.camping-header{grid-area:header;padding:1.25rem 1.5rem .75rem;border-right:1.5px solid var(--border);}
.camping-filter-row{grid-area:filter;display:flex;gap:3px;padding:.5rem 1.5rem;background:var(--card);border-bottom:1.5px solid var(--border);border-right:1.5px solid var(--border);}
.camping-filter-btn{flex:1;padding:.5rem .8rem;border:none;border-radius:10px;cursor:pointer;font-family:'Nunito',sans-serif;font-size:13px;font-weight:700;color:var(--muted);background:transparent;transition:all .15s;}
.camping-filter-btn-active{background:var(--bg);color:var(--text);box-shadow:0 1px 4px rgba(43,45,66,.12);}
.camping-mobile-toggle{display:none;}
.camping-panel-left{grid-area:left;overflow-y:auto;padding:1rem 1.5rem 1.5rem;border-right:1.5px solid var(--border);}
.camping-panel-right{grid-area:right;grid-row:1/-1;position:relative;overflow:hidden;}
#camping-map{height:100%!important;border-radius:0!important;border:none!important;margin:0!important;}

/* ── MOBILE DETAIL OVERLAY ── */
.cdo-topbar{display:flex;align-items:center;padding:.75rem 1rem;border-bottom:1.5px solid var(--border);background:var(--card);position:sticky;top:0;z-index:1;}
.cdo-back{background:none;border:none;font-family:'Nunito',sans-serif;font-size:14px;font-weight:800;color:var(--accent);cursor:pointer;padding:.3rem .5rem;border-radius:8px;}
.cdo-back:hover{background:var(--bg);}
.cdo-mini-map{height:220px;flex-shrink:0;}
.cdo-body{padding:1.25rem;}
/* In overlay, detail card becomes a normal block (not absolute) */
#camping-detail-overlay .camping-detail-card{position:static;width:auto;height:auto;box-shadow:none;border:none;animation:none;}

/* ── MOBILE ── */
@media(max-width:768px){
  .page.active.camping-split{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto 1fr;
    grid-template-areas:"header" "view-toggle" "filter" "main";
  }
  .camping-header{border-right:none;padding:1rem 1rem .5rem;}
  .camping-header h1{font-size:22px!important;}
  .camping-mobile-toggle{grid-area:view-toggle;display:flex;gap:3px;padding:.5rem .75rem;background:var(--card);border-bottom:1.5px solid var(--border);}
  .camping-view-btn{flex:1;padding:.5rem .8rem;border:none;border-radius:10px;cursor:pointer;font-family:'Nunito',sans-serif;font-size:13px;font-weight:700;color:var(--muted);background:transparent;transition:all .15s;}
  .camping-view-btn-active{background:var(--bg);color:var(--text);box-shadow:0 1px 4px rgba(43,45,66,.12);}
  .camping-filter-row{border-right:none;padding:.5rem .75rem;}
  .camping-panel-left{grid-area:main;overflow-y:auto;padding:.75rem 1rem;border-right:none;}
  .camping-panel-right{grid-area:main;grid-row:auto;overflow:hidden;display:none;}
  .camping-panel-right.mobile-visible{display:block;}
  .camping-panel-left.mobile-hidden{display:none;}
  #camping-map{height:100%!important;}
  .camping-detail-card{display:none!important;}
}

/* ── FEEDBACK KNOP ── */
#feedback-button{position:fixed;right:1.5rem;bottom:1.5rem;z-index:1450;width:56px;height:56px;border-radius:50%;background:#F97316;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.22);transition:transform .15s,box-shadow .15s;color:white;}
#feedback-button:hover{transform:scale(1.07);box-shadow:0 6px 22px rgba(0,0,0,.28);}
#feedback-button:active{transform:scale(.96);}
@media(max-width:767px){#feedback-button{display:none!important;}}

/* ── FEEDBACK FLAP (mobiel) ── */
#feedback-flap-container{position:fixed;right:0;bottom:0;z-index:1450;pointer-events:none;}
#feedback-flap{width:88px;height:88px;background:#F97316;border:none;cursor:pointer;pointer-events:all;clip-path:polygon(100% 0,100% 100%,0 100%);display:flex;align-items:flex-end;justify-content:flex-end;padding:12px;transition:width .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1);}
#feedback-flap.flap-collapsed{width:36px;height:36px;}
#feedback-flap svg{transition:opacity .25s;pointer-events:none;}
#feedback-flap.flap-collapsed svg{opacity:0;}
@media(min-width:768px){#feedback-flap-container{display:none!important;}}

/* ── FEEDBACK OVERLAY ── */
#feedback-toggle-track{position:relative;display:flex;background:var(--bg);border-radius:12px;padding:4px;margin-bottom:1.25rem;}
#feedback-toggle-pill{position:absolute;top:4px;left:4px;width:calc(50% - 4px);height:calc(100% - 8px);background:var(--card);border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.12);transition:transform .2s cubic-bezier(.4,0,.2,1);pointer-events:none;}
#feedback-toggle-track.three-way #feedback-toggle-pill{width:calc(33.333% - 2.667px);}
.feedback-toggle-option{flex:1;position:relative;z-index:1;border:none;background:transparent;padding:8px 4px;cursor:pointer;border-radius:8px;font-family:'Nunito',sans-serif;font-size:12px;font-weight:700;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:4px;transition:color .2s;white-space:nowrap;}
.feedback-toggle-option.feedback-toggle-active{color:var(--text);}
.feedback-meta-label{font-size:13px;color:var(--muted);margin-bottom:.9rem;line-height:1.5;}
.feedback-readonly{background:var(--bg);border:1.5px solid var(--border);border-radius:12px;padding:10px 14px;font-size:14px;color:var(--muted);font-family:'Nunito',sans-serif;}
.feedback-input-label{font-size:13px;font-weight:700;color:var(--text);margin-bottom:.75rem;}
.feedback-textarea{min-height:110px;resize:vertical;}
.feedback-cancel-btn{background:none;border:1.5px solid var(--border);border-radius:12px;padding:11px 18px;font-family:'Nunito',sans-serif;font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;}
.feedback-cancel-btn:hover{background:var(--bg);color:var(--text);}
