/* Sylva Lavagna: shared theme tokens, no dependency on a fixed palette. */
#boardsView{position:relative;min-width:0;min-height:0;overflow:hidden;background:var(--bg)}
.board-shell{flex:1 1 0%;width:100%;min-width:0;min-height:0;height:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;color:var(--text);font-family:var(--theme-ui,Inter,system-ui,sans-serif);background:var(--bg)}
.board-shell *{box-sizing:border-box}
.board-shell button,.board-shell input,.board-shell textarea,.board-shell select{font:inherit;color:inherit}
.board-shell button{cursor:pointer;touch-action:manipulation}
.board-shell button:disabled{opacity:.36;cursor:default}
.board-shell button:focus-visible,.board-shell input:focus-visible,.board-shell select:focus-visible,.board-shell textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.board-head{display:flex;gap:14px;align-items:center;padding:13px 20px;border-bottom:1px solid var(--line);background:var(--surface-strong);z-index:5}
.board-identity{display:grid;gap:3px;min-width:0;flex:1}.board-identity small{font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.board-identity select{font-size:18px;font-weight:650;border:0;background:transparent;max-width:100%;min-width:100px;padding:0 18px 0 0;outline-offset:2px}
.board-shell select option{background:var(--bg);color:var(--text)}
.board-head-actions{display:flex;gap:5px;align-items:center}.board-button{border:1px solid var(--line);border-radius:9px;background:var(--surface-strong);padding:8px 11px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;font-size:12px!important}
.board-button:hover{background:var(--accent-soft)}.board-button.active{border-color:var(--accent);background:var(--accent-soft)}.board-button.primary{background:var(--accent);color:var(--bg);border-color:transparent}
.board-button svg,.board-tool svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}
.board-workspace{position:relative;min-height:0;overflow:hidden;display:flex}.board-stage{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden;touch-action:none;user-select:none;outline:none;background-color:var(--bg);background-image:radial-gradient(circle,var(--line) 1.1px,transparent 1.2px);background-size:24px 24px}
.board-stage[data-tool="pan"]{cursor:grab}.board-stage[data-dragging="true"]{cursor:grabbing}.board-stage[data-tool="pen"],.board-stage[data-tool="connect"]{cursor:crosshair}
.board-world{position:absolute;left:0;top:0;width:0;height:0;transform-origin:0 0;will-change:transform}
.board-svg{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}
.board-edge-hit{stroke:transparent;stroke-width:18;fill:none;pointer-events:stroke;cursor:pointer}.board-stroke-hit{stroke:transparent;fill:none;pointer-events:stroke;cursor:pointer}
.board-node{position:absolute;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);box-shadow:0 5px 16px #0000000b;overflow:hidden;cursor:move;contain:layout style}
.board-node::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--node-color,var(--accent))}
.board-node.selected{outline:2px solid var(--accent);outline-offset:3px}.board-node.locked{cursor:default}.board-node[data-type="text"]{background:transparent;border-color:transparent;box-shadow:none}.board-node[data-type="text"]::before{display:none}.board-node[data-type="text"] .board-node-title{font-size:26px;line-height:1.2;font-weight:600}
.board-node[data-type="note"]{background:color-mix(in srgb,var(--node-color) 12%,var(--surface-strong))}
.board-node[data-type="frame"]{background:color-mix(in srgb,var(--node-color) 5%,transparent);border:1px dashed color-mix(in srgb,var(--node-color) 55%,var(--line));box-shadow:none;overflow:visible;pointer-events:none}
.board-node[data-type="frame"]::before{display:none}.board-node[data-type="frame"] .board-node-header{pointer-events:auto;background:color-mix(in srgb,var(--node-color) 12%,var(--surface-strong));border-radius:8px 8px 0 0;height:36px;padding:7px 12px;cursor:move}.board-node[data-type="frame"] .board-resize{pointer-events:auto}
.board-node-header{padding:16px 17px 5px;display:flex;justify-content:space-between;gap:8px;align-items:start}.board-node-kind{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.board-node-title{font-size:16px;font-weight:650;line-height:1.35;overflow-wrap:anywhere;white-space:pre-wrap;margin:0;padding:4px 17px 8px}.board-node-copy{font-size:13px;line-height:1.6;padding:0 17px 16px;white-space:pre-wrap;overflow:hidden;overflow-wrap:anywhere;flex:1;color:var(--text);opacity:.9}
.board-node-image{width:100%;min-height:0;flex:1;object-fit:contain;background:color-mix(in srgb,var(--bg2) 70%,transparent);pointer-events:none}.board-node[data-type="codex"] .board-node-image{flex:none;height:95px;object-fit:cover}.board-node-open{border:0;border-top:1px solid var(--line);background:transparent;text-align:left;padding:9px 17px;font-size:11px!important;color:var(--accent)!important}
.board-resize{position:absolute;right:0;bottom:0;width:25px;height:25px;border:0;background:transparent;color:var(--muted);cursor:nwse-resize;opacity:0}.board-node.selected .board-resize{opacity:1}.board-node.locked .board-resize{display:none}.board-resize::after{content:'';position:absolute;right:7px;bottom:7px;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor}
.board-marquee{position:absolute;pointer-events:none;border:1px solid var(--accent);background:var(--accent-soft)}
.board-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;pointer-events:none;padding:30px 20px 100px}.board-empty>div{max-width:390px;pointer-events:auto}.board-empty img{width:55px;height:55px;object-fit:contain;opacity:.65;margin-bottom:15px}.board-empty h2{font:500 28px/1.2 var(--theme-heading,Georgia,serif);margin:0 0 13px}.board-empty p{font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 22px}.board-empty-actions{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}.board-empty[hidden]{display:none}
.board-dock{position:absolute;z-index:6;bottom:17px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:3px;padding:6px;border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 22px #00000010;background:var(--surface-strong);max-width:calc(100% - 24px);overflow-x:auto;scrollbar-width:thin}
.board-tool{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:46px;min-height:48px;padding:6px 2px;border:0;border-radius:8px;background:transparent;color:var(--muted)!important;font-size:9px!important}.board-tool:hover,.board-tool[aria-pressed="true"]{color:var(--text)!important;background:var(--accent-soft)}.board-tool[aria-pressed="true"]{box-shadow:inset 0 -2px var(--accent)}
.board-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 16px;border-top:1px solid var(--line);background:var(--surface-strong);min-height:40px;font-size:10px;color:var(--muted)}.board-footer-actions{display:flex;gap:4px;align-items:center}.board-footer .board-button{padding:4px 8px;min-height:28px}.board-hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.board-side{position:absolute;top:12px;left:12px;bottom:86px;width:250px;z-index:7;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);box-shadow:0 8px 28px #00000015;display:flex;flex-direction:column;overflow:hidden}.board-side[hidden]{display:none}.board-side.board-inspector{left:auto;right:12px;width:280px}
.board-side-head{padding:13px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:8px}.board-side-head h3{margin:0;font-size:14px;font-weight:650}.board-side-body{padding:14px;min-height:0;overflow:auto;flex:1}.board-side input:not([type="checkbox"]),.board-side textarea,.board-dialog input:not([type="checkbox"]),.board-dialog textarea{width:100%;padding:9px 10px;background:var(--bg);border:1px solid var(--line);border-radius:7px;min-width:0;resize:vertical;font-size:13px}.board-side textarea{min-height:130px}.board-side label,.board-dialog label{display:block;font-size:11px;color:var(--muted);margin:0 0 6px}.board-field{margin-bottom:14px}.board-library-entry{display:flex;gap:9px;align-items:center;border:0;border-bottom:1px solid var(--line);width:100%;padding:12px 2px;background:transparent;text-align:left;font-size:12px!important}.board-library-entry>i{display:grid;place-items:center;width:30px;height:34px;background:var(--accent-soft);border-radius:5px;font-style:normal;flex:none}.board-library-entry span{overflow-wrap:anywhere}.board-library-entry small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.board-small{font-size:11px;line-height:1.6;color:var(--muted)}.board-inspector-actions{display:flex;gap:6px;flex-wrap:wrap}.board-color{height:40px;padding:3px!important;width:65px!important}.board-check{display:flex!important;gap:9px;align-items:center;min-height:30px}.board-object-list{display:grid;gap:4px;margin-top:14px}.board-object-list button{border:0;text-align:left;padding:7px;background:transparent;border-radius:5px;font-size:11px}.board-object-list button:hover{background:var(--accent-soft)}
.board-dialog{max-width:480px;width:calc(100vw - 36px);max-height:calc(100dvh - 40px);border:1px solid var(--line);border-radius:16px;padding:25px;color:var(--text);background:var(--surface-strong);font-family:var(--theme-ui,Inter,system-ui,sans-serif);box-shadow:var(--shadow);overflow:auto}.board-dialog::backdrop{background:#10181066}.board-dialog h2{margin:0 0 15px;font-size:22px}.board-dialog p{font-size:13px;line-height:1.6;color:var(--muted)}.board-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.board-dialog button,.board-dialog input{font:inherit;color:inherit}.board-dialog button{cursor:pointer}.board-danger{color:var(--danger)!important}.board-dialog kbd{padding:2px 5px;border:1px solid var(--line);border-radius:3px;font-size:11px}
@media(max-width:950px){.board-head{padding:10px 12px;gap:8px}.board-head-actions .board-label{display:none}.board-side{width:230px}.board-side.board-inspector{width:250px}.board-identity select{font-size:16px}.board-dock{bottom:12px}.board-tool{width:43px}.board-hint{max-width:45vw}}
@media(pointer:coarse){.board-button{min-height:42px}.board-footer .board-button{min-height:36px}.board-side input,.board-side textarea,.board-dialog input{font-size:16px!important}.board-resize{width:36px;height:36px}.board-node-open{min-height:40px}.board-library-entry{min-height:46px}.board-tool{min-height:52px}}
@media(max-width:600px){.board-head-actions{gap:2px}.board-head-actions .board-button{padding:7px}.board-identity small{max-width:140px}.board-footer{padding:5px 8px}.board-hint{display:none}.board-footer-actions{margin-left:auto}.board-side,.board-side.board-inspector{left:8px;right:8px;top:8px;width:auto;bottom:82px}.board-tool{width:41px}.board-empty h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){.board-shell *{scroll-behavior:auto}}
/* Keep every control reachable in tablet portrait and split-screen windows. */
.board-head-actions,.board-footer-actions{flex-shrink:0}
.board-footer{min-width:0;flex-wrap:wrap}
.board-hint{min-width:0;flex:1 1 160px}
.board-footer-actions{max-width:100%;overflow-x:auto;margin-left:auto}
.board-head-actions .board-button{min-width:40px}
@media(max-width:1100px){.board-head-actions .board-label{display:none}}
@media(max-width:700px){.board-head{flex-wrap:wrap}.board-identity{flex-basis:100%}.board-head-actions{margin-left:auto}.board-footer .board-label{display:none}.board-footer-actions{gap:6px}}
@media(pointer:coarse){.board-head .board-button,.board-footer .board-button{min-width:44px;min-height:44px}.board-identity select{min-height:44px}.board-tool{min-width:44px}.board-side select{font-size:16px}}
@media(max-height:600px){.board-head{padding-block:6px}.board-side{top:8px;bottom:78px}.board-dock{bottom:8px}}
