:root{color-scheme:light;--red: #b5121b;--ink: #16130f;--blue: #3d7bf5;font-family:Archivo,system-ui,sans-serif}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{color:var(--ink);background:#f2f2f2}.screen{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;background:#fff}.stage{position:relative;overflow:hidden;background:#e8e6e1}.map{position:absolute;top:0;right:0;bottom:0;left:0}.pack{position:absolute;left:0;bottom:0;z-index:2;display:block;width:100%;height:auto;pointer-events:none}.bubble{position:absolute;top:calc(var(--u) * 4);left:50%;z-index:4;transform:translate(-50%);width:max-content;max-width:calc(var(--sw) * 92);padding:calc(var(--u) * 1.6) calc(var(--u) * 2.6) calc(var(--u) * 1.4);background:#fff;border-radius:calc(var(--u) * 2.6);box-shadow:0 calc(var(--u) * 1.3) calc(var(--u) * 3.7) #00000038;font-size:calc(var(--u) * 3.8);font-weight:900;line-height:1.05;text-transform:uppercase;animation:pop .35s ease-out}.bubble span{display:block}.bubble:after{content:"";position:absolute;left:22%;bottom:calc(var(--u) * -1.5);border:calc(var(--u) * 1.7) solid transparent;border-top-color:#fff;border-bottom:0}@keyframes pop{0%{opacity:0;transform:translate(-50%,-8px) scale(.96)}}.pin{transform:translateY(50%);position:relative}.pin.src{width:calc(var(--u) * 2);height:calc(var(--u) * 2);border-radius:50%;background:var(--blue);border:calc(var(--u) * .4) solid #fff;box-shadow:0 0 0 calc(var(--u) * .3) #3d7bf54d}.pin.dst{--pin: clamp(20px, calc(var(--u) * 3.6), 42px);--label: 2.8;width:var(--pin);height:var(--pin);border-radius:50%;background:radial-gradient(#fff 0,#fff 28%,#e5262b 32%);box-shadow:0 2px 8px #00000059}.pin span{position:absolute;left:calc(var(--u) * 3.4);top:50%;transform:translateY(-50%);white-space:nowrap;font-size:max(11px,calc(var(--u) * 1.5));font-weight:800;color:#333;text-shadow:0 0 4px #fff,0 0 4px #fff,0 0 4px #fff}.pin.dst span{width:max-content;max-width:calc(var(--sw) * 26);padding:calc(var(--u) * .7) calc(var(--u) * 1.5) calc(var(--u) * .7) calc(var(--u) * 2);border-radius:calc(var(--u) * 1.2);background:#fff;color:var(--ink);font-size:calc(var(--u) * var(--label));font-weight:800;line-height:1.12;text-shadow:none;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;box-shadow:inset calc(var(--u) * .7) 0 0 var(--red),0 calc(var(--u) * .5) calc(var(--u) * 1.8) #00000047}.pin.dst.right span{left:calc(var(--pin) + var(--u) * .8)}.pin.dst.left span{left:auto;right:calc(var(--pin) + var(--u) * .8);padding:calc(var(--u) * .7) calc(var(--u) * 2) calc(var(--u) * .7) calc(var(--u) * 1.5);box-shadow:inset calc(var(--u) * -.7) 0 0 var(--red),0 calc(var(--u) * .5) calc(var(--u) * 1.8) #00000047}.pin.dst.above span,.pin.dst.below span{left:50%;right:auto;transform:translate(-50%);padding:calc(var(--u) * .7) calc(var(--u) * 1.5) calc(var(--u) * .7) calc(var(--u) * 2);box-shadow:inset calc(var(--u) * .7) 0 0 var(--red),0 calc(var(--u) * .5) calc(var(--u) * 1.8) #00000047}.pin.dst.above span{top:auto;bottom:calc(var(--pin) + var(--u) * .8)}.pin.dst.below span{top:calc(var(--pin) + var(--u) * .8)}.empty{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-content:center;gap:12px;text-align:center;background:#ffffffd9;font-weight:700}.empty a,.admin header a{color:var(--red);font-weight:700}.err{position:absolute;z-index:5;left:calc(var(--u) * 1.3);top:calc(var(--u) * 2.4);max-width:calc(var(--sw) * 40);padding:calc(var(--u) * .8) calc(var(--u) * 1.5);border-radius:20px;background:#fff;font-size:max(11px,calc(var(--u) * 1.3));font-weight:700;color:var(--red);box-shadow:0 4px 14px #0003}.admin{max-width:720px;margin:0 auto;padding:32px 20px 80px;display:grid;gap:28px}.admin header{display:flex;justify-content:space-between;align-items:baseline}.admin h1{font-size:28px;font-weight:900}.admin section{display:grid;gap:12px;padding:20px;background:#fff;border-radius:14px}.admin h2{font-size:18px;font-weight:700}.admin label{display:grid;gap:6px;font-size:14px;font-weight:700}.admin input{padding:10px 12px;border:1px solid #ccc;border-radius:8px;font:inherit;font-weight:500}.admin ol{list-style:none;padding:0;display:grid;gap:6px}.admin li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;background:#f6f6f6;border-radius:8px}.hint{font-size:13px;color:#666}.place gmp-place-autocomplete{width:100%;color-scheme:light;background-color:#fff;border:1px solid #ccc;border-radius:8px}button{font:inherit;font-weight:700;cursor:pointer;border-radius:10px}button.primary{padding:14px;border:0;background:var(--red);color:#fff;font-size:16px}button.ghost{padding:4px 10px;border:1px solid #ccc;background:#fff}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@media (prefers-reduced-motion: reduce){.bubble{animation:none}}.admin header nav{display:flex;gap:16px;align-items:baseline}.admin form.login{display:grid;gap:12px;padding:20px;background:#fff;border-radius:14px}.admin .error{color:var(--red);font-size:14px;font-weight:700}button.link{border:0;background:none;padding:0;color:var(--red)}.admin select{padding:10px 12px;border:1px solid #ccc;border-radius:8px;font:inherit;font-weight:500;background:#fff}.admin .row{display:flex;gap:12px;flex-wrap:wrap}.admin .row label{flex:1;min-width:140px}.admin .chips{display:flex;gap:8px;flex-wrap:wrap}button.chip{padding:6px 12px;border:1px solid #ccc;background:#fff;font-weight:500}
