@import url('data:text/css,');
:root{--bg:#07111f;--panel:#0d192a;--panel2:#111f33;--line:#223149;--text:#f5f8ff;--muted:#8290a8;--muted2:#aeb9cb;--accent:#6df7c8;--accent2:#39cda1;--blue:#6ea8ff;--danger:#ff6b72;--danger-soft:#351d27;--vacant:#57e8b7;--full:#ff6b72;--shadow:0 24px 70px rgba(0,0,0,.28);--radius:24px;--radius-sm:16px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:inherit;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.section-kicker{display:block;font-size:11px;font-weight:800;letter-spacing:.14em;color:#74829a}.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:11px;font-weight:800;letter-spacing:.15em;color:#a6b2c5}.eyebrow i{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(109,247,200,.1)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:#06131a;background:linear-gradient(145deg,var(--accent),#a7ffe3);box-shadow:0 12px 30px rgba(57,205,161,.2)}.brand-mark svg{width:27px;height:27px;stroke-width:1.75}.brand>span:last-child{display:flex;flex-direction:column}.brand strong{font-size:17px;line-height:1.1;letter-spacing:-.02em}.brand small{font-size:10px;color:#7e8da5;margin-top:4px;letter-spacing:.08em;text-transform:uppercase}.brand-large .brand-mark{width:48px;height:48px}.brand-large strong{font-size:19px}.primary-btn{border:0;border-radius:14px;background:linear-gradient(135deg,var(--accent),#8affd8);color:#04110d;font-weight:800;box-shadow:0 14px 35px rgba(57,205,161,.17);transition:.2s ease}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 16px 45px rgba(57,205,161,.24)}.ghost-btn{border:1px solid var(--line);background:#101d30;color:#c6d0df;padding:9px 13px;border-radius:11px;font-size:12px;font-weight:700}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:99px;font-size:10px;font-weight:900;letter-spacing:.08em}.status-pill i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px currentColor;opacity:.75}.status-pill.vacant{color:#75f2c9;background:rgba(87,232,183,.09);border:1px solid rgba(87,232,183,.18)}.status-pill.full{color:#ff858b;background:rgba(255,107,114,.09);border:1px solid rgba(255,107,114,.18)}.alert{padding:12px 14px;border-radius:13px;display:flex;align-items:center;gap:10px;font-size:13px}.alert.error{color:#ffb1b5;background:rgba(255,107,114,.09);border:1px solid rgba(255,107,114,.2)}.alert>span{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:rgba(255,107,114,.13);font-weight:900}
/* Login */.login-page{min-height:100vh;background:#08111e}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(440px,.75fr)}.login-showcase{position:relative;overflow:hidden;min-height:100vh;padding:48px clamp(48px,6vw,100px);display:flex;flex-direction:column;background:radial-gradient(circle at 60% 45%,rgba(45,132,117,.22),transparent 28%),radial-gradient(circle at 5% 85%,rgba(74,107,173,.14),transparent 35%),linear-gradient(155deg,#081422,#09101c)}.login-showcase:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,transparent,black 25%,black 80%,transparent);pointer-events:none}.showcase-copy{position:relative;z-index:2;margin-top:auto;max-width:650px}.showcase-copy h1{font-size:clamp(42px,5vw,74px);line-height:1.02;letter-spacing:-.055em;margin:20px 0 20px;max-width:720px}.showcase-copy p{max-width:560px;color:#91a0b5;font-size:16px;line-height:1.75;margin:0}.showcase-visual{position:relative;height:270px;margin:28px 0 12px;z-index:1}.route-line{position:absolute;border:1px dashed rgba(125,159,185,.27);border-radius:50%}.route-a{width:80%;height:120px;left:-4%;top:87px;transform:rotate(-7deg)}.route-b{width:58%;height:170px;right:-3%;top:33px;transform:rotate(12deg)}.map-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:#6df7c8;box-shadow:0 0 0 7px rgba(109,247,200,.08),0 0 32px rgba(109,247,200,.35)}.dot-a{left:20%;top:120px}.dot-b{right:18%;top:77px}.floating-car{position:absolute;left:30%;top:84px;width:210px;height:102px;color:#b8c8dc;transform:rotate(-3deg);filter:drop-shadow(0 24px 28px rgba(0,0,0,.25))}.floating-car svg{width:100%;height:100%;stroke-width:1.4}.floating-status{position:absolute;right:5%;bottom:15px;min-width:180px;padding:13px 15px;border-radius:15px;border:1px solid rgba(255,255,255,.08);background:rgba(13,27,43,.72);backdrop-filter:blur(18px);display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}.floating-status .status-orb{width:26px;height:26px;border-radius:50%;border:7px solid rgba(87,232,183,.18);background:var(--vacant);box-shadow:0 0 25px rgba(87,232,183,.28)}.floating-status div{display:flex;flex-direction:column}.floating-status small{font-size:9px;color:#8292a7;letter-spacing:.08em}.floating-status strong{font-size:13px;color:#75f2c9;margin-top:2px}.showcase-foot{position:relative;z-index:2;display:flex;gap:8px;margin-top:auto}.showcase-foot span{font-size:10px;color:#6f7e92;border:1px solid #1d2d42;border-radius:99px;padding:6px 10px}.login-panel{display:grid;place-items:center;padding:40px;background:#0b1524;position:relative}.login-card{width:min(100%,440px)}.mobile-brand{display:none}.login-heading{margin-bottom:25px}.login-heading h2{font-size:32px;letter-spacing:-.035em;margin:8px 0 8px}.login-heading p{margin:0;color:#7f8da3;font-size:14px;line-height:1.6}.role-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:5px;border:1px solid #1c2b3f;background:#081321;border-radius:15px;margin:0 0 22px}.role-tab{height:48px;border:0;border-radius:11px;color:#75849b;background:transparent;display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:800;transition:.2s ease}.role-tab.active{background:#15243a;color:#eef5ff;box-shadow:inset 0 0 0 1px #263a54,0 6px 15px rgba(0,0,0,.14)}.tab-icon{width:22px;height:22px;display:grid;place-items:center}.tab-icon svg{width:20px;height:20px}.login-form{display:grid;gap:17px;margin-top:18px}.field>span{display:block;margin-bottom:8px;font-size:12px;font-weight:700;color:#9ba8ba}.input-wrap{position:relative}.input-wrap svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#60718a}.input-wrap input{width:100%;height:52px;border:1px solid #203049;background:#0a1524;border-radius:13px;color:#edf4ff;padding:0 14px 0 44px;outline:none;transition:.2s ease}.input-wrap input::placeholder{color:#516078}.input-wrap input:focus{border-color:rgba(109,247,200,.5);box-shadow:0 0 0 3px rgba(109,247,200,.07)}.login-btn{height:52px;margin-top:3px;display:flex;align-items:center;justify-content:center;gap:12px}.login-btn span{font-size:18px}.demo-credentials{margin-top:20px;padding:13px 15px;border-radius:13px;background:rgba(79,107,145,.07);border:1px solid #1c2b40}.demo-credentials>div{display:flex;align-items:center;gap:8px}.demo-dot{width:6px;height:6px;border-radius:50%;background:var(--blue)}.demo-credentials strong{font-size:11px;color:#9aa8bb}.demo-credentials p{margin:6px 0 0;color:#74849b;font-size:11px}.demo-credentials p strong{color:#aeb9c9}.login-footer{position:absolute;bottom:20px;color:#526076;font-size:10px}
/* Admin layout */.app-page{min-height:100vh;background:#091321}.app-shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;padding:28px 22px 22px;border-right:1px solid #19283c;background:#08121f;display:flex;flex-direction:column;z-index:20}.side-nav{display:grid;gap:5px;margin-top:44px}.side-nav a,.side-nav button{height:44px;border:0;background:transparent;color:#73829a;border-radius:12px;display:flex;align-items:center;gap:12px;padding:0 13px;font-size:12px;font-weight:700;text-align:left}.side-nav svg,.logout-link svg{width:19px;height:19px}.side-nav a.active,.side-nav a:hover,.side-nav button:hover{background:#132238;color:#eaf2fd}.side-nav a.active{box-shadow:inset 3px 0 0 var(--accent)}.sidebar-spacer{flex:1}.side-help{border:1px solid #1b2b41;border-radius:13px;padding:12px;display:flex;align-items:center;gap:10px;background:#0b1726;margin-bottom:10px}.side-help>span{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;color:var(--accent);background:rgba(109,247,200,.08);font-size:12px;font-weight:900}.side-help div{display:flex;flex-direction:column}.side-help strong{font-size:11px}.side-help small{font-size:9px;color:#6e7e95;margin-top:3px}.logout-link{display:flex;align-items:center;gap:10px;padding:11px 12px;color:#73829a;font-size:11px;font-weight:700;border-radius:11px}.logout-link:hover{background:#121e30;color:#d8e1ed}.main-content{grid-column:2;padding:30px clamp(28px,4vw,62px) 60px;max-width:1480px;width:100%;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}.topbar h1{margin:4px 0 0;font-size:27px;letter-spacing:-.035em}.user-chip{display:flex;align-items:center;gap:10px;border:1px solid #1e2e44;background:#0d1929;border-radius:13px;padding:7px 11px 7px 7px}.avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#263d57,#1c2d43);font-size:10px;font-weight:900;color:#b7c9db}.user-chip>div:last-child{display:flex;flex-direction:column}.user-chip strong{font-size:11px}.user-chip small{font-size:9px;color:#75859c;margin-top:2px}.mobile-menu{display:none}.dashboard-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px;margin-bottom:34px}.stat-card{min-height:132px;border-radius:20px;border:1px solid #1e2d42;background:linear-gradient(145deg,#0f1c2e,#0c1828);padding:22px;display:flex;align-items:center;gap:18px;box-shadow:0 16px 45px rgba(0,0,0,.08)}.primary-stat{background:linear-gradient(145deg,#11283a,#0e1e31);border-color:#234253}.stat-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;color:#87baff;background:rgba(110,168,255,.09);border:1px solid rgba(110,168,255,.13)}.stat-icon svg{width:30px;height:30px}.stat-icon.vacant-icon,.stat-icon.full-icon{border-radius:50%;position:relative}.stat-icon.vacant-icon{background:rgba(87,232,183,.08);border-color:rgba(87,232,183,.14)}.stat-icon.full-icon{background:rgba(255,107,114,.08);border-color:rgba(255,107,114,.14)}.stat-icon.vacant-icon span,.stat-icon.full-icon span{width:17px;height:17px;border-radius:50%;box-shadow:0 0 0 8px rgba(87,232,183,.07)}.stat-icon.vacant-icon span{background:var(--vacant)}.stat-icon.full-icon span{background:var(--full);box-shadow:0 0 0 8px rgba(255,107,114,.07)}.stat-card>div:last-child{display:flex;flex-direction:column}.stat-card span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#6f8097;font-weight:800}.stat-card strong{font-size:31px;line-height:1;margin:6px 0;letter-spacing:-.04em}.stat-card small{font-size:10px;color:#67768d}.search-section{padding:28px;border:1px solid #1e3046;border-radius:22px;background:radial-gradient(circle at 90% 20%,rgba(109,247,200,.05),transparent 28%),#0c1828;box-shadow:0 18px 55px rgba(0,0,0,.12)}.section-heading-row{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.section-heading-row h2{font-size:21px;margin:5px 0 4px;letter-spacing:-.03em}.section-heading-row p{margin:0;color:#718197;font-size:11px}.section-heading-row.compact{align-items:center;margin-bottom:15px}.keyboard-hint{font-size:10px;color:#63728a}.keyboard-hint kbd{background:#15243a;border:1px solid #283a52;border-bottom-width:2px;border-radius:6px;padding:2px 6px;color:#aebbd0}.cab-search-box{height:64px;display:flex;align-items:center;border:1px solid #263a52;background:#081421;border-radius:16px;padding:0 17px;transition:.2s ease}.cab-search-box:focus-within{border-color:rgba(109,247,200,.42);box-shadow:0 0 0 3px rgba(109,247,200,.06)}.cab-search-box>svg{width:23px;height:23px;color:#62738d}.cab-search-box input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:#eff6ff;font-size:15px;padding:0 14px}.cab-search-box input::placeholder{color:#56657c}.cab-search-box button{display:none;border:0;background:#17263a;color:#8594a9;width:26px;height:26px;border-radius:50%;font-size:18px;line-height:1}.cab-search-box:focus-within button,.cab-search-box input:not(:placeholder-shown)+button{display:block}.enter-key{font-size:9px;color:#66758b;border:1px solid #25364c;border-radius:7px;padding:5px 7px;margin-left:10px}.search-note{display:flex;align-items:center;gap:7px;color:#5e6d83;font-size:9px;margin-top:10px}.search-note span{width:5px;height:5px;border-radius:50%;background:var(--vacant);box-shadow:0 0 0 4px rgba(87,232,183,.06)}.results-section{padding:24px 0}.empty-state{border:1px dashed #203149;border-radius:20px;min-height:255px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px;background:rgba(11,24,39,.46)}.empty-visual{width:105px;height:75px;color:#32485f;margin-bottom:12px}.empty-visual svg{width:100%;height:100%;stroke-width:1.4}.empty-state h3{font-size:15px;margin:3px 0 7px;color:#c3cfdd}.empty-state p{max-width:440px;margin:0;color:#65758c;font-size:11px;line-height:1.65}.empty-visual.not-found{border:1px solid #263a52;border-radius:50%;width:52px;height:52px;display:grid;place-items:center;font-size:18px;color:#76869d}.cab-results{display:grid;gap:13px}.cab-detail-card{border-radius:20px;border:1px solid #203148;background:linear-gradient(145deg,#0e1b2d,#0b1727);padding:20px;overflow:hidden;position:relative}.cab-detail-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%}.cab-detail-card.status-vacant:before{background:var(--vacant)}.cab-detail-card.status-full:before{background:var(--full)}.cab-detail-head{display:flex;align-items:center;justify-content:space-between}.cab-identity{display:flex;align-items:center;gap:13px}.cab-icon{width:50px;height:44px;border-radius:13px;display:grid;place-items:center;background:#142338;color:#7e9ab7}.cab-icon svg{width:38px;height:28px}.cab-identity span{font-size:8px;letter-spacing:.12em;color:#617189;font-weight:800}.cab-identity h3{font-size:17px;margin:3px 0 0;letter-spacing:.025em}.cab-data-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:17px;padding-top:17px;border-top:1px solid #1b2a3f}.cab-data-grid div{display:flex;flex-direction:column;min-width:0}.cab-data-grid span{font-size:9px;color:#65758c;margin-bottom:5px}.cab-data-grid strong{font-size:11px;color:#bec9d7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-vacant{color:#72e9c1!important}.text-full{color:#ff858b!important}.result-skeleton{display:grid;grid-template-columns:1fr 1.4fr .7fr;gap:10px;padding:20px;border:1px solid #1c2c41;border-radius:18px}.result-skeleton span{height:46px;border-radius:10px;background:linear-gradient(90deg,#101d2e,#17263a,#101d2e);background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-200% 0}}.recent-section{margin-top:4px}.recent-list{border:1px solid #1d2d42;border-radius:18px;overflow:hidden;background:#0b1727}.recent-row{display:grid;grid-template-columns:46px minmax(0,1.5fr) 95px 125px;align-items:center;gap:13px;padding:13px 17px;border-bottom:1px solid #17263a}.recent-row:last-child{border-bottom:0}.car-mini{width:40px;height:36px;border-radius:10px;background:#132136;display:grid;place-items:center;color:#738aa4}.car-mini svg{width:30px}.recent-main{display:flex;flex-direction:column;min-width:0}.recent-main strong{font-size:11px;letter-spacing:.025em}.recent-main small{font-size:9px;color:#66778e;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-time{font-size:9px;color:#66758b;text-align:right}
/* Driver */.driver-page{min-height:100vh;background:radial-gradient(circle at 50% 28%,rgba(49,135,114,.13),transparent 24%),#08121f}.driver-shell{width:min(100% - 36px,760px);margin:0 auto;padding:28px 0 50px}.driver-header{display:flex;align-items:center;justify-content:space-between}.driver-logout{padding:9px 11px;border:1px solid #1d2d42}.driver-intro{text-align:center;margin:70px auto 28px;max-width:590px}.driver-intro h1{font-size:37px;letter-spacing:-.045em;margin:15px 0 10px}.driver-intro p{margin:0;color:#7f8da2;line-height:1.7;font-size:13px}.driver-card{border:1px solid #203248;border-radius:28px;background:linear-gradient(160deg,#0f1e31,#0b1727);box-shadow:0 28px 80px rgba(0,0,0,.23);overflow:hidden}.driver-card-top{min-height:225px;display:flex;align-items:center;justify-content:center;position:relative;border-bottom:1px solid #1b2a3e;background:radial-gradient(circle at 50% 55%,rgba(109,247,200,.075),transparent 33%)}.vehicle-illustration{width:260px;height:130px;position:relative;color:#8ea6bd}.vehicle-illustration svg{position:relative;width:100%;height:100%;filter:drop-shadow(0 24px 16px rgba(0,0,0,.2));stroke-width:1.15}.vehicle-glow{position:absolute;left:20%;right:20%;bottom:22px;height:18px;background:rgba(109,247,200,.17);filter:blur(22px);border-radius:50%}.plate-badge{position:absolute;bottom:18px;right:21px;padding:7px 10px;border-radius:8px;background:#dbe5e5;color:#101518;font-size:9px;font-weight:900;letter-spacing:.08em;box-shadow:0 5px 12px rgba(0,0,0,.2)}.vehicle-details{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#1a2a3f;border-bottom:1px solid #1a2a3f}.vehicle-details>div{padding:18px 23px;background:#0c192a;display:flex;flex-direction:column}.vehicle-details span{font-size:9px;color:#66768c;margin-bottom:4px}.vehicle-details strong{font-size:12px;color:#c8d3df}.status-control-wrap{padding:29px 30px 27px}.status-copy{text-align:center}.status-copy h2{margin:5px 0;font-size:23px;letter-spacing:-.025em}.status-copy p{font-size:11px;color:#738299;margin:0}.occupancy-switch{width:min(100%,430px);height:86px;margin:27px auto 19px;padding:0 18px;display:grid;grid-template-columns:1fr 128px 1fr;align-items:center;gap:12px;border:1px solid #21344a;border-radius:22px;background:#081421;position:relative;transition:.25s ease;color:#6c7d95}.switch-label{font-size:11px;font-weight:900;letter-spacing:.1em;transition:.2s ease}.off-label{text-align:right}.on-label{text-align:left}.switch-track{width:128px;height:50px;border-radius:99px;background:#173146;box-shadow:inset 0 0 0 1px #2b475c;position:relative;transition:.25s ease}.switch-knob{position:absolute;top:5px;left:5px;width:40px;height:40px;border-radius:50%;background:#8b9aae;color:#12202d;display:grid;place-items:center;box-shadow:0 7px 18px rgba(0,0,0,.25);transition:.28s cubic-bezier(.2,.8,.2,1)}.switch-knob svg{width:18px;height:18px}.occupancy-switch.is-vacant .off-label{color:#70e9c1}.occupancy-switch.is-vacant .switch-track{background:rgba(57,205,161,.18);box-shadow:inset 0 0 0 1px rgba(87,232,183,.32),0 0 28px rgba(87,232,183,.06)}.occupancy-switch.is-vacant .switch-knob{left:5px;background:var(--vacant);color:#07251d}.occupancy-switch.is-full .on-label{color:#ff858b}.occupancy-switch.is-full .switch-track{background:rgba(255,107,114,.17);box-shadow:inset 0 0 0 1px rgba(255,107,114,.3),0 0 28px rgba(255,107,114,.06)}.occupancy-switch.is-full .switch-knob{left:83px;background:var(--full);color:#321014}.occupancy-switch.is-full .switch-knob svg{transform:rotate(45deg)}.occupancy-switch.is-loading{opacity:.7;pointer-events:none}.last-updated{display:flex;align-items:center;justify-content:center;gap:6px;font-size:9px;color:#5f6e83}.last-updated strong{font-weight:600;color:#8291a6}.pulse-dot{width:5px;height:5px;border-radius:50%;background:#6c7e95}.driver-tip{display:flex;gap:12px;margin-top:16px;padding:16px 18px;border:1px solid #1a2a3e;border-radius:16px;background:#0a1625}.tip-icon{width:26px;height:26px;flex:0 0 auto;border-radius:9px;display:grid;place-items:center;background:rgba(110,168,255,.08);color:#86b7ff;font-size:11px;font-weight:900}.driver-tip strong{font-size:11px}.driver-tip p{font-size:10px;color:#6e7e94;line-height:1.6;margin:4px 0 0}.driver-tip b{color:#9eadbf}.driver-error-card{margin-top:90px;padding:40px;text-align:center;border:1px solid #24364a;border-radius:22px;background:#0d1929}.driver-error-card>span{display:grid;place-items:center;margin:0 auto 14px;width:46px;height:46px;border-radius:50%;color:#ff969b;background:rgba(255,107,114,.1);font-weight:900}.driver-error-card h1{margin:0 0 8px}.driver-error-card p{color:#8290a4;font-size:12px}.toast{position:fixed;right:22px;bottom:22px;min-width:300px;padding:14px;border:1px solid rgba(87,232,183,.2);border-radius:14px;background:#0e1d2c;box-shadow:var(--shadow);display:flex;align-items:center;gap:11px;transform:translateY(22px);opacity:0;visibility:hidden;transition:.25s ease;z-index:50}.toast.show{transform:none;opacity:1;visibility:visible}.toast.error-toast{border-color:rgba(255,107,114,.23)}.toast-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:rgba(87,232,183,.1);color:var(--vacant);font-weight:900}.error-toast .toast-icon{background:rgba(255,107,114,.1);color:var(--full)}.toast div{display:flex;flex-direction:column}.toast strong{font-size:11px}.toast small{font-size:9px;color:#74849b;margin-top:2px}
@media(max-width:1000px){.login-shell{grid-template-columns:1fr}.login-showcase{display:none}.login-panel{min-height:100vh;padding:34px 22px}.mobile-brand{display:flex;margin-bottom:55px}.login-footer{position:static;text-align:center;margin-top:32px}.app-shell{grid-template-columns:78px 1fr}.sidebar{width:78px;padding:23px 15px}.sidebar .brand>span:last-child,.side-nav span,.side-help div,.logout-link:not(.driver-logout){font-size:0}.sidebar .brand{justify-content:center}.sidebar .brand-mark{width:39px;height:39px}.side-nav a,.side-nav button{justify-content:center;padding:0}.side-help{justify-content:center;padding:9px}.logout-link{justify-content:center}.main-content{grid-column:2}.dashboard-grid{grid-template-columns:1fr 1fr 1fr}.stat-card{padding:17px}.cab-data-grid{grid-template-columns:1fr 1fr}.recent-row{grid-template-columns:46px minmax(0,1.4fr) 85px}.recent-time{display:none}}
@media(max-width:720px){.app-shell{display:block}.sidebar{display:flex;width:245px;padding:28px 22px 22px;transform:translateX(-100%);transition:transform .2s ease;box-shadow:18px 0 45px rgba(0,0,0,.35)}.sidebar.is-open{transform:none}.sidebar .brand{justify-content:flex-start}.side-nav a,.side-nav button{justify-content:flex-start;padding:0 13px}.side-nav span{font-size:12px}.side-help{justify-content:flex-start;padding:12px}.logout-link:not(.driver-logout){justify-content:flex-start;font-size:11px}.main-content{padding:22px 16px 44px}.topbar{margin-bottom:24px}.topbar h1{font-size:23px}.user-chip{padding-right:7px}.user-chip>div:last-child{display:none}.mobile-menu{display:grid;width:37px;height:37px;border:1px solid #1f3046;background:#0d1929;border-radius:10px;padding:9px;gap:3px}.mobile-menu[aria-expanded="true"]{position:fixed;z-index:30;top:22px;left:196px}.mobile-menu span{height:1px;background:#8da0b5}.dashboard-grid{grid-template-columns:1fr 1fr}.stat-card{min-height:105px}.primary-stat{grid-column:1/-1}.stat-icon{width:46px;height:46px}.stat-card strong{font-size:26px}.search-section{padding:20px 16px}.section-heading-row{align-items:flex-start}.keyboard-hint{display:none}.cab-search-box{height:58px}.enter-key{display:none}.cab-data-grid{grid-template-columns:1fr}.cab-detail-head{align-items:flex-start}.cab-identity h3{font-size:15px}.recent-row{grid-template-columns:38px minmax(0,1fr) 78px;padding:12px}.car-mini{width:34px}.recent-main small{max-width:190px}.driver-shell{width:min(100% - 24px,760px);padding-top:18px}.driver-header .brand small{display:none}.driver-logout span{display:none}.driver-intro{margin:55px auto 22px}.driver-intro h1{font-size:31px}.driver-intro p{font-size:12px}.driver-card-top{min-height:185px}.vehicle-illustration{width:220px;height:110px}.vehicle-details{grid-template-columns:1fr}.status-control-wrap{padding:24px 16px}.occupancy-switch{height:80px;grid-template-columns:1fr 104px 1fr;padding:0 8px}.switch-track{width:104px;height:48px}.switch-knob{width:38px;height:38px}.occupancy-switch.is-full .switch-knob{left:61px}.switch-label{font-size:9px}.toast{left:14px;right:14px;bottom:14px;min-width:0}.login-heading h2{font-size:28px}.mobile-brand{margin-bottom:45px}}
@media(max-width:420px){.login-panel{padding:24px 17px}.role-tabs{gap:4px}.dashboard-grid{gap:9px}.stat-card{gap:12px;padding:14px}.stat-icon{width:42px;height:42px}.recent-main small{max-width:145px}.occupancy-switch{grid-template-columns:1fr 96px 1fr}.switch-track{width:96px}.occupancy-switch.is-full .switch-knob{left:53px}}

/* Admin fleet directory */
.admin-topbar { gap: 20px; }
.admin-top-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.sync-indicator { display: inline-flex; align-items: center; gap: 8px; min-width: 66px; font-size: 12px; font-weight: 800; color: #67e8a8; letter-spacing: .04em; }
.sync-indicator i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px rgba(103,232,168,.09); }
.sync-indicator.syncing { color: #f7c76d; }
.sync-indicator.error { color: #ff7f8b; }
.refresh-btn { border: 1px solid rgba(255,255,255,.1); color: #dbe7f5; background: rgba(255,255,255,.045); border-radius: 12px; min-height: 42px; padding: 0 14px; display: inline-flex; align-items: center; gap: 8px; font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; transition: .2s ease; }
.refresh-btn:hover { background: rgba(255,255,255,.08); transform: translateY(-1px); }
.refresh-btn svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.refresh-btn.is-spinning svg { animation: cabpulse-spin .8s linear infinite; }
@keyframes cabpulse-spin { to { transform: rotate(360deg); } }
.fleet-section { margin-top: 25px; padding: 28px; border: 1px solid rgba(255,255,255,.08); background: linear-gradient(155deg, rgba(10,25,43,.93), rgba(6,17,31,.88)); border-radius: 24px; box-shadow: 0 20px 60px rgba(0,0,0,.16); }
.fleet-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 20px; }
.fleet-toolbar h2 { margin: 5px 0 6px; font-size: clamp(25px, 3vw, 34px); }
.fleet-toolbar p { margin: 0; color: #899aaf; }
.fleet-meta { text-align: right; display: grid; gap: 4px; }
.fleet-meta span { font-size: 14px; font-weight: 800; color: #eaf3fd; }
.fleet-meta small { color: #6e8299; font-size: 11px; }
.fleet-search-box { margin-bottom: 18px; }
.fleet-card-list { display: grid; gap: 12px; }
.fleet-loading { display: grid; gap: 12px; }
.fleet-loading[hidden] { display: none; }
.fleet-empty { min-height: 0; padding: 12px 14px; border-style: solid; border-radius: 14px; flex-direction: row; justify-content: flex-start; gap: 9px; text-align: left; }
.fleet-empty .empty-visual { width: 28px; height: 28px; margin: 0; flex: 0 0 auto; font-size: 12px; }
.fleet-empty h3 { margin: 0; white-space: nowrap; }
.fleet-empty p { max-width: none; line-height: 1.4; }
.fleet-card { border: 1px solid rgba(255,255,255,.08); border-radius: 18px; background: rgba(255,255,255,.035); overflow: hidden; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.fleet-card:hover { border-color: rgba(255,255,255,.15); background: rgba(255,255,255,.052); }
.fleet-card[open] { border-color: rgba(79,209,197,.24); background: rgba(255,255,255,.052); }
.fleet-card summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 54px minmax(170px,1.35fr) minmax(130px,.95fr) auto 28px; align-items: center; gap: 16px; padding: 18px 19px; }
.fleet-card summary::-webkit-details-marker { display: none; }
.fleet-car-icon { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: rgba(83,143,255,.1); color: #8eb7ff; }
.fleet-car-icon svg { width: 35px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.fleet-summary-main, .fleet-driver-preview { min-width: 0; display: grid; gap: 3px; }
.fleet-summary-main span, .fleet-driver-preview span { color: #63768e; letter-spacing: .08em; font-size: 9px; font-weight: 900; }
.fleet-summary-main strong { color: #f3f8ff; letter-spacing: .06em; font-size: 16px; }
.fleet-summary-main small { color: #8091a5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fleet-driver-preview strong { color: #d8e3ef; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.accordion-arrow { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 9px; background: rgba(255,255,255,.045); color: #708399; transition: transform .2s ease, color .2s ease; }
.accordion-arrow svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.fleet-card[open] .accordion-arrow { transform: rotate(180deg); color: #9fe2dd; }
.fleet-card-body { border-top: 1px solid rgba(255,255,255,.07); padding: 18px 20px 20px 90px; animation: fleet-open .18s ease-out; }
@keyframes fleet-open { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.fleet-data-grid { margin: 0; }
.fleet-status-note { margin-top: 15px; min-height: 40px; border-radius: 12px; padding: 0 13px; display: flex; align-items: center; gap: 8px; width: fit-content; font-size: 12px; color: #91a3b8; background: rgba(255,255,255,.035); }
.fleet-status-note i { width: 8px; height: 8px; border-radius: 50%; }
.fleet-status-note.vacant i { background: #54d991; box-shadow: 0 0 0 5px rgba(84,217,145,.08); }
.fleet-status-note.full i { background: #ff6577; box-shadow: 0 0 0 5px rgba(255,101,119,.08); }
.fleet-status-note.vacant strong { color: #69e4a3; }
.fleet-status-note.full strong { color: #ff7c8a; }

@media (max-width: 860px) {
    .admin-top-actions .user-chip { display: none; }
    .fleet-card summary { grid-template-columns: 48px minmax(0,1fr) auto 26px; gap: 12px; }
    .fleet-driver-preview { display: none; }
    .fleet-card-body { padding-left: 19px; }
}
@media (max-width: 620px) {
    .admin-top-actions { gap: 8px; }
    .sync-indicator { min-width: 0; }
    .sync-indicator span { display: none; }
    .refresh-btn span { display: none; }
    .refresh-btn { width: 42px; padding: 0; justify-content: center; }
    .fleet-section { padding: 20px 15px; border-radius: 19px; }
    .fleet-toolbar { align-items: start; flex-direction: column; gap: 10px; }
    .fleet-meta { text-align: left; }
    .fleet-card summary { grid-template-columns: 42px minmax(0,1fr) auto; padding: 15px 13px; }
    .fleet-car-icon { width: 42px; height: 42px; border-radius: 12px; }
    .accordion-arrow { display: none; }
    .fleet-card .status-pill { grid-column: 3; grid-row: 1; }
    .fleet-data-grid { grid-template-columns: 1fr; }
}
