:root,[data-theme=light]{--bg: #f4f5f7;--bg-elev: #ffffff;--surface: #ffffff;--surface-2: #f4f5f7;--surface-3: #ebedf1;--ink: #0a0a0a;--ink-2: #5b606b;--ink-3: #9aa0ab;--line: rgba(10, 12, 18, .07);--line-strong: rgba(10, 12, 18, .12);--primary: #0a0a0a;--primary-ink: #ffffff;--accent: #16b364;--accent-soft: rgba(22, 179, 100, .12);--accent-ink: #07823f;--warn: #f5a524;--warn-soft: rgba(245, 165, 36, .14);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .12);--info: #3b5bff;--info-soft: rgba(59, 91, 255, .12);--shadow-sm: 0 1px 2px rgba(10, 12, 18, .06), 0 1px 3px rgba(10, 12, 18, .04);--shadow-md: 0 4px 16px rgba(10, 12, 18, .08), 0 1px 4px rgba(10, 12, 18, .05);--shadow-lg: 0 12px 40px rgba(10, 12, 18, .16), 0 4px 12px rgba(10, 12, 18, .08);--shadow-up: 0 -12px 40px rgba(10, 12, 18, .12);--map-bg: #e9ecf1;--map-block: #f7f8fa;--map-road: #ffffff;--map-road-2: #eef0f4;--map-park: #d4ead7;--map-water: #bcd6f5}[data-theme=dark]{--bg: #0c0d10;--bg-elev: #141519;--surface: #16181d;--surface-2: #1d2026;--surface-3: #262a32;--ink: #f5f6f8;--ink-2: #a3a9b5;--ink-3: #6b7180;--line: rgba(255, 255, 255, .07);--line-strong: rgba(255, 255, 255, .13);--primary: #ffffff;--primary-ink: #0a0a0a;--accent: #1fd47e;--accent-soft: rgba(31, 212, 126, .15);--accent-ink: #54e39c;--warn: #fbbf3f;--warn-soft: rgba(251, 191, 63, .16);--danger: #ff5a52;--danger-soft: rgba(255, 90, 82, .16);--info: #6c8bff;--info-soft: rgba(108, 139, 255, .16);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 20px rgba(0, 0, 0, .5);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .65), 0 4px 12px rgba(0, 0, 0, .5);--shadow-up: 0 -14px 44px rgba(0, 0, 0, .6);--map-bg: #14161b;--map-block: #1b1e24;--map-road: #2a2e37;--map-road-2: #23262d;--map-park: #1c2a22;--map-water: #16263c}.map--day{--map-bg: #e9ecf1;--map-block: #f7f8fa;--map-road: #ffffff;--map-road-2: #eef0f4;--map-park: #d4ead7;--map-water: #bcd6f5}.map--night{--map-bg: #12141a;--map-block: #1a1d24;--map-road: #2c313c;--map-road-2: #23262d;--map-park: #1b2a22;--map-water: #16263c}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit}::-webkit-scrollbar{width:0;height:0}*{scrollbar-width:none}.scroll{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.spinner{width:18px;height:18px;border-radius:50%;border:2.4px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite}.fade-in{animation:fadeIn .34s ease both}@keyframes fadeIn{0%{opacity:1;transform:translateY(7px)}to{opacity:1;transform:none}}.pop-in{animation:popIn .34s cubic-bezier(.22,1.2,.4,1) both}@keyframes popIn{0%{opacity:1;transform:scale(.97)}to{opacity:1;transform:none}}.slide-up{animation:slideUp .4s cubic-bezier(.2,.9,.25,1) both}@keyframes slideUp{0%{transform:translateY(10px)}to{transform:none}}.slide-in-right{animation:slideInRight .3s cubic-bezier(.2,.9,.25,1) both}@keyframes slideInRight{0%{opacity:1;transform:translate(16px)}to{transform:none}}@keyframes pulse-ring{0%{transform:scale(.6);opacity:.7}to{transform:scale(2.6);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes sheen{0%{transform:translate(-120%)}55%,to{transform:translate(120%)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes radar-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes pinDrop{0%{opacity:1;transform:translate(-50%,-100%) scale(.9)}to{opacity:1}}@keyframes dashmove{to{stroke-dashoffset:-8.2}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
