:root {
  --cream:#F5F0E8;--sand:#E8DDD0;--warm:#C9A96E;--gold:#A07840;
  --deep:#1A1410;--text:#3A2E24;--muted:#8A7A6A;--white:#FDFAF5;
  --green:#4A7C59;--red:#8B3A3A;--shadow:0 4px 24px rgba(26,20,16,0.12);
  --ab:#0F1117;--ac:#1A1D27;--abr:#2A2D3A;--aa:#C9A96E;--at:#E8E4DC;--am:#6B6878;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--text);min-height:100vh;max-width:430px;margin:0 auto;overflow-x:hidden;}

/* ── Desktop : html en arrière-plan sombre, body laisse défiler normalement
   (la mise en page large et centrée est gérée par #clientPage dans la
   media query @431px plus bas). L'ancien "cadre téléphone" sur body avait
   overflow:hidden qui empêchait le scroll et masquait le footer.  ── */
@media (min-width: 768px) {
  html { background: #14100C; min-height: 100vh; }
}

/* ── SHARED ── */
.header{background:var(--deep);padding:20px 24px 16px;position:sticky;top:0;z-index:100;}
.header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.logo{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:300;color:var(--warm);letter-spacing:2px;text-transform:uppercase;cursor:default;user-select:none;}
.logo span{font-style:italic;color:var(--white);}
.header-sub{font-size:11px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;}
.nav-btn{background:rgba(201,169,110,0.12);border:1px solid rgba(201,169,110,0.25);color:var(--warm);font-size:11px;font-family:'DM Sans',sans-serif;padding:6px 12px;border-radius:20px;cursor:pointer;}

/* ── CLIENT ── */
.hero{background:linear-gradient(180deg,var(--deep) 0%,#2C2018 100%);padding:28px 24px 32px;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;top:-40px;right:-40px;width:200px;height:200px;background:radial-gradient(circle,rgba(201,169,110,0.15) 0%,transparent 70%);border-radius:50%;}
.hero-tag{display:inline-block;border:1px solid rgba(201,169,110,0.4);color:var(--warm);font-size:10px;letter-spacing:3px;text-transform:uppercase;padding:4px 12px;border-radius:20px;margin:0 0 14px 0;font-weight:500;}
.hero-welcome{font-family:'Cormorant Garamond',serif;font-size:36px;font-weight:300;color:var(--white);line-height:1.15;margin-bottom:10px;}
.hero-welcome em{font-style:italic;color:var(--warm);}
.hero p{font-size:13px;color:rgba(253,250,245,0.6);line-height:1.6;font-weight:300;}
.pay-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(74,124,89,0.2);border:1px solid rgba(74,124,89,0.4);color:#7EC89A;font-size:11px;font-weight:500;padding:6px 12px;border-radius:20px;margin-top:14px;}
.pay-badge::before{content:'✓';font-size:12px;}
.search-card{margin:-16px 16px 0;background:var(--white);border-radius:20px;padding:20px;box-shadow:var(--shadow);position:relative;z-index:10;}
.search-card h2{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;margin-bottom:16px;color:var(--deep);}
.date-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.ig{display:flex;flex-direction:column;gap:4px;}
.ig label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-weight:500;}
.ig input,.ig select{border:1.5px solid var(--sand);border-radius:10px;padding:10px 12px;font-family:'DM Sans',sans-serif;font-size:14px;color:var(--deep);background:var(--cream);outline:none;transition:border-color .2s;width:100%;}
.ig input:focus,.ig select:focus{border-color:var(--warm);}
.search-btn{width:100%;background:var(--deep);color:var(--white);border:none;border-radius:12px;padding:14px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;letter-spacing:1px;cursor:pointer;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:8px;}
.section-header{padding:28px 24px 14px;display:flex;align-items:baseline;justify-content:space-between;}
.section-header h2{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:400;}
.section-header span{font-size:12px;color:var(--muted);}
.rooms-list{padding:0 16px 100px;display:flex;flex-direction:column;gap:16px;}
.room-card{background:var(--white);border-radius:20px;overflow:hidden;box-shadow:0 2px 16px rgba(26,20,16,0.08);}
.room-img-placeholder{width:100%;height:170px;display:flex;align-items:center;justify-content:center;position:relative;}
.room-badge{position:absolute;top:12px;left:12px;background:var(--deep);color:var(--warm);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;padding:4px 10px;border-radius:20px;font-weight:500;}
.avail-badge{position:absolute;top:12px;right:12px;font-size:10px;font-weight:500;padding:4px 10px;border-radius:20px;}
.avail-badge.available{background:rgba(74,124,89,0.9);color:#fff;}
.avail-badge.limited{background:rgba(201,140,60,0.9);color:#fff;}
.avail-badge.full{background:rgba(139,58,58,0.9);color:#fff;}
.season-badge{position:absolute;bottom:10px;left:12px;font-size:10px;font-weight:500;padding:3px 10px;border-radius:20px;background:rgba(26,20,16,0.7);color:var(--warm);border:1px solid rgba(201,169,110,0.3);}
.room-info{padding:16px 18px 18px;}
.room-name{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:600;color:var(--deep);margin-bottom:4px;}
.room-type-tag{display:inline-flex;align-items:center;gap:4px;background:var(--cream);border:1px solid var(--sand);border-radius:20px;padding:2px 10px;font-size:11px;color:var(--muted);margin-bottom:8px;}
.room-desc{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:10px;}
.room-features{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.feature-tag{background:var(--cream);border:1px solid var(--sand);border-radius:20px;padding:3px 10px;font-size:11px;color:var(--text);}
.room-footer{display:flex;align-items:center;justify-content:space-between;}
.room-price{display:flex;flex-direction:column;}
.price-amount{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--deep);line-height:1;}
.price-orig{font-family:'Playfair Display',serif;font-size:16px;color:var(--muted);text-decoration:line-through;line-height:1;}
.price-label{font-size:11px;color:var(--muted);}
.book-btn{background:var(--warm);color:var(--white);border:none;border-radius:12px;padding:12px 20px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;}
.book-btn.disabled{background:var(--sand);color:var(--muted);cursor:not-allowed;}
.tabs{display:flex;padding:16px 16px 0;gap:8px;overflow-x:auto;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab{flex-shrink:0;background:var(--white);border:1.5px solid var(--sand);border-radius:20px;padding:7px 16px;font-size:12px;font-weight:500;color:var(--muted);cursor:pointer;transition:all .2s;}
.tab.active{background:var(--deep);border-color:var(--deep);color:var(--warm);}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(26,20,16,0.7);z-index:600;display:none;align-items:flex-end;backdrop-filter:blur(4px);}
.modal-overlay.active{display:flex;}
.modal{background:var(--white);border-radius:24px 24px 0 0;padding:24px 24px 40px;width:100%;max-height:92vh;overflow-y:auto;animation:slideUp .3s cubic-bezier(0.34,1.56,0.64,1);position:relative;}
@keyframes slideUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
.modal-handle{width:40px;height:4px;background:var(--sand);border-radius:2px;margin:0 auto 20px;}
.modal-title{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:600;color:var(--deep);margin-bottom:4px;}
.modal-subtitle{font-size:12px;color:var(--muted);margin-bottom:24px;}
.msect{margin-bottom:20px;}
.msect-title{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-weight:500;}
.modal-input{width:100%;border:1.5px solid var(--sand);border-radius:12px;padding:12px 14px;font-family:'DM Sans',sans-serif;font-size:15px;color:var(--deep);background:var(--cream);outline:none;transition:border-color .2s;}
.modal-input:focus{border-color:var(--warm);}
.modal-input::placeholder{color:#C0B4A8;}
.modal-input.error{border-color:var(--red);}
.info-box{background:rgba(74,124,89,0.08);border:1px solid rgba(74,124,89,0.2);border-radius:12px;padding:12px 14px;display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;}
.info-icon{font-size:18px;flex-shrink:0;margin-top:1px;}
.info-text{font-size:12px;color:var(--green);line-height:1.5;font-weight:500;}
.summary-box{background:var(--cream);border-radius:14px;padding:14px 16px;margin-bottom:20px;}
.summary-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:13px;}
.summary-row.total{border-top:1px solid var(--sand);margin-top:6px;padding-top:10px;font-weight:500;}
.summary-row .label{color:var(--muted);}
.summary-row .value{font-family:'Cormorant Garamond',serif;font-size:16px;font-weight:600;color:var(--deep);}
.summary-row.total .value{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:var(--warm);}
.confirm-btn{width:100%;background:var(--deep);color:var(--white);border:none;border-radius:14px;padding:16px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:500;cursor:pointer;}
.close-modal{position:absolute;top:20px;right:20px;background:var(--cream);border:none;border-radius:50%;width:32px;height:32px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted);}
.error-msg{color:var(--red);font-size:11px;margin-top:4px;display:none;}

/* SUCCESS */
.success-screen{display:none;position:fixed;inset:0;background:var(--deep);z-index:300;flex-direction:column;align-items:center;justify-content:center;padding:40px 32px;text-align:center;}
.success-screen.active{display:flex;}
.success-icon{font-size:64px;margin-bottom:24px;animation:bounceIn .6s cubic-bezier(0.34,1.56,0.64,1) .2s both;}
@keyframes bounceIn{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.success-screen h2{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:300;color:var(--white);margin-bottom:10px;line-height:1.2;}
.success-screen h2 em{color:var(--warm);font-style:italic;}
.success-screen p{font-size:14px;color:rgba(253,250,245,0.6);line-height:1.6;margin-bottom:32px;}
.conf-box{background:rgba(201,169,110,0.15);border:1px solid rgba(201,169,110,0.3);border-radius:14px;padding:14px 24px;margin-bottom:32px;width:100%;}
.conf-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--warm);margin-bottom:4px;}
.conf-number{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--white);font-weight:600;letter-spacing:4px;}
.back-home-btn{background:var(--warm);color:var(--white);border:none;border-radius:14px;padding:16px 32px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;cursor:pointer;width:100%;}

/* ── DARK PANELS (Réception + Admin) ── */
.dark-panel{display:none;position:fixed;inset:0;background:var(--ab);z-index:500;overflow-y:auto;max-width:430px;margin:0 auto;}
.dark-panel.active{display:block;}
.pin-login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 32px;}
.pin-login-logo{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--aa);letter-spacing:3px;text-transform:uppercase;margin-bottom:6px;}
.pin-login-sub{font-size:11px;color:var(--am);letter-spacing:2px;text-transform:uppercase;margin-bottom:40px;}
.login-card{background:var(--ac);border:1px solid var(--abr);border-radius:20px;padding:28px 24px;width:100%;}
.login-card h2{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--at);margin-bottom:4px;}
.login-card p{font-size:12px;color:var(--am);margin-bottom:24px;}
.ai{width:100%;background:rgba(255,255,255,0.04);border:1px solid var(--abr);border-radius:12px;padding:12px 14px;font-family:'DM Sans',sans-serif;font-size:14px;color:var(--at);outline:none;transition:border-color .2s;margin-bottom:12px;}
.ai:focus{border-color:var(--aa);}
.ai::placeholder{color:var(--am);}
.ai.small{font-size:13px;padding:9px 12px;margin-bottom:0;}
.login-btn{width:100%;background:var(--aa);color:var(--deep);border:none;border-radius:12px;padding:14px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;cursor:pointer;margin-top:4px;}
.login-error{color:#E08080;font-size:12px;margin-top:10px;display:none;text-align:center;}
.login-hint{font-size:11px;color:var(--am);text-align:center;margin-top:16px;}

/* PIN pad */
.pin-display{display:flex;gap:10px;justify-content:center;margin-bottom:24px;}
.pin-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--abr);transition:all .2s;}
.pin-dot.filled{background:var(--aa);border-color:var(--aa);}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:260px;margin:0 auto;}
.pin-key{background:var(--ac);border:1px solid var(--abr);border-radius:14px;padding:16px;font-family:'DM Sans',sans-serif;font-size:22px;font-weight:500;color:var(--at);cursor:pointer;text-align:center;transition:all .15s;user-select:none;}
.pin-key:active{background:rgba(201,169,110,0.15);border-color:var(--aa);}
.pin-key.fn{font-size:14px;color:var(--am);}

/* Dark panel common */
.dp-header{background:var(--ac);border-bottom:1px solid var(--abr);padding:16px 20px;position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;}
.dp-header-title{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--aa);}
.dp-header-role{font-size:10px;color:var(--am);letter-spacing:1.5px;text-transform:uppercase;}
.dp-logout-btn{background:rgba(255,255,255,0.05);border:1px solid var(--abr);color:var(--am);font-size:12px;font-family:'DM Sans',sans-serif;padding:7px 14px;border-radius:20px;cursor:pointer;}
.dp-nav{display:flex;background:var(--ac);border-bottom:1px solid var(--abr);overflow-x:auto;scrollbar-width:none;position:sticky;top:54px;z-index:49;}
.dp-nav::-webkit-scrollbar{display:none;}
.dp-nav-tab{flex:1;min-width:60px;padding:11px 4px;text-align:center;font-size:10px;color:var(--am);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap;font-weight:500;letter-spacing:.3px;position:relative;}
.dp-nav-tab.active{color:var(--aa);border-bottom-color:var(--aa);}
.dp-nav-tab .notif-dot{position:absolute;top:2px;right:2px;background:#E08080;color:#fff;font-size:8px;font-weight:700;min-width:14px;height:14px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;padding:0 3px;line-height:1;letter-spacing:0;box-shadow:0 1px 2px rgba(0,0,0,0.3);}
.dp-content{padding:20px 16px 80px;}
.dp-sect{display:none;}
.dp-sect.active{display:block;}

/* STAT CARDS */
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;}
.stat-card{background:var(--ac);border:1px solid var(--abr);border-radius:16px;padding:16px;}
.stat-label{font-size:10px;color:var(--am);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px;}
.stat-value{font-family:'Cormorant Garamond',serif;font-size:32px;color:var(--at);font-weight:600;line-height:1;}
.stat-sub{font-size:11px;color:var(--am);margin-top:4px;}
.stat-card.accent{background:linear-gradient(135deg,rgba(201,169,110,0.15),rgba(201,169,110,0.05));border-color:rgba(201,169,110,0.3);}
.stat-card.accent .stat-value{color:var(--aa);}
.revenue-card{background:linear-gradient(135deg,rgba(201,169,110,0.12),rgba(201,169,110,0.04));border:1px solid rgba(201,169,110,0.25);border-radius:16px;padding:20px;margin-bottom:20px;}
.revenue-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--aa);margin-bottom:8px;}
.revenue-amount{font-family:'Cormorant Garamond',serif;font-size:40px;color:var(--at);font-weight:600;line-height:1;margin-bottom:4px;}
.revenue-sub{font-size:12px;color:var(--am);}
.dp-sect-title{font-family:'Cormorant Garamond',serif;font-size:20px;color:var(--at);margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;}
.dp-sect-title span{font-size:11px;font-family:'DM Sans',sans-serif;color:var(--am);}

/* BOOKING LIST (dark) */
.booking-item{background:var(--ac);border:1px solid var(--abr);border-radius:14px;padding:14px 16px;margin-bottom:10px;}
.booking-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px;}
.booking-name{font-size:15px;color:var(--at);font-weight:500;}
.booking-phone{font-size:12px;color:var(--am);margin-top:2px;}
.bstatus{font-size:10px;font-weight:500;padding:3px 10px;border-radius:20px;white-space:nowrap;}
.bstatus.confirmed{background:rgba(74,124,89,0.2);color:#7EC89A;border:1px solid rgba(74,124,89,0.3);}
.bstatus.pending{background:rgba(201,140,60,0.2);color:#E8A84A;border:1px solid rgba(201,140,60,0.3);}
.bstatus.cancelled{background:rgba(139,58,58,0.2);color:#E08080;border:1px solid rgba(139,58,58,0.3);}
.bstatus.paid{background:rgba(74,124,89,0.35);color:#7EC89A;border:1px solid rgba(74,124,89,0.5);}
.bstatus.checked_in{background:rgba(107,155,210,0.25);color:#6B9BD2;border:1px solid rgba(107,155,210,0.5);}
.bstatus.checked_out{background:rgba(138,122,106,0.2);color:var(--am);border:1px solid rgba(138,122,106,0.3);}
.bstatus.no_show{background:rgba(232,168,74,0.2);color:#E8A84A;border:1px solid rgba(232,168,74,0.4);}
.booking-details{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.bdt{background:rgba(255,255,255,0.04);border:1px solid var(--abr);border-radius:8px;padding:3px 8px;font-size:11px;color:var(--am);}
.booking-ref{font-size:11px;color:var(--aa);font-weight:500;}
.booking-actions{display:flex;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--abr);flex-wrap:wrap;}
.booking-actions-split{margin-top:10px;padding-top:10px;border-top:1px solid var(--abr);}
.booking-actions-primary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.booking-actions-primary .abtn{flex:1;min-width:120px;font-weight:600;}
.booking-actions-secondary{display:flex;gap:6px;flex-wrap:wrap;}
.booking-actions-secondary .abtn{font-size:11px;padding:6px 10px;}
.abtn{flex:1;padding:8px;border-radius:8px;font-size:11px;font-family:'DM Sans',sans-serif;font-weight:500;cursor:pointer;border:1px solid var(--abr);background:rgba(255,255,255,0.03);color:var(--at);}
.abtn.cancel{border-color:rgba(139,58,58,0.4);color:#E08080;}
.abtn.ok{border-color:rgba(74,124,89,0.4);color:#7EC89A;}
.abtn.pay{border-color:rgba(201,169,110,0.4);color:var(--aa);}
.dp-search{display:flex;gap:8px;margin-bottom:16px;}
.dp-search-input{flex:1;background:var(--ac);border:1px solid var(--abr);border-radius:10px;padding:10px 12px;font-family:'DM Sans',sans-serif;font-size:13px;color:var(--at);outline:none;}
.dp-search-input:focus{border-color:var(--aa);}
.dp-search-input::placeholder{color:var(--am);}
.filter-btn{background:var(--ac);border:1px solid var(--abr);border-radius:10px;padding:10px 12px;font-size:11px;font-family:'DM Sans',sans-serif;color:var(--am);cursor:pointer;white-space:nowrap;position:relative;}
.filter-btn.active{border-color:var(--aa);color:var(--aa);}
.filter-btn .notif-dot{position:absolute;top:-6px;right:-6px;background:#E08080;color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;letter-spacing:0;}

/* PERIOD SELECTOR */
.period-selector{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-bottom:20px;padding-bottom:4px;position:sticky;top:90px;z-index:48;background:var(--ab);padding-top:4px;}
.period-selector::-webkit-scrollbar{display:none;}

/* FILTER BAR (sticky) */
.filter-bar-sticky{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-bottom:16px;position:sticky;top:90px;z-index:48;background:var(--ab);padding:4px 0;}
.filter-bar-sticky::-webkit-scrollbar{display:none;}
.period-btn{flex-shrink:0;background:var(--ac);border:1px solid var(--abr);border-radius:20px;padding:7px 14px;font-size:11px;font-family:'DM Sans',sans-serif;font-weight:500;color:var(--am);cursor:pointer;transition:all .2s;}
.period-btn.active{background:rgba(201,169,110,0.15);border-color:var(--aa);color:var(--aa);}

/* AVAILABILITY GRID */
.avail-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:20px;}
.avail-item{background:var(--ac);border:1px solid var(--abr);border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:14px;}
.avail-emoji{font-size:28px;flex-shrink:0;}
.avail-info{flex:1;}
.avail-name{font-size:14px;color:var(--at);font-weight:500;}
.avail-detail{font-size:11px;color:var(--am);margin-top:2px;}
.avail-status{text-align:right;}
.avail-num{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:600;line-height:1;}
.avail-num.ok{color:#7EC89A;}
.avail-num.low{color:#E8A84A;}
.avail-num.zero{color:#E08080;}
.avail-tag{font-size:10px;margin-top:2px;}

/* CALENDAR */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:8px;text-align:center;}
.cal-day-label{font-size:10px;color:var(--am);font-weight:500;padding:4px 0;}
.cal-day{border-radius:8px;padding:6px 2px;text-align:center;cursor:pointer;border:1px solid transparent;}
.cal-day:hover{border-color:var(--abr);}
.cal-day.today{background:rgba(201,169,110,0.2);border-color:rgba(201,169,110,0.5);}
.cal-day.has-booking{background:rgba(255,255,255,0.04);border-color:var(--abr);}

/* RECEPTION NEW BOOKING FORM */
.rec-form{background:var(--ac);border:1px solid var(--abr);border-radius:16px;padding:18px;margin-bottom:16px;}
.rec-form-title{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--at);margin-bottom:16px;}
.rec-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.rec-form-group{display:flex;flex-direction:column;gap:5px;}
.rec-form-group.full{grid-column:1/-1;}
.rec-form-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--am);font-weight:500;}
.rec-select{width:100%;background:rgba(255,255,255,0.04);border:1px solid var(--abr);border-radius:10px;padding:10px 12px;font-family:'DM Sans',sans-serif;font-size:13px;color:var(--at);outline:none;appearance:none;-webkit-appearance:none;}
.rec-select:focus{border-color:var(--aa);}
.rec-select option{background:var(--ac);color:var(--at);}

/* BILAN CARDS */
.bilan-card{background:var(--ac);border:1px solid var(--abr);border-radius:16px;padding:16px;margin-bottom:12px;}
.bilan-title{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--am);margin-bottom:10px;font-weight:500;}
.bilan-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;}
.bilan-row .bl{color:var(--am);}
.bilan-row .bv{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:600;color:var(--at);}
.bilan-row.highlight .bv{color:var(--aa);}
.bilan-divider{border-top:1px solid var(--abr);margin:6px 0;}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--ac);border:1px solid var(--abr);color:var(--at);font-size:13px;padding:12px 20px;border-radius:20px;z-index:999;transition:transform .3s cubic-bezier(0.34,1.56,0.64,1);white-space:nowrap;max-width:90vw;}
.toast.show{transform:translateX(-50%) translateY(0);}
.empty-state{text-align:center;padding:40px 20px;color:var(--am);font-size:13px;}
.empty-state .icon{font-size:36px;margin-bottom:12px;}

/* FOOTER */
.footer{background:var(--deep);padding:32px 24px 24px;margin-top:0;}
.footer-logo{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:300;color:var(--warm);letter-spacing:2px;text-transform:uppercase;margin-bottom:4px;}
.footer-logo span{font-style:italic;color:var(--white);}
.footer-address{font-size:11px;color:rgba(253,250,245,0.4);line-height:1.6;margin-bottom:20px;}
.footer-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
.footer-link{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);border-radius:20px;padding:6px 14px;font-size:11px;color:rgba(253,250,245,0.5);cursor:pointer;text-decoration:none;transition:all .2s;}
.footer-link:hover{color:var(--warm);border-color:rgba(201,169,110,0.3);}
.footer-copy{font-size:10px;color:rgba(253,250,245,0.25);border-top:1px solid rgba(255,255,255,0.06);padding-top:16px;}

/* MENTIONS LÉGALES MODAL */
.legal-overlay{position:fixed;inset:0;background:rgba(26,20,16,0.85);z-index:700;display:none;align-items:flex-end;backdrop-filter:blur(4px);}
.legal-overlay.active{display:flex;}
.legal-modal{background:var(--white);border-radius:24px 24px 0 0;padding:24px 24px 40px;width:100%;max-height:92vh;overflow-y:auto;animation:slideUp .3s cubic-bezier(0.34,1.56,0.64,1);position:relative;}
.legal-modal h2{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:600;color:var(--deep);margin-bottom:20px;}
.legal-modal h3{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:600;color:var(--deep);margin:20px 0 8px;}
.legal-modal p,.legal-modal li{font-size:12px;color:var(--text);line-height:1.7;}
.legal-modal ul{padding-left:18px;margin-bottom:12px;}
.legal-modal .legal-section{margin-bottom:16px;}

/* LOADER */
.loader-bar{position:fixed;top:0;left:0;width:100%;height:3px;z-index:9999;pointer-events:none;opacity:0;transition:opacity .2s;}
.loader-bar.active{opacity:1;}
.loader-bar::after{content:'';display:block;width:40%;height:100%;background:var(--warm);border-radius:0 2px 2px 0;animation:loaderSlide 1s ease-in-out infinite;}
@keyframes loaderSlide{0%{transform:translateX(-100%)}50%{transform:translateX(150%)}100%{transform:translateX(250%)}}

/* RESPONSIVE DESKTOP */
@media (min-width:431px) {
  body{max-width:100%;background:var(--deep);}
  #clientPage{max-width:800px;margin:0 auto;background:var(--cream);}
  .hero-welcome{font-size:48px;}
  .rooms-list{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:0 24px 60px;}
  .search-card{margin:-16px 24px 0;max-width:500px;}
  .section-header{padding:28px 24px 14px;}
  .dark-panel{max-width:600px;}
  .footer{max-width:800px;margin:0 auto;}
}
