.app-shell{min-height:100vh;display:flex;flex-direction:column;gap:1.5rem;padding:2.5rem clamp(1rem,3vw,3rem) 2rem}.app-header{display:flex;flex-direction:column;gap:1.5rem}@media(min-width:960px){.app-header{flex-direction:row;justify-content:space-between;align-items:flex-end}}.brand-block h1{font-size:clamp(2.5rem,3vw,3.5rem);margin:.2rem 0}.lede{max-width:640px;color:var(--muted-foreground);margin:0}.workspace{display:grid;gap:2rem}@media(min-width:1024px){.workspace{grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:start;transition:grid-template-columns .4s cubic-bezier(.2,0,0,1)}.workspace.library-collapsed{grid-template-columns:48px minmax(0,1fr)}}.stories-panel{background:var(--panel);border-radius:1.75rem;padding:1.75rem;box-shadow:var(--panel-shadow);transition:padding .4s cubic-bezier(.2,0,0,1);overflow:hidden;display:flex;flex-direction:column}.stories-panel>div:not(.vertical-label),.stories-panel>ul,.stories-panel>button:not(.icon-only){min-width:220px}.stories-panel.collapsed{padding:1rem 0;align-items:center;display:flex;flex-direction:column}.vertical-label{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);white-space:nowrap;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--muted-foreground);cursor:pointer;margin:auto;line-height:1}.vertical-label:hover{color:var(--text)}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:42px}.visualization-panel{background:var(--panel);border-radius:1.75rem;padding:1.75rem;box-shadow:var(--panel-shadow)}h2{margin:.15rem 0 0}.ghost-button{border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text);border-radius:999px;padding:.5rem 1.2rem;font-weight:600;transition:border-color .2s ease,color .2s ease}.ghost-button:hover,.ghost-button:focus-visible{border-color:var(--accent);color:var(--accent)}.story-list{list-style:none;padding:0;margin:1.5rem 0 0;display:flex;flex-direction:column;gap:.65rem}.story-item{width:100%;border:1px solid transparent;text-align:left;background:#ffffff05;border-radius:1.25rem;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.35rem;color:inherit;transition:border-color .2s ease,transform .2s ease,background .2s ease}.story-item:hover,.story-item:focus-visible{border-color:#fff3;transform:translateY(-2px)}.story-item.selected{border-color:transparent;background:#9c6cff29;box-shadow:inset 0 0 0 1px #ffffff26}.story-item h3{margin:0;font-size:1.05rem}.story-item p{margin:0;color:var(--muted-foreground)}.story-meta{display:flex;justify-content:space-between;gap:.75rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground)}.visualization-panel{display:flex;flex-direction:column;gap:1.5rem;height:100%;min-height:0}.visualization-frame{border-radius:1.5rem;border:1px solid rgba(255,255,255,.1);background:radial-gradient(circle at 20% 20%,rgba(156,108,255,.25),transparent 65%),radial-gradient(circle at 80% 0%,rgba(71,208,255,.35),transparent 55%),#060811cc;padding:1rem;display:flex;flex-direction:column;height:100%;min-height:0}.viz-surface{border-radius:1.2rem;background:#00000059;flex-grow:1;min-height:0;padding:1.5rem;display:flex;align-items:stretch;justify-content:stretch;position:relative;overflow:hidden}.viz-hint{position:absolute;top:1rem;left:1rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.2em;color:#ffffffa6}.viz-chart{width:100%;flex:1;min-height:320px;max-height:65vh;aspect-ratio:4 / 3;height:auto;margin:0 auto}.viz-chart svg{width:100%;height:100%;display:block;filter:drop-shadow(0 35px 45px rgba(0,0,0,.55))}.dossier-overlay{position:absolute;top:1rem;right:1rem;bottom:1rem;max-width:min(380px,100%);pointer-events:none;display:flex;flex-direction:column}.dossier-panel{background:#0d0e1bf2;border-radius:1.25rem;border:1px solid rgba(255,255,255,.1);box-shadow:0 30px 60px #00000080;padding:1rem 1.25rem 1.25rem;pointer-events:auto;color:var(--text);min-width:320px;max-height:100%;overflow-y:auto}.dossier-panel::-webkit-scrollbar{width:6px}.dossier-panel::-webkit-scrollbar-track{background:transparent;margin:1rem 0}.dossier-panel::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:99px}.dossier-panel::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.dossier-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.dossier-header h3{margin:.2rem 0}.close-button{border:1px solid rgba(255,255,255,.2);background:#ffffff0f;color:var(--text);border-radius:50%;width:32px;height:32px;font-size:1.1rem;cursor:pointer}.close-button:hover,.close-button:focus-visible{border-color:var(--accent);color:var(--accent)}.dossier-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem;margin-top:.5rem}.dossier-chart{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:1rem;padding:.75rem}.chart-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem}.chart-header h4{margin:0}.chart-scale{margin:0;color:var(--muted-foreground);font-size:.85rem}.chart-grid line{stroke:#ffffff14}.chart-grid text{fill:#ffffffa6;font-size:.75rem}.dossier-justifications{margin-top:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:1rem;padding:.75rem .9rem}.dossier-justifications ul{margin:.35rem 0 0;padding-left:1rem;color:var(--muted-foreground);display:flex;flex-direction:column;gap:.25rem}.viz-placeholder{min-height:460px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:1.1rem;color:#fffc;padding:2rem}.graph-node text{font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.graph-link{stroke-linecap:round}.story-details{display:flex;flex-direction:column;gap:.75rem}.story-details header h2{margin:.15rem 0 0}.story-details .authors{color:var(--muted-foreground);margin:0}.story-description{margin:0;font-size:1rem;color:var(--text)}.story-description.error{color:#ffc0c0}.data-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin:0}.data-points div{background:#ffffff0a;border-radius:1rem;padding:1rem;border:1px solid rgba(255,255,255,.08)}.data-points dt{margin:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted-foreground)}.data-points dd{margin:.4rem 0 0;font-size:.95rem}.data-points ul{margin:0;padding-left:1.25rem;color:var(--muted-foreground)}.graph-data-panel{margin-top:.5rem;background:#ffffff0a;border-radius:1.25rem;padding:1.2rem;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.75rem}.panel-header.compact{align-items:flex-start;gap:.35rem}.panel-header.compact h3{margin:.15rem 0 0}.loading-pill{align-self:flex-start;background:#ffffff1f;border-radius:999px;padding:.15rem .75rem;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:#ffffffd9}.graph-json{margin:0;padding:1rem;background:#0d0e1bd9;border-radius:1rem;border:1px solid rgba(255,255,255,.08);font-family:IBM Plex Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem;color:#ffffffe6;overflow:auto;max-height:240px}.graph-json::-webkit-scrollbar{width:6px;height:6px}.graph-json::-webkit-scrollbar-track{background:transparent;margin:.5rem}.graph-json::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:99px}.graph-json::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.graph-json::-webkit-scrollbar-corner{background:transparent}.graph-placeholder{margin:0;color:var(--muted-foreground)}.scene-controls{display:flex;justify-content:space-between;gap:1rem;align-items:center;background:#ffffff0a;border-radius:1rem;padding:.75rem 1rem;border:1px solid rgba(255,255,255,.08)}.scene-buttons{display:flex;gap:.5rem}.scene-buttons button{border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:var(--text);border-radius:999px;padding:.45rem .9rem;font-weight:600}.scene-label{margin:.1rem 0 0;color:#ffffffd9;font-weight:600}.narrative-panel{margin-top:.5rem;background:#ffffff0a;border-radius:1.25rem;padding:1.2rem;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.75rem}.narrative-list{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.55rem}.narrative-list h4{margin:0}.narrative-list p{margin:.15rem 0 0;color:var(--muted-foreground)}.app-footer{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:var(--muted-foreground)}.app-footer a{color:var(--accent)}
