/* Phase 4 — Booking confirmation and My Bookings. Presentation only; app routing unchanged. */
.tb-booking,.tb-booking *{min-width:0}
.tb-booking .tb-status{white-space:normal;text-align:center;line-height:1.3}
.tb-status.is-review{background:#fff1db;color:#955d1e}
.tb-status.is-failed{background:#ffe5e9;color:#af2945}
.tb-status.is-unknown{background:var(--surface2,#eaf0fa);color:var(--muted,#58647a)}
.tb-status.is-pending{background:#fff1dc;color:#9a680f}
.tb-status.is-confirmed{background:#ddf9ec;color:#0b7e50}
.tb-phase4-hero-card{width:min(720px,100%);align-items:flex-start}
.tb-phase4-hero-card .tb-hero-body>p{line-height:1.65;font-size:13px;margin-block:8px 13px}
.tb-phase4-hero-card .tb-reference-line{padding:11px 13px;border-radius:12px;align-items:baseline;gap:5px 10px}
.tb-phase4-hero-card .tb-reference-line>strong{font-size:clamp(14px,2.2vw,19px);overflow-wrap:anywhere}
.tb-phase4-hero-card .tb-hero-actions{display:flex;flex-wrap:wrap;gap:9px}
.tb-phase4-hero-card .tb-hero-actions button[data-action=hotel-refresh-order]{min-height:46px}
.tb-booking [data-action=hotel-refresh-order][aria-busy=true]{opacity:.6;cursor:progress}
.tb-phase4-alert{align-items:center}
.tb-phase4-alert strong{display:block;font-size:14px}
.tb-phase4-alert p{margin:5px 0 0}
.tb-booking .tb-confirmation-hero{min-height:210px}
.tb-booking .tb-confirmation-inner{gap:16px}
.tb-booking .tb-stay-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.tb-booking .tb-detail-grid{gap:14px}
.tb-booking .tb-room-layout{min-width:0;align-items:flex-start}
.tb-booking .tb-room-layout>div{min-width:0}
.tb-booking .tb-room-layout h4{overflow-wrap:anywhere}
.tb-booking .tb-info-list dd{overflow-wrap:anywhere}
.tb-booking .tb-bottom-actions{flex-wrap:wrap;gap:9px}
.tb-booking .tb-bottom-actions .tb-btn{min-height:44px}
.tb-bookings-cover{padding:26px 26px 31px}
.tb-my-bookings .tb-list-results{gap:12px}
.tb-my-bookings .tb-list-card{grid-template-columns:128px minmax(0,1fr) minmax(160px,190px);gap:15px;padding:14px}
.tb-my-bookings .tb-list-side{justify-content:center;align-items:stretch}
.tb-my-bookings .tb-list-side .tb-status{justify-self:start;max-width:100%}
.tb-my-bookings .tb-list-side .tb-btn{min-height:44px}
.tb-my-bookings .tb-list-ref strong{word-break:break-word}
.tb-phase4-status-hint{font-size:11px;line-height:1.5;color:var(--tb-muted);display:block}
.tb-phase4-recovery{margin:18px auto 26px;border:1px solid var(--tb-border);background:var(--tb-bg);border-radius:17px;padding:36px 25px;display:grid;justify-items:start;gap:13px}
.tb-phase4-recovery h1{font-size:clamp(21px,3vw,28px)}
.tb-phase4-recovery p{color:var(--tb-muted);line-height:1.7}
.tb-bookings-tabs button,.tb-my-bookings .tb-bookings-controls a{min-height:44px}
.tb-my-bookings .tb-list-empty{padding:48px 19px}
.tb-my-bookings .tb-booking-search input{font-size:16px!important}
.tb-booking-gallery-dialog .tb-booking-gallery-panel{max-height:calc(100dvh - 32px);max-width:100%;overflow:auto}
.tb-booking-gallery-dialog button{min-height:44px;min-width:44px}
.tb-booking-gallery-dialog button:focus-visible{outline:3px solid #e4baff;outline-offset:3px}
.tb-booking .tb-booking-loading .tb-btn{margin-top:10px}
@media(max-width:950px){
 .tb-booking .tb-stay-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .tb-my-bookings .tb-list-card{grid-template-columns:115px minmax(0,1fr) 160px}
}
@media(max-width:740px){
 .tb-booking .tb-confirmation-hero{padding:12px;min-height:0}
 .tb-phase4-hero-card{padding:17px;width:100%}
 .tb-phase4-hero-card .tb-hero-body h1{font-size:clamp(20px,4vw,26px)}
 .tb-phase4-hero-card .tb-hero-actions>.tb-btn{flex:1 1 125px}
 .tb-booking .tb-stay-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .tb-booking .tb-stay-item{border:0;border-bottom:1px solid var(--tb-border)}
 .tb-booking .tb-stay-item:nth-child(odd){border-inline-end:1px solid var(--tb-border)}
 .tb-booking .tb-detail-grid,.tb-booking .tb-bottom-grid{grid-template-columns:minmax(0,1fr)}
 .tb-my-bookings .tb-list-card{grid-template-columns:102px minmax(0,1fr);gap:11px}
 .tb-my-bookings .tb-list-side{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border-inline-start:0;border-top:1px solid var(--tb-border);padding:12px 0 0}
 .tb-my-bookings .tb-list-side .tb-phase4-status-hint{grid-column:1/-1}
 .tb-my-bookings .tb-list-side .tb-list-price{justify-self:end}
 .tb-my-bookings .tb-list-side .tb-btn{grid-column:1/-1}
 .tb-my-bookings .tb-bookings-tabs{scrollbar-width:thin}
}
@media(max-width:430px){
 .tb-booking .tb-confirmation-hero{padding:8px}
 .tb-phase4-hero-card{gap:12px;padding:15px}
 .tb-phase4-hero-card .tb-hero-mark{width:42px;height:42px}
 .tb-phase4-hero-card .tb-hero-actions .tb-btn{font-size:12px}
 .tb-phase4-hero-card .tb-reference-line{display:grid;justify-items:start}
 .tb-booking .tb-panel{padding:14px}
 .tb-booking .tb-stay-grid .tb-stay-item{padding:10px 6px}
 .tb-my-bookings .tb-list-card{grid-template-columns:84px minmax(0,1fr);gap:10px;padding:10px}
 .tb-my-bookings .tb-list-side{display:flex;flex-direction:column;align-items:stretch;gap:8px}
 .tb-my-bookings .tb-list-side .tb-list-price{text-align:start;align-self:start}
 .tb-my-bookings .tb-list-ref strong{font-size:11px}
 .tb-my-bookings .tb-bookings-controls{flex-wrap:wrap}
 .tb-my-bookings .tb-bookings-controls>.tb-booking-search{flex:1 1 100%}
}
@media(max-width:350px){
 /* Verified EN 320px overflow: fit existing header controls without clipping them. */
 body:has(.tb-booking) .app-top{padding-inline:8px;gap:4px}
 body:has(.tb-booking) .app-top>.row{gap:4px;min-width:0}
 body:has(.tb-booking) .app-top-title{display:none}
 body:has(.tb-booking) .app-top-actions{gap:4px;flex-shrink:0}
 body:has(.tb-booking) .app-top-actions .btn-round{width:40px;min-width:40px;height:40px;padding:0}
 body:has(.tb-booking) .app-top-actions .avatar-sm{width:34px;height:34px}

 .tb-my-bookings .tb-list-card{grid-template-columns:1fr}
 .tb-my-bookings .tb-list-photo{height:136px;max-width:100%}
 .tb-my-bookings .tb-list-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .tb-phase4-hero-card .tb-hero-mark{display:none}
}
@media(max-height:640px){
 .tb-booking-gallery-dialog{padding:12px}
 .tb-booking-gallery-frame img{height:min(56dvh,380px)}
}
@media(prefers-reduced-motion:reduce){
 .tb-booking .tb-loading-spinner,.tb-booking .tb-state-graphic-loading{animation:none}
 .tb-booking .tb-btn{transition:none}
}
