:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#20382d;background:#f4f6f2;font-size:16px;line-height:1.5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}button,input,select,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #155fc2;outline-offset:3px}h1,h2,h3,p{margin:0}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #abb9ad;background:#fff;color:#233f2e;border-radius:5px;padding:7px 12px;line-height:1.35}button:hover:not(:disabled){background:#e8efe5}button.primary{background:#285939;color:#fff;border-color:#285939}button.primary:hover{background:#1c4229}button.danger{background:#a0352b;border-color:#a0352b;color:#fff}kbd{font:12px ui-monospace,monospace;border:1px solid #bbc6b8;border-radius:3px;padding:1px 4px;color:inherit;background:#edf1e8;white-space:nowrap}button.primary kbd{background:#1d472b;border-color:#7ba087}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}.app-shell{width:min(100% - 40px,960px);margin:24px auto}.quick-instructions{padding:20px 24px;border:1px solid #cbd4cd;border-radius:6px;background:#fff}.quick-instructions h1{font-size:20px}.quick-instructions ul{padding-left:22px;margin:12px 0 20px}.quick-instructions li+li{margin-top:8px}.quick-instructions:focus-visible,.graph-viewport:focus-visible{outline:3px solid #155fc2;outline-offset:4px}main{margin-top:20px}.workspace{border:1px solid #cbd4cd;border-radius:6px;background:#fff;min-width:0}.workspace-toolbar,.selected-context,.graph-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px}.toolbar-group,.file-actions,.audio-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.selected-context{border-top:1px solid #dce2dd;border-bottom:1px solid #dce2dd}.selected-context>div:first-child{flex:1 1 180px;overflow-wrap:anywhere}.selection-label{display:block;color:#526157;font-size:13px;margin-bottom:3px}.selected-context strong{font-size:17px}.graph-footer{font-size:13px;border-top:1px solid #dce2dd;color:#526157}.connection-mode{padding:16px;background:#fff4df;border-bottom:1px solid #c8aa72;color:#5c401b}.connection-mode .toolbar-group{margin-top:12px}.file-actions{margin-top:16px}.status-bar{margin-top:12px;color:#35523d}.status-bar:empty{margin:0}.audio-settings{margin-top:20px;padding:20px 24px;border:1px solid #cbd4cd;border-radius:6px;background:#fff}.audio-settings h2{font-size:18px;margin-bottom:16px}.select-setting{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.select-setting select{padding:8px;border:1px solid #abb9ad;border-radius:4px;background:#fff;color:inherit;max-width:100%}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;max-width:420px}.setting-row input,.checkbox-label input{width:20px;height:20px;accent-color:#285939}.range-setting{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:18px;max-width:420px}.range-setting input{width:100%;accent-color:#285939}.control-note{font-size:14px;color:#526157;margin:10px 0}.audio-actions{margin-top:16px}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;margin-bottom:16px;background:#fff0e8;border:1px solid #b66747;color:#77341c}dialog{border:1px solid #abb9ad;border-radius:6px;padding:24px;width:520px;max-width:calc(100vw - 32px);max-height:85vh;color:#20382d;background:#fff}dialog::backdrop{background:#172b2066}dialog h2{font-size:22px;margin-bottom:16px}dialog p{margin:8px 0}dialog form>label{display:block;margin:16px 0 6px}dialog form>input,dialog form>select{width:100%;padding:10px;border:1px solid #abb9ad;border-radius:4px;color:inherit;background:#fff}dialog form>label.checkbox-label{display:flex;align-items:center;gap:10px}.dialog-actions,.connection-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.dialog-actions{justify-content:flex-end}.form-error{color:#a3291e}@media(max-width:600px){.app-shell{width:calc(100% - 24px);margin:12px auto}.quick-instructions,.audio-settings{padding:16px}}@media(forced-colors:active){.graph-node.selected{border:3px solid Highlight}}.graph-viewport{height:clamp(380px,60vh,820px);overflow:auto;background-color:#f9fbf6;background-image:radial-gradient(#b9c8b2 .8px,transparent .8px);background-size:20px 20px;position:relative}.graph-viewport:focus-visible{outline:3px solid #155fc2;outline-offset:-4px}.graph-surface{position:relative;min-width:100%;min-height:100%}.graph-world{position:absolute;left:0;top:0;transform-origin:0 0}.graph-edges{position:absolute;inset:0;overflow:visible;pointer-events:none}.graph-edges g>path{fill:none;stroke:#758a6c;stroke-width:1.7}.graph-edges .incident-edge>path{stroke:#345e37;stroke-width:2.5}.graph-edges text{fill:#345433;font:12px system-ui;stroke:#f9fbf6;stroke-width:5px;paint-order:stroke fill}.graph-node{position:absolute;width:200px;height:62px;padding:7px 10px;display:flex;flex-direction:column;gap:2px;justify-content:center;align-items:stretch;background:#fff;border:1.5px solid #72886a;border-radius:6px;color:#213c26;text-align:center;box-shadow:0 2px 3px #1d421012}.graph-node .node-label{font-size:14px;line-height:1.2;font-weight:550;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.node-count{font-size:11px;line-height:1.2;color:#475e3e}.graph-node.selected{background:#285939;color:#fff;border-color:#194727}.graph-node.selected .node-count{color:#e0edda}.graph-node:focus{outline:3px solid #155fc2;outline-offset:4px}.graph-node.link-source{border:3px solid #bb691d;box-shadow:0 0 0 3px #f1d6b7}.zoom-controls{display:flex;align-items:center;gap:8px}.zoom-controls button{min-width:36px}.zoom-controls output{min-width:48px;text-align:center}.empty-graph{padding:32px}.workspace{overflow:hidden}.instruction-intro{margin-top:8px}.instruction-list li{padding-left:4px}.instruction-list kbd{display:inline;font-size:13px}.instruction-note{margin-bottom:16px;font-size:14px;color:#526157}.node-icon-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 16px;border-bottom:1px solid #dce2dd}.node-icon-controls select{font:inherit;padding:8px;border:1px solid #abb9ad;border-radius:4px;background:#fff;color:inherit;max-width:100%}.node-icon-controls .control-note{flex-basis:100%;margin:0}.node-icon-marker{position:absolute;right:6px;top:2px;font-size:14px}
