/* Module SVI : canevas d'un SVI (memes variables visuelles que le canevas des agents), panneau, simulateur, cartes. */
.svi-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:18px;align-items:start}
@media(max-width:1200px){.svi-layout{grid-template-columns:1fr}}
.svi-canvas-card{padding:14px}
.svi-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.svi-canvas{position:relative;overflow:auto;min-height:520px;border:1px solid var(--line);border-radius:10px;background-color:var(--canvas-bg);background-image:radial-gradient(var(--canvas-dot) 1.2px,transparent 1.2px);background-size:18px 18px}
.svi-edges{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.svi-edges .sedge{fill:none;stroke:var(--edge);stroke-width:1.6}
.svi-edges marker path{fill:var(--edge)}
.svi-hint{margin:8px 0 0;font-size:12.5px}
.snode{position:absolute;width:210px;background:var(--node-bg);border:1px solid var(--node-line);border-left:4px solid var(--primary);border-radius:10px;padding:8px 10px;box-shadow:0 3px 10px #0000000f;user-select:none;cursor:pointer;font-size:13px}
.svi-canvas[data-editable] .snode{cursor:move}
.snode.selected{outline:2px solid var(--primary);outline-offset:1px}
.snode strong{display:block;font-size:13.5px}
.snode small{display:block;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.snode-head{display:flex;align-items:center;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:2px}
.snode-head i.ic{color:var(--primary)}
.snode-start{border-left-color:var(--ok)}.snode-start .snode-head i.ic{color:var(--ok)}
.snode-end{border-left-color:var(--muted)}
.snode-transfer{border-left-color:var(--accent)}
.snode-agent,.snode-scenario{border-left-color:var(--primary-2)}
.snode-hours{border-left-color:var(--warn)}
.snode-outs{list-style:none;margin:6px 0 0;padding:0;border-top:1px dashed var(--line);font-size:11.5px}
.snode-outs li{display:flex;justify-content:space-between;gap:6px;padding:2px 0}
.snode-outs li span{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.snode-outs li b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}
.snode-outs li.unlinked b{color:var(--err);font-weight:500}
.svi-panel{padding:0;position:sticky;top:12px}
.svi-tabs{border-radius:12px 12px 0 0;margin:0;flex-wrap:wrap}
.svi-tabpane{padding:16px}
.svi-node-form .field{margin-bottom:10px}
.svi-say{border-left:3px solid var(--soft);padding-left:10px;margin-bottom:8px}
.svi-opts input,.svi-opts select{min-height:32px;padding:4px 8px}
.svi-opts td{padding:4px}
.svi-ok{color:var(--ok);font-weight:600}
.svi-sim{max-height:380px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface-2);margin:10px 0;min-height:60px}
.sim-line{margin:4px 0;padding:6px 10px;border-radius:8px;background:var(--surface);font-size:13px}
.sim-menu{border-left:3px solid var(--primary)}
.sim-dial,.sim-emily{border-left:3px solid var(--accent);font-weight:600}
.sim-end{color:var(--muted);font-style:italic}
.sim-caller{background:var(--soft);color:var(--primary);text-align:right;font-weight:600}
.sim-error{background:var(--err-bg);color:var(--err)}
.sim-keys{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.sim-keys .btn{min-width:40px}
.sim-done{display:grid;gap:3px;padding:10px;border-radius:8px;background:var(--ok-bg);color:var(--ink)}
.svi-sim-actions{display:flex;gap:8px}
.svi-module{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.svi-client-card{margin-top:18px}
.svi-agent-card .form-actions{margin-top:8px}
.svi-binding-form .field{margin-bottom:8px}
.total-row td{border-top:2px solid var(--line-2)}
.svi-stage{position:relative;transform-origin:0 0}
.svi-canvas{overflow:hidden;min-height:0}
.svi-tabs .tab{padding:10px 9px;font-size:13px}
.svi-tabs{flex-wrap:nowrap;overflow:hidden}
.svi-opt{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:8px;background:var(--surface-2)}
.svi-opt-head{display:grid;grid-template-columns:70px 1fr auto;gap:6px;align-items:center;margin-bottom:6px}
.svi-opt .field{margin-bottom:6px}
