body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--cabsafe-navy:#102040;--cabsafe-ink:#202030;--cabsafe-steel:#304060;--cabsafe-yellow:#ffc010;--cabsafe-yellow-dark:#d99700;--cabsafe-white:#fff;--cabsafe-muted:#c9d4e7;--cabsafe-line:#ffffff24;--cabsafe-panel:#102040d1}*{box-sizing:border-box}.App{background:linear-gradient(135deg,#102040fa,#202030fa),#102040;color:#fff;color:var(--cabsafe-white)}.App,.app-shell{min-height:100vh}.app-shell{grid-gap:32px;align-items:center;display:grid;gap:32px;grid-template-columns:minmax(280px,.92fr) minmax(320px,1fr);margin:0 auto;padding:40px 0;width:min(1180px,calc(100% - 32px))}.brand-panel,.workspace{min-width:0}.brand-panel{grid-gap:24px;align-content:center;display:grid;gap:24px}.brand-logo{display:block;filter:drop-shadow(0 22px 45px rgba(0,0,0,.28));height:auto;width:min(420px,100%)}.brand-copy{max-width:560px}.brand-kicker,.status-strip span,.tool-heading p{color:#ffc010;color:var(--cabsafe-yellow);font-size:.78rem;font-weight:800;letter-spacing:0;margin:0;text-transform:uppercase}.brand-copy h1{color:#fff;color:var(--cabsafe-white);font-size:3.8rem;letter-spacing:0;line-height:.95;margin:8px 0 10px}.brand-summary{color:#c9d4e7;color:var(--cabsafe-muted);font-size:1.08rem;line-height:1.65;margin:0}.workspace{grid-gap:18px;display:grid;gap:18px}.portal-admin .app-shell{align-items:start;grid-template-columns:1fr;padding:24px 0 40px}.portal-admin .brand-panel{display:none}.admin-shell{grid-gap:18px;display:grid;gap:18px}.admin-topbar{background:#102040e6;border:1px solid #ffffff24;border:1px solid var(--cabsafe-line);border-radius:8px;box-shadow:0 18px 52px #00000038;gap:18px;justify-content:space-between;padding:14px 16px}.admin-brand,.admin-topbar{align-items:center;display:flex;min-width:0}.admin-brand{gap:12px}.admin-brand img{display:block;height:auto;width:64px}.admin-brand span{color:#fff;color:var(--cabsafe-white);font-size:1.1rem;font-weight:900}.admin-menu{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.admin-menu button{background:#ffffff0f;border:1px solid #ffffff29;border-radius:6px;color:#fff;color:var(--cabsafe-white);cursor:pointer;font:inherit;font-weight:850;min-height:40px;padding:0 14px}.admin-menu button.active,.admin-menu button:focus-visible,.admin-menu button:hover{background:#ffc01029;border-color:#ffc0109e;outline:none}.portal-panel,.qr-tool{background:#102040d1;background:var(--cabsafe-panel);border:1px solid #ffffff24;border:1px solid var(--cabsafe-line);border-radius:8px;box-shadow:0 24px 70px #00000047;padding:28px}.tool-heading{margin-bottom:22px}.tool-heading h2{font-size:1.55rem;letter-spacing:0;line-height:1.2;margin:6px 0 0}.qr-field{grid-gap:8px;display:grid;gap:8px;margin-top:14px}.qr-field span{color:#c9d4e7;color:var(--cabsafe-muted);font-size:.92rem;font-weight:700}.qr-field input{background:#fffffff0;border:1px solid #ffffff38;border-radius:6px;color:#202030;color:var(--cabsafe-ink);font:inherit;min-height:50px;outline:none;padding:0 14px;width:100%}.qr-field input:focus{border-color:#ffc010;border-color:var(--cabsafe-yellow);box-shadow:0 0 0 3px #ffc0103d}.auth-code-input{font-size:1.45rem;font-weight:900;max-width:190px;text-align:center}.primary-action{background:#ffc010;background:var(--cabsafe-yellow);border:0;border-radius:6px;color:#151a24;cursor:pointer;font:inherit;font-weight:900;margin-top:16px;min-height:50px;width:100%}.secondary-action{background:#ffc0101f;border:1px solid #ffc01080;border-radius:6px;color:#fff;color:var(--cabsafe-white);cursor:pointer;font:inherit;font-weight:800;min-height:48px;width:100%}.secondary-action:focus-visible,.secondary-action:hover{background:#ffc01038}.primary-action:focus-visible:not(:disabled),.primary-action:hover:not(:disabled){background:#ffd247}.primary-action:disabled{cursor:not-allowed;opacity:.6}.form-error{color:#ffd2d2}.form-error,.form-ok{font-size:.92rem;line-height:1.45;margin:14px 0 0}.form-ok{color:#d7ffe1;font-weight:800}.qr-result{background:#fffffff5;border:1px dashed #ffc01075;border-radius:8px;display:grid;margin-top:20px;padding:18px;place-items:center}.qr-result img{display:block;height:auto;width:min(220px,100%)}.status-strip{grid-gap:1px;background:#ffffff24;background:var(--cabsafe-line);border:1px solid #ffffff24;border:1px solid var(--cabsafe-line);border-radius:8px;display:grid;gap:1px;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.status-strip div{background:#102040c2;min-width:0;padding:16px}.status-strip strong{color:#fff;color:var(--cabsafe-white);display:block;font-size:.95rem;line-height:1.3;margin-top:5px;overflow-wrap:anywhere}.portal-links{grid-gap:12px;display:grid;gap:12px}.portal-links a{align-items:center;background:#ffffff0f;border:1px solid #ffffff29;border-radius:6px;color:#fff;color:var(--cabsafe-white);display:flex;font-weight:800;justify-content:space-between;min-height:52px;padding:0 16px;text-decoration:none}.portal-links a:after{color:#ffc010;color:var(--cabsafe-yellow);content:">"}.portal-links a:focus-visible,.portal-links a:hover{background:#ffc0101a;border-color:#ffc0109e}.metric-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.booking-empty,.details-grid div,.driver-list div,.journey-list div,.metric{background:#ffffff0f;border:1px solid #ffffff24;border-radius:6px;min-width:0;padding:14px}.booking-list span,.details-grid span,.driver-list span,.form-success span,.journey-list span,.metric span,.modal-heading p{color:#c9d4e7;color:var(--cabsafe-muted);display:block;font-size:.82rem;font-weight:700}.booking-list strong,.details-grid strong,.driver-list strong,.form-success strong,.journey-list strong,.metric strong{color:#fff;color:var(--cabsafe-white);display:block;font-size:1.12rem;margin-top:6px;overflow-wrap:anywhere}.booking-list,.details-grid,.driver-list,.journey-list{grid-gap:10px;display:grid;gap:10px;margin-top:16px}.driver-list small{color:#ffc010;color:var(--cabsafe-yellow);display:block;font-weight:800;margin-top:8px}.driver-form{grid-gap:2px;display:grid;gap:2px}.lookup-form{grid-gap:14px;display:grid;gap:14px}.lookup-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.button-row{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:1fr auto}.button-row .primary-action,.button-row .secondary-action{margin-top:0}.booking-row{background:#ffffff0f;border:1px solid #ffffff24;border-radius:6px;cursor:pointer;font:inherit;min-width:0;padding:14px;text-align:left;width:100%}.booking-row:focus-visible,.booking-row:hover{border-color:#ffc01094;outline:none}.booking-list small{color:#ffc010;color:var(--cabsafe-yellow);display:block;font-weight:800;margin-top:8px}.auth-panel .primary-action{margin-top:18px}.form-success{background:#ffc0101a;border:1px solid #ffc01075;border-radius:6px;margin-top:16px;padding:14px}.form-success.compact{margin-top:12px;padding:10px 12px}.context-menu{background:#102040;border:1px solid #ffc01085;border-radius:6px;box-shadow:0 18px 45px #00000059;min-width:210px;overflow:hidden;position:fixed;z-index:20}.context-menu button{background:#0000;border:0;color:#fff;color:var(--cabsafe-white);cursor:pointer;font:inherit;font-weight:800;min-height:44px;padding:0 14px;text-align:left;width:100%}.context-menu button:focus-visible,.context-menu button:hover{background:#ffc01029;outline:none}.modal-backdrop{background:#050b14b8;display:grid;inset:0;padding:18px;place-items:center;position:fixed;z-index:30}.modal-panel{background:#102040;border:1px solid #ffffff29;border-radius:8px;box-shadow:0 30px 80px #0000006b;max-height:min(86vh,860px);overflow:auto;padding:24px;width:min(720px,100%)}.modal-heading{align-items:flex-start;display:flex;gap:14px;justify-content:space-between}.modal-heading h2{font-size:1.45rem;margin:6px 0 0}.modal-heading button{background:#ffc0101f;border:1px solid #ffc01080;border-radius:6px;color:#fff;color:var(--cabsafe-white);cursor:pointer;font:inherit;font-weight:800;min-height:38px;padding:0 12px}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.email-form,.totp-setup{display:grid;margin-top:16px}.totp-setup{grid-gap:10px;background:#ffffff0f;border:1px solid #ffc0105c;border-radius:8px;gap:10px;justify-items:center;padding:16px;text-align:center}.totp-setup img:first-child{height:auto;width:90px}.totp-setup p{color:#c9d4e7;color:var(--cabsafe-muted);line-height:1.45;margin:0}.totp-setup .totp-qr{background:#fff;border-radius:6px;padding:10px;width:min(220px,100%)}.totp-setup code{color:#ffc010;color:var(--cabsafe-yellow);max-width:100%;overflow-wrap:anywhere}.panel-copy{color:#c9d4e7;color:var(--cabsafe-muted);line-height:1.55;margin:0}.scanner-box{grid-gap:12px;display:grid;gap:12px;margin-top:14px}.scanner-box canvas,.scanner-box video{background:#050b14;border-radius:8px;width:100%}.scanner-box canvas{display:none}.check-row{align-items:flex-start;color:#c9d4e7;color:var(--cabsafe-muted);display:flex;font-size:.94rem;gap:10px;line-height:1.45;margin-top:14px}.check-row input{accent-color:#ffc010;accent-color:var(--cabsafe-yellow);margin-top:4px}.map-preview{grid-gap:8px;display:grid;gap:8px;margin-top:14px}.map-preview span{color:#c9d4e7;color:var(--cabsafe-muted);font-size:.92rem;font-weight:700}.map-preview iframe{background:#ffffff14;border:1px solid #ffffff29;border-radius:8px;height:220px;width:100%}.share-panel{grid-gap:12px;background:#ffc0101a;border:1px solid #ffc0106b;border-radius:8px;display:grid;gap:12px;margin-top:18px;padding:14px}.share-panel strong{color:#fff;color:var(--cabsafe-white);overflow-wrap:anywhere}.share-actions{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.share-actions a{background:#ffc010;background:var(--cabsafe-yellow);border-radius:6px;color:#151a24;display:grid;font-weight:900;min-height:42px;place-items:center;text-decoration:none}@media (max-width:820px){.app-shell{align-items:start;grid-template-columns:1fr;min-height:auto;padding:24px 0}.brand-panel{justify-items:center;text-align:center}.brand-logo{width:min(300px,100%)}.brand-copy h1{font-size:2.6rem}.portal-panel,.qr-tool{padding:22px}.admin-topbar{align-items:flex-start;flex-direction:column}.admin-menu{justify-content:stretch;width:100%}.admin-menu button{flex:1 1}}@media (max-width:560px){.app-shell{width:min(100% - 20px,1180px)}.button-row,.details-grid,.lookup-grid,.metric-grid,.share-actions,.status-strip{grid-template-columns:1fr}}
/*# sourceMappingURL=main.2a76f850.css.map*/