.sidebar{width:240px;min-height:100vh;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-logo{padding:22px 20px 18px;border-bottom:1px solid var(--border);cursor:pointer;opacity:.92;transition:opacity .2s ease}.sidebar-logo:hover{opacity:1}.sidebar-logo-wordmark{font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.6rem;font-weight:300;letter-spacing:-.3px;color:var(--text)}.workspace-back-link{display:flex;align-items:center;gap:8px;margin:16px 20px 0;padding:6px 0;color:var(--text-secondary);text-decoration:none;font-size:.8rem;font-weight:500;transition:color .15s ease}.workspace-back-link svg{width:13px;height:13px;flex-shrink:0}.workspace-back-link:hover{color:var(--text)}.workspace-dataset-header{margin:14px 20px 4px;padding-bottom:14px;border-bottom:1px solid var(--border)}.workspace-dataset-name{font-size:.95rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-dataset-format{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.sidebar-nav{flex:1;padding:10px;display:flex;flex-direction:column}.sidebar-nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;color:var(--text-muted);text-decoration:none;font-size:.85rem;font-weight:500;border-radius:8px;margin-bottom:2px;cursor:pointer;transition:color .15s ease,background .15s ease;-webkit-user-select:none;user-select:none}.sidebar-nav-item:hover{color:var(--text);background:var(--bg-sidebar-hover)}.sidebar-nav-item.active{color:#fff;background:var(--accent-gradient)}.sidebar-nav-icon{width:16px;height:16px;flex-shrink:0;display:flex;opacity:.75}.sidebar-nav-item:hover .sidebar-nav-icon{opacity:.9}.sidebar-nav-item.active .sidebar-nav-icon{opacity:1}.sidebar-footer{padding:14px 16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-footer-email{font-size:.72rem;color:var(--text-muted);letter-spacing:.02em;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-logout-btn{font-size:.72rem;color:var(--text-muted);background:none;border:1px solid var(--border-hover);border-radius:6px;padding:4px 9px;cursor:pointer;flex-shrink:0;font-family:inherit}.sidebar-logout-btn:hover{color:var(--text);border-color:var(--text-secondary)}@media (max-width: 768px){.sidebar{position:fixed!important;top:0;left:0;height:100vh!important;z-index:200;transform:translate(-100%);transition:transform .25s ease}.sidebar.sidebar--open{transform:translate(0)}}.visualize-page{display:flex;flex-direction:column;height:calc(100vh - 140px);min-height:540px}.visualize-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:.9rem;flex-shrink:0}.visualize-header h2{font-weight:300;letter-spacing:-.3px;font-size:1.5rem;margin:0}.visualize-header-chips{display:flex;gap:.6rem;flex-wrap:wrap}.visualize-header-chip{font-size:.72rem;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:.25rem .7rem;white-space:nowrap}.visualize-header-chip strong{color:var(--text);font-weight:600}.visualize-canvas-region{position:relative;flex:1;min-height:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#050505}.graph-canvas-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.graph-canvas-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted)}.graph-toolbar,.graph-transport,.controls-popover,.side-panel{background:#0c0c14c7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-hover);box-shadow:0 10px 30px #0006}.context-menu{position:absolute;z-index:8;background:#0c0c14eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-hover);box-shadow:0 10px 30px #0006;border-radius:8px;padding:.4rem;min-width:160px;display:flex;flex-direction:column;gap:.2rem}.context-menu-title{font-size:.7rem;color:var(--text-muted);padding:.3rem .5rem .4rem;border-bottom:1px solid var(--border);margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.context-menu button{background:transparent;border:none;color:var(--text);text-align:left;padding:.4rem .5rem;font-size:.78rem;border-radius:5px}.context-menu button:hover{background:#ffffff0f}.disruption-run-config{margin-bottom:1.1rem;padding-bottom:1.1rem;border-bottom:1px solid var(--border)}.disruption-run-row{display:flex;align-items:center;gap:.6rem;margin-top:.7rem}.disruption-run-row input[type=range]{flex:1}.disruption-run-pct{font-size:.75rem;color:var(--text-muted);width:2.4rem;flex-shrink:0}.disruption-run-row button{flex-shrink:0;padding:.4rem .8rem;font-size:.75rem}.chip-group{display:flex;gap:.35rem;flex-wrap:wrap}.chip{font-family:inherit;font-size:.72rem;color:var(--text-muted);background:#ffffff08;border:1px solid var(--border-hover);border-radius:999px;padding:.3rem .65rem;cursor:pointer;transition:all .15s ease}.chip:hover{color:var(--text);border-color:var(--text-secondary)}.chip-active{color:#fff;background:var(--accent-gradient);border-color:transparent}.graph-transport{position:absolute;bottom:14px;left:50%;transform:translate(-50%);z-index:5;border-radius:10px;padding:.6rem .9rem;display:flex;flex-direction:column;gap:.4rem;max-width:calc(100% - 100px)}.graph-transport-label{font-size:.72rem;color:var(--text-secondary);text-align:center}.graph-transport-controls{display:flex;align-items:center;gap:.45rem}.graph-transport-controls button{padding:.3rem .55rem;font-size:.8rem;line-height:1;min-width:2rem}.graph-transport-play{color:var(--primary-light);border-color:var(--primary-light)}.graph-transport-scrubber{width:160px}.graph-transport-speed{width:auto;padding:.3rem .4rem;font-size:.72rem;max-width:none}.graph-transport-exit{color:var(--red);border-color:#ff5c5c66}.controls-popover-anchor{position:absolute;top:14px;right:78px;z-index:6}.controls-toggle-btn{width:2.4rem;height:2.4rem;padding:0;display:flex;align-items:center;justify-content:center;background:#0c0c14c7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:10px}.controls-toggle-btn svg{width:18px;height:18px}.controls-popover{position:absolute;top:calc(100% + 8px);right:0;width:240px;max-height:calc(100vh - 220px);overflow-y:auto;border-radius:10px;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.8rem}.controls-popover-row label{font-size:.68rem;margin-bottom:.3rem}.controls-popover-row select,.controls-popover-row input[type=range]{width:100%;max-width:none}.controls-popover-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;text-transform:none;font-size:.85rem;color:var(--text);margin:0}.controls-popover-actions{display:flex;gap:.5rem}.controls-popover-actions button{flex:1;padding:.5rem;font-size:.75rem}.side-panel-rail{position:absolute;top:0;right:0;bottom:0;width:64px;z-index:6;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:.4rem;padding:.5rem;background:#0c0c148c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:1px solid var(--border)}.side-panel-rail-btn{font-family:inherit;font-size:.68rem;color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:8px;padding:.5rem .3rem;cursor:pointer;line-height:1.2}.side-panel-rail-btn:hover{color:var(--text);background:#ffffff0d}.side-panel-rail-btn.active{color:#fff;background:var(--accent-gradient);border-color:transparent}.side-panel-wrap{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.side-panel-wrap .side-panel-rail,.side-panel-wrap .side-panel{pointer-events:auto}.side-panel{position:absolute;top:0;bottom:0;right:64px;width:min(400px,calc(100% - 84px));z-index:5;display:flex;flex-direction:column;border-radius:0}.side-panel-title{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;border-bottom:1px solid var(--border);font-weight:600;font-size:.9rem;flex-shrink:0}.side-panel-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.2rem .4rem;font-size:.85rem}.side-panel-close:hover{color:var(--text)}.side-panel-body{padding:1rem 1.1rem;overflow-y:auto;flex:1}.side-panel-tab-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.9rem;flex-wrap:wrap}.side-panel-tab-header select{width:auto;max-width:none;font-size:.78rem;padding:.4rem .6rem}.side-panel-tab-header button{font-size:.72rem;padding:.4rem .7rem}.side-panel-table-scroll{overflow-x:auto}.side-panel-table-scroll table{width:100%;border-collapse:collapse;font-size:.8rem}.side-panel-table-scroll th{text-align:left;padding:.5rem .4rem;color:var(--primary-light);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border);white-space:nowrap}.side-panel-table-scroll td{padding:.5rem .4rem;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.side-panel-node-cell{color:var(--text)!important;font-weight:500}.side-panel-note{color:var(--text-muted);font-size:.85rem;line-height:1.6}.side-panel-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.7rem}.side-panel-stats-grid .stat-box{padding:.8rem .6rem}.side-panel-stats-grid .value{font-size:1.3rem}@media (max-width: 768px){.visualize-page{height:calc(100vh - 180px)}.graph-transport{max-width:calc(100% - 20px)}.graph-transport-scrubber{width:90px}.side-panel-rail{width:48px}.side-panel{right:48px;width:calc(100% - 48px)}.controls-popover-anchor{right:62px}}:root{--primary: #2A72D0;--primary-light: #4A8EE0;--primary-dark: #1550A0;--accent-gradient: linear-gradient(135deg, #4A8EE0 0%, #2A72D0 50%, #1550A0 100%);--bg: #0a0a0a;--bg-darker: #000000;--bg-card: #1a1a1a;--bg-sidebar: #000000;--bg-sidebar-hover: rgba(255, 255, 255, .06);--text: #ffffff;--text-secondary: #b0b0b0;--text-muted: #707070;--border: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .14);--green: #3ddc84;--red: #ff5c5c;--amber: #f0a83c}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);color:var(--text);min-height:100vh;font-weight:300;line-height:1.6}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;background:#ffffff0f;padding:.2rem .4rem;border-radius:3px;color:var(--primary-light)}#root{min-height:100vh}.container{max-width:1400px;margin:0 auto;padding:20px}.app-layout{display:flex;min-height:100vh}.app-main{flex:1;min-width:0;overflow-x:hidden}.mobile-header{display:none}.hamburger-btn{background:transparent;border:none;color:var(--text);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.hamburger-btn:hover{background:#ffffff0f}.mobile-logo{font-size:1.3rem;font-weight:300;letter-spacing:-.2px;color:var(--text)}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:150;display:none}@media (max-width: 768px){.app-layout{flex-direction:column}.mobile-header{display:flex;align-items:center;gap:12px;padding:0 16px;height:52px;background:var(--bg-sidebar);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;flex-shrink:0}.sidebar-backdrop{display:block}}.page-header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem;padding-bottom:1.25rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}.page-header h1{font-weight:300;letter-spacing:-.5px;font-size:1.9rem;color:var(--text)}.page-header h2{font-weight:300;letter-spacing:-.3px;font-size:1.4rem;color:var(--text)}.page-header p{color:var(--text-secondary);font-weight:300;margin-top:.4rem}.toolbar{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.5rem}.toolbar input[type=text]{flex:1;min-width:220px;max-width:360px}.toolbar select{width:auto;max-width:none}.dataset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;margin-bottom:1rem}.dataset-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1.25rem;cursor:pointer;transition:border-color .2s ease,transform .2s ease}.dataset-card:hover{border-color:var(--border-hover);transform:translateY(-2px)}.dataset-card--static{cursor:default}.dataset-card--static:hover{transform:none}.dataset-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.9rem}.dataset-card-name{font-weight:600;font-size:1rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataset-card-meta{color:var(--text-muted);font-size:.78rem;margin-top:.4rem}.format-badge{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;font-size:.8rem;font-weight:700;color:#fff;flex-shrink:0;background:var(--primary)}.format-badge--edgelist{background:var(--primary)}.format-badge--adjacency{background:var(--green)}.format-badge--arrest{background:var(--amber)}.format-badge--analysis{background:var(--text-muted)}.icon-btn{background:transparent;border:none;padding:4px;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.icon-btn svg{width:15px;height:15px}.icon-btn:hover{background:#ffffff0f;color:var(--text)}.icon-btn.danger:hover{background:#ff5c5c1a;color:var(--red)}.empty-state{text-align:center;padding:3.5rem 2rem;border:1px dashed var(--border-hover);border-radius:10px;color:var(--text-secondary)}.empty-state-icon{width:42px;height:42px;margin:0 auto 1rem;color:var(--text-muted)}.empty-state h3{color:var(--text);font-weight:600;margin-bottom:.5rem}.empty-state p{margin-bottom:1.5rem}.card{background:var(--bg-card);border-radius:10px;padding:2rem;margin-bottom:2rem;border:1px solid var(--border);transition:background .3s ease,border-color .3s ease}.card h2{margin-bottom:1rem;color:var(--text);font-weight:300;letter-spacing:-.3px;font-size:1.6rem}.card h3{color:var(--text);font-weight:600;font-size:1.1rem;letter-spacing:-.1px}.card p{color:var(--text-secondary);line-height:1.7;font-weight:300}button{background:transparent;color:var(--text);border:1px solid var(--border-hover);padding:.7rem 1.4rem;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .3s ease;font-family:inherit}button:not(.secondary):not(.danger):not(.success):not(:disabled){background:var(--accent-gradient);border:none;color:#fff}button:not(.secondary):not(.danger):not(.success):hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 30px #2a72d04d}button:disabled{background:#ffffff08;border-color:var(--border);color:var(--text-muted);cursor:not-allowed;box-shadow:none;transform:none}button.secondary{background:transparent;border-color:var(--border-hover);color:var(--text-secondary)}button.secondary:hover{border-color:var(--text-secondary);color:var(--text)}button.danger{background:transparent;border-color:#ff5c5c66;color:var(--red)}button.danger:hover{border-color:var(--red);background:#ff5c5c14}button.success{background:transparent;border-color:#3ddc8466;color:var(--green)}button.success:hover{border-color:var(--green);background:#3ddc8414}input[type=file],input[type=email],input[type=password],input[type=number],input[type=text],input[type=range],select{padding:.75rem;border:1px solid var(--border-hover);background:#ffffff08;border-radius:8px;font-size:1rem;width:100%;max-width:400px;color:var(--text);font-family:inherit;transition:all .3s ease}input[type=file]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=text]:focus,select:focus{outline:none;border-color:var(--primary-light);box-shadow:0 0 0 3px #2a72d026}input[type=range]{accent-color:var(--primary-light);max-width:100%}select option{background:var(--bg-card);color:var(--text)}label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;font-size:.75rem;letter-spacing:.08em}.form-group{margin-bottom:1.5rem}.checkbox-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin:1rem 0}.checkbox-item{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#ffffff05;border:1px solid var(--border);border-radius:8px;transition:all .3s ease}.checkbox-item:hover{background:#ffffff0a;border-color:var(--border-hover)}.checkbox-item input[type=checkbox]{width:18px;height:18px;margin-top:.25rem;cursor:pointer;accent-color:var(--primary-light)}.checkbox-item label{margin:0;cursor:pointer;text-transform:none;font-size:1rem;color:var(--text);letter-spacing:normal}.loading{display:flex;justify-content:center;align-items:center;padding:2rem}.spinner{border:2px solid rgba(255,255,255,.08);border-top:2px solid var(--primary-light);border-radius:50%;width:36px;height:36px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.alert{padding:1rem 1.25rem;border-radius:8px;margin-bottom:1rem;border-left:3px solid;font-weight:300}.alert.error{background-color:#ff5c5c14;color:#ff8080;border-left-color:var(--red)}.alert.success{background-color:#3ddc8414;color:#6ee8a8;border-left-color:var(--green)}.alert.info{background-color:#2a72d014;color:var(--primary-light);border-left-color:var(--primary)}.grid{display:grid;gap:2rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1rem}.stat-box{background:#ffffff05;border:1px solid var(--border);padding:1.25rem 1rem;border-radius:10px;text-align:center;transition:all .3s ease}.stat-box:hover{background:#ffffff0a;border-color:var(--border-hover)}.stat-box .value{font-size:1.8rem;font-weight:600;color:var(--text)}.stat-box .label{font-size:.75rem;color:var(--text-muted);margin-top:.5rem;text-transform:uppercase;letter-spacing:.08em}
