@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-color: #0d1117;--text-primary: #e6edf3;--text-secondary: #8b949e;--accent-color: #58a6ff;--accent-hover: #79c0ff;--glass-bg: rgba(13, 17, 23, .75);--glass-border: rgba(255, 255, 255, .1);--success: #238636;--danger: #da3633;--card-bg: rgba(22, 27, 34, .8);--warning: #d29922;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:var(--text-primary);background-color:var(--bg-color);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;height:100vh;width:100vw;overflow:hidden}#root{height:100%;width:100%;display:flex}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.esri-popup__main-container{background:linear-gradient(135deg,#191e3299,#0f121ecc)!important;color:#fff!important;backdrop-filter:blur(28px) saturate(180%)!important;-webkit-backdrop-filter:blur(28px) saturate(180%)!important;border:1px solid rgba(255,255,255,.15)!important;border-top:1px solid rgba(255,255,255,.3)!important;border-left:1px solid rgba(255,255,255,.3)!important;border-radius:16px!important;box-shadow:0 12px 40px -10px #000c!important}.esri-popup__header,.esri-popup__footer{background:transparent!important}.esri-popup__button{color:#fff!important}.esri-popup__pointer .esri-popup__pointer-direction{background:#0f121ee6!important}.esri-view-surface:after{outline:none!important}.custom-marker{color:var(--accent-color);filter:drop-shadow(0 0 8px rgba(88,166,255,.5));transition:transform .2s ease,filter .2s ease}.custom-marker:hover{transform:scale(1.1);filter:drop-shadow(0 0 12px rgba(88,166,255,.8))}@keyframes pulse-green{0%{filter:drop-shadow(0 0 2px rgba(63,185,80,.5))}50%{filter:drop-shadow(0 0 10px rgba(63,185,80,.8))}to{filter:drop-shadow(0 0 2px rgba(63,185,80,.5))}}.success-glow{color:#3fb950!important;text-shadow:0 0 10px rgba(63,185,80,.6);filter:drop-shadow(0 0 5px rgba(63,185,80,.4))}.pulse-success{animation:pulse-green 2s infinite ease-in-out}.charger-card{padding:16px;background:var(--card-bg);border:1px solid var(--glass-border);border-radius:16px;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);outline:none}.charger-card:hover{background:#58a6ff0d;border-color:#58a6ff40;transform:translateY(-2px);box-shadow:0 8px 24px #0003}.charger-card:focus-visible{border-color:var(--accent-color);box-shadow:0 0 0 2px #58a6ff4d}.charger-card.selected{background:#58a6ff1a;border-color:var(--accent-color);transform:scale(1.02);box-shadow:0 8px 24px #58a6ff1a}.charger-card.selected:hover{transform:scale(1.02)}.charger-card-title{margin:0;font-size:15px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;word-break:break-word;min-width:0;line-height:1.3}.charger-card-address{display:flex;align-items:center;gap:6px;margin-top:6px;color:var(--text-secondary);font-size:13px;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.charger-status-badge{display:flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:12px;font-weight:600;background:#ffffff0d;padding:4px 8px;border-radius:12px;flex-shrink:0;transition:all .2s}.charger-status-badge.available{color:var(--success);background:#2386361a;text-shadow:0 0 10px rgba(63,185,80,.4)}.charger-info-badge{background:#ffffff0f;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:500;transition:background .2s}.charger-info-badge.power{color:var(--accent-hover)}.charger-info-badge.operator{color:var(--text-secondary)}.charger-card:hover .charger-info-badge{background:#ffffff14}.navigate-btn{width:100%;padding:12px;background:linear-gradient(135deg,var(--accent-color),#2ea043);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .25s cubic-bezier(.16,1,.3,1);margin-top:12px;box-shadow:0 4px 12px #58a6ff33}.navigate-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #58a6ff59}.navigate-btn:active{transform:scale(.98)}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:400px 0}}.skeleton-card{padding:16px;background:var(--card-bg);border:1px solid var(--glass-border);border-radius:16px}.skeleton-line{border-radius:6px;background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:400px 100%;animation:shimmer 1.5s infinite linear}.skeleton-title{height:18px;width:70%;margin-bottom:10px}.skeleton-address{height:14px;width:90%}.skeleton-badge{height:28px;width:100px;border-radius:8px}.app-layout{position:relative;width:100%;height:100vh;display:flex;flex-direction:row;overflow:hidden}.map-wrapper{flex-grow:1;position:relative;height:100%;z-index:1}@media (max-width: 768px) and (orientation: portrait){.app-layout{flex-direction:column}.feedback-trigger{bottom:100px;right:24px;padding:14px;border-radius:50%;width:48px;height:48px}.feedback-trigger-label{display:none}.feedback-modal{width:calc(100vw - 32px);max-width:400px;margin:auto 16px}}.feedback-trigger{position:fixed;bottom:32px;right:24px;z-index:20;display:flex;align-items:center;gap:8px;padding:12px 20px;background:linear-gradient(135deg,#191e32b3,#0f121ed9);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.15);border-top-color:#ffffff40;border-left-color:#ffffff40;border-radius:16px;color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 8px 32px #0006;transition:all .25s cubic-bezier(.16,1,.3,1)}.feedback-trigger:hover{transform:translateY(-2px);box-shadow:0 12px 40px #58a6ff40;border-color:#58a6ff66}.feedback-trigger:active{transform:scale(.96)}.feedback-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.feedback-modal{width:440px;max-width:calc(100vw - 48px);max-height:calc(100vh - 80px);overflow-y:auto;border-radius:20px;animation:feedbackSlideUp .35s cubic-bezier(.16,1,.3,1)}@keyframes feedbackSlideUp{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.feedback-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.feedback-close-btn{width:32px;height:32px;border-radius:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.feedback-close-btn:hover{background:#ffffff1a;color:var(--text-primary)}.feedback-form{padding:20px 24px 24px;display:flex;flex-direction:column;gap:16px}.feedback-field{display:flex;flex-direction:column;gap:6px;position:relative}.feedback-field label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.feedback-field input,.feedback-field textarea{width:100%;padding:12px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;transition:all .2s;resize:vertical}.feedback-field input:focus,.feedback-field textarea:focus{border-color:var(--accent-color);background:#58a6ff0a;box-shadow:0 0 0 3px #58a6ff14}.feedback-field input:disabled,.feedback-field textarea:disabled{opacity:.5;cursor:not-allowed}.feedback-field input::placeholder,.feedback-field textarea::placeholder{color:var(--text-secondary);opacity:.6}.feedback-char-count{position:absolute;bottom:8px;right:12px;font-size:10px;color:var(--text-secondary);opacity:.6}.feedback-submit-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px;margin-top:4px;background:linear-gradient(135deg,var(--accent-color),#2ea043);border:none;border-radius:12px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .25s;box-shadow:0 4px 16px #58a6ff40}.feedback-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #58a6ff59}.feedback-submit-btn:active:not(:disabled){transform:scale(.98)}.feedback-submit-btn:disabled{opacity:.5;cursor:not-allowed}.feedback-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:feedbackSpin .6s linear infinite}@keyframes feedbackSpin{to{transform:rotate(360deg)}}.feedback-error{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#da36331a;border:1px solid rgba(218,54,51,.2);border-radius:10px;color:var(--danger);font-size:13px}.feedback-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 24px 48px;animation:feedbackSlideUp .4s cubic-bezier(.16,1,.3,1)}:root{--font-glass-ui: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-glass-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--bg-0: oklch(.18 .03 240);--bg-1: oklch(.22 .035 235);--bg-2: oklch(.26 .04 230);--ink-0: oklch(.98 .005 230);--ink-1: oklch(.88 .01 230);--ink-2: oklch(.74 .02 235);--ink-3: oklch(.6 .025 235);--a-cyan: oklch(.78 .18 150);--a-coral: oklch(.78 .16 25);--a-mint: oklch(.85 .14 155);--a-amber: oklch(.82 .15 75);--a-violet: oklch(.72 .16 295);--a-dc: oklch(.86 .22 135);--a-ac: oklch(.82 .13 215);--glass-blur: 22px;--glass-saturate: 1.6;--glass-tint: .12;--glass-edge: .22}.glass{position:relative;background:rgba(10,20,32,calc(var(--glass-tint) * 1.1));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:.5px solid rgba(255,255,255,var(--glass-edge));box-shadow:inset 0 1px rgba(255,255,255,calc(var(--glass-edge) * 1.2)),inset 0 -1px rgba(255,255,255,calc(var(--glass-edge) * .4)),0 8px 32px #00000073,0 24px 60px #00000059}.glass-strong{background:rgba(10,20,32,calc(var(--glass-tint) * 1.5));backdrop-filter:blur(calc(var(--glass-blur) * 1.2)) saturate(calc(var(--glass-saturate) * 1.1));-webkit-backdrop-filter:blur(calc(var(--glass-blur) * 1.2)) saturate(calc(var(--glass-saturate) * 1.1))}.glass-thin{background:rgba(10,20,32,calc(var(--glass-tint) * .5));backdrop-filter:blur(calc(var(--glass-blur) * .6)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(calc(var(--glass-blur) * .6)) saturate(var(--glass-saturate))}.glass:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,calc(var(--glass-edge) * 1.4)),#fff0 35%,#fff0 65%,rgba(255,255,255,calc(var(--glass-edge) * .5)));pointer-events:none;mix-blend-mode:overlay}.glass:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.045 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");opacity:.55;pointer-events:none;mix-blend-mode:overlay}@keyframes pin-pulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.6);opacity:0}}.pin-pulse{animation:pin-pulse 2.4s cubic-bezier(.4,0,.6,1) infinite}.sheet-handle{width:40px;height:5px;border-radius:999px;background:#ffffff52}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}.morph-out{transform-origin:var(--mx, 50%) var(--my, 50%)}.morph-content>*{transform-origin:var(--origin-x, 50%) var(--origin-y, 0%)}.morph-content--opening>*{opacity:0;transform:scale(.05) rotate(45deg);filter:blur(3px)}.morph-content--open>*{opacity:1;transform:scale(1) rotate(0);filter:blur(0);transition:opacity .4s cubic-bezier(.22,.8,.28,1),transform .58s cubic-bezier(.22,.8,.28,1),filter .3s ease-out}.morph-content--closing>*{opacity:0;transform:scale(.2) rotate(30deg);filter:blur(2px);transition:opacity .2s ease-in,transform .24s ease-in,filter .2s ease-in}.morph-content--open>*:nth-child(1){transition-delay:.06s}.morph-content--open>*:nth-child(2){transition-delay:.12s}.morph-content--open>*:nth-child(3){transition-delay:.18s}.morph-content--open>*:nth-child(4){transition-delay:.24s}.morph-content--open>*:nth-child(5){transition-delay:.3s}.morph-content--open>*:nth-child(6){transition-delay:.36s}.morph-content--open>*:nth-child(7){transition-delay:.42s}.morph-content--open>*:nth-child(8){transition-delay:.48s}.morph-content .connector-list>*{transform-origin:var(--origin-x, 50%) var(--origin-y, 0%)}.morph-content--opening .connector-list>*{opacity:0;transform:scale(.1) rotate(45deg)}.morph-content--open .connector-list>*{opacity:1;transform:scale(1) rotate(0);transition:opacity .4s cubic-bezier(.22,.8,.28,1),transform .5s cubic-bezier(.22,.8,.28,1)}.morph-content--open .connector-list>*:nth-child(1){transition-delay:.28s}.morph-content--open .connector-list>*:nth-child(2){transition-delay:.34s}.morph-content--open .connector-list>*:nth-child(3){transition-delay:.4s}.morph-content--open .connector-list>*:nth-child(4){transition-delay:.46s}@keyframes sidebar-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.sidebar-wrapper{width:380px;max-width:100vw;background:linear-gradient(180deg,#05131d,#010a14);border-right:.5px solid rgba(255,255,255,.06);position:relative;z-index:10;flex-shrink:0}@media (max-width: 768px) and (orientation: portrait){.sidebar-wrapper{position:fixed;inset:0 auto 0 0;width:min(92vw,380px);transform:translate(-100%);transition:transform .32s cubic-bezier(.32,.72,.18,1);z-index:100}.sidebar-wrapper.mobile-open{transform:translate(0)}.mobile-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}}@media not all and (max-width: 768px) and (orientation: portrait){.mobile-toggle,.mobile-close-btn{display:none}}.mobile-toggle{position:fixed;bottom:20px;right:20px;width:56px;height:56px;border-radius:50%;background:linear-gradient(180deg,#4cd676,#25c768 25%,#15c365,#00bf62,#00bb60,#00b660 50%,#00a45a,#009253);background:linear-gradient(180deg,#4cd676,#25c768 25%,#15c365,color(xyz 0.207 0.382 0.176),color(xyz 0.194 0.363 0.165),color(xyz 0.18 0.345 0.154) 50%,color(xyz 0.133 0.277 0.116),color(xyz 0.095 0.219 0.084));border:.5px solid rgba(255,255,255,.4);color:#0a1420;cursor:pointer;z-index:90;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px #ffffff80,0 8px 24px #4cd67680,0 16px 40px #0006}
