:root{--bg: #0b0e11;--glass: rgba(22, 26, 31, .55);--glass-strong: rgba(22, 26, 31, .78);--glass-border: rgba(255, 255, 255, .14);--glass-hover: rgba(255, 255, 255, .08);--text: rgba(255, 255, 255, .92);--text-dim: rgba(255, 255, 255, .58);--accent: #d43b2a;--radius: 18px;--shadow: 0 8px 32px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .08)}@media(prefers-color-scheme:light){:root{--glass: rgba(245, 247, 250, .55);--glass-strong: rgba(245, 247, 250, .85);--glass-border: rgba(0, 0, 0, .1);--glass-hover: rgba(0, 0, 0, .06);--text: rgba(20, 24, 28, .92);--text-dim: rgba(20, 24, 28, .55);--shadow: 0 8px 32px rgba(0, 0, 0, .18), inset 0 1px 0 rgba(255, 255, 255, .6)}}*{margin:0;padding:0;box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;overflow:hidden;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Segoe UI,Roboto,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased}#map{position:fixed;inset:0;background:var(--bg)}#ui{position:fixed;inset:0;pointer-events:none;z-index:10}#ui>*{pointer-events:auto}.glass{background:var(--glass);-webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);transition:opacity .35s ease,background .15s ease}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.glass{background:var(--glass-strong)}}body.idle #ui .glass{opacity:.55}.glass button,button.glass{font:inherit;color:inherit;background:none;border:none;cursor:pointer}.site-chip{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:14px}.chip-tag{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);border:1px solid currentColor;border-radius:999px;padding:2px 8px}.level-switcher{position:absolute;right:max(14px,env(safe-area-inset-right));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px;width:54px;padding:5px;overflow:visible}.level-switcher .lvl-btn,.level-switcher .lvl-badge{height:44px;font-size:20px;line-height:1;border-radius:13px}.level-switcher .lvl-badge{font-size:15px;font-weight:700;color:var(--accent)}.level-switcher button:hover:not(:disabled){background:var(--glass-hover)}.level-switcher button:disabled{opacity:.3;cursor:default}.lvl-popover{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;max-height:62vh;overflow-y:auto;min-width:138px;padding:6px}.lvl-item{padding:9px 14px;font-size:13px;text-align:left;border-radius:10px;white-space:nowrap}.lvl-item:hover{background:var(--glass-hover)}.lvl-item.active{color:var(--accent);font-weight:700}.coord-panel{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);padding:10px 18px;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.coord-panel .coord-dim{color:var(--text-dim)}.zoom-cluster{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:2px;width:50px;padding:4px}.zoom-cluster button{height:40px;font-size:18px;border-radius:12px}.zoom-cluster button:hover{background:var(--glass-hover)}.attr-chip{position:absolute;left:max(14px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));padding:8px 14px;font-size:11.5px;color:var(--text-dim)}.draw-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}.draw-canvas.active{pointer-events:auto;cursor:crosshair;touch-action:none}.draw-canvas.erasing{cursor:pointer}.draw-tools{position:absolute;left:max(14px,env(safe-area-inset-left));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px;width:54px;padding:5px}.dt-btn{height:46px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);border-radius:13px}.dt-btn svg{width:21px;height:21px}.dt-btn:hover{background:var(--glass-hover)}.dt-btn.active{color:var(--accent)}.dt-btn.confirm{color:#fff;background:var(--accent)}.feedback-chip{position:absolute;left:max(14px,env(safe-area-inset-left));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 46px);padding:8px 14px;font-size:11.5px;color:var(--text-dim)}.fb-seg{display:flex;gap:6px;margin-bottom:12px}.fb-type{padding:7px 18px;font-size:13px;border:1px solid var(--glass-border);border-radius:999px;color:var(--text-dim)}.fb-type.active{color:var(--accent);border-color:currentColor;font-weight:600}.fb-text,.fb-email{width:100%;background:transparent;border:1px solid var(--glass-border);border-radius:12px;color:var(--text);font:inherit;font-size:13.5px;padding:10px 12px;margin-bottom:10px;resize:vertical}.fb-text:focus,.fb-email:focus{outline:none;border-color:var(--accent)}.fb-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.fb-actions{display:flex;gap:10px;margin-top:4px}.fb-send{padding:9px 26px;font-size:14px;color:var(--accent);font-weight:600}.fb-send:disabled{opacity:.5;cursor:default}.fb-status{min-height:1.2em;margin-top:10px;font-size:12.5px;color:var(--text-dim)}.modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100}.modal{max-width:500px;width:calc(100vw - 48px);max-height:80vh;overflow-y:auto;padding:28px;font-size:14px;line-height:1.55}.modal h2{font-size:18px;margin-bottom:12px}.modal p{margin-bottom:12px}.modal .tis{font-size:12.5px;color:var(--text-dim);border-left:2px solid var(--accent);padding-left:12px}.modal .hint{font-size:12px;color:var(--text-dim)}.modal a{color:var(--accent)}.modal-close{padding:9px 22px;font-size:14px}.boot-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:50}.boot-overlay .glass{max-width:440px;padding:28px;font-size:14px;line-height:1.6;text-align:center}.boot-overlay code{font-size:12px;color:var(--accent)}
