*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--gold: #C9A84C;--gold-light: #e5c97a;--gold-dim: rgba(201,168,76,.15);--bg: #06090F;--surface: #0d1117;--surface2: #161b22;--border: #21262d;--text: #e6edf3;--text-muted: #7d8590;--danger: #f85149;--success: #3fb950;--radius: 10px;--radius-lg: 16px}html{font-size:16px}body{font-family:-apple-system,SF Pro Text,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100dvh}#root{min-height:100dvh}a{color:var(--gold);text-decoration:none}a:hover{color:var(--gold-light)}button{cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;border:none;border-radius:var(--radius);padding:14px 24px;transition:all .2s}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:15px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:14px 16px;outline:none;width:100%;transition:border-color .2s;-webkit-appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--gold)}input::placeholder,textarea::placeholder{color:var(--text-muted)}select option{background:var(--surface2)}label{display:block;font-size:13px;font-weight:500;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.btn-primary{background:var(--gold);color:#000;width:100%;padding:16px;font-size:16px;border-radius:var(--radius);letter-spacing:.3px}.btn-primary:hover:not(:disabled){background:var(--gold-light)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border);padding:12px 20px}.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.badge-pending{background:#1c1800;color:#f5a623;border:1px solid #3d3000}.badge-scheduled{background:#001c2e;color:#4a9eff;border:1px solid #003a5e}.badge-active{background:#001c0e;color:#3fb950;border:1px solid #003a1e}.badge-done{background:#111;color:#7d8590;border:1px solid #21262d}.badge-cancelled{background:#1c0000;color:#f85149;border:1px solid #3d0000}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:100}.header-brand{display:flex;align-items:center;gap:10px;color:var(--text)}.header-logo{width:36px;height:36px;border-radius:8px}.header-brand-text{display:flex;flex-direction:column;line-height:1.1}.header-det{font-size:16px;font-weight:700;color:var(--gold);letter-spacing:2px}.header-tagline{font-size:10px;color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase}.header-nav{display:flex;align-items:center;gap:12px}.nav-link{font-size:14px;color:var(--text-muted);font-weight:500}.nav-link:hover{color:var(--gold)}.btn-sm{padding:8px 14px;font-size:13px}.booking-page{max-width:560px;margin:0 auto;padding:24px 16px 48px}.booking-hero{text-align:center;padding:32px 0 24px}.booking-hero h1{font-size:28px;font-weight:700;color:var(--text);margin-bottom:8px}.booking-hero p{font-size:15px;color:var(--text-muted)}.booking-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.divider{height:1px;background:var(--border);margin:4px 0}.form-error{background:#f851491a;border:1px solid rgba(248,81,73,.3);color:var(--danger);padding:12px 16px;border-radius:var(--radius);font-size:14px}.form-note{text-align:center;font-size:12px;color:var(--text-muted);margin-top:-4px}.form-consent{font-size:11px;color:var(--text-muted);text-align:center;line-height:1.6;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.form-consent a{color:var(--gold);text-decoration:underline}.booking-success{max-width:480px;margin:60px auto;padding:24px;text-align:center}.success-icon{width:64px;height:64px;background:var(--gold-dim);border:2px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--gold);margin:0 auto 20px}.booking-success h2{font-size:24px;font-weight:700;color:var(--text);margin-bottom:8px}.booking-success p{color:var(--text-muted);font-size:14px}.success-sub{margin-top:8px;line-height:1.6}.success-next{margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}@media (max-width: 480px){.form-row-2{grid-template-columns:1fr}}.login-page{min-height:calc(100dvh - 70px);display:flex;align-items:center;justify-content:center;padding:24px 16px}.login-card{width:100%;max-width:400px;text-align:center}.login-card h2{font-size:22px;font-weight:700;color:var(--text);margin-bottom:8px}.login-sub{font-size:14px;color:var(--text-muted);line-height:1.6}.login-error{background:#f851491a;border:1px solid rgba(248,81,73,.3);color:var(--danger);padding:10px 14px;border-radius:var(--radius);font-size:13px;margin-top:12px;text-align:left}.login-note{margin-top:24px;font-size:13px;color:var(--text-muted)}.magic-sent-icon{font-size:40px;margin-bottom:16px}.sent-email{color:var(--gold);font-weight:600;margin:4px 0 12px}.sent-note{font-size:13px;color:var(--text-muted);margin-top:8px;line-height:1.6}.verify-page{min-height:calc(100dvh - 70px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;color:var(--text-muted)}.verify-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.verify-card{max-width:380px;width:100%;text-align:center}.verify-icon{font-size:36px;margin-bottom:12px}.verify-card h2{color:var(--text);font-size:20px;margin-bottom:8px}.verify-card p{color:var(--text-muted);font-size:14px}.trips-page{max-width:600px;margin:0 auto;padding:24px 16px 48px}.trips-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px;gap:12px}.trips-header h1{font-size:24px;font-weight:700;color:var(--text)}.trips-header p{font-size:14px;color:var(--text-muted);margin-top:4px}.btn-book{padding:10px 16px;font-size:13px;white-space:nowrap}.trips-loading{display:flex;justify-content:center;padding:60px}.trips-empty{text-align:center;color:var(--text-muted);max-width:360px;margin:0 auto}.trips-section{margin-bottom:32px}.section-title{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.trips-list{display:flex;flex-direction:column;gap:10px}.trip-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;transition:border-color .2s;color:var(--text)}.trip-card:hover{border-color:var(--gold)}.trip-card-active{border-color:#c9a84c66}.trip-card-header{display:flex;align-items:flex-start;gap:14px}.trip-date{display:flex;flex-direction:column;align-items:center;background:var(--gold-dim);border:1px solid rgba(201,168,76,.3);border-radius:8px;padding:8px 12px;min-width:48px;flex-shrink:0}.trip-month{font-size:10px;font-weight:600;color:var(--gold);text-transform:uppercase}.trip-day{font-size:22px;font-weight:700;color:var(--gold);line-height:1}.trip-info{flex:1;min-width:0}.trip-service{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.trip-route{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.trip-loc{font-size:14px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.trip-arrow{color:var(--text-muted);font-size:12px;flex-shrink:0}.trip-time{font-size:12px;color:var(--text-muted);margin-top:4px}.trip-status{flex-shrink:0}.trip-driver{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:13px}.driver-label{color:var(--text-muted)}.driver-name{color:var(--text);font-weight:500}.driver-vehicle{color:var(--text-muted)}.status-page{max-width:520px;margin:0 auto;padding:20px 16px 48px}.back-link{font-size:13px;color:var(--text-muted);display:inline-block;margin-bottom:20px}.back-link:hover{color:var(--gold)}.status-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100dvh - 70px);gap:16px;color:var(--text-muted)}.status-header{margin-bottom:20px}.booking-ref{font-size:11px;color:var(--text-muted);font-family:monospace;margin-bottom:4px}.status-header h1{font-size:22px;font-weight:700;color:var(--text);margin-bottom:4px}.pickup-time{font-size:14px;color:var(--gold)}.live-banner{display:flex;align-items:center;gap:8px;background:#3fb9501a;border:1px solid rgba(63,185,80,.3);border-radius:var(--radius);padding:10px 14px;font-size:13px;color:var(--success);margin-bottom:16px}.live-dot{width:8px;height:8px;background:var(--success);border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.status-card{margin-bottom:12px}.timeline{display:flex;flex-direction:column;gap:0;position:relative}.timeline-step{display:flex;align-items:flex-start;gap:14px;position:relative}.step-dot{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;position:relative;z-index:1}.step-dot.done{background:var(--gold-dim);border:2px solid var(--gold);color:var(--gold);font-size:14px;font-weight:700}.step-dot.active{background:var(--gold);color:#000;font-size:18px;box-shadow:0 0 0 4px var(--gold-dim)}.step-dot.pending{background:var(--surface2);border:2px solid var(--border);filter:grayscale(1) opacity(.5)}.step-label{padding:8px 0;font-size:14px;color:var(--text);flex:1}.label-active{font-weight:700;color:var(--gold)}.label-pending{color:var(--text-muted)}.step-line{position:absolute;left:17px;top:36px;width:2px;height:24px;background:var(--border)}.step-line.line-done{background:var(--gold)}.trip-details-card,.driver-card{margin-bottom:12px}.trip-details-card h3,.driver-card h3{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:14px}.detail-rows{display:flex;flex-direction:column;gap:10px}.detail-row{display:flex;justify-content:space-between;gap:12px;font-size:14px}.detail-label{color:var(--text-muted);flex-shrink:0}.detail-value{color:var(--text);text-align:right;word-break:break-word}.driver-info{display:flex;align-items:center;gap:14px}.driver-avatar{width:48px;height:48px;border-radius:50%;background:var(--gold-dim);border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:var(--gold);flex-shrink:0}.driver-name{font-size:16px;font-weight:600;color:var(--text)}.driver-vehicle{font-size:13px;color:var(--text-muted);margin-top:2px}.driver-phone{display:block;font-size:13px;color:var(--gold);margin-top:6px}.cancelled-banner{display:flex;align-items:center;gap:10px;padding:16px;background:#f8514914;border:1px solid rgba(248,81,73,.2);border-radius:var(--radius);color:var(--danger);font-weight:600}.status-footer{text-align:center;margin-top:24px;color:var(--text-muted);font-size:13px}.dispatch-call{display:block;margin-top:8px;font-size:16px;font-weight:600;color:var(--gold)}
