/* Contextual mask editor: the canvas owns all available workspace height. */
.vz-app .vz-edit-layout{grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:minmax(0,1fr);min-height:0}
.vz-app .vz-edit-stage{position:relative;min-width:0;min-height:0;height:100%;box-sizing:border-box;padding:20px 16px;background:var(--vz-bg,#f1f3f6);touch-action:none;overflow:hidden}
.vz-app .vz-edit-image{display:block;object-fit:contain;user-select:none}
.vz-app .vz-tool-dock{z-index:6;max-width:calc(100% - 32px);height:64px;overflow-x:auto;box-sizing:border-box}
.vz-app .vz-tool-dock button{flex:0 0 57px;min-width:45px;cursor:pointer}
.vz-app .vz-layers-panel{grid-row:1;min-height:0}
.vz-app .vz-selection-popup{position:absolute;left:16px;top:16px;z-index:8;width:310px;max-width:calc(100% - 32px);max-height:calc(100% - 110px);overflow-y:auto;padding:14px;background:var(--vz-paper);color:var(--vz-text);border:1px solid var(--vz-line);border-radius:14px;box-shadow:0 16px 48px #111c3230;box-sizing:border-box;touch-action:auto;animation:vz-mask-enter .18s ease-out}
.vz-selection-popup header{margin-bottom:12px;gap:12px}
.vz-selection-popup header small{font-size:10px;letter-spacing:.1em;color:var(--vz-blue);font-weight:600}
.vz-selection-popup h3{font-size:15px;margin:3px 0 0}
.vz-selection-popup header button{border:0;background:transparent}
.vz-selection-label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}
.vz-app .vz-selection-popup textarea{width:100%;height:76px;min-height:64px;resize:vertical;line-height:1.5;padding:10px;box-sizing:border-box}
.vz-selection-popup .vz-reference-heading{margin:13px 0 8px;font-size:12px;font-weight:600}
.vz-reference-heading small{font-weight:400;color:var(--vz-sub)}
.vz-selection-references{display:flex;gap:8px;min-height:40px;align-items:center}
.vz-selection-references>small{color:var(--vz-sub);font-size:11px}
.vz-selection-references figure{position:relative;margin:0;width:75px;min-width:0}
.vz-selection-references img{width:75px;height:54px;object-fit:cover;border-radius:6px;border:1px solid var(--vz-line)}
.vz-selection-references figure button{position:absolute;right:3px;top:3px;background:var(--vz-paper);border:1px solid var(--vz-line);border-radius:50%;width:21px;height:21px;padding:2px;display:grid;place-items:center;cursor:pointer}
.vz-selection-references figure button svg{width:13px;height:13px}
.vz-selection-references figcaption{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:10px;color:var(--vz-sub)}
.vz-app .vz-selection-popup .vz-edit-options{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.vz-edit-options label{font-size:10px;color:var(--vz-sub);min-width:0}
.vz-app .vz-edit-options select{margin-top:5px;width:100%;font-size:11px;padding:6px;min-width:0}
.vz-selection-popup footer{display:flex;justify-content:space-between;gap:8px;margin-top:16px}
.vz-selection-popup footer .vz-btn{font-size:11px;padding:9px 10px;white-space:nowrap}
.vz-selection-error{font-size:12px;line-height:1.5;padding:10px;border-radius:6px;background:#fff0ed;color:#a62c20;margin:12px 0 0}
.vz-app .vz-selection-reopen{position:absolute;left:24px;top:28px;z-index:7;box-shadow:var(--vz-float)}
.vz-edit-hint{position:absolute;left:50%;top:28px;transform:translateX(-50%);z-index:4;max-width:calc(100% - 64px);font-size:12px;padding:9px 14px;border-radius:24px;margin:0;background:var(--vz-paper);color:var(--vz-sub);border:1px solid var(--vz-line);pointer-events:none;white-space:nowrap}
.vz-selection-popup :is(button,textarea,select):focus-visible{outline:2px solid var(--vz-blue);outline-offset:2px}
.vz-app .vz-native-mask-overlay polygon{vector-effect:non-scaling-stroke}
@media(max-width:1100px){.vz-app .vz-edit-layout{grid-template-columns:minmax(0,1fr) 280px}.vz-app .vz-tool-dock button{flex-basis:48px}.vz-edit-hint{white-space:normal;text-align:center}}
@media(max-width:760px){.vz-app .vz-edit-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(500px,70dvh) auto;overflow:auto}.vz-app .vz-layers-panel{grid-column:1;grid-row:2}.vz-app .vz-selection-popup{width:290px}.vz-app .vz-tool-dock{width:calc(100% - 24px)}}

.vz-app .vz-live-edit-overlay{position:absolute;left:0;top:0;z-index:5;pointer-events:none;transition:none!important}
.vz-app .vz-native-brush-cursor{position:absolute;z-index:7;pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #1a2746;transform:translate(-50%,-50%);box-sizing:border-box;transition:none!important}
.vz-app .vz-native-brush-cursor[hidden],.vz-app .vz-native-tool-settings[hidden]{display:none}
.vz-app .vz-edit-stage:is(.pan-ready,.is-panning){cursor:grab}
.vz-app .vz-edit-stage.is-panning{cursor:grabbing}
.vz-app .vz-edit-stage[data-edit-tool="brush"] .vz-edit-image,.vz-app .vz-edit-stage[data-edit-tool="mask"] .vz-edit-image,.vz-app .vz-edit-stage[data-edit-tool="eraser"] .vz-edit-image{cursor:crosshair}
.vz-app .vz-edit-hotkeys{position:absolute;z-index:6;left:16px;bottom:90px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;max-width:calc(100% - 32px);font-size:10px;color:var(--vz-sub);background:color-mix(in srgb,var(--vz-paper) 88%,transparent);border:1px solid var(--vz-line);border-radius:8px;padding:6px 8px;backdrop-filter:blur(12px)}
.vz-edit-hotkeys kbd{font:inherit;font-weight:600;color:var(--vz-text)}
.vz-app .vz-edit-hotkeys button{font:inherit;border:1px solid var(--vz-line);border-radius:50%;height:18px;width:18px;padding:0;background:var(--vz-paper);color:var(--vz-sub);cursor:pointer}
.vz-app .vz-native-tool-settings{position:absolute;z-index:6;left:16px;top:16px;border:1px solid var(--vz-line);border-radius:9px;padding:8px 10px;background:var(--vz-paper);color:var(--vz-text);font-size:11px;box-shadow:0 4px 14px #141c3210;cursor:pointer}
.vz-app .vz-edit-context-menu{position:absolute;z-index:12;width:270px;max-width:calc(100% - 16px);max-height:calc(100% - 16px);overflow:auto;box-sizing:border-box;border:1px solid var(--vz-line);border-radius:14px;background:var(--vz-paper);color:var(--vz-text);box-shadow:0 15px 45px #17244130;padding:14px;touch-action:auto;animation:vz-mask-enter .14s ease-out}
.vz-edit-context-menu strong{font-size:13px;display:block;margin-bottom:10px}
.vz-edit-context-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:14px}
.vz-app .vz-edit-context-tools button{padding:7px;border:1px solid var(--vz-line);border-radius:7px;background:transparent;color:var(--vz-sub);font-size:11px;text-align:left;cursor:pointer}
.vz-app .vz-edit-context-tools button[aria-pressed="true"]{color:var(--vz-blue);background:color-mix(in srgb,var(--vz-blue) 9%,var(--vz-paper));border-color:color-mix(in srgb,var(--vz-blue) 35%,var(--vz-line))}
.vz-app .vz-edit-context-menu label{display:block;font-size:11px;font-weight:500;margin-bottom:12px}
.vz-edit-context-menu output{float:right;color:var(--vz-sub);font-variant-numeric:tabular-nums}
.vz-edit-context-menu label>div{display:flex;align-items:center;gap:8px}
.vz-app .vz-edit-context-menu input[type="range"]{width:100%;min-width:0;margin:8px 0 0;accent-color:var(--vz-blue)}
.vz-app .vz-edit-context-menu input[type="number"]{width:52px;min-width:52px;padding:5px;border:1px solid var(--vz-line);border-radius:6px;background:var(--vz-bg);color:var(--vz-text);font-size:11px}
.vz-app .vz-edit-context-menu input[type="color"]{float:right;width:32px;height:22px;border:0;padding:0;background:transparent}
.vz-edit-context-menu small{display:block;font-size:10px;line-height:1.5;color:var(--vz-sub);margin-top:16px}
.vz-edit-context-menu dl{font-size:11px;margin:0;line-height:1.5}.vz-edit-context-menu dt{font-weight:600;margin-top:10px}.vz-edit-context-menu dd{margin:0;color:var(--vz-sub)}
.vz-app .vz-layer-opacity-control{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:10px;align-items:center;width:100%;margin:10px 0}
.vz-app .vz-layer-opacity-control input[type="range"]{width:100%;accent-color:var(--vz-blue)}
.vz-app .vz-layer-opacity-control input[type="number"]{width:56px;box-sizing:border-box;border:1px solid var(--vz-line);border-radius:8px;background:var(--vz-bg);color:var(--vz-text);padding:6px}
@keyframes vz-mask-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.vz-app .vz-selection-popup,.vz-app .vz-edit-context-menu{animation:none}}

.vz-job-error{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:12px 16px}.vz-job-error-fixed{position:fixed;z-index:200;left:210px;right:24px;bottom:18px;max-width:680px;box-shadow:0 4px 20px #0002}

/* R17: document-space layer handles stay independent of the AI selection. */
.vz-app .vz-layer-transform{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}
.vz-app .vz-layer-transform svg{width:100%;height:100%;overflow:visible}
.vz-app .vz-layer-transform polygon{stroke:#386fee;stroke-width:1.5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1px white)}
.vz-app .vz-layer-transform button{position:absolute;display:block;width:12px;height:12px;min-width:12px;min-height:12px;margin:0;padding:0;border:2px solid #386fee;border-radius:2px;background:#fff;box-shadow:0 0 0 1px #ffffffb3;transform:translate(-50%,-50%);pointer-events:auto;touch-action:none}
.vz-app .vz-layer-transform button:focus-visible{outline:3px solid #a4bffd;outline-offset:2px}
.vz-app .vz-layer-transform [data-transform-handle="nw"],.vz-app .vz-layer-transform [data-transform-handle="se"]{cursor:nwse-resize}
.vz-app .vz-layer-transform [data-transform-handle="ne"],.vz-app .vz-layer-transform [data-transform-handle="sw"]{cursor:nesw-resize}
.vz-app .vz-layer-transform [data-transform-handle="n"],.vz-app .vz-layer-transform [data-transform-handle="s"]{cursor:ns-resize}
.vz-app .vz-layer-transform [data-transform-handle="e"],.vz-app .vz-layer-transform [data-transform-handle="w"]{cursor:ew-resize}
.vz-app .vz-layer-transform[data-locked="true"] button{display:none}
.vz-app .vz-layer-transform[data-locked="true"] polygon{stroke:#7c8b9a;stroke-dasharray:5 5}
.vz-app .vz-layer-transform-hint{position:absolute;z-index:6;top:16px;left:16px;max-width:calc(100% - 32px);padding:8px 10px;border:1px solid var(--vz-line);border-radius:9px;background:var(--vz-paper);color:var(--vz-sub);font-size:11px;line-height:1.4;pointer-events:none}
.vz-app .vz-layer-transform[hidden],.vz-app .vz-layer-transform-hint[hidden]{display:none}
.vz-app .vz-edit-stage[data-edit-tool="select"] .vz-edit-image{cursor:move}
