.vl-ring{vertical-align:middle;flex:none;place-items:center;display:inline-grid}.vl-ring>svg,.vl-ring>span{grid-area:1/1}.vl-ring>svg{transform:rotate(-90deg)}.vl-ring circle{fill:none;stroke-width:4px}.vl-ring[data-size=lg] circle{stroke-width:5px}.vl-ring .vl-ring-track{stroke:var(--line-neutral-85)}.vl-ring-n{color:var(--fg);font-weight:var(--weight-bold);font-size:var(--font-size-caption);line-height:1}.vl-ring[data-size=md] .vl-ring-n{font-size:var(--font-size-ui)}.vl-ring[data-size=lg] .vl-ring-n{font-size:var(--font-size-figure)}.vl-ring circle[data-seg=green]{stroke:var(--cv-light-green)}.vl-ring circle[data-seg=yellow]{stroke:var(--cv-light-yellow)}.vl-ring circle[data-seg=red]{stroke:var(--cv-light-red)}.vl-ring circle[data-seg=wait]{stroke:var(--line-neutral-60)}.vl-ring circle[data-seg=done]{stroke:var(--corporate-blue)}.vl-ring circle[data-seg=path]{stroke:var(--line-purple-40)}.vl-bar{border-radius:var(--radius-pill);background:var(--surface-neutral-85);vertical-align:middle;width:120px;min-width:60px;height:8px;display:inline-flex;overflow:hidden}.vl-bar.vl-bar-tall{height:12px}.vl-bar i{height:100%;display:block}.vl-bar i[data-seg=green]{background:var(--cv-light-green)}.vl-bar i[data-seg=yellow]{background:var(--cv-light-yellow)}.vl-bar i[data-seg=red]{background:var(--cv-light-red)}.vl-bar i[data-seg=wait]{background:var(--surface-neutral-60)}.vl-bar i[data-seg=done]{background:var(--corporate-blue)}.vl-bar i[data-seg=path]{background:var(--surface-purple-40)}.vl-spark{vertical-align:middle;flex:none;display:inline-block}.vl-spark .vl-spark-line{fill:none;stroke:var(--corporate-blue);stroke-width:1.6px;stroke-linejoin:round}.vl-spark .vl-spark-area{fill:var(--graphic-blue-90);stroke:none}.vl-spark .vl-spark-dot{fill:var(--corporate-blue)}.vl-spark[data-tone=ok] .vl-spark-line{stroke:var(--ok)}.vl-spark[data-tone=ok] .vl-spark-area{fill:var(--graphic-green-90)}.vl-spark[data-tone=ok] .vl-spark-dot{fill:var(--ok)}.vl-spark[data-tone=bad] .vl-spark-line{stroke:var(--bad)}.vl-spark[data-tone=bad] .vl-spark-area{fill:var(--graphic-red-90)}.vl-spark[data-tone=bad] .vl-spark-dot{fill:var(--bad)}.vl-heroes{margin:0 0 var(--space-6);container-type:inline-size}.vl-heroes-grid{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.vl-hero{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-3);border:1px solid var(--line-surface);background:var(--surface-document);color:var(--fg);flex-wrap:wrap;text-decoration:none;display:flex}a.vl-hero:hover{border-color:var(--corporate-blue)}.vl-hero-icon{color:var(--corporate-blue);flex:none;display:inline-flex}.vl-hero-icon svg{width:28px;height:28px}.vl-hero-body{flex-direction:column;flex:6ch;min-width:min-content;display:flex}.vl-hero-fig{color:var(--fg);font-size:var(--font-size-figure);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);white-space:nowrap;line-height:1}.vl-hero-fig small{color:var(--muted);font-size:var(--font-size-ui);font-weight:var(--weight-regular)}.vl-hero[data-tone=bad] .vl-hero-fig{color:var(--bad)}.vl-hero[data-tone=ok] .vl-hero-fig{color:var(--ok)}.vl-hero-label{margin-top:var(--space-1);color:var(--muted);font-size:var(--font-size-caption);overflow-wrap:break-word}.vl-hero-vis{flex:none;display:inline-flex}.vl-rows-block{margin:0 0 var(--space-6);container-type:inline-size}.vl-group{padding:var(--space-3) 0 var(--space-1);color:var(--muted);font-size:var(--font-size-caption);font-weight:var(--weight-medium);letter-spacing:var(--tracking-caps);text-transform:uppercase;margin:0}.vl-rows{border-top:1px solid var(--line-surface);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.vl-row{align-items:center;gap:var(--space-3);min-height:48px;padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--line-surface);grid-template-columns:28px minmax(0,1fr) auto auto;display:grid}.vl-row.is-selected{background:var(--tone-location)}.vl-row-icon{color:var(--corporate-blue);display:inline-flex}.vl-row-icon svg{width:22px;height:22px}.vl-row-text{flex-direction:column;min-width:0;display:flex}.vl-row-name{color:var(--fg);font-size:var(--font-size-ui);font-weight:var(--weight-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}a.vl-row-name{text-decoration:none}a.vl-row-name:hover{text-decoration:underline}.vl-row-sub{color:var(--muted);font-size:var(--font-size-caption);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vl-row-vis{justify-content:flex-end;align-items:center;gap:var(--space-3);display:flex}.vl-row-act{justify-content:flex-end;gap:var(--space-2);display:flex}.vl-icon-act{min-width:32px;min-height:32px;color:var(--corporate-blue);justify-content:center;align-items:center;display:inline-flex}.vl-row-more{min-width:0;font-size:var(--font-size-caption);grid-column:2/-1}.vl-chip{align-items:center;gap:var(--space-1);min-height:24px;padding:var(--space-0-5) var(--space-2);border-radius:var(--radius-pill);background:var(--tone-inset);color:var(--fg);font-size:var(--font-size-caption);font-weight:var(--weight-medium);white-space:nowrap;display:inline-flex}.vl-chip-state:before{content:"";background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.vl-chip-state[data-light=ok]:before{background:var(--cv-light-green)}.vl-chip-state[data-light=warn]:before{background:var(--cv-light-yellow);box-shadow:0 0 0 1px var(--corporate-yellow)}.vl-chip-state[data-light=bad]:before{background:var(--cv-light-red)}.vl-chip-state[data-light=wait]:before{background:var(--graphic-neutral-50)}.vl-chip-initials{background:var(--tone-location);width:18px;height:18px;color:var(--corporate-blue-strong);font-size:10px;font-weight:var(--weight-bold);border-radius:50%;flex:none;place-items:center;display:inline-grid}.vl-chip-initials:before{content:attr(data-initials)}.vl-chip-person[data-holder=role] .vl-chip-initials{background:var(--surface-neutral-60);width:8px;height:8px}.vl-chip-due svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;flex:none;width:12px;height:12px}.vl-chip-due[data-due=yellow]{background:var(--surface-yellow-95)}.vl-chip-due[data-due=red]{background:var(--surface-red-95);color:var(--bad)}.vl-matrix-block{margin:0 0 var(--space-6)}.vl-matrix-wrap{max-width:100%;overflow-x:auto}.vl-matrix{border-collapse:separate;border-spacing:3px;width:auto;font-size:var(--font-size-caption)}.vl-matrix th{padding:0 var(--space-3) 0 0;color:var(--fg);font-weight:var(--weight-medium);text-align:left;white-space:nowrap;background:0 0}.vl-matrix th.vl-matrix-col{padding:0 0 var(--space-1);text-align:center}.vl-matrix td{text-align:center;width:34px;height:28px;font-weight:var(--weight-medium);border-radius:3px;padding:0}.vl-matrix td button{width:100%;height:100%;min-height:28px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.vl-matrix td[data-cov=full]{background:var(--cv-light-green);color:var(--cv-light-green-ink)}.vl-matrix td[data-cov=part]{background:var(--surface-green-85);color:var(--fg)}.vl-matrix td[data-cov=gap]{background:var(--surface-red-85);color:var(--fg)}.vl-matrix td[data-cov=none]{background:var(--surface-neutral-90);color:var(--fg)}.vl-matrix td[data-cov=empty]{color:var(--muted);background:0 0}.vl-matrix td.vl-matrix-total{width:auto;padding-left:var(--space-2);color:var(--fg);text-align:left;white-space:nowrap;background:0 0}.vl-matrix tr.is-selected th,.vl-matrix tr.is-selected td.vl-matrix-total{color:var(--corporate-blue-strong)}.vl-legend{align-items:center;gap:var(--space-4);margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--font-size-caption);flex-wrap:wrap;padding:0;list-style:none;display:flex}.vl-legend li{align-items:center;gap:var(--space-1);display:inline-flex}.vl-legend i{border-radius:3px;place-items:center;width:16px;height:16px;font-size:10px;font-style:normal;display:inline-grid}.vl-legend i[data-cov=full]{background:var(--cv-light-green);color:var(--cv-light-green-ink)}.vl-legend i[data-cov=part]{background:var(--surface-green-85);color:var(--fg)}.vl-legend i[data-cov=gap]{background:var(--surface-red-85);color:var(--fg)}.vl-legend i[data-cov=none]{background:var(--surface-neutral-90);color:var(--fg)}.vl-ribbon{margin:0 0 var(--space-6);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:2px;padding:0;list-style:none;display:grid}.vl-ribbon-seg{min-width:0;padding:var(--space-2) var(--space-3);border-left:3px solid var(--line-neutral-60);background:var(--tone-inset);color:var(--fg);flex-direction:column;display:flex}.vl-ribbon-seg[data-state=done]{border-left-color:var(--ok);background:var(--surface-green-95)}.vl-ribbon-seg[data-state=now]{border-left-color:var(--corporate-blue);background:var(--corporate-blue-light);outline:2px solid var(--corporate-blue);outline-offset:-2px}.vl-ribbon-seg[data-state=blocked]{border-left-color:var(--bad);background:var(--surface-red-95)}.vl-ribbon-k{align-items:center;gap:var(--space-1);color:var(--fg);font-size:var(--font-size-caption);white-space:nowrap;text-overflow:ellipsis;display:flex;overflow:hidden}.vl-ribbon-k svg{flex:none;width:14px;height:14px}.vl-ribbon-v{align-items:baseline;gap:var(--space-2);font-size:var(--font-size-subheading);font-weight:var(--weight-bold);white-space:nowrap;text-overflow:ellipsis;display:flex;overflow:hidden}.vl-ribbon-v small{color:var(--fg);font-size:var(--font-size-caption);font-weight:var(--weight-regular)}.vl-flow{max-width:100%;margin:0 0 var(--space-6);padding:0 0 var(--space-4);align-items:center;list-style:none;display:flex;overflow-x:auto}.vl-flow-step{flex:none;align-items:center;display:flex}.vl-flow-node{align-items:center;gap:var(--space-1);min-width:88px;padding:var(--space-2);border:1px solid var(--line-surface);background:var(--surface-document);color:var(--fg);font-size:var(--font-size-caption);text-align:center;flex-direction:column;flex:none;display:flex}.vl-flow-node b{font-size:var(--font-size-ui);font-weight:var(--weight-medium);white-space:nowrap}.vl-flow-node[data-state=ok]{border-color:var(--cv-light-green)}.vl-flow-node[data-state=open]{border-color:var(--line-yellow-60);border-style:dashed}.vl-flow-node[data-state=bad]{border-color:var(--bad)}.vl-flow-icon{color:var(--corporate-blue);display:inline-flex}.vl-flow-icon svg{width:24px;height:24px}.vl-flow-sub{color:var(--muted);white-space:nowrap}.vl-flow-edge{align-items:stretch;gap:var(--space-1);min-width:72px;padding:var(--space-4) var(--space-2) 0;color:var(--text-neutral-60);flex-direction:column;display:flex}.vl-flow-line{background:currentColor;height:2px;display:block;position:relative}.vl-flow-line:after{content:"";border:5px solid #0000;border-left-color:currentColor;position:absolute;top:-4px;right:-1px}.vl-flow-edge[data-light=green]{color:var(--cv-light-green)}.vl-flow-edge[data-light=yellow]{color:var(--text-yellow-60)}.vl-flow-edge[data-light=red]{color:var(--cv-light-red)}.vl-flow-edge-label{min-height:16px;color:var(--muted);font-size:var(--font-size-caption);text-align:center;white-space:nowrap}.vl-map-wrap{max-width:100%;margin:0 0 var(--space-6);overflow-x:auto}.vl-map{display:block}.vl-map-zone{fill:var(--graphic-blue-95);stroke:var(--corporate-blue);stroke-width:1.2px;stroke-dasharray:4 3}.vl-map [data-group=external] .vl-map-zone{fill:var(--graphic-neutral-95);stroke:var(--line-neutral-50)}.vl-map [data-group=perimeter] .vl-map-zone{fill:var(--graphic-turquoise-95);stroke:var(--line-turquoise-50)}.vl-map [data-group=ot] .vl-map-zone{fill:var(--graphic-yellow-95);stroke:var(--line-yellow-50)}.vl-map-zone-label{fill:var(--fg);font-size:var(--font-size-caption);font-weight:var(--weight-medium)}.vl-map-object{fill:var(--surface-document);stroke:var(--line-blue-60);stroke-width:1px}.vl-map [data-selected=true] .vl-map-object{stroke:var(--corporate-blue);stroke-width:2.5px}.vl-map-object-label{fill:var(--fg);font-size:var(--font-size-caption)}.vl-map-light[data-light=green]{fill:var(--cv-light-green)}.vl-map-light[data-light=yellow]{fill:var(--cv-light-yellow);stroke:var(--line-yellow-50)}.vl-map-light[data-light=red]{fill:var(--cv-light-red)}.vl-map-light[data-light=wait]{fill:var(--graphic-neutral-60)}.vl-map-light[data-light=inherited]{fill:var(--cv-light-inherited);stroke:var(--cv-light-inherited-ink);stroke-width:1.5px}.vl-map-edge{fill:none;stroke:var(--line-neutral-60);stroke-width:1.4px}.vl-map-edge[data-light=green]{stroke:var(--cv-light-green)}.vl-map-edge[data-light=red]{stroke:var(--cv-light-red);stroke-width:2px}.vl-map-path{fill:none;stroke:var(--line-purple-40);stroke-width:3px;stroke-linejoin:round;opacity:.85}.vl-timeline{height:72px;margin:0 var(--space-4) var(--space-6);position:relative;container-type:inline-size}.vl-timeline ol{margin:0;padding:0;list-style:none}.vl-timeline-axis{background:var(--surface-neutral-60);height:2px;position:absolute;top:35px;left:0;right:0}.vl-timeline-today{background:var(--corporate-blue);width:2px;height:24px;position:absolute;top:24px}.vl-timeline-today span{color:var(--corporate-blue-strong);font-size:var(--font-size-caption);font-weight:var(--weight-bold);white-space:nowrap;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.vl-timeline-mark{width:0;height:14px;position:absolute;top:29px}.vl-timeline-hit{width:14px;height:14px;color:var(--muted);text-decoration:none;display:block;position:absolute;top:0;left:-7px}.vl-timeline-dot{border:2px solid var(--surface-document);background:var(--surface-neutral-60);border-radius:50%;width:14px;height:14px;display:block}.vl-timeline-mark[data-tone=ok] .vl-timeline-dot{background:var(--cv-light-green)}.vl-timeline-mark[data-tone=warn] .vl-timeline-dot{background:var(--cv-light-yellow);border-color:var(--line-yellow-50)}.vl-timeline-mark[data-tone=bad] .vl-timeline-dot{background:var(--cv-light-red)}.vl-timeline-label{background:var(--surface-document);color:var(--muted);font-size:var(--font-size-caption);white-space:nowrap;padding:0 3px;position:absolute;top:18px;left:7px;transform:translate(-50%)}.vl-timeline-mark[data-up=true] .vl-timeline-label{top:auto;bottom:18px}.vl-timeline-mark[data-end=right] .vl-timeline-label{left:auto;right:-7px;transform:none}.vl-timeline-mark[data-end=left] .vl-timeline-label{left:-7px;transform:none}.vl-empty{margin:0 0 var(--space-6);container-type:inline-size}.vl-empty-grid{align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px dashed var(--line-control);color:var(--fg);grid-template-columns:120px minmax(0,1fr);display:grid}.vl-empty svg{fill:none;width:120px;height:90px;stroke:var(--corporate-blue);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.vl-empty svg .vl-empty-fill{fill:var(--graphic-blue-90);stroke:none}.vl-empty svg .vl-empty-accent{stroke:var(--line-purple-40)}.vl-empty-body{min-width:0}.vl-empty-body p{margin:0 0 var(--space-2);color:var(--fg);font-size:var(--font-size-ui)}.vl-empty-compact .vl-empty-grid{padding:var(--space-3);grid-template-columns:72px minmax(0,1fr)}.vl-empty-compact svg{width:72px;height:54px}@container (width<=600px){.vl-row{grid-template-columns:24px minmax(0,1fr) auto}.vl-row-vis{flex-wrap:wrap;grid-column:2/-1;justify-content:flex-start}.vl-row-act{grid-column:2/-1;justify-content:flex-start;align-items:center}.vl-row-vis .vl-spark{display:none}.vl-row-vis .vl-bar{width:72px}.vl-heroes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vl-hero-icon,.vl-hero-vis{display:none}.vl-timeline-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}}@container (width<=440px){.vl-empty-grid{grid-template-columns:72px minmax(0,1fr)}.vl-empty svg{width:72px;height:54px}}.vl-file-drop{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-4);border:var(--line-width) dashed var(--line-control);border-radius:var(--radius-surface);background:var(--surface-document);display:flex;position:relative}.vl-file-drop[data-over]{border-color:var(--corporate-blue);background:var(--tone-location)}.vl-file-drop[data-disabled]{opacity:.6}.vl-file-drop__art{fill:none;width:48px;height:40px;stroke:var(--muted);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none}.vl-file-drop__accent{stroke:var(--corporate-blue)}.vl-file-drop__body{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;min-width:0;display:flex}.vl-file-drop__hint{color:var(--muted);font-size:var(--font-size-caption);overflow-wrap:break-word}.vl-file-drop__input{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute}
