:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-darker: #1e3a8a;--primary-light: #dbeafe;--primary-50: #eff6ff;--accent: #f97316;--pk-green: #15803d;--pk-green-bright: #22c55e;--ink: #0f172a;--ink-2: #334155;--muted: #64748b;--muted-2: #94a3b8;--line: #e2e8f0;--line-2: #cbd5e1;--bg: #f8fafc;--bg-2: #f1f5f9;--white: #ffffff;--success: #16a34a;--success-bg: #dcfce7;--danger: #dc2626;--danger-bg: #fee2e2;--warning: #d97706;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow: 0 4px 16px rgba(15, 23, 42, .08);--shadow-lg: 0 16px 40px rgba(15, 23, 42, .12);--shadow-primary: 0 8px 24px rgba(37, 99, 235, .28);--maxw: 1180px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}h1,h2,h3,h4{line-height:1.2;color:var(--ink);font-weight:700}ul{list-style:none}button{font-family:inherit;cursor:pointer}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}.container.narrow{max-width:920px}.section{padding:72px 0}.section-muted{background:var(--bg-2)}.section-head{text-align:center;max-width:640px;margin:0 auto 44px}.section-head h2{font-size:2rem;margin-bottom:12px}.section-head p{color:var(--muted);font-size:1.05rem}.section-head-row{display:flex;align-items:flex-end;justify-content:space-between;text-align:left;max-width:100%}.page-center{display:grid;place-items:center;min-height:60vh}.page-title-block{margin-bottom:28px}.page-title-block h1{font-size:1.9rem;margin-bottom:6px}.page-title-block p{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-sm);padding:11px 20px;font-size:.95rem;font-weight:600;line-height:1;transition:all .18s ease;white-space:nowrap;text-decoration:none}.btn:hover{text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.btn-outline{background:transparent;border-color:var(--line-2);color:var(--ink)}.btn-outline:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-ghost{background:var(--bg-2);color:var(--ink-2)}.btn-ghost:hover:not(:disabled){background:var(--line)}.btn-light{background:#fff;color:var(--primary)}.btn-light:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn-danger-ghost{background:var(--danger-bg);color:var(--danger)}.btn-danger-ghost:hover:not(:disabled){background:#fecaca}.btn-sm{padding:8px 14px;font-size:.85rem}.btn-lg{padding:14px 26px;font-size:1.02rem}.btn-block{width:100%}.link-btn{background:none;border:none;color:var(--primary);font-weight:600;font-size:.9rem;padding:0}.link-btn:hover{text-decoration:underline}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm)}.card-section-title{font-size:1.1rem;margin-bottom:18px}.form{display:flex;flex-direction:column;gap:18px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:.88rem;font-weight:600;color:var(--ink-2)}.field input,.field select,.searchbar-field input,.searchbar-field select{width:100%;padding:11px 13px;border:1px solid var(--line-2);border-radius:var(--radius-sm);font-size:.95rem;color:var(--ink);background:#fff;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.searchbar-field input:focus,.searchbar-field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.field input:disabled{background:var(--bg-2);color:var(--muted)}.input-icon{position:relative;display:flex;align-items:center}.input-icon svg{position:absolute;left:13px;color:var(--muted-2);font-size:.9rem}.input-icon input{padding-left:38px}.muted-note{color:var(--muted);font-size:.9rem}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:.92rem;font-weight:500}.alert-error{background:var(--danger-bg);color:#991b1b;border:1px solid #fecaca}.alert-success{background:var(--success-bg);color:#166534;border:1px solid #bbf7d0}.alert-info{background:var(--primary-50);color:var(--primary-darker);border:1px solid var(--primary-light)}.spinner{width:42px;height:42px;border:4px solid var(--primary-light);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton-card{height:260px;background:linear-gradient(100deg,var(--bg-2) 30%,#e9eef5 50%,var(--bg-2) 70%);background-size:200% 100%;animation:shimmer 1.3s infinite;border:none}@keyframes shimmer{to{background-position:-200% 0}}.navbar{position:sticky;top:0;z-index:100;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:68px}.brand{display:flex;align-items:center;gap:9px;font-size:1.35rem;font-weight:800;color:var(--ink)}.brand:hover{text-decoration:none}.brand-word{letter-spacing:-.02em}.brand-tld{color:var(--pk-green)}.brand-icon{width:30px;height:30px;flex-shrink:0}.brand-light{color:#fff}.brand-light .brand-tld{color:#4ade80}.nav-links{display:flex;align-items:center;gap:26px}.nav-links>a{color:var(--ink-2);font-weight:500;font-size:.96rem;transition:color .15s}.nav-links>a:hover{color:var(--primary);text-decoration:none}.nav-links>a.active{color:var(--primary);font-weight:600}.nav-cta.active{color:#fff}.nav-user{display:flex;align-items:center;gap:12px;padding-left:6px;border-left:1px solid var(--line)}.nav-user-chip{display:flex;align-items:center;gap:7px;font-weight:600;color:var(--ink)}.nav-user-chip svg{font-size:1.3rem;color:var(--primary)}.nav-toggle{display:none;background:none;border:none;font-size:1.4rem;color:var(--ink)}.footer{background:var(--ink);color:#cbd5e1;margin-top:auto}.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding:56px 20px 40px}.footer-brand p{margin:16px 0;max-width:320px;font-size:.92rem}.footer-social{display:flex;gap:12px}.footer-social a{width:38px;height:38px;display:grid;place-items:center;background:#ffffff14;border-radius:50%;color:#cbd5e1;transition:all .15s}.footer-social a:hover{background:var(--primary);color:#fff}.footer-col h4{color:#fff;font-size:1rem;margin-bottom:16px}.footer-col a{display:block;color:#94a3b8;font-size:.92rem;padding:5px 0}.footer-col a:hover{color:#fff;text-decoration:none}.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:20px 0}.footer-bottom .container{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted-2)}.hero{background:linear-gradient(135deg,var(--primary-darker) 0%,var(--primary) 55%,#3b82f6 100%);color:#fff;padding:72px 0 110px;position:relative}.hero-inner{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center}.hero-eyebrow{display:inline-block;background:#ffffff26;border:1px solid rgba(255,255,255,.25);padding:6px 14px;border-radius:999px;font-size:.85rem;font-weight:500;margin-bottom:20px}.hero-copy h1{color:#fff;font-size:3.2rem;line-height:1.08;margin-bottom:18px}.hero-copy h1 .accent{color:#fcd34d}.hero-copy>p{font-size:1.12rem;color:#dbeafe;max-width:480px;margin-bottom:28px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.hero .btn-outline{border-color:#ffffff80;color:#fff}.hero .btn-outline:hover{background:#ffffff1f;border-color:#fff;color:#fff}.hero-stats{display:flex;gap:14px;justify-content:flex-end}.hero-stats .stat{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);padding:22px 18px;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-stats .stat strong{display:block;font-size:1.8rem;color:#fff}.hero-stats .stat span{font-size:.82rem;color:#dbeafe}.hero-search{position:relative;margin-top:38px;z-index:5}.searchbar{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:16px;display:grid;grid-template-columns:repeat(4,1fr) auto;gap:12px;align-items:end}.searchbar-inline{box-shadow:var(--shadow);margin-top:24px}.searchbar-field{display:flex;flex-direction:column;gap:6px}.searchbar-field label{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.searchbar-field label svg{color:var(--primary)}.searchbar-btn{height:44px}.type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.type-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px 22px;text-align:center;transition:all .2s;color:var(--ink)}.type-card:hover{text-decoration:none;transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-light)}.type-icon{width:62px;height:62px;margin:0 auto 16px;display:grid;place-items:center;background:var(--primary-50);color:var(--primary);border-radius:16px;font-size:1.7rem}.type-card h3{margin-bottom:8px}.type-card p{color:var(--muted);font-size:.9rem;margin-bottom:14px}.type-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary);font-weight:600;font-size:.9rem}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.step{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px 22px}.step-icon{width:54px;height:54px;display:grid;place-items:center;background:var(--primary);color:#fff;border-radius:14px;font-size:1.4rem;margin-bottom:16px}.step-num{position:absolute;top:20px;right:22px;font-size:2.4rem;font-weight:800;color:var(--bg-2);line-height:1}.step h3{font-size:1.1rem;margin-bottom:8px}.step p{color:var(--muted);font-size:.92rem}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.feature{text-align:center;padding:14px}.feature-icon{font-size:2.2rem;color:var(--primary);margin-bottom:14px}.feature h3{font-size:1.08rem;margin-bottom:8px}.feature p{color:var(--muted);font-size:.92rem}.cta-band{background:linear-gradient(120deg,var(--primary-dark),var(--primary));color:#fff}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:52px 20px}.cta-inner h2{color:#fff;font-size:1.7rem;margin-bottom:8px}.cta-inner p{color:#dbeafe}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.vehicle-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;transition:all .2s}.vehicle-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:var(--primary-light)}.vehicle-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.vehicle-type-badge{display:inline-flex;align-items:center;gap:6px;background:var(--primary-50);color:var(--primary);font-size:.8rem;font-weight:700;padding:5px 11px;border-radius:999px;text-transform:capitalize}.vehicle-name{font-size:1.18rem;margin-bottom:2px}.vehicle-number{color:var(--muted);font-size:.85rem;margin-bottom:16px}.route{display:flex;align-items:center;gap:12px;margin-bottom:16px}.route-point{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink)}.route .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.route .dot.from{background:var(--primary)}.route .dot.to{background:var(--accent)}.route-arrow{color:var(--muted-2);flex-shrink:0}.route.big{gap:18px}.route.big .route-point{font-size:1.05rem}.route.big .route-point small{display:block;font-size:.75rem;font-weight:400;color:var(--muted)}.vehicle-meta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}.vehicle-meta span{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted)}.vehicle-meta svg{color:var(--muted-2)}.seats-left{color:var(--success)!important;font-weight:600}.seats-out{color:var(--danger)!important;font-weight:600}.vehicle-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.price strong{font-size:1.3rem;color:var(--ink)}.price span{color:var(--muted);font-size:.85rem}.star-rating{display:inline-flex;align-items:center;gap:6px}.star-rating .stars{display:inline-flex;gap:1px;color:#f59e0b}.rating-value{font-size:.85rem;font-weight:600;color:var(--ink-2)}.listings-hero{background:linear-gradient(135deg,var(--primary-darker),var(--primary));color:#fff;padding:44px 0 60px}.listings-hero h1{color:#fff;font-size:2rem;margin-bottom:6px}.listings-hero p{color:#dbeafe}.listings-body{padding:28px 20px 72px;margin-top:-24px}.listings-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:16px;flex-wrap:wrap}.results-count{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--ink-2)}.results-count svg{color:var(--primary)}.sort-select{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--muted);font-weight:500}.sort-select select{padding:8px 12px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:#fff;font-size:.9rem;color:var(--ink)}.details{padding:28px 0 72px}.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-weight:600;font-size:.9rem;margin-bottom:20px}.back-link:hover{color:var(--primary);text-decoration:none}.details-grid{display:grid;grid-template-columns:1fr 360px;gap:26px;align-items:start}.details-main{display:flex;flex-direction:column;gap:20px}.details-header{display:flex;flex-direction:column;gap:22px}.details-title h1{font-size:1.7rem;margin:12px 0 4px}.details-title .star-rating{margin-top:8px}.details-route{border-top:1px solid var(--line);padding-top:20px}.details-when{display:flex;flex-wrap:wrap;gap:18px;margin-top:16px}.details-when span{display:inline-flex;align-items:center;gap:7px;font-size:.9rem;color:var(--ink-2);font-weight:500}.details-when svg{color:var(--primary)}.amenities-card h3,.seat-card h3,.driver-card h3{font-size:1.15rem;margin-bottom:16px}.amenity-list{display:flex;flex-wrap:wrap;gap:12px}.amenity{display:inline-flex;align-items:center;gap:8px;background:var(--bg-2);padding:8px 14px;border-radius:999px;font-size:.88rem;color:var(--ink-2);font-weight:500}.amenity svg{color:var(--success)}.seat-card-head{margin-bottom:20px}.seat-card-head p{color:var(--muted);font-size:.9rem;margin-top:4px}.soldout-banner{background:var(--danger-bg);color:#991b1b;text-align:center;padding:22px;border-radius:var(--radius-sm);font-weight:600}.driver-info{display:flex;align-items:center;gap:14px}.driver-avatar{font-size:3rem;color:var(--primary)}.driver-info>div{flex:1}.driver-info strong{display:block;font-size:1.05rem}.driver-meta{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--success);font-weight:500}.details-aside{position:sticky;top:90px}.summary-card h3{font-size:1.15rem;margin-bottom:18px}.summary-row{display:flex;justify-content:space-between;align-items:center;font-size:.92rem;color:var(--ink-2);padding:7px 0}.summary-row span:first-child{color:var(--muted)}.summary-total{display:flex;justify-content:space-between;align-items:center;margin:14px 0 18px;padding-top:16px;border-top:1px dashed var(--line-2);font-size:1.05rem}.summary-total strong{font-size:1.4rem;color:var(--primary)}.summary-hint{margin-top:12px;font-size:.85rem;color:var(--muted);text-align:center}.seatmap{display:flex;flex-direction:column;gap:22px}.seatmap-cabin{border:2px solid var(--line);border-radius:18px;padding:20px;background:var(--bg);max-width:420px;margin:0 auto;width:100%}.seatmap-front{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding-bottom:16px;margin-bottom:16px;border-bottom:2px dashed var(--line-2);color:var(--muted);font-size:.85rem;font-weight:600}.seatmap-front svg{font-size:1.5rem;color:var(--ink-2)}.seatmap-rows{display:flex;flex-direction:column;gap:12px}.seat-row{display:flex;gap:12px;justify-content:center}.seat-cell{display:inline-flex;align-items:center}.aisle{width:18px}.seat{position:relative;width:48px;height:48px;border:2px solid var(--line-2);border-radius:10px 10px 6px 6px;background:#fff;display:grid;place-items:center;color:var(--muted);transition:all .15s}.seat svg{font-size:1.25rem}.seat .seat-num{position:absolute;bottom:2px;right:4px;font-size:.6rem;font-weight:700}.seat-available:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.seat-selected{background:var(--primary);border-color:var(--primary);color:#fff}.seat-booked{background:var(--bg-2);border-color:var(--line);color:var(--line-2);cursor:not-allowed}.seatmap-legend{display:flex;justify-content:center;gap:22px;flex-wrap:wrap}.seatmap-legend span{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--muted)}.legend-box{width:18px;height:18px;border-radius:5px;border:2px solid var(--line-2);background:#fff}.legend-box.selected{background:var(--primary);border-color:var(--primary)}.legend-box.booked{background:var(--bg-2);border-color:var(--line)}.checkout{padding:36px 20px 72px}.checkout-title{font-size:1.8rem;margin:8px 0 26px}.stepper{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.stepper li{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:600;font-size:.92rem}.stepper li:not(:last-child):after{content:"";width:40px;height:2px;background:var(--line);margin-left:10px}.step-dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--bg-2);color:var(--muted);font-size:.85rem;border:2px solid var(--line)}.stepper li.active{color:var(--primary)}.stepper li.active .step-dot{background:var(--primary);color:#fff;border-color:var(--primary)}.stepper li.done{color:var(--success)}.stepper li.done .step-dot{background:var(--success);color:#fff;border-color:var(--success)}.checkout-grid{display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}.checkout-main{display:flex;flex-direction:column;gap:18px}.checkout-aside{position:sticky;top:90px}.trip-summary{display:flex;align-items:center;gap:14px;margin-bottom:18px}.checkout-route{margin:18px 0}.seat-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.seat-chip{display:inline-flex;align-items:center;gap:7px;background:var(--primary-50);color:var(--primary-dark);font-weight:600;padding:8px 14px;border-radius:999px;font-size:.88rem}.passenger-info{display:flex;flex-direction:column;gap:10px}.passenger-info span{display:inline-flex;align-items:center;gap:10px;color:var(--ink-2)}.passenger-info svg{color:var(--muted-2)}.method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.method-option{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 12px;border:2px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--ink-2);font-weight:600;font-size:.85rem;text-align:center;transition:all .15s}.method-option svg:first-child{font-size:1.5rem;color:var(--muted)}.method-option:hover{border-color:var(--primary-light)}.method-option.active{border-color:var(--primary);background:var(--primary-50)}.method-option.active svg:first-child{color:var(--primary)}.method-check{position:absolute;top:8px;right:8px;color:var(--primary)!important;font-size:1rem!important}.secure-note{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.85rem;justify-content:center}.confirm-hero{text-align:center;margin:20px 0 28px}.confirm-check{font-size:4rem;color:var(--success);margin-bottom:14px;animation:pop .4s ease}.confirm-check.confirm-fail{color:var(--danger)}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.15)}to{transform:scale(1)}}.confirm-hero h1{font-size:2rem;margin-bottom:8px}.confirm-hero>p{color:var(--muted);margin-bottom:20px}.booking-ref{display:inline-flex;flex-direction:column;align-items:center;gap:2px;background:var(--primary-50);border:1px dashed var(--primary);border-radius:var(--radius);padding:14px 32px}.booking-ref svg{color:var(--primary);font-size:1.2rem}.booking-ref span{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.booking-ref strong{font-size:1.4rem;color:var(--primary-dark);letter-spacing:.04em}.confirm-ticket{border-top:4px solid var(--primary)}.ticket-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.confirm-ticket h3{font-size:1.3rem;margin-bottom:8px}.status-pill{font-size:.78rem;font-weight:700;padding:5px 12px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.status-pill.confirmed{background:var(--success-bg);color:#166534}.status-pill.cancelled{background:var(--danger-bg);color:#991b1b}.ticket-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:20px 0;border-top:1px dashed var(--line-2);border-bottom:1px dashed var(--line-2);margin:18px 0}.ticket-grid small{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.8rem;margin-bottom:6px}.ticket-grid strong{font-size:1rem}.ticket-total{display:flex;justify-content:space-between;align-items:center}.ticket-total span{color:var(--muted);text-transform:capitalize}.ticket-total strong{font-size:1.5rem;color:var(--primary)}.confirm-actions{display:flex;gap:14px;justify-content:center;margin-top:28px;flex-wrap:wrap}.auth-page{min-height:calc(100vh - 68px);display:grid;place-items:center;padding:48px 20px;background:radial-gradient(circle at top,var(--primary-50),var(--bg))}.auth-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:38px;width:100%;max-width:440px}.auth-card-wide{max-width:600px}.auth-head{text-align:center;margin-bottom:26px}.auth-head h1{font-size:1.7rem;margin-bottom:6px}.auth-head p{color:var(--muted)}.auth-foot{text-align:center;margin-top:22px;color:var(--muted);font-size:.92rem}.role-toggle{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.role-option{display:flex;flex-direction:column;align-items:center;gap:5px;padding:18px 12px;border:2px solid var(--line);border-radius:var(--radius);background:#fff;transition:all .15s}.role-option svg{font-size:1.5rem;color:var(--muted);margin-bottom:4px}.role-option span{font-weight:700;color:var(--ink)}.role-option small{color:var(--muted);font-size:.8rem}.role-option.active{border-color:var(--primary);background:var(--primary-50)}.role-option.active svg{color:var(--primary)}.demo-box{margin-top:22px;padding:16px;background:var(--bg-2);border-radius:var(--radius-sm);text-align:center}.demo-box p{font-size:.85rem;color:var(--muted);margin-bottom:10px}.demo-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:8px}.chip{background:#fff;border:1px solid var(--line-2);border-radius:999px;padding:6px 12px;font-size:.82rem;color:var(--ink-2);transition:all .15s}.chip:hover{border-color:var(--primary);color:var(--primary)}.demo-box small{font-size:.8rem;color:var(--muted)}.demo-box code{background:#fff;padding:1px 6px;border-radius:4px;border:1px solid var(--line)}.dashboard{padding-top:36px}.dashboard-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px;flex-wrap:wrap}.dashboard-head h1{font-size:1.9rem;margin-bottom:4px}.dashboard-head p{color:var(--muted)}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:40px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-sm)}.stat-card-icon{width:50px;height:50px;display:grid;place-items:center;background:var(--primary-50);color:var(--primary);border-radius:12px;font-size:1.3rem;flex-shrink:0}.stat-card strong{display:block;font-size:1.5rem;line-height:1.2}.stat-card span{color:var(--muted);font-size:.85rem}.dashboard-section{margin-bottom:44px}.dashboard-section h2{font-size:1.4rem;margin-bottom:18px}.driver-vehicle-list{display:flex;flex-direction:column;gap:16px}.driver-vehicle{display:grid;grid-template-columns:1.6fr 1fr auto;gap:24px;align-items:center}.driver-vehicle-info{display:flex;gap:16px;align-items:flex-start}.driver-vehicle-text h3{font-size:1.1rem;margin:8px 0}.driver-vehicle-occupancy{min-width:160px}.occupancy-bar{height:8px;background:var(--bg-2);border-radius:999px;overflow:hidden;margin-bottom:8px}.occupancy-fill{height:100%;background:linear-gradient(90deg,var(--primary),#3b82f6);border-radius:999px;transition:width .4s}.driver-vehicle-occupancy small{color:var(--muted);font-size:.82rem}.driver-vehicle-actions{display:flex;gap:8px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.data-table{width:100%;border-collapse:collapse;min-width:640px}.data-table th,.data-table td{text-align:left;padding:14px 18px;font-size:.9rem}.data-table thead{background:var(--bg-2)}.data-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.data-table tbody tr{border-top:1px solid var(--line)}.data-table tbody tr:hover{background:var(--bg)}.booking-list{display:flex;flex-direction:column;gap:16px}.booking-row{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}.booking-row.is-cancelled{opacity:.7}.booking-row-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}.booking-row-main h3{font-size:1.15rem;margin-bottom:12px}.booking-row-side{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.booking-ref-small{font-size:.82rem;color:var(--muted)}.booking-amount{font-size:1.4rem;font-weight:700;color:var(--ink)}.profile-banner{display:flex;align-items:center;gap:20px;padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.profile-avatar{font-size:4.5rem;color:var(--primary)}.profile-banner h2{font-size:1.5rem;margin-bottom:8px}.role-badge{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;padding:4px 12px;border-radius:999px;text-transform:capitalize}.role-badge.driver{background:var(--primary-50);color:var(--primary)}.role-badge.passenger{background:var(--success-bg);color:#166534}.joined{margin-top:8px;color:var(--muted);font-size:.85rem}.profile-logout{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.post-form{gap:18px}.type-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.type-pick{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 10px;border:2px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--ink-2);font-weight:600;transition:all .15s}.type-pick svg{font-size:1.6rem;color:var(--muted)}.type-pick:hover{border-color:var(--primary-light)}.type-pick.active{border-color:var(--primary);background:var(--primary-50)}.type-pick.active svg{color:var(--primary)}.amenity-picker{display:flex;flex-wrap:wrap;gap:10px}.amenity-chip{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border:1.5px solid var(--line-2);border-radius:999px;background:#fff;color:var(--ink-2);font-size:.88rem;font-weight:500;transition:all .15s}.amenity-chip svg{color:var(--primary)}.amenity-chip.active{border-color:var(--primary);background:var(--primary-50);color:var(--primary-dark)}.post-form-actions{display:flex;gap:14px}.empty-state{text-align:center;padding:60px 24px;background:#fff;border:1px dashed var(--line-2);border-radius:var(--radius)}.empty-icon{font-size:2.6rem;color:var(--muted-2);margin-bottom:16px}.empty-state h3{font-size:1.25rem;margin-bottom:8px}.empty-state p{color:var(--muted);margin-bottom:20px;max-width:420px;margin-left:auto;margin-right:auto}.notfound{text-align:center;padding:90px 20px}.notfound-icon{font-size:4rem;color:var(--primary);margin-bottom:10px}.notfound h1{font-size:4rem;color:var(--primary)}.notfound h2{font-size:1.5rem;margin:8px 0 12px}.notfound p{color:var(--muted);margin-bottom:26px}.access-denied{text-align:center;padding:60px 20px}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:#fffffff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -2px 16px #0f172a12;padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 4px 7px;color:var(--muted);font-size:.66rem;font-weight:600;letter-spacing:.01em;text-decoration:none;transition:color .15s;-webkit-tap-highlight-color:transparent}.bottom-nav-item:hover{text-decoration:none;color:var(--ink-2)}.bottom-nav-icon{font-size:1.32rem;transition:transform .15s}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-item.active .bottom-nav-icon{transform:translateY(-1px) scale(1.06)}@media (max-width: 980px){.hero-inner{grid-template-columns:1fr}.hero-stats{justify-content:flex-start}.details-grid,.checkout-grid{grid-template-columns:1fr}.details-aside,.checkout-aside{position:static}.type-grid,.steps,.feature-grid,.stat-cards,.card-grid{grid-template-columns:repeat(2,1fr)}.footer-inner{grid-template-columns:1fr 1fr}.driver-vehicle{grid-template-columns:1fr;gap:16px}.ticket-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 820px){.searchbar{grid-template-columns:1fr 1fr}.searchbar-btn{grid-column:1 / -1}}@media (max-width: 720px){.nav-toggle,.nav-links{display:none}.navbar-inner{height:56px}.bottom-nav{display:flex}.app-main{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.footer{display:none}.hero-copy h1{font-size:2.4rem}.section{padding:52px 0}.section-head h2{font-size:1.6rem}.section-head-row{flex-direction:column;align-items:flex-start;gap:14px}.cta-inner{flex-direction:column;text-align:center}.form-row,.method-grid,.role-toggle,.booking-row{grid-template-columns:1fr}.booking-row-side{flex-direction:row;align-items:center;justify-content:space-between;text-align:left;border-top:1px solid var(--line);padding-top:14px}}@media (max-width: 540px){.type-grid,.steps,.feature-grid,.stat-cards,.card-grid,.footer-inner,.type-picker{grid-template-columns:1fr}.hero-stats{flex-wrap:wrap}.hero-stats .stat{flex:1;min-width:90px}.auth-card{padding:26px 20px}.ticket-grid{grid-template-columns:1fr}.confirm-actions .btn{width:100%}.seat{width:42px;height:42px}}
