/* Layout: one-screen phone app. Map on top, distance list below, card slides up. */
:root{--bg:#f3f5f4;--panel:#fff;--fg:#14211f;--mute:#5d6b68;--line:#d9e0de;--accent:#0b6e63;--accent-fg:#fff;--warn:#b4580a;--map:#e8eeec;--ring:#c4d0cd;
--head:'Space Grotesk',system-ui,sans-serif;--body:'Inter',system-ui,sans-serif}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0e1514;--panel:#16201e;--fg:#e6efed;--mute:#93a5a1;--line:#2a3836;--accent:#3ec2b0;--accent-fg:#06201c;--warn:#f0a050;--map:#121c1a;--ring:#2c3b38;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0e1514;--panel:#16201e;--fg:#e6efed;--mute:#93a5a1;--line:#2a3836;--accent:#3ec2b0;--accent-fg:#06201c;--warn:#f0a050;--map:#121c1a;--ring:#2c3b38;color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{background:var(--bg);color:var(--fg);font:15px/1.45 var(--body);padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px));padding-block:12px}
h1,h2,h3{font-family:var(--head);margin:0}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.app{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:10px;min-height:100%}
.top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.top h1{font-size:20px}
.tag{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--warn);font-weight:600}
.map{background:var(--map);border:1px solid var(--line);border-radius:10px;height:42vh;min-height:240px;width:100%;z-index:0}
.btn.on{outline:2px solid var(--warn)}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.row select{flex:1;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px}
.btn{background:var(--accent);color:var(--accent-fg);border:0;border-radius:8px;padding:9px 14px;font-weight:600;text-decoration:none;display:inline-block}
.btn.alt{background:var(--panel);color:var(--fg);border:1px solid var(--line)}
.hint{font-size:12.5px;color:var(--mute)}
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.item{width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 12px;display:flex;justify-content:space-between;gap:10px}
.item b{font-family:var(--head)}
.item small{color:var(--mute);display:block}
.mi{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.card{position:fixed;inset:auto 0 0 0;max-height:82%;overflow:auto;background:var(--panel);border-top:1px solid var(--line);border-radius:16px 16px 0 0;padding:16px max(16px,env(safe-area-inset-left,0px)) calc(20px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 30px #0004}
.card>div{max-width:560px;margin:0 auto}
dl{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;margin:12px 0}
dt{color:var(--mute);font-size:13px}dd{margin:0;min-width:0;overflow-wrap:anywhere}
.miss{color:var(--mute);font-style:italic}
.say{background:var(--bg);border-radius:8px;padding:10px 12px;margin:8px 0}
textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px;min-height:64px}
.gate{max-width:360px;margin:20vh auto 0;display:flex;flex-direction:column;gap:12px}
.gate input{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:11px}
.err{color:var(--warn);min-height:1.2em}
