:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#142c43;background:#edf2f7;font-size:16px;--navy:#0f2942;--teal:#087f86;--line:#d9e2ec;--muted:#52667c}*{box-sizing:border-box}body{margin:0}button,input,textarea,select,summary{font:inherit}button,summary{cursor:pointer}button{border:1px solid var(--line);border-radius:8px;padding:9px 13px;background:white;color:var(--navy);font-size:.875rem;font-weight:600;min-height:40px}button:hover{background:#edf5fa;border-color:#a2b9ca}button:disabled{opacity:.42;cursor:default}button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,#canvas:focus-visible{outline:3px solid #087f86;outline-offset:3px}.app{max-width:1800px;margin:auto;padding:18px 20px 24px}.topbar{display:flex;align-items:center;gap:24px;padding:0 0 18px}.brand{display:flex;align-items:center;gap:10px}.brand svg{width:34px;height:34px;background:var(--navy);border-radius:8px;padding:4px;stroke:#4ad5ce;stroke-width:2;fill:#fff}.brand h1{font-size:1.35rem;letter-spacing:-.03em;margin:0}.map-title{min-width:100px;flex:1}.map-title input{width:100%;max-width:430px;font-weight:650;font-size:1.1rem;color:#324b60;border:1px solid transparent;background:transparent;border-radius:6px;padding:8px 10px}.map-title input:hover{border-color:var(--line)}.file-actions{display:flex;gap:8px;align-items:center}.export-menu{position:relative}.export-menu summary{list-style:none;border-radius:8px;padding:10px 16px;background:var(--navy);color:white;font-size:.875rem;font-weight:600;min-height:40px}.export-menu summary::-webkit-details-marker{display:none}.menu{position:absolute;z-index:20;right:0;top:48px;background:#fff;padding:6px;box-shadow:0 8px 26px #0f294226;border:1px solid var(--line);border-radius:10px;width:225px}.menu button{display:block;width:100%;border:0;text-align:left}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px 12px 0 0;padding:12px}.primary{background:var(--teal);border-color:var(--teal);color:white}.primary:hover{background:#06676d;border-color:#06676d}kbd{font-family:inherit;font-size:.75rem;opacity:.7;margin-left:8px;font-weight:400}.history{display:flex;gap:4px;border-left:1px solid var(--line);padding-left:8px;margin-left:4px}.history button{font-size:1.35rem;padding:3px 12px}.help-button{margin-left:auto;border-radius:50%;width:38px;padding:4px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;overflow:hidden;background:#fff}.canvas-panel{position:relative;height:690px;min-width:0;overflow:hidden;background-color:#f9fbfd;background-image:radial-gradient(#cddbe7 .8px,transparent .8px);background-size:22px 22px}.canvas-hint{position:absolute;top:16px;left:20px;right:20px;color:var(--muted);font-size:.8125rem;pointer-events:none;text-align:center}#canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab;user-select:none}#canvas.dragging{cursor:grabbing}.node{cursor:grab}.node text{pointer-events:none;fill:#1e344c;font-weight:600;font-size:16px}.node.root text{fill:white;font-size:18px}.node.selected>rect{stroke-width:3}.node:focus{outline:none}.node:focus-visible>rect{stroke-width:4;stroke-dasharray:5 3}.node .add-handle{cursor:pointer}.node .add-handle text{fill:var(--navy);font-size:22px;font-weight:400}.node .fold-label{font-size:12px;fill:#52667c;font-weight:500}.view-controls{position:absolute;bottom:16px;left:16px;display:flex;align-items:center;gap:3px;background:white;border:1px solid var(--line);border-radius:10px;padding:4px;box-shadow:0 3px 12px #0f294210}.view-controls button{border:0;background:transparent}.view-controls output{min-width:48px;text-align:center;font-size:.8125rem;color:var(--muted)}#inline-edit{position:absolute;z-index:10;border:2px solid var(--teal);border-radius:8px;padding:8px;background:white;color:var(--navy);min-width:120px;font-size:16px;box-shadow:0 5px 20px #0f294226}.inspector{border-left:1px solid var(--line);background:white;padding:6px 18px 16px;overflow:auto;max-height:690px}.inspector details{border-bottom:1px solid var(--line)}.inspector summary{font-weight:650;font-size:.9375rem;padding:17px 0}.panel-content{padding-bottom:18px;display:grid;gap:8px}.panel-content label,.field-label{font-size:.875rem;font-weight:600;margin-top:6px}.optional{font-weight:400;color:var(--muted);margin-left:4px;font-size:.8125rem}textarea,select{border:1px solid #bacbdb;border-radius:7px;background:#fff;color:var(--navy);padding:8px;width:100%;min-width:0;font-size:.875rem;line-height:1.5}textarea{resize:vertical}select{min-height:40px}.colors{display:flex;gap:6px;flex-wrap:wrap;margin:3px 0}.color{width:30px;height:30px;min-height:30px;border-radius:50%;padding:0;border:3px solid white;box-shadow:0 0 0 1px #c7d3df}.color[aria-pressed="true"]{box-shadow:0 0 0 2px var(--navy)}.color[aria-pressed="true"]::after{content:'✓';color:#fff;font-size:16px;text-shadow:0 1px 2px #000}.danger{color:#ae2b3e}.wide{width:100%;margin-top:5px}.subtle,.privacy{font-size:.8125rem;color:var(--muted);line-height:1.6;margin:4px 0 0}.save-status{font-size:.8125rem;color:#246259;margin:18px 0 6px}.save-status.error{color:#ae2b3e}#node-count{font-size:.8125rem;font-weight:400;color:var(--muted);margin-left:5px}#outline{padding-bottom:12px;max-height:270px;overflow:auto}#outline ul{list-style:none;margin:0;padding:0 0 0 12px;border-left:1px solid var(--line)}#outline>ul{padding-left:0;border-left:0}#outline button{border:0;display:block;text-align:left;width:100%;padding:5px 8px;min-height:32px;font-weight:400;overflow-wrap:anywhere;font-size:.875rem}#outline button[aria-current="true"]{background:#e2f1f2;color:#075a60;font-weight:600}#notice{position:fixed;z-index:40;bottom:16px;left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);border-radius:9px;padding:12px 20px;background:var(--navy);color:white;box-shadow:0 4px 22px #0f294233;font-size:.875rem;pointer-events:none;opacity:0;transition:opacity .15s}#notice.show{opacity:1}dialog{border:1px solid var(--line);border-radius:16px;padding:26px;max-width:520px;width:calc(100% - 32px);color:var(--navy);box-shadow:0 20px 80px #0f294233}dialog::backdrop{background:#0f294255}dialog h2{margin:0 0 14px;font-size:1.3rem}dialog p{line-height:1.65}dialog dl{display:grid;grid-template-columns:1fr 1.3fr;gap:10px;font-size:.875rem}dialog dt{font-weight:600}dialog dd{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.canvas-panel:fullscreen{height:100vh;width:100vw}.canvas-panel:fullscreen .canvas-hint{top:24px}
@media(min-width:1600px){.canvas-panel{height:760px}.inspector{max-height:760px}}@media(max-width:900px){.app{padding:12px}.workspace{grid-template-columns:minmax(0,1fr) 240px}.topbar{gap:12px}.brand h1{font-size:1.1rem}.inspector{padding:5px 12px 12px}.canvas-panel{height:620px}kbd{display:none}}@media(max-width:680px){.app{padding:10px 8px 16px}.topbar{flex-wrap:wrap;gap:8px;padding-bottom:12px}.brand{flex:1}.map-title{flex:initial;width:100%;order:3}.map-title input{max-width:none;padding:5px 4px}.file-actions{gap:5px}.file-actions button,.export-menu summary{padding:8px 10px}.workspace{grid-template-columns:1fr}.canvas-panel{height:480px}.canvas-hint{top:12px;font-size:.75rem;left:10px;right:10px}.inspector{border-left:0;border-top:1px solid var(--line);max-height:none;padding:0 16px 16px}.toolbar{padding:8px;gap:6px}.toolbar button{font-size:.8125rem;padding:8px 10px}.history{margin:0;padding:0;border:0}.history button{font-size:1.2rem}.help-button{margin-left:auto}.view-controls{left:10px;bottom:10px}.view-controls button{padding:8px 9px}.privacy{max-width:520px}.colors{gap:10px}.color{width:34px;height:34px;min-height:34px}dialog dl{grid-template-columns:1fr;gap:5px}dialog dd{margin-bottom:6px}}
