:root{color-scheme:light;--brand:#165dff;--brand-deep:#0d47d9;--ink:#16243b;--muted:#65748a;--canvas:#eef3fb;--surface:#fff;--line:#dce5f2;--soft:#f5f8fd;--danger:#b42318;--success:#087443;--shadow:0 16px 48px #14274818;--radius:20px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
:root[data-theme=dark]{color-scheme:dark;--ink:#edf3ff;--muted:#a8b4c9;--canvas:#101827;--surface:#172235;--line:#2c3b53;--soft:#202d42;--shadow:0 16px 48px #0005}
*{box-sizing:border-box} [hidden]{display:none!important} html,body{min-width:320px;min-height:100%;margin:0}body{background:var(--canvas);color:var(--ink);font-size:15px;line-height:1.5}button,input,select{font:inherit}button{min-height:46px;border:0;border-radius:14px;padding:11px 16px;background:var(--brand);color:white;font-weight:720;cursor:pointer;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}button:hover{background:var(--brand-deep);box-shadow:0 6px 18px #165dff33}button:active{transform:scale(.985)}button:disabled{opacity:.65;cursor:wait;box-shadow:none}button.g{background:var(--surface);color:var(--brand);border:1px solid var(--line);box-shadow:none}button.g:hover{background:var(--soft)}input,select{width:100%;min-height:48px;margin:5px 0 14px;padding:12px 14px;border-radius:13px;border:1px solid var(--line);background:var(--surface);color:var(--ink);outline:none}input::placeholder{color:var(--muted)}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #6da3ff;outline-offset:2px}label{display:block;margin-top:5px;color:var(--ink);font-weight:650;font-size:13px}h1,h2,h3,p{margin-top:0}h1{color:var(--brand);font-size:clamp(28px,6vw,36px);letter-spacing:-1px;margin-bottom:5px}h3{margin:18px 0 8px}.skip-link{position:fixed;z-index:3000;top:8px;left:8px;transform:translateY(-150%);padding:10px 14px;border-radius:10px;background:var(--surface);color:var(--brand)}.skip-link:focus{transform:none}
#auth{width:min(100% - 32px,420px);margin:clamp(24px,8vh,80px) auto;padding:30px;background:var(--surface);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:10px;width:max-content;margin-bottom:18px;color:var(--ink);text-decoration:none;font-size:19px;font-weight:850}.auth-brand .brand-mark{margin:0}.auth-switch{margin:16px 0 0;color:var(--muted);font-size:14px}.auth-switch button{min-height:36px;margin-left:4px;padding:6px 10px}.back-site{display:inline-block;margin-top:12px;color:var(--muted);font-size:13px}.brand-mark{display:grid;place-items:center;width:44px;height:44px;margin-bottom:18px;border-radius:15px;background:linear-gradient(145deg,#3986ff,var(--brand));color:#fff;font-size:25px;font-weight:900}.eyebrow{margin:0 0 6px;color:var(--brand);font-size:11px;font-weight:800;letter-spacing:1.4px}.auth-intro{margin:0 0 22px;color:var(--muted)}.optional{color:var(--muted);font-weight:450}#msg{min-height:22px;margin:10px 0 0;color:var(--danger)}
#app{display:none;height:100vh;height:100dvh;min-height:480px;flex-direction:column;overflow:hidden}.top{position:relative;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:62px;padding:10px max(16px,env(safe-area-inset-left)) 10px max(16px,env(safe-area-inset-right));background:linear-gradient(110deg,#0e4bd6,#2678ff);color:#fff;font-weight:780;box-shadow:0 4px 18px #123d8629}.top-actions{display:flex;align-items:center;gap:8px}.top-icon,.top-link{width:auto;min-height:38px;padding:7px 11px;border:1px solid #ffffff55;border-radius:11px;background:#ffffff18;color:#fff;font-size:13px}.top-icon:hover,.top-link:hover{background:#ffffff32}.top-icon[hidden]{display:none}#map{flex:1;min-height:140px;background:#dbe7f5}.connection-status{padding:7px 14px;background:#fff2cc;color:#603b00;text-align:center;font-size:13px}.connection-status[hidden]{display:none}:root[data-theme=dark] .connection-status{background:#493817;color:#ffe5a0}#bar{position:relative;z-index:999;max-height:48vh;max-height:48dvh;overflow:auto;padding:16px max(16px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border-radius:22px 22px 0 0;background:var(--surface);box-shadow:0 -8px 30px #14274820;overscroll-behavior:contain;scrollbar-gutter:stable}.r{margin:9px 0;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 3px 12px #14274808}.pl{padding:2px 7px;border:1px solid var(--line);border-radius:7px;font-weight:800;letter-spacing:1px}.st{display:inline-block;padding:4px 9px;color:#a56b00;font-size:30px;cursor:pointer}.leaflet-control-zoom a{color:#17243b!important}:root[data-theme=dark] .leaflet-control-zoom a{background:#fff!important;color:#17243b!important}
@media(min-width:800px){#app{display:none}#auth{margin-top:8vh}#bar{max-width:560px;width:calc(100% - 32px);max-height:46vh;margin:0 auto 14px;border-radius:22px}}
@media(max-width:520px){#auth{padding:24px;border-radius:22px}.top{min-height:58px;padding-inline:12px}.top-actions{gap:5px}#bar{max-height:52vh;max-height:52dvh;padding:14px 14px calc(12px + env(safe-area-inset-bottom))}.r{padding:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.st{display:inline-block;width:auto;min-width:46px;margin:4px;padding:4px 9px;color:#a56b00;font-size:26px;cursor:pointer}.nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:5px 0;padding:10px 14px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--brand);font-weight:700;text-decoration:none}.nav-link:hover{background:var(--soft)}
.loading:before{content:"";display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:-2px;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-height:600px){#bar{max-height:42vh;max-height:42dvh}}
.google-auth{margin:8px 0 16px;text-align:center}.google-auth-status{color:var(--muted)}.google-status{min-height:18px;margin:8px 0 0;color:var(--muted);font-size:12px}#googleSignInButton{display:flex;justify-content:center;min-height:42px}.auth-divider{display:flex;align-items:center;gap:12px;margin:14px 0 18px;color:var(--muted);font-size:12px}.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:var(--line)}#googleCancel{width:100%;margin-top:6px}#googleCancel[hidden]{display:none}
