:root{--surface-0: #0a0e17;--surface-1: #0f172a;--surface-2: #1e293b;--surface-3: #334155;--text-0: #64748b;--text-1: #94a3b8;--text-2: #e2e8f0;--text-3: #f9fafb;--border-default: #1f2937;--border-strong: #334155;--accent: #3b82f6;--accent-hover: #1d4ed8;--success: #22c55e;--danger: #ef4444;--warning: #f59e0b;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--radius-sm: 4px;--radius-md: 8px;--radius-full: 9999px}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--surface-0);color:var(--text-2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;overflow:hidden;height:100vh}#header{position:fixed;top:0;left:0;right:0;height:44px;background:var(--surface-1);border-bottom:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);z-index:100}#header h1{font-size:15px;font-weight:600;color:var(--text-3);display:flex;align-items:center;gap:var(--space-2)}.badge{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--danger);display:inline-flex;align-items:center;justify-content:center}.badge-bar{width:12px;height:2.5px;background:var(--accent);border-radius:1px}#header-stats{display:flex;gap:14px;font-size:11px;color:var(--text-1)}.hstat-val{color:var(--text-3);font-weight:600}#map{position:fixed;inset:44px 0 32px;overflow:hidden;cursor:grab}#map.grabbing{cursor:grabbing}#viewport{position:absolute;transform-origin:0 0;will-change:transform}.lane{position:relative;height:100px;margin:0;display:flex;align-items:center;transition:height .3s ease}.lane.expanded{height:auto;min-height:100px}.lane-track{position:absolute;left:200px;right:20px;height:6px;border-radius:3px;top:47px;opacity:.7}.lane-head{width:190px;flex-shrink:0;padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);cursor:pointer;position:relative;z-index:2}.lane-head:hover .lh-name{text-decoration:underline}.lh-badge{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.lh-badge-bar{width:18px;height:4px;border-radius:2px}.lh-top{display:flex;align-items:center;gap:var(--space-2)}.lh-name{font-size:14px;font-weight:600;color:var(--text-3)}.lh-count{font-size:11px;color:var(--text-1)}.lh-health-row{display:flex;gap:3px;margin-left:40px}.lh-health-pip{width:5px;height:5px;border-radius:50%}.nodes{display:flex;align-items:center;gap:0;padding-left:200px;position:relative;height:100px;overflow:visible}.lane.expanded .nodes{flex-wrap:wrap;height:auto;min-height:100px;padding-top:10px;padding-bottom:10px;gap:var(--space-1)}.node{position:relative;display:flex;flex-direction:column;align-items:center;width:80px;flex-shrink:0;cursor:pointer;z-index:2}.lane.expanded .node{width:70px}.node-dot-wrap{position:relative}.node-ring{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}.node-dot{width:12px;height:12px;border-radius:50%}.node:hover .node-dot{transform:scale(1.3)}.node.project .node-ring{width:22px;height:22px}.node.project .node-dot{width:16px;height:16px}.node.junction .node-ring{width:26px;height:26px;background:#fff!important;border:2.5px solid #475569}.node.junction .node-dot{width:0;height:0;display:none}.junction-ticks{position:absolute;top:-2px;left:-2px;width:30px;height:30px;pointer-events:none}.junction-tick{position:absolute;width:4px;height:10px;border-radius:2px;left:50%;top:0;transform-origin:2px 15px;margin-left:-2px}.node.junction .node-label{font-weight:600;color:var(--text-3)}.lh-ix-badges{display:flex;gap:3px;margin-left:40px;margin-top:2px}.lh-ix-dot{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--surface-0)}.node-label{font-size:9px;color:var(--text-2);text-align:center;max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;line-height:1.2}.node:hover .node-label{white-space:normal;overflow:visible;background:var(--surface-2);border-radius:3px;padding:1px 3px;position:relative;z-index:10}.cluster-pill{display:flex;align-items:center;gap:6px;padding:var(--space-1) var(--space-3);border-radius:16px;background:var(--surface-2);border:1px solid var(--border-strong);cursor:pointer;font-size:11px;color:var(--text-1);margin-left:var(--space-2);flex-shrink:0;z-index:2;transition:all .2s}.cluster-pill:hover{background:var(--surface-3);color:var(--text-2)}.cluster-pill.warn{border-color:#f59e0b55;box-shadow:0 0 8px #f59e0b22}.cluster-pill.danger{border-color:#ef444455;box-shadow:0 0 8px #ef444422}#cross-edges{position:absolute;top:0;left:0;pointer-events:none;z-index:1}#tooltip{position:fixed;display:none;background:var(--surface-2);border:1px solid #475569;border-radius:var(--radius-md);padding:var(--space-3);max-width:340px;z-index:500;font-size:12px;box-shadow:0 8px 24px #0009;pointer-events:none}.tt-badge{display:inline-block;padding:1px var(--space-2);border-radius:3px;font-size:10px;font-weight:600;color:#fff;margin-bottom:var(--space-1)}.tt-title{font-weight:600;font-size:14px;color:var(--text-3);margin-bottom:2px}.tt-sub{color:var(--text-1);font-size:11px;margin-bottom:6px}.tt-desc{color:var(--text-2);line-height:1.4;margin-bottom:6px}.tt-row{display:flex;gap:6px;flex-wrap:wrap}.tt-tag{padding:2px 6px;border-radius:3px;font-size:10px;background:var(--surface-3);color:var(--text-2)}#status-bar{position:fixed;bottom:0;left:0;right:0;height:32px;background:var(--surface-1);border-top:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);font-size:11px;color:var(--text-0);z-index:100}#health-bar{display:flex;gap:10px}.hb-pill{display:flex;align-items:center;gap:3px;padding:1px 6px;border-radius:var(--radius-md);background:var(--surface-2)}.hb-dot{width:5px;height:5px;border-radius:50%;display:inline-block}#entropy-bar{display:flex;gap:var(--space-3)}.entropy-warn{color:#fbbf24}.entropy-ok{color:var(--text-0)}#discover-toggle{position:fixed;top:52px;right:12px;z-index:200;padding:6px 14px;border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-1);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}#discover-toggle:hover{background:var(--surface-3);color:var(--text-2)}#discover-toggle .dt-badge{background:var(--warning);color:var(--surface-0);font-weight:700;padding:0 6px;border-radius:10px;font-size:10px;min-width:18px;text-align:center}#discover-toggle.active{background:#1e3a5f;border-color:var(--accent);color:#93c5fd}#discover-panel{position:fixed;top:44px;right:0;bottom:32px;width:380px;background:var(--surface-1);border-left:1px solid var(--border-default);z-index:150;overflow-y:auto;transform:translate(100%);transition:transform .25s ease}#discover-panel.open{transform:translate(0)}.dp-header{padding:14px var(--space-4);border-bottom:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--surface-1);z-index:10}.dp-title{font-size:14px;font-weight:600;color:var(--text-3)}.dp-close{width:28px;height:28px;border-radius:6px;background:none;border:1px solid var(--border-strong);color:var(--text-0);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.dp-close:hover{background:var(--surface-2);color:var(--text-2)}.dp-section{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-default)}.dp-section-title{font-size:11px;font-weight:600;color:var(--text-0);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.dp-stats{display:flex;gap:var(--space-3);flex-wrap:wrap;font-size:12px;color:var(--text-1)}.dp-stat-val{color:var(--text-3);font-weight:600}.dp-card{margin:var(--space-2) var(--space-4);padding:var(--space-3);background:var(--surface-2);border-radius:var(--radius-md);border:1px solid var(--border-strong);transition:border-color .2s}.dp-card:hover{border-color:#475569}.dp-card.approved{border-color:#22c55e44;background:#22c55e08;opacity:.6}.dp-card.rejected{display:none}.dp-bridge-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.dp-line-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dp-bridge-arrow{color:#475569;font-size:12px}.dp-bridge-count{font-size:11px;color:var(--text-0);margin-left:auto}.dp-bridge-strength{font-size:10px;padding:1px 6px;border-radius:var(--radius-md);background:var(--surface-3);color:#fbbf24}.dp-example{font-size:11px;color:var(--text-1);padding:var(--space-1) 0;line-height:1.4}.dp-example-concept{color:var(--text-2);font-weight:500}.dp-example-domain{color:var(--text-0);font-size:10px}.dp-actions{display:flex;gap:6px;margin-top:var(--space-2)}.dp-btn{flex:1;padding:5px 10px;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-1);font-size:11px;cursor:pointer;text-align:center;transition:all .15s}.dp-btn:hover{background:var(--surface-3);color:var(--text-2)}.dp-btn-approve{border-color:#22c55e44}.dp-btn-approve:hover{background:#22c55e22;color:var(--success);border-color:var(--success)}.dp-btn-reject{border-color:#ef444444}.dp-btn-reject:hover{background:#ef444422;color:var(--danger);border-color:var(--danger)}.dp-btn-disabled{opacity:.4;pointer-events:none}.dp-empty,.dp-loading{padding:var(--space-5) var(--space-4);text-align:center;color:var(--text-0);font-size:12px}#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--surface-0);z-index:600;flex-direction:column;gap:10px}.spinner{width:28px;height:28px;border:3px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.load-text{color:var(--text-0);font-size:12px}@keyframes breathe{0%,to{opacity:1}50%{opacity:.7}}.node.pulse-high .node-ring{animation:breathe 2s ease-in-out infinite;box-shadow:0 0 8px currentColor}.node.pulse-low{opacity:.4;filter:saturate(.3)}.node.pulse-ghost{opacity:.15;filter:saturate(0)}.lane-track.pulse-high{animation:breathe 3s ease-in-out infinite;height:8px!important}.lane-track.pulse-low{opacity:.4}.detail-panel{position:fixed;top:44px;left:0;bottom:32px;width:380px;background:var(--surface-1);border-right:1px solid var(--border-default);z-index:150;overflow-y:auto;transform:translate(-100%);transition:transform .25s ease}.detail-panel.open{transform:translate(0)}.detail-content{padding:0}.dp-logbook{margin-top:var(--space-4);border-top:1px solid var(--surface-2);padding-top:var(--space-3)}.dp-logbook h4{color:var(--text-1);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-2)}.dp-task{background:var(--surface-1);border:1px solid var(--surface-2);border-radius:6px;padding:10px;margin-bottom:var(--space-2)}.dp-task-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.dp-task-issue{font-family:monospace;color:var(--text-2);font-size:13px}.dp-task-state{font-size:11px;padding:2px var(--space-2);border-radius:var(--radius-full);font-weight:500}.dp-task-awaiting-approval .dp-task-state{background:#78350f;color:#fbbf24}.dp-task-queued-for-execution .dp-task-state{background:#064e3b;color:#34d399}.dp-task-executing .dp-task-state{background:#1e3a5f;color:#60a5fa;animation:breathe 2s ease-in-out infinite}.dp-task-done .dp-task-state{background:#064e3b;color:#6ee7b7}.dp-task-failed .dp-task-state{background:#7f1d1d;color:#fca5a5}.dp-task-rejected .dp-task-state{background:#1c1917;color:#78716c}.dp-task-plan{margin-top:6px}.dp-task-plan summary{color:var(--text-1);font-size:12px;cursor:pointer}.dp-task-plan pre{background:var(--surface-0);padding:var(--space-2);border-radius:var(--radius-sm);font-size:11px;color:var(--text-2);white-space:pre-wrap;max-height:300px;overflow-y:auto;margin:6px 0 0}.dp-task-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.dp-logbook .dp-btn{border:none;padding:6px 14px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;cursor:pointer;flex:initial}.dp-logbook .dp-btn-approve{background:#059669;color:#fff;border-color:transparent}.dp-logbook .dp-btn-approve:hover{background:#047857}.dp-logbook .dp-btn-reject{background:#374151;color:var(--text-2);border-color:transparent}.dp-logbook .dp-btn-reject:hover{background:#4b5563}.dp-task-commits{margin-top:6px}.dp-task-commits code{background:var(--surface-2);padding:2px 6px;border-radius:3px;font-size:11px;color:#34d399;margin-right:var(--space-1)}.dp-task-error{margin-top:6px;color:#fca5a5;font-size:12px;background:#1c0a0a;padding:6px;border-radius:var(--radius-sm)}.node-pending-approval{animation:pending-pulse 1.5s ease-in-out infinite}@keyframes pending-pulse{0%,to{filter:drop-shadow(0 0 3px #f59e0b)}50%{filter:drop-shadow(0 0 8px #f59e0b)}}.badge-amber{background:#78350f;color:#fbbf24;padding:2px 7px;border-radius:var(--radius-full);font-size:11px;font-weight:600;margin-left:var(--space-2)}#map{transition:opacity .2s ease}#header.hidden,#status-bar.hidden{display:none}micro-view{display:none}micro-view.visible{display:grid}.lens-markdown{color:var(--text-2);line-height:1.6;font-size:14px}.lens-markdown h1,.lens-markdown h2,.lens-markdown h3{color:var(--text-3);margin:var(--space-4) 0 var(--space-2)}.lens-markdown pre{background:var(--surface-0);padding:var(--space-3);border-radius:var(--radius-sm);overflow-x:auto}.lens-markdown code{color:#93c5fd;font-size:12px}.lens-stub{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#475569;text-align:center}.stub-icon{font-size:48px;margin-bottom:var(--space-3)}.stub-title{font-size:16px;color:var(--text-1);font-weight:600}.stub-subtitle{font-size:12px;margin-top:var(--space-1)}.stub-raw{margin-top:var(--space-4);text-align:left;max-width:80%}.stub-raw pre{background:var(--surface-0);padding:var(--space-2);border-radius:var(--radius-sm);font-size:11px;color:var(--text-0);overflow:auto;max-height:200px}.node-stripe-pattern{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.node.status-good .node-ring{box-shadow:0 0 0 2px var(--success)}.node.status-good .node-dot{background:var(--success)!important}.node.status-minor-delays .node-ring{box-shadow:0 0 0 2px var(--warning);animation:status-glow-amber 3s ease-in-out infinite}.node.status-minor-delays .node-dot{background:var(--warning)!important}@keyframes status-glow-amber{0%,to{box-shadow:0 0 0 2px var(--warning)}50%{box-shadow:0 0 8px 3px #f59e0b88}}.node.status-severe .node-ring{width:22px!important;height:22px!important;box-shadow:0 0 0 3px var(--danger);animation:status-pulse-red 1s ease-in-out infinite}.node.status-severe .node-dot{background:var(--danger)!important}@keyframes status-pulse-red{0%,to{box-shadow:0 0 0 3px var(--danger)}50%{box-shadow:0 0 12px 4px #ef444488}}.node.status-part-suspended .node-ring{box-shadow:0 0 0 2px #fb923c;border:2px dashed #fb923c!important;background:linear-gradient(180deg,#fb923c 50%,transparent 50%)!important}.node.status-part-suspended .node-dot{background:transparent!important}.node.status-suspended .node-ring{box-shadow:0 0 0 2px var(--danger);background:transparent!important;border:2.5px solid var(--danger)!important}.node.status-suspended .node-dot{background:transparent!important}.node.status-planned-closure .node-ring{box-shadow:0 0 0 2px #475569;background:repeating-linear-gradient(45deg,#475569,#475569 2px,#1e293b 2px 4px)!important}.node.status-planned-closure .node-dot{background:transparent!important}.node.status-special .node-ring{box-shadow:0 0 0 2px #a855f7;border-radius:var(--radius-sm)!important;animation:status-shimmer 4s ease-in-out infinite}.node.status-special .node-dot{background:#a855f7!important;border-radius:3px!important}@keyframes status-shimmer{0%,to{box-shadow:0 0 0 2px #a855f7}50%{box-shadow:0 0 6px 2px #a855f788}}.node.status-unknown .node-ring{box-shadow:0 0 0 2px #374151;border:2px solid #fbbf24!important;animation:status-flicker-unknown 1.2s step-start infinite;position:relative}.node.status-unknown .node-dot{background:#374151!important}.node.status-unknown .node-question{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fbbf24;font-size:10px;font-weight:700;line-height:1;pointer-events:none;z-index:3}@keyframes status-flicker-unknown{0%{border-color:#fbbf24}50%{border-color:#ef4444}}.node[class*=status-]:not(.status-good).pulse-high .node-ring{animation:unset}.node.status-stale .node-ring{filter:saturate(.3) brightness(.7)}#status-legend{position:fixed;bottom:40px;right:12px;z-index:200;background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:11px;color:var(--text-1);max-height:32px;overflow:hidden;transition:max-height .25s ease;cursor:pointer}#status-legend.open{max-height:320px;cursor:default}.legend-header{padding:6px var(--space-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);cursor:pointer}.legend-header span{color:var(--text-3);font-weight:600;font-size:11px}.legend-toggle{color:var(--text-0);font-size:10px}.legend-body{padding:var(--space-1) var(--space-3) 10px;display:flex;flex-direction:column;gap:5px}.legend-item{display:flex;align-items:center;gap:var(--space-2)}.legend-swatch{width:14px;height:14px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700}.legend-swatch.sw-good{background:var(--success)}.legend-swatch.sw-minor-delays{background:var(--warning)}.legend-swatch.sw-severe{background:var(--danger);width:16px;height:16px}.legend-swatch.sw-part-suspended{background:linear-gradient(180deg,#fb923c 50%,transparent 50%);border:1.5px dashed #fb923c}.legend-swatch.sw-suspended{background:transparent;border:2px solid var(--danger)}.legend-swatch.sw-planned-closure{background:repeating-linear-gradient(45deg,#475569,#475569 2px,#1e293b 2px 4px)}.legend-swatch.sw-special{background:#a855f7;border-radius:3px}.legend-swatch.sw-unknown{background:#374151;border:1.5px solid #fbbf24;color:#fbbf24}.legend-label{color:var(--text-2)}#freshness-indicator{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-0)}#freshness-indicator .fi-dot{width:6px;height:6px;border-radius:50%}#freshness-indicator .fi-good{background:var(--success)}#freshness-indicator .fi-warn{background:var(--warning)}#freshness-indicator .fi-bad{background:var(--danger)}.tt-status-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:3px;font-size:10px;font-weight:600;color:#fff;margin-bottom:var(--space-1)}.tt-status-badge.tsb-good{background:#166534}.tt-status-badge.tsb-minor-delays{background:#92400e}.tt-status-badge.tsb-severe{background:#991b1b}.tt-status-badge.tsb-part-suspended{background:#9a3412}.tt-status-badge.tsb-suspended{background:#7f1d1d}.tt-status-badge.tsb-planned-closure{background:#334155}.tt-status-badge.tsb-special{background:#6b21a8}.tt-status-badge.tsb-unknown{background:#374151;border:1px solid #fbbf24;color:#fbbf24}.tt-freshness{color:var(--text-0);font-size:10px;margin-left:var(--space-1)}#refresh-btn{background:none;border:1px solid rgba(255,255,255,.3);color:var(--text-2);font-size:1.2rem;cursor:pointer;padding:var(--space-1) 10px;border-radius:var(--radius-sm);transition:transform .3s ease,border-color .2s;line-height:1}#refresh-btn:hover{border-color:#fff9}#refresh-btn.spinning{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#backup-banner{position:fixed;top:44px;left:0;right:0;display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--warning);color:var(--bg);font-size:.85rem;font-weight:500;z-index:99}#backup-banner button{background:var(--bg);color:var(--warning);border:none;padding:.25rem .75rem;border-radius:4px;cursor:pointer;font-weight:600}#backup-banner #backup-dismiss{background:none;color:var(--bg);padding:.25rem;font-size:1.1rem;margin-left:auto}dialog{background:var(--surface-1);color:var(--text-1);border:1px solid var(--surface-2);border-radius:8px;padding:1.5rem;max-width:420px}dialog::backdrop{background:#0009}dialog h3{margin:0 0 .75rem;color:var(--text-3)}dialog p{font-size:.9rem;color:var(--text-2);margin:0 0 1rem}.seed-words{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;padding:1rem;background:var(--bg);border-radius:4px;margin:0 0 1rem;list-style-position:inside;font-family:monospace;font-size:.9rem}dialog label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;margin:0 0 1rem}dialog button{background:var(--accent);color:var(--bg);border:none;padding:.5rem 1.5rem;border-radius:4px;cursor:pointer;font-weight:600}dialog button:disabled{opacity:.5;cursor:not-allowed}.backup-pw-input{width:100%;padding:.5rem;margin-bottom:.5rem;border:1px solid var(--surface-2);border-radius:4px;background:var(--bg);color:var(--text-1);font-size:.9rem}.password-mismatch{color:var(--danger);font-size:.8rem;min-height:1.2em}.backup-status{margin-top:.5rem;font-size:.85rem}.cancel-btn{background:var(--surface-2)!important;color:var(--text-2)!important}.recover-input{width:100%;padding:.5rem;margin-bottom:.5rem;border:1px solid var(--surface-2);border-radius:4px;background:var(--bg);color:var(--text-1);font-size:.9rem;font-family:monospace}
