:root{--font-stack: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg-canvas: oklch(.16 .005 280);--bg-app: oklch(.19 .006 280);--bg-surface: oklch(.22 .008 280 / .92);--bg-control: oklch(.26 .01 280);--bg-control-hover: oklch(.3 .012 280);--bg-active: oklch(.3 .05 285);--border-subtle: oklch(.32 .01 280);--border-strong: oklch(.38 .012 280);--text-primary: oklch(.92 .008 280);--text-secondary: oklch(.72 .015 280);--text-muted: oklch(.6 .015 280);--accent: oklch(.68 .16 285);--accent-strong: oklch(.74 .15 285);--radius-sm: 4px;--radius-md: 6px;--control-height: 2.75rem;font-family:var(--font-stack);background:var(--bg-app);color:var(--text-primary);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(120% 90% at 50% 0%,oklch(.21 .008 280) 0%,var(--bg-app) 55%),var(--bg-app)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.explorer-header{position:sticky;top:0;z-index:10;background:var(--bg-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-subtle)}.explorer-nav{display:flex;align-items:center;gap:1rem;padding:.4rem 1rem;min-height:var(--control-height)}.brand{font-weight:600;letter-spacing:.01em}.product{color:var(--text-secondary)}.legacy-link{margin-left:auto;color:var(--text-secondary);text-decoration:none}.legacy-link:hover{color:var(--accent-strong);text-decoration:underline}.logout-form{margin:0}.explorer-toolbar{position:sticky;top:2.6rem;z-index:9;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.4rem 1rem;background:var(--bg-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-subtle)}.toolbar-search{flex:1 1 16rem}.toolbar-search input{width:100%}input,button{padding:.4rem .7rem;min-height:2.2rem;background:var(--bg-control);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font:inherit;font-size:.875rem}button{cursor:pointer}button:hover:not(:disabled){background:var(--bg-control-hover);border-color:var(--border-strong)}button:disabled,input:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toolbar-modes,.toolbar-actions{display:flex;gap:.4rem}.toolbar-modes button[aria-pressed=true]{border-color:var(--accent);background:var(--bg-active);color:var(--accent-strong)}.explorer-body{flex:1;display:flex;min-height:0}.explorer-main{flex:1;display:flex;min-width:0}.graph-canvas{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-width:640px;background:radial-gradient(90% 90% at 50% 40%,oklch(.19 .008 280) 0%,var(--bg-canvas) 70%),repeating-linear-gradient(0deg,oklch(.9 0 0 / .02) 0 1px,transparent 1px 28px),repeating-linear-gradient(90deg,oklch(.9 0 0 / .02) 0 1px,transparent 1px 28px),var(--bg-canvas);border:1px solid var(--border-subtle);margin:.75rem;border-radius:var(--radius-md);overflow:hidden}.sigma-mount{position:absolute;inset:0}.canvas-placeholder{color:var(--text-muted);font-size:.9rem}.details-panel{width:360px;flex-shrink:0;padding:1rem 1.25rem;background:var(--bg-surface);border-left:1px solid var(--border-subtle);color:var(--text-secondary);font-size:.9rem}.details-panel h2{margin:0 0 .5rem;font-size:.95rem;font-weight:600;color:var(--text-primary);letter-spacing:.01em}.details-empty{color:var(--text-muted)}.explorer-statusbar{border-top:1px solid var(--border-subtle);background:var(--bg-surface);padding:.35rem 1rem}.status-region{margin:0;font-size:.8rem;color:var(--text-muted)}@media(max-width:959px){.graph-canvas{min-width:0}.details-panel{position:fixed;top:0;right:0;bottom:0;width:min(360px,90vw);z-index:20;box-shadow:-8px 0 24px #00000080;overflow-y:auto}input,button{min-height:var(--control-height)}}@media(max-width:599px){.explorer-nav{gap:.6rem}.legacy-link{display:none}.toolbar-modes{overflow-x:auto;max-width:100%}.explorer-statusbar{line-height:1.4}}@media(prefers-reduced-motion:reduce){*{animation:none;transition:none}}
