:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17283e;background:#f5f7fa;font-size:16px;--ink:#17283e;--muted:#677587;--line:#5c6e82;--lime:#cee88d;--navy:#142132;--label-text:#4a5b6e}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;font-size:.875rem}button{cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);padding:.6rem .85rem;border-radius:7px;font-weight:600;transition:background .15s}button:hover{background:#edf2f6}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--lime);color:#203214;border-color:#53683b}.primary:hover{background:#bddb76}.subtle{background:transparent}.danger{color:#a1313d}.wide{width:100%;margin-top:.65rem}a{color:#315f97}input,select,textarea{display:block;width:100%;border:1px solid var(--line);background:#fff;border-radius:6px;padding:.7rem;color:var(--ink)}textarea{resize:vertical}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid #1d5288;outline-offset:2px}header button:focus-visible{outline-color:#8bbbe8}label{display:block;font-size:.875rem;font-weight:600;margin:.9rem 0 .4rem}header{height:72px;background:var(--navy);color:#f8fbff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;gap:1rem}header h1{font-size:inherit;font-weight:inherit;margin:0}header a{color:inherit}.brand{display:flex;align-items:center;gap:.85rem;font-size:1.15rem;font-weight:700;color:inherit;text-decoration:none;white-space:nowrap}.brand-mark{display:grid;place-items:center;color:var(--lime);border:1px solid #53683b;width:33px;height:34px;border-radius:8px;font-weight:800}.quiet{color:#a3b0bf;font-weight:400}.header-actions{display:flex;gap:.6rem;align-items:center}header .subtle{color:#d1d9e3;border-color:#748295}header .subtle:hover{background:#263448}main{display:grid;grid-template-columns:270px minmax(300px,1fr) 270px;height:calc(100dvh - 72px);min-height:570px}.library,.inspector{background:#fff;padding:24px 20px;overflow:auto}.library{border-right:1px solid var(--line);display:flex;flex-direction:column}.inspector{border-left:1px solid var(--line)}.section-label{font-size:.75rem;font-weight:700;letter-spacing:.12em;color:var(--label-text, #4a5b6e)}h1{font-size:1.55rem;font-weight:650;margin:.45rem 0 1.1rem}h2{font-size:1.1rem;font-weight:650;margin:.5rem 0 1rem}h3{font-size:1rem;margin:1.5rem 0 .6rem}.help{font-size:.875rem;color:var(--muted);line-height:1.6}.folder-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:1.2rem}.library h2{font-size:1.55rem;font-weight:650;margin:.45rem 0 1.1rem}.folder-heading h3{font-size:.95rem;margin:0;overflow-wrap:anywhere}.icon-button{border:0;background:transparent;font-size:1.3rem;padding:.3rem .55rem}.map-list{margin-top:.5rem}.map-item,.node-item{width:100%;display:block;text-align:left;overflow-wrap:anywhere;margin:.35rem 0;border-color:transparent;font-weight:500;padding:.75rem}.map-item.active,.node-item.active{background:#edf4df;border-color:#53683b}.map-item small{display:block;color:var(--muted);font-size:.75rem;margin-top:.3rem}.library-bottom{margin-top:auto;padding-top:2rem}.workspace{display:flex;flex-direction:column;position:relative;min-width:0}.map-toolbar{min-height:88px;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:1rem;background:#fff}.map-heading{min-width:0;flex:1}.map-heading h1{margin:0;font-size:inherit;font-weight:inherit}#map-name{font-size:1.25rem;font-weight:650;border:0;padding:.2rem 0;background:transparent}#map-name:disabled{opacity:1;color:var(--ink)}.save-state{display:block;margin-top:.35rem;font-size:.8rem;color:var(--muted)}.map-actions{display:flex;gap:.5rem}.canvas-wrap{flex:1;position:relative;overflow:hidden;background:#f5f7fa;min-height:350px}#canvas{width:100%;height:100%;position:absolute;inset:0;touch-action:none;user-select:none}.graph-node{cursor:grab}.graph-node rect{fill:#fff;stroke:#59687a;stroke-width:1.4;filter:drop-shadow(0 3px 5px #1421320a)}.graph-node.selected rect{stroke:#7d9c46;stroke-width:2.5}.graph-node text{fill:var(--ink);font-size:14px;font-weight:600;pointer-events:none}.graph-node .node-kind{font-size:10px;font-weight:500;fill:var(--label-text, #4a5b6e);letter-spacing:.8px}.edge-line{stroke:#59687a;stroke-width:1.5}.edge-text{font-size:11px;fill:#60738a;paint-order:stroke;stroke:#f5f7fa;stroke-width:5px;stroke-linejoin:round}.empty-canvas{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);text-align:center;width:90%;max-width:340px;pointer-events:none}.empty-canvas button{pointer-events:auto}.empty-symbol{display:grid;place-items:center;width:52px;height:52px;border:1px solid #ccd8b4;color:#647d36;background:#ecf3df;border-radius:13px;font-size:2rem;margin:0 auto 1rem}.empty-canvas h2{font-size:1.35rem;margin-bottom:.65rem}.empty-canvas p{font-size:.95rem;line-height:1.7;color:var(--muted)}.canvas-controls{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 5px 20px #1421320c;white-space:nowrap}.canvas-controls button{border:0;font-size:.8rem;padding:.55rem .7rem}.control-divider{width:1px;height:20px;background:var(--line);margin:0 4px}.map-count{position:absolute;bottom:85px;left:0;width:100%;text-align:center;font-size:.8rem;color:var(--muted);pointer-events:none}.message{position:absolute;left:20px;right:20px;bottom:115px;padding:12px 16px;background:#142132;color:white;border-radius:8px;font-size:.875rem;line-height:1.5;box-shadow:0 3px 12px #14213220;z-index:5}.message.error{background:#813243}.node-list{max-height:230px;overflow:auto;margin-bottom:1rem}.node-item{padding:.5rem .65rem;font-size:.875rem}#node-form label{margin-top:1rem}details{margin:1rem 0;color:var(--muted);font-size:.875rem}summary{cursor:pointer}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.75rem;max-height:200px;overflow:auto}.edge-row{display:flex;align-items:center;justify-content:space-between;gap:.3rem;font-size:.85rem;margin:.4rem 0}.edge-row span{overflow-wrap:anywhere}.edge-row button{font-size:1rem;border:0;padding:.2rem .5rem}dialog{max-width:500px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:14px;padding:26px;color:var(--ink)}dialog::backdrop{background:#10203480}dialog p{line-height:1.6;font-size:.95rem}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-heading h2{margin:0}#drive-file-link{display:block;font-size:.875rem;margin:1rem 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(max-width:1200px){main{grid-template-columns:240px minmax(250px,1fr) 240px}.library,.inspector{padding:20px 15px}.map-toolbar{flex-wrap:wrap;gap:.6rem}.map-heading{flex-basis:100%}.map-actions{width:100%;justify-content:flex-end}}@media(max-width:850px){main{grid-template-columns:230px minmax(250px,1fr);height:auto;min-height:calc(100dvh - 72px)}.workspace{min-height:640px}.inspector{grid-column:1/-1;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.inspector .section-label,.inspector>h2{grid-column:1/-1}.node-list{grid-column:1;grid-row:3/6}.inspector form,.inspector #connection-section{grid-column:2}}@media(max-width:560px){header{padding:12px 14px;height:auto;min-height:72px;flex-wrap:wrap}.brand{font-size:1rem}.header-actions{flex-wrap:wrap;gap:.3rem}main{display:flex;flex-direction:column}.library{border-right:0;border-bottom:1px solid var(--line);padding:18px}.library h2{font-size:1.25rem;margin-bottom:.5rem}.library form{display:flex;flex-wrap:wrap;gap:.5rem}.library form label{width:100%;margin-top:0}.library form input{flex:1;min-width:160px}.library form button{width:auto;margin:0}.map-list{max-height:160px;overflow:auto}.library-bottom{padding-top:.6rem;display:flex;flex-wrap:wrap;gap:.5rem}.library-bottom button{width:auto}.library-bottom p{width:100%;margin:.3rem 0}.workspace{min-height:550px}.map-toolbar{padding:15px}.map-actions{justify-content:flex-start}.canvas-controls{bottom:16px;gap:1px;padding:4px;max-width:96%}.canvas-controls button{padding:.5rem}.inspector{display:block;padding:20px}.node-list{max-height:160px}dialog{padding:20px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
