:root{--paper:#edefea;--paper-raised:#f7f8f4;--ink:#24312b;--ink-soft:#5c6a62;--rule:#c9cec4;--c-person:#3566a8;--c-belief:#c05286;--c-action:#d07c2e;--c-quote:#a89a2e;--c-concept:#7a5fa8;--c-context:#47876f;--c-interview:#6e7678;--c-org:#8b8e86;--highlight-quote:hsla(55,67%,64%,.35);--font-serif:"Spectral";--font-mono:"IBM Plex Mono"}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--paper);color:var(--ink);font-family:var(--font-serif),Georgia,serif;font-size:16px}.app{display:flex;flex-direction:column;height:100vh}.header{display:flex;align-items:baseline;gap:1rem;padding:.85rem 1.25rem .75rem;border-bottom:1px solid var(--rule);background:var(--paper-raised)}.header h1{font-size:1.15rem;font-weight:600;letter-spacing:.01em;margin:0}.header .subtitle{font-size:.8rem;color:var(--ink-soft);font-style:italic}.header .spacer{flex:1 1}.demo-badge{font-size:.68rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;padding:.2rem .45rem;border:1px solid var(--c-action);border-radius:3px;color:var(--c-action);white-space:nowrap;cursor:help}.demo-badge,.header select{font-family:var(--font-mono),monospace}.header select{font-size:.78rem;padding:.35rem .5rem;border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink)}.header select:focus-visible{outline:2px solid var(--c-person);outline-offset:1px}.main{display:flex;flex:1 1;min-height:0}.canvas-wrap{position:relative;flex:1 1;min-width:0}.legend{position:absolute;left:.9rem;bottom:.9rem;display:flex;flex-wrap:wrap;gap:.35rem .7rem;max-width:60%;font-family:var(--font-mono),monospace;font-size:.68rem;color:var(--ink-soft);z-index:2}.legend .chip{display:inline-flex;align-items:center;gap:.3rem}.legend .dot{width:9px;height:9px;border-radius:50%;display:inline-block}.status{position:absolute;top:.9rem;left:.9rem;font-family:var(--font-mono),monospace;font-size:.72rem;color:var(--ink-soft);z-index:2}.inspector{width:380px;flex-shrink:0;border-left:1px solid var(--rule);background:var(--paper-raised);overflow-y:auto;padding:1.1rem 1.2rem 2rem}.inspector .placeholder{color:var(--ink-soft);font-style:italic;font-size:.9rem;line-height:1.55}.inspector .node-kind{font-family:var(--font-mono),monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;display:inline-block;padding:.15rem .45rem;border-radius:2px;color:#fff;margin-bottom:.5rem}.inspector h2{font-size:1.05rem;font-weight:600;margin:0 0 .9rem;line-height:1.4}.props{border-top:1px solid var(--rule);margin-bottom:1.2rem}.props .row{display:grid;grid-template-columns:42% 58%;grid-gap:.5rem;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--rule);font-size:.8rem;line-height:1.45}.props .key{font-size:.7rem;color:var(--ink-soft);padding-top:.1rem;word-break:break-word}.props .key,.quote-text{font-family:var(--font-mono),monospace}.quote-text{font-size:.8rem;line-height:1.6;background:var(--highlight-quote);padding:.6rem .7rem;border-radius:2px;margin-bottom:1.2rem}.section-label{font-family:var(--font-mono),monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin:1.1rem 0 .5rem}.edge-list{list-style:none;margin:0;padding:0}.edge-list li{padding:.45rem 0;border-bottom:1px solid var(--rule);font-size:.82rem;line-height:1.45}.edge-list button{all:unset;cursor:pointer;display:block;width:100%}.edge-list button:focus-visible{outline:2px solid var(--c-person);outline-offset:2px}.edge-type{font-family:var(--font-mono),monospace;font-size:.66rem;color:var(--ink-soft);letter-spacing:.06em}.edge-target{display:flex;align-items:baseline;gap:.4rem}.edge-target .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transform:translateY(1px)}.basis-tag{font-family:var(--font-mono),monospace;font-size:.62rem;border:1px solid var(--rule);border-radius:2px;padding:.05rem .3rem;margin-left:.4rem;color:var(--ink-soft)}@media (max-width:800px){.main{flex-direction:column}.inspector{width:100%;border-left:none;border-top:1px solid var(--rule);max-height:45vh}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.entry-body{flex:1 1;overflow-y:auto;padding:1.25rem 1.5rem 2.5rem}.entry-body .placeholder{color:var(--ink-soft);font-style:italic}.entry-participant-picker{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono),monospace;font-size:.8rem}.entry-participant-picker label{color:var(--ink-soft)}.entry-participant-picker input{font-family:var(--font-mono),monospace;font-size:.8rem;padding:.35rem .5rem;border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink);width:11rem}.entry-columns{display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap;margin-bottom:1.5rem}.entry-panel{background:var(--paper-raised);border:1px solid var(--rule);border-radius:4px;padding:1rem 1.1rem;flex:1 1 340px;min-width:320px}.entry-type-buttons{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem}.entry-form>button,.entry-participant-picker button,.entry-type-buttons button{font-family:var(--font-mono),monospace;font-size:.72rem;padding:.35rem .6rem;border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink);cursor:pointer}.entry-type-buttons button.active{background:var(--c-person);border-color:var(--c-person);color:#fff}.entry-form>button:disabled,.entry-participant-picker button:disabled,.entry-type-buttons button:disabled{opacity:.45;cursor:not-allowed}.entry-form{flex-direction:column}.entry-field-row,.entry-form{display:flex;gap:.7rem}.entry-field-row .entry-field{flex:1 1}.entry-field{display:flex;flex-direction:column;gap:.25rem}.entry-field label{font-family:var(--font-mono),monospace;font-size:.68rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}.entry-field input,.entry-field select,.entry-field textarea{font-family:var(--font-serif),Georgia,serif;font-size:.9rem;padding:.4rem .5rem;border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink)}.entry-help{font-size:.72rem;color:var(--ink-soft);font-style:italic}.entry-id-preview{font-family:var(--font-mono),monospace;font-size:.75rem;color:var(--ink-soft)}.entry-error{font-size:.8rem;color:#a8354a}.entry-success{font-size:.8rem;color:var(--c-context)}.entry-lists{display:flex;gap:1.5rem;flex-wrap:wrap}.entry-lists>div{flex:1 1 420px;min-width:320px}.entry-list-filters{display:flex;gap:.5rem;margin-bottom:.5rem}.entry-list-filters input,.entry-list-filters select{font-family:var(--font-mono),monospace;font-size:.72rem;padding:.3rem .45rem;border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink)}.entry-list-filters input{flex:1 1;min-width:0}.entry-table{width:100%;border-collapse:collapse;font-size:.8rem}.entry-table td{padding:.35rem .5rem;border-bottom:1px solid var(--rule);vertical-align:top}.entry-table tr.entry-row{cursor:pointer}.entry-table tr.entry-row:hover{background:var(--paper-raised)}.entry-table tr.entry-row.active{background:var(--paper-raised);border-left:3px solid var(--c-person)}.entry-table td.entry-actions{text-align:right;white-space:nowrap}.entry-delete-btn{font-family:var(--font-mono),monospace;font-size:.68rem;padding:.2rem .4rem;border:1px solid #a8354a;border-radius:3px;background:transparent;color:#a8354a;cursor:pointer}.entry-delete-btn:hover{background:#a8354a;color:var(--paper)}.entry-delete-btn:disabled{opacity:.5;cursor:default}.entry-type-tag{font-size:.68rem}.entry-edge-type,.entry-type-tag{font-family:var(--font-mono),monospace;color:var(--ink-soft);white-space:nowrap}.entry-edge-type{font-size:.72rem}.entry-suggested-panel{margin-top:1rem;padding-top:.9rem;border-top:1px dashed var(--rule)}.entry-suggested-row{display:flex;align-items:flex-start;gap:.5rem;font-size:.82rem;line-height:1.5}.entry-suggested-row input{margin-top:.2rem}.entry-suggested-actions{display:flex;gap:.5rem}