@font-face{font-family:Cairo;font-style:normal;font-weight:300 700;font-display:swap;src:url('fonts/Cairo/Cairo-Arabic-Variable.woff2') format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EEFF}@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url('fonts/Poppins/Poppins-Light.woff2') format('woff2')}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url('fonts/Poppins/Poppins-Regular.woff2') format('woff2')}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url('fonts/Poppins/Poppins-Medium.woff2') format('woff2')}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url('fonts/Poppins/Poppins-SemiBold.woff2') format('woff2')}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url('fonts/Poppins/Poppins-Bold.woff2') format('woff2')}:root{--gold:#a6802d;--gold2:#c3a059;--dark:#222831;--bg:#f5f6f8;--muted:#7d8490;--line:#e7e9ed;--danger:#cc4545}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Cairo,Poppins,Arial;color:var(--dark);background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}.splash{position:fixed;inset:0;background:#fff;z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.45s}.splash.hide{opacity:0;visibility:hidden}.splash-logo{position:relative;width:150px}.splash-logo img{width:100%}.splash-logo span{display:block;height:3px;background:linear-gradient(90deg,transparent,var(--gold),transparent);animation:scan 1s infinite}.splash p{color:var(--gold);font-weight:700}.loader{display:none;position:fixed;inset:0;background:#fffefa;z-index:800;place-items:center}.loader.show{display:grid}.loader-box{text-align:center}.loader-box>img{width:105px;animation:pulse 1s infinite}.loader-ring{width:45px;height:45px;border:3px solid #e8dfcb;border-top-color:var(--gold);border-radius:50%;margin:18px auto;animation:spin .8s linear infinite}.loader-box b{font-size:14px;color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{transform:scale(.94);opacity:.72}}@keyframes scan{50%{transform:scaleX(.35)}}.appbar{height:66px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;position:sticky;top:0;z-index:20;box-shadow:0 2px 12px #0000000d}.logo{height:48px;max-width:142px;object-fit:contain}.plain,.lang,.back,.filter{border:0;background:transparent}.plain{font-size:23px}.lang{font-weight:700;color:var(--gold)}main{max-width:920px;margin:auto;padding-bottom:85px}.screen{display:none}.screen.active{display:block}.slider{height:236px;position:relative;overflow:hidden;background:#222}.slider>img{width:100%;height:100%;object-fit:cover}.slider>div{position:absolute;inset:0;padding:28px 22px;color:#fff;background:linear-gradient(0deg,#0009,transparent 75%);display:flex;flex-direction:column;justify-content:flex-end}.slider h1{margin:0;font-size:25px}.slider p{margin:6px 0;font-size:14px}.booking-card,.form-card{background:#fff;margin:-18px 13px 18px;position:relative;border-radius:18px;padding:16px;box-shadow:0 8px 28px #1c243014}.service-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f3f4f5;border-radius:13px;padding:4px;margin-bottom:12px}.service-tabs button{border:0;background:transparent;padding:9px;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:7px;color:#79808a}.service-tabs button.active{background:#fff;color:var(--gold);font-weight:700;box-shadow:0 2px 8px #0000000d}.service-tabs img{width:21px;height:21px}.trip-tabs{display:flex;gap:18px;border-bottom:1px solid var(--line);margin-bottom:14px}.trip-tabs button{border:0;background:transparent;padding:8px 4px;color:#858b94;position:relative}.trip-tabs button.active{color:var(--gold);font-weight:700}.trip-tabs button.active:after{content:'';position:absolute;right:0;left:0;bottom:-1px;height:3px;background:var(--gold);border-radius:3px}.route-fields{position:relative}.field,.passenger-field,.date-field,.input{width:100%;min-height:55px;border:1px solid #dfe3e7;background:#fff;border-radius:12px;padding:10px 12px;text-align:right}.field,.passenger-field,.date-field{display:flex;align-items:center;gap:10px}.field>img:first-child,.passenger-field>img:first-child,.date-field>img:first-child{width:23px;height:23px}.field span,.passenger-field span,.date-field span{display:flex;flex-direction:column;flex:1}.field small,.passenger-field small,.date-field small{color:var(--muted);font-size:11px}.field b,.passenger-field b,.date-field b{font-size:13px}.arrow{width:15px!important;height:15px!important}.swap{display:grid;place-items:center;margin:-9px 27px -9px auto;width:37px;height:37px;border:1px solid var(--line);border-radius:50%;background:#fff;position:relative;z-index:3}.swap img{width:19px}.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.date-field{position:relative}.date-field input{position:absolute;inset:0;opacity:0;width:100%}.hidden{display:none!important}.passenger-field{margin:12px 0}.primary{border:0;border-radius:12px;background:linear-gradient(135deg,#9e792d,#b89447);color:#fff;min-height:49px;padding:12px 18px;font-weight:700;width:100%;box-shadow:0 5px 14px #a6802d35}.destinations{padding:2px 13px 20px}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title h2{font-size:19px}.section-title button{border:0;background:transparent;color:var(--gold)}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.cards article{height:135px;border-radius:15px;overflow:hidden;position:relative}.cards img{width:100%;height:100%;object-fit:cover}.cards span{position:absolute;inset:auto 0 0;color:#fff;padding:25px 10px 9px;background:linear-gradient(transparent,#000c);font-weight:700}.page-head{display:flex;align-items:center;gap:12px;background:#fff;padding:14px;position:sticky;top:66px;z-index:10;border-bottom:1px solid var(--line)}.back{font-size:34px;line-height:1}.page-head>div{flex:1}.page-head h2,.page-head p{margin:0}.page-head h2{font-size:18px}.page-head p{font-size:12px;color:var(--muted)}.filter img{width:22px}.date-strip{display:flex;gap:8px;overflow:auto;padding:12px 13px}.date-strip button{min-width:64px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:7px;display:flex;flex-direction:column;align-items:center}.date-strip button.active{border-color:var(--gold);background:#fbf8ef;color:var(--gold)}.date-strip small{font-size:10px}.trip-list{padding:0 13px 15px}.trip-card{background:#fff;border-radius:16px;padding:15px;margin-bottom:12px;box-shadow:0 4px 17px #0000000d;position:relative}.trip-tag{display:inline-flex;align-items:center;gap:5px;background:#f7f2e7;color:var(--gold);padding:5px 8px;border-radius:8px;font-size:11px}.trip-tag img{width:17px}.trip-times{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:15px 0}.trip-times>div:first-child,.trip-times>div:last-child{display:flex;flex-direction:column}.trip-times strong{font-size:19px}.trip-times small{font-size:11px;color:var(--muted)}.route-path{display:grid;grid-template-columns:8px 1fr 8px;align-items:center;text-align:center;position:relative}.route-path:before{content:'';height:1px;background:#d8dadd;position:absolute;left:5px;right:5px;top:4px}.route-path span{width:8px;height:8px;border:2px solid var(--gold);background:#fff;border-radius:50%;z-index:1}.route-path small{grid-column:1/4;font-size:10px;color:var(--muted);margin-top:4px}.trip-meta{display:flex;flex-wrap:wrap;gap:11px;padding:10px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);font-size:11px;color:var(--muted)}.trip-meta span{display:flex;gap:5px;align-items:center}.trip-meta img{width:17px;height:17px}.trip-bottom{display:flex;justify-content:space-between;align-items:end;padding-top:10px}.trip-bottom small{color:var(--muted);font-size:10px}.price{font-size:21px;color:var(--gold);font-weight:700;display:flex;align-items:center;gap:5px}.price img{width:16px}.trip-bottom button{border:0;background:var(--gold);color:#fff;border-radius:10px;padding:9px 19px}.steps{display:flex;align-items:center;justify-content:center;padding:17px}.steps span{width:29px;height:29px;border:1px solid #c8cbd0;border-radius:50%;display:grid;place-items:center;color:#949aa3;background:#fff;font-size:12px}.steps span.active,.steps span.done{background:var(--gold);border-color:var(--gold);color:#fff}.steps i{height:2px;width:55px;background:#ddd}.seat-legend{background:#fff;margin:0 13px 12px;padding:10px;border-radius:13px;display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:11px}.seat-legend span{display:flex;align-items:center;gap:6px}.seat-legend img{width:24px}.bus-layout{background:#fff;border:2px solid #d9dce0;border-radius:35px 35px 18px 18px;margin:0 auto 110px;padding:18px;width:min(92%,400px)}.driver{text-align:left;padding:0 12px 15px;border-bottom:1px dashed var(--line)}.driver img{width:34px}.seat-grid{display:grid;grid-template-columns:1fr 1fr 22px 1fr 1fr;gap:10px;padding-top:15px}.seat{border:0;background:transparent;position:relative;padding:0}.seat img{width:38px}.seat small{position:absolute;inset:10px 0 auto;text-align:center;font-size:9px}.aisle{display:block}.sticky-action{position:fixed;bottom:72px;left:0;right:0;max-width:920px;margin:auto;background:#fff;border-top:1px solid var(--line);padding:12px 14px;display:flex;align-items:center;gap:15px;z-index:15}.sticky-action>div{min-width:125px}.sticky-action small,.sticky-action b{display:block}.sticky-action small{font-size:10px;color:var(--muted)}.sticky-action .primary{flex:1}.compact-trip{background:#fff;margin:13px;padding:14px;border-radius:14px;display:flex;gap:8px;flex-direction:column;box-shadow:0 4px 14px #0000000b}.compact-trip span{font-size:12px;color:var(--muted)}.compact-trip strong{color:var(--gold)}.form-card{margin:13px}.traveller{border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:18px}.traveller h3{margin:0 0 10px;font-size:16px}.traveller h3 small{background:#f7f2e7;color:var(--gold);border-radius:7px;padding:3px 7px}.form-card label{display:block;color:#656d78;font-size:12px;margin:10px 2px 5px}.terms{display:flex!important;align-items:center;gap:8px;margin:15px 0!important}.terms input{width:18px;height:18px}.summary{background:#faf6ec;border:1px solid #eadfc5;padding:13px;border-radius:12px;display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.summary div{display:flex;flex-direction:column}.summary small{color:var(--muted);font-size:11px}.summary strong{color:var(--gold)}.payment-methods{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.payment-methods button{height:50px;border:1px solid var(--line);border-radius:10px;background:#fff}.payment-methods button.active{border:2px solid var(--gold)}.payment-methods img{max-width:58px;max-height:27px}.icon-input{position:relative}.icon-input img{position:absolute;left:12px;top:14px;width:45px}.success-screen{text-align:center;padding:75px 25px}.success-screen>img{width:100px}.success-screen .primary{max-width:360px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:72px;background:#fff;display:flex;justify-content:space-around;border-top:1px solid var(--line);z-index:20}.bottom-nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#858b94;font-size:10px}.bottom-nav button.active{color:var(--gold)}.bottom-nav img{width:23px;height:23px}.modal{display:none;position:fixed;inset:0;background:#0008;z-index:100;align-items:end;justify-content:center}.modal.open{display:flex}.modal-card{background:#fff;width:min(100%,620px);border-radius:22px 22px 0 0;padding:17px;max-height:84vh;overflow:auto}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h3{margin:3px 0 14px}.modal-head button{border:0;background:#f0f1f3;border-radius:50%;width:34px;height:34px;font-size:22px}.searchbox{position:relative}.searchbox>img{position:absolute;right:13px;top:16px;width:21px}.searchbox input{padding-right:44px}.station-list button{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:12px 2px;display:flex;align-items:center;gap:11px;text-align:right}.station-list button>span:last-child{display:flex;flex-direction:column}.station-list small{font-size:11px;color:var(--muted)}.station-icon{width:40px;height:40px;background:#f7f3e9;border-radius:10px;display:grid;place-items:center}.station-icon img{width:25px}.empty{text-align:center;color:var(--muted)}.counter{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.counter>div:first-child{display:flex;flex-direction:column}.counter small{font-size:10px;color:var(--muted)}.counter>div:last-child{display:flex;align-items:center;gap:13px}.counter button{width:35px;height:35px;border:1px solid var(--gold);background:#fff;color:var(--gold);border-radius:50%;font-size:19px}@media(min-width:700px){.slider{border-radius:0 0 24px 24px;height:300px}.booking-card{max-width:650px;margin:-35px auto 24px}.cards{grid-template-columns:repeat(4,1fr)}.cards article{height:185px}.bottom-nav{left:50%;transform:translateX(-50%);max-width:920px}.page-head{border-radius:0 0 12px 12px}.form-card{max-width:650px;margin:18px auto}.sticky-action{left:50%;transform:translateX(-50%)}}

.lottie-splash{width:260px;height:180px}.lottie-loader{width:130px;height:100px}.secure-payment-note{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid #e8dfc9;border-radius:14px;background:#fffaf0;margin:18px 0}.secure-payment-note img{width:24px}.secure-payment-note small{display:block;color:#666;margin-top:5px}.booking-ref{padding:12px 18px;border-radius:12px;background:#f6f1e5;margin:14px 0}.seat.pending{opacity:.55}.seat.pending img{filter:grayscale(1)}
/* Original-app asset and calendar parity additions */
body{font-family:Cairo,Poppins,Arial,sans-serif}
.service-tabs button{transition:.2s}.service-tabs button.active{background:#a68132;color:#fff}.service-tabs button.active img{filter:brightness(0) invert(1)}
.calendar-card{border-radius:24px 24px 0 0;padding:18px}.calendar-card .modal-head{direction:ltr}.calendar-card .modal-head h3{margin:0;font-size:17px;direction:rtl}.calendar-nav{border:0!important;background:#f6f1e5!important;color:#a68132!important;font-size:25px!important}
.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:5px}.weekdays{color:#8b9098;font-size:11px;margin:18px 0 8px}.calendar-day{aspect-ratio:1;border:0;background:#fff;border-radius:50%;font-family:inherit;display:grid;place-items:center;font-size:13px}.calendar-day.other{color:#c8cbd0}.calendar-day.disabled{color:#d9dce0;pointer-events:none}.calendar-day.today{border:1px solid #a68132}.calendar-day.selected{background:#a68132;color:#fff;box-shadow:0 4px 10px #a6813240}.calendar-footer{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:18px}.secondary{border:1px solid #a68132;background:#fff;color:#a68132;border-radius:12px;font-weight:700}
.country-badge{margin-inline-start:auto;font-size:10px;background:#f6f1e5;color:#927026;padding:4px 7px;border-radius:8px}.international-note{padding:10px 13px;background:#fff7e6;color:#775916;font-size:11px;border-radius:10px;margin:0 13px 12px}

/* Pixel-matched home screen inspired by the original mobile application */
:root{--sat-cyan:#43bed4;--sat-gold:#ecb62f;--sat-ink:#171717;--sat-gray:#6c6f78;--sat-border:#d9dadd}
body{background:#fff}.sat-appbar{height:190px;padding:42px 36px 20px;display:flex;align-items:flex-start;justify-content:space-between;background:#fff;border:0;box-shadow:none;max-width:690px;margin:auto}.language-pill{border:0;background:#fff3d8;border-radius:34px;padding:16px 22px;display:flex;align-items:center;gap:10px;font-size:24px;color:#111;direction:ltr;min-width:196px;justify-content:center}.language-pill img{width:31px;height:31px;filter:brightness(0)}.welcome-block{display:flex;align-items:center;gap:14px;color:#6b6b6b;font-size:18px}.profile-circle{width:78px;height:78px;border:0;border-radius:50%;background:#fff2d8;display:grid;place-items:center}.profile-circle img{width:39px;height:39px;object-fit:contain;filter:brightness(0)}
.sat-home{max-width:690px;margin:auto;padding:0 29px 106px;background:#fff}.sat-service-tabs{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0 7px 30px}.sat-service-tabs button{height:65px;border:1.6px solid #d1d3d6;border-radius:35px;background:#fff;font-size:21px;color:#1f1f1f}.sat-service-tabs button.active{border:2.3px solid var(--sat-cyan);color:var(--sat-cyan);background:#fff;box-shadow:none}.sat-service-tabs button img{display:none}
.sat-booking-card{position:relative;border-radius:36px;background:#fff;box-shadow:0 3px 30px rgba(25,31,36,.13);overflow:visible;padding:0;margin:0;border:0}.sat-trip-tabs{display:grid;grid-template-columns:1fr 1fr;height:92px;border-bottom:1px solid #ddd}.sat-trip-tabs .tab{position:relative;border:0;background:#fff;font-size:23px;color:#111;border-radius:0}.sat-trip-tabs .tab:first-child{border-radius:0 36px 0 0}.sat-trip-tabs .tab:last-child{border-radius:36px 0 0 0}.sat-trip-tabs .tab.active{color:var(--sat-cyan);background:#fff}.sat-trip-tabs .tab.active:after{content:"";position:absolute;right:0;left:0;bottom:-1px;height:4px;background:var(--sat-cyan)}.tab-check{display:none}.sat-trip-tabs .tab.active .tab-check{display:inline-grid;place-items:center;width:36px;height:36px;margin-left:10px;border-radius:50%;background:var(--sat-cyan);color:#fff;font-size:23px}
.booking-content{padding:33px 30px 24px}.field-label{display:block;font-size:25px;color:#111;margin:0 0 13px}.sat-field,.sat-date-field,.compact-field{width:100%;height:86px;border:1.5px solid var(--sat-border);border-radius:25px;background:#fff;display:flex;align-items:center;color:#6a6a6a}.sat-field{position:relative;padding:0 27px 0 30px;gap:17px}.sat-field .leading-icon{width:34px;height:34px;opacity:.78}.sat-field span{flex:1;text-align:right}.sat-field b{font-size:21px;font-weight:400;color:#737373}.sat-field .arrow{width:24px;height:15px;order:3;filter:brightness(.25)}.sat-swap{position:absolute;z-index:3;right:66px;top:259px;width:72px;height:72px;border-radius:50%;border:0;background:var(--sat-gold);display:grid;place-items:center;box-shadow:none}.sat-swap img{width:32px;height:32px;filter:brightness(0);transform:rotate(90deg)}.date-label{margin-top:34px}.sat-date-field{padding:0 28px;gap:17px}.sat-date-field img{width:36px}.sat-date-field span{flex:1;text-align:right}.sat-date-field b{font-size:21px;font-weight:400;color:#303030}.compact-labels{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:31px 0 11px}.compact-labels label{font-size:23px}.compact-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.compact-field{height:83px;padding:0 25px;justify-content:flex-start;gap:15px}.compact-field img{width:34px;height:34px;object-fit:contain}.compact-field b{font-size:20px;font-weight:400;color:#222}.direct-row{display:flex;align-items:center;gap:13px;margin:34px 4px 30px;font-size:22px;color:#6c707d}.direct-row input{position:absolute;opacity:0}.custom-check{width:34px;height:34px;border-radius:7px;background:var(--sat-cyan);color:white;display:grid;place-items:center;font-size:24px}.direct-row input:not(:checked)+.custom-check{background:#fff;border:2px solid #cfd2d6;color:transparent}.sat-search-btn{height:86px;border-radius:28px;background:var(--sat-gold);color:#111;font-size:25px;font-weight:600;box-shadow:none;display:flex;align-items:center;justify-content:center;gap:15px}.sat-search-btn img{width:37px;height:37px;filter:brightness(0)}.chatbot-fab{position:absolute;left:-3px;bottom:111px;width:85px;height:85px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 6px 24px rgba(0,0,0,.12);transform:translateX(-4%)}.chatbot-fab img{width:64px;height:64px;object-fit:contain}
body[data-screen="home"] .bottom-nav{max-width:690px;right:50%;transform:translateX(50%);height:107px;background:#fff;border-top:1px solid #eee;padding:9px 13px 5px}.bottom-nav button{font-size:15px;color:#727272}.bottom-nav button img{width:40px;height:40px}.bottom-nav button.active{color:#d8a821}.bottom-nav button.active img{filter:none}
.ticket-type-card{padding-bottom:22px}.ticket-option{width:100%;border:1px solid #e3e3e3;background:#fff;border-radius:18px;padding:15px;display:flex;align-items:center;gap:14px;margin:10px 0;text-align:right}.ticket-option img{width:34px;height:34px}.ticket-option span{flex:1}.ticket-option span>*{display:block}.ticket-option small{color:#777}.ticket-option i{opacity:0;color:var(--sat-cyan)}.ticket-option.active{border-color:var(--sat-cyan);background:#f4fcfd}.ticket-option.active i{opacity:1}
@media(max-width:520px){.sat-appbar{height:154px;padding:29px 20px 16px}.language-pill{min-width:154px;font-size:20px;padding:13px 18px}.profile-circle{width:62px;height:62px}.sat-home{padding-left:16px;padding-right:16px}.sat-service-tabs{gap:12px}.sat-service-tabs button{font-size:18px}.sat-trip-tabs .tab{font-size:19px}.booking-content{padding:26px 18px 22px}.sat-swap{right:48px;top:244px;width:62px;height:62px}.field-label{font-size:21px}.sat-field b,.sat-date-field b{font-size:18px}.compact-labels label{font-size:19px}.direct-row{font-size:19px}.sat-search-btn{font-size:22px}.chatbot-fab{width:70px;height:70px;bottom:112px}.chatbot-fab img{width:54px;height:54px}}

/* Original application ticket-selection screen */
body:not([data-screen="home"]) .sat-appbar{display:none}
.ticket-results-screen{background:#fff;min-height:100vh;padding-bottom:110px;max-width:690px;margin:auto}
.ticket-page-head{height:154px;display:flex;align-items:center;justify-content:center;position:relative;background:#fff;border-bottom:1px solid #ddd;padding-top:34px}
.ticket-page-head h2{font-size:31px;font-weight:500;margin:0;color:#111}
.ticket-back{position:absolute;right:31px;top:63px;width:76px;height:76px;border:0;border-radius:50%;background:#fff3d9;font-size:48px;line-height:1;color:#111;display:grid;place-items:center}
.booking-progress{height:115px;background:#f6f7fa;padding:17px 37px 10px}
.progress-track{height:38px;position:relative;display:flex;align-items:center;justify-content:space-between;direction:rtl}
.progress-line{position:absolute;height:3px;background:#dcdde0;right:22px;left:22px;top:18px}
.progress-track i{width:36px;height:36px;border:2px solid #d8d9dc;border-radius:50%;background:#fff;z-index:2}
.progress-track i.active{border:4px solid #e2ad24}
.progress-labels{display:flex;justify-content:space-between;font-size:19px;color:#151515;direction:rtl}.progress-labels span{width:25%;text-align:center}.progress-labels span.active{font-weight:500}
.ticket-filters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:45px;padding:31px 37px 22px;background:#fff}
.ticket-filters button{height:66px;border:1.5px solid #d5d5d5;border-radius:35px;background:#fff;font-size:21px;color:#111}
.ticket-filters button.active{border:2px solid var(--sat-cyan);color:var(--sat-cyan)}
.sort-pill{display:flex;align-items:center;justify-content:center;gap:12px}.sort-pill img{width:30px;height:30px;filter:brightness(0)}
.ticket-date-strip,.route-title-hidden{display:none!important}
.original-trip-list{padding:0 37px 20px}
.original-trip-card{border:1.4px solid #d8d8d8;border-radius:34px;background:#fff;padding:22px;margin:0 0 38px;box-shadow:none;cursor:pointer}
.trip-summary-box{background:#f5f6fa;border-radius:14px;min-height:129px;padding:25px 26px;display:flex;justify-content:space-between;align-items:flex-start}
.bus-summary{text-align:right;display:flex;flex-direction:column;gap:5px}.bus-summary b{font-size:25px;font-weight:600;display:flex;align-items:center;gap:9px}.bus-summary b img{width:30px;height:30px;filter:brightness(0)}.bus-summary small{font-size:20px;color:#666}
.starting-price{text-align:left;display:flex;flex-direction:column;gap:3px}.starting-price strong{font-size:31px;color:#e5ae22;font-weight:500;display:flex;direction:ltr;align-items:center;gap:8px}.starting-price strong img{width:24px;height:28px}.starting-price small{font-size:20px;color:#777}
.trip-stations{padding:28px 4px 18px;position:relative}.trip-stations>div{padding-right:9px}.trip-stations p{margin:0 0 5px;font-size:20px}.trip-stations p b{font-size:23px;font-weight:500}.trip-stations p span{color:#6e6e6e;margin-right:8px}.trip-stations strong{font-size:20px;font-weight:500}.vertical-route{display:block;color:#bbb;font-size:29px;line-height:26px;height:35px;margin-right:4px}
.trip-card-footer{border-top:1px solid #ddd;border-bottom:1px solid #ddd;padding:21px 0;display:flex;align-items:center;justify-content:space-between;color:#565656;font-size:19px;direction:rtl}.trip-card-footer span{display:flex;align-items:center;gap:7px}.trip-card-footer img{width:27px;height:27px;object-fit:contain}.direct-badge{background:#fff3d9;color:#715a20;padding:8px 13px;border-radius:18px}.direct-badge img{width:29px}
.station-location{width:100%;height:59px;border:0;background:#fff;color:#205be8;font-size:20px;display:flex;justify-content:center;align-items:center;gap:9px}.station-location img{width:25px;height:25px;filter:hue-rotate(170deg) saturate(4)}

.fare-modal{background:rgba(0,0,0,.55)}.fare-sheet{width:min(100%,690px);border-radius:52px 52px 0 0;padding:15px 37px 24px;max-height:92vh;background:#fff}.sheet-grabber{width:165px;height:8px;border-radius:5px;background:#000;margin:0 auto 22px}.fare-sheet-head{position:relative;display:flex;justify-content:center;align-items:center;min-height:65px}.fare-sheet-head h3{font-size:32px;font-weight:500;margin:0}.fare-close{position:absolute;left:0;width:68px;height:68px;border:1px solid #d8d8d8;border-radius:50%;background:#fff;font-size:45px;font-weight:200;line-height:1}.fare-route{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 0 17px}.fare-route a{color:#245cea;text-decoration:none;font-size:20px;display:flex;align-items:center;gap:7px}.fare-route a img{width:27px;height:27px}.fare-route>div{display:flex;flex-direction:column;text-align:right;gap:7px;font-size:23px}.fare-dots{color:#bbb;font-size:31px;line-height:22px}
.fare-options{display:flex;flex-direction:column;gap:17px}.fare-choice{width:100%;border:1.8px solid #d8d8d8;background:#fff;border-radius:34px;padding:0;text-align:right;overflow:hidden}.fare-choice.selected{border:2.5px solid var(--sat-cyan)}.fare-title{display:flex;justify-content:space-between;align-items:center;padding:23px 22px 13px}.fare-title b{font-size:24px;color:#111}.fare-title b i{display:inline-grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--sat-cyan);color:#fff;font-size:18px;font-style:normal;margin-right:7px}.fare-title strong{font-size:27px;color:var(--sat-cyan);display:flex;align-items:center;direction:ltr;gap:7px}.fare-title strong img{width:24px;height:25px}.fare-benefits{padding:0 22px 20px;display:flex;flex-wrap:wrap;gap:11px 13px}.fare-benefits span{border:1px solid #ddd;border-radius:22px;padding:6px 13px;font-size:17px;background:#fff}.fare-benefits span::first-letter{color:#000}.fare-price-details{border-top:1px solid var(--sat-cyan);padding:15px 22px 17px}.fare-price-details h4{font-size:20px;margin:0 0 12px;font-weight:500}.fare-line{display:flex;justify-content:space-between;margin:8px 0;font-size:18px}.fare-line b{font-weight:500;display:flex;align-items:center;direction:ltr;gap:6px}.fare-line b img{width:17px}.fare-line.highlighted{background:#f5f6fa;border-radius:11px;padding:12px}.fare-line.total{font-size:23px;margin-top:15px}.fare-confirm{height:82px;width:100%;border:0;border-radius:30px;background:var(--sat-gold);color:#111;font-size:25px;margin-top:28px}.fare-confirm:disabled{opacity:.55}
body[data-screen="results"] .bottom-nav{max-width:690px;right:50%;transform:translateX(50%);height:86px}
@media(max-width:520px){.ticket-page-head{height:118px;padding-top:22px}.ticket-page-head h2{font-size:25px}.ticket-back{right:20px;top:43px;width:61px;height:61px;font-size:38px}.booking-progress{height:96px;padding:13px 15px 8px}.progress-track i{width:31px;height:31px}.progress-labels{font-size:14px}.ticket-filters{gap:16px;padding:25px 20px 20px}.ticket-filters button{height:55px;font-size:17px}.original-trip-list{padding:0 20px 15px}.original-trip-card{border-radius:26px;padding:17px;margin-bottom:28px}.trip-summary-box{min-height:104px;padding:20px}.bus-summary b{font-size:21px}.bus-summary small,.starting-price small{font-size:16px}.starting-price strong{font-size:26px}.trip-stations p,.trip-stations strong{font-size:17px}.trip-stations p b{font-size:19px}.trip-card-footer{font-size:15px}.trip-card-footer img{width:22px;height:22px}.station-location{font-size:17px}.fare-sheet{padding:12px 20px 20px;border-radius:40px 40px 0 0}.sheet-grabber{width:135px;height:6px}.fare-sheet-head h3{font-size:27px}.fare-close{width:56px;height:56px;font-size:37px}.fare-route>div{font-size:19px}.fare-route a{font-size:17px}.fare-title b{font-size:20px}.fare-title strong{font-size:23px}.fare-benefits span{font-size:14px}.fare-line{font-size:15px}.fare-line.total{font-size:20px}.fare-confirm{height:70px;font-size:21px}}

/* Mobile sizing correction — calibrated to the original SAT app screenshots */
@media (max-width: 520px){
  :root{--sat-cyan:#40bfd3;--sat-gold:#efb632;--sat-border:#d8d8d8}
  html,body{width:100%;overflow-x:hidden;background:#fff}
  main{padding-bottom:82px}

  .sat-appbar{
    height:102px;padding:18px 18px 10px;align-items:center;position:relative;top:auto;
  }
  .language-pill{min-width:126px;height:58px;border-radius:27px;padding:0 15px;font-size:17px;gap:7px}
  .language-pill img{width:25px;height:25px}
  .welcome-block{gap:9px;font-size:14px}
  .profile-circle{width:54px;height:54px}.profile-circle img{width:29px;height:29px}

  .sat-home{padding:0 14px 96px;max-width:430px}
  .sat-service-tabs{gap:10px;margin:0 4px 24px;padding:0;background:transparent;border-radius:0}
  .sat-service-tabs button{height:54px;border-radius:28px;font-size:17px;padding:0 8px;white-space:nowrap}

  .sat-booking-card{border-radius:25px;margin:0;box-shadow:0 5px 24px rgba(20,30,38,.11)}
  .sat-trip-tabs{height:72px;margin:0;gap:0}
  .sat-trip-tabs .tab{font-size:18px;padding:0 8px}
  .sat-trip-tabs .tab:first-child{border-radius:0 25px 0 0}.sat-trip-tabs .tab:last-child{border-radius:25px 0 0 0}
  .sat-trip-tabs .tab.active .tab-check{width:31px;height:31px;font-size:20px;margin-left:7px}
  .sat-trip-tabs .tab.active:after{height:3px}

  .booking-content{padding:24px 18px 20px}
  .field-label{font-size:19px;margin:0 2px 10px;line-height:1.5}
  .sat-field,.sat-date-field,.compact-field{height:70px;min-height:70px;border-radius:20px;border-width:1.2px}
  .sat-field{padding:0 18px;gap:12px}
  .sat-field .leading-icon{width:29px;height:29px}
  .sat-field b,.sat-date-field b{font-size:17px;line-height:1.35}
  .sat-field .arrow{width:18px!important;height:12px!important}

  .sat-swap{right:auto;left:39px;top:211px;width:54px;height:54px}
  .sat-swap img{width:27px;height:27px}
  .date-label{margin-top:28px}
  .sat-date-field{padding:0 19px;gap:12px}.sat-date-field img{width:29px;height:29px}

  .compact-labels{gap:12px;margin:25px 2px 9px}.compact-labels label{font-size:18px}
  .compact-fields{gap:12px}.compact-field{height:67px;min-height:67px;padding:0 18px;gap:11px;border-radius:19px}
  .compact-field img{width:29px;height:29px}.compact-field b{font-size:17px}
  .passenger-field{margin:0}
  .direct-row{gap:10px;margin:26px 3px 22px;font-size:17px}.custom-check{width:29px;height:29px;font-size:20px;border-radius:6px}
  .sat-search-btn{height:68px;min-height:68px;border-radius:22px;font-size:19px;gap:10px}.sat-search-btn img{width:29px;height:29px}
  .chatbot-fab{left:-5px;bottom:88px;width:61px;height:61px}.chatbot-fab img{width:47px;height:47px}

  body[data-screen="home"] .bottom-nav,
  body[data-screen="results"] .bottom-nav,
  .bottom-nav{height:76px;max-width:430px;padding:6px 8px 4px}
  .bottom-nav button{font-size:12px;gap:2px}.bottom-nav button img{width:31px;height:31px}

  /* Ticket results mobile scale */
  .ticket-results-screen{max-width:430px;padding-bottom:88px}
  .ticket-page-head{height:94px;padding-top:8px}.ticket-page-head h2{font-size:22px}
  .ticket-back{right:17px;top:22px;width:52px;height:52px;font-size:32px}
  .booking-progress{height:86px;padding:10px 15px 6px}.progress-track{height:33px}.progress-line{top:15px}.progress-track i{width:29px;height:29px}.progress-track i.active{border-width:3px}.progress-labels{font-size:12px}
  .ticket-filters{gap:10px;padding:20px 17px 18px}.ticket-filters button{height:50px;border-radius:26px;font-size:15px}.sort-pill{gap:7px}.sort-pill img{width:23px;height:23px}
  .original-trip-list{padding:0 17px 14px}.original-trip-card{border-radius:24px;padding:15px;margin-bottom:22px}
  .trip-summary-box{min-height:92px;border-radius:12px;padding:16px 17px}.bus-summary{gap:3px}.bus-summary b{font-size:18px;gap:6px}.bus-summary b img{width:23px;height:23px}.bus-summary small,.starting-price small{font-size:14px}.starting-price strong{font-size:23px}.starting-price strong img{width:18px;height:21px}
  .trip-stations{padding:21px 3px 14px}.trip-stations p,.trip-stations strong{font-size:15px}.trip-stations p b{font-size:17px}.vertical-route{font-size:24px;height:30px}
  .trip-card-footer{padding:16px 0;font-size:13px;gap:6px}.trip-card-footer img{width:20px;height:20px}.direct-badge{padding:6px 10px;border-radius:15px}.direct-badge img{width:22px}
  .station-location{height:50px;font-size:15px}.station-location img{width:21px;height:21px}

  /* Fare sheet mobile scale */
  .fare-sheet{max-width:430px;padding:10px 17px 18px;border-radius:34px 34px 0 0;max-height:94vh}
  .sheet-grabber{width:112px;height:5px;margin-bottom:14px}.fare-sheet-head{min-height:52px}.fare-sheet-head h3{font-size:23px}.fare-close{width:48px;height:48px;font-size:31px}
  .fare-route{padding:16px 0 13px}.fare-route>div{font-size:17px}.fare-route a{font-size:15px}.fare-route a img{width:22px;height:22px}
  .fare-options{gap:13px}.fare-choice{border-radius:25px}.fare-title{padding:18px 17px 10px}.fare-title b{font-size:18px}.fare-title b i{width:26px;height:26px;font-size:15px}.fare-title strong{font-size:21px}.fare-title strong img{width:18px;height:20px}
  .fare-benefits{padding:0 17px 15px;gap:8px}.fare-benefits span{font-size:12px;padding:5px 10px}
  .fare-price-details{padding:12px 17px 14px}.fare-price-details h4{font-size:17px}.fare-line{font-size:14px}.fare-line.total{font-size:18px}.fare-confirm{height:61px;border-radius:22px;font-size:18px;margin-top:20px}
}

@media (max-width: 370px){
  .sat-home{padding-left:10px;padding-right:10px}.booking-content{padding-left:14px;padding-right:14px}
  .sat-service-tabs button{font-size:15px}.sat-trip-tabs .tab{font-size:16px}
  .sat-swap{left:31px}.compact-labels label{font-size:16px}.direct-row{font-size:15px}
}

/* Original-style station picker */
.station-picker-modal{background:#0008;align-items:flex-end}
.station-picker-card{width:min(100%,690px);height:min(79vh,760px);max-height:79vh;border-radius:34px 34px 0 0;padding:14px 18px 0;overflow:hidden;display:flex;flex-direction:column;background:#fff}
.sheet-handle{width:164px;height:6px;border-radius:999px;background:#050505;margin:0 auto 13px;flex:0 0 auto}
.station-picker-head{position:relative;justify-content:center;min-height:65px;flex:0 0 auto}
.station-picker-head h3{margin:0;font-size:27px;font-weight:600;color:#111;text-align:center;line-height:1.35}
.station-picker-head button{position:absolute;left:0;top:2px;width:54px;height:54px;background:#fff;border:1px solid #d9d9d9;font-size:35px;font-weight:300;line-height:1;color:#111}
.station-searchbox{margin:14px 0 14px;flex:0 0 auto}
.station-searchbox input{height:72px;border-radius:24px;border:1px solid #d4d4d4;padding:0 66px 0 20px;font-size:20px;color:#222;box-shadow:none}
.station-searchbox input::placeholder{color:#a2a2a2}
.station-searchbox>img{right:25px;top:23px;width:28px;height:28px;object-fit:contain;filter:brightness(0)}
.station-picker-list{overflow-y:auto;overscroll-behavior:contain;padding-bottom:26px;border-top:1px solid #f1f1f1}
.station-picker-list .station-row{height:86px;margin:10px 0 0;border:1px solid #d8d8d8!important;border-radius:22px!important;padding:0 27px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:15px!important;background:#fff!important;color:#171717;text-align:right;box-shadow:none}
.station-picker-list .station-row strong{font-size:22px;font-weight:400;line-height:1.25;order:2}
.station-picker-list .station-row-arrow{font-family:Arial,sans-serif;font-size:42px;font-weight:300;line-height:1;transform:rotate(0deg);order:1;color:#111}
.station-picker-list .station-row:active{background:#f7f7f7!important;transform:scale(.995)}
.station-picker-list .empty{font-size:17px;padding:35px 0}
@media(max-width:430px){
 .station-picker-card{height:78vh;max-height:78vh;border-radius:31px 31px 0 0;padding:13px 18px 0}
 .sheet-handle{width:160px;height:6px;margin-bottom:11px}
 .station-picker-head{min-height:58px}
 .station-picker-head h3{font-size:25px}
 .station-picker-head button{width:52px;height:52px;font-size:32px}
 .station-searchbox{margin:13px 0 12px}
 .station-searchbox input{height:67px;border-radius:22px;font-size:19px;padding-right:62px}
 .station-searchbox>img{right:23px;top:21px;width:27px;height:27px}
 .station-picker-list .station-row{height:76px;border-radius:20px!important;margin-top:9px;padding:0 24px!important}
 .station-picker-list .station-row strong{font-size:20px}
 .station-picker-list .station-row-arrow{font-size:38px}
}

/* Original passenger, seats, review and payment flow */
.flow-screen{max-width:690px;margin:auto;background:#fff;min-height:100vh;padding-bottom:110px}
.flow-head{height:96px;display:grid;grid-template-columns:120px 1fr 74px;align-items:center;padding:12px 28px;border-bottom:1px solid #ddd;background:#fff;position:sticky;top:0;z-index:30}
.flow-head h2{margin:0;text-align:center;font-size:29px;font-weight:500;color:#080808}.countdown{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}.countdown b{font-size:22px;font-weight:400}.countdown small{font-size:16px;color:#4f4f4f}.flow-back{width:64px;height:64px;border:0;border-radius:50%;background:#fff4dd;font-size:39px;line-height:1;color:#050505}
.flow-progress{height:112px;background:#f6f7fb;display:flex;justify-content:space-between;align-items:flex-start;padding:16px 48px;position:relative;direction:rtl}.flow-line{position:absolute;right:72px;left:72px;top:34px;height:4px;background:#ddd}.flow-node{width:36px;height:36px;border:3px solid #ddd;background:#fff;border-radius:50%;display:grid;place-items:center;z-index:2;color:#fff;font-weight:700;position:relative}.flow-node.done{background:#ebb537;border-color:#ebb537}.flow-node.active{border-color:#e6ad23;background:#fff;color:#e6ad23}.flow-node span{position:absolute;top:48px;right:50%;transform:translateX(50%);width:130px;text-align:center;color:#171717;font-weight:400;font-size:17px;white-space:nowrap}.flow-node.active span{color:#111}
.passenger-accordions{padding:44px 36px 160px}.traveller-card{border:1px solid #d9d9d9;border-radius:29px;margin-bottom:22px;overflow:hidden;background:#fff}.traveller-summary{width:100%;height:130px;border:0;background:#fff;display:grid;grid-template-columns:40px 150px 1fr 68px;align-items:center;padding:0 24px;gap:10px;text-align:right}.traveller-summary>div{display:flex;flex-direction:column}.traveller-summary b{font-size:21px;font-weight:500}.traveller-summary small{font-size:17px;color:#626262}.traveller-status{background:#f7f7fb;border-radius:12px;padding:14px 16px;font-size:16px;white-space:nowrap}.traveller-avatar{width:64px;height:64px;border-radius:13px;background:#fff3dc;display:grid;place-items:center;font-style:normal;font-size:30px}.traveller-chevron{font-size:34px;transition:.2s}.traveller-card:not(.open) .traveller-body{display:none}.traveller-card:not(.open) .traveller-chevron{transform:rotate(180deg)}.traveller-body{padding:0 24px 25px}.traveller-body label{font-size:20px;color:#111;margin:18px 0 9px;display:block}.traveller-body .input{height:78px;border-radius:22px;font-size:19px;padding:0 22px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}.identity-tabs{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.identity-tabs button{height:58px;border:1px solid #ddd;background:#fff;border-radius:28px;font-size:17px}.identity-tabs button.active{border:2px solid #39bfd5;color:#39bfd5}.phone-field{height:78px;border:1px solid #ddd;border-radius:22px;display:flex;align-items:center;gap:14px;padding:0 22px;direction:ltr}.phone-field input{border:0;outline:0;flex:1;font-size:18px;direction:rtl}.phone-field b{color:#2f62dd}.add-passenger-data{height:78px;width:100%;border:0;border-radius:21px;background:#eeb634;font-size:22px;margin-top:28px}.flow-bottom{position:fixed;bottom:0;left:0;right:0;max-width:690px;margin:auto;padding:16px 36px 24px;background:#fff;z-index:25}.flow-primary{width:100%;height:86px;border:0;border-radius:25px;background:#edb435;font-size:25px;color:#111}.flow-primary:disabled{background:#fff8e8;color:#777}
.seat-trip-summary{background:#f7f8fb;display:grid;grid-template-columns:1fr 70px 1fr;align-items:center;padding:26px 36px;text-align:center}.seat-trip-summary div{display:flex;flex-direction:column;gap:8px}.seat-trip-summary b{font-size:25px;font-weight:500}.seat-trip-summary small{font-size:18px;color:#6d6d6d}.seat-trip-summary>span{font-size:35px}.seat-section-title{font-size:26px;padding:28px 36px 8px}.seat-legend.original{display:flex;justify-content:flex-start;gap:28px;margin:0;padding:8px 36px 24px;background:#fff;font-size:17px}.seat-key{width:38px;height:38px;border-radius:9px;display:inline-block;vertical-align:middle;margin-left:8px}.seat-key.available{border:2px solid #2860ef;background:#fff}.seat-key.reserved{background:#686868}.original-bus{width:calc(100% - 72px);max-width:none;border:0;border-radius:30px;margin:0 36px 130px;padding:42px 50px 50px;box-shadow:0 8px 30px #00000013}.driver-wheel{text-align:left;margin-bottom:35px}.driver-wheel img{width:105px;height:105px}.original-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 34px;direction:rtl}.original-grid .seat-box:nth-child(4n+2){margin-left:70px}.seat-box{height:67px;border:2px solid #245ee8;border-radius:14px;background:#fff;position:relative;font-size:18px}.seat-box:after{content:'';position:absolute;left:8px;right:8px;bottom:5px;height:12px;border-radius:8px;background:#f0edff}.seat-box span{position:relative;z-index:2}.seat-box.reserved,.seat-box.pending{background:#696969;border-color:#444;color:#111}.seat-box.reserved:after,.seat-box.pending:after{display:none}.seat-box.selected{background:#edb435;border-color:#d29b18}.seat-box.selected:after{background:#ffe6a6}
.review-panel,.payment-panel{padding:38px 36px 130px}.review-ticket-row{width:100%;height:122px;border:1px solid #ddd;border-radius:28px;background:#fff;display:grid;grid-template-columns:70px 1fr 40px;align-items:center;padding:0 25px;text-align:right}.review-ticket-row img{width:48px;height:48px;background:#fff4dd;padding:10px;border-radius:14px}.review-ticket-row div{display:flex;flex-direction:column}.review-ticket-row b{font-size:24px}.review-ticket-row small{font-size:18px;color:#777}.review-ticket-row>span{font-size:33px}.review-panel h3,.payment-panel h3{font-size:25px;font-weight:500;margin:45px 0 16px}.review-summary-line{height:70px;border-radius:12px;background:#f8f9fc;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:20px}.price-box{background:#f8f9fc;border-radius:13px;padding:15px 18px}.price-box p{display:flex;justify-content:space-between;align-items:center;margin:12px 0;font-size:20px}.price-box p.total{font-size:25px;margin-top:28px}.coupon-box{height:132px;border-radius:28px;background:#fff;box-shadow:0 3px 14px #0003;padding:18px;display:grid;grid-template-columns:1fr 160px;gap:14px}.coupon-box>div{border:1px solid #ddd;border-radius:25px;display:flex;align-items:center;padding:0 18px;gap:10px}.coupon-box img{width:33px}.coupon-box input{border:0;outline:0;width:100%;font-size:19px}.coupon-box button{border:0;border-radius:25px;background:#f3f3f3;color:#888;font-size:19px}.review-terms{display:flex;align-items:center;gap:12px;font-size:17px;margin:52px 0 32px}.review-terms input{width:28px;height:28px}.review-terms a{color:#2360d8}.payment-choice{width:100%;height:92px;border:1px solid #ddd;border-radius:24px;background:#fff;display:grid;grid-template-columns:120px 1fr 35px;align-items:center;padding:0 24px;margin-bottom:14px;text-align:right;font-size:21px}.payment-choice>img{max-width:96px;max-height:46px;object-fit:contain}.payment-choice i{font-size:38px;font-style:normal}.card-logos{display:flex;gap:8px}.card-logos img{width:52px;object-fit:contain}.payment-panel .flow-primary{margin-top:45px}
body[data-screen="details"] .bottom-nav,body[data-screen="seats"] .bottom-nav,body[data-screen="payment"] .bottom-nav{display:none}
@media(max-width:520px){.flow-head{height:94px;grid-template-columns:100px 1fr 58px;padding:10px 20px}.flow-head h2{font-size:25px}.countdown b{font-size:19px}.countdown small{font-size:14px}.flow-back{width:56px;height:56px;font-size:34px}.flow-progress{height:112px;padding:16px 34px}.flow-line{right:54px;left:54px}.flow-node span{font-size:14px;width:105px}.passenger-accordions{padding:34px 20px 145px}.traveller-summary{height:116px;grid-template-columns:32px 126px 1fr 58px;padding:0 15px}.traveller-summary b{font-size:18px}.traveller-summary small{font-size:15px}.traveller-status{font-size:14px;padding:12px}.traveller-avatar{width:56px;height:56px}.traveller-body{padding:0 16px 22px}.traveller-body label{font-size:18px}.traveller-body .input,.phone-field{height:70px;font-size:17px}.two-cols{gap:14px}.identity-tabs{gap:12px}.identity-tabs button{font-size:14px}.add-passenger-data{height:70px;font-size:20px}.flow-bottom{padding:14px 20px 22px}.flow-primary{height:72px;border-radius:22px;font-size:21px}.seat-trip-summary{padding:22px 20px}.seat-trip-summary b{font-size:21px}.seat-trip-summary small{font-size:15px}.seat-section-title{font-size:22px;padding:25px 20px 7px}.seat-legend.original{padding:8px 20px 20px;font-size:14px;gap:18px}.seat-key{width:31px;height:31px}.original-bus{width:calc(100% - 40px);margin:0 20px 115px;padding:34px 34px 45px}.driver-wheel img{width:82px;height:82px}.original-grid{gap:22px 20px}.original-grid .seat-box:nth-child(4n+2){margin-left:46px}.seat-box{height:58px;font-size:16px}.review-panel,.payment-panel{padding:30px 20px 120px}.review-ticket-row{height:110px}.review-ticket-row b{font-size:21px}.review-ticket-row small{font-size:16px}.review-panel h3,.payment-panel h3{font-size:22px;margin:38px 0 14px}.review-summary-line,.price-box p{font-size:17px}.price-box p.total{font-size:22px}.coupon-box{height:112px;grid-template-columns:1fr 125px}.coupon-box input,.coupon-box button{font-size:16px}.review-terms{font-size:14px}.payment-choice{height:82px;font-size:18px;grid-template-columns:105px 1fr 28px}}


/* RTL fidelity and original mobile sizing */
html,body,#app,main,.screen,.modal,.modal-card{direction:rtl;text-align:right}
input,select,textarea{direction:rtl;text-align:right}
.flow-head{direction:ltr}.flow-head h2{direction:rtl}.flow-back{direction:rtl}
.flow-progress{direction:rtl}.seat-trip-summary,.review-ticket-row,.review-summary-line,.price-box p,.payment-choice{direction:rtl}
.payment-choice{grid-template-columns:110px 1fr 34px}.payment-choice>img,.payment-choice>.card-logos{justify-self:end}.payment-choice>span:nth-child(2){text-align:right}.payment-choice i{justify-self:start;transform:scaleX(-1)}
.station-picker-card,.station-picker-head,.station-searchbox,.station-picker-list{direction:rtl}.station-picker-head{display:grid;grid-template-columns:54px 1fr;align-items:center}.station-picker-head h3{text-align:right}.station-picker-head button{grid-column:1}.station-picker-list .station-row{direction:rtl;display:flex;flex-direction:row;justify-content:space-between}.station-picker-list .station-row-arrow{transform:scaleX(-1)}
.traveller-summary{direction:rtl;grid-template-columns:68px 1fr 150px 40px}.traveller-summary>div{text-align:right}.traveller-chevron{justify-self:start}.phone-field{direction:rtl}.phone-field input{direction:rtl;text-align:right}
.original-grid{direction:rtl}.seat-box{font-family:Cairo,Poppins,Arial}
.review-terms{direction:rtl}.review-terms span{text-align:right}
.card-payment-modal{align-items:flex-end;background:#0008}.card-payment-sheet{width:min(100%,690px);max-height:92vh;border-radius:46px 46px 0 0;padding:14px 36px 24px;background:#fff;overflow:auto}.card-payment-sheet .sheet-handle{width:164px;height:7px;background:#000;border-radius:20px;margin:0 auto 18px}.card-payment-head{display:grid;grid-template-columns:58px 1fr;align-items:center;margin-bottom:24px}.card-payment-head h3{margin:0;text-align:right;font-size:31px;font-weight:500}.card-payment-close{width:54px;height:54px;border:1px solid #ddd;border-radius:50%;background:#fff;font-size:40px;line-height:1}.card-payment-sheet label{display:block;font-size:23px;margin:22px 0 10px;color:#222}.payment-input{height:92px;border:1.5px solid #666;border-radius:30px;display:flex;align-items:center;gap:14px;padding:0 25px;background:#fff}.payment-input img{width:31px;height:31px;object-fit:contain;opacity:.6}.payment-input input{border:0;outline:0;width:100%;font-size:22px;background:transparent;color:#222}.payment-input input::placeholder{color:#8a8a8a}.payment-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}.card-security-note{font-size:13px;color:#777;line-height:1.7;margin:18px 0}.card-pay-footer{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:28px;direction:ltr}.card-pay-footer strong{font-size:36px;font-weight:500;text-align:center;direction:rtl}.card-pay-footer button{height:86px;border:0;border-radius:25px;background:#edb435;font-size:25px;color:#111}.payment-input.invalid{border-color:#d84d4d;box-shadow:0 0 0 2px #d84d4d18}
@media(max-width:520px){body{font-size:16px}.flow-screen{width:100%;overflow-x:hidden}.flow-head{grid-template-columns:94px 1fr 58px;padding:8px 18px}.flow-head h2{font-size:25px}.flow-progress{padding-inline:31px}.flow-node span{font-size:14px}.traveller-summary{grid-template-columns:56px 1fr 126px 32px}.payment-choice{grid-template-columns:92px 1fr 28px;padding:0 18px}.payment-choice>img{max-width:84px}.card-payment-sheet{padding:12px 36px 22px;border-radius:42px 42px 0 0}.card-payment-sheet .sheet-handle{width:165px;height:6px}.card-payment-head h3{font-size:29px}.card-payment-sheet label{font-size:20px;margin:18px 0 9px}.payment-input{height:82px;border-radius:28px;padding:0 20px}.payment-input input{font-size:19px}.payment-two-cols{gap:16px}.card-pay-footer{gap:30px}.card-pay-footer strong{font-size:32px}.card-pay-footer button{height:76px;font-size:23px}}
@media(max-width:380px){.payment-two-cols{grid-template-columns:1fr;gap:0}.card-payment-sheet{padding-inline:24px}.card-payment-head h3{font-size:26px}.payment-input{height:72px}.card-pay-footer{gap:16px}.card-pay-footer strong{font-size:27px}.card-pay-footer button{height:68px}}
/* Navigation pages */
.nav-page{min-height:calc(100vh - 72px);background:#fff;padding-bottom:92px}.nav-page-head{height:84px;display:flex;align-items:center;justify-content:center;position:sticky;top:0;background:#fff;border-bottom:1px solid #eceef2;z-index:12}.nav-page-head h2{font-size:26px;font-weight:500;margin:0}.nav-page-back{position:absolute;right:20px;width:54px;height:54px;border:0;border-radius:50%;background:#fff3dc;font-size:32px}.nav-page-body{padding:28px 22px}.ticket-search-card{display:flex;align-items:center;gap:16px;padding:20px;border-radius:22px;background:#fff8e9;margin-bottom:24px}.ticket-search-card img{width:52px;height:52px}.ticket-search-card b,.ticket-search-card small{display:block}.ticket-search-card b{font-size:20px}.ticket-search-card small{font-size:14px;color:#777}.ticket-lookup label{display:block;font-size:18px;margin-bottom:10px}.lookup-row{display:grid;grid-template-columns:1fr 105px;gap:10px}.lookup-row .input{height:62px;border-radius:18px}.lookup-row button{border:0;border-radius:18px;background:#ebb334;font-size:18px}.my-tickets-list{display:grid;gap:14px;margin-top:22px}.my-ticket-card{border:1px solid #e1e1e1;border-radius:22px;padding:18px;background:#fff}.my-ticket-card header,.my-ticket-card footer{display:flex;justify-content:space-between;align-items:center}.my-ticket-card header b{font-size:19px}.my-ticket-card header span{color:#25a46c;font-size:13px;background:#eaf8f1;padding:5px 10px;border-radius:20px}.my-ticket-card .ticket-route{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:18px 0;text-align:center}.my-ticket-card .ticket-route b{font-size:18px}.my-ticket-card footer{border-top:1px dashed #ddd;padding-top:12px;color:#777}.my-ticket-card footer button{border:0;background:#fff3dc;border-radius:12px;padding:8px 14px}.empty-state{text-align:center;padding:70px 20px}.empty-state img{width:90px;opacity:.55}.empty-state h3{font-size:21px;margin:16px 0 6px}.empty-state p{color:#777}.empty-state .primary{max-width:320px;margin-top:22px}.faq-search{height:62px;border:1px solid #ddd;border-radius:20px;display:flex;align-items:center;gap:12px;padding:0 18px;margin-bottom:20px}.faq-search img{width:28px}.faq-search input{border:0;outline:0;flex:1;font-size:17px}.faq-list{display:grid;gap:12px}.faq-item{border:1px solid #e0e0e0;border-radius:20px;overflow:hidden}.faq-item>button{width:100%;height:72px;border:0;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:18px;text-align:right}.faq-item>button i{font-style:normal;font-size:26px;transition:.2s}.faq-item>div{display:none;padding:0 20px 20px;line-height:1.9;color:#666}.faq-item.open>div{display:block}.faq-item.open>button i{transform:rotate(180deg)}.more-page{display:grid;gap:13px}.more-row{height:86px;border:1px solid #dedede;border-radius:22px;background:#fff;display:grid;grid-template-columns:56px 1fr 25px;align-items:center;padding:0 18px;text-align:right}.more-row img{width:42px;height:42px;object-fit:contain;background:#fff5df;padding:8px;border-radius:12px}.more-row span b,.more-row span small{display:block}.more-row span b{font-size:19px}.more-row span small{font-size:13px;color:#777}.more-row i{font-size:30px;font-style:normal}.legal-content{line-height:2}.legal-content h3{font-size:21px;margin:18px 0 5px}.legal-content p{font-size:16px;color:#555;margin:0 0 20px}.bottom-nav button.active span{color:#d4a32d}.bottom-nav button.active img{filter:none}body[data-screen="tickets"] .appbar,body[data-screen="faq"] .appbar,body[data-screen="more"] .appbar,body[data-screen="privacy"] .appbar,body[data-screen="terms"] .appbar{display:none}
@media(max-width:520px){.nav-page-head{height:72px}.nav-page-head h2{font-size:23px}.nav-page-body{padding:22px 18px}.ticket-search-card{padding:17px}.lookup-row{grid-template-columns:1fr 88px}.more-row{height:78px}.more-row span b{font-size:17px}.faq-item>button{font-size:16px}}
.faq-intro{margin:0 0 16px;color:#6d6d73;font-size:14px;line-height:1.9}.legal-content{padding-bottom:110px}.legal-content h3{margin:24px 0 8px;font-size:18px;font-weight:700;color:#161616}.legal-content p{margin:0;color:#555861;font-size:15px;line-height:2;text-align:justify}.legal-content h3:first-child{margin-top:0}


/* SAT assistant chat */
.chatbot-fab{cursor:pointer;z-index:18}.chatbot-fab:active{transform:scale(.96)}
.sat-chat-overlay{position:fixed;inset:0;z-index:1200;background:rgba(0,0,0,.5);display:none;align-items:flex-end;justify-content:center;padding:0}
.sat-chat-overlay.show{display:flex}.sat-chat-sheet{width:min(100%,690px);height:min(88vh,820px);background:#fff;border-radius:46px 46px 0 0;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;box-shadow:0 -12px 45px #0003}
.sat-chat-handle{width:164px;height:7px;border-radius:20px;background:#050505;margin:18px auto 8px}
.sat-chat-header{height:126px;display:flex;align-items:center;justify-content:space-between;padding:12px 38px 20px;border-bottom:1px solid #eceef2;box-shadow:0 8px 18px #0000000d}
.sat-chat-close{width:66px;height:66px;border:1px solid #d8d8d8;border-radius:50%;background:#fff;font-size:47px;font-weight:300;line-height:1}
.sat-chat-agent{display:flex;align-items:center;gap:15px}.sat-chat-agent img{width:62px;height:62px;object-fit:contain}.sat-chat-agent h2{margin:0;font-size:32px;line-height:1.25}.sat-chat-agent span{display:flex;align-items:center;gap:8px;color:#38df81;font-size:20px}.sat-chat-agent i{width:13px;height:13px;border-radius:50%;background:#39df80;display:inline-block}
.sat-chat-body{overflow:auto;padding:32px 34px 18px;background:#fff;scroll-behavior:smooth}.sat-chat-message{display:flex;gap:12px;margin:0 0 20px;align-items:flex-end}.sat-chat-message.user{direction:ltr}.sat-chat-message img{width:38px;height:38px;object-fit:contain;flex:0 0 auto}.sat-chat-bubble{max-width:78%;padding:18px 20px;border-radius:24px;font-size:18px;line-height:1.85;white-space:pre-line}.sat-chat-message.bot .sat-chat-bubble{background:#fde9b6;color:#555;border-bottom-right-radius:6px}.sat-chat-message.user .sat-chat-bubble{background:#e9edf3;color:#333;border-bottom-left-radius:6px}.sat-chat-time{display:block;color:#949494;font-size:12px;margin-top:7px;text-align:left}.sat-chat-typing{display:flex;gap:5px;align-items:center;height:25px}.sat-chat-typing i{width:7px;height:7px;border-radius:50%;background:#9a7930;animation:chatDot 1s infinite}.sat-chat-typing i:nth-child(2){animation-delay:.15s}.sat-chat-typing i:nth-child(3){animation-delay:.3s}@keyframes chatDot{50%{transform:translateY(-5px);opacity:.45}}
.sat-chat-suggestions{display:flex;gap:8px;overflow-x:auto;padding:8px 30px 12px;scrollbar-width:none}.sat-chat-suggestions::-webkit-scrollbar{display:none}.sat-chat-suggestions button{white-space:nowrap;border:1px solid #e5b338;background:#fffaf0;color:#6e5727;border-radius:18px;padding:8px 14px;font-size:13px}
.sat-chat-compose{height:108px;background:#f7f8fa;border-top:1px solid #eceef2;display:grid;grid-template-columns:66px 1fr;gap:10px;align-items:center;padding:16px 30px calc(16px + env(safe-area-inset-bottom))}.sat-chat-compose input{height:70px;border:0;border-radius:24px;background:#e9edf3;padding:0 22px;font-size:21px;text-align:right;outline:0}.sat-chat-compose button{width:58px;height:58px;border:0;background:transparent;color:#e5ae2d;font-size:36px;transform:rotate(180deg)}
@media(max-width:520px){.sat-chat-sheet{height:calc(100dvh - 135px);border-radius:38px 38px 0 0}.sat-chat-handle{width:132px;height:6px;margin:14px auto 5px}.sat-chat-header{height:112px;padding:8px 25px 18px}.sat-chat-close{width:58px;height:58px;font-size:40px}.sat-chat-agent img{width:51px;height:51px}.sat-chat-agent h2{font-size:27px}.sat-chat-agent span{font-size:17px}.sat-chat-body{padding:28px 22px 12px}.sat-chat-bubble{max-width:84%;padding:15px 17px;font-size:16px}.sat-chat-compose{height:90px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));grid-template-columns:54px 1fr}.sat-chat-compose input{height:62px;font-size:18px}.sat-chat-compose button{width:50px;height:50px;font-size:31px}.sat-chat-suggestions{padding-right:20px;padding-left:20px}}

/* Original-app home promotional sections */
.home-extra-sections{padding:10px 0 22px;display:flex;flex-direction:column;gap:28px}.global-payment-card{background:#fff;border-radius:34px;padding:26px 24px 25px;text-align:center;box-shadow:0 8px 26px rgba(0,0,0,.09);margin:0 0 4px}.global-payment-card h2,.home-content-section h2,.why-section h2{margin:0;color:#101010;font-size:28px;font-weight:500}.global-payment-card p{font-size:18px;line-height:1.65;color:#626262;margin:12px 0 20px}.payment-brand-row{display:flex;align-items:center;justify-content:space-around;gap:24px}.payment-brand-row>img{width:76px;height:34px;object-fit:contain}.payment-brand-row .visa-master{display:flex;align-items:center;gap:4px}.payment-brand-row .visa-master img{width:38px;height:25px;object-fit:contain}.home-content-section h2,.why-section h2{text-align:right;margin:0 5px 16px}.horizontal-cards{display:flex;overflow-x:auto;gap:18px;padding:2px 3px 12px;scroll-snap-type:x mandatory;scrollbar-width:none}.horizontal-cards::-webkit-scrollbar{display:none}.offer-card{position:relative;flex:0 0 88%;height:260px;border-radius:32px;overflow:hidden;scroll-snap-align:start;background:#222}.offer-card>img{width:100%;height:100%;object-fit:cover}.offer-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.12),rgba(0,0,0,.62))}.offer-copy{position:absolute;inset:0;padding:38px 28px;color:#fff;display:flex;flex-direction:column;align-items:flex-start;text-align:right}.offer-copy strong{font-size:42px;font-weight:500;line-height:1.1}.offer-copy span{font-size:24px;margin-top:8px}.offer-copy p{margin-top:auto;font-size:17px;line-height:1.55;background:rgba(0,0,0,.28);padding:8px 12px;border-radius:12px;width:100%}.cities-scroll{direction:rtl}.city-card{flex:0 0 64%;border:1px solid #dedede;border-radius:30px;overflow:hidden;background:#fff;scroll-snap-align:start}.city-photo{position:relative;height:205px}.city-photo>img{width:100%;height:100%;object-fit:cover}.city-badges{position:absolute;top:14px;right:15px;display:flex;gap:12px;color:white;font-size:14px;text-shadow:0 1px 5px #000}.city-copy{padding:14px 18px 17px;display:flex;flex-direction:column;gap:4px}.city-copy strong{font-size:22px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.city-copy span{font-size:17px;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.why-section{text-align:center}.why-section h2{text-align:right;font-size:35px;font-weight:600}.why-section>p{font-size:24px;margin:0 5px 20px;text-align:center}.why-original-image{width:100%;height:auto;display:block}.chatbot-fab{position:fixed!important;left:max(18px,calc(50% - 327px));right:auto!important;bottom:116px!important;z-index:120!important;transform:none!important;width:68px!important;height:68px!important}.chatbot-fab img{width:54px!important;height:54px!important}.chatbot-fab:active{transform:scale(.96)!important}
@media(max-width:520px){.home-extra-sections{gap:24px}.global-payment-card{border-radius:27px;padding:22px 18px}.global-payment-card h2,.home-content-section h2{font-size:22px}.global-payment-card p{font-size:15px}.offer-card{height:220px;flex-basis:92%;border-radius:26px}.offer-copy{padding:29px 22px}.offer-copy strong{font-size:34px}.offer-copy span{font-size:21px}.offer-copy p{font-size:14px}.city-card{flex-basis:67%;border-radius:25px}.city-photo{height:180px}.city-copy strong{font-size:19px}.city-copy span{font-size:15px}.why-section h2{font-size:30px}.why-section>p{font-size:20px}.chatbot-fab{left:19px!important;bottom:105px!important;width:62px!important;height:62px!important}.chatbot-fab img{width:49px!important;height:49px!important}}
.cities-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 5px 16px}.cities-heading-row h2{margin:0!important}.cities-heading-row p{margin:6px 0 0;color:#777;font-size:15px}.all-destinations-link{flex:0 0 auto;color:#2dbcd1;text-decoration:none;border:1.5px solid #2dbcd1;border-radius:999px;padding:8px 15px;font-size:14px}.city-copy button{margin-top:10px;border:0;background:#f4b92f;color:#111;border-radius:14px;padding:9px 12px;font:inherit;cursor:pointer}.destinations-network-note{margin:4px 6px 0;color:#777;font-size:14px;line-height:1.7}.city-card{cursor:pointer}.city-card:active{transform:scale(.985)}
@media(max-width:520px){.cities-heading-row{align-items:center}.cities-heading-row p{font-size:13px}.all-destinations-link{padding:7px 12px;font-size:13px}.city-copy button{font-size:13px;padding:8px 10px}.destinations-network-note{font-size:13px}}


/* =========================================================
   SAT WEB FINAL BUILD 4.0 — fixed actions, safe areas, RTL
   ========================================================= */
:root{--sat-safe-bottom:max(14px,env(safe-area-inset-bottom));--sat-cta-max:620px}
html{scroll-behavior:smooth}
body.modal-open{overflow:hidden;overscroll-behavior:none}
button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}

/* The application header is only part of the home screen. */
body:not([data-screen="home"]) .sat-appbar{display:none!important}

/* The booking flow uses its own headers and must not show the main nav. */
body[data-screen="results"] .bottom-nav,
body[data-screen="details"] .bottom-nav,
body[data-screen="seats"] .bottom-nav,
body[data-screen="payment"] .bottom-nav,
body[data-screen="success"] .bottom-nav{display:none!important}

/* Keep the ticket-selection CTA visible inside the original bottom sheet. */
.fare-sheet{overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(104px + var(--sat-safe-bottom))!important}
.fare-options{padding-bottom:8px}
.fare-confirm{
  position:sticky;bottom:var(--sat-safe-bottom);z-index:12;
  width:100%;margin:22px 0 0!important;
  box-shadow:0 -12px 24px rgba(255,255,255,.96),0 8px 20px rgba(224,166,34,.22);
}

/* Fixed actions on passengers and seats. */
.flow-bottom{
  padding-bottom:calc(16px + env(safe-area-inset-bottom))!important;
  box-shadow:0 -8px 24px rgba(0,0,0,.07);
  border-top:1px solid #f0f0f0;
}
.flow-screen{padding-bottom:calc(132px + env(safe-area-inset-bottom))!important}
.passenger-accordions{padding-bottom:175px!important}
.original-bus{margin-bottom:145px!important}

/* Review and payment buttons are fixed like the original application. */
#screen-payment #toPaymentMethods,
#screen-payment #payBtn{
  position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(16px + env(safe-area-inset-bottom));
  z-index:45;width:min(calc(100% - 40px),var(--sat-cta-max));
  box-shadow:0 10px 26px rgba(224,166,34,.24),0 -10px 26px rgba(255,255,255,.96);
}
#screen-payment .review-panel,
#screen-payment .payment-panel{padding-bottom:155px!important}

/* Fixed card-payment footer inside the bottom sheet. */
.card-payment-sheet{padding-bottom:calc(120px + env(safe-area-inset-bottom))!important}
.card-pay-footer{
  position:sticky;bottom:0;z-index:8;background:#fff;
  padding:15px 0 calc(4px + env(safe-area-inset-bottom));
  box-shadow:0 -14px 22px rgba(255,255,255,.98);
}

/* Preserve accessible disabled states. */
.flow-primary:disabled,.fare-confirm:disabled,.primary:disabled{cursor:not-allowed;filter:saturate(.65);box-shadow:none}

/* Keep every fixed element inside the centered application column on wide screens. */
@media(min-width:691px){
  #screen-payment #toPaymentMethods,#screen-payment #payBtn{width:620px}
  .flow-bottom{left:50%;right:auto;transform:translateX(-50%);width:690px}
}

@media(max-width:520px){
  .fare-sheet{padding-bottom:calc(88px + var(--sat-safe-bottom))!important}
  .fare-confirm{height:64px!important;border-radius:22px!important;font-size:19px!important}
  .flow-screen{padding-bottom:calc(112px + env(safe-area-inset-bottom))!important}
  .flow-bottom{padding:12px 20px calc(12px + env(safe-area-inset-bottom))!important}
  .flow-primary{height:68px!important;font-size:20px!important;border-radius:21px!important}
  #screen-payment #toPaymentMethods,#screen-payment #payBtn{bottom:calc(12px + env(safe-area-inset-bottom));width:calc(100% - 40px)}
  #screen-payment .review-panel,#screen-payment .payment-panel{padding-bottom:132px!important}
  .passenger-accordions{padding-bottom:148px!important}
  .original-bus{margin-bottom:126px!important}
  .card-payment-sheet{padding-bottom:calc(105px + env(safe-area-inset-bottom))!important}
  .card-pay-footer{grid-template-columns:1fr 1fr;gap:18px;margin-top:22px;padding-top:12px}
}

@media(max-width:370px){
  .flow-primary{height:62px!important;font-size:18px!important}
  #screen-payment #toPaymentMethods,#screen-payment #payBtn{width:calc(100% - 28px)}
  .fare-confirm{height:60px!important;font-size:18px!important}
}

/* =========================================================
   SAT WEB 4.1 — mobile RTL, progress, fare CTA and payment fix
   ========================================================= */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  overflow-wrap:normal;
  word-break:normal;
}
.maintenance-banner{position:fixed;top:0;right:0;left:0;z-index:99999;background:#8d2f2f;color:#fff;text-align:center;padding:9px;font-weight:700}
.geo-restricted{position:fixed;inset:0;z-index:100000;background:radial-gradient(circle at 80% 15%,#fff0bd,transparent 32%),#f5f1e7;display:grid;place-items:center;padding:24px}.geo-restricted-card{width:min(620px,100%);background:#fff;border:1px solid #e4dece;border-radius:30px;padding:48px;text-align:center;box-shadow:0 24px 70px #332a161a}.geo-restricted-mark{width:78px;height:78px;border-radius:24px;background:#1c2228;color:var(--gold);display:grid;place-items:center;margin:auto;font-size:24px;font-weight:800}.geo-restricted h1{font-size:30px;margin:25px 0 12px}.geo-restricted p{color:#72777e;line-height:1.9;font-size:17px}.geo-restricted a{display:inline-block;margin-top:18px;padding:13px 28px;border-radius:13px;background:var(--gold);color:#fff;text-decoration:none;font-weight:700}.geo-country{margin-top:24px;color:#999;font-size:12px}

/* Station picker: keep the title on one line, text on the right and arrow on the left. */
.station-picker-card{
  height:min(78dvh,760px)!important;
  max-height:78dvh!important;
  padding:13px 18px 0!important;
}
.station-picker-head{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:58px!important;
  direction:rtl!important;
  padding-inline:62px!important;
}
.station-picker-head h3{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  font-size:24px!important;
  line-height:1.35!important;
  font-weight:500!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.station-picker-head button{
  position:absolute!important;
  left:0!important;
  right:auto!important;
  top:2px!important;
  width:52px!important;
  height:52px!important;
  font-size:32px!important;
}
.station-searchbox input{
  height:66px!important;
  border-radius:22px!important;
  padding:0 60px 0 20px!important;
  font-size:18px!important;
  line-height:1!important;
}
.station-searchbox>img{
  right:22px!important;
  left:auto!important;
  top:20px!important;
  width:27px!important;
  height:27px!important;
}
.station-picker-list{
  direction:rtl!important;
  padding-bottom:calc(22px + env(safe-area-inset-bottom))!important;
}
.station-picker-list .station-row{
  direction:ltr!important;
  height:74px!important;
  min-height:74px!important;
  margin-top:9px!important;
  padding:0 22px!important;
  border-radius:20px!important;
  flex-direction:row!important;
}
.station-picker-list .station-row strong{
  order:2!important;
  flex:1 1 auto!important;
  min-width:0!important;
  direction:rtl!important;
  text-align:right!important;
  font-size:18px!important;
  font-weight:400!important;
  line-height:1.35!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.station-picker-list .station-row-arrow{
  order:1!important;
  flex:0 0 auto!important;
  transform:none!important;
  font-size:37px!important;
  line-height:1!important;
}

/* Result-step progress: fixed four equal columns and no mobile font boosting. */
.booking-progress{
  height:102px!important;
  padding:14px 24px 8px!important;
}
.progress-track{
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  align-items:center!important;
  height:38px!important;
  direction:rtl!important;
}
.progress-track i{
  justify-self:center!important;
  width:32px!important;
  height:32px!important;
}
.progress-line{
  right:12.5%!important;
  left:12.5%!important;
  top:17px!important;
}
.progress-labels{
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  direction:rtl!important;
  align-items:start!important;
  font-size:14px!important;
  line-height:1.3!important;
}
.progress-labels span{
  width:auto!important;
  padding:0 2px!important;
  white-space:nowrap!important;
}

/* Booking-flow progress with colored completed segments. */
.flow-progress{
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  align-items:start!important;
  justify-content:initial!important;
  height:112px!important;
  padding:16px 22px 8px!important;
  direction:rtl!important;
  --flow-complete:0%;
}
.flow-progress[data-step="passengers"]{--flow-complete:33.333%}
.flow-progress[data-step="seats"]{--flow-complete:66.666%}
.flow-progress[data-step="payment"]{--flow-complete:100%}
.flow-line{
  right:12.5%!important;
  left:12.5%!important;
  top:33px!important;
  height:4px!important;
  overflow:hidden!important;
}
.flow-line::after{
  content:"";
  position:absolute;
  right:0;
  top:0;
  bottom:0;
  width:var(--flow-complete);
  background:#ebb537;
}
.flow-node{
  justify-self:center!important;
  width:36px!important;
  height:36px!important;
}
.flow-node span{
  top:48px!important;
  right:50%!important;
  width:120px!important;
  transform:translateX(50%)!important;
  font-size:14px!important;
  line-height:1.3!important;
  white-space:normal!important;
}

/* Passenger page typography and controls calibrated to the original app. */
.flow-head h2{font-size:26px!important;line-height:1.25!important}
.countdown b{font-size:19px!important}
.countdown small{font-size:14px!important}
.traveller-summary b{font-size:18px!important}
.traveller-summary small{font-size:14px!important}
.traveller-status{font-size:14px!important}
.traveller-body label{font-size:17px!important}
.traveller-body .input,.phone-field{font-size:16px!important}

/* Fare sheet: the options scroll while the CTA remains in its own footer area. */
.fare-sheet{
  height:min(88dvh,820px)!important;
  max-height:88dvh!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  padding:12px 20px calc(14px + env(safe-area-inset-bottom))!important;
}
.fare-sheet-head,.fare-route{flex:0 0 auto!important}
.fare-sheet-head h3{font-size:24px!important}
.fare-route{padding:16px 0 12px!important}
.fare-route>div{font-size:17px!important;line-height:1.45!important}
.fare-route a{font-size:16px!important}
.fare-options{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  padding:0 1px 12px!important;
  gap:14px!important;
}
.fare-choice{border-radius:25px!important}
.fare-title{padding:18px 18px 11px!important}
.fare-title b{font-size:19px!important}
.fare-title b i{width:27px!important;height:27px!important;font-size:15px!important}
.fare-title strong{font-size:21px!important}
.fare-benefits{padding:0 18px 16px!important;gap:9px!important}
.fare-benefits span{font-size:13px!important;padding:5px 10px!important}
.fare-price-details{padding:13px 18px 14px!important}
.fare-price-details h4{font-size:17px!important}
.fare-line{font-size:14px!important}
.fare-line.total{font-size:18px!important}
.fare-confirm{
  position:static!important;
  flex:0 0 auto!important;
  bottom:auto!important;
  height:66px!important;
  margin:12px 0 0!important;
  border-radius:22px!important;
  font-size:20px!important;
  box-shadow:0 7px 18px rgba(224,166,34,.2)!important;
}

/* Payment methods and direct card form opening. */
#screen-payment .payment-panel{
  padding-top:30px!important;
}
.payment-panel>h3{
  font-size:24px!important;
  font-weight:500!important;
  margin:24px 0 16px!important;
}
.payment-choice{
  width:100%!important;
  height:80px!important;
  display:grid!important;
  grid-template-columns:96px minmax(0,1fr) 28px!important;
  align-items:center!important;
  direction:rtl!important;
  padding:0 20px!important;
  border-radius:24px!important;
  font-size:18px!important;
}
.payment-choice>img,.payment-choice>.card-logos{
  grid-column:1!important;
  justify-self:end!important;
  max-width:88px!important;
  max-height:40px!important;
}
.payment-choice>span:nth-child(2){
  grid-column:2!important;
  text-align:right!important;
  white-space:nowrap!important;
}
.payment-choice i{
  grid-column:3!important;
  justify-self:start!important;
  transform:none!important;
  font-size:34px!important;
}
.payment-choice.active{
  border-color:#e1b33a!important;
  box-shadow:0 0 0 2px rgba(225,179,58,.1)!important;
}
.card-payment-modal.open{display:flex!important}
.card-payment-sheet{
  max-height:90dvh!important;
  padding:12px 28px calc(18px + env(safe-area-inset-bottom))!important;
  overflow-y:auto!important;
}
.card-payment-head{
  position:relative!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  padding-inline:62px!important;
  margin-bottom:12px!important;
}
.card-payment-head h3{
  width:100%!important;
  text-align:right!important;
  font-size:26px!important;
  white-space:nowrap!important;
}
.card-payment-close{
  position:absolute!important;
  left:0!important;
  right:auto!important;
}
.card-payment-sheet label{font-size:18px!important;margin:15px 0 8px!important}
.payment-input{height:72px!important;border-radius:24px!important;padding:0 18px!important}
.payment-input input{font-size:17px!important}
.payment-input img{width:27px!important;height:27px!important}
.card-brand-animation{width:44px;height:36px;flex:0 0 44px;display:grid;place-items:center;overflow:hidden}
.card-brand-animation svg{width:100%!important;height:100%!important}
.card-brand-animation img{width:31px!important;height:31px!important;object-fit:contain}
.payment-two-cols{gap:14px!important}
.card-security-note{display:none!important}
.card-pay-footer{
  position:sticky!important;
  bottom:0!important;
  grid-template-columns:1fr 1fr!important;
  gap:18px!important;
  margin-top:22px!important;
  padding:12px 0 calc(2px + env(safe-area-inset-bottom))!important;
  direction:ltr!important;
}
.card-pay-footer strong{font-size:29px!important}
.card-pay-footer button{height:70px!important;border-radius:22px!important;font-size:21px!important}

@media(max-width:380px){
  .station-picker-head h3{font-size:22px!important}
  .station-picker-list .station-row strong{font-size:17px!important}
  .progress-labels,.flow-node span{font-size:12.5px!important}
  .flow-progress{padding-inline:15px!important}
  .fare-sheet-head h3{font-size:22px!important}
  .fare-title b{font-size:18px!important}
  .payment-choice{grid-template-columns:82px minmax(0,1fr) 24px!important;font-size:16px!important;padding-inline:15px!important}
  .card-payment-sheet{padding-inline:20px!important}
  .payment-two-cols{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .payment-input{height:67px!important;padding-inline:13px!important}
  .payment-input input{font-size:15px!important}
  .card-pay-footer strong{font-size:25px!important}
}


/* SAT WEB 4.2 — original fare accordion logic and unified form-control sizing */
.fare-choice{display:block!important;flex:0 0 auto!important;min-height:76px!important;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease!important}
.fare-choice:not(.selected){border:1.25px solid #d8d8d8!important;border-radius:24px!important;background:#fff!important}
.fare-choice:not(.selected) .fare-title{min-height:76px!important;padding:0 22px!important}
.fare-choice:not(.selected) .fare-title b{color:#111!important;font-weight:500!important}
.fare-choice:not(.selected) .fare-title strong{color:#111!important;font-weight:500!important}
.fare-choice:not(.selected) .fare-selected-check,.fare-choice:not(.selected) .fare-expanded-content{display:none!important}
.fare-choice.selected{border:2px solid var(--sat-cyan)!important;box-shadow:none!important}
.fare-expanded-content{display:block!important}
.fare-selected-check{display:inline-grid!important}
.fare-benefits span{display:inline-flex!important;align-items:center!important;gap:7px!important;color:#111!important;line-height:1.25!important}
.fare-benefits span i{display:inline-grid!important;place-items:center!important;width:21px!important;height:21px!important;flex:0 0 21px!important;border-radius:50%!important;background:#050505!important;color:#fff!important;font-size:12px!important;font-style:normal!important;line-height:1!important}
.fare-benefits span.disabled{color:#777!important;background:#f7f7f9!important}
.fare-benefits span.disabled i{background:transparent!important;border:1px solid transparent!important}
.fare-line.cash-rounding.negative b{color:#3fbd76!important}
.fare-line.cash-rounding.positive b{color:#e44f50!important}
.fare-line.cash-rounding.zero{display:none!important}
.flow-screen input,.flow-screen select,.modal input,.modal select,.ticket-lookup input,.faq-search input,.coupon-box input{-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important;font-size:16px!important}
.traveller-body .input,.phone-field{height:68px!important;min-height:68px!important;border-radius:21px!important;padding-inline:18px!important;border-width:1px!important}
.passenger-icon-field{position:relative}
.passenger-icon-field>svg{position:absolute;z-index:2;right:18px;top:50%;width:30px;height:30px;transform:translateY(-50%);fill:none;stroke:#707780;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.traveller-body .passenger-icon-field>.input{padding-right:62px!important}
.traveller-body select.input{padding-inline:18px 42px!important;background-position:left 17px center!important}
.traveller-body .passenger-icon-field>select.input{padding-right:62px!important;padding-left:42px!important}
.fare-international-details{margin:0 20px 12px;padding:12px 14px;border-radius:14px;background:#fff8e7;color:#3f3f3f;font-size:12px}
.fare-international-details p{display:flex;justify-content:space-between;gap:12px;margin:0;padding:7px 0;border-bottom:1px solid rgba(0,0,0,.06)}
.fare-international-details p:last-child{border-bottom:0}.fare-international-details b{white-space:nowrap}.fare-international-details span{text-align:left;line-height:1.55}
.fare-international-details .ferry-fee-note{color:#775916}
.international-warning-card{max-width:430px;text-align:right}.international-warning-card>p{font-size:16px;line-height:1.9;margin:12px 0 22px}
.traveller-body label{font-size:17px!important;line-height:1.45!important;margin:16px 1px 8px!important}
.two-cols{gap:12px!important}
.identity-tabs{gap:10px!important;margin:20px 0!important}
.identity-tabs button{height:54px!important;min-height:54px!important;border-radius:27px!important;font-size:14px!important;padding:0 8px!important;white-space:nowrap!important}
.phone-field{gap:10px!important}.phone-field input{font-size:16px!important;min-width:0!important}
.add-passenger-data{height:68px!important;min-height:68px!important;border-radius:21px!important;font-size:19px!important;margin-top:24px!important}
.coupon-box{min-height:96px!important;height:auto!important;padding:13px!important;border-radius:24px!important;grid-template-columns:minmax(0,1fr) 108px!important;gap:10px!important}
.coupon-box>div{height:66px!important;border-radius:21px!important;padding-inline:15px!important}
.coupon-box button{height:66px!important;border-radius:21px!important;font-size:16px!important}
.lookup-row .input,.faq-search,.station-searchbox input{min-height:62px!important;height:62px!important;border-radius:20px!important}
.payment-input{height:68px!important;min-height:68px!important;border-radius:22px!important}.payment-input input{font-size:16px!important}
@media(max-width:520px){
  .fare-options{gap:12px!important}.fare-choice:not(.selected){min-height:72px!important;border-radius:23px!important}.fare-choice:not(.selected) .fare-title{min-height:72px!important;padding:0 18px!important}.fare-choice:not(.selected) .fare-title b{font-size:19px!important}.fare-choice:not(.selected) .fare-title strong{font-size:20px!important}.fare-choice.selected .fare-title{padding:17px 17px 10px!important}.fare-benefits span{font-size:13px!important;padding:5px 10px!important}.fare-benefits span i{width:20px!important;height:20px!important;flex-basis:20px!important}
  .passenger-accordions{padding-inline:18px!important}.traveller-card{border-radius:26px!important}.traveller-summary{height:108px!important;min-height:108px!important}.traveller-body{padding-inline:15px!important;padding-bottom:22px!important}.traveller-body .input,.phone-field{height:66px!important;min-height:66px!important;border-radius:20px!important}.identity-tabs button{height:52px!important;min-height:52px!important;font-size:13px!important}.add-passenger-data{height:66px!important;min-height:66px!important;font-size:18px!important}.payment-input{height:66px!important;min-height:66px!important;border-radius:21px!important;padding-inline:14px!important}.payment-input input{font-size:16px!important}.compact-field,.sat-field,.sat-date-field{font-size:16px!important}
}
@media(max-width:380px){.fare-choice:not(.selected) .fare-title b{font-size:18px!important}.fare-choice:not(.selected) .fare-title strong{font-size:19px!important}.two-cols{gap:9px!important}.traveller-body .input,.phone-field{height:62px!important;min-height:62px!important;padding-inline:13px!important}.traveller-body label{font-size:16px!important}.identity-tabs button{font-size:12px!important;padding-inline:5px!important}.payment-input{height:62px!important;min-height:62px!important}}


/* v4.3 home header refinement to match original SAT app top area */
.sat-appbar{max-width:760px;padding:40px 32px 18px;height:auto;min-height:158px;align-items:flex-start}.welcome-block{flex-direction:row;gap:16px;align-items:center}.welcome-block span{display:block;color:#8d8d8d;font-size:18px;line-height:1}.profile-circle{flex:0 0 auto;width:88px;height:88px;border-radius:50%;background:#fdf3db}.profile-circle img{width:44px;height:44px}.language-pill{height:92px;min-width:230px;padding:0 24px;border-radius:34px;background:#fdf3db;font-size:28px;font-weight:500;gap:14px;justify-content:center;box-shadow:none}.language-pill img{width:38px;height:38px}.sat-home{max-width:760px;padding:0 32px 106px}.sat-service-tabs{margin:4px 0 28px;gap:18px}.sat-service-tabs button{height:74px;border-radius:38px;font-size:23px;font-weight:600;border:2px solid #d7d9dc;background:#fff}.sat-service-tabs button.active{border-color:#45c2d9;color:#45c2d9}.sat-booking-card{border-radius:34px}.sat-trip-tabs{height:92px}.sat-trip-tabs .tab{font-size:24px}.sat-trip-tabs .tab.active .tab-check{width:42px;height:42px;font-size:26px;margin-right:10px;margin-left:0}.sat-trip-tabs .tab:first-child{border-radius:0 34px 0 0}.sat-trip-tabs .tab:last-child{border-radius:34px 0 0 0}
@media (max-width:520px){.sat-appbar{padding:24px 20px 14px;min-height:118px;max-width:430px}.welcome-block{gap:10px}.welcome-block span{font-size:16px}.profile-circle{width:66px;height:66px}.profile-circle img{width:34px;height:34px}.language-pill{min-width:176px;height:72px;border-radius:28px;padding:0 18px;font-size:22px;gap:10px}.language-pill img{width:31px;height:31px}.sat-home{max-width:430px;padding:0 16px 96px}.sat-service-tabs{margin:2px 0 24px;gap:14px}.sat-service-tabs button{height:58px;border-radius:30px;font-size:18px;padding:0 10px}.sat-booking-card{border-radius:28px}.sat-trip-tabs{height:80px}.sat-trip-tabs .tab{font-size:20px}.sat-trip-tabs .tab.active .tab-check{width:35px;height:35px;font-size:22px;margin-right:8px}.sat-trip-tabs .tab:first-child{border-radius:0 28px 0 0}.sat-trip-tabs .tab:last-child{border-radius:28px 0 0 0}}


/* SAT Web 4.4 — final home scale, RTL header and fixed-navigation calibration */

body[data-screen="home"] .sat-appbar{
  direction:ltr!important;
  width:100%!important;
  max-width:430px!important;
  min-height:102px!important;
  height:102px!important;
  margin:0 auto!important;
  padding:16px 18px 10px!important;
  align-items:center!important;
  background:#fff!important;
}
body[data-screen="home"] .welcome-block{
  direction:rtl!important;
  flex-direction:row!important;
  align-items:center!important;
  gap:9px!important;
  min-width:0!important;
}
body[data-screen="home"] .welcome-block span{
  font-size:15px!important;
  line-height:1.2!important;
  font-weight:400!important;
  color:#777!important;
  white-space:nowrap!important;
}
body[data-screen="home"] .profile-circle{
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  flex-basis:58px!important;
  border-radius:50%!important;
  background:#fff3db!important;
}
body[data-screen="home"] .profile-circle img{
  width:31px!important;
  height:31px!important;
}
body[data-screen="home"] .language-pill{
  width:145px!important;
  min-width:145px!important;
  height:58px!important;
  padding:0 16px!important;
  border-radius:27px!important;
  gap:9px!important;
  direction:ltr!important;
  background:#fff3db!important;
  color:#111!important;
  font-size:20px!important;
  font-family:Poppins,Arial,sans-serif!important;
  font-weight:400!important;
  line-height:1!important;
}
body[data-screen="home"] .language-pill img{
  width:28px!important;
  height:28px!important;
}

body[data-screen="home"] .sat-home{
  width:100%!important;
  max-width:430px!important;
  padding:0 14px 126px!important;
}
body[data-screen="home"] .sat-service-tabs{
  direction:rtl!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
  margin:2px 0 18px!important;
  padding:0!important;
}
body[data-screen="home"] .sat-service-tabs button{
  height:52px!important;
  min-height:52px!important;
  padding:0 8px!important;
  border-radius:27px!important;
  border-width:1.5px!important;
  font-size:17px!important;
  font-weight:500!important;
  white-space:nowrap!important;
  line-height:1.2!important;
}
body[data-screen="home"] .sat-service-tabs button.active{
  border-width:2px!important;
}

body[data-screen="home"] .sat-booking-card{
  margin:0!important;
  border-radius:25px!important;
  box-shadow:0 5px 22px rgba(20,30,38,.10)!important;
  overflow:visible!important;
}
body[data-screen="home"] .sat-trip-tabs{
  height:68px!important;
  min-height:68px!important;
  margin:0!important;
  gap:0!important;
  border-bottom:1px solid #ddd!important;
}
body[data-screen="home"] .sat-trip-tabs .tab{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:0 7px!important;
  font-size:18px!important;
  line-height:1.2!important;
  font-weight:400!important;
}
body[data-screen="home"] .sat-trip-tabs .tab.active{
  font-weight:500!important;
}
body[data-screen="home"] .sat-trip-tabs .tab.active .tab-check{
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  margin:0!important;
  font-size:20px!important;
}
body[data-screen="home"] .sat-trip-tabs .tab.active:after{
  height:3px!important;
}
body[data-screen="home"] .sat-trip-tabs .tab:first-child{border-radius:0 25px 0 0!important}
body[data-screen="home"] .sat-trip-tabs .tab:last-child{border-radius:25px 0 0 0!important}

body[data-screen="home"] .booking-content{
  position:relative!important;
  padding:17px 16px 22px!important;
}
body[data-screen="home"] .field-label{
  margin:0 2px 5px!important;
  font-size:17px!important;
  line-height:1.35!important;
  font-weight:400!important;
  color:#111!important;
}
body[data-screen="home"] .field-label.date-label{
  margin-top:15px!important;
}
body[data-screen="home"] .sat-field,
body[data-screen="home"] .sat-date-field,
body[data-screen="home"] .compact-field{
  height:58px!important;
  min-height:58px!important;
  border-radius:17px!important;
  border-width:1px!important;
  padding:0 15px!important;
  gap:10px!important;
  background:#fff!important;
}
body[data-screen="home"] .sat-field .leading-icon,
body[data-screen="home"] .sat-date-field img,
body[data-screen="home"] .compact-field img{
  width:25px!important;
  height:25px!important;
  object-fit:contain!important;
}
body[data-screen="home"] .sat-field b,
body[data-screen="home"] .sat-date-field b,
body[data-screen="home"] .compact-field b{
  font-size:16px!important;
  font-weight:400!important;
  line-height:1.3!important;
}
body[data-screen="home"] .sat-field .arrow{
  width:14px!important;
  height:14px!important;
  flex:0 0 14px!important;
}
body[data-screen="home"] .sat-swap{
  position:absolute!important;
  top:142px!important;
  left:31px!important;
  right:auto!important;
  width:48px!important;
  height:48px!important;
  margin:0!important;
  border:0!important;
  border-radius:50%!important;
  background:#efb632!important;
  box-shadow:none!important;
  z-index:4!important;
}
body[data-screen="home"] .sat-swap img{
  width:25px!important;
  height:25px!important;
}
body[data-screen="home"] .compact-labels{
  margin:18px 2px 7px!important;
  gap:10px!important;
}
body[data-screen="home"] .compact-labels label{
  font-size:17px!important;
  font-weight:400!important;
  line-height:1.25!important;
}
body[data-screen="home"] .compact-fields{
  gap:10px!important;
}
body[data-screen="home"] .direct-row{
  margin:18px 2px 15px!important;
  gap:9px!important;
  font-size:16px!important;
  font-weight:400!important;
}
body[data-screen="home"] .custom-check{
  width:25px!important;
  height:25px!important;
  border-radius:6px!important;
  font-size:17px!important;
}
body[data-screen="home"] .sat-search-btn{
  height:58px!important;
  min-height:58px!important;
  border-radius:18px!important;
  font-size:18px!important;
  font-weight:500!important;
  gap:9px!important;
}
body[data-screen="home"] .sat-search-btn img{
  width:25px!important;
  height:25px!important;
}

body[data-screen="home"] .bottom-nav{
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
  width:100%!important;
  max-width:430px!important;
  height:70px!important;
  min-height:70px!important;
  padding:4px 8px calc(3px + env(safe-area-inset-bottom))!important;
  background:#fff!important;
  z-index:110!important;
}
body[data-screen="home"] .bottom-nav button{
  min-width:0!important;
  padding:2px 5px!important;
  gap:1px!important;
  font-size:11px!important;
  line-height:1.15!important;
}
body[data-screen="home"] .bottom-nav button img{
  width:28px!important;
  height:28px!important;
}
body[data-screen="home"] .chatbot-fab{
  left:max(16px,calc(50% - 199px))!important;
  right:auto!important;
  bottom:82px!important;
  width:56px!important;
  height:56px!important;
  z-index:105!important;
  border-radius:50%!important;
}
body[data-screen="home"] .chatbot-fab img{
  width:44px!important;
  height:44px!important;
}
body[data-screen="home"] .chatbot-welcome{
  position:absolute;
  left:44px;
  bottom:44px;
  width:max-content;
  max-width:min(310px,calc(100vw - 92px));
  padding:12px 20px;
  border-radius:22px 22px 22px 5px;
  background:#ebb334;
  color:#3f3f3f;
  font-size:20px;
  font-weight:400;
  line-height:1.5;
  direction:rtl;
  white-space:nowrap;
  box-shadow:0 7px 22px rgba(0,0,0,.13);
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity .25s ease,transform .25s ease,visibility .25s;
  pointer-events:none;
}
body[data-screen="home"] .chatbot-welcome::after{
  content:"";
  position:absolute;
  left:13px;
  bottom:-14px;
  border-style:solid;
  border-width:15px 12px 0 0;
  border-color:#ebb334 transparent transparent transparent;
}
body[data-screen="home"] .chatbot-welcome.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.modal.open ~ #app .chatbot-fab,
body:has(.modal.open) .chatbot-fab,
body:has(.sat-chat-overlay.open) .chatbot-fab{
  visibility:hidden!important;
  pointer-events:none!important;
}

@media(max-width:380px){
  body[data-screen="home"] .chatbot-welcome{
    left:39px;
    bottom:39px;
    max-width:calc(100vw - 76px);
    padding:10px 15px;
    border-radius:18px 18px 18px 5px;
    font-size:17px;
  }
  body[data-screen="home"] .sat-appbar{height:96px!important;min-height:96px!important;padding:14px 14px 8px!important}
  body[data-screen="home"] .language-pill{width:132px!important;min-width:132px!important;height:54px!important;font-size:18px!important;padding:0 13px!important}
  body[data-screen="home"] .language-pill img{width:25px!important;height:25px!important}
  body[data-screen="home"] .profile-circle{width:54px!important;height:54px!important;min-width:54px!important;flex-basis:54px!important}
  body[data-screen="home"] .profile-circle img{width:29px!important;height:29px!important}
  body[data-screen="home"] .welcome-block span{font-size:14px!important}
  body[data-screen="home"] .sat-home{padding-inline:10px!important}
  body[data-screen="home"] .sat-service-tabs button{height:49px!important;min-height:49px!important;font-size:15px!important}
  body[data-screen="home"] .sat-trip-tabs{height:64px!important;min-height:64px!important}
  body[data-screen="home"] .sat-trip-tabs .tab{font-size:16px!important}
  body[data-screen="home"] .sat-trip-tabs .tab.active .tab-check{width:29px!important;height:29px!important;min-width:29px!important;font-size:18px!important}
  body[data-screen="home"] .booking-content{padding-inline:13px!important}
  body[data-screen="home"] .field-label{font-size:16px!important}
  body[data-screen="home"] .sat-field,
  body[data-screen="home"] .sat-date-field,
  body[data-screen="home"] .compact-field{height:55px!important;min-height:55px!important;padding-inline:13px!important}
  body[data-screen="home"] .sat-field b,
  body[data-screen="home"] .sat-date-field b,
  body[data-screen="home"] .compact-field b{font-size:15px!important}
  body[data-screen="home"] .sat-swap{top:136px!important;left:27px!important;width:46px!important;height:46px!important}
  body[data-screen="home"] .compact-labels label{font-size:16px!important}
  body[data-screen="home"] .direct-row{font-size:15px!important}
  body[data-screen="home"] .sat-search-btn{height:55px!important;min-height:55px!important;font-size:17px!important}
}

/* v4.4.1 precise vertical placement for the station swap control */
body[data-screen="home"] .sat-swap + .field-label{margin-top:10px!important}
body[data-screen="home"] .sat-swap{top:98px!important}
@media(max-width:380px){body[data-screen="home"] .sat-swap{top:94px!important}}

/* Simple trip summary shown during review and payment. */
.review-trip-summary{
  border:1px solid #e1e3e7;
  border-radius:20px;
  background:#fff;
  padding:8px 18px;
}
.review-trip-summary p{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin:0;
  padding:14px 0;
  border-bottom:1px solid #eceef1;
  font-size:18px;
}
.review-trip-summary p:last-child{border-bottom:0}
.review-trip-summary span{color:#6e737c;white-space:nowrap}
.review-trip-summary b{font-weight:500;text-align:left;line-height:1.65}
.review-trip-summary p.total b{color:#a6802d;font-size:21px}

@media(max-width:520px){
  .review-trip-summary{padding:6px 14px;border-radius:18px}
  .review-trip-summary p{gap:12px;padding:12px 0;font-size:15px}
  .review-trip-summary b{max-width:62%;font-size:15px}
  .review-trip-summary p.total b{font-size:18px}
}


/* SAT Web 4.5 — original-app calendar, header/icon scale and form text colors */
#calendarModal{z-index:1000!important;align-items:flex-end!important}
body.modal-open .bottom-nav{visibility:hidden!important;pointer-events:none!important}
.calendar-card{
  width:min(100%,430px)!important;
  max-height:calc(100dvh - 46px)!important;
  padding:10px 18px calc(18px + env(safe-area-inset-bottom))!important;
  border-radius:34px 34px 0 0!important;
  overflow:auto!important;
  background:#fff!important;
}
.calendar-card .sheet-handle{width:132px!important;height:6px!important;margin:0 auto 20px!important;border-radius:99px!important;background:#050505!important}
.calendar-sheet-head{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;min-height:58px!important;margin-bottom:20px!important}
.calendar-sheet-head h3{margin:0!important;font-size:24px!important;font-weight:500!important;color:#111!important;line-height:1.3!important;text-align:center!important}
.calendar-close{position:absolute!important;left:0!important;top:50%!important;transform:translateY(-50%)!important;width:48px!important;height:48px!important;border:1px solid #dedede!important;border-radius:50%!important;background:#fff!important;color:#111!important;font-size:34px!important;font-weight:300!important;line-height:1!important;display:grid!important;place-items:center!important}
.calendar-month-row{display:grid!important;grid-template-columns:54px 1fr 54px!important;align-items:center!important;gap:12px!important;margin:8px 14px 22px!important}
.calendar-month-row h4{margin:0!important;font-size:18px!important;font-weight:400!important;color:#343434!important;text-align:center!important;direction:rtl!important}
.calendar-nav{width:48px!important;height:48px!important;border:0!important;border-radius:50%!important;background:#efb632!important;color:#111!important;font-size:30px!important;font-weight:400!important;display:grid!important;place-items:center!important;padding:0!important;line-height:1!important}
.calendar-card .weekdays,.calendar-card .calendar-grid{direction:rtl!important;display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:10px 6px!important;text-align:center!important}
.calendar-card .weekdays{margin:0 0 14px!important;color:#686868!important;font-size:13px!important;font-weight:400!important}
.calendar-card .weekdays span{white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important}
.calendar-card .calendar-grid{margin-bottom:18px!important}
.calendar-card .calendar-day{width:42px!important;height:42px!important;aspect-ratio:auto!important;justify-self:center!important;border:1px solid #e2e2e2!important;border-radius:50%!important;background:#fff!important;color:#111!important;font-size:15px!important;font-weight:400!important;padding:0!important;display:grid!important;place-items:center!important}
.calendar-card .calendar-day.calendar-empty{border-color:transparent!important;background:transparent!important}
.calendar-card .calendar-day.disabled{color:#d6d6d6!important;border-color:#eeeeee!important;background:#fff!important;opacity:.8!important}
.calendar-card .calendar-day.today{background:#fff5da!important;border-color:#fff5da!important;color:#111!important}
.calendar-card .calendar-day.selected{background:#efb632!important;border-color:#efb632!important;color:#111!important;box-shadow:none!important}
.calendar-footer{display:block!important;position:sticky!important;bottom:0!important;margin:10px 0 0!important;padding-top:12px!important;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 22%)!important;z-index:3!important}
.calendar-footer .primary{height:58px!important;min-height:58px!important;border-radius:18px!important;background:#f3d993!important;color:#111!important;font-size:19px!important;font-weight:500!important;box-shadow:none!important}

body[data-screen="home"] .sat-appbar{height:104px!important;min-height:104px!important;padding:17px 18px 10px!important}
body[data-screen="home"] .language-pill{width:144px!important;min-width:144px!important;height:58px!important;border-radius:27px!important;font-size:20px!important;color:#111!important;background:#fff3d8!important}
body[data-screen="home"] .language-pill img{width:28px!important;height:28px!important;filter:brightness(0)!important}
body[data-screen="home"] .profile-circle{width:58px!important;height:58px!important;min-width:58px!important;background:#fff3d8!important}
body[data-screen="home"] .profile-circle img{width:31px!important;height:31px!important;filter:brightness(0)!important}
body[data-screen="home"] .welcome-block span{font-size:15px!important;color:#747474!important;font-weight:400!important}
body[data-screen="home"] .sat-service-tabs button{font-size:17px!important;font-weight:400!important;color:#111!important}
body[data-screen="home"] .sat-service-tabs button.active{color:#42bfd5!important;font-weight:500!important}
body[data-screen="home"] .sat-trip-tabs .tab{font-size:18px!important;font-weight:400!important;color:#111!important}
body[data-screen="home"] .sat-trip-tabs .tab.active{color:#42bfd5!important;font-weight:500!important}
body[data-screen="home"] .field-label,body[data-screen="home"] .compact-labels label{color:#111!important;font-weight:400!important}
body[data-screen="home"] .sat-field b{color:#777b80!important}
body[data-screen="home"] .sat-field.has-value b{color:#1e1e1e!important}
body[data-screen="home"] .sat-date-field b,body[data-screen="home"] .compact-field b{color:#262626!important}
body[data-screen="home"] .sat-field .leading-icon{opacity:.72!important;filter:grayscale(1) brightness(.62)!important}
body[data-screen="home"] .sat-date-field>img{opacity:.9!important;filter:grayscale(1) brightness(.32)!important}
body[data-screen="home"] .compact-field>img{opacity:.82!important;filter:grayscale(1) brightness(.45)!important}
body[data-screen="home"] .sat-field .arrow{opacity:.9!important;filter:brightness(.25)!important}

@media(max-width:380px){
  .calendar-card{padding-inline:14px!important}
  .calendar-sheet-head h3{font-size:22px!important}
  .calendar-close{width:44px!important;height:44px!important;font-size:31px!important}
  .calendar-month-row{grid-template-columns:48px 1fr 48px!important;margin-inline:8px!important}
  .calendar-nav{width:44px!important;height:44px!important}
  .calendar-card .weekdays{font-size:11.5px!important}
  .calendar-card .calendar-grid{gap:8px 3px!important}
  .calendar-card .calendar-day{width:39px!important;height:39px!important;font-size:14px!important}
  .calendar-footer .primary{height:55px!important;min-height:55px!important;font-size:18px!important}
  body[data-screen="home"] .language-pill{width:132px!important;min-width:132px!important;height:54px!important;font-size:18px!important}
  body[data-screen="home"] .profile-circle{width:54px!important;height:54px!important;min-width:54px!important}
}

/* SAT Web 4.6 — seats, passenger fields and payment refinement */
@media(max-width:520px){
  .passenger-accordions{padding:20px 16px 126px!important}
  .traveller-card{border-radius:28px!important}
  .traveller-summary{height:96px!important;min-height:96px!important;grid-template-columns:24px 98px 1fr 48px!important;padding:0 14px!important}
  .traveller-summary b{font-size:17px!important;font-weight:600!important}
  .traveller-summary small{font-size:13px!important;color:#7b7b7b!important}
  .traveller-status{font-size:13px!important;padding:10px 12px!important;min-width:92px!important;border-radius:16px!important}
  .traveller-avatar{width:46px!important;height:46px!important;border-radius:14px!important}
  .traveller-body{padding:0 14px 18px!important}
  .traveller-body label{font-size:16px!important;line-height:1.35!important;margin:14px 2px 7px!important;color:#161616!important}
  .traveller-body .input,.phone-field{height:58px!important;min-height:58px!important;border-radius:18px!important;padding-inline:16px!important;font-size:15px!important;color:#111!important;background:#fff!important}
  .traveller-body .input::placeholder,.phone-field input::placeholder{color:#9f9f9f!important}
  .traveller-body select.input{padding-inline:16px 40px!important;background-position:left 14px center!important}
  .two-cols{gap:10px!important}
  .identity-tabs{gap:8px!important;margin:16px 0!important}
  .identity-tabs button{height:48px!important;min-height:48px!important;border-radius:18px!important;font-size:13px!important;padding-inline:8px!important}
  .add-passenger-data{height:58px!important;min-height:58px!important;border-radius:18px!important;font-size:18px!important;margin-top:18px!important}
  .flow-bottom{padding:10px 16px calc(12px + env(safe-area-inset-bottom))!important}
  .flow-primary{height:58px!important;min-height:58px!important;border-radius:18px!important;font-size:18px!important}

  .seat-trip-summary{padding:18px 16px!important}
  .seat-trip-summary b{font-size:20px!important}
  .seat-trip-summary small{font-size:14px!important}
  .seat-section-title{font-size:22px!important;padding:18px 16px 8px!important}
  .seat-legend.original{padding:0 16px 16px!important;font-size:13px!important;gap:14px!important}
  .seat-key{width:24px!important;height:24px!important;border-radius:8px!important;margin-left:6px!important}
  .original-bus{width:calc(100% - 32px)!important;margin:0 16px 108px!important;padding:18px 18px 28px!important;border-radius:28px!important;box-shadow:0 8px 26px rgba(18,24,40,.08)!important}
  .driver-wheel{margin-bottom:22px!important}
  .driver-wheel img{width:68px!important;height:68px!important}
  .original-grid{grid-template-columns:repeat(4,52px)!important;justify-content:space-between!important;gap:16px 8px!important;max-width:320px!important;margin-inline:auto!important}
  .original-grid .seat-box:nth-child(4n+2){margin-left:28px!important}
  .seat-box{width:52px!important;height:62px!important;border:2px solid #2c5df0!important;border-radius:15px!important;background:#fff!important;position:relative!important;color:#111!important;font-size:16px!important;font-weight:500!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:none!important}
  .seat-box:after{content:''!important;position:absolute!important;left:8px!important;right:8px!important;bottom:5px!important;height:10px!important;border-radius:8px!important;background:#ece8fb!important}
  .seat-box span{position:relative!important;z-index:2!important;font-size:16px!important;line-height:1!important}
  .seat-box.reserved,.seat-box.pending{background:#6b6b6b!important;border-color:#5f5f5f!important;color:#111!important}
  .seat-box.reserved:after,.seat-box.pending:after{display:none!important}
  .seat-box.selected{background:#fff!important;border-color:#2c5df0!important;box-shadow:0 0 0 2px rgba(44,93,240,.10)!important}
  .seat-box.selected:after{display:block!important;background:#ece8fb!important}

  #screen-payment .payment-panel{padding:22px 16px 122px!important}
  .payment-panel>h3{font-size:22px!important;font-weight:500!important;margin:18px 0 14px!important}
  .payment-choice{height:78px!important;min-height:78px!important;grid-template-columns:84px minmax(0,1fr) 24px!important;padding:0 16px!important;border-radius:22px!important;border:1px solid #d9dde3!important;background:#fff!important;box-shadow:none!important;font-size:17px!important;margin-bottom:12px!important}
  .payment-choice>img,.payment-choice>.card-logos{max-width:74px!important;max-height:34px!important}
  .payment-choice>span:nth-child(2){font-size:17px!important;font-weight:500!important;color:#232323!important}
  .payment-choice i{font-size:30px!important;color:#222!important}
  .payment-choice.active{border-color:#deb04a!important;box-shadow:0 0 0 1px rgba(222,176,74,.14)!important}
  #screen-payment .price-box{padding:16px 18px!important;border-radius:18px!important;background:#f4f5f8!important}
  #screen-payment .price-box p{font-size:16px!important}
  #screen-payment .price-box p.total{font-size:18px!important}
  #screen-payment #payBtn{height:58px!important;min-height:58px!important;border-radius:18px!important;font-size:20px!important}

  .card-payment-sheet{max-height:88dvh!important;border-radius:30px 30px 0 0!important;padding:12px 16px calc(16px + env(safe-area-inset-bottom))!important}
  .card-payment-head{padding-inline:52px!important;margin-bottom:8px!important}
  .card-payment-head h3{font-size:24px!important;font-weight:500!important}
  .card-payment-close{width:48px!important;height:48px!important;border-radius:50%!important;border:1px solid #dfdfdf!important;background:#fff!important;display:grid!important;place-items:center!important;font-size:32px!important;line-height:1!important}
  .card-payment-sheet label{font-size:17px!important;margin:12px 0 8px!important;color:#222!important}
  .payment-input{height:60px!important;min-height:60px!important;border-radius:22px!important;padding-inline:16px!important;border:1.5px solid #8d8d8d!important;background:#fff!important;display:flex!important;align-items:center!important;gap:12px!important}
  .payment-input:focus-within{border-color:#d9aa3f!important;box-shadow:0 0 0 1px rgba(217,170,63,.12)!important}
  .payment-input.invalid{border-color:#d9534f!important}
  .payment-input img{width:32px!important;height:32px!important;flex:0 0 32px!important;object-fit:contain!important}
  .payment-input input{font-size:16px!important;color:#2a2a2a!important}
  .payment-input input::placeholder{color:#a0a0a0!important}
  #cardNumber,#cardExpiry,#cardCvv{direction:ltr!important;text-align:left!important}
  #cardHolder{text-align:right!important}
  .payment-two-cols{grid-template-columns:1fr 1fr!important;gap:12px!important}
  .card-pay-footer{display:flex!important;flex-direction:row-reverse!important;align-items:center!important;gap:14px!important;margin-top:18px!important;padding:10px 0 calc(2px + env(safe-area-inset-bottom))!important;direction:rtl!important}
  .card-pay-footer strong{flex:1 1 auto!important;font-size:24px!important;white-space:nowrap!important;text-align:right!important;color:#111!important}
  .card-pay-footer button{flex:0 0 49%!important;height:56px!important;border-radius:18px!important;font-size:18px!important;background:#e2b23b!important;color:#111!important;box-shadow:none!important}
}


/* SAT Web 4.7 — pixel-match pass for seats, passengers and payment */
@media(max-width:520px){
  /* Passenger card and controls: closer vertical density to the native app. */
  .passenger-accordions{padding:24px 18px 118px!important}
  .traveller-card{border-radius:24px!important;border:1px solid #ddd!important;box-shadow:none!important}
  .traveller-summary{height:82px!important;min-height:82px!important;grid-template-columns:26px 96px 1fr 48px!important;padding:0 13px!important}
  .traveller-chevron{font-size:24px!important}
  .traveller-status{min-width:88px!important;height:46px!important;padding:0 10px!important;border-radius:14px!important;display:grid!important;place-items:center!important;font-size:13px!important;background:#f5f5f8!important}
  .traveller-summary b{font-size:16px!important;font-weight:600!important}
  .traveller-summary small{font-size:12px!important;color:#777!important}
  .traveller-avatar{width:44px!important;height:44px!important;border-radius:13px!important;background:#fff4dc!important}
  .traveller-body{padding:0 13px 18px!important}
  .traveller-body label{font-size:15px!important;font-weight:500!important;line-height:1.35!important;margin:13px 2px 6px!important;color:#111!important}
  .traveller-body .input,.phone-field{height:52px!important;min-height:52px!important;border-radius:17px!important;padding-inline:15px!important;font-size:14px!important;border:1px solid #d9d9d9!important;background:#fff!important}
  .traveller-body .input::placeholder,.phone-field input::placeholder{color:#a1a1a1!important}
  .traveller-body select.input{padding-inline:15px 38px!important;background-position:left 13px center!important}
  .two-cols{gap:10px!important}
  .identity-tabs{gap:8px!important;margin:15px 0!important}
  .identity-tabs button{height:46px!important;min-height:46px!important;border-radius:18px!important;font-size:12.5px!important;padding:0 7px!important}
  .add-passenger-data{height:54px!important;min-height:54px!important;border-radius:18px!important;font-size:17px!important;margin-top:17px!important}
  .flow-bottom{padding:10px 18px calc(12px + env(safe-area-inset-bottom))!important}
  .flow-primary{height:54px!important;min-height:54px!important;border-radius:18px!important;font-size:18px!important}

  /* Exact 2+2 bus layout, with a five-seat last row for the 45-seat bus. */
  .original-bus{width:calc(100% - 36px)!important;margin:0 18px 104px!important;padding:20px 16px 30px!important;border-radius:27px!important;box-shadow:0 8px 28px rgba(20,28,42,.08)!important}
  .driver-wheel{margin-bottom:20px!important;padding-inline:8px!important}
  .driver-wheel img{width:64px!important;height:64px!important}
  .original-grid{display:grid!important;grid-template-columns:38px 38px 62px 38px 38px!important;grid-auto-rows:44px!important;grid-auto-flow:row!important;justify-content:center!important;align-items:center!important;gap:12px 17px!important;direction:ltr!important;max-width:none!important;margin:auto!important;padding-top:0!important}
  .original-grid .seat-box{width:38px!important;height:42px!important;min-width:38px!important;min-height:42px!important;border:1.8px solid #2a5ff0!important;border-radius:11px!important;background:#fff!important;color:#111!important;font-size:13px!important;font-weight:500!important;padding:0!important;margin:0!important;display:grid!important;place-items:center!important}
  .original-grid .seat-box:after{left:5px!important;right:5px!important;bottom:3px!important;height:7px!important;border-radius:6px!important;background:#eeebff!important}
  .original-grid .seat-box span{font-size:13px!important;line-height:1!important}
  .original-grid .seat-box:nth-child(4n+1){grid-column:5!important}
  .original-grid .seat-box:nth-child(4n+2){grid-column:4!important;margin-left:0!important}
  .original-grid .seat-box:nth-child(4n+3){grid-column:1!important}
  .original-grid .seat-box:nth-child(4n+4){grid-column:2!important}
  .original-grid .seat-box[data-seat="41"]{grid-column:1!important;grid-row:11!important}
  .original-grid .seat-box[data-seat="42"]{grid-column:2!important;grid-row:11!important}
  .original-grid .seat-box[data-seat="43"]{grid-column:5!important;grid-row:11!important}
  .original-grid .seat-box[data-seat="44"]{grid-column:4!important;grid-row:11!important}
  .original-grid .seat-box[data-seat="45"]{grid-column:3!important;grid-row:11!important}
  .original-grid .seat-box.reserved,.original-grid .seat-box.pending{background:#686868!important;border-color:#565656!important;color:#111!important}
  .original-grid .seat-box.reserved:after,.original-grid .seat-box.pending:after{display:none!important}
  .original-grid .seat-box.selected{background:#efb632!important;border-color:#d39c18!important;color:#111!important}
  .original-grid .seat-box.selected:after{background:#ffe7a0!important}
  .seat-section-title{font-size:21px!important;padding:18px 18px 6px!important}
  .seat-legend.original{padding:0 18px 14px!important;font-size:12px!important;gap:14px!important}
  .seat-key{width:22px!important;height:22px!important;border-radius:7px!important;margin-left:5px!important}

  /* Payment methods: only the methods shown in the supplied native-app reference. */
  #screen-payment .payment-panel{padding:24px 18px 112px!important}
  .payment-panel>h3{font-size:22px!important;font-weight:500!important;margin:16px 0 14px!important}
  .payment-choice{height:64px!important;min-height:64px!important;grid-template-columns:76px minmax(0,1fr) 22px!important;padding:0 15px!important;border-radius:20px!important;border:1px solid #d8d8d8!important;background:#fff!important;margin-bottom:10px!important;box-shadow:none!important}
  .payment-choice>img,.payment-choice>.card-logos{max-width:68px!important;max-height:30px!important}
  .payment-choice>span:nth-child(2){font-size:16px!important;font-weight:400!important;color:#333!important}
  .payment-choice i{font-size:28px!important;color:#222!important}
  .payment-choice[data-method="tamara"]{display:none!important}
  #screen-payment #payBtn{display:none!important}
  #screen-payment .price-box{margin-top:8px!important;padding:14px 16px!important;border-radius:17px!important;background:#f4f5f8!important}
  #screen-payment .price-box p{font-size:15px!important;margin:7px 0!important}
  #screen-payment .price-box p.total{font-size:18px!important;margin-top:18px!important}

  /* Card sheet: smaller controls, exact footer arrangement and live card brand. */
  .card-payment-sheet{max-height:86dvh!important;border-radius:30px 30px 0 0!important;padding:12px 18px calc(14px + env(safe-area-inset-bottom))!important}
  .card-payment-sheet .sheet-handle{width:130px!important;height:6px!important;margin-bottom:14px!important}
  .card-payment-head{padding-inline:52px!important;margin-bottom:4px!important}
  .card-payment-head h3{font-size:23px!important;font-weight:500!important}
  .card-payment-close{width:46px!important;height:46px!important;font-size:30px!important;border:1px solid #ddd!important;background:#fff!important}
  .card-payment-sheet label{font-size:16px!important;font-weight:500!important;margin:11px 0 7px!important;color:#222!important}
  .payment-input{height:54px!important;min-height:54px!important;border-radius:21px!important;padding-inline:14px!important;border:1.4px solid #8f8f8f!important;gap:10px!important}
  .payment-input:focus-within{border-color:#dfae39!important;box-shadow:0 0 0 1px rgba(223,174,57,.14)!important}
  .payment-input img{width:29px!important;height:29px!important;flex-basis:29px!important;object-fit:contain!important}
  #cardBrandIcon[data-brand="mada"]{width:58px!important;height:28px!important;flex-basis:58px!important}
  #cardBrandIcon[data-brand="visa"]{width:48px!important;height:26px!important;flex-basis:48px!important}
  #cardBrandIcon[data-brand="mastercard"]{width:45px!important;height:27px!important;flex-basis:45px!important}
  #cardBrandIcon[data-brand="amex"]{width:42px!important;height:28px!important;flex-basis:42px!important}
  .payment-input input{font-size:15px!important;color:#222!important}
  .payment-two-cols{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .card-pay-footer{display:flex!important;flex-direction:row-reverse!important;align-items:center!important;gap:12px!important;margin-top:18px!important;padding:8px 0 calc(2px + env(safe-area-inset-bottom))!important}
  .card-pay-footer strong{flex:1!important;font-size:23px!important;text-align:right!important;color:#111!important;white-space:nowrap!important}
  .card-pay-footer button{flex:0 0 49%!important;height:54px!important;border-radius:18px!important;font-size:18px!important;background:#e4b338!important;color:#111!important;box-shadow:none!important}
}

@media(max-width:370px){
  .original-grid{grid-template-columns:35px 35px 56px 35px 35px!important;gap:11px 14px!important}
  .original-grid .seat-box{width:35px!important;height:40px!important;min-width:35px!important;min-height:40px!important}
  .payment-choice{grid-template-columns:68px minmax(0,1fr) 20px!important;padding-inline:12px!important}
  .payment-choice>span:nth-child(2){font-size:15px!important}
  .traveller-body .input,.phone-field{height:50px!important;min-height:50px!important}
}


/* SAT Web 4.8 — secure hosted 3-D Secure handoff */
.secure-auth-modal{z-index:1300!important;align-items:flex-end!important}
.secure-auth-sheet{width:min(100%,620px)!important;min-height:430px!important;border-radius:32px 32px 0 0!important;padding:14px 24px calc(28px + env(safe-area-inset-bottom))!important;text-align:center!important;background:#fff!important}
.secure-auth-sheet .sheet-handle{width:132px!important;height:6px!important;margin:0 auto 14px!important;border-radius:99px!important;background:#050505!important}
.secure-auth-lottie{width:min(100%,350px)!important;height:250px!important;margin:0 auto!important;display:grid!important;place-items:center!important}
.secure-processing-fallback{width:120px;max-height:76px;object-fit:contain;animation:pulse 1.1s ease-in-out infinite}
.secure-auth-sheet h3{margin:4px 0 8px!important;font-size:23px!important;font-weight:600!important;color:#151515!important}
.secure-auth-sheet p{margin:0 auto!important;max-width:480px!important;font-size:15px!important;line-height:1.8!important;color:#666!important}
.secure-auth-status{min-height:56px!important;margin:14px 0 0!important;padding:12px 14px!important;border-radius:16px!important;background:#fff8e7!important;color:#6f561d!important;font-size:14px!important;line-height:1.7!important}
.secure-auth-status:empty{display:none!important}
.otp-verification-panel{margin-top:18px}.otp-card-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:18px}.otp-card-brand img{width:70px;height:42px;object-fit:contain}.otp-card-brand span{font:700 17px Arial;direction:ltr;color:#34383d;letter-spacing:2px}.otp-verification-panel>label{display:block;text-align:center;margin-bottom:12px;color:#555;font-size:14px}.otp-digits{display:flex;justify-content:center;gap:9px}.otp-digits input{width:48px;height:58px;border:1.5px solid #d9dce2;border-radius:13px;background:#fbfbfc;text-align:center;font:700 24px Arial;outline:none;caret-color:var(--gold)}.otp-digits input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d6a92f2e;background:#fff}.otp-digits input.filled{border-color:#9fbdac;background:#f3fbf6}
.secure-auth-close{width:100%!important;height:56px!important;margin-top:14px!important;border:0!important;border-radius:18px!important;background:#e7b638!important;color:#111!important;font-size:18px!important;font-family:Cairo,Poppins,Arial!important}
.verify-otp-btn{position:relative;display:flex!important;align-items:center;justify-content:center;gap:10px;width:100%!important;min-height:58px!important;margin-top:20px!important;border:0!important;border-radius:18px!important;background:linear-gradient(135deg,#d6a92f,#efc751)!important;box-shadow:0 10px 24px rgba(188,143,29,.28)!important;color:#17130a!important;font:700 17px Cairo,Arial!important;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.verify-otp-btn:hover{transform:translateY(-1px);box-shadow:0 13px 28px rgba(188,143,29,.35)!important;filter:saturate(1.05)}
.verify-otp-btn:active{transform:translateY(1px);box-shadow:0 6px 16px rgba(188,143,29,.25)!important}
.verify-otp-btn:focus-visible{outline:3px solid rgba(214,169,47,.3);outline-offset:3px}
.verify-otp-btn:disabled{cursor:wait;opacity:.82;transform:none}
.verify-otp-spinner{display:none;width:20px;height:20px;border:2.5px solid rgba(23,19,10,.25);border-top-color:#17130a;border-radius:50%;animation:otp-spin .7s linear infinite}
.verify-otp-btn.is-loading .verify-otp-label{opacity:.7}
.verify-otp-btn.is-loading .verify-otp-spinner{display:block}
@keyframes otp-spin{to{transform:rotate(360deg)}}
@media(max-width:520px){.secure-auth-sheet{min-height:400px!important;padding-inline:18px!important}.secure-auth-lottie{height:220px!important}.secure-auth-sheet h3{font-size:21px!important}.secure-auth-sheet p{font-size:14px!important}}
@media(max-width:390px){.otp-digits{gap:6px}.otp-digits input{width:42px;height:54px;font-size:22px}}

/* SAT Web 4.9 — session timer, refined seats and safe demo ticket flow */
.countdown b.urgent{color:#c13b32!important;font-weight:600!important}
.demo-payment-notice{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;padding:12px 14px;border:1px solid #efd58c;border-radius:16px;background:#fff9e9;color:#6b531c;font-size:13px;line-height:1.6}
.demo-payment-notice b{flex:0 0 auto;padding:2px 8px;border-radius:10px;background:#e6b438;color:#111;font-size:12px}
.demo-card-note{padding:11px 13px!important;border-radius:14px!important;background:#fff8e5!important;color:#70571e!important;border:1px solid #f0d58a!important}
.demo-card-note b{color:#33270e}

/* Explicit bus layout: 2 seats + aisle + 2 seats */
.original-grid{display:grid!important;grid-template-columns:52px 52px minmax(44px,1fr) 52px 52px!important;grid-auto-rows:64px!important;gap:18px 12px!important;align-items:center!important;justify-items:center!important;direction:ltr!important;width:100%!important;max-width:360px!important;margin-inline:auto!important}
.original-grid .seat-box{grid-row:var(--seat-row)!important;grid-column:var(--seat-col)!important;width:52px!important;height:62px!important;min-width:52px!important;min-height:62px!important;margin:0!important;border:2px solid #2b5fea!important;border-radius:14px!important;background:#fff!important;color:#111!important;font-size:16px!important;font-weight:500!important;padding:0!important;display:grid!important;place-items:center!important;position:relative!important;box-shadow:none!important}
.original-grid .seat-box span{position:relative!important;z-index:2!important;font-size:16px!important;line-height:1!important}
.original-grid .seat-box:after{content:''!important;position:absolute!important;left:7px!important;right:7px!important;bottom:5px!important;height:10px!important;border-radius:7px!important;background:#ece9fb!important}
.original-grid .seat-box.reserved,.original-grid .seat-box.pending{background:#696969!important;border-color:#555!important;color:#111!important}
.original-grid .seat-box.reserved:after,.original-grid .seat-box.pending:after{display:none!important}
.original-grid .seat-box.selected{background:#efb632!important;border-color:#d09a18!important;color:#111!important;transform:scale(1.03)!important}
.original-grid .seat-box.selected:after{background:#ffe7a1!important}
.original-grid .seat-box:disabled{opacity:1!important;cursor:not-allowed!important}
.original-bus{padding:26px 30px 34px!important;margin-bottom:112px!important;border-radius:28px!important;background:#fff!important;box-shadow:0 8px 28px rgba(25,31,44,.09)!important}
.driver-wheel{text-align:left!important;margin:0 0 26px!important}
.driver-wheel img{width:82px!important;height:82px!important}
.seat-trip-summary{padding:20px 24px!important;background:#f6f7fa!important}
.seat-trip-summary b{font-size:22px!important;font-weight:500!important}
.seat-trip-summary small{font-size:15px!important;color:#747474!important}
.seat-section-title{padding:24px 28px 8px!important;font-size:23px!important;text-align:right!important}
.seat-legend.original{padding:4px 28px 22px!important;justify-content:flex-start!important;gap:18px!important;font-size:15px!important}
.seat-key{width:30px!important;height:30px!important;border-radius:8px!important}

/* Issued demo ticket */
.ticket-preview-screen{min-height:100dvh;background:#f5f6f9;padding:0 18px 110px}
.ticket-preview-head{height:88px;display:grid;grid-template-columns:54px 1fr 72px;align-items:center;position:sticky;top:0;z-index:20;background:#fff;margin:0 -18px 22px;padding:0 18px;border-bottom:1px solid #e5e5e5}
.ticket-preview-head button{width:46px;height:46px;border:1px solid #ddd;border-radius:50%;background:#fff;font-size:29px;line-height:1}
.ticket-preview-head h2{margin:0;text-align:center;font-size:24px;font-weight:500}
.demo-ticket-badge{justify-self:end;padding:7px 10px;border-radius:12px;background:#fff1c9;color:#725719;font-size:12px;font-weight:700}
.issued-ticket-card{max-width:620px;margin:auto;background:#fff;border:1px solid #e1e1e1;border-radius:26px;padding:20px;box-shadow:0 10px 30px rgba(20,28,42,.07);overflow:hidden;position:relative}
.issued-ticket-card:before{content:'';position:absolute;top:0;right:0;left:0;height:6px;background:#e6b438}
.issued-ticket-brand{display:flex;align-items:center;gap:12px;padding:8px 0 18px;border-bottom:1px dashed #d9d9d9}
.issued-ticket-brand img{width:58px;height:58px;object-fit:contain}
.issued-ticket-brand div{display:flex;flex-direction:column;gap:4px}.issued-ticket-brand b{font-size:20px}.issued-ticket-brand small{font-size:12px;color:#777}
.issued-ticket-route{display:grid;grid-template-columns:1fr 42px 1fr;align-items:center;text-align:center;padding:22px 0;border-bottom:1px dashed #d9d9d9}
.issued-ticket-route div{display:flex;flex-direction:column;gap:5px}.issued-ticket-route small{color:#858585;font-size:12px}.issued-ticket-route b{font-size:18px}.issued-ticket-route span{font-size:12px;color:#777}.issued-ticket-route i{font-style:normal;font-size:27px}
.issued-ticket-meta{display:grid;grid-template-columns:1fr 1fr;gap:0;border-bottom:1px dashed #d9d9d9;padding:14px 0}
.issued-ticket-meta p{margin:0;padding:10px 8px;display:flex;flex-direction:column;gap:4px}.issued-ticket-meta span{font-size:12px;color:#858585}.issued-ticket-meta b{font-size:15px;overflow-wrap:anywhere}.issued-status{color:#27844b!important}
.issued-ticket-code{margin:18px auto 4px;padding:13px 16px;max-width:340px;border-radius:14px;background:#f3f4f7;text-align:center;font-family:monospace;font-weight:700;direction:ltr;letter-spacing:.5px}
.ticket-preview-actions{max-width:620px;margin:18px auto 0;display:grid;gap:10px}.ticket-preview-actions button{height:58px;border-radius:18px;font-size:17px}.ticket-preview-actions .secondary,.success-screen .secondary{background:#fff;border:1px solid #d8d8d8;color:#222}

@media(max-width:520px){
  .original-bus{width:calc(100% - 34px)!important;margin:0 17px 106px!important;padding:22px 20px 30px!important}
  .original-grid{grid-template-columns:46px 46px minmax(40px,1fr) 46px 46px!important;grid-auto-rows:58px!important;gap:15px 10px!important;max-width:330px!important}
  .original-grid .seat-box{width:46px!important;height:55px!important;min-width:46px!important;min-height:55px!important;border-radius:13px!important}
  .original-grid .seat-box span{font-size:14px!important}
  .original-grid .seat-box:after{height:9px!important;left:6px!important;right:6px!important;bottom:4px!important}
  .driver-wheel img{width:72px!important;height:72px!important}
  .seat-trip-summary{padding:17px 16px!important}.seat-trip-summary b{font-size:19px!important}.seat-trip-summary small{font-size:13px!important}
  .seat-section-title{padding:20px 18px 7px!important;font-size:21px!important}.seat-legend.original{padding:3px 18px 18px!important;font-size:13px!important}.seat-key{width:27px!important;height:27px!important}
  .ticket-preview-screen{padding-inline:14px}.ticket-preview-head{margin-inline:-14px;padding-inline:14px;grid-template-columns:48px 1fr 64px}.ticket-preview-head h2{font-size:21px}.issued-ticket-card{padding:17px;border-radius:22px}.issued-ticket-brand img{width:50px;height:50px}.issued-ticket-brand b{font-size:18px}.issued-ticket-route b{font-size:16px}.issued-ticket-meta{grid-template-columns:1fr 1fr}.issued-ticket-meta b{font-size:14px}
}
@media(max-width:370px){
  .original-grid{grid-template-columns:42px 42px minmax(32px,1fr) 42px 42px!important;gap:13px 8px!important}.original-grid .seat-box{width:42px!important;height:51px!important;min-width:42px!important;min-height:51px!important}
}
.original-grid .seat-box[style]{grid-row:var(--seat-row)!important;grid-column:var(--seat-col)!important;margin:0!important}

/* MOBILE-RESPONSIVE-20260810-START */

/* Mobile-only layout safeguards. No changes to desktop identity or flow. */
html,
body {
  max-width: 100%;
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
}

img,
svg,
video,
canvas {
  max-width: 100%;
}

button,
input,
select,
textarea {
  max-width: 100%;
}

@supports (padding: max(0px)) {
  body {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }
}

@media (max-width: 767px) {
  html {
    min-width: 320px;
  }

  body {
    min-height: 100dvh;
    overscroll-behavior-y: contain;
  }

  main {
    width: 100%;
    min-width: 0;
    padding-bottom: calc(92px + env(safe-area-inset-bottom));
  }

  button,
  [role="button"],
  .field,
  .passenger-field,
  .date-field {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  input,
  select,
  textarea {
    font-size: 16px !important;
  }

  .sat-appbar {
    width: 100%;
    height: auto;
    min-height: 124px;
    padding:
      max(20px, env(safe-area-inset-top))
      clamp(14px, 4vw, 20px)
      14px;
    gap: 10px;
  }

  .language-pill {
    min-width: 0;
    max-width: 48%;
    padding: 11px 14px;
    font-size: clamp(16px, 5vw, 20px);
    white-space: nowrap;
  }

  .language-pill img {
    width: 25px;
    height: 25px;
    flex: 0 0 auto;
  }

  .welcome-block {
    min-width: 0;
    gap: 9px;
    font-size: clamp(14px, 4vw, 18px);
  }

  .profile-circle {
    width: 56px;
    height: 56px;
    flex: 0 0 auto;
  }

  .profile-circle img {
    width: 31px;
    height: 31px;
  }

  .sat-home {
    width: 100%;
    padding-inline: clamp(10px, 4vw, 16px);
  }

  .sat-service-tabs {
    gap: 8px;
  }

  .sat-service-tabs button {
    min-width: 0;
    min-height: 48px;
    padding-inline: 8px;
    font-size: clamp(15px, 4.5vw, 18px);
    line-height: 1.35;
    white-space: normal;
  }

  .sat-booking-card,
  .booking-card,
  .form-card {
    width: 100%;
    max-width: 100%;
  }

  .booking-content {
    padding: clamp(18px, 5vw, 26px) clamp(12px, 4.5vw, 18px);
  }

  .sat-trip-tabs {
    min-height: 68px;
    height: auto;
  }

  .sat-trip-tabs .tab {
    min-width: 0;
    min-height: 62px;
    padding: 10px 6px;
    font-size: clamp(16px, 5vw, 19px);
  }

  .sat-field,
  .sat-date-field,
  .passenger-field,
  .compact-field,
  .input {
    min-width: 0;
  }

  .sat-field b,
  .sat-date-field b {
    overflow-wrap: anywhere;
    font-size: clamp(15px, 4.7vw, 18px);
  }

  .field-label,
  .compact-labels label,
  .direct-row {
    font-size: clamp(16px, 4.8vw, 19px);
  }

  .date-grid,
  .compact-fields,
  .payment-two-cols {
    min-width: 0;
  }

  .sat-search-btn,
  .primary,
  .flow-primary,
  .verify-otp-btn {
    min-height: 52px;
  }

  .ticket-results-screen,
  .flow-screen,
  .ticket-preview-screen,
  .nav-page {
    width: 100%;
    max-width: 100%;
    min-height: 100dvh;
  }

  .ticket-page-head,
  .nav-page-head,
  .flow-head,
  .ticket-preview-head {
    padding-top: max(12px, env(safe-area-inset-top));
  }

  .ticket-filters,
  .date-strip,
  .ticket-date-strip,
  .horizontal-cards,
  .city-badges {
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .ticket-filters::-webkit-scrollbar,
  .date-strip::-webkit-scrollbar,
  .ticket-date-strip::-webkit-scrollbar,
  .horizontal-cards::-webkit-scrollbar,
  .city-badges::-webkit-scrollbar {
    display: none;
  }

  .original-trip-list,
  .trip-list {
    padding-inline: clamp(10px, 4vw, 20px);
  }

  .original-trip-card,
  .trip-card {
    min-width: 0;
    overflow: hidden;
  }

  .trip-card-footer,
  .trip-bottom,
  .review-summary-line,
  .review-ticket-row {
    gap: 8px;
  }

  .trip-card-footer > *,
  .trip-bottom > *,
  .review-summary-line > *,
  .review-ticket-row > * {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .bottom-nav {
    height: calc(72px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
  }

  body[data-screen="home"] .bottom-nav {
    height: calc(82px + env(safe-area-inset-bottom));
    padding: 7px 9px env(safe-area-inset-bottom);
  }

  .bottom-nav button {
    min-width: 48px;
    min-height: 48px;
    padding-inline: 4px;
  }

  .sticky-action,
  .flow-bottom {
    padding-bottom: max(12px, env(safe-area-inset-bottom));
  }

  .sticky-action {
    bottom: calc(72px + env(safe-area-inset-bottom));
  }

  .modal {
    padding-top: env(safe-area-inset-top);
  }

  .modal-card,
  .fare-sheet,
  .station-picker-card,
  .calendar-card,
  .card-payment-sheet,
  .secure-auth-sheet,
  .ticket-type-card,
  .international-warning-card {
    width: 100%;
    max-width: 100%;
    max-height: calc(100dvh - max(12px, env(safe-area-inset-top)));
    padding-bottom: max(18px, env(safe-area-inset-bottom));
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .card-payment-modal,
  .secure-auth-modal {
    align-items: flex-end;
  }

  .card-payment-sheet,
  .secure-auth-sheet {
    max-height: calc(100dvh - env(safe-area-inset-top));
  }

  .secure-auth-lottie {
    height: clamp(150px, 29dvh, 220px) !important;
  }

  .single-otp-container .payment-input {
    width: 100% !important;
    min-height: 54px;
    letter-spacing: clamp(5px, 2.5vw, 10px) !important;
  }

  .otp-card-brand {
    flex-wrap: wrap;
  }

  .sat-chat-overlay {
    height: 100dvh;
  }

  .sat-chat-sheet {
    max-height: calc(100dvh - env(safe-area-inset-top));
    padding-bottom: env(safe-area-inset-bottom);
  }

  .bus-layout,
  .original-bus {
    max-width: calc(100% - 20px) !important;
  }

  .seat-grid,
  .original-grid {
    min-width: 0;
  }

  .issued-ticket-card,
  .ticket-preview-actions {
    width: 100%;
    max-width: 100%;
  }

  .issued-ticket-code,
  .issued-ticket-meta b {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 380px) {
  .sat-home {
    padding-inline: 9px;
  }

  .sat-appbar {
    padding-inline: 12px;
  }

  .language-pill {
    padding: 9px 10px;
    font-size: 16px;
  }

  .profile-circle {
    width: 50px;
    height: 50px;
  }

  .booking-content {
    padding-inline: 11px;
  }

  .payment-two-cols,
  .date-grid {
    grid-template-columns: 1fr;
  }

  .sat-swap {
    right: 34px;
  }

  .trip-card-footer,
  .trip-bottom {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .trip-bottom button {
    min-height: 44px;
  }

  .fare-sheet,
  .station-picker-card,
  .card-payment-sheet,
  .secure-auth-sheet {
    padding-inline: 14px !important;
  }

  .secure-auth-sheet h3 {
    font-size: 20px !important;
  }

  .otp-card-brand img {
    max-width: 58px;
  }

  .issued-ticket-route {
    grid-template-columns: 1fr 30px 1fr;
  }

  .issued-ticket-meta {
    grid-template-columns: 1fr;
  }
}

@media (max-height: 520px) and (orientation: landscape) {
  .modal-card,
  .fare-sheet,
  .card-payment-sheet,
  .secure-auth-sheet {
    max-height: 100dvh;
    border-radius: 16px 16px 0 0;
  }

  .secure-auth-lottie {
    height: 110px !important;
  }

  .secure-auth-sheet h3 {
    margin-block: 2px !important;
  }

  .secure-auth-status {
    min-height: 0 !important;
    margin-top: 6px !important;
  }
}

/* MOBILE-RESPONSIVE-20260810-END */

/* MOBILE-BOTTOM-OVERLAP-FIX-START */

@media (max-width: 767px) {
  body[data-screen="home"] main {
    padding-bottom: calc(150px + env(safe-area-inset-bottom)) !important;
  }

  body[data-screen="home"] .sat-home {
    padding-bottom: calc(125px + env(safe-area-inset-bottom)) !important;
  }

  body[data-screen="home"] .sat-booking-card {
    margin-bottom: 24px !important;
  }

  body[data-screen="home"] .sat-search-btn {
    position: relative;
    z-index: 1;
    margin-bottom: 10px;
  }

  body[data-screen="home"] .bottom-nav {
    z-index: 40;
  }

  body[data-screen="home"] .chatbot-fab {
    bottom: calc(96px + env(safe-area-inset-bottom)) !important;
    z-index: 35;
  }
}

@media (max-width: 380px) {
  body[data-screen="home"] main {
    padding-bottom: calc(165px + env(safe-area-inset-bottom)) !important;
  }

  body[data-screen="home"] .sat-home {
    padding-bottom: calc(140px + env(safe-area-inset-bottom)) !important;
  }

  body[data-screen="home"] .chatbot-fab {
    width: 58px;
    height: 58px;
  }

  body[data-screen="home"] .chatbot-fab img {
    width: 45px;
    height: 45px;
  }
}

/* MOBILE-BOTTOM-OVERLAP-FIX-END */

/* MOBILE-SEARCH-BUTTON-VISIBILITY-START */

@media (max-width: 767px) {
  body[data-screen="home"] .sat-search-btn {
    position: sticky !important;
    bottom: calc(90px + env(safe-area-inset-bottom)) !important;
    z-index: 32 !important;
    width: 100% !important;
    min-height: 58px !important;
    margin-top: 14px !important;
    margin-bottom: 12px !important;
    box-shadow: 0 10px 24px rgba(35, 28, 10, 0.2) !important;
  }

  body[data-screen="home"] .chatbot-fab {
    left: 8px !important;
    width: 56px !important;
    height: 56px !important;
    z-index: 31 !important;
  }

  body[data-screen="home"] .chatbot-fab img {
    width: 44px !important;
    height: 44px !important;
  }
}

@media (max-height: 700px) and (max-width: 767px) {
  body[data-screen="home"] .sat-search-btn {
    bottom: calc(84px + env(safe-area-inset-bottom)) !important;
  }
}

/* MOBILE-SEARCH-BUTTON-VISIBILITY-END */

/* MOBILE-FORM-REFINEMENT-START */

@media (max-width: 767px) {
  /* Compact header without changing its identity */
  .sat-appbar {
    min-height: 108px !important;
    padding:
      max(16px, env(safe-area-inset-top))
      16px
      12px !important;
  }

  .language-pill {
    min-width: 0 !important;
    max-width: 46% !important;
    padding: 9px 13px !important;
    border-radius: 26px !important;
    gap: 8px !important;
    font-size: 17px !important;
    line-height: 1.2 !important;
  }

  .language-pill img {
    width: 24px !important;
    height: 24px !important;
  }

  .welcome-block {
    gap: 8px !important;
    font-size: 15px !important;
  }

  .profile-circle {
    width: 50px !important;
    height: 50px !important;
  }

  .profile-circle img {
    width: 28px !important;
    height: 28px !important;
  }

  /* Slightly tighter service tabs */
  .sat-service-tabs {
    margin-top: 12px !important;
    margin-bottom: 16px !important;
    gap: 8px !important;
  }

  .sat-service-tabs button {
    min-height: 46px !important;
    padding: 8px 7px !important;
    font-size: 16px !important;
  }

  /* Search card */
  .sat-booking-card {
    margin-bottom: calc(
      115px + env(safe-area-inset-bottom)
    ) !important;
  }

  .sat-trip-tabs {
    min-height: 66px !important;
    height: 66px !important;
  }

  .sat-trip-tabs .tab {
    min-height: 66px !important;
    padding: 8px 5px !important;
    font-size: 17px !important;
  }

  .tab-check {
    width: 31px !important;
    height: 31px !important;
    margin-left: 7px !important;
    font-size: 20px !important;
  }

  .booking-content {
    padding: 20px 14px 22px !important;
  }

  .field-label {
    margin-bottom: 6px !important;
    font-size: 17px !important;
    line-height: 1.35 !important;
  }

  .sat-field,
  .sat-date-field,
  .passenger-field,
  .compact-field {
    min-height: 56px !important;
    border-radius: 14px !important;
    padding: 9px 12px !important;
  }

  .sat-field b,
  .sat-date-field b,
  .passenger-field b {
    font-size: 16px !important;
    line-height: 1.35 !important;
  }

  .sat-field img,
  .sat-date-field img,
  .passenger-field img {
    max-width: 28px !important;
    max-height: 28px !important;
  }

  .compact-fields,
  .date-grid {
    gap: 9px !important;
    margin-top: 10px !important;
  }

  .compact-labels label,
  .direct-row {
    font-size: 16px !important;
  }

  .direct-row {
    margin-block: 14px 10px !important;
  }

  .sat-swap {
    width: 52px !important;
    height: 52px !important;
    right: 40px !important;
  }

  .sat-swap img {
    width: 27px !important;
    height: 27px !important;
  }

  /* Return the CTA to its natural position in the form */
  body[data-screen="home"] .sat-search-btn {
    position: static !important;
    inset: auto !important;
    bottom: auto !important;
    transform: none !important;
    z-index: auto !important;
    width: 100% !important;
    min-height: 56px !important;
    margin: 12px 0 0 !important;
    font-size: 19px !important;
    box-shadow: 0 6px 16px rgba(166, 128, 45, 0.2) !important;
  }

  body[data-screen="home"] .sat-home {
    padding-bottom: calc(
      125px + env(safe-area-inset-bottom)
    ) !important;
  }

  body[data-screen="home"] main {
    padding-bottom: calc(
      145px + env(safe-area-inset-bottom)
    ) !important;
  }

  /* Keep the assistant away from the CTA */
  body[data-screen="home"] .chatbot-fab {
    left: 8px !important;
    bottom: calc(
      91px + env(safe-area-inset-bottom)
    ) !important;
    width: 54px !important;
    height: 54px !important;
  }

  body[data-screen="home"] .chatbot-fab img {
    width: 42px !important;
    height: 42px !important;
  }
}

@media (max-width: 380px) {
  .sat-appbar {
    min-height: 98px !important;
    padding-inline: 12px !important;
  }

  .language-pill {
    padding: 8px 10px !important;
    font-size: 16px !important;
  }

  .language-pill img {
    width: 22px !important;
    height: 22px !important;
  }

  .profile-circle {
    width: 46px !important;
    height: 46px !important;
  }

  .profile-circle img {
    width: 26px !important;
    height: 26px !important;
  }

  .booking-content {
    padding-inline: 11px !important;
  }

  .sat-field,
  .sat-date-field,
  .passenger-field,
  .compact-field {
    min-height: 53px !important;
    padding-inline: 10px !important;
  }

  .sat-field b,
  .sat-date-field b,
  .passenger-field b {
    font-size: 15px !important;
  }

  .sat-swap {
    width: 48px !important;
    height: 48px !important;
    right: 32px !important;
  }

  body[data-screen="home"] .sat-search-btn {
    min-height: 54px !important;
    font-size: 18px !important;
  }
}

/* MOBILE-FORM-REFINEMENT-END */
