/* Booking redesign (BODY ONLY). No selectors modify the site navbar/footer. */
.tb-booking{--tb-bg:var(--surface,#fff);--tb-text:var(--text,#17254b);--tb-muted:var(--muted,#71809b);--tb-border:var(--border,#e7eaf3);--tb-ink:#17254b;--tb-accent:#8a34ef;--tb-pink:#ff7790;max-width:1280px;width:100%;margin:0 auto 44px;color:var(--tb-text);line-height:1.5;font-family:inherit}
.tb-booking *{box-sizing:border-box}.tb-booking button,.tb-booking input{font:inherit}.tb-booking a{text-decoration:none}.tb-booking img{display:block;max-width:100%}.tb-booking h1,.tb-booking h2,.tb-booking h3,.tb-booking h4{line-height:1.28;margin:0;overflow-wrap:anywhere}.tb-booking p{line-height:1.65}.tb-booking :focus-visible{outline:3px solid #ac54ef;outline-offset:3px}.tb-booking .tb-eyebrow{font-weight:850;letter-spacing:.075em;text-transform:uppercase;font-size:11px;color:#9b50ec}
.tb-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:11px;min-height:43px;padding:10px 17px;font-size:13px;font-weight:850;cursor:pointer;text-align:center;transition:filter .15s,transform .15s;white-space:normal}.tb-btn:hover{filter:brightness(.98);transform:translateY(-1px)}.tb-btn-gradient{background:linear-gradient(105deg,#ff9768 0%,#ec5394 42%,#9639f8 100%);color:#fff!important;box-shadow:0 8px 19px rgba(157,55,243,.14)}.tb-btn-light{background:var(--tb-bg);color:var(--tb-text);border-color:var(--tb-border)}.tb-btn-outline{color:#a33bdd;border-color:#dda5e7;background:transparent}.tb-btn-outline:hover{background:rgba(172,69,237,.07)}
.tb-status{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:max-content;max-width:100%;border-radius:7px;padding:6px 11px;font-size:11px;font-weight:800;white-space:nowrap}.tb-status .tb-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.tb-status.is-confirmed{background:#ddf9ec;color:#128655}.tb-status.is-pending{background:#fff1dc;color:#bd7c10}.tb-status.is-cancelled{background:#ffe4e7;color:#ca364f}
.tb-panel{min-width:0;padding:21px;background:var(--tb-bg);border:1px solid var(--tb-border);border-radius:17px;box-shadow:0 3px 13px rgba(35,58,112,.034)}.tb-panel-heading{font-size:15px!important;font-weight:900!important;display:flex;align-items:center;gap:10px;margin:0 0 17px!important}.tb-panel-heading span:first-child{width:28px;height:28px;background:rgba(139,61,246,.09);color:#ff79c2;display:grid;place-items:center;border-radius:9px;flex:none}.tb-panel-heading small{font-size:11px;color:var(--tb-muted);margin-inline-start:auto}
/* Confirmation hero */
.tb-confirmation-hero{min-height:260px;border-radius:21px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:26px;padding:26px 29px;margin-bottom:18px;background:linear-gradient(115deg,#d9ebff 0%,#f7e8f5 50%,#c2d1ee 100%)}
.tb-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(1px);opacity:.45}.tb-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(225,237,255,.99),rgba(252,244,252,.89) 57%,rgba(217,227,250,.52))}.tb-confirmation[dir=rtl] .tb-hero-overlay{background:linear-gradient(270deg,rgba(225,237,255,.99),rgba(252,244,252,.89) 57%,rgba(217,227,250,.52))}
.tb-hero-card{z-index:1;display:flex;gap:19px;align-items:flex-start;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.9);box-shadow:0 11px 42px rgba(26,53,105,.13);border-radius:19px;padding:23px 27px;width:min(660px,78%);color:#17254b}.tb-hero-mark{flex:none;width:65px;height:65px;border-radius:50%;display:grid;place-items:center;font-size:39px;font-weight:900;box-shadow:0 0 0 10px rgba(68,183,142,.1)}.tb-hero-mark.is-success{background:#2ecb9b;color:#fff}.tb-hero-mark.is-waiting{background:#ffe1a2;color:#a86b0c}.tb-hero-body{min-width:0;flex:1}.tb-hero-body h1{font-size:clamp(24px,2.8vw,31px);font-weight:950;margin:4px 0 4px}.tb-hero-body>p{font-size:12px;color:#6c7892;margin:0 0 12px}.tb-reference-line{display:flex;flex-wrap:wrap;gap:9px 11px;align-items:center;margin-bottom:14px}.tb-reference-line>span:first-child{font-size:11px;color:#71809b}.tb-reference-line>strong{font-size:19px;overflow-wrap:anywhere;max-width:100%}.tb-reference-line .tb-status{margin-inline-start:3px}.tb-hero-actions{display:flex;gap:8px;flex-wrap:wrap}.tb-hero-actions .tb-btn{font-size:11px;min-height:40px;padding:9px 14px}.tb-hero-decoration{z-index:1;align-self:center;color:#30265f;font:italic 30px cursive;transform:rotate(-8deg);white-space:nowrap;text-shadow:0 2px 16px #fff}
.tb-confirmation-inner{display:grid;gap:14px}.tb-alert{padding:13px 17px;display:flex;gap:12px;align-items:flex-start;border:1px solid;border-inline-start-width:4px;border-radius:11px;font-size:13px}.tb-alert p{margin:5px 0 0}.tb-alert strong{font-weight:900}.tb-alert-warn{color:#9e5729;background:#fff7ed;border-color:#e8bb91}.tb-alert-info{color:#386196;background:#edf4ff;border-color:#bdd6ff}
/* Main hotel spotlight and imagery */
.tb-hotel-spotlight{padding:15px}.tb-gallery{display:grid;grid-template-columns:1.35fr 1fr;gap:7px;min-height:210px}.tb-gallery-main{padding:0;min-height:208px;border:0;background:none;overflow:hidden;border-radius:13px;cursor:zoom-in}.tb-gallery-main img{width:100%;height:100%;max-height:235px;object-fit:cover}.tb-gallery-thumbs{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:7px;height:235px}.tb-gallery-thumbs button{border:0;padding:0;background:transparent;border-radius:11px;position:relative;overflow:hidden;cursor:zoom-in;min-width:0}.tb-gallery-thumbs button:nth-child(3){grid-column:1 / -1}.tb-gallery-thumbs button img{height:100%;width:100%;object-fit:cover}.tb-gallery-thumbs button span{position:absolute;inset:0;background:rgba(16,20,47,.65);color:#fff;font-size:13px;font-weight:900;display:grid;place-items:center}.tb-gallery-blank{min-height:200px}.tb-photo-placeholder{width:100%;height:100%;min-height:115px;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;color:#a26ac9;background:linear-gradient(130deg,#eef5ff,#fcf0fb);border-radius:11px}.tb-photo-placeholder span{font-size:49px}.tb-photo-placeholder small{font-size:12px;font-weight:900;letter-spacing:.12em}.tb-hotel-info{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:19px 7px 4px}.tb-hotel-info h2{font-size:clamp(19px,2vw,26px);font-weight:950;margin:4px 0 5px}.tb-hotel-stars{color:#f5b42e;letter-spacing:3px;font-size:17px}.tb-hotel-address{font-size:12px;color:var(--tb-muted);margin:8px 0 0}.tb-map-preview{flex:none;display:flex;align-items:center;justify-content:center;gap:8px;min-width:162px;min-height:75px;background:repeating-linear-gradient(145deg,rgba(147,193,246,.18) 0 8px,rgba(209,225,235,.35) 8px 13px),#f3f7ff;color:#8042c3!important;border:1px solid #dce8f9;border-radius:13px;font-weight:850;font-size:12px;padding:9px}
/* Booking stay row and detail boxes */
.tb-stay-grid{background:var(--tb-bg);border:1px solid var(--tb-border);border-radius:15px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:10px 4px}.tb-stay-item{display:flex;gap:10px;align-items:center;padding:10px;border-inline-end:1px solid var(--tb-border);min-width:0}.tb-stay-item:last-child{border:0}.tb-stay-icon{display:grid;place-items:center;width:33px;height:33px;flex:none;border-radius:9px;background:rgba(139,61,246,.1);color:#ff79c2;font-size:20px}.tb-stay-item div{min-width:0}.tb-stay-item small,.tb-stay-item strong,.tb-stay-item em{display:block}.tb-stay-item small{font-size:10px;color:var(--tb-muted)}.tb-stay-item strong{font-size:12px;font-weight:900;overflow-wrap:anywhere}.tb-stay-item em{font-style:normal;font-size:10px;color:var(--tb-muted)}.tb-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.tb-info-list{display:grid;gap:1px;margin:0}.tb-kv{display:grid;grid-template-columns:minmax(105px,1fr) 1.3fr;align-items:start;gap:10px;padding:9px 11px;background:rgba(135,155,188,.055);border-radius:7px;font-size:12px}.tb-kv:nth-child(even){background:rgba(135,155,188,.09)}.tb-kv dt{color:var(--tb-muted);margin:0}.tb-kv dd{margin:0;font-weight:750;overflow-wrap:anywhere;min-width:0}.tb-kv .tb-money{font-size:17px;font-weight:950;color:var(--tb-text)}.tb-room-layout{display:flex;gap:18px;align-items:center}.tb-room-layout h4{font-size:15px;font-weight:900}.tb-room-layout p{margin:8px 0 0;color:var(--tb-muted);font-size:12px}.tb-room-icon{border-radius:13px;display:grid;place-items:center;width:100px;height:106px;font-size:44px;flex:none;background:linear-gradient(135deg,#e9eaff,#faeaf6);color:#ff79c2}.tb-expand summary{font-weight:800;color:#8a35e3;cursor:pointer;padding:12px 0 4px;font-size:12px}.tb-expand p{color:var(--tb-muted);font-size:12px;max-height:230px;overflow:auto;white-space:pre-line}.tb-full-panel summary.tb-panel-heading{cursor:pointer;margin:0!important}.tb-full-panel .tb-amenity-list{margin-top:14px}.tb-amenity-list{display:flex;gap:9px 19px;flex-wrap:wrap}.tb-amenity-list>span{display:inline-flex;gap:7px;align-items:center;color:var(--tb-muted);font-size:12px}.tb-amenity-list>span:first-letter{color:#8842de}.tb-bottom-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:13px}.tb-bottom-grid details>summary{cursor:pointer}.tb-policy{font-size:12px;color:var(--tb-muted);line-height:1.8;white-space:pre-line;overflow-wrap:anywhere}.tb-guest-list{list-style:none;margin:0;padding:0;display:grid;gap:9px}.tb-guest-list li{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--tb-border);padding:8px 2px;font-size:12px}.tb-guest-list li span{font-weight:850}.tb-guest-list li small{color:var(--tb-muted)}.tb-empty-note{color:var(--tb-muted);font-size:12px}.tb-bottom-actions{display:flex;justify-content:flex-end;gap:9px;margin:6px 0 10px}
/* My Bookings list */
.tb-bookings-cover{border-radius:18px 18px 0 0;padding:33px 30px 45px;background:linear-gradient(103deg,rgba(241,248,255,.96),rgba(247,238,253,.81)),radial-gradient(ellipse at 95% 70%,#bbd4ef 0,transparent 45%);color:#17254b;border:1px solid var(--tb-border);border-bottom:none}.tb-bookings-cover h1{font-size:clamp(27px,3vw,36px);font-weight:950;margin:6px 0 3px}.tb-bookings-cover p{font-size:13px;color:#667b98;margin:0}.tb-bookings-tabs{display:flex;gap:5px;overflow-x:auto;background:var(--tb-bg);padding:0 15px;border:1px solid var(--tb-border);border-top:0;border-radius:0 0 13px 13px}.tb-bookings-tabs button{flex:none;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--tb-muted);padding:17px 19px;font-size:12px;font-weight:850;cursor:pointer}.tb-bookings-tabs button span{opacity:.8;margin-inline-start:4px}.tb-bookings-tabs button.is-selected{color:#8d3de1;border-bottom-color:#b94aea}.tb-bookings-controls{display:flex;gap:11px;align-items:center;justify-content:space-between;padding:18px 0 13px}.tb-booking-search{display:flex;gap:11px;align-items:center;flex:1;min-width:0;padding:0 16px;height:47px;background:var(--tb-bg);border:1px solid var(--tb-border);border-radius:11px;box-shadow:0 1px 3px rgba(24,47,96,.02)}.tb-booking-search:focus-within{border-color:#b559ed;box-shadow:0 0 0 3px rgba(176,74,243,.09)}.tb-booking-search>span{font-size:24px;color:var(--tb-muted)}.tb-booking-search input{flex:1;border:0!important;background:transparent!important;min-width:0;color:var(--tb-text);font-size:12px!important;outline:0!important;box-shadow:none!important;height:100%;padding:0!important}.tb-list-results{display:grid;gap:11px}.tb-list-card{background:var(--tb-bg);border:1px solid var(--tb-border);border-radius:15px;box-shadow:0 3px 13px rgba(32,45,86,.045);padding:13px;display:grid;grid-template-columns:145px minmax(0,1fr) 155px;gap:17px;align-items:stretch;min-width:0}.tb-list-photo{width:100%;min-width:0;height:153px;overflow:hidden;border-radius:10px}.tb-list-photo img{height:100%;width:100%;object-fit:cover}.tb-list-content{min-width:0;padding:3px 0}.tb-list-overline{font-size:10px;color:#9c4bda;letter-spacing:.08em;font-weight:850}.tb-list-content h2{font-size:15px;font-weight:950;margin:4px 0 2px}.tb-list-location{font-size:11px;color:var(--tb-muted);margin:7px 0 14px;overflow-wrap:anywhere}.tb-list-content .tb-hotel-stars{font-size:13px}.tb-list-stats{display:flex;gap:12px;flex-wrap:wrap}.tb-list-stats>span{font-size:11px;font-weight:850;display:grid;gap:3px;min-width:70px;max-width:135px}.tb-list-stats small{font-size:10px;color:var(--tb-muted);font-weight:500}.tb-list-side{border-inline-start:1px solid var(--tb-border);padding-inline-start:16px;display:flex;align-items:stretch;flex-direction:column;gap:9px;justify-content:center}.tb-list-ref{display:grid;gap:2px}.tb-list-ref small{font-size:10px;color:var(--tb-muted)}.tb-list-ref strong{font-size:11px;overflow-wrap:anywhere}.tb-list-side .tb-status{font-size:10px}.tb-list-price{font-size:19px;font-weight:950;text-align:start}.tb-list-side .tb-btn{width:100%;font-size:11px;min-height:37px;padding:8px}.tb-card-test-note,.tb-card-support-note{grid-column:1/-1;padding:8px 11px;border-radius:8px;background:#fff8ec;color:#90582b;font-size:11px}.tb-card-support-note{background:rgba(125,91,187,.09);color:var(--tb-muted)}.tb-list-empty{padding:70px 18px;text-align:center;background:var(--tb-bg);border:1px solid var(--tb-border);border-radius:17px}.tb-empty-suitcase{margin:auto auto 15px;width:104px;height:104px;border-radius:50%;display:grid;place-items:center;font-size:62px;background:linear-gradient(135deg,#f2e6ff,#ffe5e9)}.tb-list-empty h2{font-size:23px;font-weight:950}.tb-list-empty p{color:var(--tb-muted);font-size:13px}.tb-list-empty .tb-btn{margin-top:10px}
/* Loading/error states */
.tb-state,.tb-booking-loading{min-height:460px;padding:65px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--tb-bg);border:1px solid var(--tb-border);border-radius:20px}.tb-state-graphic{font-size:88px;display:grid;place-items:center;width:136px;height:136px;border-radius:50%;color:#d26bdc;background:radial-gradient(circle at 30% 25%,#f5eaff,#dde9ff)}.tb-state-graphic-loading{color:#bb5add;animation:tb-float 2.5s ease-in-out infinite}.tb-state h1,.tb-booking-loading h1{font-size:24px;font-weight:950}.tb-state p,.tb-booking-loading p{font-size:13px;color:var(--tb-muted);max-width:360px}.tb-loading-steps{display:grid;gap:7px;font-size:12px;color:#199d6f;text-align:start}.tb-loading-spinner{width:29px;height:29px;border:3px solid #ebd7ff;border-top-color:#a84bea;border-radius:50%;animation:tb-spin .8s linear infinite}@keyframes tb-spin{to{transform:rotate(360deg)}}@keyframes tb-float{50%{transform:translateY(-8px)}}
/* Booking gallery dialog */
.tb-booking-gallery-dialog{position:fixed;z-index:150;inset:0;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:rgba(10,20,38,.92)}.tb-booking-gallery-panel{width:min(100%,1000px);max-height:96vh;display:flex;flex-direction:column;gap:14px;color:#fff}.tb-booking-gallery-bar{display:flex;align-items:center;justify-content:space-between;gap:15px}.tb-booking-gallery-bar button,.tb-booking-gallery-controls button{border:1px solid #ffffff80;border-radius:10px;padding:9px 15px;background:#ffffff19;color:#fff;cursor:pointer}.tb-booking-gallery-frame{display:grid;grid-template-columns:46px 1fr 46px;align-items:center;gap:12px;min-height:0}.tb-booking-gallery-frame img{height:min(66vh,650px);width:100%;object-fit:contain}.tb-booking-gallery-controls{display:flex;gap:12px;justify-content:center}
:root[data-theme=dark] .tb-booking{--tb-ink:#ecedff}:root[data-theme=dark] .tb-hero-card{background:rgba(24,33,55,.95);color:#fff;border-color:#415071}:root[data-theme=dark] .tb-hero-body>p,:root[data-theme=dark] .tb-reference-line>span:first-child{color:#b3bfd2}:root[data-theme=dark] .tb-hero-decoration{color:#252445}:root[data-theme=dark] .tb-hero-overlay{opacity:.7}:root[data-theme=dark] .tb-bookings-cover{background:linear-gradient(95deg,#202c4a,#3e2955);color:#fff}:root[data-theme=dark] .tb-bookings-cover p{color:#b6c3d8}:root[data-theme=dark] .tb-map-preview{background:linear-gradient(135deg,#263b54,#33415e);border-color:#48516b;color:#dfc0ff!important}:root[data-theme=dark] .tb-room-icon,:root[data-theme=dark] .tb-photo-placeholder{background:linear-gradient(135deg,#293550,#4a355d)}
@media(max-width:1000px){.tb-hero-decoration{display:none}.tb-hero-card{width:min(100%,680px)}.tb-stay-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tb-stay-item:nth-child(3){border-inline-end:0}.tb-list-card{grid-template-columns:116px minmax(0,1fr) 135px;gap:11px}.tb-list-photo{height:130px}.tb-list-stats{gap:10px}}
@media(max-width:720px){.tb-booking{margin-bottom:22px}.tb-confirmation-hero{padding:15px;border-radius:15px;min-height:170px}.tb-hero-card{padding:18px;gap:12px;width:100%;border-radius:13px}.tb-hero-mark{width:43px;height:43px;font-size:28px;box-shadow:0 0 0 6px rgba(68,183,142,.1)}.tb-hero-body h1{font-size:19px}.tb-hero-body>p{font-size:11px}.tb-reference-line>strong{font-size:15px}.tb-reference-line .tb-status{font-size:10px}.tb-hero-actions{gap:6px}.tb-hero-actions .tb-btn{font-size:10px;min-height:37px}.tb-gallery{min-height:160px;grid-template-columns:1.2fr 1fr}.tb-gallery-main{min-height:160px}.tb-gallery-main img,.tb-gallery-thumbs{height:178px}.tb-hotel-info{padding:13px 5px 4px}.tb-hotel-info h2{font-size:19px}.tb-map-preview{min-width:95px;min-height:55px}.tb-stay-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tb-stay-item{border-inline-end:none;border-bottom:1px solid var(--tb-border)}.tb-stay-item:nth-child(even){border-inline-start:1px solid var(--tb-border)}.tb-stay-item:last-child{border-bottom:0}.tb-detail-grid,.tb-bottom-grid{grid-template-columns:1fr}.tb-list-card{grid-template-columns:100px minmax(0,1fr);gap:12px}.tb-list-photo{height:112px}.tb-list-content{padding:0}.tb-list-content h2{font-size:13px}.tb-list-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tb-list-stats span{font-size:10px}.tb-list-side{grid-column:1/-1;border-inline-start:0;border-top:1px solid var(--tb-border);padding:10px 0 0;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.tb-list-price{font-size:17px}.tb-list-side .tb-btn{grid-column:1/-1}.tb-list-ref strong{font-size:10px}.tb-bookings-cover{padding:24px 17px 25px}.tb-bookings-cover h1{font-size:24px}.tb-bookings-tabs{padding:0 4px}.tb-bookings-tabs button{font-size:11px;padding:12px 9px}.tb-bookings-controls{padding:13px 0}.tb-bookings-controls>.tb-btn{padding:8px;font-size:11px}}
@media(max-width:430px){.tb-hero-card{flex-direction:column;align-items:flex-start}.tb-hero-actions{width:100%}.tb-hero-actions .tb-btn:first-child{width:100%}.tb-gallery-main img,.tb-gallery-thumbs{height:152px}.tb-map-preview{min-width:80px;font-size:10px;padding:4px}.tb-hotel-info h2{font-size:16px}.tb-panel{padding:15px}.tb-stay-item{padding:10px 6px;gap:7px}.tb-stay-icon{width:27px;height:27px}.tb-stay-item strong{font-size:11px}.tb-kv{grid-template-columns:1fr 1fr}.tb-list-card{padding:9px;gap:9px;grid-template-columns:85px 1fr}.tb-list-photo{height:102px}.tb-list-content h2{font-size:12px}.tb-list-location{font-size:10px;margin-bottom:6px}.tb-list-stats>span{font-size:9px}.tb-bookings-tabs button{padding:12px 7px}.tb-bookings-cover p{font-size:11px}}
@media(prefers-reduced-motion:reduce){.tb-btn,.tb-state-graphic-loading,.tb-loading-spinner{animation:none;transition:none}}
@media print{body:has(.tb-confirmation) .sidebar,body:has(.tb-confirmation) .app-top,body:has(.tb-confirmation) .mobile-shortcuts,body:has(.tb-confirmation) .mobile-nav,body:has(.tb-confirmation) .app-footer,body:has(.tb-confirmation) .hotel-public-footer,body:has(.tb-confirmation) .topbar{display:none!important}body:has(.tb-confirmation) .main-content,body:has(.tb-confirmation) .hotel-public-main{padding:0!important;margin:0!important;max-width:none!important}body:has(.tb-confirmation) .app-layout{display:block!important}body:has(.tb-confirmation) .tb-booking{max-width:none;font-size:11px}body:has(.tb-confirmation) .tb-bottom-actions,body:has(.tb-confirmation) .tb-hero-actions{display:none!important}body:has(.tb-confirmation) .tb-confirmation-hero{min-height:auto;padding:4px;break-inside:avoid}body:has(.tb-confirmation) .tb-panel,body:has(.tb-confirmation) .tb-stay-grid{break-inside:avoid;box-shadow:none}body:has(.tb-confirmation) .tb-gallery img{max-height:135px}}
