/* ===== ROBOT TOGGLE ===== */
#chatbot-toggle{position:fixed;bottom:18px;right:18px;width:88px;height:102px;background:transparent;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:99999}
#chatbot-toggle:hover .mini-bot{transform:translateY(-6px) scale(1.05)}
.mini-bot{position:relative;width:78px;height:96px;transition:transform .25s ease;animation:miniBotFloat 2.6s ease-in-out infinite}
@keyframes miniBotFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.mini-bot-head{position:absolute;top:2px;left:50%;transform:translateX(-50%);width:70px;height:46px;border-radius:26px;background:linear-gradient(145deg,#ffffff,#dfe5eb);box-shadow:inset 0 3px 6px rgba(255,255,255,.95),inset 0 -8px 12px rgba(170,180,190,.35),0 7px 14px rgba(0,0,0,.10)}
.mini-bot-ear{position:absolute;top:17px;width:17px;height:21px;border-radius:50%;background:linear-gradient(145deg,#f8fafc,#d7dde5);z-index:-1}
.mini-bot-ear.left{left:-9px}.mini-bot-ear.right{right:-9px}
.mini-bot-face{position:absolute;top:11px;left:50%;transform:translateX(-50%);width:54px;height:24px;border-radius:15px;background:linear-gradient(145deg,#111214,#2a2d31);display:flex;align-items:center;justify-content:space-around;padding:0 9px;box-shadow:inset 0 2px 4px rgba(255,255,255,.06)}
.mini-bot-eye{width:7px;height:15px;border-radius:20px;background:#fff45c;box-shadow:0 0 7px rgba(255,244,92,.8);animation:miniBotBlink 3.5s ease-in-out infinite}
@keyframes miniBotBlink{0%,88%,100%{transform:scaleY(1)}92%{transform:scaleY(.1)}}
.mini-bot-body{position:absolute;top:50px;left:50%;transform:translateX(-50%);width:42px;height:40px;border-radius:20px 20px 22px 22px;background:linear-gradient(145deg,#ffffff,#dce3ea);box-shadow:inset 0 3px 6px rgba(255,255,255,.95),inset 0 -8px 12px rgba(170,180,190,.35),0 7px 14px rgba(0,0,0,.10)}
.mini-bot-core{position:absolute;top:11px;left:50%;transform:translateX(-50%);width:18px;height:18px;border-radius:50%;background:#edf1f5;border:5px solid #c9cfd5;box-sizing:border-box}
.mini-bot-arm{position:absolute;top:60px;width:14px;height:32px;border-radius:14px;background:linear-gradient(145deg,#ffffff,#d9e0e7);box-shadow:0 5px 10px rgba(0,0,0,.08)}
.mini-bot-arm.left{left:8px;transform:rotate(12deg)}.mini-bot-arm.right{right:8px;transform:rotate(-12deg)}
.mini-bot-shadow{position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);width:52px;height:8px;border-radius:50%;background:rgba(100,110,120,.18);filter:blur(2px)}

/* ===== BOX ===== */
#chatbot-box{position:fixed;bottom:24px;right:24px;width:400px;height:600px;background:white;border-radius:18px;display:none;flex-direction:column;box-shadow:0 16px 50px rgba(0,0,0,.2);overflow:hidden;z-index:99999;font-family:'Poppins',Arial,sans-serif;transition:width .3s,height .3s}
#chatbot-box.expanded{width:560px;height:780px}
.chat-header{background:linear-gradient(135deg,#0d6efd,#0a58ca);color:white;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.chat-header-info{display:flex;align-items:center;gap:10px}.chat-header-actions{display:flex;gap:8px;align-items:center}
.chat-avatar{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.4)}
.chat-name{font-weight:700;font-size:14px}.chat-status{font-size:12px;opacity:.88;display:flex;align-items:center;gap:5px;margin-top:2px}.chat-dot{width:8px;height:8px;background:#7eff9e;border-radius:50%;display:inline-block}
.chat-header-btn{background:none;border:none;color:white;cursor:pointer;font-size:16px;opacity:.85;padding:5px;line-height:1;border-radius:50%}.chat-header-btn:hover{opacity:1;background:rgba(255,255,255,.16)}

#chat-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px;display:flex;flex-direction:column;gap:10px;background:#f0f4ff;scroll-behavior:smooth;min-height:0}
#chat-fixed-panel{display:none;flex-shrink:0;background:#f0f4ff;padding:10px 14px 12px;border-top:1px solid #dfe9ff;max-height:430px;overflow-y:auto;overscroll-behavior:contain}
#chat-fixed-panel.has-widget{display:block}
#chatbot-box.expanded #chat-fixed-panel{max-height:620px}
.msg,.bot-text{max-width:88%;padding:11px 15px;border-radius:16px;font-size:14px;line-height:1.6;word-break:break-word}
.bot-msg,.bot-text{background:white;color:#1a1a2e;align-self:flex-start;border-bottom-left-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.user-msg{background:#0d6efd;color:white;align-self:flex-end;border-bottom-right-radius:4px;box-shadow:0 2px 8px rgba(13,110,253,.3)}
.typing-msg{background:white;color:#888;align-self:flex-start;border-bottom-left-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.06);padding:12px 16px}

/* ===== HOTEL / ROOM BASE CARDS ===== */
.hotel-card,.room-card-old{background:white;border:1.5px solid #e3ecff;border-radius:14px;overflow:hidden;transition:transform .15s,box-shadow .15s,border-color .15s;width:100%;box-sizing:border-box}
.hotel-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(13,110,253,.14);border-color:#0d6efd}
.hotel-card-img{width:100%;height:130px;object-fit:cover;display:block;background:#e8edf5}.hotel-card-placeholder{width:100%;height:130px;background:linear-gradient(135deg,#dbe6ff,#c3d4f8);display:flex;align-items:center;justify-content:center;font-size:40px}
.hotel-card-body{padding:12px 14px}.hotel-card-title{font-size:14px;font-weight:800;color:#1a1a2e;margin-bottom:8px}
.hotel-card-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.hbadge{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:700}
.hb-price{background:#e8f5e9;color:#2e7d32}.hb-stars{background:#fff8e1;color:#e65100}.hb-score{background:#e3f2fd;color:#1565c0}
.hotel-card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.hotel-card-choose,.hotel-card-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:linear-gradient(135deg,#0d6efd,#0a58ca);color:white!important;font-size:12px;font-weight:700;padding:8px 14px;border-radius:20px;border:none;cursor:pointer;text-decoration:none!important;font-family:inherit}
.hotel-card.selected-done{opacity:.4;pointer-events:none;filter:grayscale(.5)}
.hotel-card.selected-done .hotel-card-choose{display:none}

/* ===== ROOMS TABLE ===== */
.rooms-table-wrap{align-self:flex-start;width:100%;background:white;border:1.5px solid #e3ecff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.rooms-table-header{background:#1a2740;color:white;padding:10px 14px;display:grid;grid-template-columns:2fr 1fr 2fr 1.2fr 0.8fr;gap:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.rooms-table-row{display:grid;grid-template-columns:2fr 1fr 2fr 1.2fr 0.8fr;gap:6px;padding:12px 14px;border-bottom:1px solid #eef2ff;align-items:center;background:white;transition:background .1s}
.rooms-table-row:last-child{border-bottom:none}
.rooms-table-row:hover{background:#f8faff}
.room-name-cell{display:flex;align-items:center;gap:8px}
.room-thumb{width:48px;height:38px;border-radius:8px;object-fit:cover;flex-shrink:0;background:#dde6ff}
.room-thumb-placeholder{width:48px;height:38px;border-radius:8px;background:linear-gradient(135deg,#dbe6ff,#c3d4f8);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.room-cell-name{font-weight:800;font-size:12px;color:#17233f;line-height:1.3}
.room-cell-meta{font-size:10px;color:#8898b5;margin-top:2px}
.room-capacity-cell{font-size:12px;color:#555;display:flex;align-items:center;gap:4px}
.room-capacity-cell svg{width:14px;height:14px;opacity:.6}
.pension-cell{display:flex;flex-direction:column;gap:4px}
.pension-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:8px;font-size:11px;font-weight:700;width:fit-content}
.pb-ro{background:#f0f4ff;color:#1a4fa0}.pb-bb{background:#fff8e1;color:#b45309}.pb-hb{background:#f0fff4;color:#15803d}.pb-fb{background:#fdf4ff;color:#7e22ce}.pb-ai{background:#fff0f0;color:#b91c1c}
.pension-price{font-size:10px;color:#60708f;margin-top:1px;padding-left:2px}
.price-cell{font-weight:900;color:#0d6efd;font-size:13px;white-space:nowrap}
.price-cell small{display:block;font-size:10px;color:#8898b5;font-weight:500}
.select-cell{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.room-qty-select{border:1.5px solid #c8d9ff;border-radius:9px;padding:6px 8px;font-size:12px;font-weight:700;color:#0d3b88;outline:none;background:white;width:100%}
.room-choose-btn{background:linear-gradient(135deg,#0d6efd,#0a58ca);color:white;border:none;border-radius:9px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer;font-family:inherit;white-space:nowrap;text-align:center}
.room-choose-btn:hover{background:linear-gradient(135deg,#0b5ed7,#084298)}
.rooms-table-wrap.all-done{opacity:.5;pointer-events:none}
.rooms-table-title{padding:10px 14px;font-size:13px;font-weight:800;color:#17233f;border-bottom:1px solid #eef2ff;display:flex;align-items:center;gap:6px}

/* ===== ROOMS SELECT UX ===== */
.rooms-select-wrap{background:#f8fbff;border-color:#dbe7ff}
.rooms-select-title{background:#fff}
.rooms-select-list{display:flex;flex-direction:column;gap:10px;padding:10px}
.room-select-card{background:#fff;border:1.5px solid #e3ecff;border-radius:14px;padding:12px;box-shadow:0 4px 14px rgba(22,45,90,.06)}
.room-select-top{display:flex;align-items:flex-start;gap:10px}
.room-select-icon{width:42px;height:42px;border-radius:12px;background:#edf4ff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.room-select-info{flex:1;min-width:0}
.room-select-name{font-size:13px;font-weight:900;color:#17233f;line-height:1.25;margin-bottom:4px}
.room-select-meta{font-size:11px;line-height:1.45;color:#7a86a0}
.room-select-price{text-align:right;min-width:82px;color:#0d6efd}
.room-select-price strong{display:block;font-size:14px;font-weight:900;white-space:nowrap}
.room-select-price small{display:block;font-size:10px;color:#8898b5;font-weight:600}
.room-select-formula{margin-top:10px}
.room-select-formula label{display:block;font-size:10.5px;color:#70809f;font-weight:900;text-transform:uppercase;letter-spacing:.35px;margin-bottom:5px}
.room-pension-select{width:100%;border:1.5px solid #c8d9ff;background:#f7faff;color:#0d3b88;border-radius:10px;padding:9px 10px;font-size:12px;font-weight:800;outline:none;font-family:inherit}
.room-pension-select:focus{border-color:#0d6efd;background:#fff}
.room-select-detail{margin-top:9px;display:flex;flex-direction:column;gap:4px;background:#f8fbff;border-radius:12px;padding:8px 10px;font-size:11px;color:#60708f}
.room-select-detail strong{color:#28a745;font-size:11.5px}
.room-select-pill{display:inline-flex;width:max-content;align-items:center;gap:5px;padding:4px 8px;border-radius:8px;font-size:11px;font-weight:800}
.room-select-choose{width:100%;margin-top:10px;padding:10px 12px;border-radius:12px;font-size:12px}

/* ===== MULTI-ROOM UX ===== */
.multi-room-help{background:#eef6ff;border:1px solid #cfe2ff;color:#21446f;border-radius:12px;padding:9px 10px;font-size:12px;line-height:1.45;margin:10px}
.multi-room-controls{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.multi-room-controls.has-children{grid-template-columns:.85fr 1fr 1fr}
.multi-room-controls.no-children{grid-template-columns:.85fr 1fr}
.multi-room-control label{display:block;font-size:10.5px;color:#70809f;font-weight:900;text-transform:uppercase;margin-bottom:5px}
.multi-room-control select{width:100%;border:1.5px solid #c8d9ff;background:#fff;color:#0d3b88;border-radius:10px;padding:8px 9px;font-size:12px;font-weight:800;outline:none;font-family:inherit}
.multi-room-line-total{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:12px;color:#17233f;font-weight:800}
.multi-room-line-total strong{color:#0d6efd;white-space:nowrap}
.multi-room-footer{background:#fff;border-top:1px solid #e8f0ff;padding:10px;display:flex;flex-direction:column;gap:7px}
.multi-room-progress{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#60708f}
.multi-room-progress strong{color:#0d6efd}
.multi-room-warning{display:none;background:#fff7ed;border:1px solid #fed7aa;color:#b45309;border-radius:10px;padding:7px 9px;font-size:11.5px;line-height:1.4}
.multi-room-confirm{width:100%;border:none;border-radius:12px;background:linear-gradient(135deg,#0d6efd,#0a58ca);color:#fff;padding:11px 12px;font-size:13px;font-weight:900;cursor:pointer;font-family:inherit}
.multi-room-confirm:disabled{opacity:.45;cursor:default;background:#9bbcf7}
.multi-room-presets{background:#fff;border-top:1px solid #e8f0ff;padding:10px;display:flex;flex-direction:column;gap:7px}
.multi-room-presets-title{font-size:11px;color:#70809f;font-weight:900;text-transform:uppercase;letter-spacing:.35px}
.multi-room-presets-list{display:flex;flex-wrap:wrap;gap:7px}
.multi-room-preset-btn{border:1.5px solid #c8d9ff;background:#f7faff;color:#0d3b88;border-radius:18px;padding:7px 10px;font-size:11.5px;font-weight:800;cursor:pointer;font-family:inherit}
.multi-room-preset-btn:hover{background:#0d6efd;color:#fff;border-color:#0d6efd}
.multi-room-preset-clear{border-color:#f4c2c2;color:#b42318;background:#fff7f7}
.multi-room-preset-clear:hover{background:#dc3545;color:#fff;border-color:#dc3545}

@media(max-width:480px){
    .room-select-top{align-items:flex-start}
    .room-select-price{min-width:72px}
    .room-select-price strong{font-size:13px}
}

/* ===== BOOKING WIDGET ===== */
.booking-widget{align-self:flex-start;width:100%;background:white;border:1.5px solid #dce8ff;border-radius:16px;box-shadow:0 4px 18px rgba(13,110,253,.10);overflow:auto;max-height:410px;overscroll-behavior:contain}
#chatbot-box.expanded .booking-widget{max-height:600px}
#chat-fixed-panel .booking-widget{max-width:100%;margin:0}
.booking-widget.bw-locked{opacity:.5;pointer-events:none;position:relative;max-height:none;overflow:visible}
.bw-cal-section{padding:0}
.bw-cal-nav{display:flex;justify-content:space-between;align-items:center;padding:10px 14px 4px;border-bottom:1px solid #eef2ff}
.bw-nav-btn{background:none;border:1.5px solid #c8d9ff;border-radius:8px;padding:4px 12px;font-size:16px;cursor:pointer;color:#0d6efd;line-height:1.2;font-weight:700}
.bw-nav-btn:hover{background:#e8f0ff}
.bw-nav-label{font-size:12px;font-weight:700;color:#1a2740;flex:1;text-align:center}
.bw-cal-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0 6px 6px}
#chatbot-box:not(.expanded) .bw-cal-grid{grid-template-columns:1fr}
#chatbot-box:not(.expanded) .bw-month:last-child{display:none}
.bw-month{padding:5px 6px}
.bw-month-title{text-align:center;font-size:12px;font-weight:800;color:#1a2740;margin-bottom:4px}
.bw-dow-row{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:2px}
.bw-dow-row span{text-align:center;font-size:10px;font-weight:700;color:#8898b5;padding:1px 0}
.bw-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}
.bw-day{text-align:center;padding:5px 3px;font-size:12px;cursor:pointer;border-radius:6px;transition:all .1s;color:#1a1a2e;user-select:none;line-height:1.2}
.bw-day:hover:not(.bw-empty):not(.bw-past){background:#e8f0ff;color:#0d6efd}
.bw-past{color:#ccc;cursor:default}
.bw-empty{cursor:default}
.bw-today{font-weight:800;box-shadow:inset 0 0 0 1.5px #0d6efd}
.bw-start,.bw-end{background:#0d6efd!important;color:white!important;font-weight:800}
.bw-start{border-radius:6px 0 0 6px}
.bw-end{border-radius:0 6px 6px 0}
.bw-range{background:#dbeaff;color:#0d6efd;border-radius:0}
.bw-cal-footer{padding:6px 12px;background:#f8faff;border-top:1px solid #eef2ff;font-size:12px;color:#3a5080}
.bw-cal-hint{line-height:1.5}
.bw-pers-section{border-top:1.5px solid #eef2ff;padding:12px 14px}
.bw-pers-title{font-size:13px;font-weight:800;color:#1a2740;margin-bottom:10px}
.bw-pers-box{display:flex;flex-direction:column;gap:0;border:1.5px solid #e0e8ff;border-radius:12px;overflow:hidden}
.bw-counter-row{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid #eef2ff}
.bw-counter-row:last-child{border-bottom:none}
.bw-counter-label span{font-size:13px;font-weight:600;color:#1a2740;display:block}
.bw-counter-label small{font-size:11px;color:#8898b5}
.bw-counter-ctrl{display:flex;align-items:center;gap:14px}
.bw-counter-btn{width:30px;height:30px;border-radius:50%;border:1.5px solid #c8d9ff;background:white;color:#0d6efd;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;transition:all .15s}
.bw-counter-btn:hover:not(:disabled){background:#e8f0ff;border-color:#0d6efd}
.bw-counter-btn:disabled{color:#ccc;border-color:#eee;cursor:default}
.bw-counter-val{font-size:15px;font-weight:800;color:#1a2740;min-width:20px;text-align:center}
.bw-counter-input{width:48px;border:1.5px solid #c8d9ff;border-radius:8px;padding:4px 6px;font-size:15px;font-weight:800;color:#0d3b88;text-align:center;outline:none;-moz-appearance:textfield}
.bw-counter-input::-webkit-inner-spin-button,.bw-counter-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.bw-age-section{margin-top:10px}
.bw-age-label{font-size:11px;font-weight:800;color:#8898b5;text-transform:uppercase;letter-spacing:.4px;margin-bottom:7px}
.bw-age-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bw-age-row{display:flex;align-items:center;gap:8px}
.bw-age-row label{font-size:11px;font-weight:700;color:#3a5080;min-width:58px}
.bw-age-sel{flex:1;border:1.5px solid #c8d9ff;border-radius:9px;padding:6px 8px;font-size:12px;font-weight:700;color:#0d3b88;outline:none;background:white}
.bw-confirm-btn{width:100%;border:none;background:linear-gradient(135deg,#0d6efd,#0a58ca);color:white;padding:12px 14px;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;transition:opacity .2s;position:sticky;bottom:0;z-index:5;box-shadow:0 -4px 12px rgba(255,255,255,.95)}
.bw-confirm-btn:hover:not(:disabled){opacity:.9}
.bw-confirm-btn:disabled{opacity:.4;cursor:default;background:#9bbcf7}

@media(max-width:480px){
    .bw-cal-grid{grid-template-columns:1fr}
    .bw-month:last-child{display:none}
    #chat-fixed-panel{max-height:calc(100vh - 150px);padding:8px 10px 10px}
    .booking-widget{max-height:calc(100vh - 170px)}
}

/* ===== CALENDRIER (compatibilité) ===== */
.chatbot-calendar{background:white;border-radius:14px;border:1.5px solid #e0e8ff;align-self:flex-start;width:100%;max-width:360px;margin-top:4px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.chatbot-calendar.cal-locked{opacity:.45;pointer-events:none}
.cal-header{background:linear-gradient(135deg,#0d6efd,#0a58ca);color:white;padding:10px 14px;display:flex;align-items:center;justify-content:space-between}
.cal-title{font-size:13px;font-weight:700}
.cal-nav{background:rgba(255,255,255,.2);border:none;color:white;cursor:pointer;font-size:18px;padding:2px 10px;border-radius:8px;font-weight:700;line-height:1.2}
.cal-nav:hover{background:rgba(255,255,255,.35)}
.cal-grid{padding:6px 8px}.cal-dow,.cal-days-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-dow span{text-align:center;font-size:10px;font-weight:700;color:#1a4fa0;padding:3px 0}
.cal-day{text-align:center;padding:5px 2px;font-size:12px;cursor:pointer;border-radius:7px;transition:all .12s;color:#1a1a2e;user-select:none;line-height:1.3}
.cal-day:hover:not(.cd-empty):not(.cd-past){background:#e8f0ff;color:#0d6efd}
.cal-day.cd-past{color:#ccc;cursor:default}.cal-day.cd-empty{cursor:default}
.cal-day.cd-start,.cal-day.cd-end{background:#0d6efd;color:white;font-weight:800}
.cal-day.cd-range{background:#dbeaff;color:#0d6efd}
.cal-day.cd-today{font-weight:800;box-shadow:inset 0 0 0 1.5px #0d6efd}
.cal-footer{padding:9px 12px;border-top:1px solid #e8f0ff;display:flex;align-items:center;justify-content:space-between;gap:8px}
.cal-sel{font-size:11px;color:#1a4fa0;flex:1;line-height:1.4}
.cal-ok{background:#0d6efd;color:white;border:none;border-radius:9px;padding:7px 14px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.cal-ok:disabled{background:#b0c4f5;cursor:default}

/* ===== WIDGET PERSONNES ===== */
.persons-widget{align-self:flex-start;width:100%;max-width:370px;background:white;border:1.5px solid #dce8ff;border-radius:16px;padding:14px;box-shadow:0 2px 10px rgba(0,0,0,.07);box-sizing:border-box}
.persons-widget-title{font-size:13px;font-weight:800;color:#12345f;margin-bottom:3px}
.persons-widget-sub{font-size:11px;color:#667695;margin-bottom:12px}
.persons-section{margin-bottom:12px}
.persons-section-label{font-size:10.5px;color:#70809f;font-weight:800;text-transform:uppercase;letter-spacing:.4px;margin-bottom:7px}
.persons-btns{display:flex;flex-wrap:wrap;gap:7px}
.persons-btn{padding:8px 14px;border-radius:20px;border:1.5px solid #d0daf5;background:white;color:#3a5080;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s;min-width:42px;text-align:center}
.persons-btn:hover{border-color:#0d6efd;color:#0d6efd}
.persons-btn.active{background:#0d6efd;color:white;border-color:#0d6efd}
.age-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.age-row{display:flex;align-items:center;gap:8px}
.age-row label{font-size:11px;font-weight:700;color:#3a5080;min-width:58px;white-space:nowrap}
.age-select{flex:1;border:1.5px solid #c8d9ff;border-radius:9px;padding:6px 8px;font-size:12px;font-weight:700;color:#0d3b88;outline:none;background:white}
.persons-confirm{width:100%;border:none;border-radius:12px;background:linear-gradient(135deg,#0d6efd,#0a58ca);color:white;padding:11px 12px;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;margin-top:12px}
.persons-confirm:disabled{opacity:.4;cursor:default;background:#9bbcf7}
.persons-widget.locked{opacity:.5;pointer-events:none}

/* ===== ROOM CART ===== */
.room-cart-builder{align-self:flex-start;width:100%;background:white;border:1.5px solid #dce8ff;border-radius:16px;box-shadow:0 2px 10px rgba(0,0,0,.07);padding:12px;box-sizing:border-box}
.room-cart-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.room-cart-title strong{font-size:14px;color:#12345f}
.room-cart-subtitle{font-size:12px;color:#667695;margin-bottom:10px;line-height:1.45}
.room-cart-lines{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.room-cart-line{border:1.5px solid #e3ecff;background:#f8fbff;border-radius:14px;padding:10px;box-sizing:border-box}
.room-cart-line-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}
.room-cart-line-name{font-weight:800;color:#17233f;font-size:13px}
.room-cart-line-price{font-weight:900;color:#0d6efd;font-size:13px;white-space:nowrap}
.room-cart-line-meta{font-size:11px;color:#72809d;margin-bottom:9px}
.room-cart-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.multi-room-controls.has-children,.room-cart-controls.has-children{grid-template-columns:1fr 1fr 1fr}
.multi-room-controls.no-children,.room-cart-controls.no-children{grid-template-columns:1fr 1fr}
@media(max-width:480px){
    .multi-room-controls.has-children,.room-cart-controls.has-children{grid-template-columns:1fr}
}
.room-cart-control label{display:block;font-size:10.5px;color:#70809f;font-weight:800;text-transform:uppercase;margin-bottom:4px}
.room-cart-control select{width:100%;border:1.5px solid #c8d9ff;border-radius:10px;background:#fff;color:#0d3b88;padding:8px;font-size:13px;font-weight:800;outline:none}
.room-cart-line-total{margin-top:8px;font-size:12px;color:#17233f;font-weight:700;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.room-cart-line-total strong{color:#0d6efd}
.room-cart-footer{display:flex;flex-direction:column;align-items:stretch;gap:8px;border-top:1px solid #e8f0ff;margin-top:8px;padding-top:9px}
.room-cart-progress{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#60708f}
.room-cart-progress strong{color:#0d6efd}
.room-cart-confirm{width:100%;border:none;border-radius:12px;background:linear-gradient(135deg,#0d6efd,#0a58ca);color:#fff;padding:11px 12px;font-size:13px;font-weight:900;cursor:pointer;font-family:inherit;margin-top:4px}
.room-cart-confirm:disabled{opacity:.45;cursor:default;background:#9bbcf7}
.room-cart-warning{font-size:11.5px;color:#b45309;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:7px 9px;display:none}

/* ===== QUICK REPLIES ===== */
.quick-replies-wrap{align-self:flex-start;max-width:94%}.quick-replies-hint{font-size:11.5px;color:#7a8baa;margin-bottom:6px;padding-left:2px}.quick-replies-list{display:flex;flex-wrap:wrap;gap:7px}
.qr-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:20px;border:1.5px solid #0d6efd;background:white;color:#0d6efd;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s;font-family:inherit;white-space:nowrap}
.qr-btn:hover,.qr-btn.selected-qr{background:#0d6efd;color:white}.qr-btn:disabled{opacity:.45;cursor:default;pointer-events:none}

/* ===== RECAP & BOOKING ===== */
.recap-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px;width:100%}
.recap-btn-confirm{width:100%;padding:12px;border-radius:12px;border:none;background:linear-gradient(135deg,#28a745,#1e7e34);color:white;font-size:14px;font-weight:800;cursor:pointer;font-family:inherit}
.recap-modify-btns{display:flex;flex-wrap:wrap;gap:7px}
.recap-btn-modify{padding:7px 13px;border-radius:20px;border:1.5px solid #6c757d;background:white;color:#6c757d;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.chat-action-buttons-wrap{align-self:flex-start;max-width:92%;width:92%;background:white;border-radius:16px;border-bottom-left-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.08);padding:12px;margin-top:2px}
.chat-action-buttons-title{font-size:12px;color:#60708f;margin-bottom:8px;font-weight:700}
.chat-action-buttons-list{display:flex;flex-direction:column;gap:8px}
.chat-action-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:11px 14px;border-radius:12px;text-decoration:none!important;font-size:13px;font-weight:800;transition:opacity .2s}
.chat-action-btn.whatsapp{background:#25D366;color:#fff!important}
.chat-action-btn.suivi{background:#309597;color:#fff!important}
.chat-action-btn.default{background:#0d6efd;color:#fff!important}
.step-badge{background:linear-gradient(135deg,#f0f7ff,#e3ecff);border:1px solid #c3d9ff;border-radius:12px;padding:10px 14px;font-size:13px;color:#1a4fa0;align-self:flex-start;max-width:88%}
.step-badge strong{color:#0d6efd}
.booking-link-box{background:linear-gradient(135deg,#0d6efd,#0a58ca);border-radius:14px;padding:16px;text-align:center;width:100%}
.booking-link-title{color:white;font-size:14px;font-weight:700;margin-bottom:10px}
.booking-link-btn{display:inline-flex;background:white;color:#0d6efd!important;font-size:13px;font-weight:800;padding:10px 20px;border-radius:25px;text-decoration:none!important}

/* ===== TRAVELERS FORM ===== */
.travelers-form-widget{align-self:flex-start;width:100%;background:#fff;border:1.5px solid #dce8ff;border-radius:16px;box-shadow:0 2px 10px rgba(0,0,0,.07);padding:12px;box-sizing:border-box}
.travelers-form-title{font-size:14px;font-weight:900;color:#12345f;margin-bottom:4px}
.travelers-form-sub{font-size:12px;color:#667695;line-height:1.45;margin-bottom:10px}
.travelers-form-section{border:1px solid #e8f0ff;background:#f8fbff;border-radius:14px;padding:10px;margin-top:9px}
.travelers-form-section-title{font-size:12px;font-weight:900;color:#0d3b88;margin-bottom:8px;text-transform:uppercase;letter-spacing:.3px}
.traveler-row{display:grid;grid-template-columns:92px 1fr;gap:8px;align-items:center;margin-bottom:8px}
.traveler-row.has-age{grid-template-columns:92px 1fr 76px}
.traveler-row:last-child{margin-bottom:0}
.traveler-label{font-size:12px;font-weight:800;color:#3a5080}
.traveler-input{width:100%;border:1.5px solid #c8d9ff;border-radius:10px;background:#fff;color:#17233f;padding:8px 10px;font-size:13px;font-weight:700;outline:none;font-family:inherit;box-sizing:border-box}
.traveler-input:focus{border-color:#0d6efd}
.traveler-age-pill{border:1.5px solid #dbe7ff;background:#eef6ff;color:#0d3b88;border-radius:10px;padding:8px 8px;font-size:12px;font-weight:900;text-align:center;white-space:nowrap}
.travelers-form-warning{display:none;background:#fff7ed;border:1px solid #fed7aa;color:#b45309;border-radius:10px;padding:7px 9px;font-size:11.5px;line-height:1.4;margin-top:10px}
.travelers-form-confirm{width:100%;border:none;border-radius:12px;background:linear-gradient(135deg,#0d6efd,#0a58ca);color:#fff;padding:11px 12px;font-size:13px;font-weight:900;cursor:pointer;font-family:inherit;margin-top:12px}
.travelers-form-confirm:disabled{opacity:.45;cursor:default;background:#9bbcf7}
.travelers-form-widget.locked{opacity:.55;pointer-events:none}
@media(max-width:480px){.traveler-row,.traveler-row.has-age{grid-template-columns:1fr}.traveler-age-pill{text-align:left}}
.travelers-room-section{border:1.5px solid #e3ecff;background:#f8fbff;border-radius:14px;padding:10px;margin-top:10px}
.travelers-room-title{font-size:13px;font-weight:900;color:#12345f;margin-bottom:4px;line-height:1.35}
.travelers-room-meta{font-size:11.5px;color:#667695;line-height:1.45;margin-bottom:9px}
.travelers-room-meta strong{color:#0d6efd}
.travelers-room-grid{display:flex;flex-direction:column;gap:8px}

/* ===== FOOTER INPUT ===== */
.chat-footer{display:flex;align-items:center;border-top:1px solid #e8edf5;background:white;padding:10px 12px;gap:8px;flex-shrink:0}
#chat-input{flex:1;border:1.5px solid #e0e8ff;border-radius:22px;padding:9px 16px;font-size:14px;outline:none;font-family:inherit;background:#f5f8ff;color:#1a1a2e;transition:border .2s}
#chat-input:focus{border-color:#0d6efd;background:white}
#chat-input::placeholder{color:#aab;font-size:13px}
#chat-send{width:40px;height:40px;border-radius:50%;background:#0d6efd;color:white;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(13,110,253,.35)}
#chat-send:hover{background:#0b5ed7}
#chat-send:disabled{background:#b0c4f5;cursor:not-allowed;box-shadow:none}
.chat-mobile-form-spacer{display:none}

/* ===== MOBILE ===== */
:root{--chatbot-mobile-vh:100dvh;--chatbot-mobile-top:0px}
html.chatbot-mobile-open,body.chatbot-mobile-open{overflow:hidden!important;height:100%!important;overscroll-behavior:none!important}
html.chatbot-mobile-open #chatbot-toggle{display:none!important}

@media(max-width:600px){
    #chatbot-toggle{bottom:12px!important;right:12px!important;width:70px!important;height:84px!important;z-index:99999!important}
    #chatbot-box{position:fixed!important;top:var(--chatbot-mobile-top,0px)!important;left:0!important;right:0!important;bottom:auto!important;width:100vw!important;max-width:100vw!important;height:var(--chatbot-mobile-vh,100dvh)!important;max-height:var(--chatbot-mobile-vh,100dvh)!important;border-radius:0!important;overflow:hidden!important;z-index:999999!important;flex-direction:column!important;transition:none!important;transform:none!important;contain:layout style paint!important}
    #chatbot-box.expanded{width:100vw!important;height:var(--chatbot-mobile-vh,100dvh)!important;max-height:var(--chatbot-mobile-vh,100dvh)!important}
    .chat-desktop-only{display:none!important}
    .chat-header{flex:0 0 auto!important;min-height:56px!important;padding:10px 12px!important}
    .chat-avatar{width:36px!important;height:36px!important;font-size:16px!important}
    .chat-name{font-size:13px!important;max-width:220px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
    .chat-status{font-size:11px!important}
    #chat-content{flex:1 1 auto!important;min-height:0!important;height:auto!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;padding:10px 10px calc(128px + env(safe-area-inset-bottom))!important;gap:8px!important;background:#f0f4ff!important;scroll-padding-bottom:calc(140px + env(safe-area-inset-bottom))!important}
    #chat-fixed-panel{flex:0 0 auto!important;display:none;max-height:min(42vh, 260px)!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;padding:8px 10px 10px!important;background:#f0f4ff!important;border-top:1px solid #dfe9ff!important}
    #chat-fixed-panel.has-widget{display:block!important}
    .chat-footer{flex:0 0 auto!important;position:relative!important;bottom:auto!important;left:auto!important;right:auto!important;padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important;gap:7px!important;background:#fff!important;border-top:1px solid #e8edf5!important}
    #chat-input{min-width:0!important;height:42px!important;font-size:16px!important;line-height:20px!important;padding:9px 14px!important;border-radius:22px!important}
    #chat-send{width:42px!important;height:42px!important;min-width:42px!important}
    .msg,.bot-text,.step-badge{max-width:94%!important;font-size:13px!important;line-height:1.45!important;padding:10px 12px!important;overflow-wrap:anywhere!important;word-break:break-word!important;box-sizing:border-box!important}
    .user-msg{max-width:88%!important;margin-left:auto!important}
    .bot-msg,.bot-text{max-width:94%!important;margin-right:auto!important}
    .hotel-card,.rooms-table-wrap,.rooms-select-wrap,.multi-room-wrap,.room-cart-builder,.booking-widget,.travelers-form-widget,.chat-action-buttons-wrap{width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow:hidden!important}
    .booking-widget{max-height:min(42vh, 260px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}
    .travelers-form-widget{max-height:none!important;overflow:visible!important;-webkit-overflow-scrolling:auto!important;margin-bottom:24px!important;padding-bottom:16px!important}
    .travelers-form-confirm{position:static!important;bottom:auto!important;z-index:auto!important;box-shadow:none!important;margin-top:12px!important}
    .chat-mobile-form-spacer{display:block!important;width:100%!important;min-height:92px!important;flex:0 0 92px!important;pointer-events:none!important}
    .rooms-select-list{padding:8px!important;gap:8px!important}
    .room-select-card,.travelers-room-section,.room-cart-line{padding:10px!important;border-radius:12px!important;box-sizing:border-box!important;overflow:hidden!important}
    .room-select-top{gap:8px!important}
    .room-select-icon{width:34px!important;height:34px!important;border-radius:10px!important;font-size:14px!important}
    .room-select-name,.room-cart-line-name,.travelers-room-title{font-size:13px!important;line-height:1.35!important;overflow-wrap:anywhere!important}
    .room-select-meta,.room-cart-line-meta,.travelers-room-meta{font-size:11px!important;line-height:1.4!important}
    .room-select-price{min-width:64px!important}
    .room-select-price strong{font-size:13px!important;white-space:normal!important}
    .room-pension-select,.multi-room-control select,.room-cart-control select,.traveler-input,.bw-age-sel,.bw-counter-input{width:100%!important;max-width:100%!important;min-width:0!important;font-size:16px!important;line-height:20px!important;padding:8px!important;box-sizing:border-box!important}
    .multi-room-controls.has-children,.multi-room-controls.no-children,.room-cart-controls.has-children,.room-cart-controls.no-children{grid-template-columns:1fr!important;gap:7px!important}
    .multi-room-line-total,.room-cart-line-total,.multi-room-progress,.room-cart-progress{font-size:12px!important;gap:6px!important;flex-wrap:wrap!important}
    .multi-room-confirm,.room-cart-confirm,.travelers-form-confirm,.bw-confirm-btn,.room-select-choose{font-size:13px!important;padding:10px!important;border-radius:11px!important}
    .traveler-row,.traveler-row.has-age{grid-template-columns:1fr!important;gap:5px!important}
    .traveler-age-pill{text-align:left!important;font-size:12px!important;padding:7px 8px!important}
    .quick-replies-wrap{max-width:100%!important}
    .quick-replies-list{gap:6px!important}
    .qr-btn{font-size:13px!important;padding:7px 10px!important;white-space:normal!important;max-width:100%!important}
    .recap-modify-btns{gap:6px!important}
    .recap-btn-modify{font-size:12px!important;padding:7px 10px!important}
}

.chat-action-buttons-wrap{width:calc(100% - 4px)!important;max-width:calc(100% - 4px)!important;margin-bottom:calc(96px + env(safe-area-inset-bottom))!important;overflow:visible!important;flex-shrink:0!important}
.chat-action-buttons-title{font-size:13px!important;line-height:1.35!important;margin-bottom:8px!important}
.chat-action-buttons-list{display:flex!important;flex-direction:column!important;gap:8px!important}
.chat-action-btn{min-height:44px!important;padding:12px 14px!important;font-size:13px!important;border-radius:12px!important;box-sizing:border-box!important}

/* ===== FIX v70 : calendrier mobile ===== */
@media(max-width:600px){
    #chatbot-box.has-mobile-inline-widget #chat-content{flex:1 1 auto!important;max-height:none!important}
    #chatbot-box.has-mobile-inline-widget #chat-fixed-panel{display:none!important}
    .booking-widget,#chatbot-box.expanded .booking-widget{max-height:none!important;overflow:visible!important;margin-bottom:14px!important}
    .bw-cal-section,.bw-cal-grid,.bw-month,.bw-days-grid{overflow:visible!important;max-height:none!important}
    .bw-confirm-btn{position:static!important;bottom:auto!important;z-index:auto!important;box-shadow:none!important}
    .bw-cal-nav{position:relative!important;z-index:2!important;display:flex!important}
    .bw-nav-btn{min-width:42px!important;min-height:34px!important}
}

@media(max-width:380px){
    .msg,.bot-text,.step-badge{max-width:96%!important;font-size:12.5px!important}
    .chat-name{max-width:170px!important}
    #chat-content{padding:8px 8px calc(122px + env(safe-area-inset-bottom))!important}
}