/* ── Circuit carrier tree ── */
.cct-tree{padding:8px 0;font-size:12px;}
.cct-node{display:flex;align-items:flex-start;position:relative;}
.cct-line-v{position:absolute;left:16px;top:22px;bottom:0;width:2px;background:#cbd5e1;}
.cct-line-h{width:24px;height:2px;background:#0093a5;margin-top:11px;flex-shrink:0;}
.cct-connector{display:flex;flex-direction:column;align-items:flex-end;margin-right:0;}
.cct-branch{display:flex;flex-direction:column;}
.cct-item{
  display:flex;align-items:center;gap:6px;padding:4px 8px;
  border-radius:4px;cursor:pointer;border:1px solid transparent;
  margin:2px 0;transition:all .1s;white-space:nowrap;
}
.cct-item:hover{background:var(--accent-light);border-color:var(--accent-border);}
.cct-item.selected{background:var(--accent-light);border-color:var(--accent);font-weight:600;}
.cct-item.root{font-weight:700;font-size:13px;color:var(--accent);}
.cct-arrow{color:#64748b;font-size:10px;margin:0 2px;}
.cct-children{margin-left:20px;border-left:2px solid #e2e8f0;padding-left:8px;}
.cct-status{font-size:9px;font-weight:600;padding:1px 5px;border-radius:3px;flex-shrink:0;}
.cct-status.IS{background:#dcfce7;color:#166534;}
.cct-status.OOS,.cct-status.OOF{background:#fee2e2;color:#991b1b;}
.cct-status.PL{background:#fef3c7;color:#92400e;}
.cct-status.MI{background:#ede9fe;color:#5b21b6;}
.cct-type{font-size:9px;color:var(--text3);font-family:var(--mono);}

/* ── Circuit path diagram ── */
.cpath-wrap{
  background:var(--surface);border:1px solid var(--border);border-radius:8px;
  padding:20px;min-width:340px;max-width:500px;
  box-shadow:var(--shadow-lg);
}
.cpath-title{font-size:12px;font-weight:700;color:var(--text);margin-bottom:4px;}
.cpath-sub{font-size:10px;color:var(--text3);margin-bottom:16px;}
.cpath-nodes{display:flex;flex-direction:column;align-items:center;gap:0;}
.cpn-row{display:flex;flex-direction:column;align-items:center;width:100%;}
.cpn-box{
  display:flex;align-items:center;gap:8px;
  border:2px solid var(--green);border-radius:6px;
  padding:6px 14px;background:#fff;min-width:220px;
  cursor:pointer;transition:all .12s;
}
.cpn-box:hover{box-shadow:0 0 0 3px rgba(22,163,74,.15);}
.cpn-box.fault{border-color:var(--red);}
.cpn-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;}
.cpn-dot.IS{background:var(--green);}
.cpn-dot.OOS,.cpn-dot.OOF{background:var(--red);}
.cpn-dot.PL{background:var(--amber);}
.cpn-dot.MI{background:var(--purple);}
.cpn-name{font-size:12px;font-weight:600;}
.cpn-status{font-size:10px;color:var(--text2);}
.cpn-line{width:2px;background:#334155;min-height:24px;position:relative;}
.cpn-line-fault{width:2px;background:#ef4444;min-height:24px;}
.cpn-labels{
  position:absolute;left:10px;top:2px;
  display:flex;flex-direction:column;gap:2px;white-space:nowrap;
}
.cpn-label{font-size:9px;color:var(--text2);font-family:var(--mono);}
.cpn-port{font-size:9px;color:var(--text3);margin-top:2px;}
.cpn-vlans{
  background:#f8fafc;border:1px solid var(--border);border-radius:4px;
  padding:3px 8px;margin:4px 0;font-size:9px;color:var(--text2);
  text-align:center;max-width:300px;font-family:var(--mono);
}
.cpn-fault-mark{
  color:var(--red);font-size:16px;font-weight:700;
  background:#fee2e2;border-radius:50%;width:22px;height:22px;
  display:flex;align-items:center;justify-content:center;
  margin:2px auto;
}
.cpath-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:12px;}
.cpath-tab{padding:6px 12px;font-size:11px;cursor:pointer;
  border-bottom:2px solid transparent;color:var(--text2);}
.cpath-tab.active{color:var(--accent);border-bottom-color:var(--accent);}

/* ── Prevent circuit workspace from stretching horizontally ─────────────── */
#cct-workspace { max-width: 100%; overflow: hidden; }
#cct-workspace > * { min-width: 0; }
#cct-canvas { max-width: 100%; min-width: 0; overflow: auto !important; }
#cct-canvas > * { max-width: 100%; }
#cct-top-area { max-width: 100%; min-width: 0; }

/* Tables inside canvas must scroll within canvas */
#cct-canvas [style*="width:max-content"] { max-width: none; }
