:root{--ink:#18262a;--muted:#6f8083;--soft:#9babad;--line:#dce4e1;--paper:#f6f8f5;--panel:#fbfcfa;--dark:#132125;--mint:#bfe4d5;--accent:#316d63;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:13px var(--sans);height:100vh;overflow:hidden}.topbar{height:60px;background:#fbfcfa;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 22px;gap:30px;position:relative;z-index:2}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#1b2b2f;font:500 12px var(--mono);letter-spacing:.12em;min-width:170px}.brand-mark{width:25px;height:25px;border:1px solid #8ca49d;display:flex;align-items:center;justify-content:center;gap:2px;border-radius:6px;background:#e7f1eb}.brand-mark i{width:3px;height:9px;background:#3a766a;display:block;border-radius:2px}.brand-mark i:nth-child(2){height:14px;background:#c3794f}.brand-mark i:nth-child(3){height:6px}.doc-title{display:flex;align-items:center;gap:12px;flex:1}.doc-title input{border:0;background:transparent;font:600 13px var(--sans);width:190px;color:var(--ink);outline:none}.doc-title span{font:10px var(--mono);color:#849390}.top-actions{display:flex;align-items:center;gap:8px}.icon-btn,.quiet-btn,.primary-btn{border:1px solid transparent;background:transparent;color:#46575a;height:32px;border-radius:5px;padding:0 10px;font:11px var(--sans);cursor:pointer}.icon-btn{font-size:20px;padding:0 7px}.icon-btn:disabled{opacity:.32}.quiet-btn{border-color:#d9e1dd}.primary-btn{background:#244d49;border-color:#244d49;color:#eff8f2;padding:0 14px;letter-spacing:.01em}.primary-btn span{color:#bfe4d5;margin-right:5px}.divider{height:20px;width:1px;background:var(--line);margin:0 5px}.workspace{height:calc(100vh - 60px);display:grid;grid-template-columns:176px minmax(300px,1fr) 260px}.tools{background:#f0f4f0;border-right:1px solid var(--line);padding:22px 12px 14px;display:flex;flex-direction:column;gap:3px}.tool-caption,.section-eyebrow,.panel-label{font:9px var(--mono);letter-spacing:.12em;color:#8b9996}.tool-caption{padding:0 10px 9px}.tool{height:39px;width:100%;border:1px solid transparent;background:transparent;border-radius:5px;display:flex;align-items:center;gap:11px;padding:0 9px;color:#516064;text-align:left;font:11px var(--sans);cursor:pointer}.tool:hover{background:#e6ede8}.tool.active{background:#dfece5;border-color:#cfdfd7;color:#214a43}.tool kbd{margin-left:auto;font:9px var(--mono);color:#94a19e}.tool-rule{height:1px;background:#dce4df;margin:10px 4px}.tool-icon{font-size:17px;width:18px;text-align:center;color:#557168}.cursor{font-size:17px}.shape-icon{display:block;width:16px;height:13px;border:1.5px solid #59746c}.process{background:#d7e9e2;border-radius:2px}.decision{width:12px;height:12px;transform:rotate(45deg);margin:0 2px;background:#efe5c9;border-color:#90794b}.terminator{border-radius:20px;background:#dbe8ef;border-color:#617982}.text-icon{font:600 17px Georgia;color:#557168}.link-icon{font-size:17px;width:18px;text-align:center;color:#557168}.group-icon{font-size:16px}.tool-spacer{flex:1}.view-caption{margin-top:auto}.tool.compact{height:32px}.stage-wrap{display:flex;flex-direction:column;min-width:0;background:#e7eeeb;padding:0 18px 12px}.canvas-topline{height:43px;display:flex;align-items:center;justify-content:space-between;color:#73827f;font:9px var(--mono);letter-spacing:.05em}.canvas-topline b{color:#b1bdb8;padding:0 5px}.canvas-topline span:last-child{font-size:9px}.live-dot{display:inline-block;width:6px;height:6px;background:#64a48d;border-radius:50%;margin-right:7px}.stage{position:relative;flex:1;overflow:hidden;border:1px solid #d5dfdb;border-radius:7px;background-color:#f7f9f6;background-image:radial-gradient(#cad5d0 0.75px,transparent .75px);background-size:20px 20px;box-shadow:0 3px 14px #30443d0a;touch-action:none;outline:none}.stage:focus-visible{border-color:#86a99a}#canvas{width:100%;height:100%;display:block;overflow:visible;touch-action:none}.empty-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;color:#7e8d89;pointer-events:none;width:270px}.hint-cross{width:38px;height:38px;border:1px solid #cbd8d1;border-radius:50%;display:grid;place-items:center;margin:0 auto 13px;color:#739184;font-size:19px;background:#f3f7f3}.empty-hint p{font:600 14px var(--sans);color:#415653;margin:0 0 5px}.empty-hint span{font-size:11px}.empty-hint small{display:block;margin-top:12px;font:10px var(--mono);color:#9ba8a4}.empty-hint kbd,.shortcut kbd,.canvas-footer kbd{font:9px var(--mono);border:1px solid #cfd9d4;border-radius:3px;padding:2px 4px;background:#f7faf7;color:#70827b}.canvas-footer{height:28px;display:flex;align-items:flex-end;justify-content:space-between;color:#879591;font:9px var(--mono);letter-spacing:.04em}.canvas-footer .keycap{font-style:normal;border:1px solid #ccd7d2;border-radius:3px;padding:2px 4px;color:#6c7b77;font-size:8px}.lock-icon{font-size:12px;color:#709384;margin-left:3px}.inspector{background:#fbfcfa;border-left:1px solid var(--line);padding:22px 17px 12px;display:flex;flex-direction:column;min-width:0}.inspector-head{display:flex;align-items:center;justify-content:space-between;padding:0 1px 20px;border-bottom:1px solid #e7ece9}.inspector-head h2{font:600 17px var(--sans);margin:5px 0 0;color:#26373a}.more-btn{border:0;background:transparent;font-size:19px;color:#84918f;cursor:pointer;transform:rotate(90deg)}.property-content{flex:1;overflow:auto}.empty-inspector{padding:22px 4px 25px;border-bottom:1px solid #e7ece9;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.inspector-glyph{width:27px;height:27px;border:1px solid #d9e3de;border-radius:5px;display:grid;place-items:center;color:#678278;margin-bottom:4px}.empty-inspector strong{font-size:11px;color:#465654}.empty-inspector span{font-size:10px;line-height:1.55;color:#899693;max-width:190px}.panel-section{padding:18px 2px;border-bottom:1px solid #e7ece9}.panel-label{margin-bottom:12px}.tip-row{display:flex;align-items:center;gap:10px;margin:9px 0;color:#657471;font-size:10px}.tip-index{font:9px var(--mono);color:#9ba9a3}.demo-section{padding-bottom:16px}.demo-head{display:flex;align-items:center;justify-content:space-between}.demo-head .panel-label{margin:0 0 4px}.demo-head span{font-size:10px;color:#8c9995}.demo-btn{background:#e4efe9;border:1px solid #d3e3da;border-radius:4px;padding:7px 8px;color:#3d6b5b;font:10px var(--sans);cursor:pointer}.demo-note{font-size:9px;line-height:1.5;color:#9aa5a2;margin-top:11px}.shortcut{display:flex;align-items:center;justify-content:space-between;margin:10px 0;color:#687774;font-size:10px}.inspector-bottom{height:30px;display:flex;align-items:flex-end;justify-content:space-between;color:#9ca8a4;font:8px var(--mono);letter-spacing:.05em}.saved-indicator{display:flex;align-items:center;gap:6px;font:9px var(--sans);letter-spacing:0;color:#82908b}.saved-indicator i{width:6px;height:6px;background:#63a38b;border-radius:50%}.selection-badge{height:39px;margin:15px 0 19px;display:flex;align-items:center;gap:8px;border:1px solid #dce6e1;border-radius:5px;padding:0 9px;background:#f6f9f6;font:9px var(--mono);letter-spacing:.06em;color:#60716c}.selection-dot{width:7px;height:7px;border-radius:2px;background:#5e9480}.selection-count{margin-left:auto;color:#93a09c}.field-label{display:block;color:#84918e;font:9px var(--mono);letter-spacing:.09em;margin:0 0 7px}.property-content textarea{width:100%;resize:vertical;min-height:68px;border:1px solid #dce4e1;border-radius:4px;background:#fff;padding:9px;color:#304143;font:12px var(--sans);outline:none}.property-content input:focus,.property-content textarea:focus,.property-content select:focus{border-color:#80a99a;box-shadow:0 0 0 2px #a6cbbb38;outline:none}.field-row{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.color-field{height:30px;display:flex;align-items:center;gap:8px;border:1px solid #dce4e1;border-radius:4px;padding:3px 7px;color:#778580;font:9px var(--mono)}.color-field input{width:18px;height:18px;border:0;padding:0;background:none}.position-section{margin-top:20px}.number-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.number-grid label{color:#8c9995;font:9px var(--mono);letter-spacing:.06em}.number-grid input{display:block;width:100%;margin-top:5px;height:30px;border:1px solid #dce4e1;border-radius:4px;padding:0 7px;font:11px var(--mono);color:#42524f;background:#fff}.property-content select{border:1px solid #dce4e1;border-radius:4px;background:#fff;color:#52635e;height:29px;padding:0 8px;font:10px var(--sans)}.delete-btn{width:100%;margin-top:20px;height:34px;border:1px solid #eadfda;border-radius:4px;background:#fff9f6;color:#a16350;text-align:left;padding:0 9px;font:10px var(--sans);cursor:pointer}.delete-btn span{float:right;color:#b49a90}.multi-copy{font-size:11px;color:#7e8a87;line-height:1.6}.toast{position:absolute;left:50%;bottom:18px;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:#203b38;color:#f2faf5;padding:8px 13px;border-radius:4px;font:10px var(--sans);box-shadow:0 6px 15px #182d2a30;transition:.18s}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:920px){.workspace{grid-template-columns:145px minmax(260px,1fr) 220px}.tools{padding-inline:8px}.inspector{padding-inline:12px}.brand{min-width:125px}}@media(max-width:700px){body{overflow:auto;height:100dvh}.topbar{padding:0 10px;gap:8px;height:54px}.brand{min-width:auto;font-size:10px}.doc-title input{width:120px}.doc-title span,.quiet-btn{display:none}.top-actions{gap:3px}.workspace{height:calc(100dvh - 54px);grid-template-columns:58px minmax(0,1fr);grid-template-rows:minmax(280px,1fr) auto}.tools{grid-row:1 / span 2;padding:12px 5px}.tool{justify-content:center;padding:0;gap:0}.tool>span:not(.tool-icon):not(.shape-icon):not(.link-icon){display:none}.tool kbd{display:none}.tool-rule{margin:6px 2px}.tool-caption{font-size:7px;padding:0 0 7px;text-align:center}.tool-spacer{min-height:8px}.view-caption{display:none}.tool.compact span:last-of-type{display:none}.stage-wrap{padding:0 8px 7px}.canvas-topline{height:34px;font-size:8px}.canvas-footer{font-size:7px}.inspector{grid-column:2;max-height:235px;border-left:0;border-top:1px solid var(--line);padding:12px}.inspector-head{padding-bottom:10px}.inspector-head h2{font-size:14px}.empty-inspector{padding:12px 4px;display:grid;grid-template-columns:28px 1fr;align-items:center}.empty-inspector .inspector-glyph{grid-row:span 2;margin:0}.empty-inspector span{max-width:none}.panel-section{padding:10px 2px}.shortcut{margin:6px 0}.inspector-bottom{display:none}}
/* Hosted start and preview entry */
#previewBadge{font:9px var(--mono);letter-spacing:.06em;color:#9a7149;background:#f4ecdc;border:1px solid #e8dcc6;border-radius:3px;padding:4px 6px}.start-screen{position:fixed;inset:60px 0 0;z-index:5;background:#eaf0ec;display:grid;grid-template-columns:minmax(420px,620px) minmax(320px,480px);align-items:center;justify-content:center;gap:8vw;padding:48px 7vw}.start-screen[hidden]{display:none}.start-card{max-width:525px}.start-brand{display:flex;align-items:center;gap:10px;font:500 11px var(--mono);letter-spacing:.12em;color:#233a3c}.start-edition{margin-left:4px;font:9px var(--mono);color:#96a5a0;letter-spacing:.08em}.start-kicker,.aside-label{margin-top:66px;font:9px var(--mono);letter-spacing:.12em;color:#6d8c7d}.start-card h1{margin:18px 0 13px;font:500 clamp(38px,5vw,60px)/1.02 var(--sans);letter-spacing:-.055em;color:#263b3b}.start-card h1 em{font-family:Georgia,serif;font-weight:400;color:#548373}.start-card>p{max-width:400px;margin:0 0 28px;color:#71817d;font-size:13px;line-height:1.7}.start-actions{display:grid;gap:9px;max-width:425px}.start-actions button{position:relative;display:grid;grid-template-columns:34px 1fr 22px;grid-template-rows:1fr 1fr;align-items:center;min-height:69px;text-align:left;border-radius:5px;padding:11px 14px;cursor:pointer}.start-primary{border:1px solid #345e54;background:#315f55;color:#f0f7f1}.start-secondary{border:1px solid #cbd8d1;background:#f6f9f5;color:#334745}.start-action-icon{grid-row:span 2;width:26px;height:26px;border:1px solid #ffffff40;border-radius:4px;display:grid;place-items:center;font-size:16px;color:#c5e1d1}.start-secondary .start-action-icon{border-color:#d4dfda;color:#608577}.start-actions strong{font-size:12px;align-self:end}.start-actions small{font-size:10px;align-self:start;margin-top:3px;color:#c1d4cb}.start-secondary small{color:#879591}.start-actions b{grid-column:3;grid-row:span 2;font-size:18px;font-weight:400;color:#b8d7c6}.start-secondary b{color:#78968a}.start-foot{max-width:425px;margin-top:31px;padding-top:13px;border-top:1px solid #d4dfd9;display:flex;justify-content:space-between;color:#91a09b;font:8px var(--mono);letter-spacing:.05em}.start-foot .live-dot{margin-right:6px}.start-aside{align-self:center;max-width:440px;width:100%;padding-top:88px}.start-aside .aside-label{margin:0 0 15px;color:#97a7a1}.map-preview{height:226px;border:1px solid #d1ddd6;border-radius:7px;background-color:#f4f8f4;background-image:radial-gradient(#cbd8d1 .75px,transparent .75px);background-size:18px 18px;display:grid;place-items:center}.map-preview svg{width:90%;overflow:visible}.map-preview path{fill:none;stroke:#93a89d;stroke-width:1.4}.map-preview ellipse,.map-preview rect,.map-preview polygon{fill:#deebe3;stroke:#526f64;stroke-width:1.3}.map-preview ellipse{fill:#e1eaf0;stroke:#617a80}.map-preview polygon{fill:#f0e6cb;stroke:#8b7952}.map-preview text{font:8px var(--mono);fill:#4c615a;text-anchor:middle;dominant-baseline:middle}.aside-caption{display:flex;justify-content:space-between;margin-top:10px;color:#91a09b;font:8px var(--mono);letter-spacing:.04em}@media(max-width:850px){.start-screen{grid-template-columns:minmax(0,560px);gap:0;padding:32px 7vw;overflow:auto}.start-aside{display:none}.start-kicker{margin-top:40px}}@media(max-width:700px){.start-screen{inset:54px 0 0;padding:24px 7vw}.start-card h1{font-size:42px}.start-kicker{margin-top:38px}.start-foot{font-size:7px}}
@media(max-width:700px){.top-actions #previewReturn{display:inline-flex;align-items:center;padding:0 7px;font-size:9px}.doc-title #previewBadge{display:none}}

.file-menu{position:relative}.file-menu summary{display:flex;align-items:center;min-height:44px;padding:8px 12px;border:1px solid #cbd8d1;border-radius:5px;cursor:pointer;font-size:12px;list-style:none}.file-actions{position:absolute;right:0;top:100%;z-index:40;min-width:220px;max-width:calc(100vw - 24px);padding:12px;display:grid;gap:8px;border:1px solid #b5c8bf;border-radius:8px;background:#f5f8f3;box-shadow:0 12px 25px #182e2220}.file-actions .quiet-btn,.file-actions .primary-btn{display:inline-flex!important;align-items:center;justify-content:flex-start;min-height:44px;padding:8px 12px;font-size:12px}.topbar{overflow:visible;z-index:20}.node:focus-visible .node-shape{stroke:#176957;stroke-width:3}.canvas-topline{min-width:0}.canvas-topline>span{min-width:0;overflow-wrap:anywhere}@media(max-width:700px){.topbar{height:auto;min-height:104px;flex-wrap:wrap;padding:8px 12px;gap:8px}.doc-title{flex:1;min-width:0;max-width:calc(100% - 100px)}.doc-title input{width:100%;min-width:0}.top-actions{width:100%;justify-content:flex-end;gap:6px;flex-wrap:wrap}.top-actions>.icon-btn,.top-actions>#previewReturn{min-width:44px;min-height:44px}.workspace{height:auto;min-height:calc(100dvh - 112px);grid-template-columns:56px minmax(0,1fr)}.stage-wrap{min-width:0;grid-template-rows:auto 420px auto}.stage{height:420px;min-height:300px;min-width:0}.canvas-topline{flex-wrap:wrap;gap:6px;white-space:normal;padding:10px}.canvas-footer{flex-wrap:wrap;white-space:normal;gap:8px}.inspector{min-width:0;width:auto}.start-screen{inset:0;z-index:50;min-height:100dvh}.tools .tool{min-height:44px}.tools{min-width:0}}

.edge-hit:focus-visible{stroke:#4a8c78;stroke-opacity:.5;outline:none}

/* Local UI type only. Canvas geometry, coordinates and monospace values are unchanged. */
:root{--sans:'DM Sans Local','DM Sans Fallback',Arial,sans-serif}.start-card h1 em{font-family:var(--sans)}#canvas .node text{font-family:'DM Sans Local','DM Sans Fallback',Arial,sans-serif}

/* Local diagram library: text actions, bounded menus, no floating arrow decoration. */
.library-menu .file-actions{width:min(390px,calc(100vw - 20px));max-height:70dvh;overflow:auto;gap:8px}.library-menu input[type=search]{width:100%;min-height:40px}.library-menu .library-row{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;padding:8px 0;border-bottom:1px solid var(--line)}.library-row button{white-space:normal;height:auto;min-height:40px;text-align:left;overflow-wrap:anywhere}.library-menu label,.library-menu small{line-height:1.5}.library-menu [aria-current=true]{font-weight:700;background:#e7f1eb}.top-actions .icon-btn{min-width:44px;width:auto}.doc-title input{max-width:100%}#edgeLabel{width:100%;min-height:44px;border:1px solid var(--line);padding:8px;font:inherit}
@media(max-width:700px){.library-menu .file-actions{position:fixed;left:10px;right:10px;top:100px;width:auto;max-height:calc(100dvh - 120px)}.top-actions{flex-wrap:wrap}.topbar{height:auto;min-height:100px}.doc-title span{white-space:normal}.doc-title{min-width:0;flex-wrap:wrap}.doc-title input{width:100%}.start-actions button{grid-template-columns:1fr}.start-actions strong,.start-actions small{grid-column:1}.top-actions .icon-btn{font-size:12px}}
/* Readable secondary labels, including the existing canvas chrome. */
:root{--muted:#496157}.tool-caption,.canvas-topline,.canvas-topline span,.canvas-footer,.canvas-footer span,.canvas-footer .keycap,.section-eyebrow,.empty-inspector strong,.empty-inspector span,.panel-label,.tip-index,.demo-head span,.demo-note,.shortcut kbd,.saved-indicator,.inspector-bottom span,.doc-title span,.field-label,.number-grid label,.tool kbd{color:#496157}

#clearBtn{color:#496157;font-size:13px;width:auto;min-width:44px;min-height:40px}
.library-menu .file-actions button{font:inherit;color:#314c42;background:#edf4ed;border:1px solid #bdcec4;border-radius:5px;padding:9px 12px;min-height:44px;cursor:pointer;text-align:left}.library-menu .file-actions button:hover{background:#deebe2}#clearBtn{transform:none;flex-shrink:0}.topbar [hidden],.workspace [hidden],.file-menu [hidden]{display:none!important}
@media(max-width:700px){.topbar{display:grid;grid-template-columns:auto minmax(0,1fr);padding:8px 10px;gap:8px}.doc-title{max-width:none;grid-column:2;min-width:0}.brand{grid-column:1}.top-actions{grid-column:1/-1;justify-content:flex-end}.doc-title #saveState{display:block;font-size:11px;line-height:1.35;flex-basis:100%}#previewBadge:not([hidden]){display:inline-flex}.inspector-head{flex-wrap:wrap;gap:10px}.library-menu .file-actions{top:130px;max-height:calc(100dvh - 150px)}}

.file-actions{max-height:70dvh;overflow:auto}.library-menu #libraryClose{font-weight:600;background:#dcebe0}
.start-edition,.start-kicker,.start-secondary small,.start-foot,.start-foot span{color:#496157}.start-edition,.start-kicker{font-size:11px}.start-secondary small{font-size:12px}.start-foot{font-size:11px;flex-wrap:wrap;gap:8px}#previewBadge{color:#694e2f;font-size:11px}

.start-actions button{grid-template-columns:1fr;grid-template-rows:auto auto}.start-actions strong,.start-actions small{grid-column:1}.aside-label,.aside-caption,.start-card>p{color:#496157}.aside-label,.aside-caption{font-size:11px}

.start-aside .aside-label{color:#496157}
