:root{--font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--paper: #fdfcf8;--paper-txt: #1b1a17;--paper-mut: #8a8577;--paper-dash: #c9c3b4;--paper-ok: #0f8a55;--paper-bad: #c94444;--star: #f59e0b;--star-off: #d9d4c6;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}.t-day{--bg: #f7f6f3;--card: #ffffff;--card2: #f1efe9;--cb: transparent;--line: #e7e4dc;--txt: #1b1a17;--mut: #8a8577;--ok: #0f8a55;--danger: #c94444;--warn: #f59e0b;--warnsoft: #fdf1d8;--ph: #b3ad9e;--sh: 0 1px 3px rgba(27, 26, 23, .06), 0 8px 22px rgba(27, 26, 23, .1);--tile: #f1efe9;--digit: #1b1a17;--dim: #b3ad9e;--gA: #f59e0b;--gB: #0f8a55;--gT: #e7e4dc;--map-filter: saturate(.55) contrast(.95) brightness(1.02);color-scheme:light}.t-night{--bg: #0d0c0a;--card: #161411;--card2: #1d1a15;--cb: #2b2721;--line: #2b2721;--txt: #f4efe6;--mut: #94897a;--ok: #3ddc7f;--danger: #ff5d5d;--warn: #ffb800;--warnsoft: rgba(255, 184, 0, .1);--ph: #6d6355;--sh: 0 8px 24px rgba(0, 0, 0, .45);--tile: #1d1a15;--digit: #ffb800;--dim: #6d6355;--gA: #ffb800;--gB: #3ddc7f;--gT: #2b2721;--map-filter: invert(1) hue-rotate(195deg) brightness(.72) contrast(.92) saturate(.25) sepia(.25);color-scheme:dark}.t-day.role-passenger{--acc: #0f8a55;--acc2: #0f8a55;--soft: #e3f4ec;--ink: #123f2b;--onacc: #ffffff;--btn: #0f8a55;--btnsh: 0 10px 26px rgba(15, 138, 85, .32);--glow: rgba(15, 138, 85, .35)}.t-night.role-passenger{--acc: #3ddc7f;--acc2: #ffb800;--soft: rgba(61, 220, 127, .13);--ink: #9af0bf;--onacc: #06140c;--btn: linear-gradient(135deg, #2fcf72, #54e392);--btnsh: 0 8px 24px rgba(61, 220, 127, .28);--glow: rgba(61, 220, 127, .35)}.t-day.role-driver{--acc: #e8590c;--acc2: #e8590c;--soft: #fdeedd;--ink: #7a3306;--onacc: #ffffff;--btn: linear-gradient(135deg, #f76707, #ff8f2b);--btnsh: 0 10px 26px rgba(232, 89, 12, .32);--glow: rgba(232, 89, 12, .35)}.t-night.role-driver{--acc: #ff6a2b;--acc2: #ffb800;--soft: rgba(255, 106, 43, .14);--ink: #ffb800;--onacc: #140d08;--btn: linear-gradient(135deg, #ff6a2b, #ff8f2b);--btnsh: 0 8px 24px rgba(255, 106, 43, .3);--glow: rgba(255, 106, 43, .4)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg, #0d0c0a);color:var(--txt, #f4efe6);font-family:var(--font);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}input,textarea{font:inherit;color:inherit}a{color:inherit}h1,h2,h3,p{margin:0}.mono{font-family:var(--mono)}.mut{color:var(--mut)}.micro{font-size:12px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase}.h1{font-size:22px;font-weight:800;letter-spacing:-.4px;line-height:1.2}.app{min-height:100%;max-width:480px;margin:0 auto;background:var(--bg);display:flex;flex-direction:column;position:relative}.card{background:var(--card);border:1.5px solid var(--cb);border-radius:20px;box-shadow:var(--sh)}.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;padding:14px 18px;border-radius:18px;font-weight:800;font-size:17px;-webkit-user-select:none;user-select:none;transition:transform .08s ease,opacity .15s ease;text-decoration:none}.btn:active:not(:disabled){transform:scale(.985)}.btn-primary{background:var(--btn);color:var(--onacc);box-shadow:var(--btnsh)}.btn-secondary{background:var(--card2);color:var(--txt)}.btn-ghost{background:transparent;color:var(--acc)}.btn-danger{background:var(--card2);color:var(--danger)}.btn:disabled{background:var(--card2);color:var(--mut);box-shadow:none}.btn-lg{min-height:72px;font-size:20px;border-radius:22px}.btn-xl{min-height:88px;font-size:25px;border-radius:22px;letter-spacing:.5px}.icon-btn{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:14px;background:var(--card);border:1.5px solid var(--cb);box-shadow:var(--sh);color:var(--txt)}.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--card);border:1.5px solid var(--cb);font-weight:700;font-size:13px}.chip{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 16px;border-radius:999px;background:var(--card);border:1.5px solid var(--line);font-weight:700}.chip[aria-pressed=true]{background:var(--soft);border-color:var(--acc);color:var(--ink)}.field{width:100%;min-height:56px;padding:14px 16px;border-radius:16px;background:var(--card2);border:1.5px solid var(--line);outline:none;font-size:17px}.field:focus{border-color:var(--acc)}.field::placeholder{color:var(--ph)}.error-text{color:var(--danger);font-size:14px;font-weight:600}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.pulse{animation:pulse 1.4s infinite}@media(prefers-reduced-motion:reduce){.pulse,*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.map{width:100%;height:100%;background:var(--card2);isolation:isolate}.map .leaflet-tile-pane{filter:var(--map-filter)}.map .leaflet-control-attribution{font:9px/1.4 var(--font);background:color-mix(in srgb,var(--bg) 75%,transparent)!important;color:var(--mut);padding:1px 5px}.map .leaflet-control-attribution a{color:var(--mut)}.map-pin{position:relative;width:18px;height:18px}.map-pin i{position:absolute;inset:0;border-radius:50%;border:3px solid var(--card);box-shadow:0 2px 8px #00000059;background:var(--txt)}.map-pin.to i{background:var(--acc)}.map-pin.pulse-ring:before{content:"";position:absolute;inset:-14px;border-radius:50%;background:var(--glow);animation:ring 1.6s ease-out infinite}@keyframes ring{0%{transform:scale(.4);opacity:1}to{transform:scale(1.6);opacity:0}}.map-pin span{position:absolute;left:24px;top:-5px;white-space:nowrap;font:700 12px/1 var(--font);color:var(--txt);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 9px;box-shadow:0 2px 8px #0000002e}.map-car{width:34px;height:34px;border-radius:12px;background:var(--card);border:2px solid var(--acc);color:var(--acc);display:grid;place-items:center;box-shadow:0 3px 10px #0000004d}.receipt{background:var(--paper);color:var(--paper-txt);font-family:var(--mono);font-size:14px;line-height:1.75;padding:22px 24px 26px;box-shadow:0 20px 50px #00000047;position:relative}.receipt .r-mut{color:var(--paper-mut)}.receipt .r-dash{border:0;border-top:1.5px dashed var(--paper-dash);margin:12px 0}.receipt .r-row{display:flex;align-items:baseline;gap:6px}.receipt .r-row>.r-lead{flex:1;min-width:12px;border-bottom:1.5px dotted var(--paper-dash);transform:translateY(-4px)}.receipt .r-row>:last-child{text-align:right}.receipt .r-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:10px 12px;border:1.5px solid var(--paper-txt);border-radius:8px;font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:1px;color:var(--paper-txt);background:transparent;text-transform:uppercase}.receipt .r-btn.solid{background:var(--paper-txt);color:var(--paper)}.receipt .r-btn:disabled{opacity:.45}.receipt .r-link{display:block;width:100%;min-height:44px;font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:1px;text-transform:uppercase;color:var(--paper-bad)}.perf-bottom:after,.perf-top:before{content:"";position:absolute;left:0;right:0;height:7px;background:radial-gradient(circle at 7px 0,transparent 6px,var(--paper) 6.5px) 0 0 / 14px 7px repeat-x}.perf-bottom:after{bottom:-7px;transform:scaleY(-1)}.perf-top:before{top:-7px}.plate{display:inline-flex;align-items:stretch;background:#fff;color:#1b1a17;border:3px solid #1b1a17;border-radius:9px;overflow:hidden;font-family:var(--mono);font-weight:700;line-height:1;white-space:nowrap}.plate>.p-main{display:flex;align-items:baseline;gap:.18em;padding:.22em .5em;letter-spacing:.06em}.plate>.p-main small{font-size:.72em}.plate>.p-sep{width:2px;background:#1b1a17}.plate>.p-region{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.15em .4em;font-size:.62em;gap:.15em}.plate>.p-region em{font-style:normal;font-size:.42em;letter-spacing:.1em;display:flex;align-items:center;gap:.3em}.plate>.p-region em:after{content:"";width:1.5em;height:.95em;border:.5px solid #b3ad9e;background:linear-gradient(#fff 33%,#1c3f94 33% 66%,#d52b1e 66%)}
