@font-face{font-family:City;src:url('/assets/DejaVuSans.ttf') format('truetype');font-display:swap}:root{--ink:#17271f;--paper:#f6f2e9;--muted:#7a827b;--accent:#ffc638;--green:#22774f;--line:#dedfd3;--danger:#b73d36;font-family:City,'Trebuchet MS',Verdana,sans-serif;color:var(--ink);background:#dae0d1;font-size:15px}*{box-sizing:border-box}body{margin:0;height:100dvh;overflow:hidden}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{opacity:.5;cursor:wait}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #2c835b;outline-offset:3px}[hidden]{display:none!important}#map{position:absolute;inset:0}.map-shade{position:absolute;inset:0 0 auto;height:190px;background:linear-gradient(#f4f0e7ed,#f4f0e700);pointer-events:none}header{position:absolute;left:22px;right:22px;top:calc(17px + env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-size:27px;font-weight:900;letter-spacing:-1.4px;line-height:1}.brand-icon{width:41px;height:41px;display:grid;place-items:center;background:var(--accent);border-radius:13px;font-size:37px;font-weight:400}.brand-city{display:block;letter-spacing:2.5px;font-size:8px;margin-top:6px}.connection{font-size:10px;font-weight:bold;padding:8px 10px;border:1px solid #c8d4c2;background:#f6f2e9e8;border-radius:30px;white-space:nowrap}.connection.ok:before{content:'● ';color:var(--green)}.roles{position:absolute;top:calc(84px + env(safe-area-inset-top));left:22px;display:flex;padding:4px;background:var(--paper);border:1px solid #dddccf;border-radius:30px;box-shadow:0 5px 20px #12271810}.roles button{padding:10px 20px;border-radius:22px;background:transparent;font-size:12px;font-weight:bold}.roles button.selected{background:var(--ink);color:#fff}.locate{position:absolute;right:20px;top:calc(88px + env(safe-area-inset-top));width:43px;height:43px;background:var(--paper);border:1px solid var(--line);border-radius:50%;font-size:28px;box-shadow:0 5px 20px #12271815}.sheet{position:absolute;bottom:0;left:0;right:0;max-height:64dvh;overflow:auto;background:var(--paper);border-radius:28px 28px 0 0;padding:9px 23px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -8px 40px #14261a16;scrollbar-width:thin;overscroll-behavior:contain}.handle{height:4px;width:34px;background:#d7d8ce;border-radius:9px;margin:0 auto 20px}.eyebrow{font-size:9px;font-weight:bold;letter-spacing:2.2px;margin:0 0 9px;color:#68796b}h1{font-size:32px;letter-spacing:-1.5px;margin:0 0 20px;line-height:1.05}h2{font-size:23px;letter-spacing:-.8px;margin:0 0 12px}.muted{color:#737e75;font-size:12px;line-height:1.65}.addresses{background:#fffdf7;border:1px solid var(--line);border-radius:18px;padding:4px 14px;margin-bottom:12px}.address-row{display:flex;align-items:center;gap:11px;min-height:59px}.address-row+.address-row{border-top:1px solid #e6e6dd}.dot{width:9px;height:9px;border-radius:50%;background:var(--green);flex-shrink:0}.dot.b{background:#ca6a43}.dot.w{background:#7b73af}.address-row input{width:100%;min-width:0;border:0;outline:0;background:transparent;padding:15px 0;color:var(--ink);font-size:14px}.address-row input::placeholder{color:#92988b}.pin-button{background:#eeeee5;border-radius:9px;padding:7px;font-size:16px}.add-stop{background:transparent;color:#667668;font-size:12px;padding:7px 0 12px}.primary,.secondary,.danger{width:100%;min-height:53px;border-radius:15px;font-weight:bold;font-size:15px;display:flex;justify-content:center;align-items:center;gap:8px;text-decoration:none}.primary{background:var(--accent);color:var(--ink)}.secondary{background:#e7eade;color:var(--ink);margin-top:9px}.danger{color:var(--danger);background:transparent;min-height:42px;font-size:12px}.pricebox{display:flex;justify-content:space-between;align-items:center;padding:7px 0 17px}.price{font-size:34px;letter-spacing:-1.2px;font-weight:bold}.price small{font-size:20px}.price-detail{font-size:11px;color:#738173;line-height:1.7}.tag{display:inline-block;background:#e1ebdc;color:#3c704a;padding:6px 9px;border-radius:9px;font-size:10px;font-weight:bold}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.section-head h1{margin:0}.text-btn{background:transparent;font-size:12px;text-decoration:underline;color:#617266;padding:8px 0}.results{margin:0 0 12px;padding:0;background:#fffdf7;border:1px solid var(--line);border-radius:13px;max-height:180px;overflow:auto}.result{display:block;text-align:left;width:100%;padding:13px 14px;background:transparent;border-bottom:1px solid #eeeee5;font-size:13px}.result:last-child{border-bottom:0}.places{display:flex;gap:7px;overflow:auto;padding-bottom:14px;scrollbar-width:none}.place{flex-shrink:0;border:1px solid var(--line);border-radius:20px;background:transparent;padding:8px 12px;font-size:11px}.footnote{font-size:10px;color:#8b9388;margin:13px 0 0;text-align:center;line-height:1.6}.trip-card{background:#fffdf7;border:1px solid var(--line);border-radius:17px;padding:15px;margin-bottom:12px}.trip-path{display:flex;gap:12px;align-items:center;padding:7px 0;font-size:13px}.trip-path .dot{width:7px;height:7px}.trip-meta{display:flex;justify-content:space-between;align-items:center;padding-top:12px;margin-top:6px;border-top:1px solid var(--line)}.fare{font-size:25px;font-weight:bold;white-space:nowrap}.status-line{font-size:12px;color:var(--green);font-weight:bold;margin:7px 0 16px}.waiting{background:#fff0c3;padding:11px 13px;border-radius:12px;font-size:12px;margin:12px 0;line-height:1.7}.actions-row{display:flex;gap:8px}.actions-row button{flex:1;min-width:0;font-size:13px}.shift{display:flex;justify-content:space-between;align-items:center;background:#e6eadc;border-radius:16px;padding:13px;margin-bottom:15px}.shift strong{font-size:13px;display:block}.shift small{font-size:10px;color:#7d8878}.shift button{width:auto;min-height:39px;padding:0 15px;font-size:12px;border-radius:12px}.empty{padding:18px 0 25px}.empty-icon{font-size:35px;color:#a0ad97;margin-bottom:10px}.history-row{padding:14px 0;border-bottom:1px solid var(--line)}.history-row small{color:#7d8878;display:block;font-size:11px;line-height:1.7;margin-top:5px}.history-row strong{font-size:13px}.badge{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--green);border:3px solid #fff;font-weight:bold;font-size:12px;box-shadow:0 3px 10px #0003}.badge.b{background:#c06241}.badge.w{background:#7b73af}.badge.car{background:var(--ink);font-size:16px;width:34px;height:34px}#toast{position:fixed;z-index:50;left:20px;right:20px;top:calc(143px + env(safe-area-inset-top));background:var(--ink);color:#fff;padding:13px 16px;border-radius:14px;font-size:12px;box-shadow:0 4px 20px #0003;line-height:1.5}#pin-hint{position:absolute;top:145px;left:20px;right:20px;background:var(--ink);color:#fff;padding:13px;border-radius:13px;font-size:12px;display:flex;align-items:center;justify-content:space-between;z-index:4}#pin-cancel{background:var(--accent);border-radius:8px;padding:8px}#map-error{position:absolute;left:15px;right:15px;top:195px;background:#ffefc9;color:#69562e;font-size:11px;padding:10px;border-radius:10px}.maplibregl-ctrl-attrib{font-size:9px!important}.maplibregl-ctrl-bottom-right{top:auto;bottom:64dvh}.sheet.pinning{max-height:32dvh}.gps-note{font-size:11px;color:#7d6741;background:#eee6d1;padding:10px 12px;line-height:1.6;border-radius:12px;margin:12px 0}.mini-link{font-size:11px;color:#496d51}.offer-input{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px;background:white;margin:8px 0}.footer-links{display:flex;justify-content:space-between;margin-top:17px;align-items:center}.request-id{font-size:10px;color:#899282}#content{animation:arrive .25s ease both}@keyframes arrive{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(min-width:700px){.sheet{left:24px;bottom:24px;right:auto;width:410px;border-radius:25px;max-height:76dvh;padding-bottom:24px}header{right:28px;left:28px;top:25px}.roles{top:97px;left:28px}.locate{top:97px}#toast{left:28px;right:auto;width:400px}.maplibregl-ctrl-bottom-right{top:auto;bottom:15px}#pin-hint{left:470px;max-width:400px}.sheet.pinning{max-height:40dvh}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}

.sheet-grip{display:flex;flex-direction:column;align-items:center;width:100%;min-height:36px;background:transparent;color:#7a827b;padding:2px 0 8px;touch-action:none;user-select:none}.sheet-grip .handle{display:block;flex-shrink:0;margin:0 auto 6px}.sheet-grip #sheet-label{font-size:9px;letter-spacing:.3px}.sheet.collapsed{height:83px;max-height:83px;overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}.sheet.collapsed .sheet-grip{min-height:54px}.sheet.collapsed #sheet-label{font-size:14px;font-weight:bold;color:var(--ink)}.sheet.collapsed.pinning{max-height:83px}.search-status{font-size:12px;color:#667668;margin:6px 0 12px}

.field-label{display:block;font-size:12px;color:#667668;margin:8px 0 13px}textarea{font:inherit;resize:vertical;border:1px solid var(--line);border-radius:12px;background:#fffdf7;color:var(--ink);width:100%;padding:11px;margin-top:7px;font-size:13px;line-height:1.5;max-height:150px}.meeting-note{color:#56684f;background:#eaf0df;border-radius:9px;padding:9px;font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.vehicle-card{padding:15px 17px;background:#e6eadc;border:1px solid #d9dfcf;border-radius:17px;margin:10px 0}.vehicle-card strong{display:block;font-size:21px;margin:5px 0}.vehicle-card>span:not(.eyebrow){display:block;color:#65735c;font-size:12px}.plate{display:inline-block;margin-top:12px;border:1px solid #a4b098;background:#fffef7;border-radius:7px;padding:6px 12px;letter-spacing:2px;font-size:19px}.contact-dialog{border:0;border-radius:23px;background:var(--paper);color:var(--ink);width:min(94vw,520px);max-height:85dvh;padding:20px;box-shadow:0 20px 100px #0006}.contact-dialog::backdrop{background:#11231999;backdrop-filter:blur(3px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.dialog-header h2{font-size:21px;margin:0}.dialog-header .eyebrow{max-width:270px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.close-dialog{border-radius:50%;width:35px;height:35px;flex-shrink:0;background:#e4e8db;font-size:16px}#chat-dialog[open]{display:flex;flex-direction:column;height:min(720px,86dvh)}.messages{flex:1;min-height:90px;overflow:auto;padding:8px 2px;overscroll-behavior:contain}.message{max-width:90%;background:#e3e8da;border-radius:13px 13px 13px 3px;padding:10px 12px;margin:8px auto 8px 0;overflow-wrap:anywhere}.message.mine{background:#ffedaf;margin-left:auto;margin-right:0;border-radius:13px 13px 3px 13px}.message p{white-space:pre-wrap;line-height:1.5;font-size:13px;margin:5px 0}.message small{font-size:9px;color:#6e7862}.message.pending{border:1px dashed #a38a4e}.message .text-btn{font-size:10px;margin-right:12px}.chat-form{flex-shrink:0}.chat-form textarea{max-height:90px;min-height:55px}.chat-form button{min-height:43px}.chat-status{font-size:11px;color:#7a827b;margin:5px 0;line-height:1.4}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
