:root{--panel:#14181ec7;--panel-border:#ffffff1f;--text:#f2f2f0;--muted:#b8bcc2;--accent:#e8503a;--gutter:16px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;background:#9fb8cc;margin:0;font:14px/1.45 system-ui,-apple-system,Hiragino Sans,Noto Sans JP,Noto Sans TC,sans-serif;overflow:hidden}#view{touch-action:none;width:100vw;height:100vh;display:block}button,input{font:inherit}button{background:var(--panel);color:var(--text);border:1px solid var(--panel-border);cursor:pointer;white-space:nowrap;border-radius:999px;padding:8px 14px}button:hover{border-color:#ffffff59}#btn-sv{background:var(--accent);border-color:#0000;font-weight:600}#loading{text-align:center;z-index:10;background:#1b2029;place-content:center;display:grid;position:fixed;inset:0}#loading .title{letter-spacing:.04em;font-size:28px;font-weight:700}#loading-msg{color:var(--muted);margin-top:8px}#top{top:calc(env(safe-area-inset-top) + 12px);left:var(--gutter);right:var(--gutter);pointer-events:none;flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex;position:fixed}#top>*{pointer-events:auto}.search{flex:260px;max-width:420px;position:relative}#q{border:1px solid var(--panel-border);background:var(--panel);width:100%;color:var(--text);border-radius:999px;outline:none;padding:9px 14px}#results{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;max-height:50vh;margin:6px 0 0;padding:4px;list-style:none;overflow:auto}#results:empty{display:none}#results li{cursor:pointer;border-radius:8px;padding:7px 10px}#results li:hover,#results li.active{background:#ffffff1a}#results small{color:var(--muted);margin-left:6px}.buttons{flex-wrap:wrap;gap:8px;display:flex}#menu{top:calc(env(safe-area-inset-top) + 64px);right:var(--gutter);width:min(340px, calc(100vw - 2 * var(--gutter)));background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;gap:8px;padding:12px 14px;display:grid;position:fixed}#menu label{align-items:center;gap:8px;display:flex}#menu .time input{flex:1}#menu .note{color:var(--muted);margin:4px 0 0;font-size:12px}.legend{flex-wrap:wrap;gap:4px 10px;font-size:12px;display:flex}.legend .c0{color:#2f9e5b}.legend .c1{color:#5b9aeb}.legend .c2{color:#e8903a}.legend .c3{color:#d9b300}#hud{left:var(--gutter);bottom:calc(env(safe-area-inset-bottom) + 34px);background:var(--panel);border:1px solid var(--panel-border);max-width:min(420px, calc(100vw - 2 * var(--gutter) - 150px));pointer-events:none;border-radius:12px;padding:8px 12px;position:fixed}#hud-place{font-weight:700}#hud-road,#hud-coord{color:var(--muted);font-size:12px}#minimap{right:var(--gutter);bottom:calc(env(safe-area-inset-bottom) + 34px);border:2px solid var(--panel-border);background:#d9d4ca;border-radius:50%;width:180px;height:180px;position:fixed}#stick{left:28px;bottom:calc(env(safe-area-inset-bottom) + 140px);border:1px solid var(--panel-border);background:#14181e59;border-radius:50%;width:110px;height:110px;display:none;position:fixed}#stick div{background:#ffffffb3;border-radius:50%;width:40px;height:40px;position:absolute;top:35px;left:35px}#toast{background:var(--panel);border:1px solid var(--panel-border);max-width:calc(100vw - 2 * var(--gutter));border-radius:10px;padding:10px 16px;position:fixed;top:40%;left:50%;transform:translate(-50%)}#attrib{left:var(--gutter);bottom:calc(env(safe-area-inset-bottom) + 8px);color:#1b2029;background:#ffffffb3;border-radius:4px;padding:1px 6px;font-size:11px;position:fixed}#attrib a{color:inherit}#help{right:var(--gutter);bottom:calc(env(safe-area-inset-bottom) + 8px);color:#1b2029;background:#ffffffb3;border-radius:4px;padding:1px 6px;font-size:11px;position:fixed}@media (pointer:coarse){#stick{display:block}#help{display:none}#minimap{width:120px;height:120px}}@media (max-width:560px){#btn-sv{order:-1}.buttons{gap:5px}.buttons button{padding:6px 9px;font-size:13px}#btn-sv .long{display:none}#hud{max-width:calc(100vw - 2 * var(--gutter) - 130px);bottom:calc(env(safe-area-inset-bottom) + 52px);font-size:13px}#minimap{bottom:calc(env(safe-area-inset-bottom) + 52px)}#attrib{right:var(--gutter);font-size:10px}}#fps{left:var(--gutter);top:calc(env(safe-area-inset-top) + 64px);background:var(--panel);border-radius:8px;padding:3px 8px;font:12px ui-monospace,monospace;position:fixed}select{font:inherit;color:var(--text);border:1px solid var(--panel-border);background:#2a3038;border-radius:6px;padding:2px 4px}#events{top:calc(env(safe-area-inset-top) + 64px);left:var(--gutter);width:min(400px, calc(100vw - 2 * var(--gutter)));background:var(--panel);border:1px solid var(--panel-border);z-index:5;border-radius:14px;max-height:calc(100vh - 200px);padding:10px 12px 12px;position:fixed;overflow:auto}#events header{justify-content:space-between;gap:6px;margin-bottom:8px;display:flex}#events nav{flex-wrap:wrap;gap:4px;display:flex}#events nav button{padding:5px 10px}#events nav button.on{background:var(--accent);border-color:#0000}#events-body{gap:8px;display:grid}#events-body input,#events-body textarea{border:1px solid var(--panel-border);width:100%;color:var(--text);font:inherit;background:#2a3038;border-radius:8px;padding:7px 10px}#events-body textarea{min-height:3em}#events-body h4{margin:6px 0 0}#events-body .lead{margin:0}#events-body .note{color:var(--muted);margin:0;font-size:12px}#events-body .temp{margin:4px 0;font-size:24px;font-weight:700}#events-body button.primary{background:var(--accent);border-color:#0000}#events-body button:disabled{opacity:.4}.spots,.hints{gap:6px;margin:0;padding-left:1.4em;display:grid}.spots li small{color:var(--muted);margin-left:4px}.spots li span{gap:4px;margin-left:6px;display:inline-flex}.spots li span button{padding:3px 9px;font-size:12px}.btnlink{color:#9cc3ff;margin-left:8px}#modal{z-index:20;padding:var(--gutter);background:#000000b3;place-items:center;display:grid;position:fixed;inset:0}#modal .card{gap:10px;max-width:min(900px,100%);display:grid}#modal img{border-radius:10px;width:100%}#modal .row{justify-content:center;gap:8px;display:flex}#about,#welcome{padding:var(--gutter);z-index:30;background:#0a0e14b8;place-items:center;display:grid;position:fixed;inset:0}#about .card,#welcome .card{border:1px solid var(--panel-border);background:#1b2029;border-radius:16px;max-width:460px;padding:18px 20px}#welcome h2{margin:0 0 6px}#welcome ul{gap:6px;padding-left:1.2em;display:grid}#about .note,#welcome .note{color:var(--muted);font-size:12px}#about .primary,#welcome .primary{background:var(--accent);border-color:#0000;width:100%;font-weight:700}#about table{border-collapse:collapse;font-size:13px}#about th,#about td{text-align:left;vertical-align:top;border-top:1px solid var(--panel-border);padding:6px 4px}#about th{width:34%;color:var(--muted);font-weight:600}#btn-ride,#ride-view{right:var(--gutter);bottom:calc(env(safe-area-inset-bottom) + 226px);background:#2c5aa0;border-color:#0000;border-radius:50%;width:64px;height:64px;padding:0;font-weight:700;position:fixed}#ride-view{right:calc(var(--gutter) + 72px);width:52px;height:52px;bottom:calc(env(safe-area-inset-bottom) + 232px);background:var(--panel);font-size:13px}#speed{left:50%;bottom:calc(env(safe-area-inset-bottom) + 40px);background:var(--panel);pointer-events:none;border-radius:10px;padding:4px 14px;font:700 28px ui-monospace,system-ui,monospace;position:fixed;transform:translate(-50%)}@media (pointer:coarse),(max-width:560px){#btn-ride{bottom:calc(env(safe-area-inset-bottom) + 186px)}#ride-view{bottom:calc(env(safe-area-inset-bottom) + 192px)}#speed{bottom:calc(env(safe-area-inset-bottom) + 132px);font-size:22px}}
