/* =========================================================
   OTA LAYOUT FIX FINAL - memperbaiki tampilan yang terlihat pecah
   Fokus: sidebar, konten, footer, kartu tiket, responsive HP.
   Tidak mengubah logika PHP/database.
   ========================================================= */
:root{--fix-sidebar:300px;--fix-max:1400px;--fix-bg:#eef5fb;--fix-navy:#071f3f;--fix-blue:#1178ff;--fix-sky:#0ea5e9;--fix-cyan:#05b6d3;--fix-green:#10b981;--fix-line:#d9e8f7;--fix-muted:#5d718b;--fix-shadow:0 20px 55px rgba(8,33,63,.10)}
html,body{width:100%;max-width:100%;overflow-x:hidden!important;background:var(--fix-bg)!important}
body.app-body{min-height:100vh;background:linear-gradient(180deg,#f6fbff 0%,#eef5fb 100%)!important;color:var(--fix-navy)}
.app-shell{display:flex!important;align-items:stretch!important;min-height:100vh!important;width:100%!important;background:var(--fix-bg)!important}
.sidebar{position:sticky!important;top:0!important;left:0!important;height:100vh!important;min-height:100vh!important;flex:0 0 var(--fix-sidebar)!important;width:var(--fix-sidebar)!important;z-index:80!important;padding-bottom:28px!important}
.main{flex:1 1 auto!important;min-width:0!important;width:calc(100% - var(--fix-sidebar))!important;min-height:100vh!important;padding:24px!important;display:flex!important;flex-direction:column!important;background:linear-gradient(180deg,#f7fbff 0%,#eef5fb 100%)!important}
.main>section,.main>.card,.main>.grid,.main>.buyer-page,.main>.ota-checkin-pro{width:100%;max-width:var(--fix-max);margin-left:auto!important;margin-right:auto!important}
.topbar.commercial-topbar{width:100%;max-width:var(--fix-max);margin-left:auto!important;margin-right:auto!important;margin-bottom:20px!important}
.page-banner{width:100%;max-width:var(--fix-max);margin-left:auto!important;margin-right:auto!important}
.app-footer-pro{width:100%!important;max-width:var(--fix-max)!important;margin:42px auto 0!important;border-radius:28px 28px 0 0!important;overflow:hidden!important;box-shadow:0 -8px 42px rgba(8,33,63,.10)!important}
.app-footer-wrap{width:100%!important;max-width:none!important;padding:30px 34px 26px!important;grid-template-columns:1.25fr .85fr .85fr .85fr!important;gap:24px!important;align-items:start!important}.app-footer-logo{width:54px!important;height:54px!important;flex-basis:54px!important;border-radius:18px!important}.app-footer-logo img{width:40px!important;height:40px!important}.app-footer-pro h3{font-size:22px!important;line-height:1.1!important}.app-footer-pro h4{font-size:15px!important}.app-footer-pro p,.app-footer-pro li{font-size:14px!important;line-height:1.55!important}.app-footer-bottom{padding:13px 34px!important}
/* Buyer dashboard/search pages */
.buyer-page,.ota-search-page{display:grid;gap:24px}.buyer-wrap,.ota-search-wrap{width:100%;max-width:var(--fix-max);margin:0 auto}.buyer-hero{overflow:hidden!important}.buyer-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:2px 0 12px}.buyer-section-head h2{font-size:clamp(25px,2.2vw,34px);letter-spacing:-.04em;margin:7px 0 2px}.buyer-section-head p{margin:0;color:var(--fix-muted);font-weight:800}.buyer-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important}.buyer-card{min-height:210px!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;background:#fff!important}.buyer-card h3{line-height:1.18!important}.buyer-empty{border:1.5px dashed #9ed8ff!important;background:rgba(255,255,255,.72)!important;border-radius:24px!important;padding:24px!important;min-height:96px!important;display:grid!important;gap:5px!important;align-content:center!important}.buyer-empty b,.buyer-empty h3{color:#061d3b!important}.buyer-empty span,.buyer-empty p{color:#425b78!important;font-weight:750!important;margin:0!important}.buyer-btn{white-space:nowrap!important}.buyer-quick{align-content:center!important}
/* Search flight Traveloka cards */
.ota-flight-hero{position:relative;overflow:hidden;border-radius:30px;padding:30px;background:linear-gradient(135deg,#0489ed 0%,#1764e8 62%,#06b6d4 100%);color:#fff;box-shadow:0 24px 60px rgba(23,100,232,.18)}.ota-flight-hero:after{content:'✈';position:absolute;right:38px;top:24px;font-size:96px;opacity:.22;transform:rotate(-12deg)}.ota-flight-hero span{display:inline-flex;border-radius:999px;background:rgba(255,255,255,.16);padding:8px 13px;font-size:12px;font-weight:1000;letter-spacing:.06em}.ota-flight-hero h2{font-size:clamp(30px,3vw,46px);margin:12px 0 8px;letter-spacing:-.05em}.ota-flight-hero p{max-width:760px;margin:0;color:rgba(255,255,255,.88);font-weight:800}.ota-search-card{background:#fff;border:1px solid var(--fix-line);border-radius:28px;box-shadow:var(--fix-shadow);padding:22px}.ota-search-card .form-grid{display:grid!important;grid-template-columns:1fr 1fr .8fr auto!important;gap:14px!important;align-items:end!important}.ota-search-card label{font-weight:1000;color:#173456}.ota-flight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ota-flight-card{position:relative;background:#fff;border:1px solid var(--fix-line);border-radius:26px;box-shadow:var(--fix-shadow);padding:22px;display:grid;gap:16px;overflow:hidden}.ota-flight-card:before{content:'';position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#0ea5e9,#2563eb,#10b981)}.ota-flight-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.ota-airline{display:flex;gap:13px;align-items:center}.ota-airline-logo{width:48px;height:48px;border-radius:17px;background:linear-gradient(135deg,#e7f5ff,#e8fff6);display:grid;place-items:center;font-weight:1000;color:#0b63ce}.ota-airline h3{margin:0;font-size:20px}.ota-airline p{margin:4px 0 0;color:#5b7089;font-weight:850}.ota-price{text-align:right}.ota-price small{display:block;color:#64748b;font-weight:850}.ota-price b{display:block;font-size:21px;color:#07234b}.ota-route-line{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}.ota-route-line strong{font-size:25px}.ota-route-line span{display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:#eaf6ff;color:#0b63ce}.ota-route-line small{display:block;color:#64748b;font-weight:800}.ota-flight-meta{display:flex;flex-wrap:wrap;gap:8px}.ota-flight-meta span{border:1px solid #d8e8f7;background:#f7fbff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:900;color:#38536e}.ota-flight-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.ota-status{border-radius:999px;padding:8px 11px;background:#dcfce7;color:#047857;border:1px solid #9df3be;font-size:12px;font-weight:1000;text-transform:uppercase}.ota-empty-hero{text-align:center;background:#fff;border:1.5px dashed #9ed8ff;border-radius:26px;padding:34px;box-shadow:var(--fix-shadow)}.ota-empty-hero b{display:block;font-size:22px;margin-bottom:6px}.ota-empty-hero p{color:#64748b;font-weight:800;margin:0}
/* Check-in / boarding cards should never overflow */
.ota-checkin-pro,.ota-checkin-pro *{box-sizing:border-box}.ota-two-col{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr)!important}.ota-ticket-card,.history-card,.ota-panel{max-width:100%;overflow:hidden}.ticket-actions,.buyer-card-actions{flex-wrap:wrap}.ticket-meta{flex-wrap:wrap!important}.bp-barcode{max-width:100%}
@media(max-width:1180px){.buyer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.ota-flight-grid{grid-template-columns:1fr}.ota-search-card .form-grid{grid-template-columns:1fr 1fr!important}.ota-search-card .form-grid button{grid-column:1/-1}}
@media(max-width:992px){.app-shell{display:block!important}.sidebar{position:fixed!important;height:100dvh!important;min-height:100dvh!important}.main{width:100%!important;padding:14px!important;display:block!important}.app-footer-pro{border-radius:24px!important;margin-top:28px!important}.app-footer-wrap{grid-template-columns:1fr 1fr!important}.buyer-section-head{align-items:flex-start;flex-direction:column}.buyer-grid{grid-template-columns:1fr!important}.ota-two-col{grid-template-columns:1fr!important}}
@media(max-width:640px){.main{padding:12px!important}.topbar.commercial-topbar{border-radius:22px!important}.user-pill{align-items:flex-start!important;width:100%}.page-banner{min-height:auto!important;padding:22px!important}.app-footer-wrap{grid-template-columns:1fr!important;padding:26px 18px 22px!important}.app-footer-bottom{padding:13px 18px!important}.app-footer-brand{gap:12px!important}.ota-search-card .form-grid{grid-template-columns:1fr!important}.ota-flight-card{padding:18px}.ota-flight-top,.ota-flight-actions{flex-direction:column;align-items:stretch}.ota-price{text-align:left}.ota-route-line{grid-template-columns:1fr;gap:8px}.ota-route-line span{transform:rotate(90deg)}.buyer-quick{grid-template-columns:1fr!important}.buyer-btn{width:100%;justify-content:center}}
