/* ZONESENSE — Detected Zones / Levels / Phases card (Data Input) */
.zs-card .dinput-card-num{display:inline-flex;align-items:center;justify-content:center}
.zs-card .dinput-card-num svg{width:18px;height:18px}

.zs-switch{margin-left:auto;cursor:pointer;display:inline-flex;align-items:center}
.zs-switch input{display:none}
.zs-switch-track{width:38px;height:22px;border-radius:999px;background:var(--st,#c9c4b4);position:relative;transition:.2s;display:inline-block}
.zs-switch-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.zs-switch input:checked + .zs-switch-track{background:var(--bl,#5C6B3F)}
.zs-switch input:checked + .zs-switch-track .zs-switch-thumb{left:18px}

.zs-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.zs-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r3,10px);border:1px solid var(--st,#d8d3c4);background:var(--p,#fff);color:var(--tx,#33301f);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:.15s}
.zs-btn svg{width:15px;height:15px}
.zs-btn:hover{border-color:var(--bl,#5C6B3F)}
.zs-btn--primary{background:var(--bl,#5C6B3F);color:#fff;border-color:var(--bl,#5C6B3F)}
.zs-btn--primary:hover{filter:brightness(1.06)}
.zs-btn:disabled{opacity:.6;cursor:default}

.zs-body{margin-top:12px}
.zs-note{padding:12px;border-radius:var(--r3,10px);background:var(--p2,#f5f2e9);color:var(--tx,#4a4632);font-size:13px;line-height:1.5}
.zs-note--off{opacity:.8}
.zs-reasons{font-size:11px;color:var(--st-tx,#8a866f);opacity:.85;margin-top:6px}

.zs-summary{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.zs-chip{font-size:11px;font-weight:600;padding:4px 9px;border-radius:999px;background:var(--p2,#efeada);color:var(--tx,#4a4632);border:1px solid var(--st,#e2dccb)}
.zs-chip--on{background:var(--bl,#5C6B3F);color:#fff;border-color:var(--bl,#5C6B3F)}
.zs-chip--ai{background:var(--am,#24B47E);color:#3a2f10;border-color:var(--am,#24B47E)}

.zs-seq{display:flex;align-items:center;gap:8px;margin:10px 0}
.zs-seq label{font-size:12px;font-weight:600;color:var(--tx,#4a4632)}
.zs-seq select{flex:1;padding:7px 10px;border-radius:var(--r3,10px);border:1px solid var(--st,#d8d3c4);background:var(--p,#fff);font:inherit;font-size:13px}
.zs-auto{font-size:10px;color:var(--st-tx,#8a866f);text-transform:uppercase;letter-spacing:.5px}

.zs-hint{font-size:11px;color:var(--st-tx,#8a866f);margin:8px 0 4px;line-height:1.4}
.zs-list{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.zs-row{display:grid;grid-template-columns:auto 22px 1fr auto auto auto;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r3,10px);background:var(--p2,#f7f4ec);border:1px solid var(--st,#e7e1d0)}
.zs-row-move{display:inline-flex;gap:2px}
.zs-mv{width:22px;height:22px;border-radius:6px;border:1px solid var(--st,#d8d3c4);background:var(--p,#fff);cursor:pointer;font-size:12px;line-height:1;color:var(--tx,#4a4632);padding:0}
.zs-mv:hover:not(:disabled){border-color:var(--bl,#5C6B3F);background:var(--p2,#f1eee3)}
.zs-mv:disabled{opacity:.3;cursor:default}
.zs-row--off{opacity:.45}
.zs-row-ord{font-size:11px;font-weight:700;color:#fff;background:var(--bl,#5C6B3F);width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.zs-row-label{border:1px solid transparent;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--tx,#33301f);padding:4px 6px;border-radius:6px}
.zs-row-label:focus{outline:none;border-color:var(--bl,#5C6B3F);background:#fff}
.zs-row-kind{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--st-tx,#8a866f)}
.zs-row-count{font-size:11px;color:var(--st-tx,#8a866f);white-space:nowrap}

/* cross-zone (ZoneSense) link arrows in the Gantt — distinct blue + animated flow.
   !important needed: a .ga-link-path CSS rule overrides the SVG stroke attribute,
   which left only the arrowhead (marker fill) coloured. */
.ga-link-zone{stroke:#2563EB !important;stroke-width:2.2 !important;stroke-opacity:1 !important;animation:zsLinkFlow 1.1s linear infinite}
@keyframes zsLinkFlow{to{stroke-dashoffset:-26}}
@media (prefers-reduced-motion: reduce){ .ga-link-zone{animation:none} }

/* Line-of-Balance sketch (mini visual editor) */
.zs-sketch-wrap{margin:6px 0 10px;padding:8px 6px;border-radius:var(--r3,10px);background:var(--p2,#f7f4ec);border:1px solid var(--st,#e7e1d0)}
.zs-sketch{width:100%;height:auto;display:block;overflow:visible}
.zs-sketch rect{filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.18))}
.zs-zbar{animation:zsBarIn .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d,0ms)}
.zs-zbar:hover rect{filter:drop-shadow(0 2px 4px rgba(0,0,0,.28));opacity:.92}
@keyframes zsBarIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.zs-conn{fill:none;stroke:var(--am,#24B47E);stroke-width:2;stroke-dasharray:7,5;animation:zsLinkFlow 1.1s linear infinite}
.zs-conn-hit{fill:none;stroke:transparent;stroke-width:14;cursor:pointer}
.zs-conn-hit:hover + .zs-conn,.zs-conn-hit:hover{}
.zs-conn-lbl{fill:#188D68;font-size:9px;font-weight:700;text-anchor:middle;pointer-events:none}
.zs-sketch-hint{font-size:10px;color:var(--st-tx,#8a866f);margin-top:4px;text-align:center}
@media (prefers-reduced-motion: reduce){ .zs-zbar{animation:none} .zs-conn{animation:none} }

/* cross-zone relations */
.zs-rel{margin-top:14px;padding-top:12px;border-top:1px dashed var(--st,#e2dccb)}
.zs-rel-hdr{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--bl,#5C6B3F);margin-bottom:8px}
.zs-step{font-size:12px;font-weight:800;color:var(--bl,#5C6B3F);margin:14px 0 8px;display:flex;align-items:center;gap:6px}
.zs-rel-note{font-size:11px;color:var(--st-tx,#8a866f);line-height:1.45;margin:2px 0 6px}
.zs-rel-note--dim{opacity:.75;font-style:italic}
.zs-rel-note b{color:var(--tx,#4a4632)}
.zs-legend{display:inline-flex;align-items:center;gap:5px;margin-top:3px;color:#188D68}
.zs-leg-dot{width:14px;height:0;border-top:2px dashed var(--am,#24B47E);display:inline-block}
.zs-rel-tbl{display:flex;flex-direction:column;gap:4px;margin:8px 0}
.zs-rel-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:5px 10px;border-radius:8px;background:var(--p2,#f7f4ec);font-size:12px}
.zs-rel-row small{color:var(--st-tx,#8a866f);font-size:10px;margin-left:4px}
.zs-rel-row--head{background:transparent;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--st-tx,#8a866f);font-weight:700;padding-bottom:0}
.zs-pair-sel{font:inherit;font-size:11px;padding:3px 6px;border-radius:7px;border:1px solid var(--st,#d8d3c4);background:var(--p,#fff);color:var(--tx,#33301f)}
.zs-rel-row--pair{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.zs-rel-row--pair>span:first-child{flex:1 1 130px;min-width:120px}
.zs-lag{flex:1 1 100%;font-size:11px;color:var(--st-tx,#8a866f);display:flex;align-items:center;gap:6px;padding-left:2px}
.zs-lag-in{width:54px;font:inherit;font-size:11px;padding:2px 5px;border-radius:6px;border:1px solid var(--st,#d8d3c4);background:var(--p,#fff)}
.zs-def{display:inline-block;margin-top:3px;font-size:11px;color:#188D68}
.zs-def b{color:#188D68}
.zs-tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;text-align:center}
.zs-tag--fs{background:#e7e1d0;color:#5b5640}
.zs-tag--ss{background:var(--am,#24B47E);color:#0d5c3f}
.zs-smart{margin-top:10px;padding:8px 10px;border-radius:var(--r3,10px);background:rgba(36,180,126,.10);border:1px solid rgba(36,180,126,.35)}
.zs-smart-hdr{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#188D68;margin-bottom:5px}
.zs-smart-row{font-size:12px;color:var(--tx,#4a4632);padding:2px 0;display:flex;align-items:center;gap:6px}
.zs-smart-row em{color:var(--st-tx,#8a866f);font-style:normal;font-size:11px}
.zs-dot{width:7px;height:7px;border-radius:50%;background:var(--am,#24B47E);flex:0 0 auto}
.zs-exec{margin-top:10px;padding:8px 10px;border-radius:var(--r3,10px);background:rgba(110,130,90,.10);border:1px solid rgba(110,130,90,.30)}
.zs-smart-hdr-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.zs-smart-hdr-row .zs-smart-hdr{margin-bottom:0}
.zs-open-review{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;border:1px solid rgba(110,130,90,.4);background:#fff;color:#4a5b35;cursor:pointer}
.zs-open-review:hover{background:#eef2e8}
.zs-exec-row{padding:6px 0;border-bottom:1px dashed rgba(110,130,90,.25)}
.zs-exec-row:last-child{border-bottom:0}
.zs-exec-row--mand{background:rgba(180,90,60,.06);border-radius:6px;padding-left:6px;padding-right:6px}
.zs-exec-head{font-size:12px;color:var(--tx,#3a3a2c);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.zs-exec-rel{font-size:10px;font-weight:700;padding:1px 7px;border-radius:999px;background:#e2e8d6;color:#4a5b35}
.zs-exec-badge{font-size:9px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:1px 6px;border-radius:999px}
.zs-exec-badge--mand{background:#f3ded6;color:#8a3f22}
.zs-exec-badge--flex{background:#dce7d6;color:#3f6b2e}
.zs-exec-badge--ai{background:#dde6f5;color:#2d4f8a}
.zs-exec-pt{font-size:11px;color:var(--st-tx,#6a6a55);margin-top:3px;display:flex;align-items:center;gap:6px}
.zs-exec-pt em{font-style:normal;color:var(--tx,#4a4632);font-weight:600}
.zs-exec-note{font-size:10.5px;color:#8a866f;margin-top:2px}
.zs-exec-internal{font-size:10px;color:#6a7d5a;margin-top:4px;padding:4px 7px;border-radius:6px;background:rgba(110,130,90,.08)}
.zs-field{margin-top:10px}
.zs-field label{display:block;font-size:12px;font-weight:600;color:var(--tx,#4a4632);margin-bottom:4px}
.zs-ta{width:100%;box-sizing:border-box;padding:8px 10px;border-radius:var(--r3,10px);border:1px solid var(--st,#d8d3c4);background:var(--p,#fff);font:inherit;font-size:12px;resize:vertical}
.zs-ta:focus{outline:none;border-color:var(--bl,#5C6B3F)}
