:root{--paper:#f3f0e8;--ink:#153149;--blue:#296f9d;--red:#d34f3e;--yellow:#e9b949;--teal:#3b8f87;--line:#9bb0b7;--muted:#71868b}
*{box-sizing:border-box}html,body,#app{height:100%;margin:0;overflow:hidden}body{background:var(--paper);color:var(--ink);font-family:'Trebuchet MS',Arial,sans-serif;font-size:13px}button,input,textarea,select{font:inherit}button{color:inherit}header{height:66px;border-bottom:2px solid var(--ink);display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#faf8f1;position:relative;z-index:20;box-shadow:0 4px 0 #d7dedb}.brand{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.19em;font-weight:900}.mark{width:34px;height:34px;border:3px solid var(--ink);border-radius:50%;display:grid;place-items:center;font:900 14px Georgia,serif;box-shadow:inset 0 0 0 4px #faf8f1;background:var(--yellow)}.brand b{color:var(--red)}.brand button{background:none;border:0;color:var(--blue);font-weight:800}.header-center{position:absolute;left:50%;transform:translateX(-50%);padding:3px;border:2px solid var(--ink);border-radius:20px;background:var(--paper)}.pill{border:0;background:none;color:var(--muted);border-radius:16px;padding:7px 22px;font-weight:700}.pill.active{background:var(--ink);color:#fff}.header-actions{display:flex;gap:8px;align-items:center}.header-actions span{color:var(--muted);font-size:10px}.header-actions button{border:1px solid var(--ink);background:#faf8f1;padding:7px 11px;font-weight:700;box-shadow:2px 2px 0 var(--ink)}.shell{height:calc(100% - 66px);display:grid;grid-template-columns:220px 1fr 292px}.left,.inspector{background:#e8eee9;position:relative;z-index:12}.left{border-right:2px solid var(--ink);padding:20px 12px}.inspector{border-left:2px solid var(--ink);padding:18px}.section-label{font:900 9px Arial,sans-serif;letter-spacing:.18em;color:var(--blue);margin:7px 8px 10px}.tool{width:100%;height:40px;border:1px solid transparent;background:none;display:grid;grid-template-columns:28px 1fr auto;align-items:center;text-align:left;color:var(--ink);margin-bottom:3px}.tool:hover,.tool.active{border-color:var(--ink);background:#faf8f1;box-shadow:3px 3px 0 #afc3c1}.tool.primary{background:var(--red);color:white;border:2px solid var(--ink);font-weight:800;margin-bottom:12px;box-shadow:3px 3px 0 var(--ink)}.tool i{font:normal 18px Georgia,serif;text-align:center}.tool kbd{font:10px monospace;background:#faf8f1;border:1px solid var(--line);padding:2px 5px;color:var(--ink)}.tool.primary kbd{background:var(--yellow);border-color:var(--ink);color:var(--ink)}.legend{border-top:2px solid var(--ink);margin-top:18px;padding-top:12px}.legend div{display:flex;align-items:center;gap:8px;color:var(--ink);padding:7px}.legend b{margin-left:auto;color:var(--blue)}.dot{width:9px;height:9px;border:1px solid var(--ink);border-radius:50%}.dot.todo{background:var(--blue)}.dot.doing{background:var(--yellow)}.dot.done{background:var(--teal)}.storage{position:absolute;bottom:18px;left:18px;color:var(--blue);font:900 9px monospace;letter-spacing:.1em}.storage div{font:10px Arial;letter-spacing:0;color:var(--muted);margin-top:4px}main{position:relative;overflow:hidden;background-color:#f7f4ec;background-image:linear-gradient(rgba(40,106,142,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(40,106,142,.12) 1px,transparent 1px);background-size:24px 24px}#mapView,#edges,#world{position:absolute;inset:0}#edges{z-index:1;width:100%;height:100%;overflow:visible;pointer-events:none}#world{z-index:2;transform-origin:0 0}.edge{stroke:var(--blue);stroke-width:1.6;fill:none;marker-end:url(#arrow);opacity:.72;stroke-dasharray:6 3}.edge.active{stroke:var(--red);stroke-width:3}.edge-label{font:900 9px monospace;fill:var(--ink);letter-spacing:.05em}.node{position:absolute;width:196px;min-height:94px;background:#fffdf7;border:2px solid var(--ink);box-shadow:5px 5px 0 rgba(21,49,73,.22);user-select:none;touch-action:none;overflow:visible}.node:before{content:'';position:absolute;right:8px;top:-5px;width:28px;height:10px;background:rgba(233,185,73,.65);transform:rotate(3deg)}.node:hover{box-shadow:6px 6px 0 var(--yellow)}.node.selected{border-color:var(--red);box-shadow:6px 6px 0 var(--red)}.node-top{height:7px;background:var(--blue)}.node.project .node-top{background:var(--red)}.node.milestone .node-top{background:var(--yellow)}.node.note .node-top{background:var(--teal)}.node-body{padding:12px}.node-meta{display:flex;align-items:center;justify-content:space-between;font:900 9px monospace;color:var(--blue);text-transform:uppercase;letter-spacing:.08em}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--blue)}.node[data-status=doing] .status-dot{background:var(--yellow)}.node[data-status=done] .status-dot{background:var(--teal)}.node[data-status=blocked] .status-dot{background:var(--red)}.node h3{font:800 15px Georgia,serif;margin:9px 0 7px}.node p{font-size:10px;color:var(--muted);line-height:1.4;margin:0;height:28px;overflow:hidden}.node-foot{display:flex;align-items:center;gap:7px;margin-top:11px}.tinybar{height:5px;flex:1;background:#d4deda;border:1px solid var(--ink)}.tinybar i{height:100%;display:block;background:var(--red)}.node-foot span{font:900 9px monospace;color:var(--ink)}.port{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--yellow);border:2px solid var(--ink);top:45%;z-index:2}.port.in{left:-7px}.port.out{right:-7px}.node.selected .port{background:var(--red)}.group-box{position:absolute;border:2px dashed var(--blue);background:rgba(41,111,157,.04);pointer-events:none}.group-box span{position:absolute;top:-22px;color:var(--blue);font:900 9px monospace;letter-spacing:.1em}.canvas-top{position:absolute;left:20px;right:20px;top:16px;z-index:8;display:flex;justify-content:space-between;pointer-events:none}.crumb{background:#faf8f1;border:1px solid var(--ink);padding:8px 11px;color:var(--muted);box-shadow:3px 3px 0 #bdccca}.crumb b{margin:0 8px;color:var(--red)}.crumb strong{color:var(--ink)}.stats{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px}.stats b{color:var(--red)}.bar{width:100px;height:6px;background:#d3ddd9;border:1px solid var(--ink)}.bar i{display:block;height:100%;width:42%;background:var(--red)}.minimap{position:absolute;right:18px;bottom:54px;width:180px;height:110px;background:#faf8f1;border:2px solid var(--ink);overflow:hidden;z-index:8;box-shadow:4px 4px 0 #b8c8c6}.minimap span{position:absolute;top:6px;left:8px;font:900 8px monospace;color:var(--blue);letter-spacing:.12em}.zoom{position:absolute;right:18px;bottom:17px;display:flex;background:#faf8f1;border:2px solid var(--ink);z-index:9}.zoom button,.zoom span{height:27px;border:0;background:none;display:grid;place-items:center;color:var(--ink)}.zoom button{width:29px}.zoom span{width:48px;border-left:1px solid var(--ink);border-right:1px solid var(--ink);font:900 9px monospace}.help{position:absolute;left:20px;bottom:20px;color:var(--blue);font:900 9px monospace;z-index:8}.emptyInspector{text-align:center;margin-top:30vh;color:var(--muted)}.emptyInspector .bigmark{font-size:40px;color:var(--yellow)}.emptyInspector h3{color:var(--ink);font:800 17px Georgia,serif}.emptyInspector p{font-size:11px;line-height:1.5}.details label{display:block;color:var(--blue);font-size:10px;font-weight:800;margin:15px 0 5px}.details input,.details textarea,.details select{width:100%;color:var(--ink);background:#faf8f1;border:1px solid var(--ink);padding:9px;outline:none}.details textarea{resize:vertical}.details input:focus,.details textarea:focus,.details select:focus{box-shadow:3px 3px 0 var(--yellow)}.inspect-head{display:flex;justify-content:space-between;align-items:center;font:900 9px monospace;color:var(--blue);letter-spacing:.13em}.inspect-head button{border:0;background:none;font-size:20px;color:var(--red)}.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.range-row{display:flex;align-items:center;gap:8px}.range-row input{padding:0}.range-row output{font:900 10px monospace}.danger{position:absolute;bottom:18px;left:18px;right:18px;width:calc(100% - 36px);background:#f5ddd4;border:2px solid var(--red);color:var(--red);padding:9px;font-weight:800}.connection-item{font-size:10px;padding:8px;background:#faf8f1;border:1px solid var(--ink);margin-bottom:5px}.modal{position:fixed;right:15px;top:59px;background:#faf8f1;border:2px solid var(--ink);padding:5px;z-index:50;box-shadow:5px 5px 0 var(--ink)}.modal button{display:block;background:none;border:0;width:150px;text-align:left;padding:9px}.modal button:hover{background:var(--yellow)}#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--red);color:white;padding:10px 15px;border:2px solid var(--ink);font-weight:800;opacity:0;transition:.2s;z-index:60;box-shadow:4px 4px 0 var(--ink)}#toast.show{opacity:1;transform:translate(-50%,0)}#listView{position:absolute;inset:72px 40px 40px;overflow:auto;background:#faf8f1;border:2px solid var(--ink);z-index:7;box-shadow:6px 6px 0 #aebfbd}.list-head,.list-row{display:grid;grid-template-columns:1fr 140px 120px;padding:14px 18px;border-bottom:1px solid var(--line)}.list-head{color:var(--blue);font:900 9px monospace;letter-spacing:.1em}.list-row{color:var(--ink)}.list-row small{display:block;color:var(--muted);margin-top:4px}#mobileAdd{display:none}.crypto-gate{position:fixed;inset:0;z-index:100;background:rgba(21,49,73,.78);backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px}.crypto-gate[hidden]{display:none}.crypto-card{width:min(390px,100%);background:#faf8f1;border:3px solid var(--ink);padding:30px;box-shadow:10px 10px 0 var(--yellow)}.crypto-mark{width:48px;height:48px;border:3px solid var(--ink);border-radius:50%;display:grid;place-items:center;margin-bottom:22px;background:var(--yellow);font:900 16px Georgia}.eyebrow{font:900 9px monospace;letter-spacing:.15em;color:var(--blue)}.crypto-card h2{font:800 26px Georgia;margin:9px 0}.crypto-card p{color:var(--muted);line-height:1.5;font-size:12px}.crypto-card label{display:block;color:var(--blue);font-size:10px;font-weight:800;margin:16px 0 6px}.crypto-card input{display:block;width:100%;margin-top:7px;padding:11px;background:white;color:var(--ink);border:2px solid var(--ink);outline:none}.crypto-card input:focus{box-shadow:3px 3px 0 var(--yellow)}.crypto-card button{width:100%;border:2px solid var(--ink);padding:11px;background:var(--red);color:white;font-weight:800;margin-top:16px;box-shadow:3px 3px 0 var(--ink)}.crypto-card button.quiet{background:transparent;color:var(--ink);margin-top:8px}.crypto-card small{display:block;text-align:center;color:var(--muted);font:9px monospace;margin-top:18px}.crypto-card #cryptoError{min-height:14px;color:var(--red);font-size:10px;margin-top:10px}.header-actions #securityBtn.secure{color:var(--teal);border-color:var(--teal)}@media(max-width:900px){.shell{grid-template-columns:1fr}.left{display:none}.inspector{position:fixed;right:0;top:66px;bottom:0;width:280px;transform:translateX(100%);transition:.2s;z-index:30}.inspector.open{transform:none}.header-center,.header-actions span{display:none}.minimap,.help{display:none}#mobileAdd{display:grid;place-items:center;position:fixed;right:18px;bottom:18px;width:50px;height:50px;background:var(--red);color:white;border:2px solid var(--ink);border-radius:50%;z-index:20;font-size:24px;box-shadow:4px 4px 0 var(--ink)}.canvas-top{right:16px}.stats{display:none}.node{width:196px}}@media(max-width:500px){header{padding:0 10px}.brand b,.brand button{display:none}.header-actions button{padding:7px}.node{width:196px}.node p{display:none}.node{min-height:78px}}
/* restraint pass: a quiet drafting surface with emphasis only on active work */
header{box-shadow:none}.header-actions button,.tool.primary,.node,.minimap,.crypto-card,.crypto-card button,#toast,#mobileAdd{box-shadow:none}.node:before{display:none}.node:hover{box-shadow:none;border-color:var(--blue)}.node.selected{box-shadow:0 0 0 3px rgba(211,79,62,.14)}.crumb{box-shadow:none}.left,.inspector{background:#eef1ec}

/* Wave 2: cool technical-board identity and deeper planning controls */
:root{--paper:#edf2f5;--ink:#142d40;--blue:#21688f;--red:#e15648;--yellow:#f2c14e;--teal:#24877f;--line:#9fb4bf;--muted:#617882}
body{background:var(--paper)}
header{background:#f8faf9}.left,.inspector{background:#e9f0f2}main{background-color:#f7fafb;background-image:linear-gradient(rgba(33,104,143,.105) 1px,transparent 1px),linear-gradient(90deg,rgba(33,104,143,.105) 1px,transparent 1px)}
.header-actions button:disabled{opacity:.3;cursor:not-allowed}.header-actions #undoBtn,.header-actions #redoBtn{font-size:17px;padding:5px 9px}
.search{height:38px;margin:0 3px 14px;border:1px solid var(--line);background:#f8faf9;display:flex;align-items:center;padding:0 9px;gap:7px;color:var(--blue)}.search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:11px}.search input::placeholder{color:var(--muted)}
.node{transition:opacity .15s,border-color .15s}.node.dim{opacity:.16}.connection-help{font-size:10px;line-height:1.4;color:var(--muted);margin:-3px 8px 9px}.connection-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.connection-item span{min-width:0}.connection-item button{border:0;background:transparent;color:var(--red);font-size:16px;line-height:1;cursor:pointer}
@media(max-width:900px){.header-actions #undoBtn,.header-actions #redoBtn{display:none}}
@media(max-width:500px){header{height:58px}.shell{height:calc(100% - 58px)}.inspector{top:58px;width:100%}.header-actions #exportBtn{display:none}.header-actions #securityBtn{font-size:0}.header-actions #securityBtn:first-letter{font-size:13px}.canvas-top{top:10px;left:10px}.crumb{font-size:10px}.zoom{right:12px;bottom:78px}#mobileAdd{bottom:16px}.node{width:184px}.node h3{font-size:14px}}
