*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,Segoe UI,Helvetica,Arial,sans-serif;background:#fafafa;color:#111;line-height:1.5}.toast-container{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:1000}.toast{padding:12px 20px;border-radius:8px;font-size:13px;font-weight:500;animation:slideIn .3s ease;max-width:320px}.toast-success{background:#111;color:#fff}.toast-error{background:#c62828;color:#fff}.toast-info{background:#333;color:#fff}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.navbar{display:flex;justify-content:space-between;align-items:center;padding:0 24px;height:56px;background:none;color:#111}.nav-brand{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700;text-decoration:none;color:#111;letter-spacing:-.5px}.nav-logo{height:28px;width:auto;object-fit:contain}.nav-links{display:flex;gap:20px;align-items:center}.nav-links a{text-decoration:none;color:#0a0a0a;font-size:14px;transition:all .1s ease}.nav-links a:hover{color:#501b1b}.logout-btn{background:none;border:1px solid #444;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:13px;color:#111}.logout-btn:hover{color:#111}.nav-profile{display:flex;align-items:center;gap:6px}.avatar{width:28px;height:28px;border-radius:50%;background:#5fce41;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.profile-name{font-size:13px;color:#111}.auth-page{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.auth-form{width:100%;max-width:360px}.auth-form h1{font-size:24px;font-weight:600;margin-bottom:4px}.auth-form .subtitle{color:#888;font-size:14px;margin-bottom:28px}.auth-form label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;margin-top:16px;color:#333}.auth-form input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none;background:#fff}.auth-form input:focus{border-color:#111}.auth-form button{width:100%;padding:10px;margin-top:24px;background:#111;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.auth-form button:hover{background:#333}.auth-form button:disabled{background:#999;cursor:not-allowed}.auth-form .link{text-align:center;margin-top:16px;font-size:13px;color:#888}.auth-form .link a{color:#111;text-decoration:underline}.otp-inputs{display:flex;gap:8px;justify-content:center;margin:24px 0 8px}.otp-input{width:44px;height:48px;text-align:center;font-size:20px;font-weight:600;border:1px solid #ddd;border-radius:6px;outline:none;background:#fff}.otp-input:focus{border-color:#111}.success{background:#e8f5e9;border:1px solid #c8e6c9;color:#2e7d32;padding:10px 14px;border-radius:6px;font-size:13px;margin-bottom:16px}.page{max-width:640px;margin:0 auto;padding:32px 20px}.page h1{font-size:22px;font-weight:600;margin-bottom:24px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{margin-bottom:0}.btn{display:inline-block;padding:8px 16px;background:#111;color:#fff;text-decoration:none;border-radius:6px;font-size:13px;font-weight:500}.btn:hover{background:#333}.back-btn{background:none;border:none;cursor:pointer;font-size:14px;color:#888;margin-bottom:20px;padding:0}.back-btn:hover{color:#111}.cancel-btn{width:100%;padding:10px;margin-top:24px;background:#fff;color:#111;border:1px solid #ddd;border-radius:6px;font-size:14px;cursor:pointer}.cancel-btn:hover{border-color:#111}.error{background:#fff0f0;border:1px solid #ffcdd2;color:#c62828;padding:10px 14px;border-radius:6px;font-size:13px;margin-bottom:16px}.empty{text-align:center;padding:48px 20px;color:#888}.empty a{color:#111;text-decoration:underline}.bookings-list{display:flex;flex-direction:column;gap:8px}.booking-card{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:1px solid #e0e0e0;border-radius:8px;text-decoration:none;color:#111;background:#fff}.booking-card:hover{border-color:#111}.booking-route{font-size:14px;font-weight:500}.arrow{margin:0 8px;color:#999}.booking-meta{display:flex;gap:12px;align-items:center;font-size:12px}.date{color:#888}.status-confirmed{background:#e8f5e9;color:#2e7d32;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.status-cancelled{background:#fafafa;color:#999;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.status-expired{background:#fff3e0;color:#e65100;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.status-used{background:#e3f2fd;color:#1565c0;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.booking-detail h1{font-size:18px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px}.detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:16px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;font-size:13px;margin-bottom:24px}.detail-meta strong{color:#888;font-weight:500}.segments{margin-bottom:24px}.segments h2{font-size:16px;margin-bottom:12px}.segment{padding:12px 14px;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:4px;background:#fff}.segment-header{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:4px}.line-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.stop-count{margin-left:auto;font-size:12px;color:#888;font-weight:400}.segment-stops{font-size:13px;color:#666;padding-left:18px}.interchange{padding:8px 14px;margin-bottom:4px;text-align:center}.interchange-marker{font-size:13px;color:#555}.line-change{display:block;font-size:11px;color:#999}.qr-section{text-align:center}.qr-section h2{font-size:16px;margin-bottom:16px}.qr-wrapper{display:inline-block;padding:20px;background:#fff;border:1px solid #e0e0e0;border-radius:12px}.qr-hint{margin-top:10px;font-size:12px;color:#999}.book-form{max-width:400px}.book-form label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;margin-top:16px;color:#333}.book-form select{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none;background:#fff;cursor:pointer}.book-form select:focus{border-color:#111}.book-form button{width:100%;padding:10px;margin-top:24px;background:#111;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.book-form button:hover{background:#333}.book-form button:disabled{background:#999;cursor:not-allowed}.stop-picker{position:relative;margin-top:16px}.stop-picker label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:#333}.stop-picker input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none;background:#fff}.stop-picker input:focus{border-color:#111}.stop-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#fff;border:1px solid #ddd;border-radius:6px;list-style:none;max-height:220px;overflow-y:auto;z-index:10}.stop-dropdown li{padding:10px 12px;font-size:14px;cursor:pointer}.stop-dropdown li:hover{background:#f5f5f5}.stop-dropdown li.more{color:#999;font-size:12px;cursor:default}
