@charset "UTF-8";
.customer{padding-top:max(env(safe-area-inset-top),var(--safe-area-inset-top,0px))}
@media(max-width:760px){.customer .hero .road-art{display:none}.customer .hero h1{font-size:35px}}
:root{--green:#075f4d;--deep:#104637;--mint:#e5f1eb;--ink:#1f342d;--muted:#697a72;--line:#e0e7e1;--bg:#f5f7f3;--gold:#f8bc4e;--bad:#b43b3b;--radius:20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.55}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e5b958;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{line-height:1.15;letter-spacing:-1.5px}h2{font-size:21px;line-height:1.3;letter-spacing:-.4px}h3{font-size:18px;line-height:1.35}p{margin-bottom:14px}[hidden]{display:none!important}.muted{color:var(--muted);font-size:14px}.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:750;margin-bottom:13px}.full{width:100%}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack>*+*{margin-top:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:0 5px 22px #0b3a2510}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.card-title h2{margin:0}.tag{font-size:11px;color:var(--green);background:var(--mint);padding:5px 10px;border-radius:20px;white-space:nowrap}.btn{border:1px solid var(--line);border-radius:11px;padding:13px 18px;display:inline-flex;gap:12px;align-items:center;justify-content:center;background:#fff;color:var(--ink);font-weight:650;min-height:46px}.btn:hover{filter:brightness(.97);text-decoration:none}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.gold{background:var(--gold);border-color:var(--gold);color:#153e30}.btn.danger{color:var(--bad);background:#fff2f1;border-color:#f0d4d0}.btn.small{padding:8px 12px;min-height:36px;font-size:13px}.text-btn{color:var(--green);background:none;border:0;padding:5px 0;font-weight:700}.icon-btn{border:0;border-radius:50%;background:transparent;width:42px;height:42px;display:grid;place-items:center;color:var(--ink);font-size:25px;position:relative}.icon-btn:hover{background:var(--mint)}label{display:block;font-size:13px;font-weight:650;margin-bottom:15px}input,select,textarea{display:block;width:100%;padding:12px 13px;border:1px solid #dce4dd;border-radius:10px;color:var(--ink);background:#fcfdfa;margin-top:7px;min-height:46px}textarea{min-height:95px;resize:vertical}input[type=checkbox]{width:20px;min-height:20px;height:20px;margin:0;accent-color:var(--green)}.check-label{display:flex;align-items:flex-start;gap:10px;font-weight:500}.check-label input{flex:none;margin-top:3px}fieldset{border:0;padding:0;margin:0}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 ui-monospace,monospace;border-radius:12px;padding:16px;background:var(--bg);max-height:300px;overflow:auto}.notice{padding:15px 17px;background:var(--mint);border-radius:12px;font-size:13px;color:var(--deep);margin-bottom:18px}.notice.warning{background:#fff5d9;color:#6d5013}.empty{text-align:center;padding:38px 20px;color:var(--muted);border:1px dashed var(--line);border-radius:16px}.empty h3{color:var(--ink)}.error-panel{color:var(--bad);background:#fff1ef;padding:16px;border-radius:12px}.badge{padding:5px 10px;font-size:11px;font-weight:700;border-radius:20px;display:inline-block;background:var(--mint);color:var(--green);white-space:nowrap}.status-NEW{background:#eaf0ff;color:#35529b}.status-POSTED_TO_GROUP{background:#f1ecfb;color:#725593}.status-IN_PROGRESS{background:#fff2d6;color:#97640f}.status-CASHBACK_PENDING{background:#fff0d6;color:#8d6222}.status-CANCELLED{background:#f5e5e3;color:#9a514d}.notification-dot{width:8px;height:8px;background:var(--gold);border-radius:50%;position:absolute;right:7px;top:5px}.toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);z-index:1000;background:var(--deep);color:white;border-radius:12px;padding:13px 22px;max-width:min(92vw,600px);box-shadow:0 10px 30px #0002}.toast.bad{background:#913c32}
.app-header{height:86px;max-width:1130px;padding:0 25px;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;gap:10px;align-items:center;font-weight:800;font-size:27px;letter-spacing:-1px;color:var(--green)}.brand:hover{text-decoration:none}.brand-dot{color:var(--muted);font-weight:500}.header-actions{display:flex;gap:15px;align-items:center}.avatar{width:39px;height:39px;border:1px solid var(--line);border-radius:50%;font-weight:700;background:#fff;color:var(--green)}.customer-main{max-width:1080px;margin:auto;padding:0 24px 95px}.hero{padding:34px 12px 37px;display:flex;align-items:center;justify-content:space-between}.hero h1{font-size:47px;margin-bottom:18px}.hero h1 span{color:var(--green)}.hero p:not(.eyebrow){color:var(--muted);font-size:15px;margin:0}.road-art{width:275px;height:208px;background:var(--mint);border-radius:45% 40% 45% 40%;margin-right:26px;overflow:hidden}.road-art svg{width:100%;height:100%}.booking-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:26px;align-items:start}.booking-card{padding:28px 30px}.route-controls{position:relative;margin-bottom:22px}.point-select{display:flex;align-items:center;gap:15px;text-align:left;width:100%;padding:17px 16px;border:1px solid var(--line);background:#fcfdfa;min-height:85px}.point-select:first-child{border-radius:12px 12px 0 0;border-bottom:0}.point-select:last-child{border-radius:0 0 12px 12px}.point-select span:nth-child(2){flex:1;min-width:0}.point-select small{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.point-select strong{font-size:14px;font-weight:600;display:block;overflow-wrap:anywhere}.point-marker{width:12px;height:12px;flex:none}.point-marker.start{border:3px solid var(--green);border-radius:50%}.point-marker.end{border:3px solid var(--gold);border-radius:3px}.chevron{color:var(--muted);font-size:18px}.swap{position:absolute;width:33px;height:33px;right:14px;top:69px;border:1px solid var(--line);border-radius:50%;background:white;color:var(--green);z-index:1;font-size:20px}.booking-card label{margin-bottom:9px}.booking-card .btn{margin-top:22px;justify-content:space-between;padding:14px 20px}.form-foot{text-align:center;color:var(--muted);font-size:11px;margin:14px 0 0}.trip-aside{display:flex;flex-direction:column;gap:20px}.benefit-card{background:var(--mint);border:0;box-shadow:none;position:relative}.benefit-card .eyebrow{color:var(--green);font-size:10px}.benefit-card h3{font-size:23px;letter-spacing:-.7px;max-width:260px}.benefit-card p:not(.eyebrow){font-size:13px;color:#607c6d;max-width:270px}.benefit-icon{position:absolute;right:25px;top:20px;border:1px solid #c6dacc;width:37px;height:37px;border-radius:50%;display:grid;place-items:center;font-size:24px;color:var(--green)}.trust-list{padding:0 7px}.trust-list p{margin-bottom:12px;font-size:13px;color:var(--muted)}.trust-list span{color:var(--green);margin-right:8px}.quote-result:empty{display:none}.fare-card{background:var(--deep);color:#fff;border:0;padding:27px}.fare-card h2{font-size:36px;letter-spacing:-1px;margin:8px 0 5px}.fare-card .eyebrow{color:#abcdbc}.fare-card p{font-size:13px;color:#d1e1d8}.fare-card .btn{margin-top:12px}.fare-card .fine{color:#a9c8b7;font-size:11px}.manual-card{border-color:#eedba5;background:#fff9ea}.manual-card h3{color:#6e5017}.prepared-message{width:100%;min-height:170px;font-size:12px;background:white}.how-it-works{padding:42px 8px 0}.how-it-works h2{font-size:20px;margin-bottom:22px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.steps span{display:block;color:#95b0a0;font-size:13px;font-weight:800;margin-bottom:10px}.steps strong{font-size:13px}.steps p{font-size:12px;color:var(--muted);margin-top:6px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;justify-content:center;gap:60px;background:#fffffff5;backdrop-filter:blur(15px);padding:10px 15px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.bottom-nav button{background:none;border:0;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;min-width:85px}.bottom-nav button>span{font-size:23px;line-height:1.3}.bottom-nav button.active{color:var(--green);font-weight:750}.site-footer{display:flex;justify-content:center;gap:23px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:40px}.site-footer a{color:var(--muted)}.page-heading{margin:35px 0 26px}.page-heading h1{font-size:35px}.page-heading p:not(.eyebrow){color:var(--muted)}.trip-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.trip-item .route-name{font-size:16px;font-weight:700;margin:18px 0 10px}.trip-item .row{margin-bottom:10px}.trip-item .actions{padding-top:16px;border-top:1px solid var(--line);margin-top:15px}.trip-item .actions button{font-size:12px}.reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.credit-card{background:var(--deep);color:#fff}.credit-card h2{font-size:38px;margin:10px 0}.credit-card p{color:#c4d9cc;font-size:13px}.credit-card .eyebrow{color:#9fbfac}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.account-menu{display:flex;flex-direction:column;gap:8px}.account-menu button{text-align:left;justify-content:flex-start}.bank-row{padding:15px 0;border-bottom:1px solid var(--line)}.bank-row:last-child{border:0}.bank-row small{color:var(--muted)}.favorite-routes{margin-top:23px}.favorite-chip{padding:9px 13px;border:1px solid var(--line);border-radius:20px;background:white;color:var(--green);font-size:12px;margin:0 8px 8px 0}.history-line{border-left:2px solid #c4d7c9;padding:5px 0 13px 16px;position:relative;font-size:13px}.history-line:before{content:'';width:8px;height:8px;background:var(--green);border-radius:50%;position:absolute;left:-5px;top:10px}.history-line small{display:block;color:var(--muted)}
.modal{padding:0;border:1px solid var(--line);border-radius:22px;width:calc(100% - 28px);max-width:520px;max-height:90dvh;color:var(--ink);background:#fff;box-shadow:0 20px 100px #06261940}.modal.wide{max-width:780px}.modal::backdrop{background:#082c2375;backdrop-filter:blur(4px)}.modal-head{padding:18px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:2}.modal-head h2{margin:0;font-size:20px}.modal-body{padding:24px}.location-results{max-height:45dvh;overflow:auto;margin-top:16px}.location-option{border:0;border-bottom:1px solid var(--line);background:white;padding:13px 7px;width:100%;text-align:left;display:flex;align-items:center;gap:14px;min-height:65px}.location-option:hover{background:var(--bg)}.location-option strong{display:block;font-size:14px}.location-option small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.point-icon{color:var(--green);font-size:22px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.detail-grid>div{padding:12px;background:var(--bg);border-radius:10px}.detail-grid small{display:block;color:var(--muted)}.notification-item{padding:16px 0;border-bottom:1px solid var(--line)}.notification-item p{font-size:13px;margin-bottom:6px}.notification-item.unread h3:before{content:'● ';color:var(--green)}.legal{max-width:780px;margin:40px auto;padding:0 24px 70px}.legal h1{font-size:35px;margin-top:35px}.legal h2{margin-top:30px}.legal ul{padding-left:22px}.legal .brand{font-size:24px}
.admin-body{background:#f5f7f5}.admin-sidebar{width:235px;position:fixed;top:0;bottom:0;left:0;background:var(--deep);color:white;padding:25px 18px;display:flex;flex-direction:column}.admin-sidebar .brand{color:white;padding:0 5px;margin-bottom:6px;font-size:25px}.admin-sidebar .brand-dot{color:#abc6b7}.admin-caption{font-size:10px;letter-spacing:2px;color:#92b5a0;margin:6px 0 30px 52px}.admin-nav{display:flex;flex-direction:column;gap:4px}.admin-nav button{border:0;text-align:left;color:#c8ddd0;border-radius:10px;background:transparent;padding:12px 14px;font-size:13px}.admin-nav button.active{background:#2d6855;color:white}.admin-nav button span{display:inline-block;width:25px;font-size:17px}.sidebar-foot{margin-top:auto;border-top:1px solid #386c56;padding-top:18px;font-size:11px;color:#95b8a0}.sidebar-foot a{color:#d4e6db}.admin-main{margin-left:235px;padding:26px 34px 60px;max-width:1650px}.admin-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.admin-top h1{font-size:29px;margin:0}.admin-top .eyebrow{color:var(--muted);margin-bottom:5px}.admin-top .avatar{margin-left:8px}.admin-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:22px}.admin-toolbar label{margin:0}.admin-toolbar input,.admin-toolbar select{min-height:40px;font-size:13px;padding:8px 10px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:20px}.kpi{padding:20px;box-shadow:none;min-height:125px}.kpi small{font-size:11px;color:var(--muted)}.kpi h2{font-size:28px;margin:15px 0 0;letter-spacing:-.8px}.kpi.featured{background:var(--deep);color:white;border-color:var(--deep)}.kpi.featured small{color:#bed8c8}.dashboard-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;margin-bottom:22px}.status-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px}.status-row:last-child{border:0}.section-title{display:flex;justify-content:space-between;align-items:center;margin:28px 0 15px}.section-title h2{margin:0}.table-card{background:white;border:1px solid var(--line);border-radius:16px;overflow:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}.data-table th{background:#fafcf9;color:var(--muted);font-weight:550;text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.7px}.data-table td{padding:15px 16px;border-bottom:1px solid #edf1eb;vertical-align:middle}.data-table tbody tr:last-child td{border:0}.data-table .route-cell{min-width:210px;max-width:310px;white-space:normal;line-height:1.6}.data-table small{display:block;color:var(--muted);font-size:11px}.data-table button{white-space:nowrap}.data-table tbody tr:hover{background:#fbfdfb}.admin-login{min-height:100dvh;display:grid;place-items:center;padding:25px;background:var(--mint)}.admin-login .card{width:100%;max-width:420px;padding:32px}.admin-login .brand{margin-bottom:26px}.admin-login h1{font-size:28px}.admin-login p{color:var(--muted);font-size:13px}.setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.setting-grid .card{box-shadow:none}.audit-card{margin-top:22px}.audit-item{padding:15px 0;border-bottom:1px solid var(--line)}.audit-item p{font-size:13px;margin:6px 0}.audit-item pre{font-size:11px}.admin-mobile-menu{display:none}.pagination-note{font-size:11px;color:var(--muted);padding:13px 16px}.mini-help{font-size:11px;color:var(--muted);margin:7px 0}.filter-tabs{display:flex;gap:7px;margin-bottom:22px;flex-wrap:wrap}.filter-tabs button{padding:8px 13px;border:1px solid var(--line);background:white;border-radius:20px;color:var(--muted);font-size:12px}.filter-tabs .active{color:var(--green);background:var(--mint);border-color:#c3ddcd}
@media(min-width:1500px){.admin-main{padding-right:50px}}
@media(max-width:1050px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.admin-main{padding:25px}.admin-sidebar{width:205px}.admin-main{margin-left:205px}}
@media(max-width:760px){.app-header{height:72px;padding:0 20px}.brand{font-size:24px}.customer-main{padding:0 18px 100px}.hero{padding:26px 2px 30px}.hero h1{font-size:36px}.hero p:not(.eyebrow){font-size:13px}.hero .eyebrow{font-size:9px;letter-spacing:1px}.road-art{width:125px;height:150px;flex:none;margin-right:0;margin-left:5px;opacity:.85}.booking-layout{grid-template-columns:1fr;gap:20px}.booking-card{padding:23px}.trip-aside{gap:17px}.benefit-card h3{max-width:none}.trust-list{display:flex;flex-wrap:wrap;gap:4px 14px}.trust-list p{font-size:11px}.how-it-works{padding-top:27px}.steps{gap:16px}.steps strong{font-size:11px}.steps p{font-size:11px}.bottom-nav{gap:0;justify-content:space-around}.bottom-nav button{font-size:10px;min-width:70px}.trip-list,.reward-grid,.account-grid{grid-template-columns:1fr}.page-heading h1{font-size:30px}.site-footer{gap:12px;font-size:10px}.modal-head{padding:15px 20px}.modal-body{padding:20px}.admin-sidebar{width:100%;height:auto;bottom:auto;padding:10px 16px;position:sticky;z-index:20;flex-direction:row;align-items:center;gap:16px;overflow:auto}.admin-sidebar .brand{font-size:20px;flex:none;margin:0}.admin-sidebar .brand img{width:30px;height:30px}.admin-caption,.sidebar-foot{display:none}.admin-nav{flex-direction:row}.admin-nav button{white-space:nowrap;padding:8px 10px;font-size:11px}.admin-nav button span{display:none}.admin-main{margin:0;padding:22px 16px 55px}.admin-top h1{font-size:24px}.admin-top .eyebrow{font-size:9px}.admin-top .btn{font-size:11px;padding:7px 10px;min-height:34px}.kpi-grid{gap:12px}.kpi{padding:17px;min-height:110px}.kpi h2{font-size:24px}.setting-grid{grid-template-columns:1fr}.admin-toolbar{gap:10px}.admin-toolbar label{flex:1;min-width:125px}.dashboard-grid .card{padding:22px}.detail-grid{grid-template-columns:1fr 1fr}.data-table td{padding:13px 12px}}
@media(max-width:370px){.hero h1{font-size:32px}.road-art{width:90px;height:125px}.booking-card{padding:19px}.form-grid{gap:12px}.steps{grid-template-columns:1fr}.steps span{float:left;margin-right:15px}.steps p{margin-left:32px}}
@media(prefers-reduced-motion:no-preference){.page{animation:appear .22s ease}@keyframes appear{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}

/* Account and email actions keep their own rows, including on small screens. */
.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}
.auth-tabs .btn{min-width:0;padding:12px 8px;white-space:normal}
.auth-actions{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.auth-actions .text-btn{min-height:44px;padding:10px;white-space:normal}
.auth-legal{margin-top:22px}
.password-block{margin-bottom:15px}.password-block>label{margin:0}
.password-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}
.password-control .btn{margin-top:7px;min-height:49px;padding:10px 14px}
.account-entry-actions{display:flex;flex-direction:column;gap:12px;max-width:320px;margin:20px auto 0}
.account-profile{align-items:flex-start;flex-wrap:wrap;margin-bottom:20px}
.account-profile>.avatar{flex:none;display:grid;place-items:center}
.account-profile>.account-identity{flex:1;min-width:0;overflow-wrap:anywhere}
.account-identity h3,.account-identity p{margin-bottom:8px}
.account-menu .btn{width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;justify-content:flex-start;text-align:left;flex:none}
.account-menu .danger{margin-top:10px}
.account-grid>.card,.detail-grid>div{min-width:0;overflow-wrap:anywhere}
.card-title,.section-title{flex-wrap:wrap}
.bank-row .row{gap:20px;flex-wrap:wrap}.bank-row .text-btn{min-height:44px}
.fare-card .text-btn{color:#fff;border:1px solid #95b6a7;border-radius:10px;padding:10px 14px;min-height:44px}
.modal-head{flex-wrap:wrap;gap:10px}.modal-head h2{flex:1;min-width:0;overflow-wrap:anywhere}.modal-head .close-modal{flex:none}
.modal-feedback{flex-basis:100%;padding:12px 14px;border-radius:10px;background:var(--mint);color:var(--deep);font-size:13px;overflow-wrap:anywhere}
.modal-feedback.bad{background:#fff1ef;color:#913c32;border:1px solid #f0d4d0}
.driver-card{padding:16px;border:1px solid #c3ddcd;border-radius:12px;background:var(--mint);margin:18px 0;overflow-wrap:anywhere}
.driver-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.driver-details small{display:block;color:var(--muted);font-size:12px}.driver-phone{font-weight:750}
.driver-form{margin:20px 0;padding:18px;background:var(--bg);border-radius:12px}
.driver-form h3{margin-bottom:12px}.driver-form .btn{white-space:normal;width:100%}
.driver-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.driver-form input{min-width:0}
.withdrawal-note{margin:16px 0}.reward-choice-form .btn{white-space:normal}
.booking-history-title{margin-top:24px}.group-tools>summary{cursor:pointer;font-weight:650;padding:12px 0}.group-tools>.row{margin:12px 0}.group-tools form{margin-top:16px}
button:disabled{cursor:not-allowed}
@media(max-width:370px){.detail-grid,.driver-details,.driver-form .form-grid{grid-template-columns:1fr}.modal-head{padding:12px 16px}.modal-body{padding:16px}.auth-tabs{gap:8px}.auth-tabs .btn{font-size:13px}}

/* A short booking page with readable controls and direct help at the top. */
.customer .app-header{height:auto;max-width:760px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:16px 20px}
.customer .header-actions{gap:10px}.customer .avatar,.customer .icon-btn{width:46px;height:46px}
.quick-contact{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quick-contact .btn{font-size:18px;min-height:54px;padding:12px 8px;white-space:normal;line-height:1.3}
.contact-zalo{background:#0862c6;color:#fff;border-color:#0862c6}
.customer-main{max-width:760px;padding:0 20px 130px}
.booking-heading{padding:12px 2px 16px}.booking-heading h1{font-size:32px;margin:0;letter-spacing:-.6px}
.booking-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.booking-card{padding:22px}.booking-card .route-controls{margin-bottom:22px}
.booking-card .point-select{min-height:88px;padding:16px;gap:12px}
.booking-card .point-select>span:nth-child(2){min-width:0;flex:1}
.booking-card .point-select small{font-size:17px;color:#42564e}
.booking-card .point-select strong{font-size:21px;line-height:1.4;overflow-wrap:anywhere}
.booking-card .point-select .chevron{font-size:25px;flex:none}
.booking-card .swap{width:46px;height:46px;right:12px;top:65px;font-size:24px}
.booking-card .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.booking-card label{font-size:18px;line-height:1.4;margin-bottom:16px;min-width:0}
.booking-card input,.booking-card select{font-size:20px;min-height:56px;min-width:0;max-width:100%;padding:10px}
.booking-card input[type=date],.booking-card input[type=time]{font-size:18px;padding:10px 8px}
.booking-card input::-webkit-calendar-picker-indicator{width:16px;margin:0;padding:0}
.booking-card #check-price{font-size:21px;min-height:60px;margin-top:4px}
.booking-card .form-foot{font-size:16px;color:#42564e;margin:12px 0 0;text-align:center}
.quote-result:empty{display:none}.quote-result .fare-card p,.quote-result .muted{font-size:17px}.quote-result .btn{font-size:20px;min-height:56px}
.customer .modal h2{font-size:24px}.customer .modal label,.customer .modal input,.customer .modal select,.customer .modal textarea{font-size:18px}
.customer .modal .btn{font-size:17px;min-height:52px}.customer .modal .mini-help,.customer .modal .muted,.customer .modal .notice{font-size:16px}
.customer .modal .location-option strong{font-size:19px}.customer .modal .location-option small{font-size:15px}.customer .modal .location-option{min-height:76px}
.modal-feedback{font-size:16px;line-height:1.45}.modal-feedback.pending{display:flex;align-items:center;gap:10px}
.modal-feedback.pending:before{content:'';display:inline-block;flex:none;width:18px;height:18px;border:2px solid #aac8b7;border-top-color:var(--green);border-radius:50%}
[aria-invalid=true]{border-color:#b14b3d}
.customer .bottom-nav{gap:0;justify-content:center;padding:10px 8px calc(10px + env(safe-area-inset-bottom))}
.customer .bottom-nav button{font-size:14px;line-height:1.35;min-height:58px;min-width:0;width:25%;max-width:170px;padding:5px 2px}
.customer .site-footer{font-size:14px;gap:10px;margin-top:24px}.customer .site-footer a{padding:8px 0}
@media(prefers-reduced-motion:no-preference){.modal-feedback.pending:before{animation:auth-spin 1s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}}
@media(max-width:370px){.customer .app-header{padding:12px 14px}.customer-main{padding-left:14px;padding-right:14px}.booking-card{padding:18px}.booking-card .schedule-fields{grid-template-columns:minmax(0,1fr)}.booking-card input,.booking-card select{font-size:18px}.booking-card .point-select strong{font-size:20px}.quick-contact{gap:10px}.quick-contact .btn{font-size:17px}.customer .brand{font-size:23px}.customer .header-actions{gap:5px}}

/* Retain V2.1 administration touch targets with the V2 palette. */
.admin-nav button{min-height:44px}

/* Pricing-policy Admin forms: avoid intrinsic date/select widths on small screens. */
#policy-route-preview input,#policy-route-preview select,#policy-program-form input,#policy-program-form select{min-width:0;max-width:100%;width:100%}
#policy-route-preview .form-grid,#policy-program-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#policy-history pre{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:430px){#policy-route-preview .form-grid,#policy-program-form .form-grid{grid-template-columns:1fr}}

/* One live cashback control; keep the approved blue/white palette. */
.cashback-toggle{min-height:52px;gap:14px;cursor:pointer}
.cashback-toggle input[type=checkbox]{appearance:none;position:relative;width:52px;height:30px;min-width:52px;min-height:30px;border:2px solid #687f7b;border-radius:20px;background:#687f7b;padding:0;cursor:pointer;flex:0 0 52px}
.cashback-toggle input[type=checkbox]::before{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff}
.cashback-toggle input[type=checkbox]:checked{background:#075f4d;border-color:#075f4d}
.cashback-toggle input[type=checkbox]:checked::before{left:25px}
.cashback-toggle input[type=checkbox]:focus-visible{outline:3px solid #1b70c9;outline-offset:3px}
.cashback-toggle input[type=checkbox]:disabled{cursor:wait;opacity:.7}
