*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}#root{height:100%}.app{color:#e0e0e0;background:#0a0a0f;height:100vh;font-family:Segoe UI,system-ui,sans-serif;display:flex;overflow:hidden}.sidebar{scrollbar-width:thin;scrollbar-color:#3a3a4a #12121a;background:#12121a;border-right:1px solid #2a2a3a;flex-direction:column;width:320px;min-width:320px;display:flex;overflow-y:auto}.sidebar section{border-bottom:1px solid #1e1e2e;padding:12px 16px}.sidebar h1.title{letter-spacing:.5px;color:#fff;background:linear-gradient(135deg,#1a1a2e,#16213e);border-bottom:1px solid #2a2a3a;margin:0;padding:16px;font-size:18px;font-weight:700}.sidebar h2{text-transform:uppercase;letter-spacing:1.5px;color:#888;margin:0 0 8px;font-size:11px;font-weight:600}.sidebar h3{color:#aaa;margin:8px 0 6px;font-size:12px;font-weight:500}.button-group{gap:6px;display:flex}.button-group.vertical{flex-direction:column}.map-select{color:#ccc;cursor:pointer;background:#1a1a2a;border:1px solid #2a2a3a;border-radius:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:500}.map-select:focus{border-color:#48f;outline:1px solid #48f}.route-btn{color:#bbb;cursor:pointer;text-align:left;background:#1a1a2a;border:1px solid #2a2a3a;border-left:3px solid #444;border-radius:4px;width:100%;padding:6px 10px;font-size:12px;transition:all .15s}.route-btn:hover{background:#222238}.route-btn.active{background:#1a1a30;border-color:#3a3a5a;font-weight:600}.constraints{flex-direction:column;gap:8px;display:flex}.constraint-row{align-items:center;gap:8px;display:flex}.constraint-row label{color:#888;min-width:48px;font-size:12px}.constraint-row select{color:#ccc;cursor:pointer;background:#1a1a2a;border:1px solid #2a2a3a;border-radius:4px;flex:1;padding:5px 8px;font-family:inherit;font-size:11px}.constraint-row select:focus{border-color:#48f;outline:1px solid #48f}.controls{flex-direction:column;gap:10px;display:flex}.control-row{justify-content:center;gap:4px;display:flex}.control-row button{color:#ccc;cursor:pointer;background:#1a1a2a;border:1px solid #2a2a3a;border-radius:6px;justify-content:center;align-items:center;width:40px;height:36px;font-size:16px;transition:all .15s;display:flex}.control-row button:hover{background:#2a2a3a}.play-btn{color:#4c4!important;background:#1a3a2a!important;border-color:#2a5a3a!important;width:52px!important;font-size:18px!important}.play-btn.playing{color:#fa4!important;background:#3a2a1a!important;border-color:#5a3a2a!important}.step-display{text-align:center;color:#888;font-variant-numeric:tabular-nums;font-size:13px}.step-slider{accent-color:#48f;cursor:pointer;width:100%}.speed-control{align-items:center;gap:8px;display:flex}.speed-control label{color:#888;min-width:40px;font-size:12px}.speed-buttons{flex:1;gap:4px;display:flex}.speed-buttons button{color:#aaa;cursor:pointer;background:#1a1a2a;border:1px solid #2a2a3a;border-radius:4px;flex:1;padding:4px;font-size:11px;transition:all .15s}.speed-buttons button.active{color:#48f;background:#1a2a4a;border-color:#48f}.checkbox-label{color:#aaa;cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.checkbox-label input{accent-color:#48f}.node-list-section{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.node-list{scrollbar-width:thin;scrollbar-color:#3a3a4a #12121a;flex:1;overflow-y:auto}.node-item{cursor:pointer;font-variant-numeric:tabular-nums;border-left:3px solid #0000;align-items:center;gap:8px;padding:4px 8px;font-size:11px;transition:all .15s;display:flex}.node-item:hover{background:#1a1a2a}.node-item.current{color:#fff;background:#1a1a30;font-weight:600}.node-item.completed{color:#666}.node-item.upcoming{color:#888}.node-num{color:#555;text-align:right;min-width:20px}.node-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.node-coords{color:#555;font-size:10px}.map-area{background:#08080e;flex:1;justify-content:center;align-items:center;min-width:0;padding:16px;display:flex}.sidebar::-webkit-scrollbar{width:6px}.node-list::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:0 0}.node-list::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:#3a3a4a;border-radius:3px}.node-list::-webkit-scrollbar-thumb{background:#3a3a4a;border-radius:3px}
