/* Reference mapping, in-place mention suggestions, and review previews. */
.canvas-connections{border:0!important;margin:0 0 8px;padding:0!important}
.canvas-reference-heading{display:flex;align-items:center;justify-content:space-between;gap:7px;font-size:11px;color:#c8d2e3;margin-bottom:5px}
.canvas-reference-heading strong{font-weight:500}.canvas-reference-heading small{font-size:10px;color:#8795ac}
.canvas-connection-list{display:flex;flex-wrap:wrap;gap:5px;align-items:flex-start}
.canvas-reference-chip{position:relative;display:inline-flex!important;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:64px!important;min-width:64px;max-width:64px;height:66px!important;min-height:66px;max-height:66px;flex:0 0 64px;padding:0!important;margin:0!important;color:var(--text,#e3e6f1);background:#171d2a;border:1px solid #3c455b;border-radius:7px;overflow:hidden;box-sizing:border-box;transition:border-color .15s ease,background .15s ease}
.canvas-reference-chip:hover,.canvas-reference-chip:focus-within{border-color:#c39b52;background:#242a36}
.canvas-reference-chip.is-referenced{border-color:#e0ad45;background:#3c3323;box-shadow:inset 0 0 0 1px #e0ad4555}
.canvas-reference-chip.is-unavailable{opacity:.6;border-style:dashed}
#canvasStudio .canvas-reference-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;box-sizing:border-box;width:100%;height:100%;min-width:0;min-height:0;padding:5px;margin:0;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;cursor:pointer;overflow:hidden}
#canvasStudio .canvas-reference-preview:has(img){cursor:zoom-in}
#canvasStudio .canvas-reference-preview:hover:not(:disabled){background:#ffffff06}
#canvasStudio .canvas-reference-preview:focus-visible{outline:2px solid #ffcd71;outline-offset:-3px}
#canvasStudio .canvas-reference-preview:disabled{cursor:default;opacity:1}
.canvas-node .canvas-reference-chip img{display:block!important;width:48px!important;min-width:48px;max-width:48px!important;height:36px!important;min-height:36px;max-height:36px!important;flex:0 0 36px;object-fit:cover!important;border-radius:4px;margin:0!important}
.canvas-reference-chip strong{font-size:10px!important;line-height:13px;white-space:nowrap;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.canvas-reference-icon{display:block;width:48px!important;min-width:48px;height:36px;flex:0 0 36px;text-align:center;font-size:25px;line-height:36px;color:#dfb457}
#canvasStudio .canvas-reference-chip>.canvas-reference-select{position:absolute;right:2px;top:2px;z-index:2;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:22px;height:22px;min-width:22px;padding:3px;margin:0;border-radius:4px;background:#0b1326e8;box-shadow:0 1px 4px #0008;cursor:pointer;line-height:1}
#canvasStudio .canvas-reference-checkbox[type=checkbox]{appearance:auto;display:block;box-sizing:border-box;width:16px;height:16px;min-width:16px;max-width:16px;min-height:16px;max-height:16px;margin:0!important;padding:0;accent-color:#e1ac3e;cursor:pointer}
#canvasStudio .canvas-reference-select:hover{background:#303a4c}
#canvasStudio .canvas-reference-select:focus-within{outline:2px solid #ffcd71;outline-offset:-1px}
#canvasStudio .canvas-reference-checkbox[type=checkbox]:focus-visible{outline:none}
#canvasStudio .canvas-reference-checkbox[type=checkbox]:disabled{cursor:not-allowed}
.canvas-node .canvas-reference-more,.canvas-node .canvas-reference-info{border:0;padding:0;margin:5px 0 0}
.canvas-node .canvas-reference-more>summary,.canvas-node .canvas-reference-info>summary{font-size:10px;line-height:15px;margin:0;color:#8e9db4}
.canvas-reference-more .canvas-connection-list{margin-top:5px;max-height:140px;overflow:auto;overscroll-behavior:contain}
.canvas-reference-info .canvas-hint{font-size:10px;line-height:1.5;margin:4px 0}
.canvas-assets-multiple .canvas-assets-heading{gap:5px;flex-wrap:wrap}.canvas-assets-multiple .canvas-asset-clear{margin-left:auto}
.canvas-asset-select-visible,.canvas-asset-preview-toggle{border:0;background:transparent;color:#cbb06d;cursor:pointer;padding:2px 3px;font-size:10px;white-space:nowrap}
.canvas-asset-preview-toggle{margin-left:22px;color:#93afce}
.canvas-assets-multiple>.canvas-hint{font-size:10px;margin:3px 0 6px}
.canvas-assets-multiple .canvas-assets-selected{max-height:48px;gap:4px;margin:5px 0}
.canvas-assets-multiple .canvas-asset-chip{max-width:140px;padding:2px 3px 2px 4px;font-size:10px;line-height:18px}
.canvas-node .canvas-chosen-thumb{display:block;width:18px!important;height:18px!important;min-width:18px;max-width:18px!important;max-height:18px!important;object-fit:cover;margin:0;border-radius:3px}
.canvas-assets-multiple .canvas-asset-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:7px;max-height:270px;align-content:start}
.canvas-assets-multiple .canvas-asset-row{position:relative;min-width:0;padding:0;border:1px solid #344156;border-radius:7px;overflow:hidden;background:#1b2331}
.canvas-assets-multiple .canvas-asset-row.selected{border-color:#e2b04b;background:#493e29;box-shadow:inset 0 0 0 1px #e2b04b}
.canvas-node .canvas-assets-multiple .canvas-asset-choice{position:absolute;right:4px;top:4px;z-index:2;display:flex;padding:3px;background:#0c1426dc;border-radius:5px;cursor:pointer}
.canvas-node .canvas-assets-multiple .canvas-asset-choice input{width:19px;height:19px;min-width:19px;margin:0;accent-color:#e1ac3e;cursor:pointer}
.canvas-node .canvas-assets-multiple .canvas-asset-choice input:disabled{cursor:not-allowed}
.canvas-asset-preview-open{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;height:88px;min-height:88px;padding:0;margin:0;border:0;border-radius:0;background:#0d1420;color:#bccce4;cursor:zoom-in;overflow:hidden}
.canvas-asset-preview-open:hover{background:#18263b}.canvas-asset-preview-open:focus-visible,.canvas-asset-choice:focus-within{outline:2px solid #ffcb67;outline-offset:-2px}
.canvas-node .canvas-assets-multiple .canvas-asset-thumb{display:block;width:100%!important;height:88px!important;min-width:0;max-width:100%!important;max-height:88px!important;margin:0!important;border-radius:0;object-fit:cover}
.canvas-asset-grid-icon{display:block;font-size:33px;line-height:38px;color:#c3ad83}.canvas-asset-preview-open>small{font-size:10px;line-height:15px}
.canvas-asset-order{position:absolute;top:6px;left:6px;min-width:18px;height:18px;padding:0 3px;border-radius:5px;text-align:center;font-size:10px;line-height:18px;background:#edb64b;color:#201a0e;pointer-events:none}
.canvas-assets-multiple .canvas-asset-caption{padding:5px 6px;line-height:1.4}.canvas-assets-multiple .canvas-asset-caption strong{font-size:11px}.canvas-assets-multiple .canvas-asset-caption small{font-size:9px}
.canvas-assets-multiple .canvas-asset-list>.canvas-hint{grid-column:1/-1}
.canvas-asset-viewer{position:fixed;inset:0;box-sizing:border-box;width:min(1200px,calc(100vw - 32px));height:min(900px,calc(100vh - 32px));max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);margin:auto;padding:0;border:1px solid #536079;border-radius:12px;background:#111824;color:#e5eaf2;overflow:hidden;box-shadow:0 20px 80px #0008}
.canvas-asset-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.canvas-asset-viewer::backdrop{background:#000c;backdrop-filter:blur(3px)}
.canvas-asset-viewer-header{display:flex!important;align-items:center;gap:9px;flex-wrap:wrap;min-height:48px;padding:9px 13px!important;background:#202a3b;border-bottom:1px solid #364156;position:static!important}
.canvas-asset-viewer-header>strong{flex:1;min-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:24px}
.canvas-asset-viewer-header button,.canvas-asset-viewer-header a{flex:0 0 auto;background:#303e54;color:#f2ddaf;border:1px solid #52617b;border-radius:6px;padding:5px 10px;font:inherit;font-size:12px;line-height:20px;cursor:pointer;text-decoration:none}
.canvas-asset-viewer-header button:focus-visible,.canvas-asset-viewer-header a:focus-visible{outline:2px solid #edbc62;outline-offset:2px}
.canvas-asset-viewer-stage{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;background:#090e17;padding:0}
.canvas-asset-viewer-stage>img,.canvas-asset-viewer-stage>video{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;flex:0 1 auto;margin:0;border-radius:0}
.canvas-asset-viewer-stage.original{display:block}.canvas-asset-viewer-stage.original>img{width:auto;height:auto;max-width:none;max-height:none;object-fit:initial;margin:0}
.canvas-asset-viewer-stage>audio{width:min(680px,90%)}
.canvas-asset-viewer-status{padding:8px 13px;margin:0;font-size:11px;line-height:17px;color:#a7b4ca;background:#182131}.canvas-asset-viewer-status.error{color:#ffb2b2}
/* Image previews show only the fitted image; audio/video keep their player dialog. */
#canvasStudio .canvas-image-lightbox{position:fixed;inset:0;box-sizing:border-box;width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;outline:none;overflow:hidden}
#canvasStudio .canvas-image-lightbox[open]{display:flex;align-items:stretch;justify-content:center}
#canvasStudio .canvas-image-lightbox::backdrop{background:#000b;backdrop-filter:none}
#canvasStudio .canvas-image-lightbox .canvas-asset-viewer-header{display:none!important}
#canvasStudio .canvas-image-lightbox .canvas-asset-viewer-stage{display:flex;align-items:center;justify-content:center;flex:1 1 auto;box-sizing:border-box;width:100%;height:100%;min-width:0;min-height:0;padding:16px;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:hidden;cursor:zoom-out}
#canvasStudio .canvas-image-lightbox .canvas-asset-viewer-stage>img{display:block;flex:0 1 auto;width:auto;height:auto;min-width:0;min-height:0;max-width:100%;max-height:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain;cursor:default}
#canvasStudio .canvas-image-lightbox .canvas-asset-viewer-status{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);box-sizing:border-box;max-width:calc(100vw - 32px);margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#d9e0eb;text-align:center;font-size:12px;line-height:18px;text-shadow:0 1px 4px #000;pointer-events:none}
#canvasStudio .canvas-image-lightbox .canvas-asset-viewer-status.error{color:#ffc1c1}
#canvasStudio .canvas-image-lightbox .canvas-asset-viewer-status[hidden]{display:none!important}
.canvas-asset-role-warning[hidden]{display:none}
.canvas-reference-error,.canvas-reference-warning{font-size:12px;line-height:1.5;margin:6px 0;padding:7px 9px;border-radius:6px;background:#3c242b;color:#ffabb7;border-left:3px solid #d45d6d;overflow-wrap:anywhere}
.canvas-reference-warning{background:#383123;color:#e9c674;border-color:#b98d36}
.canvas-mention-menu{position:relative;display:flex;flex-direction:column;gap:3px;max-height:190px;overflow:auto;background:#101622;padding:5px;border:1px solid #c49942;border-radius:7px;box-shadow:0 8px 20px #0005;z-index:4;margin-top:4px}
.canvas-mention-menu button{white-space:normal;text-align:left;padding:7px 9px;font-size:12px;border:0;border-radius:4px;color:#e9e9ed;background:#202738}
.canvas-mention-menu button.active,.canvas-mention-menu button:hover{background:#59451c;color:#fff0c3}
.canvas-submission-preview{max-height:min(55vh,520px);overflow:auto;min-width:0;text-align:left;padding:7px 0}
.canvas-submission-preview details{margin:6px 0;padding:8px;border:1px solid #394052;border-radius:7px}
.canvas-submission-preview summary{cursor:pointer;color:#ecc269;font-weight:600}
.canvas-preview-prompt{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;line-height:1.6;font-size:13px;background:#101521;color:#e7eaf3;border:1px solid #343c50;border-radius:6px;padding:10px;max-height:240px;overflow:auto}
.canvas-preview-reference{display:flex;gap:8px;align-items:center;padding:5px 0;font-size:12px;overflow-wrap:anywhere}
.canvas-preview-reference img{width:50px;height:50px;object-fit:cover;border-radius:5px}
#canvasDialog:has(.canvas-submission-preview){width:min(860px,92vw);max-width:92vw}
