:root{--bg:#07090c;--s1:#10141a;--s2:#181e26;--s3:#212932;--line:#252e39;--tx:#f3f6f8;--mut:#8b97a5;--ac:#b6ff3b;--ac2:#7fe000;--red:#ff5a5f;--amb:#ffb340;--blu:#4cc3ff;--r:18px;--ease:cubic-bezier(.2,.8,.2,1);--font:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box;margin:0}
html,body{background:var(--bg);color:var(--tx);font:500 16px/1.45 var(--font);overflow-x:hidden;max-width:100%;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{background:radial-gradient(900px 500px at 85% -10%,rgba(182,255,59,.07),transparent 60%),radial-gradient(700px 500px at -10% 110%,rgba(76,195,255,.06),transparent 60%),var(--bg);background-attachment:fixed}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
h1,h2,h3{letter-spacing:-.03em;font-weight:800;line-height:1.1}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:16px;padding:14px 22px;font-weight:700;background:var(--s2);color:var(--tx);min-height:52px;text-decoration:none;transition:transform .12s var(--ease),background .2s,border-color .2s,box-shadow .25s,opacity .2s}
.btn:hover{background:var(--s3);border-color:#34404d}
.btn:active{transform:scale(.97)}
.btn.pri{background:linear-gradient(180deg,#c6ff5c,var(--ac));color:#0a0d05;border-color:transparent;box-shadow:0 8px 24px -8px rgba(182,255,59,.55)}
.btn.pri:hover{box-shadow:0 10px 30px -6px rgba(182,255,59,.75);filter:brightness(1.05)}
.btn.red{background:#2a1517;color:var(--red);border-color:#4a2327}
.btn.red:hover{background:#3a1b1e}
.btn.sm{padding:8px 14px;min-height:38px;font-size:14px;border-radius:12px}
.btn[disabled]{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
.btn.block{width:100%}
input,select{background:var(--s2);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;width:100%;min-height:50px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
input::placeholder{color:#667281}
input:focus,select:focus{border-color:var(--ac);box-shadow:0 0 0 4px rgba(182,255,59,.12)}
label{display:block;font-size:12px;font-weight:700;color:var(--mut);margin:12px 0 6px;letter-spacing:.02em;text-transform:uppercase}
.card{background:linear-gradient(180deg,var(--s1),#0d1116);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.mut{color:var(--mut)}.ac{color:var(--ac)}
.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}
.hide{display:none!important}
.top{position:fixed;top:0;left:0;right:0;z-index:1200;display:flex;justify-content:space-between;align-items:center;padding:10px 14px;pointer-events:none}
.top>*{pointer-events:auto}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:-.03em;text-decoration:none;background:rgba(7,9,12,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:5px 16px 5px 6px;border-radius:999px;border:1px solid rgba(255,255,255,.07);font-size:20px;transition:transform .15s}
.brand:hover{transform:translateY(-1px)}
.brand .logo{display:block;filter:drop-shadow(0 4px 12px rgba(182,255,59,.35))}
.lang{display:flex;background:rgba(7,9,12,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:999px;padding:3px;border:1px solid rgba(255,255,255,.07)}
.lang button{border:0;background:none;color:var(--mut);padding:7px 11px;border-radius:999px;font-weight:800;font-size:12px;letter-spacing:.04em;transition:.2s}
.lang button:hover{color:var(--tx)}
.lang button.on{background:var(--ac);color:#0a0d05}
.foot{text-align:center;font-size:12px;color:var(--mut);padding:12px 12px 14px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#2a1214;color:#ffb3b5;border:1px solid #5a2327;padding:12px 18px;border-radius:14px;z-index:3000;max-width:90vw;animation:up .3s var(--ease);box-shadow:0 12px 30px #000a}
@keyframes up{from{opacity:0;transform:translate(-50%,12px)}}
/* map */
.leaflet-container{background:#0b0e12;font:inherit}
.leaflet-tile-pane{filter:invert(1) hue-rotate(185deg) brightness(.95) contrast(.95) saturate(.5)}
.leaflet-control-attribution{background:rgba(7,9,12,.6)!important;color:var(--mut)!important;font-size:10px}
.leaflet-control-attribution a{color:var(--mut)!important}
.leaflet-bar{border:0!important;box-shadow:0 6px 20px #0008!important;border-radius:14px!important;overflow:hidden}
.leaflet-bar a{background:var(--s1)!important;color:var(--tx)!important;border-color:var(--line)!important;width:38px!important;height:38px!important;line-height:38px!important}
.leaflet-tooltip.tt{background:var(--s1);color:var(--tx);border:1px solid var(--line);border-radius:10px;font:600 12px var(--font);padding:5px 9px;box-shadow:0 6px 18px #0009}
.leaflet-tooltip.tt:before{display:none}
.carico{background:none;border:0}
.car{--c:var(--ac);width:24px;height:44px;transform-origin:50% 50%;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--c) 55%,transparent))}
.car svg{display:block;transform:scale(var(--cs,1));transform-origin:50% 50%}
.car.online{--c:#b6ff3b}.car.busy{--c:#ffb340}.car.offline,.car.suspended,.car.pending{--c:#6b7580}.car.mine{--c:#fff}
.car.mine{filter:drop-shadow(0 0 10px rgba(182,255,59,.9)) drop-shadow(0 0 3px #fff8)}
.pinw{position:relative;width:36px;height:46px;filter:drop-shadow(0 4px 8px #0008)}
.pinw svg{display:block}
.pinw .ring{position:absolute;left:4px;bottom:-2px;width:28px;height:28px;border-radius:50%;border:2px solid var(--ac);animation:ringp 2s infinite var(--ease);opacity:0}
@keyframes ringp{0%{transform:scale(.3);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.route-flow{animation:flow 1.1s steps(13) infinite}
@keyframes flow{to{stroke-dashoffset:-13}}
.route-glow{}
/* misc */
.av{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;color:#0a0d05;flex:none;box-shadow:0 6px 16px -4px #0009,inset 0 0 0 2px rgba(255,255,255,.25)}
.tag{display:inline-block;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700;background:var(--s3);white-space:nowrap}
.tag.online,.tag.approved,.tag.completed{background:rgba(182,255,59,.14);color:var(--ac)}
.tag.busy,.tag.pending,.tag.searching,.tag.accepted,.tag.arrived,.tag.in_trip{background:rgba(255,179,64,.14);color:var(--amb)}
.tag.offline,.tag.cancelled,.tag.suspended{background:#222a33;color:#9aa5b1}
.plate{display:inline-flex;align-items:stretch;border-radius:7px;overflow:hidden;background:#fff;color:#0a0d12;border:1.5px solid #0a0d12;box-shadow:0 0 0 1.5px #dfe5ea;font-family:"Space Mono",ui-monospace,Menlo,monospace;height:28px;vertical-align:middle}
.plate b{background:#1f4fb4;color:#fff;font-size:9px;display:flex;align-items:flex-end;justify-content:center;padding:0 5px 2px;letter-spacing:.04em;font-family:var(--font)}
.plate i{font-style:normal;font-weight:800;font-size:14px;letter-spacing:.06em;padding:0 9px;display:flex;align-items:center;font-family:var(--font)}
.skel{position:relative;overflow:hidden;background:var(--s2);border-radius:14px}
.skel:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);animation:sh 1.3s infinite}
@keyframes sh{to{transform:translateX(100%)}}
.fadein{animation:fi .45s var(--ease) both}
@keyframes fi{from{opacity:0;transform:translateY(14px)}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01s!important;transition-duration:.01s!important}.route-flow{animation:none}}
.kpi .v,.big-n,.sum,.est,.ofare,.cls .pr,.pfare{word-spacing:.14em}
.btn.pri[disabled]{background:var(--s3);color:var(--mut);box-shadow:none;opacity:1;border-color:var(--line)}
.tag.blocked,.tag.rejected{background:#2a1517;color:var(--red)}
.cancelled{} .bar-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.navrow{display:flex;gap:8px;margin-top:10px}.navrow a{flex:1;text-decoration:none;text-align:center}
a.btn{text-decoration:none}
