:root{color-scheme:light dark;--ink:#1f2a3a;--paper:#f4f0e8;--panel:#fff;--muted:#606975;--line:#dedbd5;--gold:#957333;--green:#26724e;--avatar:#eae4d8;--error:#a02929;font-family:Montserrat,Arial,sans-serif}
@media(prefers-color-scheme:dark){:root{--ink:#f4f0e8;--paper:#18212f;--panel:#222e40;--muted:#b6bdc7;--line:#3a4657;--gold:#d4b77f;--green:#84d6ab;--avatar:#35404e;--error:#ffabab}}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button,a,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:var(--gold)}[hidden]{display:none!important}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.app{max-width:480px;margin:auto;min-height:100svh;padding-top:env(safe-area-inset-top);display:flex;flex-direction:column;background:var(--paper)}.brand{display:flex;align-items:center;gap:10px;padding:24px 22px 20px;border-bottom:1px solid var(--line)}.brandmark{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--gold);color:var(--gold);border-radius:10px;font-family:Georgia,serif;font-size:26px}.brandname{font-family:Georgia,serif;letter-spacing:2px;font-size:18px}.subbrand{font-size:10px;letter-spacing:2px;color:var(--muted);margin-top:3px}.portal-link{margin-left:auto;font-size:12px;text-decoration:none;min-height:44px;display:flex;align-items:center}.content{padding:28px 20px;flex:1}h1{font-family:Georgia,serif;font-size:31px;font-weight:400;margin:0 0 9px;line-height:1.2}p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.sectionline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:29px 0 14px;font-size:12px}.allow{color:var(--green);font-size:11px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.dot{height:6px;width:6px;border-radius:50%;background:currentColor;display:inline-block}.user{width:100%;display:flex;align-items:center;text-align:left;gap:13px;padding:20px 15px;margin-bottom:12px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:16px;min-height:102px}.user:hover{border-color:var(--gold)}.avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--avatar);color:var(--gold);font-family:Georgia,serif;font-size:23px;flex-shrink:0}.username{display:block;font-size:16px;font-weight:500;margin-bottom:8px;overflow-wrap:anywhere}.usertext{min-width:0}.arrow{margin-left:auto;color:var(--gold);font-size:25px}.hint{text-align:center;font-size:12px;margin-top:28px}.retry{display:block;margin:15px auto 0;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);padding:12px 18px;min-height:44px}footer{margin-top:auto;border-top:1px solid var(--line);padding:16px 20px max(18px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted)}.mapbar{padding:10px 16px;display:flex;gap:10px;align-items:center;background:var(--panel)}.back{min-height:44px;border:0;background:transparent;color:var(--ink);font-size:13px;padding:6px 3px;white-space:nowrap}.mapbar h2{margin:0 0 0 auto;font-weight:500;font-size:16px;overflow-wrap:anywhere}.mapwrap{position:relative;background:var(--avatar);height:46svh;min-height:310px;max-height:560px}.mapwrap #map{height:100%;width:100%;z-index:1}.map-badge{position:absolute;z-index:500;left:14px;top:14px;background:var(--panel);color:var(--muted);padding:9px 12px;border-radius:8px;font-size:11px;box-shadow:0 2px 8px #0002;pointer-events:none;max-width:calc(100% - 75px)}.map-badge.live{color:var(--green)}.center{position:absolute;z-index:500;right:12px;bottom:28px;min-height:44px;width:44px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);font-size:25px}.detail{padding:18px 20px;background:var(--panel)}.detailhead{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px;font-size:16px}.detailhead>span:first-child{overflow-wrap:anywhere}.detail p{font-size:12px}.detail a{display:inline-block;margin-top:8px;font-size:12px;padding:9px 0;min-height:36px}.detail .error{color:var(--error);margin-top:7px}.user-switch{display:flex;flex-wrap:wrap;gap:8px;padding:14px 20px;background:var(--paper)}.user-switch button{flex:1 1 100px;min-width:0;padding:11px 10px;min-height:44px;border-radius:10px;border:1px solid var(--line);color:var(--ink);background:var(--panel);font-size:12px;overflow-wrap:anywhere}.user-switch button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:transparent}.device-select-wrap{padding:10px 20px;background:var(--panel)}.device-select-wrap label{display:block;font-size:12px;margin-bottom:6px}.device-select-wrap select{width:100%;min-height:44px;font-size:16px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:8px}.session-message{padding:24px 20px}.session-message a{display:inline-block;padding:14px 0}.oa-pin{border:3px solid #fff;border-radius:50%;background:#1f2a3a;color:#fff;text-align:center;line-height:34px;font-size:15px;box-shadow:0 0 0 10px #1f2a3a22}.leaflet-container{font-family:Arial,sans-serif;background:var(--avatar)}.leaflet-control-attribution{font-size:10px!important}.leaflet-control-zoom a{width:36px!important;height:36px!important;line-height:36px!important}
@media(min-width:600px){body{padding:24px}.app{min-height:calc(100svh - 48px);border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 16px 40px #0001}.content{min-height:440px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.maps-login{margin-top:30px;display:grid;gap:10px}.maps-login label{font-size:13px;margin-top:8px}.maps-login input[type=text],.maps-login input[type=password]{width:100%;padding:15px 12px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;font-size:16px}.maps-login input[type=submit]{margin-top:15px;background:var(--ink);color:var(--paper);border:0;border-radius:12px;padding:16px;font-size:16px;cursor:pointer}.maps-login .error{color:var(--error);font-size:13px;line-height:1.5}
