body{height:100dvh;display:flex;flex-direction:column;overflow:hidden}header,.toolbar,#status,#admin-bar,footer{flex-shrink:0}.toolbar{padding-top:14px;padding-bottom:14px}footer{width:100%;padding:8px 24px;font-size:10px}.canvas-hint{padding:0 24px 8px;font-size:11px;color:var(--muted)}
#canvas-viewport{position:relative;flex:1;min-height:220px;overflow:hidden;background-color:var(--bg);background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:24px 24px;cursor:grab;touch-action:none;isolation:isolate}#canvas-viewport.dragging{cursor:grabbing;user-select:none}
#canvas-viewport .board{position:absolute;inset:0 auto auto 0;display:block;width:1px;height:1px;margin:0;padding:0;max-width:none;transform-origin:0 0;overflow:visible}
#canvas-viewport .branches{display:contents}#canvas-viewport .branches:before,#canvas-viewport .branch:before,#canvas-viewport .branch:after{display:none}
#canvas-viewport [data-node]{position:absolute;margin:0;transition:box-shadow .2s,border-color .2s;cursor:default;box-shadow:0 8px 28px #34244a0c}
#canvas-viewport .overview{width:456px;min-height:648px;padding:26px;box-sizing:border-box}#canvas-viewport .overview h2{font-size:36px;max-width:360px}#canvas-viewport .overview-summary{padding-top:32px}
#canvas-viewport .branch{width:792px;min-height:144px}#canvas-viewport .branch-head{min-height:108px;padding:18px 24px;border-radius:0 0 20px 20px}#canvas-viewport .branch-head[aria-expanded=true]{border-radius:0;background:var(--soft)}#canvas-viewport .branch h2{font-size:24px}#canvas-viewport .branch-content{padding:0 24px 24px}#canvas-viewport .topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#canvas-viewport .topic{min-height:140px}#canvas-viewport .leader{grid-template-columns:180px 1fr}#canvas-viewport .leader img{width:180px}#canvas-viewport .gallery{grid-template-columns:1fr}
.node-tools{display:flex;justify-content:space-between;align-items:center;min-height:34px;padding:5px 14px 0}.overview>.node-tools{padding:0;margin:-12px -6px 14px}.node-tools button{font-size:10px;color:var(--muted);padding:3px 9px;border:0;box-shadow:none;background:transparent}.node-tools .node-handle{cursor:grab;touch-action:none;letter-spacing:.3px}.node-handle:focus-visible{outline:2px solid var(--accent)}.node-tools .node-manage{color:var(--accent)}
.canvas-edges{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none;z-index:-1}.canvas-edges path{fill:none;stroke:var(--accent);stroke-width:1.5}.canvas-edges marker path{fill:var(--accent);stroke:none}.edge-base{opacity:.22}.canvas-edges .edge-flow{stroke-dasharray:5 19;opacity:.65;animation:canvas-flow 2s linear infinite}@keyframes canvas-flow{to{stroke-dashoffset:-48}}
#canvas-dock{display:flex;align-items:center;gap:6px;align-self:center;margin:8px 10px;padding:7px 10px;border:1px solid var(--line);border-radius:18px;background:#ffffffc9;backdrop-filter:blur(16px);box-shadow:0 5px 18px #34244a0b;max-width:calc(100vw - 20px);flex-wrap:wrap;justify-content:center;flex-shrink:0}#canvas-dock button{font-size:12px;padding:7px 12px}#canvas-zoom{min-width:44px;text-align:center;font-size:12px}
.manage-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}.manage-row input{width:18px;height:18px;flex:none}.manage-row span{flex:1}.manage-row small{color:var(--muted)}
.presenting #canvas-dock,.presenting .canvas-hint,.presenting .node-tools{display:none}.presenting #canvas-viewport{min-height:0}.presenting #canvas-viewport .board{padding:0}.presenting #canvas-viewport .not-revealed{visibility:hidden!important;display:block!important}.presenting #canvas-viewport .overview{min-height:480px}.presenting #show-controls{position:static;transform:none;align-self:center;flex-shrink:0;margin:10px}
@media(max-width:760px){.canvas-hint{padding:0 18px 6px;font-size:10px}.toolbar{padding:10px 18px}.toolbar-actions{width:auto}.toolbar h1{font-size:20px}#canvas-dock{gap:3px;padding:5px}#canvas-dock button{font-size:10px;padding:6px 8px}#canvas-viewport .branch h2{font-size:24px}#canvas-viewport .branch .sub{font-size:14px}#canvas-viewport .overview{margin:0}footer .footer-source{display:none}header{height:54px}}
.toolbar{width:100%;box-sizing:border-box}#canvas-viewport .overview{min-height:504px}#canvas-viewport .branch{min-height:108px}#canvas-viewport .branch-head{min-height:76px;padding-top:12px;padding-bottom:12px}#canvas-viewport .overview-summary{padding-top:18px}
@media(prefers-reduced-motion:reduce){.canvas-edges .edge-flow{animation:none}}
#canvas-viewport .child-node{width:360px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:17px;background:#fff;overflow:hidden;animation:child-appear .25s ease-out}
#canvas-viewport .child-node .topic{width:100%;min-height:132px;padding:16px 20px;background:transparent;border:0;border-radius:0;box-shadow:none;text-align:left;display:block}#canvas-viewport .child-node h3{font-size:18px;margin:6px 0 12px}#canvas-viewport .child-node .topic strong{font-size:22px}#canvas-viewport .child-node .metric{width:100%;border:0;border-radius:0;box-shadow:none;text-align:left}#canvas-viewport .child-node>.gauges,#canvas-viewport .child-node>.breadth{margin:12px}#canvas-viewport .child-node>h3{margin:14px 18px}#canvas-viewport .child-node .dial{transform:scale(.75);transform-origin:center;max-width:100px}#canvas-viewport .child-node .gauge{padding:7px 0;overflow:hidden}#canvas-viewport .child-node .gauge small{font-size:10px}.child-detail{margin:0 16px 15px;font-size:12px}.child-hint{font-size:12px;color:var(--muted);margin:8px 0 0}.presenting .child-node.not-revealed{pointer-events:none}
@keyframes child-appear{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){#canvas-viewport .child-node{animation:none}}
#canvas-viewport .image-node{width:648px;box-sizing:border-box;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:20px;background:#fff;overflow:hidden;animation:child-appear .25s ease-out}.image-node-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px 10px}.image-node-head h3{margin:8px 0;font-size:23px}.image-node-head .close{flex-shrink:0}.child-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding:10px 18px;min-height:44px;box-sizing:border-box}.author-badge{display:inline-flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.author-badge b{padding:3px 8px;border-radius:8px;background:var(--soft);color:var(--accent)}.child-foot .edit-small{font-size:10px;padding:4px 7px}.author-score{padding:12px 24px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.author-score strong{display:block;margin-top:6px;font-size:13px}.author-score .section-label{font-size:10px}.author-scale{display:flex;gap:6px}.author-scale span{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#f3f2f6;color:#847f91;font-size:12px;border:1px solid #e8e5ef}.author-scale .chosen{color:white;font-weight:700;box-shadow:0 4px 12px #27144125}.author-scale .chosen[data-score="1"]{background:#ab334b;border-color:#ab334b}.author-scale .chosen[data-score="2"]{background:#b55b20;border-color:#b55b20}.author-scale .chosen[data-score="3"]{background:#786022;border-color:#786022}.author-scale .chosen[data-score="4"]{background:#436435;border-color:#436435}.author-scale .chosen[data-score="5"]{background:#285847;border-color:#285847}.canvas-figure{margin:0 18px 18px}.canvas-figure>img{display:block;width:100%;height:auto;min-height:120px;max-height:760px;object-fit:contain;background:#f8f7fa;border:1px solid var(--line);border-radius:12px}.canvas-figure figcaption{padding:12px 6px 0;font-size:12px;color:var(--muted);white-space:pre-wrap}.canvas-image-empty{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:12px;background:linear-gradient(135deg,var(--soft),#faf9fc);color:var(--muted)}.canvas-image-empty>span{font-size:40px;line-height:1.2;opacity:.45;margin-bottom:16px}.canvas-image-empty strong{font-size:17px;color:var(--text)}.canvas-image-empty p{font-size:12px;margin:8px 0}.image-node-actions{padding:0 24px 20px}.presenting .image-node{visibility:hidden}@media(prefers-reduced-motion:reduce){#canvas-viewport .image-node{animation:none}}
