@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg-primary:#161616;--bg-secondary:#262626;--bg-tertiary:#393939;--bg-hover:#353535;--bg-card:#1e1e1e;--text-primary:#f4f4f4;--text-secondary:#c6c6c6;--text-muted:#8d8d8d;--text-inverse:#161616;--border:#393939;--accent:#4589ff;--accent-hover:#6ea6ff;--success:#42be65;--warning:#f1c21b;--danger:#da1e28;--info:#4589ff;--tag-space:#a56eff;--tag-climate:#42be65;--tag-good:#4589ff;--tag-product:#0072c3;--tag-strategy:#ee538b;--tag-infra:#f1c21b;--tag-other:#8d8d8d;--shadow:0 2px 6px #0000004d;--radius:4px;--radius-lg:8px;--font-sans:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", "SF Mono", monospace;--transition:.15s cubic-bezier(.2, 0, .38, .9)}[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f4f4f4;--bg-tertiary:#e0e0e0;--bg-hover:#e8e8e8;--bg-card:#fff;--text-primary:#161616;--text-secondary:#525252;--text-muted:#8d8d8d;--text-inverse:#f4f4f4;--border:#e0e0e0;--shadow:0 2px 6px #0000001a}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);transition:background var(--transition), color var(--transition);line-height:1.5}.app{min-height:100vh;display:flex}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);z-index:100;width:256px;height:100vh;transition:transform var(--transition);flex-direction:column;display:flex;position:fixed;top:0;left:0}.sidebar-header{border-bottom:1px solid var(--border);padding:20px 16px}.sidebar-header h1{color:var(--accent);align-items:center;gap:8px;font-size:1.25rem;font-weight:600;display:flex}.sidebar-header p{color:var(--text-muted);margin-top:4px;font-size:.75rem}.sidebar-nav{flex:1;padding:8px 0;overflow-y:auto}.sidebar-nav a{color:var(--text-secondary);transition:all var(--transition);border-left:3px solid #0000;align-items:center;gap:12px;padding:10px 16px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.sidebar-nav a:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-nav a.active{background:var(--bg-hover);color:var(--accent);border-left-color:var(--accent)}.sidebar-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.main-content{flex:1;min-height:100vh;margin-left:256px;padding:24px}.mobile-nav-toggle{z-index:200;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;padding:8px 12px;font-size:1.25rem;display:none;position:fixed;top:12px;left:12px}.sidebar-overlay{z-index:99;background:#00000080;display:none;position:fixed;inset:0}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:all var(--transition);padding:16px}.card:hover{box-shadow:var(--shadow)}.card-title{margin-bottom:4px;font-size:1rem;font-weight:600}.card-subtitle{color:var(--text-secondary);font-size:.875rem}.badge{white-space:nowrap;border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.badge-remote{color:var(--success);background:#42be6526}.badge-nashville{color:var(--accent);background:#4589ff26}.badge-relocation{color:var(--warning);background:#f1c21b26}.badge-unknown{color:var(--text-muted);background:#8d8d8d26}.badge-domain{border-radius:12px;padding:2px 8px;font-size:.6875rem;font-weight:500}.domain-space{color:var(--tag-space);background:#a56eff26}.domain-climate{color:var(--tag-climate);background:#42be6526}.domain-good{color:var(--tag-good);background:#4589ff26}.domain-product{color:var(--tag-product);background:#0072c326}.domain-strategy{color:var(--tag-strategy);background:#ee538b26}.domain-infra{color:var(--tag-infra);background:#f1c21b26}.domain-other{color:var(--tag-other);background:#8d8d8d26}.badge-source{background:var(--bg-tertiary);color:var(--text-muted);border-radius:4px;padding:1px 6px;font-size:.625rem}.btn{border-radius:var(--radius);font-size:.875rem;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:8px 16px;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.85}.btn-ghost{color:var(--text-secondary);background:0 0;padding:6px 10px}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-sm{padding:4px 10px;font-size:.75rem}.btn-icon{min-width:32px;min-height:32px;padding:6px}.btn:disabled{opacity:.5;cursor:not-allowed}.input,.select{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-size:.875rem;font-family:var(--font-sans);transition:border-color var(--transition);padding:8px 12px}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}.input-group{gap:8px;display:flex}.toggle{background:var(--bg-tertiary);cursor:pointer;width:40px;height:20px;transition:background var(--transition);border:none;border-radius:10px;flex-shrink:0;position:relative}.toggle.active{background:var(--accent)}.toggle:after{content:"";width:16px;height:16px;transition:transform var(--transition);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.toggle.active:after{transform:translate(20px)}.fit-score{color:var(--text-muted);align-items:center;gap:8px;font-size:.75rem;display:flex}.fit-bar{background:var(--bg-tertiary);border-radius:2px;flex:1;max-width:80px;height:4px;overflow:hidden}.fit-bar-fill{height:100%;transition:width var(--transition);border-radius:2px}.fit-high{background:var(--success)}.fit-mid{background:var(--warning)}.fit-low{background:var(--danger)}.page-header{margin-bottom:24px}.page-header h2{font-size:1.5rem;font-weight:600}.page-header p{color:var(--text-muted);margin-top:4px;font-size:.875rem}.kanban{-webkit-overflow-scrolling:touch;gap:12px;padding-bottom:16px;display:flex;overflow-x:auto}.kanban-column{background:var(--bg-secondary);border-radius:var(--radius-lg);flex:1;min-width:260px;max-width:300px;padding:12px}.kanban-column-header{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);justify-content:space-between;align-items:center;padding:4px 8px 12px;font-size:.8125rem;font-weight:600;display:flex}.kanban-column-count{background:var(--bg-tertiary);border-radius:10px;padding:0 8px;font-size:.75rem}.kanban-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:grab;transition:all var(--transition);margin-bottom:8px;padding:12px}.kanban-card:hover{border-color:var(--accent)}.table-container{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px;font-size:.875rem}.table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-secondary);font-size:.75rem;font-weight:600;position:sticky;top:0}.table tr:hover td{background:var(--bg-hover)}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:90vh;padding:24px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h3{font-size:1.125rem;font-weight:600}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--transition);padding:32px}.upload-zone:hover{border-color:var(--accent);background:#4589ff0d}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{color:var(--text-muted);justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:48px 24px}.empty-state h3{color:var(--text-secondary);margin-bottom:8px;font-size:1.125rem}.empty-state p{font-size:.875rem}.grid{gap:12px;display:grid}.grid-2{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.slider{-webkit-appearance:none;background:var(--bg-tertiary);border-radius:2px;outline:none;width:100%;height:4px}.slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:16px;height:16px}.section{margin-bottom:24px}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;font-size:.875rem;font-weight:600}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}@media (width<=768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay.open,.mobile-nav-toggle{display:block}.main-content{margin-left:0;padding:56px 16px 16px}.kanban{flex-direction:column}.kanban-column{min-width:100%;max-width:100%}.grid-2{grid-template-columns:1fr}.page-header h2{font-size:1.25rem}.modal{max-width:100%;margin:16px}}@media (width<=375px){.main-content{padding:52px 12px 12px}.card{padding:12px}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
