/* The launcher belongs to the application shell, outside section rerenders. */
.vz-task-tracker{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));width:342px;max-width:calc(100vw - 28px);z-index:8100;color:var(--vz-text,#172337);font:13px/1.45 Inter,system-ui,sans-serif;pointer-events:none;animation:none!important;isolation:isolate}
.vz-task-tracker button{border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;animation:none!important}
.vz-task-tracker button:disabled{cursor:wait;opacity:.55}
.vz-task-tracker button:focus-visible{outline:2px solid #7195ff;outline-offset:3px}
.vz-task-panel{position:absolute;right:0;bottom:67px;width:min(720px,calc(100vw - 40px));background:var(--vz-card,#fff);border:1px solid var(--vz-border,#dce4ef);border-radius:16px;box-shadow:0 16px 55px #1827442a;overflow:hidden;pointer-events:auto;max-height:calc(100dvh - 118px);display:flex;flex-direction:column;animation:none!important}
.vz-task-panel[hidden]{display:none!important}
.vz-task-panel>header{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(100deg,#5984ff12,transparent);flex:none}
.vz-task-panel>header>div{flex:1;min-width:0}
.vz-task-panel>header b{display:block;font-size:12px}
.vz-task-panel>header small{display:block;color:var(--vz-muted,#6c7b91);font-size:10px;margin-top:3px}
.vz-task-panel>header button{font-size:11px;padding:5px 0;white-space:nowrap}
.vz-task-panel>header button:last-child{font-size:20px;padding:1px 5px;line-height:1}
.vz-task-launcher{display:flex;align-items:center;gap:11px;margin-left:auto;min-width:177px;max-width:100%;padding:10px 13px!important;border:1px solid var(--vz-border,#dce4ef)!important;border-radius:13px;background:var(--vz-card,#fff)!important;box-shadow:0 5px 22px #18274424;pointer-events:auto;text-align:left;transition:border-color .15s,box-shadow .15s}
.vz-task-launcher:hover{border-color:#7598ee!important;box-shadow:0 6px 25px #18274430}
.vz-task-launcher>span:nth-child(2){flex:1;min-width:0}
.vz-task-launcher b{display:flex;align-items:center;gap:8px;font-weight:650;font-size:12px}
.vz-task-launcher small{display:block;font-size:10px;margin-top:2px;color:var(--vz-muted,#6c7b91);white-space:nowrap}
.vz-task-count{display:inline-grid;place-items:center;min-width:17px;height:17px;border-radius:6px;background:#547bfa17;color:var(--vz-blue,#356bf3);font-size:10px}
.vz-task-chevron{font-size:17px;line-height:1;color:var(--vz-muted,#6c7b91)}
.vz-task-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#91a0b6}
.vz-task-dot.active{background:#537cff;box-shadow:0 0 0 4px #537cff14;animation:vz-task-pulse 1.8s ease-in-out infinite}
.vz-task-dot.attention{background:#dc8b42;box-shadow:0 0 0 4px #dc8b4214}
.vz-task-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px;max-height:min(365px,52vh);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;min-height:0;border-top:1px solid var(--vz-border,#e9edf3);align-items:start}
.vz-task-item{min-width:0;padding:10px 11px;border:1px solid var(--vz-border,#e9edf3);border-radius:10px;background:var(--vz-card,#fff)}
.vz-task-item.is-active{border-color:color-mix(in srgb,#537cff 35%,var(--vz-border,#e9edf3))}
.vz-task-item>div:first-child{display:flex;justify-content:space-between;gap:12px}
.vz-task-item>div>b{font-size:11px;overflow-wrap:anywhere;min-width:0;line-height:1.35}
.vz-task-item>div>span{font-size:9px;color:var(--vz-muted,#6c7b91);white-space:nowrap;font-variant-numeric:tabular-nums}
.vz-task-item p{font-size:10px;line-height:1.5;color:var(--vz-muted,#6c7b91);margin:7px 0 8px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vz-task-item[data-status=failed] p,.vz-task-item[data-status=needs_review] p{-webkit-line-clamp:unset}
.vz-task-metadata{display:block;color:var(--vz-muted,#6c7b91);font-size:9px;line-height:1.55;margin-top:5px;overflow-wrap:anywhere}
.vz-task-item footer{display:flex;gap:12px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.vz-task-item footer button{font-size:10px;color:var(--vz-blue,#356bf3);padding:4px 0;min-height:26px}
.vz-task-item footer small{font-size:10px;font-variant-numeric:tabular-nums;color:var(--vz-muted,#6c7b91)}
.vz-task-item[data-status=failed] p,.vz-task-item[data-status=needs_review] p{color:#c94d57}
.vz-task-units{display:block;font-size:10px;color:var(--vz-muted,#6c7b91);margin:-3px 0 7px}
.vz-task-meter{height:3px;background:#7e8da61c;border-radius:3px;margin-bottom:7px;overflow:hidden}
.vz-task-meter i{display:block;height:100%;background:#527dff;transition:width .35s}
.vz-task-meter.phase-only i{width:40%!important;background:linear-gradient(90deg,#88a6ff33,#668bffbb,#88a6ff33);animation:vz-task-scan 1.8s ease-in-out infinite}
.vz-task-empty{grid-column:1/-1;padding:18px 12px 20px;text-align:left}
.vz-task-empty>b{font-size:13px;font-weight:600}
.vz-task-empty p{font-size:12px;line-height:1.7;margin:7px 0 14px;color:var(--vz-muted,#6c7b91)}
.vz-task-empty button,.vz-task-connection button{color:var(--vz-blue,#356bf3);padding:0;font-size:11px}
.vz-task-connection{padding:10px 15px;border-top:1px solid var(--vz-border,#e9edf3);font-size:11px;line-height:1.6;color:var(--vz-muted,#6c7b91)}
.vz-task-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes vz-task-pulse{0%,100%{box-shadow:0 0 0 3px #537cff14;opacity:1}50%{box-shadow:0 0 0 7px #537cff08;opacity:.6}}
@keyframes vz-task-scan{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}
@media(max-width:760px){.vz-task-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.vz-task-tracker{right:12px;bottom:max(12px,env(safe-area-inset-bottom));max-width:calc(100vw - 24px)}.vz-task-launcher{min-width:156px;padding:8px 11px!important}.vz-task-panel{bottom:61px;width:calc(100vw - 24px)}}
@media(max-width:420px){.vz-task-list{grid-template-columns:1fr;max-height:46vh}.vz-task-item{padding:9px 11px}.vz-task-metadata{font-size:10px}}
@media(prefers-reduced-motion:reduce){.vz-task-meter i,.vz-task-launcher{transition:none}.vz-task-dot.active,.vz-task-meter.phase-only i{animation:none}.vz-task-meter.phase-only i{width:100%!important}}
[data-vz-motion=reduced] .vz-task-dot.active,[data-vz-motion=reduced] .vz-task-meter.phase-only i{animation:none}
[data-vz-motion=reduced] .vz-task-meter.phase-only i{width:100%!important}
