.toast-container{top:var(--spacing-lg);right:var(--spacing-lg);z-index:1000;gap:var(--spacing-sm);flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--spacing-sm);background-color:#fff;border-radius:12px;min-width:280px;max-width:360px;padding:16px;animation:.25s ease-out toast-slide-in;display:flex;box-shadow:0 8px 24px #0000001f}.toast-icon{flex-shrink:0;align-items:center;display:flex}.toast-message{font-family:var(--font-primary);flex:1;margin:0;font-size:.9rem;font-weight:500}.toast-success .toast-message{color:var(--color-success)}.toast-error .toast-message{color:var(--color-danger)}.toast-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;display:flex}.toast-close:hover{color:var(--color-text-primary)}@keyframes toast-slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media (width<=480px){.toast-container{left:var(--spacing-md);right:var(--spacing-md);top:var(--spacing-md)}.toast{min-width:0;max-width:none}}:root{--color-primary:#2d5f4c;--color-primary-hover:#244a3d;--color-accent:#e8a33d;--color-surface:#fafaf8;--color-surface-dark:#14181a;--color-pure-white:#fff;--color-danger:#de1135;--color-success:#3d8b5f;--color-text-primary:#1a1f1c;--color-text-muted:#6b7570;--font-primary:"Figtree", sans-serif;--font-default:13px;--font-xs:11px;--font-md:16px;--font-lg:24px;--font-xl:32px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--navbar-height:79px}body{font-family:var(--font-primary);background-color:var(--color-pure-white);color:var(--color-text-primary);margin:0;padding:0}*{box-sizing:border-box;outline-color:#2c84db;margin:0;padding:0}*,:before,:after{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--color-border)}html,body{height:100%}a{color:inherit;text-decoration:none}svg,img{flex-shrink:0}img,svg,video,canvas,audio,iframe,embed,object{display:block}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}ol,ul,menu{margin:0;padding:0;list-style:none}.page-loader-overlay{z-index:9999;background:#fffc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.page-loader-spinner{color:#2c84db;width:42px;height:42px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.auth-nav-wrapper{display:none}}.navbar{z-index:1000;background-color:var(--color-pure-white);border-bottom:1px solid #0000000f;position:fixed;top:0;left:0;right:0}.navbar-inner{padding:var(--spacing-md) var(--spacing-xl);justify-content:space-between;align-items:center;display:flex}.logoLink{align-items:center;text-decoration:none;display:flex}.links{align-items:center;gap:var(--spacing-lg);display:flex}.link{font-family:var(--font-primary);color:var(--color-text-primary);font-size:14px;font-weight:500;text-decoration:none;transition:color .2s}.link:hover{color:var(--color-primary)}.actions{align-items:center;gap:var(--spacing-sm);display:flex}.loginBtn{font-family:var(--font-primary);color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);align-items:center;gap:6px;font-size:14px;font-weight:600;text-decoration:none;transition:background-color .2s;display:flex}.loginBtn:hover{background-color:#2d5f4c14}.registerBtn{font-family:var(--font-primary);color:var(--color-surface);background-color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);font-size:14px;font-weight:600;text-decoration:none;transition:background-color .2s}.registerBtn:hover{background-color:var(--color-primary-hover)}.userMenu{position:relative}.userMenuTrigger{cursor:pointer;color:var(--color-text-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:4px;transition:background-color .2s;display:flex}.userMenuTrigger:hover{background-color:#2d5f4c14}.chevronOpen{transition:transform .2s;transform:rotate(180deg)}.userDropdown{background-color:var(--color-pure-white);border-radius:var(--radius-sm);min-width:200px;padding:var(--spacing-xs);flex-direction:column;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0000001f}.userDropdownItem{align-items:center;gap:var(--spacing-sm);font-family:var(--font-primary);color:var(--color-text-primary);cursor:pointer;padding:10px var(--spacing-sm);border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;width:100%;font-size:.9rem;font-weight:500;text-decoration:none;display:flex}.userDropdownItem:hover{background-color:#0000000a}.userDropdownLogout{color:var(--color-danger)}.navToggle{cursor:pointer;color:var(--color-text-primary);padding:var(--spacing-xs);background:0 0;border:none;align-items:center;display:none}.mobilePanel{background-color:var(--color-pure-white);border-top:1px solid #0000000f;flex-direction:column;max-height:0;transition:max-height .25s;display:flex;overflow:hidden}.mobilePanelOpen{max-height:400px}.mobileLink{font-family:var(--font-primary);color:var(--color-text-primary);padding:var(--spacing-md) var(--spacing-xl);border-bottom:1px solid #0000000a;font-size:1rem;font-weight:500;text-decoration:none}.mobileDivider{height:var(--spacing-sm)}.mobileLoginBtn,.mobileRegisterBtn,.mobileLogoutBtn{font-family:var(--font-primary);text-align:center;padding:var(--spacing-md) var(--spacing-xl);margin:0 var(--spacing-md) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;gap:var(--spacing-xs);border:none;font-size:1rem;font-weight:600;text-decoration:none;display:flex}.mobileLoginBtn{color:var(--color-primary);background-color:#2d5f4c14}.mobileRegisterBtn{color:var(--color-surface);background-color:var(--color-primary);margin-bottom:var(--spacing-md)}.mobileLogoutBtn{color:var(--color-danger);margin-bottom:var(--spacing-md);background-color:#c4453a14}@media (width<=768px){.links,.actions{display:none}.navToggle{display:flex}.navbar-inner{padding:var(--spacing-md) var(--spacing-lg)}}.footer{background:var(--color-surface);color:#ffffffb3;font-family:var(--font-primary);padding:64px var(--spacing-lg) var(--spacing-lg)}.footer-top{gap:var(--spacing-xl);max-width:1200px;padding-bottom:var(--spacing-xl);border-bottom:1px solid #ffffff1a;grid-template-columns:1.5fr repeat(3,1fr);margin:0 auto;display:grid}.footer-logo{width:auto;height:28px;display:block}.footer-tagline{font-size:var(--font-default);color:var(--color-text-primary);margin:var(--spacing-sm) 0 0;max-width:260px;line-height:1.6}.footer-heading{font-size:var(--font-default);color:var(--color-text-primary);margin:0 0 var(--spacing-md);font-weight:600}.footer-list{gap:var(--spacing-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.footer-list a{font-size:var(--font-default);color:var(--color-text-primary);text-decoration:none;transition:color .15s}.footer-list a:hover{color:var(--color-primary)}.footer-bottom{max-width:1200px;padding-top:var(--spacing-md);text-align:center;font-size:var(--font-xs);color:var(--color-surface-dark);margin:0 auto}@media (width<=900px){.footer-top{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.footer{padding:40px var(--spacing-md) var(--spacing-md)}.footer-top{gap:var(--spacing-lg);grid-template-columns:1fr}}.account-layout{align-items:flex-start;gap:var(--spacing-xl);max-width:1200px;padding:calc(var(--navbar-height) + var(--spacing-xl)) var(--spacing-lg) var(--spacing-xl);font-family:var(--font-primary);min-height:60vh;margin:0 auto;display:flex}.account-sidebar{top:calc(var(--navbar-height) + var(--spacing-lg));flex:0 0 220px;position:sticky}.account-sidebar-nav{background:var(--color-pure-white);border-radius:var(--radius-md);padding:var(--spacing-sm);border:1px solid #14181a14;flex-direction:column;gap:2px;display:flex}.account-sidebar-link{align-items:center;gap:var(--spacing-sm);font-size:var(--font-default);color:var(--color-text-muted);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:flex}.account-sidebar-link:hover{background:var(--color-surface);color:var(--color-text-primary)}.account-sidebar-link-active{color:var(--color-primary);background:#2d5f4c14}.account-content{flex:1 1 0;min-width:0}@media (width<=900px){.account-layout{align-items:stretch;gap:var(--spacing-md);padding-left:var(--spacing-md);padding-right:var(--spacing-md);flex-direction:column}.account-sidebar{display:none}}.city-select{gap:var(--spacing-xs);flex-direction:column;display:flex;position:relative}.city-select label{font-family:var(--font-primary);font-size:var(--font-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px;font-weight:600}.city-select input{font-family:var(--font-primary);font-size:var(--font-md);color:var(--color-text-primary);background-color:var(--color-pure-white);border:1px solid var(--color-text-muted);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);outline:none;transition:border-color .15s,box-shadow .15s}.city-select input::placeholder{color:var(--color-text-muted)}.city-select input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2d5f4c1f}.city-select input.input-error{border-color:var(--color-danger)}.city-select input.input-error:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #de11351f}.field-error{font-family:var(--font-primary);font-size:var(--font-xs);color:var(--color-danger);margin-top:2px;display:block}.city-dropdown{top:calc(100% + var(--spacing-xs));z-index:20;padding:var(--spacing-xs);background-color:var(--color-pure-white);border:1px solid var(--color-surface);border-radius:var(--radius-md);max-height:220px;margin:0;list-style:none;position:absolute;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #14181a1f}.city-dropdown li{font-family:var(--font-primary);font-size:var(--font-default);color:var(--color-text-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;transition:background-color .12s}.city-dropdown li:hover,.city-dropdown li:focus{background-color:var(--color-surface);color:var(--color-primary)}.city-dropdown li:not(:last-child){margin-bottom:2px}.city-dropdown-empty{font-family:var(--font-primary);font-size:var(--font-default);color:var(--color-text-muted);padding:var(--spacing-sm) var(--spacing-md)}.hero{justify-content:space-between;align-items:center;gap:var(--spacing-xl);max-width:1500px;padding:110px var(--spacing-lg);background:var(--color-pure-white);font-family:var(--font-primary);margin:0 auto;display:flex}.hero-content{flex:480px;max-width:560px}.hero-eyebrow{font-size:var(--font-xs);letter-spacing:1.5px;text-transform:uppercase;color:var(--color-primary);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md);background:#2d5f4c14;padding:6px 12px;font-weight:600;display:inline-block}.hero-title{font-size:var(--font-xl);letter-spacing:-.5px;color:var(--color-text-primary);margin:0 0 var(--spacing-md);font-weight:700;line-height:1.15}.hero-title-accent{color:var(--color-accent)}.hero-subtitle{font-size:var(--font-md);color:var(--color-text-muted);margin:0 0 var(--spacing-xl);max-width:440px;line-height:1.6}.search-box{background:var(--color-pure-white);border-radius:var(--radius-lg);padding:var(--spacing-sm);align-items:stretch;gap:var(--spacing-xs);display:flex;box-shadow:0 8px 24px #14181a14}.search-field,.search-box .city-select{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);min-width:0;box-shadow:none;flex-direction:column;flex:1 1 0;justify-content:center;gap:2px;transition:box-shadow .15s;display:flex;position:relative}.search-field label,.search-box .city-select label{font-size:var(--font-xs);color:var(--color-text-muted);text-transform:none;letter-spacing:normal;margin-bottom:0;font-weight:600}.search-field input,.search-box .city-select input{font-family:var(--font-primary);font-size:var(--font-default);color:var(--color-text-primary);background:0 0;border:none;outline:none;width:100%;padding:2px 0}.search-box .city-select input:focus,.search-box .city-select input.input-error,.search-box .city-select input.input-error:focus{box-shadow:none;border:none}.search-field input::placeholder,.search-box .city-select input::placeholder{color:var(--color-text-muted)}.search-field:focus-within,.search-box .city-select:focus-within{box-shadow:inset 0 -2px 0 var(--color-accent)}.search-field.has-error,.search-box .city-select.has-error{box-shadow:inset 0 -2px 0 var(--color-danger)}.search-box .city-dropdown{top:calc(100% + var(--spacing-sm))}.search-error{margin:var(--spacing-sm) 0 0;font-family:var(--font-primary);font-size:var(--font-xs);color:var(--color-danger)}.search-divider{width:1px;margin:var(--spacing-sm) 0;background:#14181a14;align-self:stretch}.search-button{background:var(--color-primary);color:var(--color-pure-white);font-family:var(--font-primary);font-size:var(--font-default);padding:14px var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;flex:none;align-self:center;font-weight:600;transition:background .15s}.search-button:hover{background:var(--color-primary-hover)}.search-button:focus-visible{outline:none;box-shadow:0 0 0 3px #2d5f4c40}.hero-image{flex:420px;justify-content:center;align-items:center;display:flex;position:relative}.hero-image img{z-index:1;width:100%;max-width:480px;height:auto;position:relative}.hero-route-line{background-image:repeating-linear-gradient(to right, var(--color-accent) 0px, var(--color-accent) 16px, transparent 16px, transparent 30px);z-index:0;height:3px;position:absolute;bottom:54px;left:-40px;right:-40px}@media (width<=900px){.hero{text-align:center;padding:40px var(--spacing-md);flex-direction:column-reverse}.hero-content{max-width:100%}.hero-subtitle{max-width:100%;margin-left:auto;margin-right:auto}.hero-route-line,.hero-image{display:none}}@media (width<=640px){.search-box{padding:var(--spacing-md);flex-direction:column}.search-divider{width:auto;height:1px;margin:0}.search-field,.search-box .city-select{padding:var(--spacing-sm) var(--spacing-xs)}.search-button{width:100%;margin-top:var(--spacing-sm)}}.popular-routes{max-width:1500px;padding:64px var(--spacing-lg);font-family:var(--font-primary);margin:0 auto}.popular-routes-header{margin-bottom:var(--spacing-xl)}.section-subtitle{font-size:var(--font-md);color:var(--color-text-muted);margin:0}.routes-grid{gap:var(--spacing-md);grid-template-columns:repeat(3,1fr);display:grid}.route-card{gap:var(--spacing-lg);background:var(--color-pure-white);border-radius:var(--radius-md);padding:var(--spacing-lg);text-align:left;cursor:pointer;font-family:var(--font-primary);border:1px solid #14181a14;flex-direction:column;transition:border-color .15s,transform .15s;display:flex}.route-card:hover{border-color:var(--color-primary);transform:translateY(-2px)}.route-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.route-cities{align-items:center;gap:var(--spacing-sm);display:flex}.route-city{font-size:var(--font-md);color:var(--color-text-primary);font-weight:600}.route-path{color:var(--color-accent);flex:auto;align-items:center;gap:4px;display:flex}.route-dot{background:var(--color-accent);border-radius:50%;flex-shrink:0;width:5px;height:5px}.route-dash{background-image:repeating-linear-gradient(to right, var(--color-accent) 0px, var(--color-accent) 4px, transparent 4px, transparent 8px);flex:auto;height:1px}.route-arrow{flex-shrink:0}.route-meta{justify-content:space-between;align-items:baseline;display:flex}.route-duration{font-size:var(--font-default);color:var(--color-text-muted)}.route-price{font-size:var(--font-lg);color:var(--color-primary);font-weight:700}.route-price-label{font-size:var(--font-xs);color:var(--color-text-muted);margin-right:2px;font-weight:400}@media (width<=900px){.routes-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.popular-routes{padding:40px var(--spacing-md)}.routes-grid{grid-template-columns:1fr}.route-cities{flex-wrap:wrap}}.how-it-works{max-width:1500px;padding:64px var(--spacing-lg);font-family:var(--font-primary);margin:0 auto}.how-it-works-header{text-align:center;margin-bottom:48px}.steps-track{gap:var(--spacing-xl);grid-template-columns:repeat(3,1fr);display:grid}.step{text-align:center;padding:0 var(--spacing-md);position:relative}.step-marker{margin-bottom:var(--spacing-md);flex-direction:column;align-items:center;display:flex;position:relative}.step-icon{background:var(--color-primary);width:56px;height:56px;color:var(--color-pure-white);z-index:1;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.step-number{font-size:var(--font-xs);color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-accent);z-index:2;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-weight:700;display:flex;position:absolute;top:-8px;right:calc(50% - 44px)}.step-connector{top:28px;left:calc(50% + 28px + var(--spacing-md));right:calc(-50% + 28px + var(--spacing-md));background-image:repeating-linear-gradient(to right, var(--color-accent) 0px, var(--color-accent) 6px, transparent 6px, transparent 12px);height:2px;position:absolute}.step-title{font-size:var(--font-md);color:var(--color-text-primary);margin:0 0 var(--spacing-xs);font-weight:600}.step-description{font-size:var(--font-default);color:var(--color-text-muted);max-width:260px;margin:0 auto;line-height:1.6}@media (width<=900px){.steps-track{grid-template-columns:1fr;gap:40px}.step-connector{display:none}}@media (width<=600px){.how-it-works{padding:40px var(--spacing-md)}}.why-choose{max-width:1500px;padding:64px var(--spacing-lg);font-family:var(--font-primary);margin:0 auto}.why-choose-header{text-align:center;margin-bottom:48px}.section-eyebrow{font-size:var(--font-xs);letter-spacing:1.5px;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--spacing-xs);font-weight:600;display:inline-block}.section-title{font-size:var(--font-lg);letter-spacing:-.5px;color:var(--color-text-primary);margin:0;font-weight:700}.features-grid{gap:var(--spacing-lg);grid-template-columns:repeat(4,1fr);display:grid}.feature-card{padding:var(--spacing-lg);background:var(--color-pure-white);border-radius:var(--radius-md);border:1px solid #14181a14;flex-direction:column;align-items:flex-start;transition:border-color .15s,transform .15s;display:flex}.feature-card:hover{border-color:var(--color-primary);transform:translateY(-2px)}.feature-icon{border-radius:var(--radius-sm);width:48px;height:48px;color:var(--color-primary);margin-bottom:var(--spacing-md);background:#2d5f4c14;justify-content:center;align-items:center;display:flex}.feature-title{font-size:var(--font-md);color:var(--color-text-primary);margin:0 0 var(--spacing-xs);font-weight:600}.feature-description{font-size:var(--font-default);color:var(--color-text-muted);margin:0;line-height:1.6}@media (width<=900px){.features-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.why-choose{padding:40px var(--spacing-md)}.features-grid{grid-template-columns:1fr}}.cta-banner{max-width:1500px;padding:64px var(--spacing-xl);background:var(--color-primary);border-radius:var(--radius-lg);text-align:center;font-family:var(--font-primary);margin:0 auto 64px;position:relative;overflow:hidden}.cta-route-line{background-image:repeating-linear-gradient(90deg,#ffffff2e 0 10px,#0000 10px 22px);height:2px;position:absolute;top:50%;left:0;right:0}.cta-content{z-index:1;position:relative}.cta-title{font-size:var(--font-xl);letter-spacing:-.5px;color:var(--color-pure-white);margin:0 0 var(--spacing-sm);font-weight:700}.cta-subtitle{font-size:var(--font-md);color:#fffc;margin:0 0 var(--spacing-xl)}.cta-button{align-items:center;gap:var(--spacing-sm);background:var(--color-accent);color:var(--color-text-primary);font-family:var(--font-primary);font-size:var(--font-default);padding:14px var(--spacing-xl);border-radius:var(--radius-md);cursor:pointer;border:none;font-weight:600;transition:transform .15s,background .15s;display:inline-flex}.cta-button:hover{transform:translateY(-2px)}.cta-button:focus-visible{outline:2px solid var(--color-pure-white);outline-offset:2px}@media (width<=600px){.cta-banner{padding:40px var(--spacing-md)}.cta-title{font-size:var(--font-lg)}}.container{text-align:center;min-height:100vh;padding:var(--spacing-lg);background-color:var(--color-surface);flex-direction:column;justify-content:center;align-items:center;display:flex}.title{color:var(--color-primary);margin-bottom:var(--spacing-sm);font-size:2.5rem;font-weight:700}.subtitle{color:var(--color-text-muted);margin-bottom:var(--spacing-xl);font-size:1.1rem}.button{background-color:var(--color-primary);color:var(--color-surface);padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-sm);font-family:var(--font-primary);cursor:pointer;border:none;font-size:1rem;font-weight:600;transition:background-color .2s}.button:hover{background-color:var(--color-primary-hover)}.empty-state{text-align:center;max-width:480px;min-height:60vh;padding:var(--spacing-xl) var(--spacing-lg);font-family:var(--font-primary);flex-direction:column;justify-content:center;align-items:center;margin:0 auto;display:flex}.empty-state-image{width:100%;max-width:clamp(180px,32vw,280px);height:auto;margin-bottom:var(--spacing-lg)}.empty-state-title{font-size:var(--font-lg);color:var(--color-text-primary);margin:0 0 var(--spacing-sm);font-weight:700}.empty-state-text{font-size:var(--font-default);color:var(--color-text-muted);margin:0;line-height:1.6}.empty-state-text strong{color:var(--color-text-primary);font-weight:600}@media (width<=480px){.empty-state{min-height:50vh;padding:var(--spacing-lg) var(--spacing-md)}}.trip-card{justify-content:space-between;align-items:stretch;gap:var(--spacing-lg);background:var(--color-pure-white);border-radius:var(--radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);font-family:var(--font-primary);border:1px solid #14181a14;transition:box-shadow .15s,border-color .15s;display:flex}.trip-card:hover{border-color:#2d5f4c33;box-shadow:0 8px 24px #14181a14}.trip-card-main{align-items:center;gap:var(--spacing-xl);flex:auto;min-width:0;display:flex}.trip-card-operator{flex-direction:column;flex:0 0 160px;gap:2px;min-width:0;display:flex}.trip-card-operator-name{font-size:var(--font-default);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.trip-card-bus-name{font-size:var(--font-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trip-card-timing{align-items:center;gap:var(--spacing-sm);flex:auto;min-width:0;display:flex}.trip-card-time-block{flex-direction:column;flex:none;align-items:center;gap:2px;display:flex}.trip-card-time{font-size:var(--font-md);color:var(--color-text-primary);white-space:nowrap;font-weight:700}.trip-card-time-label{font-size:var(--font-xs);color:var(--color-text-muted)}.trip-card-duration{align-items:center;gap:var(--spacing-xs);flex:auto;min-width:60px;display:flex}.trip-card-duration-line{background:#14181a26;flex:auto;height:1px}.trip-card-duration-text{font-size:var(--font-xs);color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:4px;display:flex}.trip-card-route{font-size:var(--font-xs);color:var(--color-text-muted);white-space:nowrap;flex:none;align-items:center;gap:4px;display:flex}.trip-card-aside{align-items:center;gap:var(--spacing-lg);padding-left:var(--spacing-lg);border-left:1px solid #14181a14;flex:none;display:flex}.trip-card-fare{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.trip-card-fare-amount{font-size:var(--font-lg);color:var(--color-text-primary);white-space:nowrap;font-weight:700}.trip-card-fare-label{font-size:var(--font-xs);color:var(--color-text-muted)}.trip-card-seats{font-size:var(--font-xs);color:var(--color-success);white-space:nowrap;align-items:center;gap:4px;font-weight:600;display:flex}.trip-card-seats-low{color:var(--color-accent)}.trip-card-button{background:var(--color-primary);color:var(--color-pure-white);font-family:var(--font-primary);font-size:var(--font-default);padding:12px var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;flex:none;font-weight:600;transition:background .15s}.trip-card-button:hover:not(:disabled){background:var(--color-primary-hover)}.trip-card-button:disabled{background:var(--color-text-muted);cursor:not-allowed;opacity:.6}.trip-card-button:focus-visible{outline:none;box-shadow:0 0 0 3px #2d5f4c40}@media (width<=900px){.trip-card{gap:var(--spacing-md);flex-direction:column}.trip-card-main{align-items:stretch;gap:var(--spacing-md);flex-direction:column}.trip-card-operator{flex:none}.trip-card-route{align-self:flex-start}.trip-card-aside{padding-left:0;padding-top:var(--spacing-md);border-top:1px solid #14181a14;border-left:none;justify-content:space-between;width:100%}}@media (width<=480px){.trip-card{padding:var(--spacing-md)}.trip-card-aside{align-items:stretch;gap:var(--spacing-sm);flex-direction:column}.trip-card-fare{align-items:flex-start}.trip-card-button{width:100%}}.search-results{max-width:1100px;min-height:100vh;padding:var(--spacing-xl) var(--spacing-lg);font-family:var(--font-primary);margin:0 auto;padding-top:110px}.search-results-heading{gap:var(--spacing-xs);font-size:var(--font-lg);color:var(--color-text-primary);margin:0 0 var(--spacing-lg);flex-direction:column;font-weight:700;display:flex}.search-results-subheading{font-size:var(--font-default);color:var(--color-text-muted);font-weight:500}.search-results-empty{text-align:center;max-width:480px;min-height:60vh;padding:var(--spacing-xl) var(--spacing-lg);font-family:var(--font-primary);flex-direction:column;justify-content:center;align-items:center;margin:0 auto;display:flex}.search-results-empty-icon{width:clamp(56px,12vw,96px);height:clamp(56px,12vw,96px);color:var(--color-primary);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);background:#2d5f4c14;border-radius:50%}.search-results-empty-title{font-size:var(--font-lg);color:var(--color-text-primary);margin:0 0 var(--spacing-sm);font-weight:700}.search-results-empty-text{font-size:var(--font-default);color:var(--color-text-muted);margin:0;line-height:1.6}.search-results-empty-text strong{color:var(--color-text-primary);font-weight:600}@media (width<=480px){.search-results-empty{min-height:50vh;padding:var(--spacing-lg) var(--spacing-md)}.search-results{padding:var(--spacing-lg) var(--spacing-md)}}.search-results-list{flex-direction:column;display:flex}.seat-map{font-family:var(--font-primary)}.seat-map-legend{gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);flex-wrap:wrap;display:flex}.seat-legend-item{align-items:center;gap:var(--spacing-xs);font-size:var(--font-xs);color:var(--color-text-muted);display:flex}.seat-swatch{border-radius:var(--radius-sm);width:14px;height:14px;display:inline-block}.seat-swatch-available{background:var(--color-pure-white);border:1px solid var(--color-text-muted)}.seat-swatch-selected{background:var(--color-primary)}.seat-swatch-booked{background:var(--color-text-muted);opacity:.4}.seat-map-grid{gap:var(--spacing-sm);flex-direction:column;align-items:center;display:flex}.seat-map-row{gap:var(--spacing-sm);display:flex}.seat-btn{border-radius:var(--radius-sm);border:1px solid var(--color-text-muted);background:var(--color-pure-white);width:44px;height:44px;color:var(--color-text-primary);font-family:var(--font-primary);font-size:var(--font-xs);cursor:pointer;font-weight:600;transition:background .12s,border-color .12s,color .12s}.seat-btn:hover:not(:disabled){border-color:var(--color-primary)}.seat-btn-selected{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-pure-white)}.seat-btn-booked{background:var(--color-surface);color:var(--color-text-muted);opacity:.5;cursor:not-allowed;border-color:#0000}@media (width<=480px){.seat-btn{width:38px;height:38px;font-size:10px}.seat-map-row{gap:var(--spacing-xs)}}.seat-map-driver-row{margin-bottom:var(--spacing-md);padding-right:var(--spacing-sm);justify-content:flex-end;display:flex}.seat-map-driver{font-size:var(--font-xs);color:var(--color-text-muted);background:var(--color-surface);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.seat-map-decks{gap:var(--spacing-xl);flex-wrap:wrap;justify-content:center;display:flex}.seat-deck{align-items:center;gap:var(--spacing-sm);flex-direction:column;display:flex}.seat-deck-title{font-size:var(--font-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px;margin:0 0 var(--spacing-xs);font-weight:700}@media (width<=640px){.seat-map-decks{align-items:center;gap:var(--spacing-lg);flex-direction:column}}.detail-panel{background:var(--color-pure-white);border-radius:var(--radius-md);padding:var(--spacing-lg);font-family:var(--font-primary);border:1px solid #14181a14}.detail-panel-title{font-size:var(--font-default);color:var(--color-text-primary);margin:0 0 var(--spacing-md);font-weight:700}.detail-panel-empty{font-size:var(--font-xs);color:var(--color-text-muted);margin:0}.stop-list{gap:var(--spacing-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.stop-item{align-items:center;gap:var(--spacing-sm);font-size:var(--font-default);color:var(--color-text-primary);display:flex}.stop-marker{color:var(--color-primary);flex:none;display:flex}.stop-city{align-items:center;gap:var(--spacing-sm);flex:auto;display:flex}.stop-tag{font-size:var(--font-xs);color:var(--color-primary);border-radius:var(--radius-sm);background:#2d5f4c14;padding:2px 8px;font-weight:600}.stop-tag-drop{color:var(--color-accent);background:#e8a33d1f}.stop-time{font-size:var(--font-xs);color:var(--color-text-muted);white-space:nowrap}.bus-type-badge{font-size:var(--font-xs);color:var(--color-primary);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md);text-transform:capitalize;background:#2d5f4c14;padding:4px 10px;font-weight:600;display:inline-block}.amenity-list{gap:var(--spacing-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.amenity-item{align-items:center;gap:var(--spacing-xs);font-size:var(--font-default);color:var(--color-text-primary);display:flex}.amenity-item svg{color:var(--color-success);flex:none}.policy-list{padding-left:var(--spacing-md);gap:var(--spacing-sm);flex-direction:column;margin:0;display:flex}.policy-list li{font-size:var(--font-default);color:var(--color-text-muted);line-height:1.6}.trip-summary-bar{z-index:10;justify-content:space-between;align-items:center;gap:var(--spacing-lg);background:var(--color-pure-white);width:100%;padding:var(--spacing-md) var(--spacing-lg);font-family:var(--font-primary);border-top:1px solid #14181a1a;display:flex;position:sticky;bottom:0;box-shadow:0 -8px 24px #14181a0f}.trip-summary-info{flex-direction:column;gap:2px;display:flex}.trip-summary-count{font-size:var(--font-default);color:var(--color-text-primary);font-weight:600}.trip-summary-seats{font-size:var(--font-xs);color:var(--color-text-muted)}.trip-summary-total{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.trip-summary-amount{font-size:var(--font-lg);color:var(--color-text-primary);font-weight:700}.trip-summary-label{font-size:var(--font-xs);color:var(--color-text-muted)}.trip-summary-button{background:var(--color-primary);color:var(--color-pure-white);font-family:var(--font-primary);font-size:var(--font-default);padding:14px var(--spacing-xl);border-radius:var(--radius-md);cursor:pointer;border:none;flex:none;font-weight:600;transition:background .15s}.trip-summary-button:hover:not(:disabled){background:var(--color-primary-hover)}.trip-summary-button:disabled{background:var(--color-text-muted);opacity:.5;cursor:not-allowed}.trip-summary-error{font-size:var(--font-xs);color:var(--color-danger);margin-top:2px}@media (width<=640px){.trip-summary-bar{padding:var(--spacing-sm) var(--spacing-md);flex-wrap:wrap}.trip-summary-button{width:100%;margin-top:var(--spacing-sm);order:3}}#tripDetails{background-color:var(--color-surface)}.trip-details{max-width:1100px;padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-lg);font-family:var(--font-primary);margin:0 auto;padding-top:110px}.trip-details-header{justify-content:space-between;align-items:center;gap:var(--spacing-lg);background:var(--color-pure-white);border-radius:var(--radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border:1px solid #14181a14;flex-wrap:wrap;display:flex}.trip-details-route{font-size:var(--font-lg);color:var(--color-text-primary);margin:0;font-weight:700}.trip-details-date{font-size:var(--font-xs);color:var(--color-text-muted);margin:4px 0 0}.trip-details-timing{align-items:center;gap:var(--spacing-md);display:flex}.trip-details-time-block{flex-direction:column;align-items:center;gap:2px;display:flex}.trip-details-time{font-size:var(--font-md);color:var(--color-text-primary);font-weight:700}.trip-details-time-label,.trip-details-duration{font-size:var(--font-xs);color:var(--color-text-muted)}.trip-details-operator{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.trip-details-operator-name{font-size:var(--font-default);color:var(--color-text-primary);font-weight:700}.trip-details-bus-name{font-size:var(--font-xs);color:var(--color-text-muted)}.trip-details-body{gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);grid-template-columns:2fr 1fr;display:grid}.trip-details-main,.trip-details-aside{gap:var(--spacing-lg);flex-direction:column;display:flex}@media (width<=900px){.trip-details-body{grid-template-columns:1fr}.trip-details-header{flex-direction:column;align-items:flex-start}.trip-details-operator{align-items:flex-start}}@media (width<=480px){.trip-details-timing{justify-content:space-between;width:100%}}.booking-confirmation{text-align:center;max-width:480px;min-height:60vh;padding:var(--spacing-xl) var(--spacing-lg);font-family:var(--font-primary);flex-direction:column;justify-content:center;align-items:center;margin:0 auto;display:flex}.booking-confirmation-icon{width:clamp(56px,12vw,80px);height:clamp(56px,12vw,80px);margin-bottom:var(--spacing-lg)}.booking-confirmation-icon-success{color:var(--color-success)}.booking-confirmation-icon-error{color:var(--color-danger)}.booking-confirmation-title{font-size:var(--font-lg);color:var(--color-text-primary);margin:0 0 var(--spacing-sm);font-weight:700}.booking-confirmation-text{font-size:var(--font-default);color:var(--color-text-muted);margin:0 0 var(--spacing-lg);line-height:1.6}.booking-confirmation-text strong{color:var(--color-text-primary);font-weight:600}.booking-confirmation-link{font-size:var(--font-default);color:var(--color-primary);font-weight:600;text-decoration:none}.booking-confirmation-link:hover{color:var(--color-primary-hover)}.boarding-select{max-width:560px;padding:var(--spacing-xl) var(--spacing-lg);font-family:var(--font-primary);margin:0 auto;padding-top:110px}.boarding-select-title{font-size:var(--font-lg);color:var(--color-text-primary);margin:0 0 var(--spacing-xs);font-weight:700}.boarding-select-subtitle{font-size:var(--font-default);color:var(--color-text-muted);margin:0 0 var(--spacing-xl)}.boarding-select-form{gap:var(--spacing-lg);background:var(--color-pure-white);border-radius:var(--radius-md);padding:var(--spacing-lg);border:1px solid #14181a14;flex-direction:column;display:flex}.boarding-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.boarding-field label{font-size:var(--font-xs);color:var(--color-text-muted);font-weight:600}.boarding-field select{font-family:var(--font-primary);font-size:var(--font-default);color:var(--color-text-primary);background:var(--color-pure-white);border:1px solid var(--color-text-muted);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);outline:none}.boarding-field select:focus{border-color:var(--color-primary)}.boarding-field select:disabled{background:var(--color-surface);cursor:not-allowed}.boarding-select-error{font-size:var(--font-xs);color:var(--color-danger);margin:0}.boarding-select-button{background:var(--color-primary);color:var(--color-pure-white);font-family:var(--font-primary);font-size:var(--font-default);padding:14px var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;border:none;font-weight:600;transition:background .15s}.boarding-select-button:hover{background:var(--color-primary-hover)}.passenger-details{max-width:640px;padding:var(--spacing-xl) var(--spacing-lg);font-family:var(--font-primary);margin:0 auto;padding-top:110px}.passenger-details-title{font-size:var(--font-lg);color:var(--color-text-primary);margin:0 0 var(--spacing-xs);font-weight:700}.passenger-details-subtitle{font-size:var(--font-default);color:var(--color-text-muted);margin:0 0 var(--spacing-xl)}.passenger-details-form{gap:var(--spacing-lg);flex-direction:column;display:flex}.passenger-card{background:var(--color-pure-white);border-radius:var(--radius-md);padding:var(--spacing-lg);gap:var(--spacing-md);border:1px solid #14181a14;flex-direction:column;display:flex}.passenger-card-title{font-size:var(--font-default);color:var(--color-text-primary);margin:0;font-weight:700}.passenger-field{gap:var(--spacing-xs);flex-direction:column;flex:1 1 0;display:flex}.passenger-field label,.passenger-gender-label{font-size:var(--font-xs);color:var(--color-text-muted);font-weight:600}.passenger-field input[type=text],.passenger-field input[type=number]{font-family:var(--font-primary);font-size:var(--font-default);color:var(--color-text-primary);background:var(--color-pure-white);border:1px solid var(--color-text-muted);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);outline:none}.passenger-field input:focus{border-color:var(--color-primary)}.passenger-field input.input-error{border-color:var(--color-danger)}.passenger-field-row{gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.passenger-gender-options{gap:var(--spacing-md);padding-top:6px;display:flex}.passenger-radio{font-size:var(--font-default);color:var(--color-text-primary);cursor:pointer;align-items:center;gap:6px;display:flex}.field-error{font-size:var(--font-xs);color:var(--color-danger)}.passenger-details-submit-error{font-size:var(--font-xs);color:var(--color-danger);margin:0}.passenger-details-button{background:var(--color-primary);color:var(--color-pure-white);font-family:var(--font-primary);font-size:var(--font-default);padding:14px var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;border:none;font-weight:600;transition:background .15s}.passenger-details-button:hover:not(:disabled){background:var(--color-primary-hover)}.passenger-details-button:disabled{background:var(--color-text-muted);opacity:.6;cursor:not-allowed}@media (width<=480px){.passenger-field-row{flex-direction:column}}.my-bookings{font-family:var(--font-primary)}.my-bookings-title{font-size:var(--font-lg);color:var(--color-text-primary);margin:0 0 var(--spacing-lg);font-weight:700}.my-bookings-filters{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-wrap:wrap;display:flex}.my-bookings-filter{font-family:var(--font-primary);font-size:var(--font-xs);color:var(--color-text-muted);background:var(--color-pure-white);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #14181a14;padding:6px 14px;font-weight:600;transition:background .15s,color .15s}.my-bookings-filter:hover{background:var(--color-surface)}.my-bookings-filter-active{background:var(--color-primary);color:var(--color-pure-white);border-color:var(--color-primary)}.my-bookings-list{gap:var(--spacing-md);flex-direction:column;display:flex}.booking-card{justify-content:space-between;align-items:center;gap:var(--spacing-lg);background:var(--color-pure-white);border-radius:var(--radius-md);padding:var(--spacing-lg);border:1px solid #14181a14;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:flex}.booking-card:hover{border-color:#2d5f4c33;box-shadow:0 8px 24px #14181a14}.booking-card-main{flex-direction:column;gap:4px;min-width:0;display:flex}.booking-card-reference{font-size:var(--font-xs);color:var(--color-primary);font-weight:700}.booking-card-route{font-size:var(--font-default);color:var(--color-text-primary);font-weight:600}.booking-card-date{font-size:var(--font-xs);color:var(--color-text-muted);align-items:center;gap:4px;display:flex}.booking-card-aside{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.booking-card-seats{font-size:var(--font-xs);color:var(--color-text-muted)}.booking-card-amount{font-size:var(--font-default);color:var(--color-text-primary);font-weight:700}.booking-card-status{font-size:var(--font-xs);border-radius:var(--radius-sm);padding:2px 10px;font-weight:600}.booking-card-status-confirmed{color:var(--color-success);background:#3d8b5f1f}.booking-card-status-cancelled,.booking-card-status-expired{color:var(--color-danger);background:#de11351a}.booking-card-status-pending{color:var(--color-accent);background:#e8a33d1f}@media (width<=640px){.booking-card{box-sizing:border-box;align-items:flex-start;gap:var(--spacing-sm);flex-direction:column;width:100%}.booking-card-main,.booking-card-aside{width:100%;min-width:0}}.confirm-modal-overlay{z-index:2000;padding:var(--spacing-lg);background:#14181a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-modal{background:var(--color-pure-white);border-radius:var(--radius-lg);width:100%;max-width:400px;padding:var(--spacing-lg);font-family:var(--font-primary);animation:.2s confirm-modal-in}@keyframes confirm-modal-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.confirm-modal-title{font-size:var(--font-md);color:var(--color-text-primary);margin:0 0 var(--spacing-sm);font-weight:700}.confirm-modal-message{font-size:var(--font-default);color:var(--color-text-muted);margin:0 0 var(--spacing-lg);line-height:1.5}.confirm-modal-actions{justify-content:flex-end;gap:var(--spacing-sm);display:flex}.confirm-modal-btn{font-family:var(--font-primary);font-size:var(--font-default);padding:10px var(--spacing-lg);border-radius:var(--radius-sm);background:var(--color-pure-white);color:var(--color-text-primary);cursor:pointer;border:1px solid #14181a1f;font-weight:600}.confirm-modal-btn:hover{background:var(--color-surface)}.confirm-modal-btn-primary{background:var(--color-primary);color:var(--color-pure-white);border-color:var(--color-primary)}.confirm-modal-btn-primary:hover{background:var(--color-primary-hover)}.confirm-modal-btn-danger{background:var(--color-danger);border-color:var(--color-danger)}.confirm-modal-btn-danger:hover{background:#b80e2b}@media (width<=640px){.confirm-modal-overlay{align-items:flex-end;padding:0}.confirm-modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;animation:.25s confirm-modal-slide-up}@keyframes confirm-modal-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.confirm-modal-actions{flex-direction:column-reverse}.confirm-modal-btn{width:100%}}.booking-details-page{font-family:var(--font-primary)}.booking-details-back{font-size:var(--font-xs);color:var(--color-text-muted);margin-bottom:var(--spacing-lg);align-items:center;gap:6px;font-weight:600;text-decoration:none;display:inline-flex}.booking-details-back:hover{color:var(--color-primary)}.booking-details-header{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-direction:column;display:flex}.booking-details-reference{font-size:var(--font-xs);color:var(--color-primary);font-weight:700}.booking-details-route{font-size:var(--font-lg);color:var(--color-text-primary);margin:4px 0 0;font-weight:700}.booking-details-status{font-size:var(--font-xs);border-radius:var(--radius-sm);align-self:flex-start;padding:4px 12px;font-weight:600}.booking-details-status-confirmed{color:var(--color-success);background:#3d8b5f1f}.booking-details-status-cancelled,.booking-details-status-expired{color:var(--color-danger);background:#de11351a}.booking-details-status-pending{color:var(--color-accent);background:#e8a33d1f}.booking-details-grid,.booking-details-main,.booking-details-aside{gap:var(--spacing-lg);flex-direction:column;display:flex}.detail-row{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) 0;font-size:var(--font-default);border-bottom:1px solid #14181a0f;display:flex}.detail-row:last-child{border-bottom:none}.detail-row-label{color:var(--color-text-muted);font-size:var(--font-xs);align-items:center;gap:6px;display:flex}.detail-row-value{color:var(--color-text-primary);text-align:right;font-weight:600}.detail-row-value-danger{color:var(--color-danger)}.detail-row-total{padding-top:var(--spacing-md);border-top:2px solid var(--color-text-primary);margin-top:var(--spacing-xs)}.detail-row-total .detail-row-value{font-size:var(--font-md)}.passenger-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.passenger-row{gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-surface);border-radius:var(--radius-sm);flex-direction:column;display:flex}.passenger-row-info{align-items:center;gap:var(--spacing-md);display:flex}.passenger-row-seat{border-radius:var(--radius-sm);background:var(--color-primary);width:40px;height:40px;color:var(--color-pure-white);font-size:var(--font-xs);flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.passenger-row-name{font-size:var(--font-default);color:var(--color-text-primary);align-items:center;gap:6px;margin:0;font-weight:600;display:flex}.passenger-row-meta{font-size:var(--font-xs);color:var(--color-text-muted);margin:2px 0 0}.passenger-row-actions{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.passenger-row-status{font-size:var(--font-xs);border-radius:var(--radius-sm);padding:2px 10px;font-weight:600}.passenger-row-status-active{color:var(--color-success);background:#3d8b5f1f}.passenger-row-status-cancelled{color:var(--color-danger);background:#de11351a}.passenger-action-btn{font-family:var(--font-primary);font-size:var(--font-xs);color:var(--color-text-primary);background:var(--color-pure-white);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #14181a1f;align-items:center;gap:4px;margin-left:auto;padding:6px 12px;font-weight:600;display:flex}.passenger-action-btn:hover:not(:disabled){background:var(--color-surface)}.passenger-action-btn-danger{color:var(--color-danger);border-color:#de11354d;margin-left:0}.passenger-action-btn-danger:hover:not(:disabled){background:#de11350f}.passenger-action-btn:disabled{opacity:.6;cursor:not-allowed}@media (width>=900px){.booking-details-grid{flex-direction:row;align-items:flex-start}.booking-details-main{flex:2 1 0}.booking-details-aside{top:calc(var(--navbar-height) + var(--spacing-lg));flex:1 1 0;position:sticky}.booking-details-header,.passenger-row{flex-direction:row;justify-content:space-between;align-items:center}}.profile-page{font-family:var(--font-primary);gap:var(--spacing-lg);flex-direction:column;display:flex}.profile-title{font-size:var(--font-lg);color:var(--color-text-primary);margin:0;font-weight:700}.profile-card{align-items:center;gap:var(--spacing-md);background:var(--color-pure-white);border-radius:var(--radius-md);padding:var(--spacing-lg);border:1px solid #14181a14;display:flex}.profile-avatar{background:var(--color-primary);width:56px;height:56px;color:var(--color-pure-white);font-size:var(--font-md);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.profile-name{font-size:var(--font-md);color:var(--color-text-primary);margin:0 0 4px;font-weight:700}.profile-joined{font-size:var(--font-xs);color:var(--color-text-muted);align-items:center;gap:4px;margin:0;display:flex}@media (width<=480px){.profile-card{padding:var(--spacing-md)}.profile-avatar{width:48px;height:48px;font-size:var(--font-default)}}.register-page{background-color:var(--color-pure-white);justify-content:center;align-items:center;min-height:100vh;display:flex}.register-box{background-color:var(--color-pure-white);width:100%;max-width:400px;padding:var(--spacing-xl)}.register-header{justify-content:center;display:flex}.register-logo-link{text-decoration:none;display:flex}.register-title{color:var(--color-text-primary);margin-bottom:var(--spacing-xs);text-align:center;font-size:23px;font-weight:700}.register-form{gap:var(--spacing-md);flex-direction:column;display:flex}.register-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.register-field label{font-size:var(--font-default);color:var(--color-text-primary);font-weight:600}.register-field input{box-sizing:border-box;width:100%;height:52px;font-family:var(--font-primary);font-size:var(--font-md);border-radius:var(--radius-sm);border:1px solid #0000001f;outline:none;padding:0 16px;transition:border-color .2s}.register-field input:focus{border-color:var(--color-primary)}.register-input-wrapper{align-items:center;display:flex;position:relative}.register-input-wrapper.input-error input{border-color:var(--color-danger);padding-right:40px}.register-input-wrapper.input-error input:focus{border-color:var(--color-danger)}.register-button{width:100%;height:52px;font-family:var(--font-primary);font-size:var(--font-md);color:var(--color-surface);background-color:var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;border:none;font-weight:600;transition:background-color .2s}.register-button:hover{background-color:var(--color-primary-hover)}.register-button:disabled{opacity:.6;cursor:not-allowed}.register-footer{text-align:center;color:var(--color-text-muted);margin-top:var(--spacing-lg);font-size:.85rem}.register-footer a{color:var(--color-primary);font-weight:600;text-decoration:none}@media (width<=768px){.register-page{justify-content:flex-start;align-items:flex-start;min-height:100dvh;padding:48px 20px 24px}.register-box{max-width:100%;padding:0}.register-title{margin-bottom:var(--spacing-lg)}.register-form{gap:var(--spacing-lg)}.register-field input{height:52px;padding:0 16px;font-size:16px}.register-button{height:52px;font-size:16px}.register-footer{margin-top:var(--spacing-xl)}}.verify-otp-page{background-color:var(--color-pure-white);min-height:100vh;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.verify-otp-box{width:100%;max-width:400px;padding:var(--spacing-xl);text-align:center;background-color:#fff}.verify-otp-header{margin-bottom:var(--spacing-md);justify-content:center;display:flex}.verify-otp-logo-link{text-decoration:none;display:flex}.verify-otp-title{color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-size:1.6rem;font-weight:700}.verify-otp-subtitle{color:var(--color-text-muted);margin-bottom:var(--spacing-lg);font-size:.9rem;line-height:1.5}.verify-otp-subtitle strong{color:var(--color-text-primary)}.verify-otp-form{gap:var(--spacing-lg);flex-direction:column;display:flex}.otp-input-group{justify-content:center;gap:var(--spacing-sm);display:flex}.otp-digit-input{text-align:center;width:44px;height:52px;font-size:1.4rem;font-weight:600;font-family:var(--font-primary);color:var(--color-text-primary);border-radius:var(--radius-sm);border:1px solid #00000024;outline:none;transition:border-color .2s}.otp-digit-input:focus{border-color:var(--color-primary);border-width:2px}.verify-otp-button{font-family:var(--font-primary);color:var(--color-surface);background-color:var(--color-primary);padding:12px var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;border:none;font-size:1rem;font-weight:600;transition:background-color .2s}.verify-otp-button:hover{background-color:var(--color-primary-hover)}.verify-otp-button:disabled{opacity:.6;cursor:not-allowed}.verify-otp-footer{text-align:center;color:var(--color-text-muted);margin-top:var(--spacing-lg);font-size:.85rem}.verify-otp-footer a{color:var(--color-primary);font-weight:600;text-decoration:none}@media (width<=400px){.otp-digit-input{width:38px;height:46px;font-size:1.2rem}}.login-page{background-color:var(--color-pure-white);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background-color:var(--color-pure-white);width:100%;max-width:400px;padding:var(--spacing-xl)}.login-header{justify-content:center;display:flex}.login-logo-link{text-decoration:none;display:flex}.login-title{color:var(--color-text-primary);margin-bottom:var(--spacing-xs);text-align:center;font-size:23px;font-weight:700}.login-form{gap:var(--spacing-md);flex-direction:column;display:flex}.login-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.login-field label{font-size:var(--font-default);color:var(--color-text-primary);font-weight:600}.login-field input{box-sizing:border-box;width:100%;height:52px;font-family:var(--font-primary);font-size:var(--font-md);border-radius:var(--radius-sm);border:1px solid #0000001f;outline:none;padding:0 16px;transition:border-color .2s}.login-field input:focus{border-color:var(--color-primary)}.login-input-wrapper{align-items:center;display:flex;position:relative}.login-input-wrapper.input-error input{border-color:var(--color-danger);padding-right:40px}.login-input-wrapper.input-error input:focus{border-color:var(--color-danger)}.login-forgot-row{justify-content:flex-end;margin-top:-4px;display:flex}.login-forgot-link{color:var(--color-text-muted);font-size:.85rem;text-decoration:none}.login-forgot-link:hover{color:var(--color-primary)}.login-button{width:100%;height:52px;font-family:var(--font-primary);font-size:var(--font-md);color:var(--color-surface);background-color:var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;border:none;font-weight:600;transition:background-color .2s}.login-button:hover{background-color:var(--color-primary-hover)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;color:var(--color-text-muted);margin-top:var(--spacing-lg);font-size:.85rem}.login-footer a{color:var(--color-primary);font-weight:600;text-decoration:none}@media (width<=768px){.login-page{justify-content:flex-start;align-items:flex-start;min-height:100dvh;padding:48px 20px 24px}.login-box{max-width:100%;padding:0}.login-title{margin-bottom:var(--spacing-lg)}.login-form{gap:var(--spacing-lg)}.login-field input{height:52px;padding:0 16px;font-size:16px}.login-button{height:52px;font-size:16px}.login-footer{margin-top:var(--spacing-xl)}}.forgot-password-page{background-color:var(--color-pure-white);justify-content:center;align-items:center;min-height:100vh;display:flex}.forgot-password-box{background-color:var(--color-pure-white);width:100%;max-width:400px;padding:var(--spacing-xl)}.forgot-password-header{justify-content:center;display:flex}.forgot-password-logo-link{text-decoration:none;display:flex}.forgot-password-title{color:var(--color-text-primary);margin-bottom:var(--spacing-xs);text-align:center;font-size:23px;font-weight:700}.forgot-password-subtitle{color:var(--color-text-muted);margin-bottom:var(--spacing-lg);text-align:center;font-size:.9rem;line-height:1.5}.forgot-password-subtitle strong{color:var(--color-text-primary)}.forgot-password-form{gap:var(--spacing-md);flex-direction:column;display:flex}.forgot-password-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.forgot-password-field label{font-size:var(--font-default);color:var(--color-text-primary);font-weight:600}.forgot-password-field input{box-sizing:border-box;width:100%;height:52px;font-family:var(--font-primary);font-size:var(--font-md);border-radius:var(--radius-sm);border:1px solid #0000001f;outline:none;padding:0 16px;transition:border-color .2s}.forgot-password-field input:focus{border-color:var(--color-primary)}.forgot-password-input-wrapper{align-items:center;display:flex;position:relative}.forgot-password-input-wrapper.input-error input{border-color:var(--color-danger);padding-right:40px}.forgot-password-input-wrapper.input-error input:focus{border-color:var(--color-danger)}.forgot-password-button{width:100%;height:52px;font-family:var(--font-primary);font-size:var(--font-md);color:var(--color-surface);background-color:var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;text-align:center;box-sizing:border-box;border:none;font-weight:600;text-decoration:none;transition:background-color .2s;display:inline-block}.forgot-password-button:hover{background-color:var(--color-primary-hover)}.forgot-password-button:disabled{opacity:.6;cursor:not-allowed}.forgot-password-button-link{margin-top:var(--spacing-lg)}.forgot-password-footer{text-align:center;color:var(--color-text-muted);margin-top:var(--spacing-lg);font-size:.85rem}.forgot-password-footer a{color:var(--color-primary);font-weight:600;text-decoration:none}@media (width<=768px){.forgot-password-page{justify-content:flex-start;align-items:flex-start;min-height:100dvh;padding:48px 20px 24px}.forgot-password-box{max-width:100%;padding:0}.forgot-password-title{margin-bottom:var(--spacing-lg)}.forgot-password-form{gap:var(--spacing-lg)}.forgot-password-field input{height:52px;padding:0 16px;font-size:16px}.forgot-password-button{height:52px;font-size:16px}.forgot-password-footer{margin-top:var(--spacing-xl)}}.reset-password-page{background-color:var(--color-pure-white);min-height:100vh;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.reset-password-box{width:100%;max-width:400px;padding:var(--spacing-xl);background-color:#fff}.reset-password-header{margin-bottom:var(--spacing-md);justify-content:center;display:flex}.reset-password-logo-link{text-decoration:none;display:flex}.reset-password-title{color:var(--color-text-primary);margin-bottom:var(--spacing-xs);text-align:center;font-size:20px;font-weight:700}.reset-password-subtitle{color:var(--color-text-muted);text-align:center;margin-bottom:var(--spacing-lg);font-size:.9rem}.reset-password-form{gap:var(--spacing-md);flex-direction:column;display:flex}.reset-password-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.reset-password-field label{color:var(--color-text-primary);font-size:.85rem;font-weight:600}.reset-password-field input{font-family:var(--font-primary);padding:10px var(--spacing-md);border-radius:var(--radius-sm);box-sizing:border-box;border:1px solid #0000001f;outline:none;width:100%;font-size:1rem;transition:border-color .2s}.reset-password-field input:focus{border-color:var(--color-primary)}.reset-password-input-wrapper{align-items:center;display:flex;position:relative}.reset-password-input-wrapper.input-error input{border-color:var(--color-danger);padding-right:40px}.input-error-icon{color:var(--color-danger);pointer-events:none;position:absolute;right:12px}.field-error-message{color:var(--color-danger);margin:2px 0 0;font-size:.78rem}.reset-password-button{font-family:var(--font-primary);color:var(--color-surface);background-color:var(--color-primary);padding:12px var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;margin-top:var(--spacing-xs);border:none;font-size:1rem;font-weight:600;transition:background-color .2s}.reset-password-button:hover{background-color:var(--color-primary-hover)}.reset-password-button:disabled{opacity:.6;cursor:not-allowed}
