.lb-library{padding:24px 0}.lb-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.lb-intro p{color:var(--muted);max-width:580px}.lb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.lb-card{display:flex;flex-direction:column;gap:12px;text-align:left;padding:24px;background:var(--card);border:1px solid var(--line);border-radius:12px;color:var(--ink);cursor:pointer;min-height:170px}.lb-card:hover{border-color:var(--brand);transform:translateY(-2px)}.lb-card strong{font:600 23px var(--serif)}.lb-card small{color:var(--muted)}.lb-card span{font:12px var(--mono);color:var(--brand)}.lb-message{padding:20px;background:var(--paper-deep);border-radius:8px;color:var(--ink-soft)}
.lb-dialog{position:fixed;inset:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px);max-width:none;max-height:none;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);overflow:hidden;overscroll-behavior:none}.lb-dialog::backdrop{background:rgba(22,20,18,.6)}.lb-app{height:100%;display:flex;flex-direction:column}.lb-header{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap}.lb-title{flex:1;min-width:120px;max-width:380px;font:600 18px var(--serif);border:0;background:transparent;color:var(--ink);padding:6px}.lb-status{font:11px var(--mono);margin-left:auto;max-width:300px;overflow-wrap:anywhere}.lb-status[data-state=SYNCED]{color:var(--c-concl)}.lb-status[data-state=CONFLICT],.lb-status[data-state=CACHE_ERROR]{color:var(--vermillion)}.lb-tool{font:12px var(--sans);padding:7px 10px;min-height:36px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--ink);cursor:pointer}.lb-tool:hover,.lb-tool.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.lb-tools{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--paper)}.lb-sep{width:1px;height:24px;background:var(--line);margin:0 5px}.lb-tools label{display:flex;align-items:center;gap:4px;font-size:11px}.lb-tools input[type=color]{width:30px;height:28px;padding:2px;border:1px solid var(--line);background:var(--card)}.lb-tools input[type=range]{width:70px}.lb-content{flex:1;min-height:0;display:flex;position:relative}.lb-stage{flex:1;position:relative;overflow:hidden;touch-action:none;user-select:none;background-color:var(--paper);background-image:radial-gradient(var(--line-strong) 1px,transparent 1px);outline:none}.lb-stage[data-mode=pen]{cursor:crosshair}.lb-stage[data-mode=pan]{cursor:grab}.lb-world{position:absolute;left:0;top:0;width:1px;height:1px;transform-origin:0 0;overflow:visible}.lb-links{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}.lb-ink{position:absolute;inset:0;pointer-events:none}.lb-node{position:absolute;display:flex;flex-direction:column;border:1px solid var(--line-strong);border-radius:10px;background:var(--card);color:var(--ink);box-shadow:0 4px 14px rgba(33,30,26,.05);overflow:hidden;min-width:160px;min-height:90px;touch-action:none}.lb-node.selected{border:2px solid var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 13%,transparent)}.lb-node-head{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:28px;padding:5px 10px;background:var(--paper-deep);font:10px var(--mono);color:var(--muted);cursor:move}.lb-node-head button{border:0;background:transparent;color:var(--brand);font:11px var(--sans);cursor:pointer}.lb-node-body{flex:1;min-height:0;padding:12px;overflow:auto;font:15px/1.65 var(--sans);white-space:pre-wrap;user-select:text}.lb-node-body img{max-width:100%;max-height:100%;object-fit:contain;display:block;margin:auto}.lb-node-body table{border-collapse:collapse;width:100%;font-size:12px;white-space:normal}.lb-node-body td{border:1px solid var(--line-strong);padding:5px;min-width:50px}.lb-node-resize{position:absolute;right:2px;bottom:2px;width:18px;height:18px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 45%,var(--line-strong) 46% 52%,transparent 53%);touch-action:none}.lb-hint{position:absolute;bottom:12px;left:12px;max-width:calc(100% - 160px);font:11px/1.6 var(--sans);padding:7px 12px;background:var(--card);border:1px solid var(--line);border-radius:8px;pointer-events:none;color:var(--muted)}.lb-zoom{position:absolute;bottom:12px;right:12px;display:flex;align-items:center;gap:4px;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:8px}.lb-zoom span{font:11px var(--mono);width:45px;text-align:center}.lb-panel{width:280px;max-width:90vw;overflow:auto;padding:16px;border-left:1px solid var(--line);background:var(--card);user-select:text}.lb-panel[hidden]{display:none}.lb-panel h3{font:600 19px var(--serif);margin-bottom:12px}.lb-panel label{display:block;font-size:12px;margin:12px 0 5px;color:var(--muted)}.lb-panel select,.lb-panel textarea{width:100%;font:13px/1.6 var(--sans);padding:8px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink)}.lb-panel select[multiple]{height:110px}.lb-panel textarea{min-height:110px;resize:vertical;user-select:text}.lb-panel .lb-tool{margin:6px 4px 0 0}.lb-reference{display:block;border:1px solid var(--line);padding:10px;margin:8px 0;border-radius:7px;background:var(--paper);color:var(--brand);text-align:left;width:100%;cursor:pointer}.lb-conflict{padding:8px 14px;background:var(--c-think-bg);color:var(--ink);font:12px var(--sans);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lb-conflict[hidden]{display:none}
@media(max-width:850px){.lb-panel{position:absolute;right:0;top:0;bottom:0;z-index:20;box-shadow:-8px 0 24px rgba(0,0,0,.1)}.lb-status{max-width:180px;font-size:10px}.lb-tools{gap:4px;padding:6px}.lb-tool{padding:6px 8px;min-height:38px}.lb-header{padding:7px 10px}.lb-hint{font-size:10px}.lb-intro{align-items:flex-start}.lb-dialog{inset:0;width:100vw;height:100dvh;border-radius:0}}.lb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

.lb-import-dialog{width:min(680px,90vw);border:1px solid #d8ded7;border-radius:14px;padding:20px;color:#23342b}.lb-import-dialog::backdrop{background:#0005}.lb-import-dialog p{line-height:1.7;font-size:14px}.lb-import-dialog textarea{box-sizing:border-box;width:100%;min-height:280px;font:14px/1.6 ui-monospace,monospace;padding:12px;border:1px solid #ccd5cc;border-radius:8px}.lb-import-dialog button{margin:12px 8px 0 0}

/* Mind-map content sits directly on the canvas; selection is an editing aid. */
.lb-node.lb-node-flat{border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;min-height:48px}.lb-node.lb-node-flat.selected{border:0;box-shadow:none;outline:1px dashed var(--brand);outline-offset:5px}.lb-node-flat .lb-node-head{display:none}.lb-node-flat .lb-node-body{padding:6px;overflow:visible}.lb-node-flat .lb-node-resize{opacity:0}.lb-node-flat.selected .lb-node-resize,.lb-node-flat:hover .lb-node-resize{opacity:1}.lb-node-has-media{display:grid;grid-template-areas:'. top .' 'left text right' '. bottom .';grid-template-columns:auto minmax(70px,1fr) auto;grid-template-rows:auto minmax(40px,1fr) auto;gap:10px;align-items:center}.lb-node-text{grid-area:text;min-width:0;overflow-wrap:anywhere}.lb-node-media-top{grid-area:top}.lb-node-media-bottom{grid-area:bottom}.lb-node-media-left{grid-area:left;max-width:180px}.lb-node-media-right{grid-area:right;max-width:180px}.lb-node-media{display:flex;flex-direction:column;gap:8px;min-width:0}.lb-node-media-image{max-height:180px;min-width:0;overflow:hidden}.lb-node-media-image img{max-height:180px;width:auto;height:auto;max-width:100%;border:0;border-radius:0;box-shadow:none}.lb-node-media-control{display:grid;gap:5px;margin:10px 0;padding:8px 0;border-bottom:1px solid var(--line)}

.lb-layout{font:12px var(--sans);min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--ink)}.lb-node-flat .lb-node-body{display:flex;align-items:center}.lb-node-flat .lb-node-body.lb-node-has-media{display:grid}.lb-node-flat textarea{box-sizing:border-box;display:block}.lb-node-flat .lb-node-text{width:100%}
