.map-root.svelte-e9val7{width:100%;height:100%;position:relative}.osm-attribution.svelte-e9val7{z-index:5;color:var(--text-muted);background:#0f0f1a8c;border-radius:4px;padding:2px 6px;font-size:10px;position:absolute;bottom:8px;right:8px}.osm-attribution.svelte-e9val7 a:where(.svelte-e9val7){color:var(--text-secondary)}.compat-help-btn.svelte-e9val7{z-index:5;border:1px solid var(--glass-border);width:22px;height:22px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:#0f0f1ab3;border-radius:50%;font-size:12px;font-weight:700;position:absolute;bottom:34px;right:8px}.compat-help-btn.svelte-e9val7:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--glass-border-hover)}.compat-modal-panel.svelte-e9val7 .area-modal-title-row{color:#fbbf24}.compat-modal-panel.compat-ok.svelte-e9val7 .area-modal-title-row{color:#34d399}.compat-intro.svelte-e9val7{color:var(--text-secondary);font-size:13px;line-height:1.6}.compat-tabs.svelte-e9val7{gap:6px;display:flex}.compat-tabs.svelte-e9val7 button:where(.svelte-e9val7){border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--bg-card);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);flex:1;padding:8px 10px;font-size:12px;font-weight:600}.compat-tabs.svelte-e9val7 button:where(.svelte-e9val7):hover{color:var(--text-primary);border-color:var(--glass-border-hover)}.compat-tabs.svelte-e9val7 button.active:where(.svelte-e9val7){color:var(--bg-dark);background:var(--accent);border-color:var(--accent)}.compat-steps.svelte-e9val7{color:var(--text-primary);flex-direction:column;gap:8px;padding-left:20px;font-size:13px;line-height:1.5;display:flex}.compat-steps.svelte-e9val7 li:where(.svelte-e9val7){padding-left:4px}.compat-footer.svelte-e9val7{color:var(--text-muted);font-size:12px;font-style:italic}.compat-dismiss-btn.svelte-e9val7{align-self:flex-end}.hidden{display:none!important}:root{--bg-dark:#0f0f1a;--bg-panel:#0f0f1ad9;--bg-card:#ffffff08;--bg-card-hover:#ffffff0f;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-muted:#64748b;--accent:#4ecdc4;--accent-glow:#4ecdc440;--danger:#ef4444;--glass-border:#ffffff14;--glass-border-hover:#ffffff24;--divider:#ffffff0f;--shadow-panel:0 8px 32px #00000073, 0 2px 8px #00000040;--shadow-card:0 1px 3px #0003;--shadow-popup:0 12px 40px #0000008c;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:999px;--ease-out:cubic-bezier(.16, 1, .3, 1);--transition-fast:.2s var(--ease-out);--transition-med:.35s var(--ease-out)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%}body{color:var(--text-primary);background:var(--bg-dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5;overflow:hidden}button,input,select{color:inherit;font-family:inherit}#deck-canvas-wrapper{width:100%;height:100%;position:absolute;inset:0}#panel{z-index:10;background:var(--bg-panel);-webkit-backdrop-filter:blur(24px)saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);width:320px;max-height:calc(100vh - 40px);padding:var(--space-lg);box-shadow:var(--shadow-panel);transition:transform var(--transition-med), opacity var(--transition-med);animation:panelSlideIn .6s var(--ease-out) both;position:fixed;top:20px;left:20px;overflow-y:auto}#panel.panel--hidden{opacity:0;pointer-events:none;transform:translate(calc(-100% - 40px))}@keyframes panelSlideIn{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}#panel::-webkit-scrollbar{width:4px}#panel::-webkit-scrollbar-track{background:0 0}#panel::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#ffffff1a}#panel::-webkit-scrollbar-thumb:hover{background:#fff3}.panel-header{justify-content:space-between;align-items:center;display:flex}.panel-logo{align-items:center;gap:var(--space-md);display:flex}.logo-icon{filter:drop-shadow(0 0 8px var(--accent-glow));flex-shrink:0;animation:3s ease-in-out infinite logoPulse}@keyframes logoPulse{0%,to{filter:drop-shadow(0 0 6px var(--accent-glow))}50%{filter:drop-shadow(0 0 14px var(--accent-glow))}}.panel-title{letter-spacing:-.02em;background:linear-gradient(135deg,#4ecdc4 0%,#a855f7 50%,#ff6b6b 100%) 0 0/200% 200%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.4rem;font-weight:700;animation:6s infinite gradientShift}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.panel-subtitle{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:400}.panel-toggle-btn{border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--bg-card);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.panel-toggle-btn:hover{background:var(--bg-card-hover);border-color:var(--glass-border-hover);color:var(--text-primary)}.panel-divider{background:var(--divider);height:1px;margin:var(--space-md) 0}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-md);align-items:center;gap:6px;font-size:.68rem;font-weight:600;display:flex}.section-title svg{color:var(--accent);flex-shrink:0}.stats-grid{gap:var(--space-sm);grid-template-columns:1fr 1fr;display:grid}.stat-card{padding:var(--space-md);background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-fast);flex-direction:column;display:flex}.stat-card:hover{background:var(--bg-card-hover);border-color:var(--glass-border-hover);transform:translateY(-1px)}.stat-value{color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-size:.65rem;font-weight:500}.legend-list{flex-direction:column;gap:6px;list-style:none;display:flex}.legend-item{align-items:center;gap:var(--space-sm);background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:8px 12px;display:flex}.legend-item:hover{background:var(--bg-card-hover);border-color:var(--glass-border-hover);transform:translate(3px)}.legend-dot{background:var(--dot-color);width:10px;height:10px;box-shadow:0 0 8px color-mix(in srgb, var(--dot-color) 50%, transparent);border-radius:50%;flex-shrink:0}.legend-dot.line{border-radius:2px;height:3px}.legend-label{color:var(--text-primary);flex:1;font-size:.82rem;font-weight:500}.about-text{color:var(--text-secondary);font-size:.8rem;line-height:1.65}.about-text strong{color:var(--accent);font-weight:600}.about-text em{color:var(--text-primary);font-style:normal;font-weight:500}.lang-switcher{gap:4px;display:flex}.lang-switcher button{border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--bg-card);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);padding:3px 8px;font-size:.68rem;font-weight:600}.lang-switcher button:hover{color:var(--text-primary);border-color:var(--glass-border-hover)}.lang-switcher button.active{color:var(--bg-dark);background:var(--accent);border-color:var(--accent)}.map-popup{z-index:20;-webkit-backdrop-filter:blur(20px)saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-popup);color:var(--text-primary);min-width:220px;max-width:300px;animation:popupFadeIn .2s var(--ease-out) both;background:#0f0f1af0;padding:20px;position:fixed}@keyframes popupFadeIn{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.popup-close{width:24px;height:24px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:8px;right:8px}.popup-close:hover{background:var(--bg-card-hover);color:var(--text-primary)}.popup-inner{flex-direction:column;gap:12px;display:flex}.popup-title{color:var(--text-primary);padding-right:16px;font-size:.95rem;font-weight:600;line-height:1.35}.popup-meta{flex-direction:column;gap:8px;display:flex}.popup-row{align-items:center;gap:8px;font-size:.78rem;display:flex}.popup-row-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;min-width:70px;font-size:.62rem;font-weight:500}.popup-category-badge{border-radius:var(--radius-full);border:1px solid var(--glass-border);align-items:center;gap:5px;padding:3px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.popup-category-dot{border-radius:50%;width:7px;height:7px}.draw-banner{z-index:500;border-radius:var(--radius-full);color:#93c5fd;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;background:#0f0f1aeb;border:1px solid #63b3ed73;align-items:center;gap:10px;padding:10px 16px;font-size:12px;font-weight:500;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000080,0 0 0 1px #63b3ed1a}.draw-banner svg{stroke:#93c5fd;flex-shrink:0}.draw-vertex-count{border-radius:var(--radius-full);color:#93c5fd;text-align:center;background:#63b3ed26;border:1px solid #63b3ed4d;min-width:24px;padding:2px 8px;font-size:11px}.draw-close-btn,.draw-cancel-btn{border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast);border:1px solid;padding:4px 10px;font-size:11px;font-weight:500}.draw-close-btn{color:#6ee7b7;background:#34d39926;border-color:#34d39966}.draw-close-btn:hover{background:#34d39940}.draw-cancel-btn{color:#fca5a5;background:#ef44441a;border-color:#ef44444d}.draw-cancel-btn:hover{background:#ef444433}.area-modal{z-index:600;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.area-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#000000a6;position:absolute;inset:0}.area-modal-panel{z-index:1;border:1px solid var(--glass-border-hover);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:80vh;box-shadow:var(--shadow-popup);animation:modal-in .22s var(--ease-out);background:#0f0f1af7;flex-direction:column;display:flex;position:relative;overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.area-modal-header{border-bottom:1px solid var(--divider);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.area-modal-title-row{color:var(--accent);align-items:center;gap:10px;display:flex}.area-modal-title-row h2{color:var(--text-primary);font-size:15px;font-weight:600}.area-modal-close{border-radius:var(--radius-sm);border:1px solid var(--glass-border);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.area-modal-close:hover{background:var(--bg-card-hover);color:var(--text-primary)}.area-modal-body{scrollbar-width:thin;scrollbar-color:var(--glass-border) transparent;flex-direction:column;gap:16px;padding:20px;display:flex;overflow-y:auto}.report-summary{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.report-stat{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:4px;padding:12px 8px;display:flex}.report-stat-value{color:var(--text-primary);font-size:22px;font-weight:700;line-height:1}.report-stat-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.report-stat-label{color:var(--text-secondary);align-items:center;gap:5px;font-size:11px;display:flex}.report-section{flex-direction:column;gap:8px;display:flex}.report-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--divider);padding-bottom:4px;font-size:11px;font-weight:600}.report-table{border-collapse:collapse;width:100%;font-size:12px}.report-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--divider);padding:6px 8px;font-weight:500}.report-table td{color:var(--text-secondary);vertical-align:middle;border-bottom:1px solid #ffffff08;padding:7px 8px}.report-table tr:last-child td{border-bottom:none}.report-table tr:hover td{background:var(--bg-card-hover);color:var(--text-primary)}.report-badge{border-radius:var(--radius-full);align-items:center;gap:4px;padding:2px 7px;font-size:11px;font-weight:500;display:inline-flex}.report-empty{text-align:center;color:var(--text-muted);padding:16px;font-size:12px;font-style:italic}.admin-shell{flex-direction:column;min-height:100vh;display:flex;overflow-y:auto}.admin-header{border-bottom:1px solid var(--divider);background:var(--bg-panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);justify-content:space-between;align-items:center;padding:16px 28px;display:flex}.admin-header-title{align-items:center;gap:12px;display:flex}.admin-header nav{align-items:center;gap:16px;display:flex}.admin-header button.link-btn{color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;font-size:.85rem}.admin-header button.link-btn:hover{color:var(--text-primary)}.admin-main{flex-direction:column;flex:1;gap:28px;width:100%;max-width:1100px;margin:0 auto;padding:28px;display:flex}.login-shell{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--bg-panel);-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);width:100%;max-width:360px;padding:var(--space-xl);box-shadow:var(--shadow-panel);gap:var(--space-md);flex-direction:column;display:flex}.login-card h1{text-align:center;margin-bottom:var(--space-sm);font-size:1.2rem;font-weight:700}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:600}.field input,.field select{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color var(--transition-fast);outline:none;padding:10px 12px;font-size:.85rem}.field input:focus,.field select:focus{border-color:var(--accent)}.btn-primary{background:var(--accent);color:var(--bg-dark);border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition-fast);border:none;padding:10px 16px;font-size:.85rem;font-weight:600}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{color:#fca5a5;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);background:#ef44441f;border:1px solid #ef444459;padding:6px 12px;font-size:.78rem}.btn-danger:hover{background:#ef444438}.form-error{color:var(--danger);text-align:center;font-size:.78rem}.admin-card{background:var(--bg-panel);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-card)}.admin-card h2{margin-bottom:var(--space-md);font-size:1rem;font-weight:700}.stats-cards{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.admin-table-wrapper{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.82rem}.admin-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--divider);white-space:nowrap;padding:8px 10px;font-weight:600}.admin-table td{color:var(--text-secondary);white-space:nowrap;border-bottom:1px solid #ffffff08;padding:8px 10px}.admin-table tr:hover td{background:var(--bg-card-hover);color:var(--text-primary)}.admin-table code{color:var(--accent);font-size:.75rem}.create-link-form{gap:var(--space-md);margin-top:var(--space-md);flex-wrap:wrap;align-items:flex-end;display:flex}.create-link-form .field{flex:1;min-width:160px}.observability-iframe{border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--bg-card);width:100%;height:640px}.observability-missing{color:var(--text-muted);padding:var(--space-lg);text-align:center;font-size:.85rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
