:root{--bg:#0a0a0a;--panel:#141414;--panel-raised:#1c1c1c;--text:#ededed;--muted:#8f8f8f;--border:#262626;--border-strong:#383838;--accent:#4ade80;--accent-soft:#4ade801f;--edge:#2e2e2e;--shadow:0 1px 2px #00000080, 0 8px 24px #00000059;--font-ui:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-ui);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}::selection{background:var(--accent-soft)}.toolbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);box-shadow:var(--shadow);z-index:10;background:#141414e0;border-radius:10px;align-items:center;gap:4px;padding:6px 8px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toolbar .title{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:8px;padding:0 10px 0 6px;font-size:13px;font-weight:600;display:flex}.toolbar .title:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px #4ade8099}.toolbar button{font-family:var(--font-ui);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;padding:5px 10px;font-size:12.5px;font-weight:500;transition:color .12s,background .12s}.toolbar button:hover:not(:disabled){color:var(--text);background:var(--panel-raised)}.toolbar button:disabled{opacity:.35;cursor:default}.toolbar button.danger:hover:not(:disabled){color:#f87171;background:#f871711a}.toolbar button.icon{text-align:center;min-width:30px;padding:5px 6px}.toolbar .sep{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 5px}.mindmap{position:fixed;inset:0}.mindmap svg{cursor:grab;touch-action:none;width:100%;height:100%;display:block}.mindmap svg.panning{cursor:grabbing}.edge{fill:none;stroke:var(--edge);stroke-width:1.5px}.node{cursor:pointer}.node rect{fill:var(--panel);stroke:var(--border);stroke-width:1px;transition:stroke .12s}.node:hover rect{stroke:var(--border-strong)}.node text{fill:var(--text);font-family:var(--font-ui);letter-spacing:-.01em;dominant-baseline:middle;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:500}.node .dot{fill:var(--accent)}.node.root{cursor:grab}.node.root:active{cursor:grabbing}.node.root rect{fill:#fff;stroke:#fff}.node.root:hover rect{stroke:#fff}.node.root text{fill:#0a0a0a;font-weight:600}.node.root .dot{fill:#16a34a}.node.selected rect{stroke:var(--accent);stroke-width:1.4px;filter:drop-shadow(0 0 7px #4ade8059)}.collapse-badge{cursor:pointer}.collapse-badge rect{fill:var(--panel-raised);stroke:var(--border);stroke-width:1px;transition:stroke .12s}.collapse-badge text{fill:var(--muted);font-family:var(--font-mono);text-anchor:middle;dominant-baseline:central;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:700}.collapse-badge text.count{fill:var(--accent)}.collapse-badge:hover rect{stroke:var(--border-strong)}.editor{font-family:var(--font-ui);letter-spacing:-.01em;color:var(--text);background:var(--panel);border:1.5px solid var(--accent);z-index:20;box-shadow:0 0 0 3px var(--accent-soft), var(--shadow);border-radius:8px;outline:none;padding:0 12px;font-weight:500;position:absolute}.node-bar{bottom:max(14px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);box-shadow:var(--shadow);z-index:10;background:#141414e0;border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;max-width:calc(100vw - 20px);padding:5px 8px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.node-bar button{font-family:var(--font-ui);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:500;transition:color .12s,background .12s}.node-bar button:hover:not(:disabled){color:var(--text);background:var(--panel-raised)}.node-bar button:disabled{opacity:.35;cursor:default}.node-bar button.icon{text-align:center;min-width:26px;padding:4px 5px}@media (pointer:coarse){.node-bar button{padding:7px 10px;font-size:13px}}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:30;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);width:min(360px,100vw - 32px);box-shadow:var(--shadow);border-radius:12px;padding:20px}.modal h2{letter-spacing:-.01em;margin-bottom:8px;font-size:15px;font-weight:600}.modal p{color:var(--muted);margin-bottom:18px;font-size:13px;line-height:1.5}.modal .actions{justify-content:flex-end;gap:8px;display:flex}.btn{font-family:var(--font-ui);color:var(--text);background:var(--panel-raised);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s}.btn:hover{border-color:var(--border-strong)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn-danger{color:#fca5a5;background:#f871711f;border-color:#f871714d}.btn-danger:hover{background:#f8717133;border-color:#f8717180}.help-panel{color:var(--muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);box-shadow:var(--shadow);z-index:25;background:#141414f2;border-radius:10px;flex-direction:column;gap:7px;padding:14px 16px;font-size:12px;display:flex;position:fixed;top:64px;left:50%;transform:translate(-50%)}.help-panel kbd{font-family:var(--font-mono);color:var(--text);background:var(--panel-raised);border:1px solid var(--border);border-radius:4px;margin-right:2px;padding:1px 5px;font-size:10px}@media (width<=720px){.toolbar{top:max(10px, env(safe-area-inset-top));flex-wrap:wrap;justify-content:center;row-gap:2px;left:10px;right:10px;transform:none}.toolbar .title{flex-basis:100%;justify-content:center;padding:2px 0}.toolbar .sep{display:none}.node-bar{max-width:none;left:10px;right:10px;bottom:max(10px, env(safe-area-inset-bottom));transform:none}}@media (pointer:coarse){.toolbar button{padding:8px 12px;font-size:13px}}
