@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@500&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.user-menu-container[data-v-17da8b34]{display:flex;align-items:center;gap:.75rem}.user-menu[data-v-17da8b34]{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:#ffffff0d;cursor:pointer;transition:all .2s ease}.user-menu[data-v-17da8b34]:hover{border-color:#ffffff4d;background:#ffffff14}.avatar[data-v-17da8b34]{width:28px;height:28px;border-radius:50%;background:linear-gradient(120deg,var(--color-primary, #457b9d),var(--color-accent, #e94560));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;color:#fff}.user-meta[data-v-17da8b34]{display:flex;flex-direction:column;gap:.1rem}.user-name[data-v-17da8b34]{font-weight:600;font-size:.9rem;line-height:1}.user-email[data-v-17da8b34]{font-size:.75rem;opacity:.7;line-height:1}.chevron[data-v-17da8b34]{font-size:.8rem;opacity:.7;transition:transform .2s ease}.user-menu:hover .chevron[data-v-17da8b34]{opacity:1}.ghost-btn[data-v-17da8b34]{text-decoration:none;padding:.65rem .95rem;border-radius:12px;border:1px solid rgba(255,255,255,.18);color:var(--color-text, #e0e6ed);background:transparent;transition:border .2s ease,background .2s ease;cursor:pointer;font-size:.95rem;font-weight:500}.ghost-btn[data-v-17da8b34]:hover{border-color:var(--color-accent, #e94560);background:#e945601a}.primary-btn[data-v-17da8b34]{text-decoration:none;background:linear-gradient(120deg,var(--color-primary, #457b9d),var(--color-accent, #e94560));color:#fff;border:none;border-radius:12px;padding:.65rem .95rem;font-weight:600;cursor:pointer;box-shadow:0 10px 30px #0e346059;transition:transform .1s ease,box-shadow .15s ease;font-size:.95rem}.primary-btn[data-v-17da8b34]:hover{transform:translateY(-1px);box-shadow:0 14px 32px #0e346073}.user-dropdown-portal[data-v-17da8b34]{position:fixed;background:#0f1624;border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 16px 40px #00000059;overflow:hidden;z-index:1500;min-width:200px}.user-dropdown-portal a[data-v-17da8b34],.user-dropdown-portal button[data-v-17da8b34]{display:block;width:100%;padding:.75rem 1rem;text-align:left;background:none;border:none;color:var(--color-text, #e0e6ed);text-decoration:none;cursor:pointer;transition:background .15s ease;font-size:.95rem}.user-dropdown-portal a[data-v-17da8b34]:hover,.user-dropdown-portal button[data-v-17da8b34]:hover{background:#ffffff0f}.landing[data-v-6652c20b]{font-family:Outfit,sans-serif;background:#fafbfc;color:#1a1a2e;min-height:100vh;overflow-x:hidden}.nav[data-v-6652c20b]{position:absolute;top:0;left:0;right:0;padding:1.5rem 4rem;z-index:100;display:flex;justify-content:space-between;align-items:center}.logo[data-v-6652c20b]{font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.logo-transit[data-v-6652c20b]{color:#264653}.logo-kit[data-v-6652c20b]{color:#e63946}.hero[data-v-6652c20b]{position:relative;min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:6rem 4rem 4rem;gap:4rem;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(42,157,143,.08),transparent),radial-gradient(ellipse 60% 40% at 80% 60%,rgba(230,57,70,.06),transparent),linear-gradient(180deg,#fff,#f0f4f8)}.hero-content[data-v-6652c20b]{max-width:600px}.hero-badge[data-v-6652c20b]{display:inline-block;padding:.5rem 1rem;background:#2a9d8f1a;border:1px solid rgba(42,157,143,.25);border-radius:100px;font-size:.85rem;font-weight:500;color:#2a9d8f;margin-bottom:1.5rem;letter-spacing:.02em}.hero h1[data-v-6652c20b]{font-size:4rem;font-weight:800;line-height:1.1;margin-bottom:1.5rem;background:linear-gradient(135deg,#1a1a2e,#264653);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle[data-v-6652c20b]{font-size:1.25rem;line-height:1.7;color:#5a6670;margin-bottom:2.5rem;max-width:500px}.hero-note[data-v-6652c20b]{font-size:.875rem;color:#8a9199;margin-top:1rem}.hero-visual[data-v-6652c20b]{display:flex;justify-content:center;align-items:center}.schema-preview[data-v-6652c20b]{width:100%;max-width:500px;aspect-ratio:4/3;background:linear-gradient(135deg,#fff,#f8fafc);border-radius:20px;border:1px solid rgba(38,70,83,.12);padding:2rem;box-shadow:0 0 0 1px #2646530d,0 20px 50px #2646531a,0 0 100px #2a9d8f0d}.transit-diagram[data-v-6652c20b]{width:100%;height:100%}.subscribe-form[data-v-6652c20b]{display:flex;gap:.75rem;max-width:460px}.subscribe-form input[data-v-6652c20b]{flex:1;padding:1rem 1.25rem;background:#fff;border:1px solid #d0d7de;border-radius:12px;color:#1a1a2e;font-size:1rem;font-family:inherit;outline:none;transition:all .2s}.subscribe-form input[data-v-6652c20b]::placeholder{color:#8a9199}.subscribe-form input[data-v-6652c20b]:focus{border-color:#2a9d8f;box-shadow:0 0 0 3px #2a9d8f1a}.subscribe-form button[data-v-6652c20b]{padding:1rem 1.75rem;background:linear-gradient(135deg,#2a9d8f,#238b7e);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;white-space:nowrap}.subscribe-form button[data-v-6652c20b]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #2a9d8f4d}.subscribe-form button[data-v-6652c20b]:disabled{opacity:.7;cursor:not-allowed}.form-error[data-v-6652c20b]{color:#e63946;font-size:.875rem;margin-top:.75rem}.form-success[data-v-6652c20b]{color:#2a9d8f;font-size:1rem;font-weight:500;padding:1rem 1.5rem;background:#2a9d8f1a;border:1px solid rgba(42,157,143,.25);border-radius:12px;max-width:460px}.features[data-v-6652c20b]{padding:8rem 4rem;background:#fff}.section-header[data-v-6652c20b]{text-align:center;margin-bottom:4rem}.section-header h2[data-v-6652c20b]{font-size:2.75rem;font-weight:700;margin-bottom:1rem;color:#1a1a2e}.section-header p[data-v-6652c20b]{font-size:1.2rem;color:#5a6670}.features-grid[data-v-6652c20b]{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:1200px;margin:0 auto}.feature-card[data-v-6652c20b]{padding:2rem;background:#fafbfc;border:1px solid #e8ecf0;border-radius:16px;transition:all .3s}.feature-card[data-v-6652c20b]:hover{border-color:#2a9d8f66;transform:translateY(-4px);box-shadow:0 20px 40px #26465314}.feature-icon[data-v-6652c20b]{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#2a9d8f1a;border-radius:12px;margin-bottom:1.25rem;color:#2a9d8f}.feature-icon svg[data-v-6652c20b]{width:24px;height:24px}.feature-card h3[data-v-6652c20b]{font-size:1.25rem;font-weight:600;margin-bottom:.75rem;color:#1a1a2e}.feature-card p[data-v-6652c20b]{font-size:.95rem;line-height:1.7;color:#5a6670}.workflow[data-v-6652c20b]{padding:8rem 4rem;background:linear-gradient(180deg,#fff,#f0f4f8)}.workflow-steps[data-v-6652c20b]{display:flex;align-items:flex-start;justify-content:center;gap:1rem;max-width:1200px;margin:0 auto;flex-wrap:wrap}.workflow-step[data-v-6652c20b]{flex:1;min-width:200px;max-width:250px;text-align:center;padding:2rem 1.5rem}.step-number[data-v-6652c20b]{font-family:JetBrains Mono,monospace;font-size:3rem;font-weight:500;color:#2a9d8f40;margin-bottom:1rem}.workflow-step h3[data-v-6652c20b]{font-size:1.25rem;font-weight:600;margin-bottom:.75rem;color:#1a1a2e}.workflow-step p[data-v-6652c20b]{font-size:.9rem;line-height:1.6;color:#5a6670}.workflow-connector[data-v-6652c20b]{width:60px;height:2px;background:linear-gradient(90deg,#2a9d8f66,#2a9d8f1a);margin-top:4rem}.community[data-v-6652c20b]{padding:8rem 4rem;background:radial-gradient(ellipse 80% 60% at 20% 100%,rgba(42,157,143,.06),transparent),#fafbfc}.community-content[data-v-6652c20b]{max-width:900px;margin:0 auto;text-align:center}.community h2[data-v-6652c20b]{font-size:2.5rem;font-weight:700;margin-bottom:1.5rem;color:#1a1a2e}.community>p[data-v-6652c20b],.community-content>p[data-v-6652c20b]{font-size:1.15rem;line-height:1.8;color:#5a6670;margin-bottom:3rem}.community-stats[data-v-6652c20b]{display:flex;justify-content:center;gap:4rem;flex-wrap:wrap}.stat[data-v-6652c20b]{display:flex;flex-direction:column;align-items:center;gap:.5rem}.stat-value[data-v-6652c20b]{font-size:1.5rem;font-weight:700;color:#2a9d8f}.stat-label[data-v-6652c20b]{font-size:.9rem;color:#8a9199}.faq[data-v-6652c20b]{padding:8rem 4rem;background:#fff}.faq-grid[data-v-6652c20b]{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;max-width:1100px;margin:0 auto}.faq-item[data-v-6652c20b]{padding:1.75rem;background:#fafbfc;border:1px solid #e8ecf0;border-radius:12px;transition:all .2s}.faq-item[data-v-6652c20b]:hover{border-color:#2a9d8f4d}.faq-item h3[data-v-6652c20b]{font-size:1.1rem;font-weight:600;color:#1a1a2e;margin-bottom:.75rem;line-height:1.4}.faq-item p[data-v-6652c20b]{font-size:.95rem;line-height:1.7;color:#5a6670;margin:0}.cta[data-v-6652c20b]{padding:6rem 4rem;background:linear-gradient(135deg,#264653,#1a3a47);text-align:center}.cta h2[data-v-6652c20b]{font-size:2.5rem;font-weight:700;margin-bottom:.75rem;color:#fff}.cta>p[data-v-6652c20b]{font-size:1.15rem;color:#ffffffbf;margin-bottom:2rem}.subscribe-form-cta[data-v-6652c20b]{justify-content:center;max-width:500px;margin:0 auto}.subscribe-form-cta input[data-v-6652c20b]{background:#ffffff1a;border-color:#ffffff40;color:#fff}.subscribe-form-cta input[data-v-6652c20b]::placeholder{color:#ffffff80}.subscribe-form-cta input[data-v-6652c20b]:focus{background:#ffffff26;border-color:#ffffff80;box-shadow:none}.subscribe-form-cta button[data-v-6652c20b]{background:#2a9d8f}.subscribe-form-cta button[data-v-6652c20b]:hover:not(:disabled){background:#35b8a8;box-shadow:0 10px 30px #0000004d}.form-success-cta[data-v-6652c20b]{background:#2a9d8f33;border-color:#2a9d8f66;color:#fff}.footer[data-v-6652c20b]{padding:4rem;background:#1a1a2e;text-align:center}.footer-content[data-v-6652c20b]{max-width:600px;margin:0 auto}.footer .logo[data-v-6652c20b]{margin-bottom:1rem}.footer .logo-transit[data-v-6652c20b]{color:#f0f0f5}.footer p[data-v-6652c20b]{color:#8a9199;font-size:.9rem}.copyright[data-v-6652c20b]{margin-top:2rem;font-size:.8rem!important}@media (max-width: 1024px){.hero[data-v-6652c20b]{grid-template-columns:1fr;text-align:center;padding:6rem 2rem 4rem}.hero-content[data-v-6652c20b]{max-width:100%}.hero h1[data-v-6652c20b]{font-size:3rem}.hero-subtitle[data-v-6652c20b]{max-width:100%}.subscribe-form[data-v-6652c20b]{max-width:100%;justify-content:center}.hero-visual[data-v-6652c20b]{order:-1;margin-bottom:2rem}.schema-preview[data-v-6652c20b]{max-width:400px}.features-grid[data-v-6652c20b]{grid-template-columns:repeat(2,1fr)}.faq-grid[data-v-6652c20b]{grid-template-columns:1fr}.workflow-connector[data-v-6652c20b]{display:none}}@media (max-width: 768px){.nav[data-v-6652c20b]{padding:1rem 1.5rem}.hero[data-v-6652c20b]{padding:5rem 1.5rem 3rem}.hero h1[data-v-6652c20b]{font-size:2.25rem}.subscribe-form[data-v-6652c20b]{flex-direction:column}.subscribe-form button[data-v-6652c20b]{width:100%}.features[data-v-6652c20b],.workflow[data-v-6652c20b],.community[data-v-6652c20b],.faq[data-v-6652c20b],.cta[data-v-6652c20b]{padding:4rem 1.5rem}.features-grid[data-v-6652c20b]{grid-template-columns:1fr}.section-header h2[data-v-6652c20b]{font-size:2rem}.community-stats[data-v-6652c20b]{gap:2rem}.cta h2[data-v-6652c20b]{font-size:1.75rem}}.city-page{display:flex;flex-direction:column;height:100vh}.sidebar{width:280px;background:#1a1a2e;padding:.5rem;overflow-y:auto}.sidebar-dimmed{opacity:.3;pointer-events:none}.map-container{flex:1;position:relative;overflow:hidden}#map{position:absolute;top:36px;left:0;right:0;bottom:0}.map-header{position:absolute;top:0;left:0;right:0;z-index:1001;padding:8px 12px;background:linear-gradient(180deg,#1a1a2ee6,#1a1a2e59);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center}.map-header-left{display:flex;align-items:center;gap:1rem;flex-wrap:nowrap}.map-title{color:var(--color-text);font-weight:600;font-size:.95rem}.map-controls{position:absolute;top:56px;right:10px;z-index:1000;display:flex;flex-direction:column;gap:10px}.project-section,.scenario-section{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.25rem}.leaflet-control-attribution{filter:grayscale(1)!important}.map-loading{position:absolute;top:52px;left:10px;z-index:1000;display:flex;align-items:center;gap:.5rem;color:#000;font-size:1rem}.map-loading-spinner{width:18px;height:18px;border:2.5px solid rgba(0,0,0,.2);border-top-color:#000;border-radius:50%;animation:spin .8s linear infinite}#map.history-mode .leaflet-tile-pane{filter:grayscale(.7) opacity(.5)}#map.history-mode .leaflet-overlay-pane{filter:grayscale(.7) opacity(.5);pointer-events:none}#map.history-mode .leaflet-marker-pane,#map.history-mode .leaflet-shadow-pane{display:none}.route-results-panel{position:absolute;bottom:0;left:0;right:0;height:40%;background:#141426f2;border-top:1px solid rgba(0,186,255,.3);z-index:1000;display:flex;flex-direction:column}.results-header{padding:.4rem .75rem;font-size:.85rem;font-weight:600;color:#ffffffd9;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0;display:flex;justify-content:space-between;align-items:center}.routes-collapse-btn{background:none;border:none;color:#ffffff80;font-size:1.2rem;cursor:pointer;padding:0 .25rem;line-height:1}.routes-collapse-btn:hover{color:#ffffffe6}.routes-tab-collapsed{position:absolute;bottom:0;left:0;right:0;z-index:1000;padding:.35rem .75rem;background:#141426eb;border-top:1px solid rgba(0,186,255,.3);color:#ffffffd9;font-size:.82rem;font-weight:600;text-align:center;cursor:pointer}.routes-tab-collapsed:hover{background:#141426;color:#fff}.results-scroll{flex:1;overflow-y:auto}.results-scroll table{width:100%;border-collapse:collapse;font-size:.8rem;color:#ffffffd9}.results-scroll th{text-align:left;padding:.3rem .5rem;color:#ffffff80;font-weight:500;position:sticky;top:0;background:#141426fa;border-bottom:1px solid rgba(255,255,255,.08)}.results-scroll td{padding:.2rem .5rem;border-bottom:1px solid rgba(255,255,255,.04)}.results-scroll tr:hover td{background:#00baff12}.results-scroll tr{cursor:pointer}.results-scroll tr.active td{background:#00baff26}.segment-label{color:#fff;font-size:14px;font-weight:600;text-shadow:0 0 3px #000,0 0 3px #000;white-space:nowrap}.network-filter-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1001}.network-filter-dropdown{position:absolute;top:100%;left:0;margin-top:4px;background:#141426f2;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 0;z-index:1002;min-width:150px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.network-filter-item{display:flex;align-items:center;gap:6px;padding:5px 12px;cursor:pointer;font-size:.82rem;color:#ffffffd9;white-space:nowrap;-webkit-user-select:none;user-select:none}.network-filter-item:hover{background:#00baff1a}.network-checkbox{width:14px;height:14px;border:1.5px solid rgba(255,255,255,.35);border-radius:3px;flex-shrink:0;position:relative}.network-checkbox.checked{background:#00baffb3;border-color:#00baffe6}.network-checkbox.checked:after{content:"";position:absolute;left:3.5px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.network-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.schema-selector{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:.5rem}.schema-selector label{font-size:.875rem;font-weight:500;color:var(--color-text);opacity:.8}.schema-selector select{background:#0000004d;color:var(--color-text);border:1px solid var(--color-primary);border-radius:4px;padding:.5rem;font-size:.875rem;cursor:pointer;outline:none;transition:all .2s}.schema-selector select:hover{background:#00000080;border-color:var(--color-primary-light)}.schema-selector select:focus{border-color:var(--color-primary-light)}.label{font-size:.75rem;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:.5px;margin:0}.section-header{display:flex;align-items:flex-start;justify-content:space-between;margin:.75rem .25rem .25rem}.label-with-toggle{display:flex;align-items:center;gap:.25rem;cursor:pointer;padding:.15rem .25rem;margin:-.15rem -.25rem;border-radius:4px;transition:background .2s}.label-with-toggle:hover{background:#ffffff0a}.label-with-toggle:hover .collapse-btn{color:#ffffffb3}.collapse-btn{color:#ffffff80;font-size:.625rem;transition:transform .2s;line-height:1}.collapse-btn.collapsed{transform:rotate(-90deg)}.settings-btn{background:transparent;border:none;color:#ffffff80;font-size:.75rem;font-weight:400;padding:.2rem .5rem;cursor:pointer;border-radius:4px;transition:all .2s}.settings-btn:hover{background:#ffffff0a;color:#ffffffb3}.settings-btn.active{background:#00baff1f;color:#9de1ff}.active-scenario-label{color:var(--color-text);font-size:.875rem;text-transform:capitalize;background:#00baff1f;padding:.25rem .5rem;border-radius:4px}.context-item{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;min-height:24px;width:100%;background:transparent;border:none;color:inherit;text-align:left;cursor:pointer;border-radius:4px}.context-item:hover{background:#ffffff0a}.context-item.active{background:#00baff1f}.scenario-row{display:flex;align-items:center}.scenario-row .context-item{flex:1;min-width:0}.scenario-action-btn{background:transparent;border:none;color:#ffffff4d;cursor:pointer;padding:.15rem .35rem;font-size:.85rem;border-radius:4px;flex-shrink:0;line-height:1;transition:all .2s}.scenario-action-btn:hover{background:#ffffff14;color:#ffffffb3}.scenario-dropdown{position:fixed;z-index:2000;background:#1a1a2ef2;border:1px solid rgba(0,186,255,.3);border-radius:6px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:120px;box-shadow:0 4px 12px #0000004d}.scenario-dropdown button{display:block;width:100%;padding:.5rem .75rem;background:none;border:none;color:var(--color-text);font-size:.875rem;cursor:pointer;text-align:left;transition:background .2s}.scenario-dropdown button:hover{background:#00baff1f}.scenario-dropdown button.danger{color:#e94560}.scenario-dropdown button.danger:hover{background:#e945601f}.scenario-dropdown .submenu-container{position:relative}.scenario-dropdown .change-type-submenu{position:absolute;left:100%;top:0;background:#1a1a2ef2;border:1px solid rgba(0,186,255,.3);border-radius:6px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:140px;box-shadow:0 4px 12px #0000004d;z-index:2001}.scenario-dropdown .change-type-submenu.submenu-up{top:auto;bottom:0}.transport-dropdown-item.current-type{color:#00baffcc;cursor:default}.scenario-dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1999}.context-pill{margin-left:auto;background:#00baff33;color:#9de1ff;border-radius:8px;padding:.1rem .4rem;font-size:.7rem;flex-shrink:0}.network-dot{width:10px;height:10px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.network-name{color:var(--color-text);font-size:.875rem;text-transform:capitalize;flex:1}.segment-count{color:#ffffff80;font-size:.875rem;margin-left:auto}.empty-message{color:var(--color-text-muted);font-size:.9rem;padding:.5rem 0}.network-edit-buttons{display:flex;gap:.5rem;align-items:center}.network-edit-btn{display:flex;align-items:center;gap:.4rem;background:#1a1a2ecc;color:var(--color-text);padding:.4rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;border:1px solid rgba(0,186,255,.3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;transition:all .2s;outline:none}.network-edit-btn svg{flex-shrink:0}.network-edit-btn:hover{background:#1a1a2e;border-color:var(--color-primary)}.network-edit-btn:focus{outline:none}.network-edit-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.network-edit-btn.delete-btn{background:#b42828cc;border-color:#b42828}.network-edit-btn.delete-btn:hover{background:#b42828;border-color:#d43030}.network-edit-btn.cancel-btn{background:#64646499;border-color:#96969680}.network-edit-btn.cancel-btn:hover{background:#646464cc;border-color:#969696b3}.route-create-container{position:relative;display:flex;gap:.5rem;align-items:center}.create-route-btn{white-space:nowrap}.transport-dropdown{position:absolute;top:100%;left:0;margin-top:.25rem;background:#1a1a2ef2;border:1px solid rgba(0,186,255,.3);border-radius:6px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:180px;max-height:500px;overflow-y:auto;z-index:1002;box-shadow:0 4px 12px #0000004d}.transport-dropdown-item{padding:.5rem .75rem;color:var(--color-text);font-size:.875rem;cursor:pointer;transition:background .2s;border-bottom:1px solid rgba(255,255,255,.05)}.transport-dropdown-item.non-leaf{color:#ffffff80}.transport-dropdown-item:last-child{border-bottom:none}.transport-dropdown-item:hover{background:#00baff1f}.toggle-view-btn{background:#4a9eff26;border:1px solid var(--color-primary);color:var(--color-primary);padding:6px 12px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.toggle-view-btn:hover{background:#4a9eff40}.zoom-level-display{background:#1a1a2ee6;color:var(--color-text);padding:.5rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;border:1px solid var(--color-primary);pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.offset-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;background:#1a1a2ecc;padding:.3rem .75rem;border-radius:6px;border:1px solid rgba(0,186,255,.3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .2s}.offset-toggle:hover{background:#1a1a2e;border-color:var(--color-primary)}.offset-toggle input{display:none}.offset-toggle-slider{position:relative;width:32px;height:18px;background:#ffffff26;border-radius:9px;transition:background .2s;flex-shrink:0}.offset-toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff9;border-radius:50%;transition:transform .2s,background .2s}.offset-toggle input:checked+.offset-toggle-slider{background:var(--color-primary)}.offset-toggle input:checked+.offset-toggle-slider:after{transform:translate(14px);background:#fff}.offset-toggle input:disabled~.offset-toggle-slider{opacity:.4}.offset-toggle input:disabled~.offset-toggle-label{opacity:.4}.offset-toggle-label{font-size:.875rem;font-weight:500;color:var(--color-text);white-space:nowrap}.generate-test-btn{background:#1a1a2ee6;color:var(--color-text);padding:.5rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;border:1px solid var(--color-primary);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;transition:all .2s}.generate-test-btn:hover{background:#1a1a2e;border-color:var(--color-primary-light)}.generate-test-btn.active{background:var(--color-primary);color:#fff}.upload-geopackage-btn{background:#1a1a2ee6;color:var(--color-text);padding:.5rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;border:1px solid var(--color-primary);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;position:relative}.upload-geopackage-btn:hover{background:#1a1a2e;border-color:var(--color-primary-light)}.selection-hint{background:#1a1a2ee6;color:var(--color-text);padding:.5rem .75rem;border-radius:6px;font-size:.75rem;border:1px solid var(--color-primary);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-align:center}.copy-btn,.close-btn-secondary{padding:.5rem 1rem;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid var(--color-primary)}.copy-btn{background:var(--color-primary);color:#fff}.copy-btn:hover{background:var(--color-primary-light)}.close-btn-secondary{background:#ffffff1a;color:var(--color-text)}.close-btn-secondary:hover{background:#fff3}.retry-btn{background:#fff;color:#e94560;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:600;cursor:pointer;transition:all .2s}.retry-btn:hover{background:#ffffffe6;transform:translateY(-1px)}.map-header-right{display:flex;align-items:center;gap:.5rem}.map-style-btn{display:flex;align-items:center;gap:.4rem;background:#1a1a2ecc;color:var(--color-text);padding:.4rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;border:1px solid rgba(0,186,255,.3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;transition:all .2s;outline:none}.map-style-btn svg{flex-shrink:0}.map-style-btn:hover{background:#1a1a2e;border-color:var(--color-primary)}.edit-route-label{font-size:.875rem;font-weight:600;color:var(--color-text);white-space:nowrap}.network-edit-btn.save-btn{background:#1e783ccc;border-color:#2e8b57}.network-edit-btn.save-btn:hover{background:#1e783c;border-color:#3cb371}.network-edit-btn.save-btn:disabled{opacity:.4;cursor:not-allowed}.route-item.editing{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--color-accent)}.history-btn{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .5rem;border-radius:8px;border:1px solid rgba(255,255,255,.18);color:var(--color-text);background:transparent;cursor:pointer;transition:border .2s ease,background .2s ease}.history-btn:hover{border-color:#fff6;background:#ffffff0f}.history-btn.active{border-color:var(--color-accent);background:#e945601a;color:var(--color-accent)}.changes-history-panel{position:absolute;top:0;right:0;bottom:0;width:320px;background:#1a1a2e;z-index:1100;display:flex;flex-direction:column;border-left:1px solid rgba(255,255,255,.1)}.changes-history-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.changes-history-back{display:flex;align-items:center;justify-content:center;background:none;border:none;color:#fff9;cursor:pointer;padding:.2rem;border-radius:4px;transition:all .15s;flex-shrink:0}.changes-history-back:hover{color:var(--color-text);background:#ffffff0f}.changes-history-title{flex:1;font-size:.85rem;font-weight:600;color:var(--color-text)}.changes-history-close{display:flex;align-items:center;justify-content:center;background:none;border:none;color:#fff6;cursor:pointer;padding:.25rem;border-radius:4px;transition:all .15s;flex-shrink:0}.changes-history-close:hover{color:var(--color-text);background:#ffffff0f}.changes-history-list{flex:1;overflow-y:auto;padding:.25rem}.change-item{padding:.4rem .5rem;border-radius:4px;cursor:pointer;transition:background .15s}.change-item:hover{background:#ffffff0a}.change-item.selected{background:#ff6b3526}.change-message{color:var(--color-text);font-size:.85rem;line-height:1.3}.change-meta{display:flex;justify-content:space-between;margin-top:.15rem}.change-user{color:#fff6;font-size:.75rem}.change-date{color:#ffffff59;font-size:.75rem;flex-shrink:0}.sidebar-tabs{display:flex;gap:0;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.5rem}.sidebar-tab{flex:1;background:transparent;border:none;border-bottom:2px solid transparent;color:#ffffff73;font-size:.825rem;font-weight:600;padding:.5rem .5rem .4rem;cursor:pointer;transition:all .2s}.sidebar-tab:hover{color:#ffffffb3;background:#ffffff08}.sidebar-tab.active{color:#9de1ff;border-bottom-color:var(--color-primary)}.subsection-label{font-size:.7rem;font-weight:600;color:#ffffff59;text-transform:uppercase;letter-spacing:.5px;margin:.5rem .5rem .15rem}.data-layer-mode-toggle{display:flex;gap:.25rem}.mode-btn{flex:1;background:transparent;border:1px solid rgba(255,255,255,.15);color:#ffffff80;font-size:.75rem;padding:.2rem .5rem;border-radius:4px;cursor:pointer;transition:all .2s}.mode-btn:hover{border-color:#ffffff4d;color:#ffffffb3}.mode-btn.active{background:#00baff1f;border-color:#00baff66;color:#9de1ff}.data-layer-upload-dialog{background:#1a1a2e;border:1px solid var(--color-primary);border-radius:8px;padding:1.25rem;min-width:320px;box-shadow:0 4px 20px #00000080}.data-layer-upload-dialog h3{margin:0 0 1rem;font-size:1rem;color:var(--color-text)}.form-group{margin-bottom:.75rem}.form-group label{display:block;font-size:.8rem;color:#fff9;margin-bottom:.25rem}.form-input{width:100%;background:#0000004d;color:var(--color-text);border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:.4rem .5rem;font-size:.875rem;outline:none;transition:border-color .2s;box-sizing:border-box}.form-input:focus{border-color:var(--color-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.demand-label{color:gold;font-weight:700;font-size:11px;text-shadow:0 0 3px #000,0 0 6px #000;white-space:nowrap;text-align:center}.demand-label-total{font-size:13px}.demand-label-green{color:#4cff4c}.run-progress-bar{background:#ffc80026;border:1px solid rgba(255,200,0,.4);border-radius:4px;color:gold;font-size:.8rem;padding:.3rem .5rem;margin-bottom:.25rem}.run-date-header{font-size:.75rem;color:#fff6;padding:.35rem .25rem .1rem;letter-spacing:.03em}.run-spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#00baff;border-radius:50%;animation:run-spin .8s linear infinite;margin-left:auto;flex-shrink:0}@keyframes run-spin{to{transform:rotate(360deg)}}.run-failed{color:#f55;font-size:.8rem;margin-left:auto}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem}.modal-content{background:#1a1a2e;border:1px solid var(--color-primary);border-radius:8px;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000080}.modal-header{padding:1rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0;font-size:1.25rem;color:var(--color-text)}.close-btn{background:none;border:none;color:var(--color-text);font-size:1.5rem;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.close-btn:hover{background:#ffffff1a}.modal-body{padding:1.5rem;overflow:auto;flex:1}.modal-body pre{margin:0;padding:1rem;background:#0000004d;border-radius:4px;overflow-x:auto}.modal-body code{color:#e0e0e0;font-family:Courier New,monospace;font-size:.875rem;line-height:1.5;white-space:pre}.modal-footer{padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;gap:.75rem;justify-content:flex-end}.error-notification{position:fixed;bottom:20px;right:20px;z-index:2000;background:#e94560f2;border:1px solid rgba(255,255,255,.3);border-radius:12px;box-shadow:0 8px 24px #0006;max-width:400px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .3s ease}.error-notification.expanded{max-width:600px}.error-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;cursor:pointer;-webkit-user-select:none;user-select:none}.error-header:hover{background:#ffffff1a;border-radius:12px 12px 0 0}.error-icon{font-size:1.25rem}.error-title{flex:1;font-weight:600;color:#fff}.error-close{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.error-close:hover{background:#fff3}.error-body{padding:1rem 1.25rem;border-top:1px solid rgba(255,255,255,.2);margin-top:.5rem}.error-body pre{margin:0 0 1rem;padding:.75rem;background:#0000004d;border-radius:6px;overflow-x:auto;color:#fff;font-size:.85rem;max-height:200px;overflow-y:auto}.toast-message{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:10000;background:#1e2438f2;color:#ffc773;border:1px solid rgba(255,199,115,.3);padding:.75rem 1.5rem;border-radius:10px;font-size:.95rem;font-weight:600;box-shadow:0 4px 20px #0006}.toast-fade-enter-active{animation:toastIn .3s ease}.toast-fade-leave-active{animation:toastIn .3s ease reverse}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.upload-notification{position:fixed;top:80px;right:20px;z-index:10000;padding:1rem 2.5rem 1rem 1.25rem;border-radius:8px;font-size:.95rem;box-shadow:0 4px 12px #0000004d;animation:slideIn .3s ease}.upload-notification.success{background:#4caf50f2;color:#fff;border:1px solid rgba(76,175,80,1)}.upload-notification.error{background:#f44336f2;color:#fff;border:1px solid rgba(244,67,54,1)}.close-notification{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s}.close-notification:hover{opacity:1}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}:deep(.clickable-stop){cursor:pointer!important;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}:deep(.clickable-stop:hover){filter:brightness(1.3)}:deep(.draggable-stop){cursor:pointer!important}:deep(.dragging-stop){cursor:grabbing!important;pointer-events:none!important}:deep(.leaflet-container){outline:none!important}:deep(.leaflet-container.dragging-active){cursor:grabbing!important}:deep(.leaflet-marker-icon),:deep(.leaflet-interactive){user-select:none!important;-webkit-user-select:none!important;outline:none!important}:deep(.leaflet-interactive:focus),:deep(.leaflet-interactive:active),:deep(path.leaflet-interactive:focus),:deep(path.leaflet-interactive:active){outline:none!important;box-shadow:none!important;stroke:inherit!important;fill:inherit!important}.transport-types-panel[data-v-30048c6c]{padding:1rem;background:#16213e;height:100%;overflow-y:auto;overflow-x:hidden}.error-notification[data-v-30048c6c]{background:#f4433626;border:1px solid rgba(244,67,54,.3);color:#ff6b6b;padding:.5rem .75rem;border-radius:4px;margin-bottom:1rem;display:inline-flex;justify-content:space-between;align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:.875rem;width:100%}.error-text[data-v-30048c6c]{flex:1}.error-close[data-v-30048c6c]{background:none;border:none;color:#ff6b6b;font-size:18px;cursor:pointer;padding:0;width:18px;height:18px;line-height:18px;opacity:.7;transition:opacity .2s;margin-left:.5rem}.error-close[data-v-30048c6c]:hover{opacity:1}.types-grid[data-v-30048c6c]{background:#0003;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.05);display:inline-block;min-width:800px}.grid-header[data-v-30048c6c]{display:grid;grid-template-columns:minmax(200px,auto) 130px 100px 100px 90px;gap:8px;padding:.3rem .75rem;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.1);font-weight:600;color:#ffffff80;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;line-height:1.1}.grid-row[data-v-30048c6c]{display:grid;grid-template-columns:minmax(200px,auto) 130px 100px 100px 90px;gap:8px;padding:.25rem .75rem;border-bottom:1px solid rgba(255,255,255,.05);align-items:center;transition:background .2s;line-height:1.1}.grid-row[data-v-30048c6c]:hover{background:#ffffff08}.grid-row.level-0[data-v-30048c6c]{font-weight:600;color:var(--color-text)}.grid-row.level-1[data-v-30048c6c]{font-weight:500;color:var(--color-text)}.grid-row.level-2[data-v-30048c6c]{color:var(--color-text-muted)}.col-name[data-v-30048c6c]{display:flex;align-items:center;gap:6px}.name-text[data-v-30048c6c]{cursor:pointer;text-transform:capitalize}.name-text[data-v-30048c6c]:hover{color:var(--color-primary-light)}.name-input[data-v-30048c6c]{background:#0000004d;border:1px solid var(--color-primary);color:var(--color-text);padding:.3rem .5rem;border-radius:3px;font-size:.875rem;flex:1}.col-color[data-v-30048c6c]{display:flex;align-items:center;gap:4px}.color-display[data-v-30048c6c]{width:44px;height:24px;border-radius:3px;cursor:pointer;border:1px solid rgba(255,255,255,.15);transition:border-color .2s}.color-display[data-v-30048c6c]:hover{border-color:var(--color-primary)}.clear-color-btn[data-v-30048c6c]{background:#0000004d;border:1px solid rgba(255,255,255,.1);color:#ffffff80;width:20px;height:20px;border-radius:3px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s}.clear-color-btn[data-v-30048c6c]:hover{background:#f4433633;border-color:#f443364d;color:#ff6b6b}.add-color-btn[data-v-30048c6c]{background:#0000004d;border:1px solid rgba(255,255,255,.1);color:#ffffff80;width:28px;height:28px;border-radius:3px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s}.add-color-btn[data-v-30048c6c]:hover{background:#2e7d324d;border-color:#2e7d3280;color:#66bb6a}.color-input[data-v-30048c6c]{width:60px;height:28px;border:1px solid var(--color-primary);border-radius:3px;cursor:pointer;background:#0000004d}.col-capacity[data-v-30048c6c],.col-speed[data-v-30048c6c]{color:var(--color-text-muted)}.capacity-text[data-v-30048c6c]{cursor:pointer}.capacity-text[data-v-30048c6c]:hover{color:var(--color-text)}.capacity-input[data-v-30048c6c]{background:#0000004d;border:1px solid rgba(255,255,255,.2);color:var(--color-text);padding:.3rem .5rem;border-radius:3px;font-size:.875rem;width:70px}.empty-cell[data-v-30048c6c]{color:#fff3;cursor:pointer;font-size:.875rem}.empty-cell[data-v-30048c6c]:hover{color:#fff6}.col-actions[data-v-30048c6c]{display:flex;gap:4px;justify-content:flex-end}.action-btn[data-v-30048c6c]{background:#0000004d;border:1px solid rgba(255,255,255,.1);color:#ffffffb3;width:28px;height:28px;border-radius:3px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s}.action-btn[data-v-30048c6c]:hover{background:#ffffff1a;color:var(--color-text)}.add-btn[data-v-30048c6c]:hover{background:#2e7d324d;border-color:#2e7d3280;color:#66bb6a}.delete-btn[data-v-30048c6c]:hover{background:#d32f2f4d;border-color:#d32f2f80;color:#ef5350}.save-btn[data-v-30048c6c]{background:#2e7d324d;border-color:#2e7d3280;color:#66bb6a}.save-btn[data-v-30048c6c]:hover{background:#2e7d3280}.cancel-btn[data-v-30048c6c]{background:#0000004d;border-color:#fff3}.cancel-btn[data-v-30048c6c]:hover{background:#00000080}input[data-v-30048c6c]:focus{outline:none;border-color:var(--color-primary-light)}input[type=color][data-v-30048c6c]{padding:2px}input[type=color][data-v-30048c6c]::-webkit-color-swatch-wrapper{padding:2px}input[type=color][data-v-30048c6c]::-webkit-color-swatch{border:none;border-radius:2px}.button-wrapper[data-v-30048c6c]{margin-top:.75rem;width:100%}.add-top-level-btn[data-v-30048c6c]{background:#0000004d;border:1px solid rgba(255,255,255,.1);color:#ffffffb3;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.875rem;transition:all .2s;font-weight:500;display:block}.add-top-level-btn[data-v-30048c6c]:hover{background:#2e7d324d;border-color:#2e7d3280;color:#66bb6a}.share-backdrop[data-v-74b08370]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;z-index:2000}.share-dialog[data-v-74b08370]{background:#0f1624;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:1.5rem;width:min(480px,92vw);box-shadow:0 24px 60px #00000073;display:flex;flex-direction:column;gap:1rem}.share-header[data-v-74b08370]{display:flex;align-items:center;justify-content:space-between}.share-header h3[data-v-74b08370]{font-size:1.1rem;font-weight:600;margin:0}.close-btn[data-v-74b08370]{background:none;border:none;color:var(--color-text-muted, #aab6c8);font-size:1.4rem;cursor:pointer;padding:.2rem .4rem;border-radius:6px;transition:background .15s}.close-btn[data-v-74b08370]:hover{background:#ffffff14}.email-input-row[data-v-74b08370]{display:flex;gap:.5rem}.email-input-row input[data-v-74b08370]{flex:1;background:#0f1324b3;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.6rem .85rem;color:var(--color-text, #e0e6ed);font-size:.95rem}.email-input-row input[data-v-74b08370]:focus{outline:none;border-color:#ffc773;box-shadow:0 0 0 3px #ffc77340}.add-btn[data-v-74b08370]{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:.6rem 1rem;color:var(--color-text, #e0e6ed);font-weight:600;cursor:pointer;transition:background .15s}.add-btn[data-v-74b08370]:hover:not(:disabled){background:#ffffff1f}.add-btn[data-v-74b08370]:disabled{opacity:.4;cursor:not-allowed}.invite-form[data-v-74b08370]{display:flex;flex-direction:column;gap:.6rem;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px}.invite-row[data-v-74b08370]{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.invite-email[data-v-74b08370]{font-weight:600;font-size:.95rem}.notify-check[data-v-74b08370]{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--color-text-muted, #aab6c8);cursor:pointer}.notify-check input[type=checkbox][data-v-74b08370]{accent-color:var(--color-accent, #e94560)}.invite-message[data-v-74b08370]{background:#0f1324b3;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.6rem .85rem;color:var(--color-text, #e0e6ed);font-size:.9rem;resize:vertical;font-family:inherit}.invite-message[data-v-74b08370]:focus{outline:none;border-color:#ffc773}.invite-actions[data-v-74b08370]{display:flex;justify-content:flex-end;gap:.5rem}.members-section[data-v-74b08370]{display:flex;flex-direction:column;gap:.5rem}.members-label[data-v-74b08370]{font-size:.85rem;color:var(--color-text-muted, #aab6c8);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.loading-text[data-v-74b08370]{color:var(--color-text-muted, #aab6c8);font-size:.9rem}.member-row[data-v-74b08370]{display:flex;align-items:center;gap:.6rem;padding:.4rem 0}.member-avatar[data-v-74b08370]{width:32px;height:32px;border-radius:50%;background:linear-gradient(120deg,var(--color-primary, #457b9d),var(--color-accent, #e94560));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;color:#fff;flex-shrink:0}.member-info[data-v-74b08370]{flex:1;min-width:0}.member-name[data-v-74b08370]{font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:.3rem}.member-email[data-v-74b08370]{font-size:.8rem;color:var(--color-text-muted, #aab6c8);overflow:hidden;text-overflow:ellipsis}.you-tag[data-v-74b08370]{font-size:.75rem;font-weight:400;color:var(--color-text-muted, #aab6c8)}.pending-tag[data-v-74b08370]{font-size:.7rem;font-weight:600;color:#ffc773;background:#ffc7731f;padding:.1rem .4rem;border-radius:6px}.member-role[data-v-74b08370]{flex-shrink:0}.role-badge[data-v-74b08370]{font-size:.85rem;color:var(--color-text-muted, #aab6c8);padding:.3rem .6rem;border-radius:8px;background:#ffffff0a}.role-select[data-v-74b08370]{background:#0f1324b3;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:.3rem .5rem;color:var(--color-text, #e0e6ed);font-size:.85rem;cursor:pointer}.role-select[data-v-74b08370]:focus{outline:none;border-color:#ffc773}.remove-option[data-v-74b08370]{color:#ff6b6b}.share-footer[data-v-74b08370]{display:flex;justify-content:flex-end}.error-text[data-v-74b08370]{color:#ff8f70;font-size:.85rem}.ghost-btn[data-v-74b08370]{padding:.5rem .85rem;border-radius:10px;border:1px solid rgba(255,255,255,.18);color:var(--color-text, #e0e6ed);background:transparent;cursor:pointer;font-size:.9rem;transition:border .2s ease,background .2s ease}.ghost-btn[data-v-74b08370]:hover{border-color:var(--color-accent, #e94560);background:#e945601a}.primary-btn[data-v-74b08370]{background:linear-gradient(120deg,var(--color-primary, #457b9d),var(--color-accent, #e94560));color:#fff;border:none;border-radius:10px;padding:.5rem 1rem;font-weight:700;cursor:pointer;font-size:.9rem;transition:transform .1s ease,box-shadow .15s ease}.primary-btn[data-v-74b08370]:hover:not(:disabled){transform:translateY(-1px)}.primary-btn[data-v-74b08370]:disabled{opacity:.6;cursor:not-allowed}body{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}.projects-page[data-v-e1de3fed]{display:flex;flex-direction:column;min-height:100vh;background:var(--color-bg)}.projects-hero[data-v-e1de3fed]{padding:1.25rem 2rem;border-bottom:1px solid rgba(255,255,255,.06)}.hero-content[data-v-e1de3fed]{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.hero-left h1[data-v-e1de3fed]{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text);margin-bottom:.35rem}.hero-metrics[data-v-e1de3fed]{display:flex;align-items:baseline;gap:.5rem}.metric[data-v-e1de3fed]{display:flex;align-items:baseline;gap:.25rem}.metric-value[data-v-e1de3fed]{font-size:.8rem;font-weight:600;color:var(--color-text)}.metric-label[data-v-e1de3fed]{font-size:.75rem;font-weight:400;color:var(--color-text-muted)}.metric-sep[data-v-e1de3fed]{color:#ffffff26;font-size:.75rem}.cta-btn[data-v-e1de3fed]{background:linear-gradient(135deg,var(--color-accent),#c0334a);color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:600;font-size:.8rem;cursor:pointer;white-space:nowrap;transition:opacity .15s ease}.cta-btn[data-v-e1de3fed]:disabled{opacity:.45;cursor:not-allowed}.cta-btn[data-v-e1de3fed]:not(:disabled):hover{opacity:.88}.projects-main[data-v-e1de3fed]{flex:1;padding:1.25rem 2rem 2rem}.projects-layout[data-v-e1de3fed]{display:grid;grid-template-columns:2fr 1fr;gap:1.25rem;align-items:start}.col-main[data-v-e1de3fed]{display:flex;flex-direction:column;gap:1.25rem}.section[data-v-e1de3fed]{background:#16213e73;border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:1rem 1.25rem}.section-title[data-v-e1de3fed]{font-size:.7rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.85rem;display:flex;align-items:center;gap:.4rem}.section-count[data-v-e1de3fed]{font-size:.65rem;font-weight:600;color:#ffffff4d;background:#ffffff0d;padding:.1rem .4rem;border-radius:8px}.cards[data-v-e1de3fed]{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.6rem}.project-card[data-v-e1de3fed]{border-radius:6px;border:1px solid rgba(255,255,255,.05);background:#0d1120b3;cursor:pointer;padding:.75rem .85rem;display:flex;flex-direction:column;gap:.2rem;transition:border-color .15s ease,transform .15s ease}.project-card[data-v-e1de3fed]:hover{border-color:#ffffff1f;transform:translateY(-1px)}.card-name-row[data-v-e1de3fed]{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.card-name[data-v-e1de3fed]{font-size:.85rem;font-weight:600;color:var(--color-text);line-height:1.3}.card-city[data-v-e1de3fed]{font-size:.7rem;font-weight:400;color:var(--color-text-muted);line-height:1.3}.role-badge[data-v-e1de3fed]{font-size:.6rem;font-weight:600;text-transform:capitalize;color:#ffc773;background:#ffc77314;border:1px solid rgba(255,199,115,.12);padding:.1rem .35rem;border-radius:3px;flex-shrink:0}.card-info[data-v-e1de3fed]{display:flex;flex-direction:column;gap:.2rem;margin-top:.3rem}.info-row[data-v-e1de3fed]{display:flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:400;color:#ffffff59}.info-icon[data-v-e1de3fed]{width:13px;height:13px;flex-shrink:0;color:#ffffff40}.stat-num[data-v-e1de3fed]{font-weight:600;color:var(--color-text)}.routes-detail[data-v-e1de3fed]{color:#ffffff4d}.card-meta[data-v-e1de3fed]{font-size:.6rem;font-weight:400;color:#fff3;margin-top:.15rem}.empty-state[data-v-e1de3fed]{padding:1.25rem 1rem;text-align:center;color:#ffffff4d;font-size:.75rem;font-weight:400;border:1px dashed rgba(255,255,255,.06);border-radius:6px}.ghost-btn[data-v-e1de3fed]{text-decoration:none;padding:.5rem .85rem;border-radius:6px;border:1px solid rgba(255,255,255,.1);color:var(--color-text-muted);background:transparent;font-weight:600;font-size:.8rem;cursor:pointer;transition:border-color .15s ease}.ghost-btn[data-v-e1de3fed]:hover{border-color:#fff3}.modal-backdrop[data-v-e1de3fed]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50}.modal[data-v-e1de3fed]{background:#0d1120;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:1.25rem;width:min(600px,92vw)}.modal-header[data-v-e1de3fed]{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.modal-header h2[data-v-e1de3fed]{font-size:.95rem;font-weight:600}.icon-close[data-v-e1de3fed]{background:none;border:none;color:var(--color-text-muted);font-size:1.3rem;cursor:pointer;padding:.2rem .4rem;border-radius:4px;transition:background .15s ease}.icon-close[data-v-e1de3fed]:hover{background:#ffffff0d;color:var(--color-text)}.modal-actions[data-v-e1de3fed]{margin-top:1rem;display:flex;justify-content:flex-end;gap:.5rem}.form-grid[data-v-e1de3fed]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;align-items:end}label[data-v-e1de3fed]{display:flex;flex-direction:column;gap:.25rem;font-weight:400}label span[data-v-e1de3fed]{color:var(--color-text-muted);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}input[data-v-e1de3fed]{background:#0d1120cc;border:1px solid rgba(255,255,255,.07);border-radius:6px;padding:.5rem .65rem;color:var(--color-text);font-size:.8rem;transition:border-color .15s ease}input[data-v-e1de3fed]:focus{outline:none;border-color:#e9456080}.city-field[data-v-e1de3fed]{position:relative}.suggestions[data-v-e1de3fed]{position:absolute;left:0;right:0;top:100%;margin-top:.2rem;z-index:30;background:#0d1120;border:1px solid rgba(255,255,255,.07);border-radius:6px;max-height:200px;overflow:auto}.suggestions ul[data-v-e1de3fed]{list-style:none;padding:0;margin:0}.suggestions li[data-v-e1de3fed]{padding:.45rem .65rem;cursor:pointer;font-size:.75rem;transition:background .1s ease}.suggestions li[data-v-e1de3fed]:hover{background:#ffffff0a}.suggestion-status[data-v-e1de3fed]{padding:.45rem .65rem;color:var(--color-text-muted);font-size:.75rem}.form-error[data-v-e1de3fed]{color:#ff8f70;font-size:.75rem;margin-top:.6rem}.loading[data-v-e1de3fed]{color:var(--color-text-muted);padding:2rem;text-align:center;font-size:.8rem}@media (max-width: 768px){.projects-layout[data-v-e1de3fed]{grid-template-columns:1fr}.projects-hero[data-v-e1de3fed],.projects-main[data-v-e1de3fed]{padding:1rem}.hero-content[data-v-e1de3fed]{flex-direction:column;align-items:flex-start;gap:.75rem}}.dashboard-page[data-v-1f98e449]{min-height:100vh;background:var(--color-bg);color:var(--color-text)}.app-header[data-v-1f98e449]{background:var(--color-surface);border-bottom:1px solid rgba(255,255,255,.1)}.header-content[data-v-1f98e449]{display:flex;justify-content:space-between;align-items:center;padding:.05rem 2rem;width:100%}.title[data-v-1f98e449]{font-size:1.5rem;font-weight:600;margin:0;line-height:1}.dashboard-nav[data-v-1f98e449]{max-width:1800px;margin:0 auto;padding:0 2rem;display:flex;gap:.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.nav-tab[data-v-1f98e449]{background:none;border:none;color:var(--color-text-muted);padding:1rem 1.5rem;font-size:.95rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;display:flex;align-items:center;gap:.5rem}.nav-tab[data-v-1f98e449]:hover{color:var(--color-text);background:#ffffff08}.nav-tab.active[data-v-1f98e449]{color:var(--color-text);border-bottom-color:#60a5fa}.count[data-v-1f98e449]{background:#60a5fa33;color:#60a5fa;padding:.15rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;min-width:1.5rem;text-align:center}.nav-tab.active .count[data-v-1f98e449]{background:#60a5fa4d}.dashboard-content[data-v-1f98e449]{padding:2rem;max-width:1800px;margin:0 auto}.loading[data-v-bf517091],.error[data-v-bf517091]{padding:3rem 2rem;text-align:center;font-size:1.1rem}.error[data-v-bf517091]{color:#ef4444;background:#ef44441a;border-radius:6px;border:1px solid rgba(239,68,68,.3)}.projects-grid[data-v-bf517091]{display:grid;grid-template-columns:auto auto auto auto auto auto auto auto auto auto;gap:1rem;background:#0003;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.05);padding:0 .75rem;align-items:center;position:relative}.projects-grid[data-v-bf517091]:before{content:"";position:absolute;top:0;left:0;right:0;height:calc(1rem + 1.2em + 2px);background:#0006;border-bottom:2px solid rgba(255,255,255,.1);z-index:0}.grid-header-cell[data-v-bf517091]{padding:.5rem 0;font-weight:600;color:#ffffff80;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;line-height:1.2;position:relative;z-index:1}.grid-cell[data-v-bf517091]{padding:.25rem 0;line-height:1.8;font-size:.9rem;border-bottom:1px solid rgba(255,255,255,.05)}.grid-row-wrapper[data-v-bf517091]{display:contents}.grid-row-wrapper:hover>.grid-cell[data-v-bf517091]:first-child:before{content:"";position:absolute;left:-.75rem;right:-999999px;top:0;bottom:0;background:#ffffff08;z-index:-1}.grid-row-wrapper:last-child>.grid-cell[data-v-bf517091]{border-bottom:none}.grid-cell[data-v-bf517091]{position:relative}.col-name[data-v-bf517091]{font-weight:500}.col-city[data-v-bf517091],.col-owner[data-v-bf517091]{color:var(--color-text-muted)}.col-number[data-v-bf517091]{text-align:right;font-variant-numeric:tabular-nums}.col-actions[data-v-bf517091]{display:flex;justify-content:flex-end}.project-link[data-v-bf517091]{background:#60a5fa26;color:#60a5fa;border:1px solid rgba(96,165,250,.3);padding:.25rem .75rem;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.project-link[data-v-bf517091]:hover{background:#60a5fa40;color:#93c5fd;border-color:#60a5fa80}@media (max-width: 1400px){.projects-grid[data-v-bf517091]{font-size:.85rem}.grid-header[data-v-bf517091],.grid-row[data-v-bf517091]{padding:.4rem .5rem}.grid-header[data-v-bf517091]{font-size:.65rem}}.loading[data-v-ffa62ef6],.error[data-v-ffa62ef6]{padding:3rem 2rem;text-align:center;font-size:1.1rem}.error[data-v-ffa62ef6]{color:#ef4444;background:#ef44441a;border-radius:6px;border:1px solid rgba(239,68,68,.3)}.users-grid[data-v-ffa62ef6]{display:grid;grid-template-columns:auto auto auto auto auto auto auto 1fr;gap:1rem;background:#0003;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.05);padding:0 .75rem;align-items:center;position:relative}.users-grid[data-v-ffa62ef6]:before{content:"";position:absolute;top:0;left:0;right:0;height:calc(1rem + 1.2em + 2px);background:#0006;border-bottom:2px solid rgba(255,255,255,.1);z-index:0}.grid-header-cell[data-v-ffa62ef6]{padding:.5rem 0;font-weight:600;color:#ffffff80;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;line-height:1.2;position:relative;z-index:1}.grid-cell[data-v-ffa62ef6]{padding:.25rem 0;line-height:1.8;font-size:.9rem;border-bottom:1px solid rgba(255,255,255,.05);position:relative}.grid-row-wrapper[data-v-ffa62ef6]{display:contents}.grid-row-wrapper:hover>.grid-cell[data-v-ffa62ef6]:first-child:before{content:"";position:absolute;left:-.75rem;right:-999999px;top:0;bottom:0;background:#ffffff08;z-index:-1}.grid-row-wrapper:last-child>.grid-cell[data-v-ffa62ef6]{border-bottom:none}.col-name[data-v-ffa62ef6]{font-weight:500}.col-email[data-v-ffa62ef6],.col-org[data-v-ffa62ef6]{color:var(--color-text-muted)}.col-projects[data-v-ffa62ef6]{color:var(--color-text-muted);font-size:.85rem}.project-link[data-v-ffa62ef6]{color:#60a5fa;text-decoration:none;transition:color .15s}.project-link[data-v-ffa62ef6]:hover{color:#93c5fd;text-decoration:underline}.separator[data-v-ffa62ef6]{color:var(--color-text-muted)}.col-number[data-v-ffa62ef6]{text-align:right;font-variant-numeric:tabular-nums}@media (max-width: 1400px){.users-grid[data-v-ffa62ef6]{font-size:.85rem}.grid-header-cell[data-v-ffa62ef6],.grid-cell[data-v-ffa62ef6]{padding:.4rem .5rem}.grid-header-cell[data-v-ffa62ef6]{font-size:.65rem}}.auth-page[data-v-c057d4dc]{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg);padding:2rem}.auth-card[data-v-c057d4dc]{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:12px;padding:2rem;width:min(420px,100%);box-shadow:0 20px 60px #00000059}.auth-card h1[data-v-c057d4dc]{margin-bottom:.25rem}.subtitle[data-v-c057d4dc]{color:var(--color-text-muted);margin-bottom:1.5rem}.auth-form[data-v-c057d4dc]{display:flex;flex-direction:column;gap:1rem}label[data-v-c057d4dc]{display:flex;flex-direction:column;gap:.35rem;font-weight:600}label span[data-v-c057d4dc]{color:var(--color-text-muted);font-size:.9rem}input[data-v-c057d4dc]{background:#0f1730;border:1px solid var(--color-primary);border-radius:8px;padding:.75rem .85rem;color:var(--color-text);font-size:1rem}input[data-v-c057d4dc]:focus{outline:2px solid var(--color-accent);border-color:var(--color-accent)}button[data-v-c057d4dc]{background:var(--color-accent);color:#fff;border:none;border-radius:8px;padding:.9rem;font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .15s ease}button[data-v-c057d4dc]:disabled{opacity:.6;cursor:not-allowed}.form-error[data-v-c057d4dc]{color:var(--color-accent);margin-top:.25rem}.form-success[data-v-c057d4dc]{color:#22c55e;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:6px;padding:.75rem 1rem;margin-bottom:1rem}.auth-switch[data-v-c057d4dc]{margin-top:1.25rem;color:var(--color-text-muted)}.auth-switch a[data-v-c057d4dc]{color:var(--color-accent);font-weight:600}.oauth-divider[data-v-c057d4dc]{display:flex;align-items:center;margin:1.5rem 0;color:var(--color-text-muted);text-transform:uppercase;font-size:.85rem;font-weight:600}.oauth-divider[data-v-c057d4dc]:before,.oauth-divider[data-v-c057d4dc]:after{content:"";flex:1;border-bottom:1px solid var(--color-primary)}.oauth-divider span[data-v-c057d4dc]{padding:0 1rem}.google-button-container[data-v-c057d4dc]{display:flex;justify-content:center;margin-bottom:1rem}.auth-page[data-v-f58f87fa]{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg);padding:2rem}.auth-card[data-v-f58f87fa]{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:12px;padding:2rem;width:min(440px,100%);box-shadow:0 20px 60px #00000059}.auth-card h1[data-v-f58f87fa]{margin-bottom:.25rem}.subtitle[data-v-f58f87fa]{color:var(--color-text-muted);margin-bottom:1.5rem}.confirmation-message[data-v-f58f87fa]{color:var(--color-text-muted);margin:1rem 0 1.5rem;line-height:1.6}.confirmation-message strong[data-v-f58f87fa]{color:var(--color-text)}.auth-form[data-v-f58f87fa],.auth-form form[data-v-f58f87fa]{display:flex;flex-direction:column;gap:1rem}label[data-v-f58f87fa]{display:flex;flex-direction:column;gap:.35rem;font-weight:600}label span[data-v-f58f87fa]{color:var(--color-text-muted);font-size:.9rem}input[data-v-f58f87fa]{background:#0f1730;border:1px solid var(--color-primary);border-radius:8px;padding:.75rem .85rem;color:var(--color-text);font-size:1rem}input[data-v-f58f87fa]:focus{outline:2px solid var(--color-accent);border-color:var(--color-accent)}button[data-v-f58f87fa]{border:none;border-radius:8px;padding:.9rem;font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .15s ease}.signup-buttons[data-v-f58f87fa]{display:flex;flex-direction:column;gap:.75rem}.btn-primary[data-v-f58f87fa]{background:var(--color-accent);color:#fff}.btn-google[data-v-f58f87fa]{background:#fff;color:#1f1f1f;border:1px solid var(--color-primary)}.btn-google[data-v-f58f87fa]:hover{background:#f8f8f8}.btn-email[data-v-f58f87fa]{background:var(--color-accent);color:#fff}.btn-back[data-v-f58f87fa]{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-primary);margin-top:.5rem}.btn-back[data-v-f58f87fa]:hover{background:#ffffff0d}button[data-v-f58f87fa]:disabled{opacity:.6;cursor:not-allowed}.form-error[data-v-f58f87fa]{color:var(--color-accent);margin-top:.25rem}.auth-switch[data-v-f58f87fa]{margin-top:1.25rem;color:var(--color-text-muted)}.auth-switch a[data-v-f58f87fa]{color:var(--color-accent);font-weight:600}.auth-page[data-v-cf1be026]{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg);padding:2rem}.auth-card[data-v-cf1be026]{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:12px;padding:2rem;width:min(440px,100%);box-shadow:0 20px 60px #00000059}.auth-card h1[data-v-cf1be026]{margin-bottom:.25rem}.subtitle[data-v-cf1be026]{color:var(--color-text-muted);margin-bottom:1.5rem}.auth-form[data-v-cf1be026]{display:flex;flex-direction:column;gap:1rem}.form-row[data-v-cf1be026]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label[data-v-cf1be026]{display:flex;flex-direction:column;gap:.35rem;font-weight:600}label span[data-v-cf1be026]{color:var(--color-text-muted);font-size:.9rem}input[data-v-cf1be026]{background:#0f1730;border:1px solid var(--color-primary);border-radius:8px;padding:.75rem .85rem;color:var(--color-text);font-size:1rem}input[data-v-cf1be026]:focus{outline:2px solid var(--color-accent);border-color:var(--color-accent)}button[data-v-cf1be026]{background:var(--color-accent);color:#fff;border:none;border-radius:8px;padding:.9rem;font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .15s ease}button[data-v-cf1be026]:disabled{opacity:.6;cursor:not-allowed}.form-error[data-v-cf1be026]{color:var(--color-accent);margin-top:.25rem}:root{--color-bg: #1a1a2e;--color-surface: #16213e;--color-primary: #0f3460;--color-accent: #e94560;--color-text: #eaeaea;--color-text-muted: #a0a0a0;--sidebar-width: 320px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--color-bg);color:var(--color-text);min-height:100vh}.ghost-btn,.primary-btn{text-decoration:none;padding:.55rem .95rem;border-radius:8px;font-weight:600;border:1px solid var(--color-primary);transition:all .15s ease}.ghost-btn{background:transparent;color:var(--color-text)}.ghost-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.primary-btn{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.primary-btn:hover{opacity:.9}.user-menu{position:relative;display:flex;align-items:center;gap:.55rem;cursor:pointer;padding:.35rem .5rem;border-radius:10px;transition:background .15s ease}.user-menu:hover{background:#ffffff0a}.avatar{width:34px;height:34px;border-radius:50%;background:var(--color-accent);color:#fff;display:grid;place-items:center;font-weight:800}.user-meta{display:flex;flex-direction:column;line-height:1.2}.user-name{font-weight:700}.user-email,.chevron{color:var(--color-text-muted);font-size:.85rem}.user-menu .dropdown,.dropdown-portal{position:fixed;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:10px;min-width:180px;box-shadow:0 12px 30px #00000073;display:flex;flex-direction:column;overflow:hidden;z-index:9999}.dropdown a,.dropdown button,.dropdown-portal a,.dropdown-portal button{padding:.9rem 1rem;text-align:left;background:transparent;border:none;color:var(--color-text);text-decoration:none;cursor:pointer;transition:background .1s ease}.dropdown a:hover,.dropdown button:hover,.dropdown-portal a:hover,.dropdown-portal button:hover{background:#ffffff0f}.dropdown .upload-option,.dropdown-portal .upload-option{position:relative;padding:.9rem 1rem;text-align:left;background:transparent;border:none;color:var(--color-text);cursor:pointer;transition:background .1s ease;display:block;width:100%}.dropdown .upload-option:hover,.dropdown-portal .upload-option:hover{background:#ffffff0f}.dropdown .upload-option span,.dropdown-portal .upload-option span{pointer-events:none}.dropdown .upload-option input[type=file],.dropdown-portal .upload-option input[type=file]{position:absolute;opacity:0;width:100%;height:100%;top:0;left:0;cursor:pointer}.app-header{background:var(--color-surface);padding:.4rem 1.5rem;border-bottom:1px solid var(--color-primary);display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;overflow:visible;z-index:100}.app-header-left{display:flex;align-items:center;gap:.75rem}.header-actions{display:flex;align-items:center;gap:.75rem;overflow:visible}.share-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .85rem;border-radius:8px;border:1px solid rgba(255,255,255,.18);color:var(--color-text);background:transparent;font-size:.9rem;font-weight:600;cursor:pointer;transition:border .2s ease,background .2s ease}.share-btn:hover{border-color:var(--color-accent);background:#e945601a}.app-header h1{font-size:1.25rem;font-weight:600;color:var(--color-accent);line-height:1}.app-header .city-name{font-size:1.1rem;color:var(--color-text-muted);line-height:1}.app-header .city-name.editable{cursor:pointer;padding:2px 6px;border-radius:4px;border:1px solid transparent}.app-header .city-name.editable:hover{border-color:var(--color-text-muted)}.app-header .project-name-input{font-size:1.1rem;color:var(--color-text-muted);line-height:1;background:var(--color-bg);border:1px solid var(--color-accent);border-radius:4px;padding:2px 6px;outline:none;font-family:inherit}.main-content{display:flex;flex:1;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-primary);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:1rem;border-bottom:1px solid var(--color-primary)}.sidebar-header h2{font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.transport-filters{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem;border-bottom:1px solid var(--color-primary)}.transport-btn{padding:.4rem .75rem;border:none;border-radius:4px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s;text-transform:capitalize}.transport-btn.active{color:#fff}.transport-btn:not(.active){background:var(--color-primary);color:var(--color-text-muted)}.transport-btn:hover:not(.active){background:var(--color-accent);color:#fff}.route-list{flex:1;overflow-y:auto;padding:.5rem;display:flex;flex-wrap:wrap;gap:.35rem;align-content:flex-start;scrollbar-width:thin;scrollbar-color:var(--color-primary) var(--color-bg)}.route-list::-webkit-scrollbar{width:6px}.route-list::-webkit-scrollbar-track{background:var(--color-bg)}.route-list::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:3px}.route-list::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}.route-item{width:2.5rem;padding:.2rem;box-sizing:border-box;border-radius:4px;cursor:pointer;font-weight:600;font-size:.85rem;text-align:center;transition:opacity .15s,box-shadow .15s}.route-item:hover{opacity:.85}.route-item.highlighted{box-shadow:0 0 0 2px var(--color-accent)}.map-container{flex:1;position:relative}.map-container #map{position:absolute;top:0;left:0;right:0;bottom:0}.map-container .leaflet-container{height:100%;width:100%;background:var(--color-bg)}.leaflet-control-zoom a{background:var(--color-surface)!important;color:var(--color-text)!important;border-color:var(--color-primary)!important}.leaflet-control-zoom a:hover{background:var(--color-primary)!important}.leaflet-control-attribution{background:#1a1a2ecc!important;color:var(--color-text-muted)!important}.leaflet-control-attribution a{color:var(--color-accent)!important}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-muted)}.loading:after{content:"";width:24px;height:24px;margin-left:.75rem;border:2px solid var(--color-primary);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{padding:2rem;text-align:center;color:var(--color-accent);max-width:800px;margin:2rem auto}.error h2{margin-bottom:1rem}.error pre{background:var(--color-surface);padding:1rem;border-radius:8px;text-align:left;overflow-x:auto;white-space:pre-wrap;word-break:break-word;font-size:.875rem;margin-bottom:1rem}.error button{background:var(--color-accent);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:1rem}.error button:hover{opacity:.9}.route-popup{position:fixed;transform:translate(10px,-50%);display:flex;flex-wrap:wrap;gap:4px;padding:6px;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:6px;box-shadow:0 4px 16px #0006;z-index:10000;max-width:200px}.route-popup-item{width:2.5rem;padding:.2rem;border-radius:4px;cursor:pointer;font-weight:600;font-size:.85rem;text-align:center;transition:opacity .15s}.route-popup-item:hover{opacity:.75}.modeling-route-popup{position:fixed;transform:translate(10px,-50%);padding:6px 8px;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:6px;box-shadow:0 4px 16px #0006;z-index:10000;font-size:.8rem}.mrp-table{border-collapse:collapse;white-space:nowrap}.mrp-table th{color:var(--color-text-muted);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px 4px;text-align:left;border-bottom:1px solid var(--color-primary)}.mrp-th-num{text-align:right}.mrp-row{cursor:pointer;transition:background .1s}.mrp-row:hover{background:#ffffff14}.mrp-row td{padding:3px 8px}.mrp-badge{display:inline-block;padding:1px 6px;border-radius:4px;font-weight:700;font-size:.8rem;text-align:center;min-width:2rem}.mrp-num{text-align:right}.mrp-load{font-weight:700}
