:root{--bg: #0f172a;--panel: rgba(15, 23, 42, .92);--line: rgba(255, 255, 255, .14);--text: #e2e8f0;--muted: #94a3b8;--good: #22c55e;--bad: #ef4444;--accent: #38bdf8;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overscroll-behavior:none}.app{position:fixed;top:0;right:0;bottom:0;left:0}.map{position:absolute;top:0;right:0;bottom:0;left:0}.map-3d{z-index:5}.setup-needed{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;padding:2rem;text-align:center;gap:.5rem}.setup-needed code{background:#ffffff1a;padding:0 4px;border-radius:4px}.ui-top-left,.ui-top-right,.ui-bottom-left,.ui-bottom-right{position:absolute;z-index:10;max-width:min(92vw,340px)}.ui-top-left{top:calc(env(safe-area-inset-top) + 10px);left:calc(env(safe-area-inset-left) + 10px)}.ui-top-right{top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 10px)}.ui-bottom-left{bottom:calc(env(safe-area-inset-bottom) + 10px);left:calc(env(safe-area-inset-left) + 10px)}.ui-bottom-right{bottom:calc(env(safe-area-inset-bottom) + 10px);right:calc(env(safe-area-inset-right) + 10px)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 6px 24px #00000059;font-size:14px}.muted{color:var(--muted);font-size:12px}.err{color:var(--bad);font-size:12px}.auth{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.auth input{background:#ffffff14;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 8px;font-size:13px;min-width:0;flex:1}.link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;padding:4px}.layers{display:flex;flex-direction:column;gap:8px}.seg{display:flex;background:#ffffff0f;border-radius:8px;padding:2px}.seg button{flex:1;background:none;border:none;color:var(--muted);padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px}.seg button.on{background:var(--accent);color:#04263a;font-weight:600}.row{display:flex;align-items:center;gap:8px;cursor:pointer}.row input{width:16px;height:16px;accent-color:var(--accent)}.hint{color:var(--muted);font-size:12px}.wide{width:100%;padding:7px;border-radius:8px;border:1px solid var(--line);background:#ffffff14;color:var(--text);cursor:pointer;font-size:13px}.wide:disabled{opacity:.6;cursor:default}.legend{border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:4px}.legend-title{font-size:12px;color:var(--muted)}.legend-row{display:flex;align-items:center;gap:8px;font-size:12px}.swatch{width:16px;height:12px;border-radius:3px;border:1px solid var(--line)}.popup{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 6px 24px #00000059}.popup-close{position:absolute;top:6px;right:8px;background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;line-height:1}.popup-pin{font-size:11px;color:var(--muted);letter-spacing:.04em}.popup-owner{font-size:16px;font-weight:600;margin:2px 0 8px;padding-right:16px}.popup-note{font-size:12px;color:var(--muted);margin-top:8px}.popup-error{font-size:12px;color:var(--bad);margin-top:6px}.popup-actions{display:flex;gap:8px}.btn{flex:1;padding:8px;border-radius:8px;border:1px solid var(--line);background:#ffffff0f;color:var(--text);cursor:pointer;font-size:14px}.btn:disabled{opacity:.45;cursor:default}.btn.good.on{background:var(--good);color:#052e16;border-color:var(--good);font-weight:600}.btn.bad.on{background:var(--bad);color:#450a0a;border-color:var(--bad);font-weight:600}.owners{padding:6px}.owners-head{width:100%;background:none;border:none;color:var(--text);cursor:pointer;font-size:13px;text-align:left;padding:4px 6px}.owners-list{max-height:40vh;overflow:auto;display:flex;flex-direction:column;gap:4px;padding:4px}.owners-row{display:flex;align-items:center;gap:6px;font-size:12px}.owners-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot{width:10px;height:10px;border-radius:50%;flex:none}.dot.good{background:var(--good)}.dot.bad{background:var(--bad)}.mini{width:24px;height:24px;border-radius:6px;border:1px solid var(--line);background:#ffffff0f;color:var(--text);cursor:pointer;font-size:11px;padding:0}.mini.good.on{background:var(--good);color:#052e16}.mini.bad.on{background:var(--bad);color:#450a0a}
