:root{--portal-navy:#061d42;--portal-blue:#0b61df;--portal-blue-dark:#0749b8;--portal-orange:#f56a15;--portal-bg:#f4f7fb;--portal-line:#dce5f0;--portal-muted:#6b7b91;--portal-green:#16a267;--portal-red:#db4655}*{box-sizing:border-box}.flash.error{background:#fff0f1;color:#b52b3a}.customer-account-menu{position:relative}.customer-account-menu summary{list-style:none;cursor:pointer}.customer-account-menu summary::-webkit-details-marker{display:none}.customer-account-menu[open] .chevron{transform:rotate(180deg)}.customer-account-menu .account-link img{width:35px;height:35px;border-radius:11px;object-fit:cover}.customer-account-dropdown{position:absolute;right:0;top:calc(100% + 16px);width:250px;padding:9px;border:1px solid #dce5ef;border-radius:17px;background:#fff;box-shadow:0 22px 55px rgba(15,34,63,.17);z-index:100}.account-dropdown-head{padding:12px 13px;border-bottom:1px solid #edf1f5;margin-bottom:5px}.account-dropdown-head strong,.account-dropdown-head small{display:block;overflow:hidden;text-overflow:ellipsis}.account-dropdown-head strong{font-size:13px}.account-dropdown-head small{font-size:10px;color:#7b899c;margin-top:4px}.customer-account-dropdown>a,.customer-account-dropdown button{width:100%;display:block;padding:11px 13px;border:0;border-radius:10px;background:transparent;text-align:left;color:#263750;font-size:12px;font-weight:700;cursor:pointer}.customer-account-dropdown>a:hover,.customer-account-dropdown button:hover{background:#f2f6fc;color:#0b5fd7}.customer-account-dropdown button{color:#c33d49}
.customer-auth-body{margin:0;min-height:100vh;background:#edf3fa;color:var(--portal-navy);font-family:Inter,sans-serif}.customer-auth-shell{width:100%;min-height:100vh;display:grid;grid-template-columns:minmax(480px,1.12fr) minmax(520px,.88fr);background:#fff}.customer-auth-visual{position:relative;min-height:720px;padding:42px clamp(40px,5vw,88px);overflow:hidden;color:#fff;background:linear-gradient(120deg,rgba(3,25,59,.96),rgba(6,55,125,.76)),url('../images/login-sunset-background-livery.png') center/cover no-repeat}.customer-auth-visual:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 45%,rgba(44,126,255,.22),transparent 38%);pointer-events:none}.auth-brand{position:relative;z-index:2;display:flex;align-items:center;gap:14px;width:max-content;color:#fff;text-decoration:none}.auth-brand img{width:68px;height:68px;object-fit:contain}.auth-brand span{display:grid;line-height:1.06}.auth-brand strong{font-size:19px}.auth-brand b{margin-top:4px;color:#ff791e;font-size:19px}.auth-visual-copy{position:relative;z-index:2;margin-top:clamp(90px,14vh,155px);max-width:650px}.auth-visual-copy>span,.auth-card-heading>span,.portal-page-heading>span,.portal-card-form header>span{font-size:10px;font-weight:800;letter-spacing:.16em;color:#78afff}.auth-visual-copy h1{margin:17px 0;font-size:clamp(42px,4vw,66px);line-height:1.02;letter-spacing:-.052em}.auth-visual-copy p{max-width:520px;color:#d3e1f4;font-size:15px;line-height:1.7}.auth-benefits{position:absolute;z-index:2;left:clamp(40px,5vw,88px);right:clamp(40px,5vw,88px);bottom:55px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.auth-benefits>div{display:flex;gap:12px;padding:15px;border:1px solid rgba(255,255,255,.14);border-radius:15px;background:rgba(7,31,68,.46);backdrop-filter:blur(8px)}.auth-benefits b{width:29px;height:29px;flex:0 0 29px;border-radius:9px;background:#176ee5;display:grid;place-items:center;font-size:10px}.auth-benefits span,.auth-benefits strong,.auth-benefits small{display:block}.auth-benefits strong{font-size:11px}.auth-benefits small{margin-top:5px;color:#b9cbe3;font-size:9px;line-height:1.5}.customer-auth-card{align-self:center;width:min(530px,calc(100% - 70px));margin:auto;padding:30px 0}.auth-back{display:inline-block;margin-bottom:45px;color:#6f7f93;text-decoration:none;font-size:12px;font-weight:700}.auth-card-heading{margin-bottom:25px}.auth-card-heading h2{margin:10px 0 8px;font-size:32px;letter-spacing:-.04em}.auth-card-heading p{margin:0;color:var(--portal-muted);font-size:13px}.google-auth-button{height:52px;border:1px solid #d8e1ec;border-radius:13px;display:flex;align-items:center;justify-content:center;gap:11px;color:#24344c;text-decoration:none;font-size:13px;font-weight:800;transition:.18s}.google-auth-button:hover{border-color:#9cbae5;background:#f7faff}.google-auth-button svg{width:21px}.auth-separator{display:flex;align-items:center;gap:13px;margin:22px 0;color:#8a97a8;font-size:10px}.auth-separator:before,.auth-separator:after{content:"";height:1px;background:#e2e8f0;flex:1}.portal-form{display:grid;gap:15px}.portal-form-grid{grid-template-columns:1fr 1fr}.portal-form .full{grid-column:1/-1}.portal-form label{display:grid;gap:7px;color:#33445b;font-size:11px;font-weight:800}.portal-form input,.portal-form textarea,.portal-form select,.danger-zone input{width:100%;height:47px;border:1px solid #d9e2ed;border-radius:11px;background:#fff;padding:0 13px;color:#192b44;font:inherit;font-size:12px;outline:0}.portal-form textarea{height:auto;padding-block:12px}.portal-form input:focus,.portal-form textarea:focus,.portal-form select:focus{border-color:#2c73e8;box-shadow:0 0 0 3px #e8f1ff}.portal-check{display:flex!important;grid-template-columns:18px 1fr!important;align-items:start;gap:9px!important;font-weight:500!important;color:#68788d!important;line-height:1.5}.portal-check input{width:16px;height:16px;margin:2px 0}.portal-primary,.portal-primary-link{border:0;border-radius:11px;background:linear-gradient(135deg,var(--portal-blue),var(--portal-blue-dark));color:#fff;font-weight:800;box-shadow:0 10px 22px rgba(11,91,205,.2);cursor:pointer}.portal-primary{height:49px;padding:0 20px;display:flex;align-items:center;justify-content:center;gap:14px}.portal-primary span{font-size:17px}.auth-switch{text-align:center;margin:21px 0 0;color:#6f7e91;font-size:11px}.auth-switch a{color:#0b60dc;font-weight:800;text-decoration:none}.portal-alert{padding:12px 14px;border-radius:11px;margin:0 0 17px;font-size:11px;line-height:1.55}.portal-alert.danger{background:#fff0f1;border:1px solid #ffd7db;color:#b83240}
.customer-portal-body{background:var(--portal-bg)}.customer-portal-body main{min-height:calc(100vh - 116px)}.customer-portal-body footer{background:#fff}.portal-page{width:min(1500px,calc(100% - 56px));margin:0 auto;padding:38px 0 65px}.portal-hero{min-height:150px;padding:27px 32px;border-radius:23px;background:linear-gradient(125deg,#061d42,#0b438d);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:25px;box-shadow:0 18px 45px rgba(5,36,81,.14);position:relative;overflow:hidden}.portal-hero:after{content:"";position:absolute;width:300px;height:300px;border:55px solid rgba(99,159,255,.1);border-radius:50%;right:-90px;top:-145px}.portal-hero>div{position:relative;z-index:2}.portal-hero span{font-size:9px;letter-spacing:.16em;font-weight:800;color:#8dbaff}.portal-hero h1{font-size:29px;margin:9px 0 6px;letter-spacing:-.04em}.portal-hero p{margin:0;color:#d5e2f4;font-size:12px}.portal-hero-actions{display:flex;gap:10px}.portal-hero-actions a{height:42px;padding:0 17px;border-radius:10px;display:flex;align-items:center;text-decoration:none;font-size:11px;font-weight:800}.portal-secondary{border:1px solid rgba(255,255,255,.3);color:#fff;background:rgba(255,255,255,.07)}.portal-primary-link{background:#fff;color:#0a57ca;box-shadow:none}.portal-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:19px 0}.portal-stat-grid article{min-height:106px;padding:19px;border:1px solid var(--portal-line);border-radius:17px;background:#fff;display:flex;align-items:center;gap:14px;box-shadow:0 8px 22px rgba(28,52,85,.045)}.portal-stat-grid article>span{width:48px;height:48px;flex:0 0 48px;border-radius:13px;display:grid;place-items:center;font-size:20px;font-weight:800}.stat-blue{background:#e5efff;color:#176be3}.stat-orange{background:#fff0df;color:#ed7314}.stat-green{background:#dff7eb;color:#12955f}.stat-purple{background:#eee8ff;color:#734fe1}.portal-stat-grid small,.portal-stat-grid strong,.portal-stat-grid p{display:block}.portal-stat-grid small{color:#5f7087;font-size:10px;font-weight:700}.portal-stat-grid strong{margin-top:2px;font-size:23px}.portal-stat-grid p{margin:4px 0 0;color:#8b98a9;font-size:9px}.upcoming-trip-card{margin-bottom:19px;padding:19px 23px;border:1px solid #bcd5fb;border-radius:18px;background:linear-gradient(90deg,#f2f7ff,#fff);display:grid;grid-template-columns:205px 1fr auto;align-items:center;gap:24px}.upcoming-label span,.upcoming-label b{display:block}.upcoming-label span{font-size:9px;letter-spacing:.13em;color:#4c70a4;font-weight:800}.upcoming-label b{margin-top:7px;color:#0e5fd8;font-size:11px}.upcoming-route{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:21px}.upcoming-route small,.upcoming-route strong,.upcoming-route span{display:block}.upcoming-route small{font-size:8px;color:#7a899c;font-weight:800}.upcoming-route strong{font-size:16px;margin:5px 0}.upcoming-route span{font-size:10px;color:#64758a}.upcoming-route i{font-style:normal;color:#1767d7;font-size:20px}.upcoming-trip-card>a{padding:11px 15px;border-radius:10px;background:#0b61dc;color:#fff;text-decoration:none;font-size:10px;font-weight:800}.portal-panel{border:1px solid var(--portal-line);border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 10px 28px rgba(26,50,82,.05)}.portal-panel-head{padding:21px 24px;border-bottom:1px solid #e5ebf2;display:flex;align-items:center;justify-content:space-between}.portal-panel-head>div>span{font-size:8px;letter-spacing:.15em;font-weight:800;color:#7186a2}.portal-panel-head h2{font-size:18px;margin:5px 0 3px}.portal-panel-head p{margin:0;color:#8290a2;font-size:10px}.portal-status-filter select{height:39px;padding:0 35px 0 12px;border:1px solid #dce4ed;border-radius:10px;background:#fff;color:#41516a;font-size:10px}.portal-booking-list{display:grid}.portal-booking-row{min-height:100px;padding:16px 24px;border-bottom:1px solid #edf1f5;display:grid;grid-template-columns:180px minmax(300px,1fr) 170px 65px;align-items:center;gap:19px}.portal-booking-row:last-child{border-bottom:0}.portal-booking-row small,.portal-booking-row strong,.portal-booking-row span{display:block}.portal-booking-row small{font-size:8px;letter-spacing:.08em;color:#8896a8;font-weight:800}.portal-booking-row strong{margin:6px 0 4px;font-size:12px}.portal-booking-row>div>span{font-size:9px;color:#6e7d90}.booking-route strong i{font-style:normal;color:#1264dc;margin:0 6px}.booking-total strong{font-size:13px}.portal-status{display:inline-flex!important;width:max-content;margin-top:5px;padding:4px 7px;border-radius:99px;font-size:8px!important;font-weight:800}.status-pending_payment{background:#fff0d8;color:#a86900}.status-waiting_confirmation{background:#e7f0ff;color:#125dc9}.status-paid{background:#dff7e9;color:#118653}.status-rejected{background:#ffe5e8;color:#bd3442}.status-cancelled,.status-expired{background:#edf0f4;color:#667385}.row-action{color:#0b60db;text-decoration:none;font-size:10px;font-weight:800}.portal-empty{text-align:center;padding:55px}.portal-empty>b{font-size:35px}.portal-empty h3{margin:10px 0 6px}.portal-empty p{color:#7a899d;font-size:11px}.portal-empty a{display:inline-flex;margin-top:10px;padding:10px 15px;border-radius:9px;background:#0b60dc;color:#fff;text-decoration:none;font-size:10px;font-weight:800}
.portal-page-heading{margin-bottom:23px}.portal-page-heading>a{display:inline-block;margin-bottom:28px;color:#536883;text-decoration:none;font-size:11px;font-weight:700}.portal-page-heading h1{font-size:31px;margin:8px 0 6px}.portal-page-heading p{margin:0;color:#718196;font-size:12px}.profile-layout{display:grid;grid-template-columns:300px 1fr;gap:19px}.profile-summary-card,.portal-card-form,.danger-zone{border:1px solid var(--portal-line);border-radius:19px;background:#fff}.profile-summary-card{height:max-content;padding:27px;text-align:center}.profile-summary-card>img,.profile-initial{width:82px;height:82px;margin:auto;border-radius:24px;object-fit:cover}.profile-initial{display:grid;place-items:center;background:linear-gradient(135deg,#175fe2,#694fe9);color:#fff;font-size:30px;font-weight:800}.profile-summary-card h2{font-size:18px;margin:15px 0 5px}.profile-summary-card>p{margin:0;color:#75859a;font-size:10px}.profile-summary-card>span{display:inline-flex;margin:14px 0 21px;padding:6px 9px;border-radius:99px;background:#eaf2ff;color:#1a62cc;font-size:8px;font-weight:800}.profile-summary-card>div{padding-top:17px;border-top:1px solid #edf1f5;text-align:left}.profile-summary-card small,.profile-summary-card strong{display:block}.profile-summary-card small{font-size:8px;color:#8391a3}.profile-summary-card strong{margin-top:5px;font-size:11px}.profile-form-stack{display:grid;gap:17px}.portal-card-form{overflow:hidden}.portal-card-form header{padding:22px 24px 17px;border-bottom:1px solid #edf1f5}.portal-card-form header h2{font-size:17px;margin:5px 0}.portal-card-form header p{margin:0;color:#78889c;font-size:10px}.portal-card-form>.portal-form{padding:21px 24px}.portal-card-form footer{padding:14px 24px;border-top:1px solid #edf1f5;display:flex;justify-content:flex-end}.portal-card-form footer .portal-primary{height:40px;font-size:10px}.danger-zone{overflow:hidden}.danger-zone summary{padding:16px 20px;color:#bd3845;font-size:11px;font-weight:800;cursor:pointer}.danger-zone>div{padding:0 20px 18px}.danger-zone p{color:#77869a;font-size:10px}.danger-zone form{display:flex;gap:9px}.danger-zone input{max-width:250px;height:40px}.danger-zone button{border:1px solid #ef9ca5;border-radius:9px;background:#fff3f4;color:#bd3442;padding:0 13px;font-size:9px;font-weight:800}
@media(max-width:1100px){.customer-auth-shell{grid-template-columns:1fr}.customer-auth-visual{display:none}.customer-auth-card{padding:45px 0}.portal-stat-grid{grid-template-columns:1fr 1fr}.portal-booking-row{grid-template-columns:150px 1fr 150px 55px}.upcoming-trip-card{grid-template-columns:1fr}.profile-layout{grid-template-columns:1fr}.profile-summary-card{display:none}}
@media(max-width:760px){.customer-auth-card{width:calc(100% - 34px)}.portal-form-grid{grid-template-columns:1fr}.portal-form-grid>*{grid-column:1!important}.portal-page{width:calc(100% - 28px);padding-top:20px}.portal-hero{align-items:flex-start;flex-direction:column;padding:23px}.portal-hero-actions{width:100%}.portal-hero-actions a{flex:1;justify-content:center}.portal-stat-grid{grid-template-columns:1fr}.portal-panel-head{align-items:flex-start;gap:13px;flex-direction:column}.portal-booking-row{grid-template-columns:1fr;gap:10px}.booking-total{display:flex;align-items:center;gap:10px}.portal-status{margin:0}.row-action{justify-self:start;padding:8px 11px;border-radius:8px;background:#edf4ff}.upcoming-route{gap:10px}.danger-zone form{flex-direction:column}.danger-zone input{max-width:none;height:43px}.danger-zone button{height:42px}}

/* Journey catalogue */
.journey-page{width:min(1450px,calc(100% - 56px));margin:auto;padding:47px 0 70px}.journey-heading{text-align:center}.journey-heading>span,.journey-result-head span{font-size:9px;letter-spacing:.15em;font-weight:800;color:#587397}.journey-heading h1{margin:9px 0 7px;font-size:35px;letter-spacing:-.045em}.journey-heading p{margin:0;color:#718197;font-size:12px}.journey-search{width:min(980px,100%);height:82px;margin:27px auto 42px;padding:10px;border:1px solid #dbe4ee;border-radius:18px;background:#fff;box-shadow:0 16px 38px rgba(25,48,80,.09);display:grid;grid-template-columns:1fr 45px 1fr 185px;align-items:center}.journey-search label{padding:0 17px;display:grid;gap:5px}.journey-search small{font-size:8px;color:#63748a;font-weight:800}.journey-search input{border:0;outline:0;color:#1a2b43;font-size:13px}.journey-search i{text-align:center;color:#0c5dd2;font-style:normal}.journey-search button{height:60px;border:0;border-radius:12px;background:linear-gradient(135deg,#0c64e3,#084ab6);color:#fff;font-size:11px;font-weight:800;cursor:pointer}.journey-result-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:15px}.journey-result-head h2{margin:5px 0 0;font-size:20px}.journey-result-head>b{font-size:10px;color:#75859a}.journey-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.journey-card{border:1px solid #dce5ef;border-radius:19px;background:#fff;overflow:hidden;box-shadow:0 10px 26px rgba(28,52,83,.05)}.journey-card-top{height:47px;padding:0 20px;border-bottom:1px solid #edf1f5;display:flex;align-items:center;justify-content:space-between}.journey-card-top span{font-size:10px;font-weight:800}.journey-card-top b{padding:5px 8px;border-radius:99px;background:#e3f7eb;color:#108755;font-size:8px}.journey-route{padding:22px 23px 18px;display:grid;grid-template-columns:1fr 145px 1fr;align-items:center}.journey-route>div:last-child{text-align:right}.journey-route small,.journey-route strong,.journey-route span{display:block}.journey-route small{font-size:8px;color:#8a97a8;font-weight:800}.journey-route strong{margin:4px 0;font-size:24px}.journey-route span{font-size:12px;font-weight:700}.route-line{display:grid!important;grid-template-columns:1fr auto 1fr;align-items:center;text-align:center!important;position:relative}.route-line i{height:1px;background:#cbd7e5}.route-line b{color:#1263d9;margin:0 6px}.route-line small{position:absolute;top:18px;left:0;right:0;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journey-bus{margin:0 20px;padding:12px 14px;border-radius:12px;background:#f5f8fc;display:flex;align-items:center;gap:11px}.journey-bus>span{width:37px;height:37px;border-radius:10px;background:#e4efff;display:grid;place-items:center}.journey-bus strong,.journey-bus small{display:block}.journey-bus strong{font-size:10px}.journey-bus small{margin-top:4px;color:#78879a;font-size:8px}.journey-card footer{margin-top:18px;padding:15px 20px;border-top:1px solid #edf1f5;display:flex;align-items:center;justify-content:space-between}.journey-card footer small,.journey-card footer strong{display:block}.journey-card footer small{font-size:8px;color:#8491a3}.journey-card footer strong{display:inline;font-size:16px}.journey-card footer span{font-size:8px;color:#8b98a9}.journey-card footer>a{padding:10px 13px;border-radius:9px;background:#0b60dc;color:#fff;text-decoration:none;font-size:9px;font-weight:800}.journey-empty{grid-column:1/-1;background:#fff;border:1px solid #dce5ef;border-radius:18px}

/* Seat booking */
.customer-portal-body .booking-page{width:min(1450px,calc(100% - 56px));max-width:none;padding:40px 0 70px}.customer-portal-body .trip-head{margin-bottom:21px}.customer-portal-body .trip-head>a{color:#60738d;text-decoration:none;font-size:10px;font-weight:700}.customer-portal-body .trip-head .pill{margin-left:15px}.customer-portal-body .trip-head h1{margin:12px 0 6px;font-size:32px}.customer-portal-body .trip-head p{margin:0}.customer-portal-body .booking-grid{grid-template-columns:minmax(0,1fr) 390px;gap:19px}.customer-portal-body .seat-panel,.customer-portal-body .booking-summary{border-radius:20px;border:1px solid #dce5ef;box-shadow:0 10px 30px rgba(23,48,80,.05)}.customer-portal-body .seat-panel{padding:25px}.customer-portal-body .legend{padding:11px 14px;border-radius:11px;background:#f5f8fc}.customer-portal-body .bus-shell{border-color:#143a69;background:#f9fbfd}.customer-portal-body .booking-summary{padding:23px;top:25px}.customer-portal-body .booking-summary h2{font-size:19px}.customer-portal-body .booking-summary label{font-size:10px}.customer-portal-body .booking-summary input,.customer-portal-body .booking-summary textarea{background:#f8fafc}.customer-portal-body .login-required{padding:24px;border:1px dashed #aac5eb;border-radius:14px;background:#f3f7ff;text-align:center}.customer-portal-body .login-required strong{display:block;font-size:15px}.customer-portal-body .login-required p{color:#6d7e94;font-size:10px;line-height:1.6}.customer-portal-body .login-required a{display:inline-flex;margin-top:8px;padding:10px 14px;border-radius:9px;background:#0b60dc;color:#fff;text-decoration:none;font-size:10px;font-weight:800}

/* Booking detail and payment */
.booking-detail-page{width:min(1350px,calc(100% - 56px));margin:auto;padding:39px 0 70px}.booking-detail-heading{margin-bottom:19px;display:grid;grid-template-columns:180px 1fr auto;align-items:center}.booking-detail-heading>a{color:#63758d;text-decoration:none;font-size:10px;font-weight:700}.booking-detail-heading>div{text-align:center}.booking-detail-heading>div>span{font-size:8px;letter-spacing:.15em;color:#7187a3;font-weight:800}.booking-detail-heading h1{margin:5px 0 3px;font-size:25px}.booking-detail-heading p{margin:0;color:#8390a1;font-size:9px}.booking-detail-heading>.portal-status{padding:7px 11px;font-size:9px!important}.portal-alert.success{background:#e4f7ec;border:1px solid #b9e8cd;color:#118051}.booking-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px}.booking-detail-main{display:grid;gap:17px}.route-ticket-card,.payment-upload-card,.booking-history-card,.booking-state-card{border:1px solid #dce5ef;border-radius:19px;background:#fff;overflow:hidden;box-shadow:0 10px 28px rgba(25,49,81,.05)}.route-ticket-card>header{padding:16px 21px;border-bottom:1px solid #edf1f5;display:flex;justify-content:space-between}.route-ticket-card header span,.payment-upload-card header>span,.booking-history-card header span{font-size:8px;letter-spacing:.15em;color:#7287a3;font-weight:800}.route-ticket-card header strong{font-size:10px}.ticket-route{padding:27px 30px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.ticket-route>div:last-child{text-align:right}.ticket-route small{font-size:8px;color:#8190a3;font-weight:800}.ticket-route h2{margin:7px 0 5px;font-size:22px}.ticket-route p{margin:0;color:#65768c;font-size:10px}.ticket-route i{font-style:normal;color:#1769dc;font-size:23px}.route-ticket-card>footer{padding:15px 21px;background:#f6f8fb;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.route-ticket-card footer span,.route-ticket-card footer strong{display:block}.route-ticket-card footer span{font-size:8px;color:#8391a2}.route-ticket-card footer strong{margin-top:5px;color:#24344b;font-size:10px}.payment-upload-card>header{padding:21px 23px 16px}.payment-upload-card header h2{font-size:18px;margin:6px 0 4px}.payment-upload-card header p{margin:0;color:#78889b;font-size:10px}.payment-countdown{margin:0 23px 19px;padding:13px 15px;border:1px solid #f0d395;border-radius:12px;background:#fff7e6;display:flex;align-items:center;gap:11px}.payment-countdown>span{font-size:20px}.payment-countdown small,.payment-countdown strong{display:block}.payment-countdown small{font-size:7px;color:#8b712f;font-weight:800}.payment-countdown strong{margin-top:4px;color:#8b5b08;font-size:12px}.payment-premium-form{padding:0 23px 21px;grid-template-columns:1fr 1fr}.payment-method-info{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.payment-method-info>div{padding:12px;border:1px solid #e0e7ef;border-radius:11px;background:#f8fafc}.payment-method-info strong,.payment-method-info span,.payment-method-info b{display:block}.payment-method-info strong{font-size:10px}.payment-method-info span{margin-top:4px;color:#738397;font-size:8px}.payment-method-info b{margin-top:4px;font-size:11px}.payment-method-info p{color:#68788c;font-size:8px;line-height:1.5}.payment-method-info img{max-width:130px;max-height:130px;object-fit:contain}.proof-upload{padding:15px;border:1px dashed #9dbce7;border-radius:12px;background:#f5f8fd}.proof-upload input{border:0;padding:8px 0;height:auto;background:transparent}.proof-upload small{color:#8190a2;font-size:8px}.cancel-booking-form{padding:14px 23px;border-top:1px solid #edf1f5;text-align:right}.cancel-booking-form button{border:0;background:transparent;color:#c23c49;font-size:9px;font-weight:800;cursor:pointer}.booking-state-card{padding:23px;display:flex;align-items:center;gap:16px}.booking-state-card>span{width:52px;height:52px;flex:0 0 52px;border-radius:50%;display:grid;place-items:center;font-size:23px;font-weight:800}.booking-state-card h2{margin:0 0 5px;font-size:17px}.booking-state-card p{margin:0;color:#68798e;font-size:10px;line-height:1.55}.booking-state-card.waiting>span{background:#e6efff;color:#1262d6}.booking-state-card.paid>span{background:#ddf7e8;color:#109057}.booking-state-card.cancelled>span{background:#edf0f4;color:#6d7989}.booking-history-card{height:max-content;padding-bottom:17px}.booking-history-card header{padding:20px;border-bottom:1px solid #edf1f5}.booking-history-card header h2{font-size:16px;margin:5px 0 0}.booking-timeline{padding:18px 20px}.booking-timeline>div{position:relative;display:grid;grid-template-columns:12px 1fr;gap:10px;padding-bottom:20px}.booking-timeline>div:not(:last-child):before{content:"";position:absolute;left:5px;top:12px;bottom:0;width:1px;background:#d9e2ed}.booking-timeline i{width:11px;height:11px;border:3px solid #c8dcfa;border-radius:50%;background:#1569dc}.booking-timeline strong,.booking-timeline small{display:block}.booking-timeline strong{font-size:10px}.booking-timeline small{margin-top:3px;color:#8391a3;font-size:7px}.booking-timeline p{margin:5px 0 0;color:#65768b;font-size:8px;line-height:1.5}.booking-history-card>a{margin:0 20px;display:flex;justify-content:center;padding:10px;border-radius:9px;background:#eef4fd;color:#0d5dcc;text-decoration:none;font-size:9px;font-weight:800}

/* Booking lookup */
.lookup-premium-page{min-height:calc(100vh - 116px);padding:65px 20px;display:grid;place-items:start center;background:radial-gradient(circle at 50% 20%,#fff,#eef3f9 65%)}.lookup-premium-card{width:min(560px,100%);padding:35px;border:1px solid #dce5ef;border-radius:22px;background:#fff;text-align:center;box-shadow:0 22px 55px rgba(24,47,79,.1)}.lookup-icon{width:60px;height:60px;margin:auto;border-radius:17px;background:linear-gradient(135deg,#0b66e5,#0949ae);color:#fff;display:grid;place-items:center;font-size:30px}.lookup-premium-card>div>small{display:block;margin-top:20px;color:#6c84a4;font-size:8px;letter-spacing:.15em;font-weight:800}.lookup-premium-card h1{font-size:28px;margin:7px 0}.lookup-premium-card>div>p{margin:0;color:#74849a;font-size:10px}.lookup-login-note{margin-top:18px!important;padding:11px;border-radius:10px;background:#eef5ff;color:#536d91!important;font-size:9px!important}.lookup-login-note a{color:#0b60d9;font-weight:800}.lookup-premium-card form{margin-top:20px;text-align:left}.lookup-premium-card form label{display:grid;gap:7px;color:#384a62;font-size:9px;font-weight:800}.lookup-premium-card form input{height:51px;padding:0 14px;border:1px solid #d7e1ed;border-radius:11px;text-align:center;text-transform:uppercase;font-size:14px;letter-spacing:.05em}.lookup-premium-card form button{width:100%;height:47px;margin-top:11px;border:0;border-radius:10px;background:#0b60dc;color:#fff;font-size:10px;font-weight:800}.lookup-dashboard-link{display:inline-block;margin-top:19px;color:#0b5fd5;text-decoration:none;font-size:9px;font-weight:800}

@media(max-width:900px){.journey-grid{grid-template-columns:1fr}.customer-portal-body .booking-grid,.booking-detail-grid{grid-template-columns:1fr}.customer-portal-body .booking-summary{position:static}.booking-history-card{order:-1}.journey-search{grid-template-columns:1fr 35px 1fr 150px}.payment-method-info{grid-template-columns:1fr}}
@media(max-width:620px){.journey-page,.customer-portal-body .booking-page,.booking-detail-page{width:calc(100% - 28px);padding-top:25px}.journey-heading h1{font-size:28px}.journey-search{height:auto;grid-template-columns:1fr;padding:12px}.journey-search i{display:none}.journey-search label{height:58px;padding:10px;border-bottom:1px solid #edf1f5}.journey-search button{height:48px;margin-top:8px}.journey-route{grid-template-columns:1fr 70px 1fr;padding-inline:17px}.journey-route strong{font-size:20px}.journey-result-head{align-items:start;flex-direction:column;gap:5px}.customer-portal-body .booking-grid{display:block}.customer-portal-body .seat-panel{margin-bottom:14px;padding:14px}.booking-detail-heading{grid-template-columns:1fr;gap:10px}.booking-detail-heading>div{text-align:left}.booking-detail-heading>.portal-status{justify-self:start}.ticket-route{padding:21px 17px}.route-ticket-card>footer{grid-template-columns:1fr 1fr}.payment-premium-form{grid-template-columns:1fr}.payment-premium-form>*{grid-column:1!important}}

/* Customer seat layout mirrors the exact admin Seat Builder canvas. */
.seat-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:20px}.seat-panel-heading>div:first-child>small{display:block;color:#6681a5;font-size:8px;font-weight:800;letter-spacing:.16em}.seat-panel-heading h2{margin:6px 0 4px;color:#0b2548;font-size:22px}.seat-panel-heading p{margin:0;color:#75859a;font-size:10px}.seat-panel-heading .legend{margin:0;flex-wrap:wrap}.customer-layout-frame{width:min(680px,100%);margin:0 auto;padding:14px;border:1px solid #d8e2ed;border-radius:44px;background:linear-gradient(180deg,#eef3f8,#fff 18%,#f8fafc);box-shadow:inset 0 0 0 5px #fff,0 18px 40px rgba(18,44,78,.09)}.customer-layout-canvas{position:relative;width:100%;min-height:540px;overflow:hidden;border:5px solid #243a51;border-radius:35px 35px 20px 20px;background:linear-gradient(90deg,#dce2e7 0 4%,#f6f8fa 4% 96%,#dce2e7 96% 100%);box-shadow:inset 0 0 35px rgba(43,61,80,.11)}.customer-layout-canvas:before{content:"";position:absolute;z-index:0;left:7%;right:7%;top:2.2%;height:8%;border-radius:28px 28px 12px 12px;background:linear-gradient(180deg,#161c22,#29333d);box-shadow:0 8px 16px rgba(0,0,0,.18)}.layout-front-label{position:absolute;z-index:1;top:4%;left:50%;transform:translateX(-50%);padding:5px 10px;border-radius:99px;background:rgba(255,255,255,.1);color:#dfe8f0;font-size:8px;font-weight:800;letter-spacing:.13em}.layout-seat,.layout-fixture{position:absolute;z-index:3;transform-origin:center;display:flex;align-items:center;justify-content:center}.layout-seat{min-width:24px;min-height:26px;padding:0;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 3px 3px rgba(18,46,26,.18));transition:filter .16s,scale .16s}.layout-seat:not(:disabled):hover{z-index:5;scale:1.08;filter:drop-shadow(0 6px 6px rgba(14,68,35,.25))}.seat-chair-icon{position:absolute;inset:2%;border:2px solid #25803b;border-radius:28% 28% 22% 22%;background:linear-gradient(180deg,#67cc58,#37a543 72%,#278637);box-shadow:inset 0 3px rgba(255,255,255,.32),inset 0 -3px rgba(24,91,42,.35)}.seat-chair-icon:before{content:"";position:absolute;left:12%;right:12%;top:8%;height:34%;border-radius:35%;background:linear-gradient(180deg,#72d562,#3cab48);box-shadow:inset 0 2px rgba(255,255,255,.28)}.seat-chair-icon:after{content:"";position:absolute;left:11%;right:11%;bottom:8%;height:33%;border-radius:20%;background:rgba(31,132,53,.46);box-shadow:inset 0 1px rgba(255,255,255,.2)}.layout-seat b{position:relative;z-index:2;max-width:78%;padding:2px 4px;border-radius:6px;background:#243b58;color:#fff;font-size:clamp(7px,.75vw,10px);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layout-seat small{position:absolute;z-index:2;left:50%;bottom:3%;transform:translateX(-50%);color:#fff;font-size:clamp(5px,.48vw,7px);font-weight:800}.layout-seat.vip .seat-chair-icon{border-color:#936f10;background:linear-gradient(180deg,#ffe27b,#e4af28 75%,#bd8612)}.layout-seat.unavailable,.layout-seat:disabled{cursor:not-allowed;filter:grayscale(.35);opacity:.72}.layout-seat.unavailable .seat-chair-icon,.layout-seat:disabled .seat-chair-icon{border-color:#737d88;background:linear-gradient(180deg,#c5cbd1,#929ba5 72%,#77818b)}.layout-seat.selected{z-index:6;filter:drop-shadow(0 0 8px rgba(15,103,230,.55))}.layout-seat.selected .seat-chair-icon{border-color:#0953ba;background:linear-gradient(180deg,#56a5ff,#1976e7 72%,#0758bf);box-shadow:inset 0 3px rgba(255,255,255,.35),0 0 0 3px rgba(30,123,239,.18)}.layout-fixture{z-index:2;flex-direction:column;gap:2px;border:1px solid #b8c5d3;border-radius:10px;background:#e8eef4;color:#39516c;text-align:center}.layout-fixture>span{font-size:clamp(8px,1.1vw,16px);font-weight:900}.layout-fixture>small{max-width:90%;font-size:clamp(5px,.55vw,8px);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixture-driver{background:#d9e9fb;color:#14538f}.fixture-door{background:#fff2d9;color:#93651a}.fixture-toilet{background:#e8e2ff;color:#5942a0}.fixture-stairs{background:#e5ebf1;color:#465a6f}.seat-layout-note{width:min(680px,100%);margin:13px auto 0;padding:10px 13px;border-radius:10px;background:#eef5ff;color:#526d91;display:flex;align-items:center;gap:9px}.seat-layout-note span{font-weight:800}.seat-layout-note p{margin:0;font-size:9px}.fallback-seat-layout{margin-top:10px}.book-button:disabled{cursor:not-allowed;opacity:.48}.book-button:not(:disabled){box-shadow:0 10px 24px rgba(21,91,215,.22);cursor:pointer}.selected-list>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #edf1f5;font-size:10px}.selected-list>div strong{color:#0a58c8}.hold-note{display:block;margin-top:9px;color:#7b899a;font-size:8px;line-height:1.5}
@media(max-width:900px){.seat-panel-heading{flex-direction:column}.seat-panel-heading .legend{width:100%}.customer-layout-frame{width:min(620px,100%)}}
@media(max-width:620px){.customer-layout-frame{padding:8px;border-radius:27px}.customer-layout-canvas{min-height:500px;border-width:3px;border-radius:23px 23px 14px 14px}.layout-seat{min-width:20px;min-height:22px}.layout-seat small{display:none}.layout-fixture>small{display:none}.seat-panel-heading h2{font-size:19px}}
/* Customer portal typography and layout refinement */
.customer-portal-body{font-size:15px;line-height:1.55}.journey-page,.customer-portal-body .booking-page,.booking-detail-page{width:min(1480px,calc(100% - 48px))}.journey-heading>span,.journey-result-head span,.seat-panel-heading>div:first-child>small{font-size:11px}.journey-heading h1{font-size:40px}.journey-heading p{font-size:15px}.journey-search small{font-size:11px}.journey-search input{font-size:15px}.journey-search button{font-size:14px}.journey-result-head h2{font-size:24px}.journey-result-head>b{font-size:13px}.journey-card-top span{font-size:13px}.journey-card-top b{font-size:11px}.journey-route small{font-size:10px}.journey-route strong{font-size:28px}.journey-route span{font-size:15px}.route-line small{font-size:9px}.journey-bus strong{font-size:13px}.journey-bus small{font-size:11px}.journey-card footer small,.journey-card footer span{font-size:10px}.journey-card footer strong{font-size:19px}.journey-card footer>a{font-size:12px;padding:12px 16px}.customer-portal-body .trip-head>a{font-size:13px}.customer-portal-body .trip-head h1{font-size:36px}.customer-portal-body .trip-head p{font-size:15px}.seat-panel-heading h2{font-size:25px}.seat-panel-heading p{font-size:13px}.customer-portal-body .legend{font-size:12px}.customer-layout-frame{width:min(590px,100%);padding:12px}.customer-layout-canvas{min-height:680px}.layout-seat b{font-size:clamp(9px,.72vw,12px)}.layout-seat small{font-size:clamp(7px,.5vw,9px)}.layout-fixture>span{font-size:clamp(11px,1vw,16px)}.layout-fixture>small{font-size:clamp(7px,.58vw,10px)}.fixture-toilet{display:none!important}.seat-layout-note p{font-size:12px}.customer-portal-body .booking-summary h2{font-size:22px}.customer-portal-body .booking-summary label{display:block;margin-top:12px;font-size:13px;font-weight:700}.customer-portal-body .booking-summary input,.customer-portal-body .booking-summary textarea{font-size:14px;padding:12px}.selected-list>div{font-size:13px}.hold-note{font-size:11px}.book-button{font-size:15px;padding:15px}.payment-method-info strong,.payment-method-info b{font-size:14px}.payment-method-info span,.payment-method-info p{font-size:12px}.payment-method-info img{display:block;max-width:260px;max-height:320px;object-fit:contain}.payment-premium-form label{font-size:13px}.payment-premium-form input,.payment-premium-form select,.payment-premium-form textarea{font-size:14px}.customer-portal-body nav[role="navigation"]{margin-top:24px}.customer-portal-body nav[role="navigation"] a,.customer-portal-body nav[role="navigation"] span{font-size:13px}
@media(max-width:900px){.journey-page,.customer-portal-body .booking-page,.booking-detail-page{width:calc(100% - 30px)}.customer-layout-frame{width:min(560px,100%)}.customer-layout-canvas{min-height:620px}}

/* Final customer typography scale — aligned with the 15px admin sidebar menu. */
.customer-portal-body,
.customer-portal-body button,
.customer-portal-body input,
.customer-portal-body select,
.customer-portal-body textarea{font-family:Inter,"Segoe UI",sans-serif}
.customer-portal-body{font-size:15px;color:#0b2346}
.customer-portal-body .portal-status{padding:7px 11px;font-size:12px!important;line-height:1.25}
.customer-account-dropdown{width:280px;padding:11px}
.account-dropdown-head strong{font-size:15px}.account-dropdown-head small{font-size:12px}
.customer-account-dropdown>a,.customer-account-dropdown button{padding:13px 15px;font-size:14px}

.booking-detail-page{padding-top:48px}
.booking-detail-heading{margin-bottom:25px;align-items:center}
.booking-detail-heading>a{font-size:14px;font-weight:700}
.booking-detail-heading>div>span,
.route-ticket-card>header>span,
.booking-history-card header>span{font-size:12px;letter-spacing:.13em;font-weight:800}
.booking-detail-heading h1{margin:8px 0 5px;font-size:32px;line-height:1.15;letter-spacing:-.025em}
.booking-detail-heading p{font-size:14px}
.booking-detail-grid{grid-template-columns:minmax(0,1fr) 330px;gap:20px}
.route-ticket-card>header{padding:22px 26px}
.route-ticket-card>header>strong{font-size:14px}
.ticket-route{padding:38px 30px}
.ticket-route small{font-size:12px;letter-spacing:.08em}
.ticket-route h2{margin:10px 0 7px;font-size:28px;line-height:1.1}
.ticket-route p{font-size:14px}
.ticket-route>i{font-size:27px}
.route-ticket-card>footer{padding:18px 26px}
.route-ticket-card>footer span{font-size:12px;line-height:1.4}
.route-ticket-card>footer strong{margin-top:7px;font-size:15px}

.booking-state-card{min-height:120px;padding:26px 28px;gap:18px}
.booking-state-card h2{margin-bottom:7px;font-size:21px}
.booking-state-card p{font-size:14px;line-height:1.6}
.booking-history-card header{padding:23px}
.booking-history-card header h2{margin-top:7px;font-size:21px}
.booking-timeline{padding:22px 23px}
.booking-timeline>div{grid-template-columns:15px 1fr;gap:12px;padding-bottom:24px}
.booking-timeline i{width:13px;height:13px}
.booking-timeline strong{font-size:14px;line-height:1.35}
.booking-timeline small{margin-top:5px;font-size:12px}
.booking-timeline p{margin-top:7px;font-size:13px;line-height:1.55}
.booking-history-card>a{margin:0 23px;padding:13px;font-size:14px}

.portal-hero span,.portal-panel-head>div>span,.upcoming-label span{font-size:11px}
.portal-hero p{font-size:15px}.portal-hero-actions a{font-size:14px}
.portal-stat-grid small{font-size:13px}.portal-stat-grid strong{font-size:26px}.portal-stat-grid p{font-size:12px}
.upcoming-label b{font-size:14px}.upcoming-route small{font-size:11px}.upcoming-route strong{font-size:19px}.upcoming-route span{font-size:13px}.upcoming-trip-card>a{font-size:13px}
.portal-panel-head h2{font-size:22px}.portal-panel-head p{font-size:13px}.portal-status-filter select{font-size:13px}
.portal-booking-row small{font-size:11px}.portal-booking-row strong{font-size:15px}.portal-booking-row>div>span{font-size:13px}.booking-total strong{font-size:16px}.row-action{font-size:13px}
.portal-empty p{font-size:14px}.portal-empty a{font-size:13px}

.payment-upload-card header h2{font-size:22px}.payment-upload-card header p{font-size:14px}
.payment-countdown small{font-size:11px}.payment-countdown strong{font-size:15px}
.proof-upload small,.cancel-booking-form button{font-size:12px}

@media(max-width:900px){.booking-detail-grid{grid-template-columns:1fr}.booking-history-card{order:0}}
@media(max-width:620px){.booking-detail-page{padding-top:28px}.booking-detail-heading h1{font-size:27px}.ticket-route h2{font-size:23px}.route-ticket-card>footer{grid-template-columns:1fr 1fr}.booking-history-card header h2{font-size:19px}}
