/* A waiting surface, not simulated image progress. Real pixels appear on image load. */
.channel-choice{max-width:120px!important;min-width:75px;padding-inline:9px;border:1px solid var(--line);border-radius:10px;color:var(--text-2);font-size:11px;background:var(--panel-2)}
.video-generator{display:flex;flex-direction:column;gap:10px;height:100%;padding:16px;background:var(--panel);overflow:auto;border-radius:18px;font-size:12px}.video-generator .video-prompt{min-height:72px;resize:vertical;font:inherit}.video-controls,.video-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.video-controls select{max-width:170px}.video-controls label{display:flex;align-items:center;gap:4px}.video-seconds{width:55px}.video-price{margin-left:auto;font-size:11px;font-variant-numeric:tabular-nums}.video-status{color:var(--text-3);font-size:11px;white-space:pre-wrap}.video-output video{width:100%;max-height:240px;object-fit:contain;background:#161718;border-radius:10px}.video-refs{display:flex;gap:4px;flex-wrap:wrap}.video-refs:empty{display:none}.video-history article{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--line)}.video-history small{margin-left:auto}
.cp-bar .cp-model{min-width:90px;max-width:155px}.cp-bar{flex-wrap:wrap}.assistant-model-row{flex-wrap:wrap}.assistant-model-row .channel-choice{margin-left:auto}.me-ctrl{flex-wrap:wrap}.wb-params label:has([data-model-groups]){display:flex;gap:5px;flex-wrap:wrap}
.card-run .run-dot-field{position:absolute;inset:0;z-index:1;background-image:radial-gradient(circle,#efa251 1.5px,transparent 1.8px);background-size:14px 14px;mask-image:radial-gradient(ellipse 100% 85% at 80% 75%,#000 0%,#0009 43%,transparent 87%);animation:dot-migration 9s ease-in-out infinite alternate;opacity:.9}
.run-contours{position:absolute;inset:0;z-index:2;width:100%;height:100%;color:var(--text-3);pointer-events:none;animation:contour-drift 10s ease-in-out infinite alternate}
.run-progress{position:absolute;right:12px;bottom:12px;z-index:3;padding:5px 10px;border-radius:99px;background:var(--panel);border:1px solid var(--line);font-size:calc(12px / var(--z,1));font-variant-numeric:tabular-nums;color:var(--accent);box-shadow:0 2px 8px #00000006}
[data-generation=default] .card-run{background:var(--panel)}
[data-generation=default] .card-run :is(.run-latent,.run-grain,.run-sheen){display:none}
.card-run .run-info{z-index:3;right:85px;bottom:13px;font-size:calc(10px / var(--z,1))}
[data-generation=stars] :is(.run-dot-field,.run-contours){display:none}
[data-generation=off] :is(.run-dot-field,.run-contours){animation:none!important}
[data-theme=dark] .run-dot-field{background-image:radial-gradient(circle,#edb66e 1.5px,transparent 1.8px);opacity:.7}
@keyframes dot-migration{0%{background-position:0 0;mask-position:0 0;opacity:.5;transform:scale(.96)}100%{background-position:7px 7px;mask-position:-40px -25px;opacity:.95;transform:scale(1.04)}}
@keyframes contour-drift{from{transform:scale(1.01) rotate(-1deg);opacity:.5}to{transform:scale(1.06) rotate(1deg);opacity:.9}}
@media(prefers-reduced-motion:reduce){.card-run .run-dot-field,.run-contours{animation:none!important}}
.card-run { background:var(--generation-base,var(--panel-2));isolation:isolate; }
[data-theme=dark] .card-run { background:var(--generation-base,var(--panel-2)); }
.run-latent { position:absolute;inset:-18%;filter:blur(22px);animation:latent-drift 9s ease-in-out infinite alternate; }
.run-latent i { position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 25% 35%,var(--generation-cloud-1) 0%,var(--generation-cloud-2) 32%,transparent 65%);animation:latent-breathe 6s ease-in-out infinite alternate; }
.run-latent i:nth-of-type(2) { transform:translate(25%,25%);background:radial-gradient(ellipse,var(--generation-cloud-2) 0%,var(--generation-cloud-1) 30%,transparent 65%);animation-delay:-3s; }
.run-latent i:nth-of-type(3) { transform:translate(-20%,40%);background:radial-gradient(ellipse,var(--generation-cloud-3) 0%,transparent 60%);animation-delay:-5s; }
[data-theme=dark] .run-latent { opacity:1; }
.card-run .run-latent img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(18px) saturate(.35);opacity:.4; }
.run-grain { position:absolute;inset:0;opacity:.17;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23888' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");background-size:180px; }
[data-theme=dark] .run-grain { mix-blend-mode:screen;opacity:.12; }
.run-sheen { position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 32%,var(--generation-sheen) 48%,transparent 65%);animation:latent-sheen 7s ease-in-out infinite; }
.card-run .run-info { inset:auto 14px 13px;justify-content:flex-start;gap:7px;color:var(--generation-ink);font-size:calc(11px / var(--z,1));letter-spacing:.1px;text-shadow:0 1px 5px #fff9; }
[data-theme=dark] .card-run .run-info { color:var(--generation-ink);text-shadow:0 1px 5px #0008; }
.run-status-dot { width:5px;height:5px;flex:none;border-radius:50%;background:currentColor;opacity:.65;animation:latent-status 2.4s ease-in-out infinite; }
.run-info .g-elapsed { margin-left:auto;font-variant-numeric:tabular-nums;opacity:.65; }
.card-img.result-pending img { opacity:0; }
.card-img.result-reveal img { animation:latent-resolve 1.1s cubic-bezier(.2,.65,.2,1) both; }
[data-generation=stars] .run-grain { opacity:.3; }
[data-generation=off] :is(.run-latent,.run-latent i,.run-sheen,.run-status-dot),[data-generation=off] .result-reveal img { animation:none!important; }
[data-generation=off] .run-sheen { display:none; }
@keyframes latent-drift { from{transform:translate(-3%,2%) scale(1.04) rotate(-4deg)} to{transform:translate(4%,-3%) scale(1.12) rotate(4deg)} }
@keyframes latent-breathe { from{opacity:.55;filter:blur(4px)} to{opacity:.95;filter:blur(15px)} }
@keyframes latent-sheen { 0%,15%{transform:translateX(-35%);opacity:0} 50%{opacity:.8} 85%,100%{transform:translateX(35%);opacity:0} }
@keyframes latent-status { 50%{opacity:.25} }
@keyframes latent-resolve { from{opacity:.25;filter:blur(16px) saturate(.55);transform:scale(1.035)} to{opacity:1;filter:blur(0) saturate(1);transform:scale(1)} }
.quality-popover { width:min(390px,calc(100vw - 24px));padding:14px;border-radius:22px;background:var(--panel); }
.quality-head { border:0;padding-bottom:0;margin-bottom:9px; }
.quality-head>span { font-size:11px;color:var(--text-3);font-weight:500; }
.quality-head>span svg { display:none; }
.quality-popover>label { margin:12px 3px 8px;font-size:12px;color:var(--text-3); }
.quality-popover>label>span { font-size:9px; }
.quality-resolutions { padding:5px;border-radius:15px;gap:3px; }
.quality-resolutions button { padding:11px 6px;border:0;border-radius:11px; }
.quality-resolutions b { font-size:13px;font-weight:500; }
.quality-ratios { grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;padding:9px;border-radius:15px; }
.quality-ratios button { height:58px;gap:7px;border:0;border-radius:10px;min-width:0; }
.quality-ratios button.on { color:var(--text);box-shadow:0 2px 8px #00000006; }
.quality-ratios button:hover { background:color-mix(in srgb,var(--panel) 65%,transparent); }
.quality-ratios i { border-radius:2px; }
.quality-ratios svg { width:17px;height:17px; }
.quality-ratios span { font-size:11px; }
.quality-note { font-size:10px;margin:9px 3px 0; }
@media(max-width:420px) { .quality-ratios { padding:6px;gap:1px; }.quality-ratios button { height:54px; }.quality-popover>label>span { font-size:8px; } }
@media(prefers-reduced-motion:reduce) { .run-latent,.run-latent i,.run-sheen,.run-status-dot,.result-reveal img { animation:none!important; }.run-sheen{display:none;} }

/* Uploads have a single primary action; deletion belongs to the card corner. */
#viewport .asset-empty { background:var(--panel);gap:0; }
#viewport .node[data-node-role=asset] .node-card:has(.asset-empty) { border-style:solid;border-color:var(--line-2); }
.upload-node-button { display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:33px;padding:7px 13px;border:0;border-radius:9px;background:var(--text);color:var(--panel);font-size:12px;cursor:pointer;box-shadow:0 2px 5px #00000010;transition:transform .2s,box-shadow .2s; }
.upload-node-button svg { width:15px;height:15px; }
.upload-node-button:hover { transform:translateY(-1px);box-shadow:0 5px 12px #00000016; }
.upload-node-copy { display:flex;flex-direction:column;gap:4px;margin-top:12px;text-align:center;color:var(--text-3);font-size:11px;line-height:1.5; }
.upload-node-copy small { margin-top:3px;font-size:10px;line-height:1.6; }
.result-tools .tb-btn span { display:none; }
.result-tools .tb-btn { width:34px;height:32px;padding:7px;justify-content:center; }
#viewport .node .node-quick-delete { width:calc(18px / var(--z,1));height:calc(18px / var(--z,1));right:calc(-7px / var(--z,1));top:calc(-7px / var(--z,1));padding:calc(3px / var(--z,1));border-radius:50%;background:var(--panel);color:var(--text-3);border:calc(1px / var(--z,1)) solid var(--line);box-shadow:0 2px 5px #0000000a;opacity:0;pointer-events:none;transform:translateY(3px) scale(.86);transition:opacity .18s ease,transform .24s cubic-bezier(.2,.8,.2,1),background .18s; }
#viewport .node .node-quick-delete svg { width:100%;height:100%; }
#viewport .node.edge-hover:not(:hover):not(:focus-within) .node-quick-delete { opacity:0;pointer-events:none; }
#viewport .node:hover .node-quick-delete,#viewport .node:focus-within .node-quick-delete { opacity:1;pointer-events:auto;transform:translateY(0) scale(1); }
#viewport .node .node-quick-delete:hover { color:var(--text);border-color:var(--line-2);transform:translateY(-1px) scale(1.08); }
@media(hover:none) { #viewport .node.sel .node-quick-delete {opacity:1;pointer-events:auto;transform:none;} }
@media(prefers-reduced-motion:reduce) { .upload-node-button,#viewport .node .node-quick-delete {transition:none;} }
.text-card textarea[readonly] {pointer-events:none;cursor:grab;}
.text-card:not(.is-editing) {cursor:grab;}
.text-card.is-editing textarea {pointer-events:auto;cursor:text;}
.history-actions {position:absolute;top:calc(8px / var(--z,1));left:calc(8px / var(--z,1));right:calc(8px / var(--z,1));display:flex;gap:calc(5px / var(--z,1));z-index:9;pointer-events:auto;}
.history-actions button {display:grid;place-items:center;width:calc(26px / var(--z,1));height:calc(26px / var(--z,1));padding:calc(5px / var(--z,1));border:calc(1px / var(--z,1)) solid var(--line);border-radius:50%;background:var(--image-action-bg,var(--panel));backdrop-filter:blur(12px);color:var(--text-2);cursor:pointer;transition:transform .2s,background .2s;color:var(--text-2);box-shadow:0 2px 6px #0000000a;}
.history-actions button:last-child {margin-left:auto;}
.history-actions svg {width:100%;height:100%;}
.history-actions button:hover {transform:translateY(-1px);color:var(--text);background:var(--panel);}
.history-actions button:disabled {opacity:.4;cursor:not-allowed;transform:none;}
.history-actions .is-favorite {color:var(--accent);}
.history-actions .is-favorite svg {fill:var(--accent-bg);}
#viewport .history-archived :is(.port,.node-resize,.node-quick-delete) {visibility:hidden;pointer-events:none!important;}
#viewport .history-archived [data-a=retry] {display:none;}
#viewport .history-folded .history-actions {visibility:hidden;pointer-events:none;}
@media(prefers-reduced-motion:reduce){.history-actions button {transition:none;}}
.lib-favorite-tile {position:relative;min-width:0;}
.lib-favorite-tile .lib-item {width:100%;}
.lib-unfavorite {position:absolute;top:6px;left:6px;width:26px;height:26px;padding:5px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--accent);cursor:pointer;}
.lib-unfavorite svg {width:100%;height:100%;fill:var(--accent-bg);}

/* Version rows are a fixed strip. Only collapsed stacks can move as a unit. */
#viewport .history-row-locked {cursor:default;transition:transform .5s cubic-bezier(.22,.8,.24,1),left .5s cubic-bezier(.22,.8,.24,1),top .5s cubic-bezier(.22,.8,.24,1);}
#viewport .history-row-locked .node-resize {display:none;}
#viewport .history-folded {width:var(--history-width)!important;height:var(--history-height)!important;}
/* Folded history shows opaque card backs; thumbnails appear only in the open row. */
#viewport .history-folded {transform-origin:50% 80%;}
#viewport .history-folded .node-card {background:color-mix(in srgb,var(--text) calc(72% - var(--history-depth) * 12%),var(--panel));border:1px solid color-mix(in srgb,var(--text) 12%,transparent);box-shadow:0 3px 7px #00000016;backdrop-filter:none;overflow:hidden;}
#viewport .history-folded .node-card>* {visibility:hidden!important;}
#viewport .history-stack-extra {visibility:hidden;}


.history-toggle {background:var(--image-action-bg,var(--panel));color:var(--text);border-color:var(--line);}
.history-toggle:hover {background:var(--panel);}
.node-tag-dot {display:inline-block;flex:none;width:14px;height:14px;border-radius:50%;margin-left:7px;box-shadow:0 0 0 1px color-mix(in srgb,var(--panel) 60%,transparent);}
.tag-tool-dot {display:block;width:17px;height:17px;border-radius:50%;}
.tag-popover {width:max-content!important;display:flex;gap:9px;padding:10px 12px;border-radius:18px;background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 28px #00000012;}
.tag-popover button {flex-shrink:0;display:grid;place-items:center;width:29px;height:29px;padding:3px;border:0;border-radius:50%;background:transparent;color:var(--text-3);cursor:pointer;}
.tag-popover button i {display:block;width:23px;height:23px;border-radius:50%;background:var(--tag-color);transition:transform .18s;}
.tag-popover button:hover i {transform:scale(1.12);}
.tag-popover button[aria-pressed=true] {outline:2px solid var(--tag-color);outline-offset:2px;}
.tag-popover button:focus-visible {outline:2px solid var(--focus);outline-offset:3px;}
.tag-popover button svg {width:18px;height:18px;}
@media(prefers-reduced-motion:reduce){#viewport .history-row-locked,.tag-popover button i {transition:none!important;}}

#viewport .history-folded.history-stack-idle {transform:translate(calc(var(--history-x) - var(--history-depth) * 11px),calc(var(--history-y) - var(--history-depth) * 6px));opacity:0;visibility:hidden;}
#viewport .history-stack-idle .node-card {pointer-events:none;}

#viewport .history-cover:not(.sel) .history-toggle {opacity:0;pointer-events:none;}
#viewport .history-cover.sel .history-toggle {opacity:1;}

/* Keep visual widths in CSS pixels, including animated overlays. */
#viewport #edges .edge-g {--flow-pace:1;}
#viewport #edges .edge-g.related {--flow-pace:.75;}
#studio-rail #project-switch {width:100%;max-width:none;display:flex;justify-content:center;}
#studio-rail #project-switch .proj-btn {width:64px;max-width:100%;min-height:52px;display:flex;flex-direction:column;justify-content:center;gap:5px;background:transparent;border:0;border-radius:12px;padding:6px 2px;font-weight:400;}
#studio-rail #project-switch .proj-btn:hover {background:var(--hover);}
#studio-rail #project-switch .proj-btn span {flex:none;font-size:11px;}
#studio-rail #project-switch .proj-btn svg {width:21px;height:21px;}
#topbar #studio-tools [data-studio=search] {display:flex;}
.project-manager .dialog {max-height:86dvh;}
.project-actions {display:flex;flex-wrap:wrap;gap:7px;padding-bottom:18px;border-bottom:1px solid var(--line);}
.project-actions .btn {display:flex;gap:6px;align-items:center;}
.project-actions svg,.project-row-delete svg {width:16px;height:16px;}
.project-list-controls {display:flex;align-items:center;gap:12px;margin:17px 0 10px;}
.project-list-controls input {flex:1;min-width:0;}
.project-list {max-height:44dvh;overflow:auto;}
.project-row {display:flex;align-items:center;gap:12px;border:1px solid transparent;border-bottom-color:var(--line);padding:8px;border-radius:10px;}
.project-row.current {background:var(--panel-2);}
.project-row input {width:16px;height:16px;accent-color:var(--accent);cursor:pointer;}
.project-open {flex:1;min-width:0;text-align:left;display:flex;flex-direction:column;gap:7px;background:none;border:0;color:var(--text);padding:7px;cursor:pointer;}
.project-open b {font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;}
.project-open small {font-size:11px;color:var(--text-3);}
.project-row-delete {display:grid;place-items:center;width:32px;height:32px;border:0;background:none;color:var(--text-3);border-radius:8px;cursor:pointer;}
.project-row-delete:hover {color:var(--bad);background:var(--panel-2);}
.project-manager-foot {display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:var(--text-3);}
.project-empty {padding:25px;text-align:center;}
@media(max-width:600px){.compact-header #topbar #studio-tools {display:flex;}#topbar #studio-tools [data-studio=search] {display:flex;padding:6px;}#studio-rail #project-switch .proj-btn {width:42px;}#studio-rail #project-switch .proj-btn span {font-size:10px;}.project-list-controls {gap:6px;}.project-actions .btn {font-size:10px;}.project-manager .dialog {padding:20px!important;}}

#viewport[data-flow=off] #edges :is(.edge-flow,.edge-aura) {opacity:0!important;transition:none;}
#viewport[data-flow=off] #edges .flow-light {animation-play-state:paused!important;}

/* Oldest notice sits at the top; exit fades before its space collapses. */
body .toasts {top:auto;left:auto;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));transform:none;align-items:flex-end;gap:8px;max-width:calc(100vw - 32px);pointer-events:auto;}
body .toast {max-width:min(360px,calc(100vw - 32px));overflow-wrap:anywhere;background:var(--panel);border-color:var(--line-2);box-shadow:0 8px 30px #00000018;padding:11px 15px;font-size:12px;line-height:1.6;animation:notice-in .22s ease-out;opacity:1;transition:opacity .34s ease,translate .34s ease,max-height .32s ease,padding .32s ease,margin .32s ease;border-radius:12px;}
body .toast.toast-leaving {animation:none;opacity:0;translate:8px -5px;max-height:0!important;padding-block:0;margin-bottom:-8px;overflow:hidden;pointer-events:none;}
@keyframes notice-in {from{opacity:0;translate:10px 6px;}to{opacity:1;translate:0 0;}}
.ov-panel .cp-refs {gap:5px;max-height:66px;overflow-y:auto;overscroll-behavior:contain;padding:2px 1px;}
.ov-panel .ref-chip {height:28px;padding-right:6px;border-radius:7px;}
.ov-panel .ref-chip img {width:26px;height:26px;}
.ov-panel .ref-chip b {font-size:10px;padding-left:5px;}
.ov-panel .ref-add {height:28px;font-size:10px;padding:0 7px;}
.ov-panel .cp-section-label {font-size:10px;gap:5px;flex-wrap:wrap;}
.ov-panel .cp-limit {font-size:9px;}
.ov-panel .cp-text,.compact-composer .ov-panel .cp-text {min-height:48px;max-height:104px;padding:5px 2px;line-height:1.6;}
.ov-panel .cp-assist {font-size:10px;}
.compact-composer .ov-panel {gap:6px;padding:11px 12px;}
.model-picker {position:fixed;z-index:2100;display:flex;flex-direction:column;gap:7px;padding:8px;background:var(--panel);border:1px solid var(--line-2);border-radius:13px;box-shadow:0 12px 38px #00000024;transform-origin:bottom center;animation:model-list-in .16s ease-out;}
.model-picker .model-search {height:30px;min-height:30px;flex:none;font-size:12px;}
.model-options {min-height:0;overflow:auto;overscroll-behavior:contain;}
.model-options button {display:block;width:100%;padding:9px 10px;border:0;border-radius:7px;text-align:left;background:none;color:var(--text);font-family:inherit;font-size:12px;cursor:pointer;}
.model-options button[aria-selected=true],.model-options button:hover,.model-options button:focus-visible {background:var(--panel-2);color:var(--accent);outline:none;}
.model-options button:disabled {opacity:.5;cursor:default;}
.model-empty {padding:8px;color:var(--text-3);font-size:12px;}
.model-picker {box-sizing:border-box;max-width:calc(100vw - 24px);}
.model-picker[data-input=keyboard] {animation:none;}
.model-picker[data-placement=below] {transform-origin:top center;--picker-enter-y:-5px;}
.model-picker .model-options button {min-height:40px;white-space:normal;overflow-wrap:anywhere;line-height:1.45;}
.model-picker .model-options button:focus-visible {outline:2px solid var(--accent);outline-offset:-2px;}
@keyframes model-list-in {from{opacity:0;transform:translateY(var(--picker-enter-y,5px)) scale(.98);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){body .toast,.model-picker {animation:none!important;}body .toast {transition:opacity .15s ease;}}

.archive-indicator {top:auto;bottom:76px;right:20px;}

body .toast.bad {border-color:color-mix(in srgb,var(--bad) 35%,var(--line-2));color:var(--bad);}

.ov-panel .ref-chip .rx {top:-2px;right:-2px;width:14px;height:14px;line-height:14px;font-size:10px;}
.archive-project-name {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0 10px;font-size:12px;}
.archive-project-name span {color:var(--text-3);}
.archive-project-name b {font-weight:500;overflow-wrap:anywhere;}
.archive-folder-preview {display:flex;flex-direction:column;gap:10px;padding:13px 15px;margin-bottom:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);font-size:11px;line-height:1.7;overflow-wrap:anywhere;}
.archive-folder-preview b {font-weight:500;color:var(--text);}
.archive-folder-preview span {color:var(--text-2);}

.cp-error {font-size:11px;color:var(--bad);line-height:1.5;padding:5px 2px;max-height:60px;overflow:auto;}
.reference-mention-pop {position:fixed;z-index:2200;padding:6px;border:1px solid var(--line-2);border-radius:12px;background:var(--panel);box-shadow:0 12px 36px #00000024;overflow:auto;overscroll-behavior:contain;}
.reference-mention-pop button {display:flex;align-items:center;gap:9px;width:100%;padding:7px;border:0;border-radius:7px;color:var(--text);background:transparent;text-align:left;cursor:pointer;}
.reference-mention-pop button[aria-selected=true],.reference-mention-pop button:hover {background:var(--panel-2);}
.reference-mention-pop img {width:30px;height:30px;object-fit:cover;border-radius:5px;background:var(--panel-2);}
.reference-mention-pop span {min-width:0;display:flex;flex-direction:column;gap:4px;}
.reference-mention-pop b {font-size:11px;font-weight:500;}
.reference-mention-pop small {font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--text-3);}
.reference-mention-pop p {padding:8px;font-size:11px;color:var(--text-3);}
.ov-panel .ref-chip.is-mentioned {border-color:var(--accent);background:var(--accent-bg);}
#viewport .history-row-locked.generating .node-resize {display:block;}

.reference-mention-pop button:disabled {opacity:.45;cursor:not-allowed;}
.mention-placeholder {width:30px;height:30px;flex:none;border:1px dashed var(--line-2);border-radius:5px;background:var(--panel-2);}

/* Numbered reference strip: compact identity, full preview, visible focus. */
.ov-panel .cp-refs {overflow:visible;max-height:none;gap:8px;padding:6px 2px 2px;}
.ov-panel .ref-chip,.compact-composer .ov-panel .ref-chip {width:38px;height:38px;padding:0;border-radius:9px;justify-content:center;background:var(--panel-2);}
.ov-panel .ref-chip img,.compact-composer .ov-panel .ref-chip img {width:36px;height:36px;border-radius:8px;object-fit:contain;}
.ov-panel .ref-chip b {position:absolute;left:-5px;top:-7px;right:auto;bottom:auto;min-width:16px;height:16px;line-height:14px;padding:0 3px;border-radius:9px;border:1px solid var(--line-2);background:var(--panel);color:var(--text-2);font-size:10px;text-align:center;}
.ov-panel .ref-chip.is-mentioned b {background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
.ov-panel .ref-chip:focus-visible {outline:2px solid var(--focus);outline-offset:3px;}
.ov-panel .ref-chip.is-unavailable {opacity:.5;cursor:default;}
.ov-panel .ref-placeholder {display:grid;place-items:center;color:var(--text-3);}
.ov-panel .ref-chip .rx {right:-5px;top:-5px;}
.cp-reference-warning {font-size:11px;line-height:1.5;color:var(--danger,#d74854);}

.video-generator .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;height:auto;padding:6px 12px;border:1px solid var(--line-2);border-radius:9px;background:var(--panel-2);color:var(--text-2);font:inherit;line-height:1.4;text-decoration:none;cursor:pointer}.video-generator .btn:hover{border-color:var(--accent);color:var(--accent-2)}.video-generator .btn.primary{background:var(--accent-2);color:var(--accent-ink);border-color:var(--accent-2);font-weight:600}.video-generator .btn:disabled{opacity:.55;cursor:default}.video-output>a{margin-top:8px}.video-actions{padding-top:3px}.video-generator>.muted{font-size:10px;line-height:1.6;color:var(--text-3)}

.memory-dialog>.dialog{max-height:calc(100dvh - 40px);display:flex;flex-direction:column;overflow:hidden}.memory-dialog .d-body{overflow:auto;min-height:0}.memory-center{font-size:13px;color:var(--text);padding:6px}.memory-hero{padding:18px 12px 26px}.memory-eyebrow{font-size:10px;letter-spacing:3px;color:var(--text-3)}.memory-hero>div:first-of-type{display:flex;align-items:center;justify-content:space-between;gap:15px}.memory-hero h2{font-size:29px;font-weight:550;letter-spacing:-1px;margin:19px 0 10px}.memory-hero p{color:var(--text-3)}.memory-stats{display:flex;gap:30px;margin-top:28px;color:var(--text-3)}.memory-stats b{font-size:24px;font-weight:500;margin-right:7px;color:var(--text)}.memory-switches{display:grid;grid-template-columns:1fr 1fr auto;gap:22px;padding:23px;border:1px solid var(--line-2);border-radius:15px;background:var(--panel-2)}.memory-switches label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:9px}.memory-switches small{grid-column:1;color:var(--text-3);font-size:10px;line-height:1.7}.memory-switches input{grid-row:1;grid-column:2;accent-color:var(--accent-2);width:17px;height:17px}.memory-tabs{display:flex;align-items:center;gap:19px;margin-top:24px;border-bottom:1px solid var(--line-2);padding-bottom:15px;flex-wrap:wrap}.memory-tabs>button:not(.primary){border:0;background:transparent;color:var(--text-2);font:inherit;padding:8px 1px;cursor:pointer}.memory-tabs>button.on{color:var(--text);border-bottom:2px solid var(--accent-2)}.memory-tabs>span{flex:1}.memory-filters{display:flex;gap:9px;align-items:center;margin:22px 0}.memory-filters>span{margin-left:auto;font-size:10px;color:var(--text-3)}.memory-records article{display:flex;gap:16px;padding:24px 10px;border-bottom:1px solid var(--line)}.memory-record-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--panel-2);font-size:20px}.memory-record-main{flex:1;min-width:0}.memory-meta{font-size:10px;color:var(--text-3)}.memory-meta i{font-style:normal;color:var(--accent-2);margin-left:10px}.memory-record-main h3{font-size:14px;margin:8px 0}.memory-record-main p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}.memory-record-main details{font-size:10px;color:var(--text-3);margin-top:12px}.memory-record-actions{display:flex;gap:8px;align-items:flex-start}.memory-record-actions button{font:inherit;font-size:10px;border:1px solid var(--line-2);border-radius:7px;background:var(--panel);color:var(--text-2);padding:6px 9px;cursor:pointer}.memory-paging{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.memory-empty{padding:55px 20px;text-align:center;color:var(--text-3)}.memory-edit,.memory-assistant{display:grid;gap:17px}.memory-edit label,.memory-assistant label{display:grid;gap:9px;font-size:12px;color:var(--text-2)}.memory-edit>div{display:grid;grid-template-columns:1fr 1fr;gap:15px}.memory-assistant{padding:20px 5px}.memory-assistant h3{font-size:20px}.memory-assistant p{font-size:11px;color:var(--text-3);line-height:1.8}.memory-assistant-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.memory-assistant-actions>span{margin-left:auto}.memory-graph svg{width:100%;max-height:440px}.memory-graph p{color:var(--text-3);text-align:center;font-size:11px}.memory-log article{display:flex;gap:18px;padding:18px 15px;border-bottom:1px solid var(--line)}.memory-log i{width:7px;height:7px;border-radius:50%;background:var(--accent-2);margin-top:6px}.memory-log small{display:block;color:var(--text-3);font-size:11px;margin-top:7px}.assistant-memory-toggle{display:flex;gap:3px;align-items:center;font-size:10px;color:var(--text-3)}.assistant-memory{border:0;background:var(--panel-2);border-radius:7px;padding:6px 8px;color:var(--text-2);font:inherit;font-size:10px}.assistant-footer{flex-wrap:wrap}
@media(max-width:700px){.memory-switches{grid-template-columns:1fr;padding:15px}.memory-hero h2{font-size:23px}.memory-stats{gap:15px}.memory-stats b{font-size:20px}.memory-tabs{gap:12px}.memory-records article{gap:8px;flex-wrap:wrap}.memory-record-actions{margin-left:48px}.memory-filters{flex-wrap:wrap}.memory-record-main{min-width:180px}}

.memory-graph-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:18px 0}.memory-graph-cards button{display:grid;gap:10px;text-align:left;padding:18px;border:1px solid var(--line-2);border-radius:12px;background:var(--panel);color:var(--text);cursor:pointer;font:inherit}.memory-graph-cards small,.memory-graph-cards span{font-size:10px;color:var(--text-3);line-height:1.8}.memory-graph-cards button:hover{border-color:var(--accent-2)}

.memory-filters>.inp:first-child{flex:1;min-width:120px;width:auto}.memory-filters>select{width:150px;flex:none}.memory-filters>span{white-space:nowrap;flex:none}.memory-switches input{appearance:none;width:34px;height:20px;border:0;border-radius:12px;background:var(--line-2);position:relative;cursor:pointer}.memory-switches input:after{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;background:var(--panel);border-radius:50%;transition:transform .15s}.memory-switches input:checked{background:var(--accent-2)}.memory-switches input:checked:after{transform:translateX(14px)}.memory-switches input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.video-node-preview{height:100%;display:grid;place-items:center;overflow:hidden;background:var(--panel);border-radius:16px}.video-node-empty{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-3);font-size:11px}.video-node-empty svg{width:29px;height:29px;opacity:.65}.video-node-empty b{font-weight:500;font-size:13px}.video-node-preview .video-output{width:100%;height:100%;padding:8px;display:flex;flex-direction:column;justify-content:center}.video-node-preview .video-output[hidden],.video-node-empty[hidden]{display:none!important}.video-node-preview video{max-height:calc(100% - 40px);width:100%;flex:1;min-height:0}.video-node-preview [data-video-download]{font-size:10px;text-align:center;color:var(--text-3);padding:4px}
.video-floating-composer{position:fixed;z-index:28;display:flex;flex-direction:column;height:auto;max-height:calc(100dvh - 170px);width:min(650px,calc(100vw - 24px));padding:18px;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 35px #17263e16;pointer-events:auto;gap:12px;overflow-y:auto;overflow-x:hidden}.video-floating-composer[hidden]{display:none!important}.video-composer-header{display:flex;align-items:center;justify-content:space-between;color:var(--text-2);font-size:11px;padding-bottom:8px;border-bottom:1px solid var(--line)}.video-composer-header>span{display:flex;align-items:center;gap:7px}.video-composer-header svg{width:15px;height:15px}.video-composer-header button{border:0;background:transparent;font-size:19px;color:var(--text-3);cursor:pointer}.video-floating-composer .video-prompt{background:transparent;border:0;box-shadow:none;min-height:110px;max-height:300px;font-size:13px;line-height:1.8;resize:vertical;padding:6px 0}.video-floating-composer .video-controls{flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--line)}.video-floating-composer .video-controls select{flex:1;min-width:90px;max-width:200px}.video-floating-composer .video-controls label{font-size:11px}.video-floating-composer .video-actions{gap:8px}.video-floating-composer .video-actions .primary{border-radius:11px;padding:9px 16px;background:var(--text)!important;color:var(--panel)!important;border-color:transparent!important}.video-floating-composer .video-actions [data-video-history],.video-floating-composer .video-actions [data-video-refresh]{border-color:transparent;background:transparent;font-size:10px}.video-floating-composer .video-price{font-size:10px;color:var(--text-2)}.video-floating-composer>.muted{font-size:9px;opacity:.75}
@media(max-width:650px){.video-floating-composer{padding:14px;max-height:calc(100dvh - 120px);border-radius:16px}.video-floating-composer .video-prompt{min-height:84px;max-height:200px}.video-floating-composer .video-controls select{min-width:75px;font-size:10px}.video-floating-composer .video-actions{flex-wrap:wrap}}

/* Keep video controls reachable when the floating panel must scroll. */
.video-floating-composer{z-index:70;box-sizing:border-box;overscroll-behavior:contain}.video-floating-composer>*{flex-shrink:0;min-width:0}.video-floating-composer .video-composer-header{position:sticky;top:0;z-index:1;background:var(--panel)}

/* Keep billable route and capability differences visible in the actual picker. */
.quality-popover .quality-channel { display:block;width:100%;max-width:100%;min-width:0;height:38px;min-height:38px;padding:0 10px;font-size:12px;line-height:normal; }
.quality-context,.video-options-context { font-size:11px;color:var(--text-3);line-height:1.5;margin:8px 3px;overflow-wrap:anywhere; }

/* One status surface for image and video; the moving meter never estimates progress. */
.generation-surface{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}
.generation-surface .run-latent{display:block!important;opacity:.58}
.generation-surface .run-latent img{opacity:.32}
.generation-surface .generation-caption{position:absolute;inset:0;z-index:3;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-content:end;align-items:center;gap:calc(6px / var(--z,1));padding:calc(10px / var(--z,1));padding-bottom:calc(14px / var(--z,1));color:var(--generation-ink,var(--text-2));font-size:calc(11px / var(--z,1));line-height:1.5;min-width:0;background:linear-gradient(transparent 50%,var(--panel) 100%)}
.generation-surface .generation-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.generation-surface .run-progress{position:static;box-shadow:none;border:0;background:none;padding:0;color:inherit;font-size:inherit;white-space:nowrap;opacity:.8}
.generation-surface .g-elapsed{position:absolute;top:calc(10px / var(--z,1));right:calc(10px / var(--z,1));font-size:calc(10px / var(--z,1));font-variant-numeric:tabular-nums;opacity:.65}
.generation-surface .generation-meter{position:absolute;z-index:4;bottom:0;left:0;right:0;height:calc(3px / var(--z,1));max-height:10px;background:var(--line);overflow:hidden}
.generation-meter>i{display:block;height:100%;background:var(--accent);transition:width .3s ease}
.generation-meter.is-indeterminate>i{animation:generation-pending 1.8s ease-in-out infinite;transition:none}
@keyframes generation-pending{from{transform:translateX(-110%)}to{transform:translateX(390%)}}
[data-generation=off] .generation-meter.is-indeterminate>i{animation:none;transform:translateX(90%)}
@media(prefers-reduced-motion:reduce){.generation-meter.is-indeterminate>i{animation:none;transform:translateX(90%)}.generation-meter>i{transition:none}}
/* Canvas chrome is not document text. Editing and intentional copy surfaces stay selectable. */
.image-format-choice[hidden],#workbench [data-wb-format][hidden]{display:none!important}
.image-composer .cp-bar:has(.image-format-choice:not([hidden])){flex-wrap:wrap;row-gap:8px}
.image-composer .cp-bar .image-format-choice{flex:0 1 126px;min-width:105px;max-width:140px;height:36px;font-size:12px}
#workbench .wb-model-row.has-output-format{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
#workbench .wb-model-row.has-output-format>label:first-child{grid-column:1/-1}
body:has(#viewport) :is(#viewport,.ov,#dock,#zoombar,#minimap,.canvas-left-rail,.canvas-topbar){user-select:none;-webkit-user-select:none}
body:has(#viewport) :is(input,textarea,[contenteditable=true],[contenteditable=plaintext-only],.assistant-message,.assistant-plan,.text-card.is-editing,[data-selectable]){user-select:text;-webkit-user-select:text}
