*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:radial-gradient(circle at top,rgba(255,222,173,.28),transparent 38%),linear-gradient(180deg,#fffaf3 0%,var(--bg) 100%);color:var(--ink)}button,input,textarea{font:inherit}.app-shell{min-height:100vh;padding:24px;display:flex;flex-direction:column}.app-error-shell{min-height:100vh;padding:24px}.app-error-card{max-width:720px;padding:24px;border-radius:24px;background:#fff9f2f5;border:1px solid rgba(139,45,23,.18);color:#8b2d17;box-shadow:var(--shadow)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:26px;margin-bottom:20px;min-height:112px;padding:16px 24px;border-radius:18px;border:1.25px solid var(--topbar-line);background:linear-gradient(180deg,#fffcf5bd,#fff9ef3d),var(--topbar-bg);box-shadow:inset 0 1px #ffffff85,var(--topbar-shadow-light);animation:topbar-enter .2s ease-out both}@keyframes topbar-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.topbar-title-block{position:relative;flex:0 0 auto;min-width:0;display:grid;gap:2px;padding:12px 28px 14px;border-radius:12px;border:2px solid var(--title-plank-line);background:linear-gradient(180deg,#fff6e66b,#fff4db0f 36%),linear-gradient(180deg,#deb8871a,#cdaa7d05),var(--title-plank-bg);box-shadow:inset 0 1px #ffffff5c,0 2px #9b7c553d,0 8px 14px #3f3a3314}.topbar-title-block:before,.topbar-title-block:after{content:"";position:absolute;top:-38px;width:4px;height:38px;background:linear-gradient(180deg,#bfa080,#9f7f5e);border-radius:999px;box-shadow:0 0 0 1px #9272501f;opacity:.9;pointer-events:none}.topbar-title-block:before{left:78px}.topbar-title-block:after{right:64px}.topbar h1,.hero-composer h2,.root-unit-node h2,.unit-node h3,.query-node h4{margin:0}.topbar h1{color:var(--title-plank-text);font-size:clamp(24px,2.85vw,58px);line-height:1.08;letter-spacing:.01em;white-space:nowrap}.topbar .eyebrow{margin-bottom:2px;color:var(--title-plank-eyebrow);letter-spacing:.08em}.eyebrow{margin:0 0 6px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:500}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 18px;border-radius:12px;background:var(--badge-bg);border:1.25px solid var(--badge-line);color:var(--badge-text);box-shadow:inset 0 1px #ffffff94,0 1px #a488672e;font-size:17px;font-weight:500;line-height:1.1;white-space:nowrap;transition:border-color .18s ease,color .18s ease}.badge:hover{border-color:color-mix(in srgb,var(--badge-line) 84%,#000000 16%)}.badge-real{background:var(--badge-runtime-ok-bg);border-color:var(--badge-line);color:var(--badge-runtime-ok-text)}.badge-mock{background:var(--badge-runtime-mock-bg);border-color:var(--badge-line);color:var(--badge-runtime-mock-text)}.topbar-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:flex-end}.canvas-switcher-frame{display:inline-flex;align-items:center;min-height:40px;gap:10px;padding:8px 12px;border-radius:12px;background:var(--badge-bg);border:1.25px solid var(--badge-line);box-shadow:inset 0 1px #ffffff8f,0 1px #a488672e;max-width:min(100%,360px);transition:border-color .18s ease}.canvas-switcher-frame:hover{border-color:color-mix(in srgb,var(--badge-line) 84%,#000000 16%)}.canvas-switcher-tag,.canvas-switcher-current{color:var(--badge-text);font-size:16px;font-weight:500;white-space:nowrap}.canvas-switcher-select{border:1px solid transparent;background:#ffffff85;color:var(--badge-text);outline:none;cursor:pointer;border-radius:10px;padding:6px 10px;min-height:32px;max-width:190px;font-size:15px;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.canvas-switcher-select:hover{background:#ffffffad}.canvas-switcher-select:focus-visible{border-color:color-mix(in srgb,var(--badge-line) 80%,#000000 20%);box-shadow:0 0 0 2px var(--focus-ring-soft)}.canvas-stage{position:relative;flex:1 1 auto;min-height:calc(100vh - 224px);border-radius:32px;border:1px solid var(--line);background:linear-gradient(transparent 23px,#5d4c3d0a 24px),linear-gradient(90deg,transparent 23px,rgba(93,76,61,.04) 24px),var(--panel);background-size:24px 24px,24px 24px,auto;box-shadow:var(--shadow);overflow:hidden}.app-footer{display:flex;justify-content:center;align-items:center;min-height:28px;margin-top:14px;color:var(--muted);font-size:13px;line-height:1.4}.app-footer a{color:inherit;text-decoration:none}.app-footer a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.canvas-viewport{position:relative;height:100%;padding:40px;overflow:auto;cursor:default}.canvas-viewport.is-panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.canvas-pan-layer{position:relative;transform-origin:top left;will-change:transform}.hero-composer{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(760px,calc(100% - 48px));padding:32px;border-radius:28px;background:#fffaf2f0;border:1px solid var(--line);box-shadow:var(--shadow);z-index:2}.canvas-error-banner{position:absolute;top:20px;left:24px;z-index:9;max-width:min(720px,calc(100% - 48px));margin:0;padding:10px 14px;border-radius:999px;background:#8b2d170b;color:#8b2d17;border:1px solid rgba(139,45,23,.14);display:inline-flex;align-items:center;gap:10px;overflow-wrap:anywhere;white-space:normal}.canvas-error-banner span{min-width:0}.canvas-error-retry{min-height:32px;padding:6px 10px;border-radius:999px;font-size:12px;white-space:nowrap;flex-shrink:0}.canvas-retry-notice{position:absolute;top:62px;left:24px;z-index:9;max-width:min(560px,calc(100% - 48px));margin:0;padding:8px 12px;border-radius:999px;background:#755c3f14;border:1px solid rgba(117,92,63,.16);color:#59462f;font-size:13px;line-height:1.4}.canvas-demo-note{position:absolute;top:20px;left:24px;z-index:3;max-width:560px;margin:0;padding:10px 14px;border-radius:16px;background:#fffcf6f5;color:var(--muted);border:1px solid rgba(98,76,52,.12);box-shadow:var(--shadow)}.canvas-modal-backdrop{position:absolute;inset:0;z-index:8;display:grid;place-items:center;padding:24px;background:#3124182e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.canvas-modal-card{position:relative;overflow:hidden;width:min(460px,calc(100% - 24px));padding:24px;border-radius:28px;background:#fffaf2fa;border:1px solid rgba(98,76,52,.14);box-shadow:var(--shadow)}.canvas-modal-card.is-waiting>*:not(.waiting-border){position:relative;z-index:2}.canvas-modal-card h3{margin:0}.canvas-modal-text{margin:12px 0 0;color:var(--muted);line-height:1.6}.canvas-modal-error{margin:12px 0 0;padding:10px 12px;border-radius:12px;border:1px solid rgba(139,45,23,.2);background:#8b2d1714;color:#8b2d17;font-size:13px;line-height:1.45;display:flex;align-items:center;justify-content:space-between;gap:10px;max-height:84px;overflow:auto;overflow-wrap:anywhere;word-break:break-word}.canvas-modal-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.composer-row,.global-composer,.composer-actions,.unit-header{display:flex;gap:12px;align-items:center}.ui-button,.ui-input,.inline-composer textarea{border-radius:16px;border:1px solid var(--line)}.ui-button{border:0;background:var(--ink);color:#fffaf4;padding:12px 18px;cursor:pointer}.ui-button-secondary{background:#ffffffd1;color:var(--ink);border:1px solid var(--line)}.ui-button:disabled{cursor:not-allowed;opacity:.5}.ui-input,.inline-composer textarea{width:100%;padding:14px 16px;background:#fffc}.canvas-floating-controls{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;gap:12px;z-index:7;max-width:calc(100% - 32px)}.return-root-button,.global-composer{box-shadow:var(--shadow)}.global-composer{padding:10px;border-radius:20px;background:#fffcf6eb;border:1px solid var(--line);align-items:stretch}.global-composer .ui-input,.global-composer .ui-button{height:54px}.global-composer .ui-button{display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:16px;white-space:nowrap}.global-composer.floating{width:320px}.mindmap-graph{position:relative;min-height:100%}.graph-node,.graph-composer-anchor{position:absolute;z-index:2}.graph-edges{position:absolute;inset:0;z-index:1;overflow:visible}.graph-edges path{fill:none;stroke:#624c3447;stroke-width:2.5;stroke-linecap:round}.graph-edges-overlay path{stroke:#c56a2a57}.ui-card{position:relative;width:100%;height:100%;padding:18px;border-radius:var(--radius-lg);background:var(--panel-strong);border:1px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:flex-start}.ui-card p,.ui-card h2,.ui-card h3,.ui-card h4,.ui-card small{margin:0}.root-unit-node{width:100%;background:linear-gradient(180deg,#fff9ea,#fff2d7)}.root-unit-body{display:grid;align-content:start;grid-auto-rows:min-content}.root-unit-node h2{line-height:1.3;overflow-wrap:anywhere;word-break:break-word}.root-unit-node.collapsed h2{margin-top:10px}.root-unit-question{margin-top:8px;margin-bottom:0;color:#5a4c3d;line-height:1.6;overflow-wrap:anywhere;word-break:break-word}.unit-node.selected,.root-unit-node.selected{box-shadow:0 0 0 1px #c56a2a3d,0 0 24px var(--glow)}.unit-node-body{display:grid;gap:10px;align-content:start;grid-auto-rows:min-content}.unit-content{display:grid;gap:10px;position:relative;overflow-wrap:anywhere}.unit-content p{line-height:1.55}.unit-content small{line-height:1.45}.unit-content.text-selected{background:transparent}.unit-content.text-selected:after{content:"";position:absolute;inset:-8px -10px;border-radius:12px;box-shadow:inset 0 0 0 1px #c56a2a3d;pointer-events:none}.unit-inline-highlight{padding:2px 4px;border-radius:6px;background:#c56a2a61;color:#3c220f;line-height:1.35;box-decoration-break:clone;-webkit-box-decoration-break:clone}.unit-summary{color:var(--muted);line-height:1.5}.unit-add-button{position:absolute;top:50%;right:-18px;transform:translateY(-50%);width:36px;height:36px;padding:0;border-radius:999px}.unit-add-symbol,.unit-add-lock-symbol{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1}.unit-add-lock-symbol{display:none;font-size:15px}.unit-add-button.is-locked:hover .unit-add-symbol{display:none}.unit-add-button.is-locked:hover .unit-add-lock-symbol{display:inline-flex}.inline-composer{width:520px;max-width:min(520px,calc(100vw - 64px));padding:20px;border-radius:28px;background:#fff9eef5;border:1px solid rgba(197,106,42,.24);box-shadow:var(--shadow)}.inline-composer textarea{min-height:132px;resize:vertical;margin:12px 0;line-height:1.6}.composer-anchor-hint{margin:8px 0 0;color:var(--muted);font-size:13px;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.composer-actions{justify-content:flex-start}.query-node-surface{display:flex;align-items:stretch;justify-content:flex-start;width:100%;height:100%;overflow:hidden;background:transparent;border:1px solid rgba(197,106,42,.24);box-shadow:var(--shadow);transform-origin:center center;will-change:width,height,border-radius;cursor:pointer;text-align:left;color:inherit}.query-node{width:100%;display:grid;gap:10px;background:linear-gradient(180deg,#fff8f4,#ffeede)}.graph-pending-query-anchor{z-index:4}.pending-query-preview{position:relative;width:100%;height:100%;overflow:hidden;cursor:default}.waiting-border{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.waiting-border-glow{fill:none;stroke:#f1aa61fa;stroke-width:1.9;stroke-linecap:round;stroke-dasharray:.12 .88;stroke-dashoffset:0;animation:waiting-border-run 1.25s linear infinite;filter:drop-shadow(0 0 2px rgba(241,170,97,.35));opacity:0;transition:opacity .12s ease}.is-waiting.is-waiting-active .waiting-border-glow{opacity:1}.pending-query-preview-content{position:relative;z-index:3}@keyframes waiting-border-run{0%{stroke-dashoffset:0}to{stroke-dashoffset:-1}}@media(prefers-reduced-motion:reduce){.waiting-border-glow{animation:none}}.query-node-content{width:100%;display:grid;gap:8px;height:100%;overflow:hidden;align-content:start;grid-auto-rows:min-content;justify-items:start;text-align:left}.query-node-content p,.query-node-content h4,.pending-query-preview-content p,.pending-query-preview-content h4{margin:0;min-width:0}.query-node-label{color:#5a4c3dbf}.query-node-title{width:100%;line-height:1.35;font-size:16px;font-weight:700;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.query-node-question{width:100%;line-height:1.52;color:#3f3329;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.query-node-quote{width:100%;margin:0;padding-left:10px;border-left:2px solid rgba(197,106,42,.32);color:var(--muted);line-height:1.45;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.query-node-pill{width:48px;height:24px;padding:0;border-radius:999px;background:#c56a2a33;border-color:#c56a2a4d}.query-node.active,.query-node-pill.active{box-shadow:0 0 0 1px #c56a2a47}.error-text{margin:0 0 10px;padding:8px 10px;border-radius:10px;border:1px solid rgba(139,45,23,.2);background:#8b2d1714;color:#8b2d17;font-size:13px;line-height:1.45;max-height:68px;overflow:auto;overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap}.composer-error-block{display:grid;gap:8px}.composer-retry-button{justify-self:start;min-height:30px;padding:6px 10px;border-radius:999px;font-size:12px}blockquote:not(.query-node-quote){margin:10px 0 0;padding-left:12px;border-left:3px solid rgba(197,106,42,.4);color:var(--muted);line-height:1.5}.composer-anchor-quote{max-height:108px;overflow:auto}@media(max-width:960px){.app-shell{padding:16px}.topbar-meta,.composer-row,.global-composer{flex-direction:column;align-items:stretch}.topbar{min-height:96px;padding:16px;align-items:flex-start}.topbar h1{font-size:24px;line-height:1.2;white-space:normal}.topbar-meta{width:100%;justify-content:flex-start;gap:8px}.badge,.canvas-switcher-frame{width:fit-content;max-width:100%}.canvas-switcher-frame{width:100%}.canvas-switcher-select{max-width:100%;width:100%}.canvas-floating-controls{top:12px;right:12px;z-index:7;max-width:calc(100% - 24px)}.global-composer.floating{width:min(320px,100%)}.ui-card,.root-unit-node,.query-node,.inline-composer{width:100%}.canvas-stage{min-height:calc(100vh - 216px)}}:root{--bg: #f6f2e8;--panel: rgba(255, 252, 246, .88);--panel-strong: #fffaf0;--ink: #1f1a14;--muted: #6d6257;--line: rgba(68, 52, 37, .14);--accent: #c56a2a;--accent-soft: rgba(197, 106, 42, .14);--glow: rgba(225, 182, 74, .48);--shadow: 0 18px 44px rgba(57, 35, 20, .12);--radius-lg: 24px;--radius-md: 18px;--radius-sm: 12px;--topbar-bg: #f3ebdb;--topbar-line: #c9b89a;--title-plank-bg: #ead4b1;--title-plank-line: #b78f62;--title-plank-text: #4a3928;--title-plank-eyebrow: #6f5b44;--badge-bg: #f7ebd7;--badge-bg-active: #e2d6bd;--badge-line: #bb9a74;--badge-text: #5a4a35;--badge-runtime-ok-bg: #e5ebd3;--badge-runtime-ok-text: #556642;--badge-runtime-mock-bg: #f0e3cc;--badge-runtime-mock-text: #6f5d46;--topbar-shadow-light: 0 6px 14px rgba(63, 58, 51, .08);--focus-ring-soft: rgba(122, 103, 73, .26)}:root[data-theme=rain]{--topbar-bg: #e8e5dc;--topbar-line: #c0b7a8;--title-plank-bg: #e2d3ba;--title-plank-line: #9b876d;--title-plank-text: #4d4338;--title-plank-eyebrow: #6e6458;--badge-bg: #e4e0d6;--badge-bg-active: #d8d2c5;--badge-line: #9e8b72;--badge-text: #444039;--badge-runtime-ok-bg: #d3e3d0;--badge-runtime-ok-text: #4f6248;--badge-runtime-mock-bg: #ddd4c4;--badge-runtime-mock-text: #645746;--topbar-shadow-light: 0 6px 14px rgba(50, 54, 57, .08);--focus-ring-soft: rgba(101, 95, 86, .28)}
