:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5}body{min-width:320px;min-height:100vh;margin:0}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif}:root{--bg-primary:#000;--bg-secondary:#0a0a0a;--bg-tertiary:#171717;--bg-hover:#262626;--border-color:#262626;--border-light:#333;--text-primary:#ededed;--text-secondary:#a1a1a1;--text-muted:#888;--accent:#0070f3;--accent-hover:#0060df;--success:#50e3c2;--warning:#f5a623;--error:#e00}.app-container{background:var(--bg-primary);width:100%;height:100%;display:flex}.map-container{flex:1;min-width:0;position:relative}.panel-section{margin-bottom:16px}.section-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:600}.section-divider{background:var(--border-color);height:1px;margin:16px 0}.tool-hint{color:var(--text-secondary);margin-top:8px;font-size:12px;line-height:1.4}.btn{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--bg-hover);border-color:var(--border-light)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg-primary)}.btn-primary:hover{background:#fff;border-color:#fff}.btn-sm{padding:6px 10px;font-size:12px}.btn-icon{width:36px;height:36px;padding:0}.button-row{flex-wrap:wrap;gap:6px;display:flex}.input{border:1px solid var(--border-color);background:var(--bg-tertiary);width:100%;color:var(--text-primary);border-radius:6px;padding:8px 12px;font-size:13px}.input:focus{border-color:var(--text-secondary);outline:none}.input::placeholder{color:var(--text-muted)}.input-group{gap:8px;display:flex}.input-group .input{flex:1}.error-screen{background:var(--bg-primary);height:100vh;color:var(--text-primary);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.error-screen h1{margin-bottom:12px;font-size:24px}.error-screen p{color:var(--text-secondary)}.error-screen code{background:var(--bg-tertiary);border-radius:4px;padding:2px 6px;font-size:13px}@media (max-width:768px){.sidebar{border-right:none;border-bottom:1px solid var(--border-color);width:100%;height:50vh}.app-container{flex-direction:column}.map-container{height:50vh}}.tool-grid{flex-wrap:wrap;gap:6px;display:flex}.tool-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;display:flex}.tool-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.tool-btn.active{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg-primary)}.tool-btn.danger{color:var(--error)}.tool-btn.danger:hover{border-color:var(--error);background:#e000001a}.layer-grid{flex-wrap:wrap;gap:6px;display:flex}.layer-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.layer-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.layer-btn.active{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg-primary)}.layer-btn .icon{width:14px;height:14px}.layer-btn .label{font-weight:500}.control-grid{flex-wrap:wrap;gap:6px;display:flex}.control-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:5px 8px;font-size:11px;display:flex}.control-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.control-btn:disabled{opacity:.4;cursor:not-allowed}.control-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.stats-section{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:16px;padding:8px 16px}.stat-row{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.stat-row .stat-label{color:var(--text-secondary);font-size:12px}.stat-row .stat-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.quick-nav{flex-wrap:wrap;gap:6px;display:flex}.nav-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;border-radius:14px;padding:5px 10px;font-size:11px}.nav-btn:hover{border-color:var(--border-light);color:var(--text-primary)}.route-points{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.route-point{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;align-items:center;gap:8px;padding:8px 10px;display:flex}.route-label{color:var(--text-secondary);flex-shrink:0;width:70px;font-size:11px;font-weight:600}.route-coord{color:var(--text-primary);font-variant-numeric:tabular-nums;flex:1;font-size:11px}.route-coord.muted{color:var(--text-muted)}.route-modes{gap:6px;margin-bottom:12px;display:flex}.route-info{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;margin-top:12px;padding:10px 12px}.info-row{justify-content:space-between;padding:4px 0;font-size:12px;display:flex}.info-row .label{color:var(--text-secondary)}.info-row .value{color:var(--text-primary);font-weight:500}.suggestions-list{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;margin-top:8px;overflow:hidden}button.suggestion-item{width:100%;color:var(--text-primary);cursor:pointer;border:none;border-bottom:1px solid var(--border-color);text-align:left;background:0 0;padding:8px 12px;font-family:inherit;font-size:12px}button.suggestion-item:last-child{border-bottom:none}button.suggestion-item:hover{background:var(--bg-hover)}.results-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}button.result-item{background:var(--bg-tertiary);border:1px solid var(--border-color);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;border-radius:6px;align-items:center;gap:8px;padding:10px 12px;font-family:inherit;font-size:12px;display:flex}button.result-item:hover{border-color:var(--border-light);background:var(--bg-hover)}.sidebar{background:var(--bg-secondary);width:340px;color:var(--text-primary);border-right:1px solid var(--border-color);flex-direction:column;height:100%;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border-color);flex-shrink:0;padding:16px 20px}.sidebar-header-top{justify-content:space-between;align-items:flex-start;display:flex}.github-link{color:var(--text-secondary);justify-content:center;align-items:center;transition:color .15s;display:inline-flex}.github-link:hover{color:var(--text-primary)}.sidebar-header h1{color:var(--text-primary);letter-spacing:-.01em;font-size:14px;font-weight:600}.sidebar-header p{color:var(--text-secondary);margin-top:2px;font-size:12px}.unofficial-notice{color:var(--text-muted);margin-top:4px;font-size:10px;font-style:italic}.sidebar-content{flex:1;padding:16px 20px;overflow-y:auto}.tag-category{margin-bottom:12px}.category-name{color:var(--text-secondary);margin-bottom:6px;font-size:11px;font-weight:600}.tag-grid{flex-wrap:wrap;gap:4px;display:flex}.tag-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;border-radius:4px;padding:4px 8px;font-size:11px}.tag-btn:hover{border-color:var(--border-light);color:var(--text-primary)}.tag-btn:disabled{opacity:.4;cursor:not-allowed}.tag-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.tags-footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;display:flex}.tags-count{color:var(--text-muted);font-size:11px}
