:root{color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:#f4f6f8;margin:0}#root{min-height:100vh}.portal-login-layout{align-items:stretch;gap:1.25rem;min-height:100vh;padding:1rem;display:flex}.portal-info-panel{background:#f7f8fa;border-radius:30px;flex-direction:column;flex:1.05;justify-content:center;padding:2.2rem 2.4rem;display:flex}.portal-brand{align-items:center;gap:.75rem;margin-bottom:2rem;display:flex}.portal-logo-mark{object-fit:contain;border-radius:12px;flex-shrink:0;width:44px;height:44px;display:block}.portal-brand-title{margin:0;font-size:.95rem;font-weight:700}.portal-brand-subtitle{color:#64748b;margin:0;font-size:.8rem}.portal-info-panel h1{letter-spacing:-.02em;max-width:430px;margin:0;font-size:clamp(2rem,3.2vw,3.2rem);line-height:1.05}.portal-info-panel h1 span{color:#23894f}.portal-info-copy{color:#64748b;max-width:490px;margin:1.15rem 0 1.75rem;font-size:1rem}.portal-info-title{max-width:620px;margin:0 0 1.5rem;font-size:2rem;font-weight:700;line-height:1.15}.portal-feature-grid{grid-template-columns:repeat(3,minmax(130px,1fr));gap:.85rem;margin-top:1rem;display:grid}.portal-feature-grid article{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:.9rem}.portal-feature-grid h3{margin:0;font-size:.9rem}.portal-feature-grid p{color:#64748b;margin:.2rem 0 0;font-size:.8rem}.portal-form-panel{background:linear-gradient(#1f8f56 0%,#177748 100%);border-radius:30px;flex:1;place-items:center;padding:1.5rem;display:grid}.portal-form-card{background:#fff;border:1px solid #dbe2e9;border-radius:14px;width:100%;max-width:420px;padding:1.7rem;box-shadow:0 10px 28px #00000029}.signin-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.12em;margin:0;font-size:.7rem}.portal-form-card h2{margin:.1rem 0 1rem;font-size:1.25rem}.auth-form{gap:1rem;display:grid}.auth-form label{color:#475569;gap:.35rem;font-size:.8rem;font-weight:600;display:grid}.auth-form input{color:#0f172a;background:#f7f9fb;border:1px solid #d5dde5;border-radius:10px;outline:none;width:100%;padding:.66rem .8rem;font-size:.88rem}.auth-form input:focus{border-color:#22a06b;box-shadow:0 0 0 3px #22a06b26}.remember-me{color:#475569;align-items:center;gap:.5rem;margin-top:-.2rem;font-size:.8rem;display:flex}.remember-me input{accent-color:#22a06b;width:15px;height:15px}.auth-form button{color:#fff;cursor:pointer;background:#1f8f56;border:0;border-radius:999px;margin-top:.15rem;padding:.66rem 1rem;font-size:.88rem;font-weight:700}.auth-form button:disabled{opacity:.6;cursor:not-allowed}.hint{color:#64748b;margin:1rem 0 0;font-size:.9rem}.error-message{color:#b91c1c;margin:.9rem 0 0;font-weight:600}.success-message{color:#15803d;margin:.9rem 0 0;font-weight:600}@media (width<=1100px){.portal-login-layout{flex-direction:column;padding:.85rem}.portal-info-panel,.portal-form-panel{border-radius:22px}.portal-info-title{font-size:1.5rem}}@media (width<=700px){.portal-info-panel{padding:1.4rem 1.2rem}.portal-feature-grid{grid-template-columns:1fr}.portal-form-card{padding:1.15rem}}:root,[data-theme=light]{--brand:#1f6b45;--brand-dark:#145233;--brand-soft:#e8f5ee;--bg-app:#f3f5f7;--bg-surface:#fff;--bg-elevated:#fff;--bg-sidebar:#fff;--text-primary:#0f172a;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#e2e8f0;--border-strong:#cbd5e1;--shadow:0 8px 24px #0f172a0f;--input-bg:#f8fafc;--topbar-bg:#fff;--welcome-gradient:linear-gradient(135deg, #1f6b45 0%, #145233 100%);--pill-ongoing-bg:#dcfce7;--pill-ongoing-text:#166534;--pill-upcoming-bg:#dbeafe;--pill-upcoming-text:#1d4ed8;--pill-cancelled-bg:#fee2e2;--pill-cancelled-text:#b91c1c;--bar-default:#b8e6cb;--bar-active:#1f6b45}[data-theme=dark]{--brand:#3ecf7a;--brand-dark:#2a9d5c;--brand-soft:#1a2e24;--bg-app:#0f1419;--bg-surface:#171d24;--bg-elevated:#1c242d;--bg-sidebar:#121820;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border:#2a3441;--border-strong:#3b4758;--shadow:0 8px 24px #00000059;--input-bg:#121820;--topbar-bg:#171d24;--welcome-gradient:linear-gradient(135deg, #1f6b45 0%, #0f3d28 100%);--pill-ongoing-bg:#14532d;--pill-ongoing-text:#86efac;--pill-upcoming-bg:#1e3a5f;--pill-upcoming-text:#93c5fd;--pill-cancelled-bg:#4c1d1d;--pill-cancelled-text:#fca5a5;--bar-default:#2d4a3a;--bar-active:#3ecf7a}body{background:var(--bg-app);color:var(--text-primary)}.app-shell{min-height:100vh;display:flex}.sidebar-backdrop{z-index:90;cursor:pointer;background:#0f172a73;border:0;padding:0;display:none;position:fixed;inset:0}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-shrink:0;width:240px;max-width:240px;padding:1.25rem 1rem;transition:width .25s,transform .25s,padding .25s,border-width .25s;overflow:hidden}.app-shell.sidebar-collapsed .sidebar{pointer-events:none;border-right-width:0;width:0;padding-left:0;padding-right:0}.sidebar-brand{align-items:center;gap:.75rem;padding:.25rem .5rem 1.5rem;display:flex}.sidebar-brand-title{margin:0;font-size:.95rem;font-weight:700}.sidebar-brand-subtitle{color:var(--text-secondary);margin:0;font-size:.78rem}.sidebar-nav{gap:.35rem;min-width:0;display:grid}.sidebar-link{color:var(--text-secondary);border-radius:10px;align-items:center;gap:.65rem;padding:.65rem .75rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-link svg{width:18px;height:18px}.sidebar-link:hover{background:var(--brand-soft);color:var(--text-primary)}.sidebar-link.active{background:var(--brand);color:#fff}button.sidebar-link{appearance:none}.main-panel{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--topbar-bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;display:flex}.topbar-start{align-items:center;display:flex}.sidebar-toggle{flex-shrink:0}.topbar-actions{align-items:center;gap:.65rem;display:flex}.icon-button{border:1px solid var(--border);background:var(--bg-surface);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:10px;place-items:center;display:grid}.icon-button svg{width:18px;height:18px}.user-chip{border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;font:inherit;color:inherit;text-align:left;border-radius:12px;align-items:center;gap:.55rem;padding:.2rem .5rem;transition:border-color .15s,background .15s;display:flex}.user-chip:hover,.user-chip.active{border-color:var(--brand);background:var(--brand-soft)}.user-avatar{background:var(--brand-soft);width:34px;height:34px;color:var(--brand);border-radius:50%;place-items:center;font-size:.75rem;font-weight:700;display:grid}.user-name{margin:0;font-size:.82rem;font-weight:700}.user-company{color:var(--text-secondary);margin:0;font-size:.72rem}.signout-button{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:.45rem .7rem;font-size:.78rem;font-weight:600}.signout-button:hover{border-color:var(--brand);color:var(--brand)}.page-content{padding:1.25rem;overflow:auto}.placeholder-page{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:2rem}.placeholder-page h1{margin:0 0 .5rem}.placeholder-page p{color:var(--text-secondary);margin:0}.dashboard-page{gap:1rem;display:grid}.dashboard-grid-top{grid-template-columns:1.4fr 1.6fr .9fr;gap:1rem;display:grid}.welcome-card{background:var(--welcome-gradient);color:#fff;box-shadow:var(--shadow);border-radius:16px;padding:1.4rem}.welcome-kicker{letter-spacing:.08em;text-transform:uppercase;opacity:.85;margin:0;font-size:.72rem}.welcome-profile-meta{opacity:.8;margin:.25rem 0 0;font-size:.78rem}.welcome-profile-sub{opacity:.65;font-size:.72rem}.corporate-details-card{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:1rem 1.15rem}.corporate-details-card header h2{margin:.15rem 0 .5rem;font-size:1.1rem}.corporate-type-badge{color:var(--brand);background:var(--brand-soft);border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.corporate-details-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem 1.25rem;margin:.85rem 0 0;display:grid}.corporate-details-grid dt{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:.68rem}.corporate-details-grid dd{color:var(--text-primary);margin:.15rem 0 0;font-size:.86rem;font-weight:600}.corporate-details-loading{color:var(--text-secondary);margin:0;font-size:.88rem}.corporate-details-error p{color:#b91c1c;margin:0;font-size:.88rem;font-weight:600}.profile-page{gap:1rem;max-width:900px;display:grid}.profile-header h1{margin:.35rem 0 0;font-size:1.5rem}.profile-back{color:var(--brand);font-size:.85rem;font-weight:600;text-decoration:none}.profile-back:hover{text-decoration:underline}.profile-user-card{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:1.25rem}.profile-user-hero{border-bottom:1px solid var(--border);align-items:center;gap:1rem;margin-bottom:1.25rem;padding-bottom:1.25rem;display:flex}.profile-avatar-lg{background:var(--brand-soft);width:64px;height:64px;color:var(--brand);border-radius:50%;flex-shrink:0;place-items:center;font-size:1.25rem;font-weight:800;display:grid}.profile-user-hero h2{margin:0;font-size:1.35rem}.profile-subtitle{color:var(--text-secondary);margin:.25rem 0 0;font-size:.9rem}.profile-details-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem 1.5rem;margin:0;display:grid}.profile-detail-row dt{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:.68rem}.profile-detail-row dd{color:var(--text-primary);word-break:break-word;margin:.2rem 0 0;font-size:.92rem;font-weight:600}.profile-company-section h3{color:var(--text-secondary);margin:0 0 .65rem;font-size:1rem}.profile-empty{color:var(--text-secondary)}.welcome-card h1{margin:.35rem 0;font-size:1.65rem}.welcome-copy{opacity:.9;max-width:320px;margin:0 0 1rem;font-size:.88rem}.welcome-actions{flex-wrap:wrap;gap:.65rem;display:flex}.btn-primary{color:var(--brand-dark);cursor:pointer;background:#fff;border:0;border-radius:999px;padding:.55rem 1rem;font-weight:700}.btn-ghost{color:#fff;cursor:pointer;background:0 0;border:0;font-weight:600;text-decoration:underline}.stats-row{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.stat-card{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:.9rem 1rem}.stat-label{color:var(--text-secondary);margin:0;font-size:.78rem}.stat-value-row{align-items:baseline;gap:.45rem;margin-top:.35rem;display:flex}.stat-value-row strong{font-size:1.35rem}.stat-meta{font-size:.75rem;font-weight:700}.stat-meta-up{color:#16a34a}.stat-meta-down{color:#dc2626}.stat-meta-badge{color:var(--brand);background:var(--brand-soft);border-radius:999px;padding:.1rem .45rem}.travellers-card{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:1rem}.card-kicker{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.68rem}.travellers-card h2,.chart-card h2,.vehicle-card h2{margin:.15rem 0 .75rem;font-size:1rem}.travellers-card ul{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.travellers-card li{grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;display:grid}.traveller-avatar{background:var(--brand-soft);width:32px;height:32px;color:var(--brand);border-radius:50%;place-items:center;font-size:.72rem;font-weight:700;display:grid}.traveller-name{margin:0;font-size:.82rem;font-weight:700}.traveller-dept{color:var(--text-secondary);margin:0;font-size:.72rem}.traveller-trips{color:var(--text-secondary);font-size:.72rem;font-weight:600}.dashboard-grid-mid{grid-template-columns:1.6fr 1fr;gap:1rem;display:grid}.chart-card,.vehicle-card,.trips-card{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:1rem}.chart-card header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.trend-up{color:#16a34a;font-size:.75rem;font-weight:700}.trend-down{color:#dc2626;font-size:.75rem;font-weight:700}.bar-chart{align-items:flex-end;gap:.65rem;height:160px;margin-top:.5rem;display:flex}.bar-item{flex-direction:column;flex:1;align-items:center;gap:.35rem;height:100%;display:flex}.bar-fill{background:var(--bar-default);border-radius:6px 6px 2px 2px;width:100%;min-height:12px;margin-top:auto}.bar-fill.active{background:var(--bar-active)}.bar-item span{color:var(--text-secondary);font-size:.72rem}.vehicle-row{grid-template-columns:48px 1fr auto;align-items:center;gap:.55rem;margin-bottom:.75rem;font-size:.82rem;display:grid}.progress-track{background:var(--input-bg);border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:var(--brand);border-radius:999px;height:100%}.trips-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex}.trips-header h2{margin:0;font-size:1.05rem}.trips-header p{color:var(--text-secondary);margin:.2rem 0 0;font-size:.82rem}.trip-tabs{flex-wrap:wrap;gap:.35rem;display:flex}.trip-tabs button{border:1px solid var(--border);background:var(--input-bg);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:.35rem .7rem;font-size:.75rem;font-weight:600}.trip-tabs button.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.8rem}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.65rem .5rem}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.status-pill{border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.status-ongoing{background:var(--pill-ongoing-bg);color:var(--pill-ongoing-text)}.status-upcoming{background:var(--pill-upcoming-bg);color:var(--pill-upcoming-text)}.status-cancelled{background:var(--pill-cancelled-bg);color:var(--pill-cancelled-text)}.table-action{color:var(--brand);cursor:pointer;background:0 0;border:0;font-weight:700}@media (width<=1200px){.dashboard-grid-top,.dashboard-grid-mid{grid-template-columns:1fr}.user-company,.signout-button{display:none}}@media (width<=900px){.sidebar{z-index:100;border-right:1px solid var(--border);pointer-events:auto;border-bottom:0;width:260px;max-width:85vw;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app-shell.sidebar-open .sidebar{border-right-width:1px;width:260px;padding:1.25rem 1rem;transform:translate(0)}.app-shell.sidebar-collapsed .sidebar{transform:translate(-100%)}.app-shell.sidebar-open .sidebar-backdrop{display:block}.sidebar-nav{grid-template-columns:1fr}.topbar{flex-wrap:wrap}}.sidebar-group{min-width:0}.sidebar-link.sidebar-parent{cursor:pointer;text-align:left;width:100%;color:var(--text-secondary);-webkit-text-fill-color:var(--text-secondary);background:0 0;border:0;font-family:inherit;font-size:.9rem;font-weight:600}.sidebar-link.sidebar-parent:hover{background:var(--brand-soft);color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.sidebar-link.sidebar-parent.active{background:var(--brand);color:#fff;-webkit-text-fill-color:#fff}.sidebar-group.expanded .sidebar-link.sidebar-parent:not(.active){background:var(--brand-soft);color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.sidebar-link.sidebar-parent svg{width:18px;height:18px;color:inherit;flex-shrink:0}.sidebar-chevron{width:16px;height:16px;color:inherit;flex-shrink:0;margin-left:auto;transition:transform .2s}.sidebar-group.expanded .sidebar-chevron{transform:rotate(180deg)}.sidebar-link.sidebar-parent span{color:inherit}.sidebar-subnav{gap:.2rem;min-width:0;margin-top:.2rem;padding-left:1.6rem;display:grid}.sidebar-sublink{padding:.5rem .75rem;font-size:.84rem}.users-page{gap:1rem;display:grid}.users-page--centered{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;min-height:min(72vh,100dvh - 10rem);padding:1.5rem 1rem 2rem;display:flex}.users-page--centered .users-page-header,.users-page--centered .users-form-card{width:100%;max-width:520px}.users-page--centered .users-form{text-align:left}.users-page-header h1{margin:0 0 .35rem;font-size:1.45rem}.users-page-header p{color:var(--text-secondary);margin:0;font-size:.9rem}.users-page-header-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.users-form-card{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;max-width:520px;padding:1.25rem}.users-form{gap:1rem;display:grid}.users-form label{color:var(--text-secondary);gap:.35rem;font-size:.82rem;font-weight:600;display:grid}.users-form input,.users-form select{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:.65rem .8rem;font-size:.9rem}.users-form input:focus,.users-form select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #1f6f4526}.users-form button[type=submit]{color:#fff;background:var(--brand);cursor:pointer;border:0;border-radius:10px;margin-top:.25rem;padding:.7rem 1rem;font-size:.9rem;font-weight:700}.users-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.users-form-error{color:#b91c1c;margin:0;font-size:.88rem;font-weight:600}.users-form-success{color:#15803d;margin:0;font-size:.88rem;font-weight:600}.users-loading{color:var(--text-secondary)}.users-refresh-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;border-radius:10px;flex-shrink:0;padding:.5rem .85rem;font-size:.85rem;font-weight:600}.users-refresh-btn:hover{border-color:var(--brand);color:var(--brand)}.users-table-wrap{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;overflow-x:auto}.users-table{border-collapse:collapse;width:100%;font-size:.84rem}.users-table th,.users-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.7rem .85rem}.users-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.72rem;font-weight:600}.users-table-empty{text-align:center;color:var(--text-secondary);padding:2rem!important}.users-actions{flex-wrap:wrap;gap:.35rem;display:flex}.action-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:8px;padding:.35rem .55rem;font-size:.72rem;font-weight:600}.action-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn.edit{background:var(--brand-soft);color:var(--brand);border-color:#0000}.action-btn.danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.action-btn.warn{color:#b45309;background:#fffbeb;border-color:#fde68a}.action-btn.success{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.status-badge{border-radius:999px;padding:.2rem .5rem;font-size:.72rem;font-weight:700;display:inline-block}.status-badge.active{background:var(--pill-ongoing-bg);color:var(--pill-ongoing-text)}.status-badge.inactive{background:var(--pill-cancelled-bg);color:var(--pill-cancelled-text)}.portal-data-grid-wrap{width:100%;margin-top:.5rem}.portal-data-grid-wrap .MuiDataGrid-root{--DataGrid-containerBackground:var(--bg-surface)}.data-grid-link-btn{text-underline-offset:2px;text-decoration:underline;text-transform:none!important;min-width:0!important;padding:0!important;font-weight:700!important}.modal-backdrop{z-index:200;background:#0f172a73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{background:var(--bg-surface);border:1px solid var(--border);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow);border-radius:14px;padding:1.25rem;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.modal-header h2{margin:0;font-size:1.2rem}.modal-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:0;font-size:1.5rem;line-height:1}.modal-subtitle{color:var(--text-secondary);margin:.5rem 0 1rem;font-size:.85rem}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.25rem;display:flex}.btn-secondary{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;padding:.65rem 1rem;font-size:.88rem;font-weight:600}.modal-actions button[type=submit]{color:#fff;background:var(--brand);cursor:pointer;border:0;border-radius:10px;padding:.65rem 1rem;font-size:.88rem;font-weight:700}.modal-actions button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.bookings-page{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;gap:1.25rem;display:grid}.bookings-main{gap:1rem;display:grid}.bookings-header h1{letter-spacing:-.02em;margin:0;font-size:1.65rem;font-weight:800}.bookings-header p{color:var(--text-secondary);margin:.35rem 0 0;font-size:.9rem}.bookings-card{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:1.15rem 1.25rem}.bookings-card-title{margin:0 0 .85rem;font-size:.95rem;font-weight:700}.bookings-employee-mobile label{color:var(--text-secondary);gap:.35rem;font-size:.78rem;font-weight:600;display:grid}.bookings-employee-mobile input{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:.65rem .8rem;font-size:.88rem}.bookings-employee-mobile input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #1f6b451f}.bookings-employee-info{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:1rem;margin-top:.85rem;padding-top:.85rem;display:grid}.bookings-employee-info--three{grid-template-columns:1fr 1fr 1fr}.bookings-inline-status{color:var(--text-secondary);margin:.55rem 0 0;font-size:.78rem}.bookings-inline-error{color:#b91c1c;margin:.55rem 0 0;font-size:.78rem;font-weight:600}.bookings-inline-success{color:#15803d;margin:.55rem 0 0;font-size:.78rem;font-weight:600}.bookings-summary-message{text-align:center}.bookings-employee-field dt{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:.68rem;font-weight:600}.bookings-employee-field dd{color:var(--text-primary);margin:.2rem 0 0;font-size:.88rem;font-weight:600}.bookings-email-row{align-items:center;gap:.45rem;display:flex}.bookings-email-row dd{margin:0}.bookings-edit-btn{border:1px solid var(--border);background:var(--bg-surface);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border-radius:8px;flex-shrink:0;place-items:center;display:grid}.bookings-edit-btn svg{width:14px;height:14px}.bookings-edit-btn:hover{border-color:var(--brand);color:var(--brand)}.bookings-trip-type-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.bookings-trip-type-btn{border:2px solid var(--border);background:var(--bg-surface);cursor:pointer;text-align:left;font:inherit;color:inherit;border-radius:12px;align-items:flex-start;gap:.75rem;padding:.9rem 1rem;transition:border-color .15s,background .15s;display:flex}.bookings-trip-type-btn:hover{border-color:var(--border-strong)}.bookings-trip-type-btn.active{border-color:var(--brand);background:var(--brand-soft)}.bookings-trip-icon{background:var(--input-bg);width:40px;height:40px;color:var(--text-muted);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.bookings-trip-type-btn.active .bookings-trip-icon{background:var(--brand);color:#fff}.bookings-trip-icon svg{width:18px;height:18px}.bookings-trip-type-btn strong{margin-bottom:.15rem;font-size:.88rem;display:block}.bookings-trip-type-btn span{color:var(--text-secondary);font-size:.75rem}.bookings-route-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.bookings-field label{color:var(--text-secondary);gap:.35rem;font-size:.78rem;font-weight:600;display:grid}.bookings-field input,.bookings-field select,.bookings-field textarea{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:.65rem .8rem;font-family:inherit;font-size:.88rem}.bookings-field input:focus,.bookings-field select:focus,.bookings-field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #1f6b451f}.bookings-field input:disabled{opacity:.55;cursor:not-allowed}.bookings-field textarea{resize:vertical;min-height:80px}.bookings-location-label{align-items:center;gap:.4rem;display:flex}.bookings-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.bookings-dot--pickup{background:var(--brand)}.bookings-dot--dropoff{background:#dc2626}.place-autocomplete{position:relative}.place-autocomplete label{color:var(--text-secondary);gap:.35rem;font-size:.78rem;font-weight:600;display:grid}.place-autocomplete input{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:.65rem .8rem;font-family:inherit;font-size:.88rem}.place-autocomplete input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #1f6b451f}.place-autocomplete input:disabled{opacity:.55;cursor:not-allowed}.place-autocomplete-list{z-index:20;background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;max-height:240px;margin:0;padding:.35rem 0;list-style:none;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow-y:auto}.place-autocomplete-status{color:var(--text-secondary);padding:.55rem .8rem;font-size:.8rem}.place-autocomplete-status--error{color:#b91c1c}.place-autocomplete-option{text-align:left;cursor:pointer;width:100%;color:var(--text-primary);background:0 0;border:none;gap:.1rem;padding:.55rem .8rem;font-family:inherit;display:grid}.place-autocomplete-option:hover,.place-autocomplete-option:focus-visible{background:#1f6b4514;outline:none}.place-autocomplete-option strong{font-size:.84rem;font-weight:600}.place-autocomplete-option span{color:var(--text-secondary);font-size:.75rem}.place-autocomplete-resolving{color:var(--text-secondary);margin:.35rem 0 0;font-size:.75rem}.bookings-schedule-row{grid-template-columns:1fr 1fr .7fr;gap:.75rem;margin-top:.75rem;display:grid}.bookings-vehicle-section{margin-top:.85rem}.bookings-vehicle-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .55rem;font-size:.78rem;font-weight:700}.bookings-vehicle-section-title:not(:first-child){margin-top:.85rem}.bookings-category-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:.6rem;display:grid}.bookings-category-card{border:2px solid var(--border);background:var(--bg-surface);cursor:pointer;text-align:center;font:inherit;color:inherit;border-radius:12px;padding:.65rem .45rem;transition:border-color .15s,background .15s}.bookings-category-card:hover{border-color:var(--border-strong)}.bookings-category-card.active{border-color:var(--brand);background:var(--brand-soft)}.bookings-category-icon{width:44px;height:44px;color:var(--text-muted);place-items:center;margin:0 auto .4rem;display:grid}.bookings-category-icon img{object-fit:contain;width:100%;height:100%}.bookings-category-icon svg{width:28px;height:20px}.bookings-category-card strong{font-size:.72rem;line-height:1.25;display:block}.bookings-selected-vehicle{color:var(--text-secondary);margin:.65rem 0 0;font-size:.8rem}.bookings-selected-vehicle strong{color:var(--text-primary)}.bookings-cabtype-modal{max-width:640px}.bookings-vehicle-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin-top:.75rem;display:grid}.bookings-vehicle-cards--modal{max-height:55vh;margin-top:0;padding-right:.15rem;overflow-y:auto}.bookings-vehicle-card{border:2px solid var(--border);background:var(--bg-surface);cursor:pointer;text-align:center;font:inherit;color:inherit;border-radius:12px;padding:.75rem .65rem;transition:border-color .15s,background .15s}.bookings-vehicle-card:hover{border-color:var(--border-strong)}.bookings-vehicle-card.active{border-color:var(--brand);background:var(--brand-soft)}.bookings-vehicle-card-image{width:100%;height:52px;color:var(--text-muted);place-items:center;margin-bottom:.45rem;display:grid}.bookings-vehicle-card-image img{object-fit:contain;max-width:100%;max-height:100%}.bookings-vehicle-card-image svg{width:36px;height:24px}.bookings-vehicle-card strong{margin-bottom:.25rem;font-size:.82rem;display:block}.bookings-vehicle-card span{color:var(--text-secondary);font-size:.68rem;line-height:1.35;display:block}.bookings-vehicle-thumb img{object-fit:contain;width:100%;height:100%}.bookings-remarks{margin-top:.85rem}.bookings-continue-btn{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:10px;width:100%;margin-top:1rem;padding:.75rem 1rem;font-size:.92rem;font-weight:700}.bookings-continue-btn:hover{background:var(--brand-dark)}.bookings-summary{gap:.75rem;display:grid;position:sticky;top:1rem}.bookings-summary-card{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:1rem 1.1rem}.bookings-summary-card--highlight{background:var(--brand-soft);border-color:#1f6b4533}.bookings-summary-card--info{background:var(--pill-upcoming-bg);border-color:#1d4ed826}.bookings-summary-card h3{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .65rem;font-size:.82rem;font-weight:700}.bookings-estimate-name{margin:0 0 .5rem;font-size:.95rem;font-weight:700}.bookings-estimate-meta{flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:0;list-style:none;display:flex}.bookings-estimate-meta li{color:var(--text-secondary);font-size:.78rem}.bookings-estimate-meta-label{align-items:center;gap:.35rem;display:inline-flex}.bookings-map-directions-btn{width:1.35rem;height:1.35rem;color:var(--brand);cursor:pointer;background:#1f6b451f;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.bookings-map-directions-btn:hover{color:var(--brand-dark);background:#1f6b4533}.bookings-map-directions-btn svg{width:.9rem;height:.9rem}.bookings-estimate-meta strong{color:var(--text-primary);margin-top:.1rem;font-size:.82rem;display:block}.bookings-vehicle-summary{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.bookings-vehicle-summary-left{align-items:center;gap:.65rem;display:flex}.bookings-vehicle-thumb{background:var(--input-bg);width:48px;height:36px;color:var(--text-muted);border-radius:8px;place-items:center;display:grid}.bookings-vehicle-thumb svg{width:28px;height:20px}.bookings-vehicle-summary strong{font-size:.88rem;display:block}.bookings-vehicle-summary span{color:var(--text-secondary);font-size:.75rem}.bookings-view-link{color:var(--brand);cursor:pointer;background:0 0;border:0;font-size:.75rem;font-weight:700;text-decoration:underline}.bookings-capacity-row{border-top:1px solid var(--border);gap:1.25rem;margin-top:.65rem;padding-top:.65rem;display:flex}.bookings-capacity-item{color:var(--text-secondary);align-items:center;gap:.35rem;font-size:.78rem;display:flex}.bookings-capacity-item svg{width:16px;height:16px;color:var(--text-muted)}.bookings-capacity-item strong{color:var(--text-primary)}.bookings-allowance-list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.bookings-allowance-list li{color:var(--text-secondary);font-size:.82rem}.bookings-extra-hours{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.75rem;display:flex}.bookings-extra-hours label{color:var(--text-primary);font-size:.82rem;font-weight:600}.bookings-stepper{align-items:center;gap:.5rem;display:flex}.bookings-stepper button{border:1px solid var(--border);background:var(--bg-surface);width:32px;height:32px;color:var(--text-primary);cursor:pointer;border-radius:8px;place-items:center;font-size:1.1rem;font-weight:600;line-height:1;display:grid}.bookings-stepper button:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.bookings-stepper button:disabled{opacity:.4;cursor:not-allowed}.bookings-stepper span{text-align:center;min-width:24px;font-size:.92rem;font-weight:700}.bookings-price-total{color:var(--brand-dark);letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:800}[data-theme=dark] .bookings-price-total{color:var(--brand)}.booking-history-link{color:var(--brand);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.booking-history-link:hover{color:var(--brand-dark)}.booking-detail-modal{max-width:720px}.booking-detail-section{margin-top:1rem}.booking-detail-section h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin:0 0 .35rem;font-size:.78rem;font-weight:700}.booking-history-filters{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1.25rem;margin-bottom:.75rem;display:flex}.booking-history-filter-fields{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;display:flex}.booking-history-filter-field{color:var(--text-secondary);gap:.35rem;font-size:.78rem;font-weight:600;display:grid}.booking-history-filter-field input[type=date]{border:1px solid var(--border);font:inherit;color:var(--text-primary);background:var(--bg-surface);border-radius:10px;min-width:11.5rem;padding:.55rem .7rem;font-size:.86rem}.booking-history-clear-btn{margin-bottom:.1rem}.booking-history-summary{color:var(--text-secondary);margin:0;font-size:.82rem}.booking-history-subtext{color:var(--text-secondary);margin-top:.15rem;font-size:.72rem;display:block}.booking-history-table td{vertical-align:top;word-break:break-word;max-width:220px}.booking-status{background:var(--pill-upcoming-bg);color:var(--text-primary);border-radius:999px;padding:.15rem .45rem;font-size:.68rem;font-weight:700;display:inline-block}.booking-status--success{color:var(--brand-dark);background:#1f6b451f}.booking-status--danger{color:#b91c1c;background:#dc26261a}.booking-status--pending{color:#a16207;background:#eab30826}.booking-status--active{color:#1d4ed8;background:#1d4ed81a}.booking-history-pagination{color:var(--text-secondary);justify-content:flex-end;align-items:center;gap:.75rem;margin-top:1rem;font-size:.82rem;display:flex}.bookings-price-breakdown{color:var(--text-secondary);margin:.25rem 0 0;font-size:.72rem;line-height:1.4}.bookings-price-note{color:#ea580c;margin:.35rem 0 0;font-size:.72rem;font-style:italic}.bookings-payment-badge{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;align-items:center;gap:.35rem;margin-top:.65rem;padding:.25rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.bookings-payment-badge svg{width:14px;height:14px}.bookings-next-steps p{color:var(--pill-upcoming-text);margin:0;font-size:.82rem;line-height:1.5}.bookings-next-steps strong{color:var(--text-primary)}.bookings-legal-link{text-align:center;font-size:.72rem}.bookings-legal-link a{color:var(--text-muted);text-decoration:underline}.bookings-request-btn{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:10px;width:100%;padding:.8rem 1rem;font-size:.95rem;font-weight:700}.bookings-request-btn:hover:not(:disabled){background:var(--brand-dark)}.bookings-request-btn:disabled{opacity:.65;cursor:not-allowed}@media (width<=1100px){.bookings-page{grid-template-columns:1fr}.bookings-summary{position:static}.bookings-vehicle-cards,.bookings-vehicle-cards--modal{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.bookings-employee-info--three,.bookings-employee-info,.bookings-route-grid,.bookings-trip-type-grid,.bookings-schedule-row{grid-template-columns:1fr}.bookings-vehicle-cards{grid-template-columns:1fr 1fr}}.registration-page{background:#f4f6f8;justify-content:center;align-items:flex-start;min-height:100vh;padding:1.5rem 1rem 2.5rem;display:flex}.registration-card{background:#fff;border-radius:20px;width:min(720px,100%);padding:1.75rem 1.5rem 2rem;box-shadow:0 12px 40px #0f285714}.registration-header{align-items:center;gap:.85rem;margin-bottom:1.25rem;display:flex}.registration-header h1{margin:.15rem 0 0;font-size:1.45rem;line-height:1.2}.registration-eyebrow{text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin:0;font-size:.78rem;font-weight:600}.registration-muted{color:#64748b;margin:0 0 1rem;font-size:.92rem}.registration-expiry{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:.65rem .85rem}.registration-status{border-radius:12px;padding:1rem 1.1rem}.registration-status--error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.registration-status--success{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.registration-form{margin-top:.5rem}.registration-fieldset{border:0;gap:.85rem;margin:0 0 1.25rem;padding:0;display:grid}.registration-fieldset legend{color:#0f2857;margin-bottom:.35rem;padding:0;font-size:.95rem;font-weight:700}.registration-grid-2,.registration-grid-3{gap:.85rem;display:grid}.registration-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.registration-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.registration-card--wide{width:min(920px,100%)}.registration-repeat-block{border:1px solid #e2e8f0;border-radius:12px;gap:.75rem;padding:.85rem;display:grid}.registration-repeat-header{color:#334155;justify-content:space-between;align-items:center;font-size:.88rem;font-weight:600;display:flex}.registration-text-btn,.registration-add-btn{cursor:pointer;font-family:inherit}.registration-text-btn{color:#b91c1c;background:0 0;border:0;padding:0;font-size:.84rem}.registration-add-btn{color:#0f2857;background:#f8fafc;border:1px dashed #94a3b8;border-radius:10px;justify-self:start;padding:.45rem .85rem;font-size:.88rem;font-weight:600}.registration-form textarea{width:100%;font:inherit;resize:vertical;border:1px solid #cbd5e1;border-radius:10px;padding:.6rem .75rem}@media (width<=640px){.registration-grid-2,.registration-grid-3{grid-template-columns:1fr}}
