code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--sidebar-width:320px;--sidebar-bg:#f8f9fa;--sidebar-border:#dee2e6}.rgv-sidebar{background-color:#f8f9fa;background-color:var(--sidebar-bg);border-right:1px solid #dee2e6;border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;height:100vh;width:320px;width:var(--sidebar-width)}.rgv-sidebar .rgv-scroll{flex:1 1;overflow-y:auto}@media (max-width:720px){.rgv-sidebar{box-shadow:-8px 0 24px #0000001f;height:100vh;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .22s ease;width:min(92vw,360px);z-index:1200}.rgv-sidebar.rgv-open{transform:translateX(0)}.rgv-sidebar-backdrop{background:#00000059;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .18s ease;z-index:1100}.rgv-sidebar-backdrop.rgv-visible{opacity:1;pointer-events:auto}.rgv-sidebar .rgv-mobile-close{display:flex;gap:8px;justify-content:flex-start;padding:10px 12px}.rgv-sidebar-footer{display:flex;flex-direction:column;gap:8px;padding:10px 12px}.zoom-controls .fullscreen{display:none!important}}.rgv-sidebar-footer{align-items:center;background:#f8f9fa;background:var(--sidebar-bg);border-top:1px solid #d0d7de;display:flex;font-size:12px;gap:8px;justify-content:space-between;padding:10px 12px}.rgv-toggle-button{display:none}@media (max-width:720px){.rgv-toggle-button{background:#1976d2;border:none;border-radius:28px;bottom:18px;box-shadow:0 6px 18px #0000002e;color:#fff;cursor:pointer;display:inline-flex;font-weight:700;padding:10px 14px;position:fixed;right:12px;z-index:1300}}.rgv-sidebar h1,.rgv-sidebar h3{color:#333}.landing-root{background:radial-gradient(circle at 70% 40%,#f2f7ff 0,#e9f1fb 40%,#dfe9f7 75%);display:flex;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;height:100vh;overflow:hidden;width:100%}.landing-docs-btn,.landing-github-btn{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffdd;border:1px solid #1976d2;border-radius:6px;color:#1976d2;cursor:pointer;font-size:14px;font-weight:600;padding:12px 16px;position:absolute;right:20px;top:16px;transition:all .25s;z-index:10}.landing-docs-btn:hover,.landing-github-btn:hover{background:#1976d2;box-shadow:0 6px 20px -6px #0d47a166;color:#fff;transform:translateY(-3px)}.landing-github-btn{margin-right:100px;text-decoration:none}.landing-illustration{pointer-events:none}.landing-left{box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;justify-content:center;max-width:760px;padding:clamp(40px,8vw,120px) clamp(40px,6vw,100px)}.landing-title{background:linear-gradient(90deg,#0d47a1,#1976d2,#42a5f5);background-clip:text;-webkit-background-clip:text;color:#0000;font-size:clamp(2.4rem,4.2vw,3.6rem);letter-spacing:.5px;line-height:1.05;margin:0 0 24px}.landing-subtitle{color:#2f3c4c;font-size:clamp(1rem,1.4vw,1.25rem);font-weight:500;line-height:1.5;margin:0 0 32px;max-width:560px}.landing-actions{align-items:center;display:flex;gap:12px}.landing-gh-pill{align-items:center;background:#000;border-radius:6px;box-shadow:0 6px 18px -6px #00000059;color:#fff;display:inline-flex;font-weight:700;gap:10px;letter-spacing:.2px;padding:12px 16px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.landing-gh-pill:hover{background:#111;box-shadow:0 10px 24px -8px #00000073;transform:translateY(-2px)}.landing-button{background:linear-gradient(90deg,#1976d2,#0d47a1);border:none;border-radius:8px;box-shadow:0 6px 18px -4px #0d47a159;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;overflow:hidden;padding:14px 28px;position:relative;transition:transform .28s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}.landing-button:before{background:radial-gradient(circle at 30% 50%,#ffffff40,#0000 70%);content:"";inset:0;opacity:0;position:absolute;transition:opacity .4s}.landing-button:hover{box-shadow:0 10px 28px -6px #0d47a173;transform:translateY(-4px)}.landing-button:hover:before{opacity:1}.landing-meta{color:#546e7a;font-size:.8rem;font-weight:600;letter-spacing:.5px;margin-top:26px;opacity:.85;text-transform:uppercase}.landing-right{align-items:center;display:flex;flex:1.1 1;justify-content:center;min-width:420px;padding:clamp(20px,4vw,60px);position:relative}.landing-illustration{animation:floatY 7s ease-in-out infinite;filter:drop-shadow(0 12px 28px rgba(0,0,0,.18));max-height:82vh;max-width:100%;-webkit-user-select:none;user-select:none}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@media (max-width:1100px){.landing-root{flex-direction:column}.landing-right{min-width:auto;order:-1;padding:40px 40px 10px}.landing-left{max-width:none;padding:40px clamp(28px,6vw,70px) 70px}.landing-illustration{max-height:40vh}}@media (prefers-reduced-motion:reduce){.landing-illustration{animation:none}.landing-button{transition:none}}.landing-docs-btn{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffdd;border:1px solid #1976d2;border-radius:6px;color:#1976d2;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;position:absolute;right:20px;top:16px;transition:all .25s}.landing-docs-btn:hover{background:#1976d2;box-shadow:0 6px 20px -6px #0d47a166;color:#fff;transform:translateY(-3px)}@media (max-width:1100px){.landing-docs-btn,.landing-github-btn{position:absolute;right:16px;top:12px}.landing-github-btn{margin-right:0;right:110px}}.docs-root{background:#f5f9ff;display:flex;flex-direction:column;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;min-height:100vh}.docs-header{align-items:center;background:linear-gradient(90deg,#0d47a1,#1976d2);box-shadow:0 4px 18px -6px #0d47a173;color:#fff;display:flex;justify-content:space-between;padding:22px 38px}.docs-header h1{font-size:28px;letter-spacing:.5px;margin:0}.docs-actions{display:flex;gap:14px}.docs-actions button{background:#fff;border:1px solid #e3f2fd;border-radius:6px;color:#0d47a1;cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px;transition:all .25s}.docs-actions button:hover{background:#1976d2;box-shadow:0 6px 18px -6px #0d47a173;color:#fff;transform:translateY(-2px)}.docs-content{color:#2f3c4c;line-height:1.6;margin:0 auto;max-width:1100px;padding:50px clamp(40px,6vw,100px) 80px}.docs-content h2{color:#0d47a1;font-size:22px;margin-bottom:14px;margin-top:48px;position:relative}.docs-content h2:after{background:linear-gradient(90deg,#0d47a1,#42a5f5);border-radius:2px;bottom:-6px;content:"";height:3px;left:0;position:absolute;width:52px}.docs-content p,.docs-content ul{font-size:15px;margin:0 0 14px}.docs-content ul{padding-left:20px}@media (max-width:900px){.docs-content{padding:40px 28px 60px}.docs-header{align-items:flex-start;flex-direction:column;gap:14px}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;overflow-x:hidden}.App{padding:20px;text-align:center}#root{height:100vh;width:100vw}.hop-drawer{box-shadow:-2px 0 20px #00000026;transition:right .3s ease-in-out}.hop-drawer.open{right:0!important}.control-panel{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.control-section{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:15px}button{transition:all .2s ease-in-out}button:hover{box-shadow:0 2px 5px #0003}input[type=checkbox]{accent-color:#2196f3;margin-right:8px;transform:scale(1.2)}.network-container{border:1px solid #ccc;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow:hidden;position:relative}.status-info{background:#e8f5e8;border:1px solid #c3e6c3;border-radius:6px;font-size:14px;margin-bottom:20px;padding:10px 15px;text-align:left}.instruction-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fffffff2;border:1px solid #ccc;border-radius:4px;font-size:12px;padding:8px 12px;position:absolute;right:10px;top:10px;z-index:10}@media (max-width:768px){.control-panel{flex-direction:column}.hop-drawer{right:-100vw!important;width:100vw!important}.hop-drawer.open{right:0!important}.instruction-overlay{display:block;margin-bottom:10px;position:relative}}.loading{align-items:center;color:#666;display:flex;font-size:18px;height:400px;justify-content:center}.error{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;margin:20px 0;padding:15px}.app-header{margin-bottom:20px;text-align:left}.app-header h1{color:#333;font-size:28px;font-weight:600;margin:0 0 10px}.app-header p{color:#666;font-size:16px;margin:0}@media (max-width:1200px){.controls-panel{flex-direction:column!important;gap:15px!important}.controls-panel>div{flex:none!important;min-height:auto!important}}@media (max-width:768px){.controls-panel{gap:10px!important}.controls-panel>div{padding:12px!important}.destination-search{font-size:12px!important}.bulk-actions{flex-direction:column!important;gap:6px!important}.bulk-actions button{width:100%!important}.filter-row{flex-direction:column!important;gap:8px!important}.filter-row input{width:100%!important}.quick-access-buttons{flex-direction:column!important;gap:6px!important}.date-inputs{flex-direction:column!important;gap:8px!important}}.destination-list::-webkit-scrollbar{width:6px}.destination-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.destination-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.destination-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}button:hover{opacity:.9;transform:translateY(-1px);transition:all .2s ease}button:active{transform:translateY(0)}.loading{opacity:.6;pointer-events:none}.loading:after{animation:spin 1s linear infinite;border:2px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;content:"";height:20px;left:50%;margin:-10px 0 0 -10px;position:absolute;top:50%;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.zoom-controls{display:flex;flex-direction:column;gap:8px;left:10px;position:absolute;top:10px;z-index:10}.zoom-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #dee2e6;border-radius:6px;box-shadow:0 2px 8px #0000001a;color:#495057;cursor:pointer;display:flex;font-weight:600;height:40px;justify-content:center;transition:all .2s ease;width:40px}.zoom-button:hover{background:#fff;border-color:#007bff;box-shadow:0 4px 12px #00000026;color:#007bff;transform:translateY(-1px)}.zoom-button:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.zoom-button.zoom-in{font-size:18px}.zoom-button.zoom-out{font-size:20px}.zoom-button.fit-screen{font-size:16px}.zoom-button.fullscreen{font-size:18px}.zoom-button.download-png,.zoom-button.download-svg{font-size:16px}.zoom-button:disabled{background:#c8c8c8cc;cursor:not-allowed;opacity:.5}.zoom-button:disabled:hover{background:#c8c8c8cc;border-color:#dee2e6;box-shadow:0 2px 8px #0000001a;color:#6c757d;transform:none}.zoom-button.center{font-size:14px}@media (max-width:768px){.zoom-controls{gap:6px;left:5px;top:5px}.zoom-button{font-size:14px;height:35px;width:35px}.zoom-button.zoom-in{font-size:16px}.zoom-button.zoom-out{font-size:18px}.zoom-button.fit-screen{font-size:14px}.zoom-button.fullscreen{font-size:16px}.zoom-button.download-png,.zoom-button.download-svg{font-size:14px}.zoom-button.center{font-size:12px}}.vis-network-tooltip{font-color:#000000}.vis-network-tooltip,.vis-tooltip{background-color:#f5f4ed;border:1px solid #808074;border-radius:3px;box-shadow:3px 3px 10px #0003;font-family:verdana;font-size:14px;padding:5px;pointer-events:none;position:absolute;visibility:hidden;white-space:nowrap;z-index:5}.vis-tooltip{color:#000}