:root{--bg:#0b0f19;--bg-panel:#111827;--bg-card:#1a2035;--border:#1e2a42;--text:#cdd5e4;--text-heading:#e8ecf4;--text-muted:#6b7a94;--accent:#00d4ff;--accent-dim:#00d4ff1f;--accent-purple:#863bff;--good:#34d399;--warn:#ff6b35;--font:"Lexend", system-ui, sans-serif;--mono:"Cascadia Code", "Fira Code", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.route-panel{background:var(--bg-panel);border-left:1px solid var(--border);z-index:16800000;flex-direction:column;gap:.75rem;width:360px;height:100%;padding:1.25rem;display:flex;position:fixed;top:0;right:0;overflow-y:auto}.panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:.75rem;display:flex}.panel-header h2{color:var(--accent);margin:0;font-size:1.25rem;font-weight:700}.user-info{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.btn-icon{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;align-items:center;padding:.2rem;display:flex}.btn-icon:hover{color:var(--accent)}.btn-link{color:var(--text-muted);cursor:pointer;font-family:var(--font);background:0 0;border:none;font-size:.75rem;text-decoration:underline}.panel-section{flex-direction:column;gap:.35rem;display:flex}.panel-section label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:500}.input-group{gap:.35rem;display:flex}.panel-section input[type=text],.panel-section select{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);font-family:var(--font);border-radius:4px;padding:.5rem .75rem;font-size:.9rem}.panel-section input[type=text]:focus,.panel-section select:focus{border-color:var(--accent);outline:none}.panel-section input[type=range]{accent-color:var(--accent)}.checkbox-row label{cursor:pointer;align-items:center;gap:.4rem;display:flex}.checkbox-row input[type=checkbox]{accent-color:var(--accent)}.btn-sm{background:var(--accent-dim);border:1px solid var(--border);color:var(--accent);font-family:var(--font);cursor:pointer;white-space:nowrap;border-radius:4px;padding:.4rem .6rem;font-size:.75rem}.btn-primary{background:var(--accent-dim);border:1px solid var(--accent);width:100%;color:var(--accent);font-family:var(--font);cursor:pointer;border-radius:6px;padding:.65rem;font-size:.95rem;font-weight:500;transition:background .15s}.btn-primary:hover:not(:disabled){background:#00d4ff33}.btn-primary:disabled{opacity:.4;cursor:default}.autocomplete{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;max-height:200px;list-style:none;overflow-y:auto}.autocomplete li{cursor:pointer;padding:.4rem .75rem;font-size:.85rem}.autocomplete li:hover{background:var(--accent-dim)}.route-results{border-top:1px solid var(--border);margin-top:.5rem;padding-top:.75rem}.route-toolbar{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.route-visibility{flex-shrink:0}.route-visibility.off{opacity:.4}.route-tabs{flex:1;gap:.25rem;min-width:0;display:flex}.route-tab{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);font-family:var(--font);cursor:pointer;border-radius:4px;flex:1;padding:.4rem .25rem;font-size:.7rem}.route-tab.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.waypoint-list{flex-direction:column;gap:.15rem;list-style:none;display:flex}.waypoint{background:var(--bg);border-radius:4px;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;display:flex}.waypoint-clickable{cursor:pointer;transition:background .12s}.waypoint-clickable:hover{background:var(--accent-dim)}.wp-num{text-align:center;width:1.5rem;color:var(--accent);font-size:.7rem;font-weight:600}.wp-info{flex-wrap:wrap;flex:1;align-items:center;gap:.1rem .5rem;display:flex}.wp-station{width:100%;color:var(--text-muted);font-size:.7rem}.wp-name{color:var(--text-heading)}.wp-sec{font-size:.75rem;font-weight:600}.wp-dist{color:var(--text-muted);font-size:.75rem}.computing-indicator{color:var(--accent);justify-content:center;align-items:center;gap:.6rem;padding:1rem;font-size:.85rem;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.saved-routes{flex-direction:column;gap:.35rem;display:flex}.saved-routes>label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:500}.saved-route-list{flex-direction:column;gap:.15rem;list-style:none;display:flex}.saved-route-item{background:var(--bg);border-radius:4px;align-items:center;gap:.35rem;padding:.35rem .5rem;display:flex}.saved-route-info{cursor:pointer;flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.saved-route-info:hover .saved-route-name{color:var(--accent)}.saved-route-name{color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;transition:color .12s;overflow:hidden}.saved-route-detail{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.saved-route-delete{opacity:.4;flex-shrink:0}.saved-route-delete:hover{opacity:1;color:#e05555}.save-form{gap:.35rem;margin-bottom:.5rem;display:flex}.save-form input{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--font);border-radius:4px;flex:1;padding:.4rem .6rem;font-size:.85rem}.save-form input:focus{border-color:var(--accent);outline:none}.route-error{color:#e05555;background:#e055551f;border:1px solid #e055554d;border-radius:4px;padding:.5rem .75rem;font-size:.85rem}.route-empty{text-align:center;color:var(--text-muted);padding:.75rem;font-size:.85rem}.route-empty-hint{color:var(--accent);margin-top:.35rem;font-size:.78rem;display:block}.fuel-summary{background:var(--bg);border:1px solid var(--border);border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.5rem .65rem;display:flex}.fuel-total{color:var(--text-heading);font-size:.85rem;font-weight:600}.btn-dotlan{padding:.25rem .5rem;font-size:.7rem}.settings-panel{background:var(--bg-panel);border-left:1px solid var(--border);z-index:16800000;flex-direction:column;gap:.75rem;width:360px;height:100%;padding:1.25rem;display:flex;position:fixed;top:0;right:0;overflow-y:auto}.btn-back{color:var(--accent);font-family:var(--font);cursor:pointer;background:0 0;border:none;align-items:center;gap:.35rem;padding:0;font-size:1rem;font-weight:600;display:flex}.btn-back:hover{color:var(--text-heading)}.search-status{color:var(--text-muted);padding:.25rem 0;font-size:.8rem}.entity-results{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;max-height:240px;list-style:none;overflow-y:auto}.entity-results li{cursor:pointer;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.entity-results li:hover{background:var(--accent-dim)}.entity-badge{letter-spacing:.05em;border-radius:3px;flex-shrink:0;padding:.15rem .35rem;font-size:.6rem;font-weight:700}.entity-badge.corp{color:var(--accent);background:#00d4ff26}.entity-badge.alliance{color:var(--accent-purple);background:#863bff26}.entity-name{color:var(--text-heading);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.entity-ticker{color:var(--text-muted);flex-shrink:0;font-size:.8rem}.friendly-list{flex-direction:column;gap:.2rem;list-style:none;display:flex}.friendly-item{background:var(--bg);border-radius:4px;align-items:center;gap:.5rem;padding:.45rem .5rem;font-size:.85rem;display:flex}.friendly-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.btn-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;align-items:center;padding:.15rem;display:flex}.btn-remove:hover{color:#e05555;background:#e055551f}.segmented-toggle{border:1px solid var(--border);border-radius:4px;gap:0;display:flex;overflow:hidden}.seg-btn{font-family:var(--font);background:var(--bg);color:var(--text-muted);cursor:pointer;border:none;flex:1;padding:.4rem .75rem;font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.seg-btn:not(:last-child){border-right:1px solid var(--border)}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:var(--accent-dim);color:var(--accent);font-weight:600}.panel-divider{border-top:1px solid var(--border);margin:.25rem 0}.structure-info{color:var(--text);justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.cache-age{color:var(--text-muted);font-size:.8rem}.settings-error{color:#e05555;background:#e055551f;border:1px solid #e055554d;border-radius:4px;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.btn-dismiss{color:#e05555;cursor:pointer;background:0 0;border:none;padding:0 .15rem;font-size:1.1rem;line-height:1}.system-search{z-index:16800000;width:280px;position:fixed;top:12px;left:50%;transform:translate(-50%)}.system-search input{border:1px solid var(--border);width:100%;color:var(--text);font-family:var(--font);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0e18d9;border-radius:6px;outline:none;padding:.45rem .75rem;font-size:.9rem}.system-search input:focus{border-color:var(--accent)}.system-search input::placeholder{color:var(--text-muted)}.system-search-results{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0e18eb;border-radius:6px;margin-top:4px;list-style:none;overflow:hidden}.system-search-results li{color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;padding:.4rem .75rem;font-size:.85rem;display:flex}.system-search-results li.selected{background:var(--accent-dim);color:var(--text-heading)}.system-search-sec{color:var(--text-muted);font-size:.8rem}.system-info-card{z-index:16800000;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#0a0e18e0;border-radius:8px;min-width:180px;padding:.75rem 1rem;position:fixed;top:16px;right:376px}.sic-header{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.sic-name{color:var(--text-heading);font-size:1rem;font-weight:700}.sic-sec{font-size:.9rem;font-weight:600}.sic-region{color:var(--text-muted);margin-top:2px;font-size:.8rem}.sic-sov{color:var(--text-muted);margin-top:2px;font-size:.75rem}.sic-stats{gap:1.25rem;margin-top:.5rem;display:flex}.sic-stat{flex-direction:column;align-items:center;display:flex}.sic-stat-value{color:var(--text-heading);font-size:1.1rem;font-weight:700}.sic-stat-value.sic-kills{color:#c33}.sic-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.sic-activity{border-top:1px solid var(--border);margin-top:.5rem;padding-top:.5rem}.sic-activity-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.25rem;font-size:.65rem}.app{width:100%;height:100%;display:flex}.map-container{flex:1;height:100%;position:relative}.login-screen{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.login-screen h1{color:var(--text-heading);margin-bottom:.25rem;font-size:3rem;font-weight:700}.subtitle{color:var(--text-muted);margin-bottom:2.5rem;font-size:1.1rem}.login-btn{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);font-family:var(--font);border-radius:6px;padding:.75rem 2rem;font-size:1rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-block}.login-btn:hover{background:#00d4ff33}.session-expired{color:var(--warn);margin-bottom:1.5rem;font-size:.95rem}.map-loading-overlay,.map-error-overlay{z-index:100;color:var(--text-muted);background:#000000b3;flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-size:1.1rem;display:flex;position:absolute;inset:0}.map-loading-overlay .spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite map-spin}@keyframes map-spin{to{transform:rotate(360deg)}}
