*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,sans-serif;background:#0d1117;color:#e6edf3;height:100vh;display:flex;flex-direction:column;overflow:hidden}

/* ── TOPBAR ── */
.topbar{height:42px;background:#161b22;border-bottom:1px solid #21262d;display:flex;align-items:center;padding:0 14px;gap:10px;flex-shrink:0;z-index:300}
.logo{font-size:14px;font-weight:800;color:#58a6ff;letter-spacing:.04em;display:flex;align-items:center;gap:7px;flex-shrink:0}
.logo-sub{font-size:10px;color:#484f58;font-weight:400;letter-spacing:.06em}
.url-pill{display:flex;align-items:center;gap:6px;background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:0 10px;height:26px;cursor:pointer;transition:border-color .15s;max-width:320px;min-width:0}
.url-pill:hover{border-color:#58a6ff}
.url-pill span{font-size:11px;color:#8b949e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.crawl-btn{height:26px;padding:0 14px;background:#1f6feb;border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;flex-shrink:0;transition:background .15s}
.crawl-btn:hover{background:#388bfd}
.crawl-btn.done{background:#238636}
.topbar-mid{display:flex;align-items:center;gap:4px;margin:0 8px}
.nav-tab{height:26px;padding:0 12px;background:none;border:none;color:#8b949e;font-size:12px;cursor:pointer;border-radius:6px;display:flex;align-items:center;gap:5px;transition:background .12s,color .12s;font-family:inherit;white-space:nowrap}
.nav-tab:hover{background:#21262d;color:#e6edf3}
.nav-tab.active{background:#1f6feb22;color:#58a6ff}
.nav-tab svg{width:13px;height:13px;flex-shrink:0}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:6px}
.badge{font-size:11px;color:#8b949e;padding:2px 9px;border:1px solid #30363d;border-radius:12px;cursor:pointer;transition:border-color .15s;white-space:nowrap}
.badge:hover{border-color:#58a6ff;color:#e6edf3}
.badge span{color:#58a6ff;font-weight:600}
.avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;border:2px solid #0d1117;margin-left:-6px}

.cfg-drawer{background:#161b22;border-bottom:1px solid #30363d;padding:14px 18px;flex-shrink:0;display:none;gap:16px;align-items:flex-start;flex-wrap:wrap}
.cfg-drawer.open{display:flex}
.cfg-label{font-size:10px;font-weight:700;color:#8b949e;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}
.cfg-inp{width:100%;background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:6px 10px;font-size:12px;color:#e6edf3;outline:none;font-family:inherit;transition:border-color .15s}
.cfg-inp:focus{border-color:#1f6feb}
.cfg-ta{width:100%;background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:8px 10px;font-size:11px;color:#e6edf3;font-family:'Consolas',monospace;outline:none;resize:vertical;line-height:1.65;transition:border-color .15s}
.cfg-ta:focus{border-color:#1f6feb}
.cfg-err{font-size:10px;color:#f85149;margin-top:4px;display:none}
.cfg-btns{display:flex;flex-direction:column;gap:6px;padding-top:20px;flex-shrink:0}
.cfg-apply{padding:6px 16px;background:#1f6feb;border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:600;cursor:pointer}
.cfg-cancel{padding:6px 16px;background:none;border:1px solid #30363d;border-radius:6px;color:#8b949e;font-size:12px;cursor:pointer}

/* ── MAIN LAYOUT ── */
.main{display:flex;flex:1;overflow:hidden;min-height:0}
.resize-handle{flex-shrink:0;width:5px;background:transparent;cursor:col-resize;position:relative;z-index:100;transition:background .15s;user-select:none}
.resize-handle:hover,.resize-handle.rh-drag{background:#1f64cb44}
.resize-handle::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:36px;border-radius:1px;background:#30363d;transition:background .15s}
.resize-handle:hover::after,.resize-handle.rh-drag::after{background:#388bfd}

/* ── SIDEBAR ── */
.sidebar{width:224px;min-width:140px;max-width:500px;flex-shrink:0;background:#161b22;display:flex;flex-direction:column;overflow:hidden}
.sidebar-hdr{padding:7px 10px;font-size:10px;font-weight:700;color:#8b949e;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid #21262d;flex-shrink:0;display:flex;align-items:center;justify-content:space-between}
.file-tree{flex:1;overflow-y:auto;padding:4px 0}
.file-tree::-webkit-scrollbar{width:4px}
.file-tree::-webkit-scrollbar-thumb{background:#30363d;border-radius:2px}
.tree-sec{margin-bottom:2px}
.tree-sec-hdr{display:flex;align-items:center;gap:4px;padding:3px 8px;cursor:pointer;font-size:11px;color:#8b949e;user-select:none}
.tree-sec-hdr:hover{color:#e6edf3}
.chev{width:11px;height:11px;transition:transform .15s;flex-shrink:0}
.tree-sec-hdr.open .chev{transform:rotate(90deg)}
.tree-kids{padding-left:14px}
.tree-item{display:flex;align-items:center;gap:5px;padding:3px 8px;cursor:pointer;font-size:11px;color:#8b949e;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tree-item:hover{background:#21262d;color:#e6edf3}
.tree-item.active{background:#1f6feb22;color:#58a6ff}
.sidebar-foot{border-top:1px solid #21262d;padding:8px 10px;flex-shrink:0}
.prog-label{font-size:10px;color:#8b949e;margin-bottom:4px;display:flex;justify-content:space-between}
.prog-bar{height:3px;background:#21262d;border-radius:2px;overflow:hidden;margin-bottom:6px}
.prog-fill{height:100%;background:#1f6feb;border-radius:2px;transition:width .4s}
.status-line{font-size:10px;color:#484f58;display:flex;align-items:center;gap:5px}
.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}

/* ── CANVAS ── */
.canvas-wrap{flex:1;position:relative;overflow:hidden;background:#0d1117;cursor:grab}
.canvas-wrap.panning{cursor:grabbing}
#canvas{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}
.arrows-svg{position:absolute;top:0;left:0;width:4000px;height:3000px;pointer-events:none;overflow:visible}

/* ── NODES ── */
.node{position:absolute;width:230px;background:#161b22;border:1px solid #30363d;border-radius:10px;overflow:hidden;user-select:none;transition:border-color .15s,box-shadow .15s}
.node:hover{border-color:#58a6ff;box-shadow:0 0 0 3px rgba(88,166,255,.1)}
.node.selected{border-color:#58a6ff;box-shadow:0 0 0 4px rgba(88,166,255,.18)}
.node.node-dragging{border-color:#58a6ff !important;box-shadow:0 0 0 6px rgba(88,166,255,.22) !important;transition:none !important;z-index:99}
.node.dimmed{opacity:.2}
.node.highlighted{border-color:#f0c040 !important;box-shadow:0 0 0 4px rgba(240,192,64,.2) !important;opacity:1 !important}
.node.has-changes{border-color:#f85149 !important}
.node.multi-selected{border-color:#8957e5 !important;box-shadow:0 0 0 4px rgba(137,87,229,.22) !important}
.node-ss{width:100%;height:114px;background:#0d1117;border-bottom:1px solid #21262d;overflow:hidden;position:relative}
.node-ss canvas{display:block;width:100%;height:100%;image-rendering:pixelated}
.node-ss-badges{position:absolute;top:6px;right:6px;display:flex;gap:3px;flex-wrap:wrap;max-width:140px;justify-content:flex-end}
.node-ss-badge{font-size:9px;padding:1px 5px;border-radius:4px;font-weight:700;backdrop-filter:blur(4px)}
.node-jira-badges{position:absolute;top:6px;left:6px;display:flex;gap:3px;flex-direction:column}
.node-jira-badge{font-size:8px;padding:1px 5px;border-radius:4px;font-weight:700;background:#1c2a3a;color:#58a6ff;border:1px solid #2d4a6b;cursor:pointer;backdrop-filter:blur(4px)}
.node-jira-badge:hover{background:#2d4a6b}
.node-handle{display:flex;align-items:center;gap:6px;padding:7px 10px 6px;border-bottom:1px solid #21262d;cursor:grab}
.node-handle:active{cursor:grabbing}
.node-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.node-title{font-size:11px;font-weight:700;color:#e6edf3;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.node-status{font-size:9px;padding:1px 6px;border-radius:10px;font-weight:600;flex-shrink:0}
.grip{color:#484f58;flex-shrink:0}
.node-body{padding:7px 10px;cursor:pointer}
.node-url{font-size:9px;color:#484f58;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.node-chips{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:5px}
.chip{font-size:9px;padding:1px 6px;border-radius:4px;border:1px solid}
.chip.input{background:#1c2a3a;border-color:#2d4a6b;color:#79c0ff}
.chip.button{background:#1a2e1a;border-color:#2d5a2d;color:#56d364}
.chip.link{background:#2d2200;border-color:#5a4200;color:#e3b341}
.node-foot{font-size:9px;color:#484f58;padding-top:5px;border-top:1px solid #21262d;display:flex;align-items:center;justify-content:space-between}
.node-avatars{display:flex;margin-left:4px}
.qs-bar{height:3px;border-radius:2px;margin-top:4px}
/* node multi-select checkbox */
.node-check{position:absolute;top:6px;left:6px;width:16px;height:16px;border-radius:4px;background:#0d1117;border:1.5px solid #30363d;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:border-color .12s,background .12s;display:none}
.node-check.visible{display:flex}
.node-check.checked{background:#8957e5;border-color:#8957e5}
.node-check svg{display:none}
.node-check.checked svg{display:block}

/* EDGE HIGHLIGHT */
.edge-hi{stroke-opacity:1 !important;stroke-width:2.5px !important}
.edge-dim{stroke-opacity:.06 !important}

/* ── RIGHT PANEL ── */
.right-panel{width:310px;min-width:200px;max-width:560px;flex-shrink:0;background:#161b22;border-left:none;display:flex;flex-direction:column;overflow:hidden;transition:width .2s}
.right-panel.closed{width:0 !important;min-width:0;overflow:hidden}
.panel-hdr{padding:10px 12px 8px;border-bottom:1px solid #21262d;display:flex;align-items:flex-start;justify-content:space-between;flex-shrink:0}
.panel-title{font-size:13px;font-weight:700;color:#e6edf3}
.panel-url{font-size:10px;color:#58a6ff;margin-top:2px}
.panel-hdr button{background:none;border:none;color:#8b949e;cursor:pointer;font-size:16px;padding:0}
.panel-hdr button:hover{color:#e6edf3}
.panel-body{flex:1;overflow-y:auto}
.panel-body::-webkit-scrollbar{width:4px}
.panel-body::-webkit-scrollbar-thumb{background:#30363d;border-radius:2px}

/* ── PANEL TABS (Fixed styling) ── */
.panel-tabs {
  display: flex;
  border-bottom: 1px solid #21262d;
  flex-shrink: 0;
  gap: 0;
  overflow-x: auto;
  background: #0d1117;
}

.ptab {
  padding: 10px 14px;
  font-size: 12px;
  color: #8b949e;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  font-family: inherit;
  background: none;
  border: none;
  transition: color .15s, border-color .15s;
  font-weight: 600;
}

.ptab:hover {
  color: #e6edf3;
}

.ptab.active {
  color: #58a6ff;
  border-bottom-color: #58a6ff;
}

.panel-tab-content {
  display: none;
  flex: 1;
  overflow-y: auto;
  padding: 0;
}

.panel-tab-content.active {
  display: block;
}

/* ── PANEL SECTION (Better spacing) ── */
.psec {
  padding: 14px;
  border-bottom: 1px solid #21262d;
  background: #0d1117;
}

.psec:last-child {
  border-bottom: none;
}

.psec-label {
  font-size: 12px;
  font-weight: 700;
  color: #e6edf3;
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* ── NETWORK REQUEST ITEMS ── */
.req-item {
  background: #161b22;
  border: 1px solid #30363d;
  border-radius: 6px;
  padding: 10px;
  font-size: 12px;
  font-family: monospace;
  line-height: 1.8;
  margin-bottom: 8px;
}

.req-type {
  font-weight: 700;
  color: #e6edf3;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.req-status {
  font-weight: 700;
  font-size: 11px;
}

.req-url {
  color: #79c0ff;
  word-break: break-all;
  margin-top: 4px;
  font-size: 11px;
}

.req-meta {
  color: #8b949e;
  margin-top: 4px;
  font-size: 10px;
  display: flex;
  gap: 12px;
}

.req-method {
  color: #56d364;
}

.req-time {
  color: #d2a8ff;
}

.req-size {
  color: #e3b341;
}

/* ── APPLICATION DATA ── */
.app-section {
  margin-bottom: 16px;
}

.app-section-title {
  font-size: 13px;
  font-weight: 700;
  color: #58a6ff;
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.app-badge-count {
  font-size: 10px;
  color: #484f58;
  font-weight: 400;
  background: #21262d;
  padding: 2px 6px;
  border-radius: 3px;
}

.app-items {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.app-item {
  background: #161b22;
  border: 1px solid #30363d;
  border-radius: 6px;
  padding: 10px;
  font-size: 11px;
  font-family: monospace;
}

.app-item-key {
  color: #79c0ff;
  font-weight: 700;
  word-break: break-all;
  font-size: 11px;
}

.app-item-val {
  color: #8b949e;
  word-break: break-all;
  margin-top: 6px;
  font-size: 10px;
  font-family: monospace;
}

.app-badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.app-badge {
  font-size: 9px;
  padding: 3px 6px;
  border-radius: 3px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.app-badge.httponly {
  background: #2d1f5e;
  color: #d2a8ff;
  border: 1px solid #4c3899;
}

.app-badge.secure {
  background: #1a2e1a;
  color: #56d364;
  border: 1px solid #2d5a2d;
}

.app-badge.samesite {
  background: #1c2a3a;
  color: #79c0ff;
  border: 1px solid #2d4a6b;
}

.app-empty {
  color: #484f58;
  font-size: 12px;
  padding: 8px;
  text-align: center;
}

/* ── SECURITY LINKS IN PANEL ── */
.sec-link-item {
  background: #161b22;
  border: 1px solid #30363d;
  border-radius: 6px;
  padding: 10px;
  font-size: 11px;
  cursor: pointer;
  transition: all .12s;
  margin-bottom: 8px;
}

.sec-link-item:hover {
  border-color: #58a6ff;
  background: #1c2a3a;
  box-shadow: 0 0 8px rgba(88, 166, 255, .1);
}

.sec-link-status {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
  font-weight: 700;
  font-size: 10px;
}

.sec-link-status-icon {
  font-size: 12px;
}

.sec-link-status-label {
  text-transform: uppercase;
  letter-spacing: .03em;
}

.sec-link-status-pass {
  color: #56d364;
}

.sec-link-status-fail {
  color: #f85149;
}

.sec-link-status-pending {
  color: #e3b341;
}

.sec-link-text {
  color: #e6edf3;
  line-height: 1.5;
  margin-bottom: 6px;
  font-size: 11px;
}

.sec-link-meta {
  color: #484f58;
  font-size: 9px;
  display: flex;
  gap: 8px;
  align-items: center;
}

.sec-link-meta-tests {
  background: #21262d;
  padding: 2px 6px;
  border-radius: 3px;
}

/* ── PAGE OBJECTS ── */
.po-row {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
  padding: 10px;
  background: #161b22;
  border-radius: 6px;
  border: 1px solid #30363d;
  font-size: 11px;
  align-items: flex-start;
}

.po-num {
  font-weight: 700;
  color: #58a6ff;
  min-width: 20px;
  text-align: center;
  background: #0d1117;
  padding: 4px 6px;
  border-radius: 4px;
  font-size: 10px;
}

.po-badge {
  font-size: 9px;
  font-weight: 700;
  padding: 3px 6px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: .03em;
  min-width: 45px;
  text-align: center;
  min-height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.po-badge.input {
  background: #1c2a3a;
  color: #79c0ff;
  border: 1px solid #2d4a6b;
}

.po-badge.button {
  background: #1a2e1a;
  color: #56d364;
  border: 1px solid #2d5a2d;
}

.po-badge.link {
  background: #2d1f5e;
  color: #d2a8ff;
  border: 1px solid #4c3899;
}

.po-name {
  color: #e6edf3;
  font-weight: 600;
}

.po-sel {
  color: #79c0ff;
  font-family: monospace;
  font-size: 10px;
  margin-top: 4px;
  padding: 4px 6px;
  background: #0d1117;
  border-radius: 4px;
  cursor: pointer;
  border: 1px solid #30363d;
  transition: all .12s;
}

.po-sel:hover {
  border-color: #58a6ff;
  color: #79c0ff;
}

.po-value {
  color: #56d364;
  font-size: 10px;
  margin-top: 4px;
  font-family: monospace;
}

.po-action {
  color: #8b949e;
  font-size: 10px;
  margin-top: 4px;
  font-style: italic;
}

/* ── NAVIGATION CHIPS ── */
.nav-chip {
  display: inline-block;
  padding: 6px 12px;
  background: #21262d;
  border: 1px solid #30363d;
  border-radius: 5px;
  color: #79c0ff;
  font-size: 10px;
  cursor: pointer;
  margin-right: 6px;
  margin-bottom: 6px;
  transition: all .12s;
  font-weight: 600;
}

.nav-chip:hover {
  border-color: #58a6ff;
  background: #1c2a3a;
  color: #58a6ff;
}

/* ── GENERATE BUTTONS ── */
.gen-btn {
  width: 100%;
  padding: 10px;
  margin-bottom: 6px;
  border: 1px solid #30363d;
  border-radius: 6px;
  background: #161b22;
  color: #e6edf3;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: all .12s;
}

.gen-btn:hover {
  border-color: #1f6feb;
  background: #1c2a3a;
  color: #58a6ff;
}

.gen-btn.pw {
  border-color: #1f6feb;
}

.gen-btn.cy {
  border-color: #2d5a2d;
}

.gen-btn.se {
  border-color: #4c3899;
}

.gen-btn.manual {
  border-color: #e3b341;
}

.gen-btn.jira {
  border-color: #4c3899;
}

.gen-btn.nl {
  border-color: #d2a8ff;
}

.file-tabs{display:flex;border-bottom:1px solid #21262d;flex-shrink:0;overflow-x:auto}
.ftab{padding:6px 12px;font-size:11px;color:#8b949e;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}
.ftab.active{color:#e6edf3;border-bottom-color:#1f6feb}
.ftab:hover{color:#e6edf3}
.file-code{padding:10px 12px;font-family:'Consolas',monospace;font-size:11px;line-height:1.7;color:#e6edf3;white-space:pre;overflow-x:auto;background:#0d1117}
.kw{color:#ff7b72}.fn{color:#d2a8ff}.str{color:#a5d6ff}.cm{color:#8b949e}

/* ── TC TABLE ── */
.tc-table{width:100%;border-collapse:collapse;font-size:10px}
.tc-table th{padding:5px 8px;background:#21262d;color:#8b949e;font-weight:600;text-align:left;font-size:9px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #30363d}
.tc-table td{padding:5px 8px;border-bottom:1px solid #21262d;color:#e6edf3;vertical-align:top}
.tc-table tr:hover td{background:#1c2a3a11}
.tc-pass{color:#56d364;font-weight:600;font-size:10px}
.tc-fail{color:#f85149;font-weight:600;font-size:10px}
.tc-pend{color:#e3b341;font-weight:600;font-size:10px}
.tc-type{font-size:9px;padding:1px 5px;border-radius:3px;font-weight:600}
.tc-type.pos{background:#1a2e1a;color:#56d364}
.tc-type.neg{background:#3d1a1a;color:#f85149}
.tc-type.edge{background:#2d2200;color:#e3b341}
.tc-type.sec{background:#2d1f5e;color:#d2a8ff}
.tc-type.perf{background:#1c2a3a;color:#79c0ff}
.tc-type.manual{background:#21262d;color:#e6edf3}
.tc-by{font-size:9px;padding:1px 5px;border-radius:3px}
.tc-by.ai{background:#1c2a3a;color:#58a6ff}
.tc-by.human{background:#1a2e1a;color:#56d364}

/* ── DIFF VIEW ── */
.diff-row{display:flex;gap:8px;margin-bottom:4px;font-size:10px;padding:4px 8px;border-radius:4px}
.diff-row.add{background:#1a2e1a;color:#56d364}
.diff-row.rem{background:#3d1a1a;color:#f85149}
.diff-row.mod{background:#2d2200;color:#e3b341}
.diff-icon{flex-shrink:0;font-weight:700;width:14px}
.diff-sel{font-family:'Consolas',monospace;font-size:9px;color:#484f58;margin-top:1px}

/* ── DEVICE GRID ── */
.device-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px}
.dev-card{background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:8px;cursor:pointer;transition:border-color .12s;text-align:center}
.dev-card:hover{border-color:#58a6ff}
.dev-card.active{border-color:#1f6feb;background:#1c2a3a}
.dev-name{font-size:10px;color:#e6edf3;font-weight:600;margin-top:4px}
.dev-res{font-size:9px;color:#484f58}
.dev-icon{font-size:22px;margin-bottom:2px}

/* ── NL INPUT ── */
.nl-bar{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid #21262d}
.nl-input{flex:1;background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:6px 10px;font-size:11px;color:#e6edf3;outline:none;font-family:inherit}
.nl-input:focus{border-color:#8957e5}
.nl-btn{padding:6px 12px;background:#2d1f5e;border:1px solid #4c3899;border-radius:6px;color:#d2a8ff;font-size:11px;cursor:pointer;font-weight:600;white-space:nowrap;font-family:inherit}
.nl-btn:hover{background:#4c3899}

/* ── ZOOM ── */
.z-btn{width:36px;height:28px;background:#161b22;border:1px solid #30363d;border-radius:5px;color:#8b949e;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;font-family:inherit;flex-shrink:0}
.z-btn:hover{border-color:#58a6ff;color:#e6edf3}

/* ── LEGEND ── */
.legend{position:absolute;bottom:48px;right:16px;background:#161b22;border:1px solid #30363d;border-radius:8px;padding:10px 12px;z-index:50;min-width:170px;display:none}
.leg-title{font-size:9px;font-weight:700;color:#484f58;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
.leg-row{display:flex;align-items:center;gap:8px;margin-bottom:5px;cursor:pointer;padding:3px 5px;border-radius:4px;border:1px solid transparent;transition:background .12s}
.leg-row:last-child{margin-bottom:0}
.leg-row:hover{background:#21262d}
.leg-row.active{background:#1f6feb18;border-color:#1f6feb44}
.leg-line{width:28px;height:2px;flex-shrink:0;border-radius:1px}
.leg-dash{width:28px;height:2px;flex-shrink:0;background:repeating-linear-gradient(90deg,#e3b341 0,#e3b341 4px,transparent 4px,transparent 8px)}
.leg-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.leg-label{font-size:10px;color:#8b949e}
.leg-row:hover .leg-label,.leg-row.active .leg-label{color:#e6edf3}
.leg-hint{margin-top:6px;padding-top:6px;border-top:1px solid #21262d;font-size:9px;color:#484f58;text-align:center}

/* ── STAT OVERLAY ── */
.stat-ov{position:absolute;inset:0;background:rgba(13,17,23,.96);z-index:80;display:none;flex-direction:column}
.stat-ov.open{display:flex}
.stat-ov-hdr{padding:12px 16px;border-bottom:1px solid #21262d;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.stat-ov-hdr h2{font-size:14px;font-weight:700;color:#e6edf3}
.stat-ov-hdr button{background:none;border:none;color:#8b949e;cursor:pointer;font-size:18px;font-family:inherit}
.stat-ov-body{flex:1;overflow-y:auto;padding:12px 16px;display:grid;gap:10px}
.stat-ov-body.g2{grid-template-columns:1fr 1fr}
.stat-ov-body.g1{grid-template-columns:1fr}
.sc{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:12px;cursor:pointer;transition:border-color .12s}
.sc:hover{border-color:#58a6ff}
.fc{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:10px 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fc-via{font-size:9px;padding:1px 6px;border-radius:4px;margin-left:auto}
.fc-via.button{background:#1a2e1a;color:#56d364}
.fc-via.link{background:#2d2200;color:#e3b341}

/* ── BOTTOM STATUS BAR ── */
.statusbar{height:24px;background:#161b22;border-top:1px solid #21262d;display:flex;align-items:center;padding:0 14px;gap:16px;font-size:10px;color:#484f58;flex-shrink:0;z-index:200}
.sb-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.sb-int{display:flex;align-items:center;gap:5px}
.sb-int-dot{width:6px;height:6px;border-radius:50%}

/* ── EMPTY ── */
.empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;pointer-events:none}
.empty h2{font-size:16px;color:#484f58;font-weight:500}
.empty p{font-size:13px;color:#30363d;text-align:center;max-width:300px;line-height:1.6}

/* ── CRAWL OVERLAY ── */
.crawl-ov{position:absolute;inset:0;background:rgba(13,17,23,.92);z-index:100;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.crawl-ov h3{font-size:16px;color:#e6edf3}
.crawl-step-txt{font-size:13px;color:#58a6ff}
.crawl-bar-wrap{width:280px;height:3px;background:#21262d;border-radius:2px;overflow:hidden}
.crawl-fill{height:100%;background:#1f6feb;border-radius:2px;transition:width .5s}
.crawl-pct-txt{font-size:11px;color:#484f58}

/* ── MODAL ── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:500;display:none;align-items:center;justify-content:center}
.modal-bg.open{display:flex}
.modal{background:#161b22;border:1px solid #30363d;border-radius:10px;width:720px;max-width:96vw;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.modal-hdr{padding:12px 16px;border-bottom:1px solid #21262d;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.modal-hdr span{font-size:13px;font-weight:700;color:#e6edf3}
.modal-hdr button{background:none;border:none;color:#8b949e;cursor:pointer;font-size:18px;font-family:inherit}
.modal-code{flex:1;overflow-y:auto;padding:16px;font-family:'Consolas',monospace;font-size:12px;line-height:1.6;color:#e6edf3;background:#0d1117;white-space:pre}
.modal-foot{padding:10px 16px;border-top:1px solid #21262d;display:flex;justify-content:flex-end;gap:8px}
.modal-foot button{padding:6px 14px;border-radius:6px;font-size:12px;cursor:pointer;font-family:inherit}
.btn-copy{background:#1f6feb;border:none;color:#fff;font-weight:600}.btn-copy:hover{background:#388bfd}
.btn-close{background:none;border:1px solid #30363d;color:#8b949e}.btn-close:hover{color:#e6edf3}

/* ── TOAST ── */
.toast{position:fixed;bottom:32px;right:20px;background:#161b22;border:1px solid #30363d;border-radius:8px;padding:8px 14px;font-size:12px;color:#e6edf3;z-index:999;display:none;align-items:center;gap:8px}
.toast.show{display:flex}

/* ── VIEW PANELS ── */
.view-panel{display:none;flex:1;overflow:hidden;flex-direction:column}
.view-panel.active{display:flex}

/* ── COVERAGE VIEW ── */
.cov-legend{display:flex;gap:12px;padding:10px 14px;border-bottom:1px solid #21262d;font-size:10px;color:#8b949e;flex-shrink:0}
.cov-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:4px;vertical-align:middle}
.cov-table-wrap{flex:1;overflow-y:auto;padding:12px}
.cov-table{width:100%;border-collapse:collapse;font-size:11px}
.cov-table th{padding:6px 10px;background:#161b22;color:#8b949e;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #21262d;text-align:left;position:sticky;top:0}
.cov-table td{padding:7px 10px;border-bottom:1px solid #21262d;color:#e6edf3;vertical-align:middle}
.cov-bar-cell{width:120px}
.cov-mini{height:6px;border-radius:3px;background:#21262d;overflow:hidden}
.cov-mini-fill{height:100%;border-radius:3px}

/* ── HISTORY VIEW ── */
.hist-item{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid #21262d;align-items:flex-start}
.hist-item:hover{background:#161b22}
.hist-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:4px}
.hist-line{flex:1}
.hist-title{font-size:11px;color:#e6edf3;font-weight:600}
.hist-sub{font-size:10px;color:#484f58;margin-top:2px}
.hist-time{font-size:9px;color:#484f58;flex-shrink:0;padding-top:3px}

/* ── INTEGRATIONS ── */
.int-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px}
.int-card{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:12px}
.int-card-hdr{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.int-card-name{font-size:12px;font-weight:700;color:#e6edf3}
.int-card-status{font-size:9px;padding:1px 6px;border-radius:4px;font-weight:600}
.int-card-status.connected{background:#1a2e1a;color:#56d364}
.int-card-status.disconnected{background:#2d2200;color:#e3b341}
.int-action{width:100%;padding:6px;background:#0d1117;border:1px solid #30363d;border-radius:5px;color:#8b949e;font-size:10px;cursor:pointer;font-family:inherit;margin-top:4px}
.int-action:hover{border-color:#58a6ff;color:#e6edf3}

/* ── MANUAL TC MODAL ── */
.mtc-modal{background:#161b22;border:1px solid #30363d;border-radius:10px;width:860px;max-width:96vw;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.mtc-body{display:flex;flex:1;overflow:hidden;min-height:0}
.mtc-left{width:260px;flex-shrink:0;border-right:1px solid #21262d;display:flex;flex-direction:column;overflow:hidden}
.mtc-right{flex:1;display:flex;flex-direction:column;overflow:hidden}
.mtc-sec-hdr{padding:8px 12px;font-size:9px;font-weight:700;color:#8b949e;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid #21262d;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.mtc-screen-list{flex:1;overflow-y:auto;padding:6px}
.mtc-screen-list::-webkit-scrollbar{width:4px}
.mtc-screen-list::-webkit-scrollbar-thumb{background:#30363d;border-radius:2px}
.mtc-screen-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;cursor:pointer;border:1px solid transparent;transition:background .12s,border-color .12s;margin-bottom:3px}
.mtc-screen-item:hover{background:#21262d}
.mtc-screen-item.selected{background:#2d1f5e22;border-color:#8957e5}
.mtc-screen-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.mtc-screen-name{font-size:11px;color:#e6edf3;font-weight:600;flex:1}
.mtc-screen-url{font-size:9px;color:#484f58}
.mtc-check{width:14px;height:14px;border-radius:3px;border:1.5px solid #30363d;background:#0d1117;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}
.mtc-screen-item.selected .mtc-check{background:#8957e5;border-color:#8957e5}
.mtc-jira-list{padding:6px}
.mtc-jira-item{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:6px;cursor:pointer;border:1px solid #30363d;transition:background .12s,border-color .12s;margin-bottom:5px;background:#0d1117}
.mtc-jira-item:hover{background:#1c2a3a22;border-color:#2d4a6b}
.mtc-jira-item.selected{background:#1c2a3a;border-color:#58a6ff}
.mtc-jira-key{font-size:10px;font-weight:700;color:#58a6ff;font-family:monospace;flex-shrink:0}
.mtc-jira-title{font-size:11px;color:#e6edf3;font-weight:600;margin-bottom:2px}
.mtc-jira-meta{font-size:9px;color:#484f58}
.mtc-jira-type{font-size:9px;padding:1px 5px;border-radius:3px;font-weight:600;flex-shrink:0}
.mtc-jira-type.story{background:#1c2a3a;color:#58a6ff}
.mtc-jira-type.bug{background:#3d1a1a;color:#f85149}
.mtc-jira-type.task{background:#1a2e1a;color:#56d364}
.mtc-source-tabs{display:flex;border-bottom:1px solid #21262d;flex-shrink:0}
.mtc-stab{padding:8px 14px;font-size:11px;color:#8b949e;cursor:pointer;border-bottom:2px solid transparent;font-weight:500}
.mtc-stab.active{color:#e6edf3;border-bottom-color:#8957e5}
.mtc-stab:hover{color:#e6edf3}
.mtc-config-area{padding:12px;border-bottom:1px solid #21262d;flex-shrink:0}
.mtc-cfg-row{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.mtc-cfg-chip{font-size:10px;padding:4px 10px;border-radius:5px;border:1px solid #30363d;color:#8b949e;cursor:pointer;background:#0d1117;transition:background .12s,border-color .12s,color .12s}
.mtc-cfg-chip:hover{border-color:#8957e5;color:#d2a8ff}
.mtc-cfg-chip.active{background:#2d1f5e;border-color:#8957e5;color:#d2a8ff}
.mtc-preview{flex:1;overflow-y:auto;padding:12px}
.mtc-preview::-webkit-scrollbar{width:4px}
.mtc-preview::-webkit-scrollbar-thumb{background:#30363d;border-radius:2px}
.mtc-tc-row{background:#0d1117;border:1px solid #21262d;border-radius:6px;padding:10px 12px;margin-bottom:6px}
.mtc-tc-row:hover{border-color:#30363d}
.mtc-tc-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.mtc-tc-title{font-size:11px;color:#e6edf3;font-weight:600;flex:1}
.mtc-tc-steps{font-size:10px;color:#8b949e;line-height:1.6;margin-top:6px}
.mtc-tc-step{display:flex;gap:6px;margin-bottom:3px}
.mtc-tc-step-num{color:#484f58;flex-shrink:0;font-size:9px;margin-top:1px}
.mtc-tc-exp{margin-top:6px;font-size:10px;color:#56d364;padding:4px 8px;background:#1a2e1a;border-radius:4px}
.mtc-empty{text-align:center;padding:40px 20px;color:#484f58;font-size:12px}
.mtc-sel-count{font-size:9px;padding:2px 7px;border-radius:10px;background:#2d1f5e;color:#d2a8ff;font-weight:600}
.mtc-gen-bar{padding:10px 12px;border-top:1px solid #21262d;display:flex;gap:8px;align-items:center;flex-shrink:0}
.mtc-gen-btn{padding:7px 16px;background:#8957e5;border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.mtc-gen-btn:hover{background:#a371f7}
.mtc-gen-btn:disabled{background:#30363d;color:#484f58;cursor:not-allowed}
.mtc-export-btn{padding:7px 14px;background:#238636;border:none;border-radius:6px;color:#fff;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit}
.mtc-export-btn:hover{background:#2ea043}
.mtc-jira-push{padding:7px 14px;background:#1c2a3a;border:1px solid #2d4a6b;border-radius:6px;color:#79c0ff;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit}
.mtc-jira-push:hover{background:#2d4a6b}
.mtc-count-badge{font-size:10px;color:#484f58;margin-left:auto}

/* ── JIRA PANEL ── */
.jira-panel{position:absolute;z-index:60;background:#161b22;border:1px solid #30363d;border-radius:10px;width:320px;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.jira-panel-hdr{padding:10px 12px;border-bottom:1px solid #21262d;display:flex;align-items:center;justify-content:space-between}
.jira-panel-hdr span{font-size:12px;font-weight:700;color:#e6edf3}
.jira-panel-hdr button{background:none;border:none;color:#8b949e;cursor:pointer;font-size:16px}
.jira-panel-body{padding:12px;max-height:400px;overflow-y:auto}
.jira-ticket{background:#0d1117;border:1px solid #21262d;border-radius:6px;padding:10px;margin-bottom:8px}
.jira-ticket-top{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.jira-ticket-key{font-size:10px;font-weight:700;color:#58a6ff;font-family:monospace}
.jira-ticket-title{font-size:11px;color:#e6edf3;font-weight:600;flex:1}
.jira-ticket-status{font-size:9px;padding:1px 6px;border-radius:4px;font-weight:600}
.jira-ticket-status.todo{background:#21262d;color:#8b949e}
.jira-ticket-status.inprogress{background:#1c2a3a;color:#58a6ff}
.jira-ticket-status.done{background:#1a2e1a;color:#56d364}
.jira-ticket-status.bug{background:#3d1a1a;color:#f85149}
.jira-ticket-desc{font-size:10px;color:#8b949e;line-height:1.5;margin-bottom:6px}
.jira-ticket-meta{display:flex;gap:8px;font-size:9px;color:#484f58}
.jira-ticket-acc{margin-top:8px;border-top:1px solid #21262d;padding-top:8px}
.jira-ticket-acc-hdr{font-size:9px;font-weight:700;color:#484f58;margin-bottom:5px;text-transform:uppercase;letter-spacing:.06em}
.jira-ac-item{display:flex;align-items:center;gap:6px;font-size:10px;color:#8b949e;margin-bottom:3px}
.jira-ac-check{width:12px;height:12px;border-radius:2px;flex-shrink:0}
.jira-ac-check.done{background:#238636}
.jira-ac-check.todo{background:#21262d;border:1px solid #30363d}
.jira-gen-btn{width:100%;margin-top:8px;padding:6px;background:#1f6feb;border:none;border-radius:5px;color:#fff;font-size:10px;font-weight:600;cursor:pointer;font-family:inherit}
.jira-gen-btn:hover{background:#388bfd}

/* ── SECURITY CHECKLIST VIEW ── */
.sec-view-wrap{flex:1;display:flex;overflow:hidden}
.sec-sidebar{width:220px;flex-shrink:0;border-right:1px solid #21262d;overflow-y:auto;padding:8px 0}
.sec-sidebar::-webkit-scrollbar{width:4px}
.sec-sidebar::-webkit-scrollbar-thumb{background:#30363d;border-radius:2px}
.sec-cat-item{display:flex;align-items:center;gap:7px;padding:6px 12px;cursor:pointer;font-size:11px;color:#8b949e;border-left:2px solid transparent;transition:background .12s,color .12s,border-color .12s}
.sec-cat-item:hover{background:#21262d;color:#e6edf3}
.sec-cat-item.active{background:#1c2a3a22;color:#58a6ff;border-left-color:#1f6feb}
.sec-cat-num{font-size:9px;padding:1px 5px;border-radius:10px;background:#21262d;color:#484f58;font-weight:700;margin-left:auto;flex-shrink:0}
.sec-cat-num.has-fail{background:#3d1a1a;color:#f85149}
.sec-cat-num.all-pass{background:#1a2e1a;color:#56d364}
.sec-main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.sec-hdr{padding:10px 16px;border-bottom:1px solid #21262d;display:flex;align-items:center;gap:10px;flex-shrink:0;flex-wrap:wrap}
.sec-hdr-title{font-size:13px;font-weight:700;color:#e6edf3;flex:1}
.sec-progress{display:flex;align-items:center;gap:8px;font-size:11px;color:#8b949e}
.sec-prog-bar{width:120px;height:6px;background:#21262d;border-radius:3px;overflow:hidden}
.sec-prog-fill{height:100%;border-radius:3px;background:#1f6feb;transition:width .4s}
.sec-checklist{flex:1;overflow-y:auto;padding:12px 16px}
.sec-checklist::-webkit-scrollbar{width:4px}
.sec-checklist::-webkit-scrollbar-thumb{background:#30363d;border-radius:2px}
.sec-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:6px;margin-bottom:4px;cursor:pointer;border:1px solid transparent;transition:background .12s,border-color .12s}
.sec-item:hover{background:#161b22;border-color:#21262d}
.sec-item.checked{background:#1a2e1a22}
.sec-item.failed{background:#3d1a1a11}
.sec-cb{width:16px;height:16px;border-radius:4px;border:1.5px solid #30363d;background:#0d1117;flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-top:1px;transition:background .12s,border-color .12s;cursor:pointer}
.sec-cb.pass{background:#238636;border-color:#238636}
.sec-cb.fail{background:#da3633;border-color:#da3633}
.sec-cb.na{background:#484f58;border-color:#484f58}
.sec-item-text{font-size:11px;color:#e6edf3;flex:1;line-height:1.5}
.sec-item.checked .sec-item-text{color:#8b949e;text-decoration:line-through}
.sec-item-actions{display:flex;gap:4px;opacity:0;transition:opacity .12s}
.sec-item:hover .sec-item-actions{opacity:1}
.sec-action-btn{font-size:9px;padding:2px 6px;border-radius:3px;cursor:pointer;border:1px solid #30363d;background:#0d1117;color:#8b949e;font-family:inherit}
.sec-action-btn:hover{color:#e6edf3;border-color:#58a6ff}
.sec-action-btn.fail-btn:hover{border-color:#f85149;color:#f85149}
.sec-action-btn.na-btn:hover{border-color:#484f58;color:#484f58}
.sec-stats-bar{padding:8px 16px;border-top:1px solid #21262d;display:flex;gap:16px;font-size:10px;color:#8b949e;flex-shrink:0;background:#161b22;flex-wrap:wrap;align-items:center}
.sec-stat{display:flex;align-items:center;gap:5px}
.sec-stat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.sec-export-btn{margin-left:auto;padding:4px 12px;background:#21262d;border:1px solid #30363d;border-radius:5px;color:#8b949e;font-size:10px;cursor:pointer;font-family:inherit}
.sec-export-btn:hover{border-color:#58a6ff;color:#e6edf3}
.sec-filter-bar{padding:6px 16px;border-bottom:1px solid #21262d;display:flex;gap:6px;flex-shrink:0}
.sec-filter-chip{font-size:10px;padding:3px 9px;border-radius:5px;border:1px solid #30363d;color:#8b949e;cursor:pointer;background:#0d1117}
.sec-filter-chip:hover{border-color:#58a6ff;color:#e6edf3}
.sec-filter-chip.active{background:#1c2a3a;border-color:#58a6ff;color:#79c0ff}
.sec-reset-btn{padding:4px 10px;background:none;border:1px solid #30363d;border-radius:5px;color:#8b949e;font-size:10px;cursor:pointer;font-family:inherit;margin-left:auto}
.sec-reset-btn:hover{border-color:#f85149;color:#f85149}

/* ── LOAD TEST MODAL STYLING ── */
#ltModalBg.modal-bg.open{display:flex}
#ltModalBg .modal{width:900px;max-width:96vw}

.lt-config-section{margin-bottom:12px}
.lt-config-label{font-size:10px;font-weight:700;color:#8b949e;letter-spacing:.08em;text-transform:uppercase;display:flex;justify-content:space-between;margin-bottom:6px}
.lt-config-input{width:100%;background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:6px 10px;font-size:11px;color:#e6edf3;font-family:inherit;outline:none}
.lt-config-input:focus{border-color:#1f6feb}
.lt-config-hint{font-size:9px;color:#484f58;margin-top:4px}

.lt-stat-box{background:#1a2e1a;border:1px solid #2d5a2d;border-radius:6px;padding:10px;text-align:center}
.lt-stat-number{font-size:22px;font-weight:800;color:#56d364}
.lt-stat-label{font-size:9px;color:#484f58;margin-top:4px}

.lt-status-bar{width:100%;height:4px;background:#21262d;border-radius:2px;overflow:hidden;margin-bottom:8px}
.lt-status-fill{height:100%;background:#1f6feb;border-radius:2px;transition:width .3s}

.lt-chart-container{background:#0d1117;border:1px solid #21262d;border-radius:6px;padding:10px;margin:8px 0}
.lt-chart-title{font-size:10px;font-weight:700;color:#e6edf3;margin-bottom:6px}
.lt-chart-canvas{width:100%;height:200px;display:block}

.lt-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:9px}
.lt-detail-row{display:flex;justify-content:space-between}
.lt-detail-label{color:#484f58}
.lt-detail-value{color:#e6edf3;font-weight:700}

/* ── LOAD TEST BUTTONS ── */
.lt-start-btn{width:100%;padding:10px;background:#238636;border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}
.lt-start-btn:hover:not(:disabled){background:#2ea043}
.lt-start-btn:disabled{background:#30363d;color:#484f58;cursor:not-allowed}

/* MTC button on canvas */
.mtc-canvas-btn{position:absolute;bottom:88px;left:12px;width:32px;height:auto;padding:6px 5px;background:#161b22;border:1px solid #30363d;border-radius:5px;color:#8b949e;cursor:pointer;font-size:9px;font-weight:600;font-family:inherit;line-height:1.2;text-align:center;z-index:50;transition:all .15s}
.mtc-canvas-btn:hover{border-color:#e3b341;color:#e3b341;background:#1c2a3a}
/* ── REPORTING ── */
.rp-tab{padding:5px 14px;background:#21262d;border:1px solid #30363d;border-radius:6px;color:#8b949e;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
.rp-tab:hover{border-color:#58a6ff;color:#e6edf3}
.rp-tab.active{background:#1c2a3a;border-color:#58a6ff;color:#58a6ff}
.rp-panel{display:none;flex:1;overflow-y:auto}
.rp-panel.active{display:flex;flex-direction:column}

/* Sprint Readiness */
.sr-hero{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px;background:#0d1117;border-bottom:1px solid #21262d}
.sr-kpi{background:#161b22;border:1px solid #30363d;border-radius:10px;padding:16px;text-align:center;position:relative;overflow:hidden;transition:border-color .15s}
.sr-kpi:hover{border-color:#58a6ff}
.sr-kpi-glow{position:absolute;top:-20px;left:50%;transform:translateX(-50%);width:80px;height:60px;border-radius:50%;filter:blur(20px);opacity:.3;pointer-events:none}
.sr-kpi-num{font-size:32px;font-weight:900;line-height:1;margin-bottom:4px;letter-spacing:-.02em}
.sr-kpi-label{font-size:10px;color:#484f58;text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.sr-kpi-sub{font-size:9px;margin-top:6px;padding:2px 7px;border-radius:10px;display:inline-block}
.sr-body{display:grid;grid-template-columns:1fr 1fr;gap:0;flex:1;overflow:hidden}
.sr-col{border-right:1px solid #21262d;overflow-y:auto;padding:14px}
.sr-col:last-child{border-right:none}
.sr-col-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#8b949e;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.sr-issue-row{background:#0d1117;border:1px solid #21262d;border-radius:7px;padding:10px 12px;margin-bottom:7px;transition:border-color .12s}
.sr-issue-row:hover{border-color:#30363d}
.sr-issue-title{font-size:11px;color:#e6edf3;font-weight:600;margin-bottom:4px}
.sr-issue-meta{font-size:9px;color:#484f58;display:flex;gap:8px;flex-wrap:wrap}
.sr-badge{display:inline-block;font-size:9px;padding:2px 7px;border-radius:10px;font-weight:700}
.sr-severity-critical{background:#3d1a1a;color:#f85149;border:1px solid #5a2020}
.sr-severity-high{background:#2d2200;color:#e3b341;border:1px solid #5a4200}
.sr-severity-low{background:#21262d;color:#8b949e;border:1px solid #30363d}
.sr-export-bar{padding:12px 16px;border-top:1px solid #21262d;background:#161b22;display:flex;align-items:center;gap:10px;flex-shrink:0}
.sr-export-btn{padding:8px 18px;border:none;border-radius:7px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s;display:flex;align-items:center;gap:6px}
.sr-export-btn.pdf{background:linear-gradient(135deg,#f85149,#da3633);color:#fff}
.sr-export-btn.pdf:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(248,81,73,.4)}
.sr-export-btn.md{background:#1c2a3a;border:1px solid #2d4a6b;color:#79c0ff}
.sr-export-btn.md:hover{background:#2d4a6b;transform:translateY(-1px)}
.sr-export-btn.share{background:#1a2e1a;border:1px solid #2d5a2d;color:#56d364}
.sr-export-btn.share:hover{background:#2d5a2d;transform:translateY(-1px)}

/* Trend Charts */
.tr-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px}
.tr-card{background:#161b22;border:1px solid #30363d;border-radius:10px;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.tr-card:hover{border-color:#58a6ff;box-shadow:0 0 0 3px rgba(88,166,255,.08)}
.tr-card-hdr{padding:12px 14px 8px;display:flex;align-items:center;gap:8px}
.tr-card-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.tr-card-title{font-size:12px;font-weight:700;color:#e6edf3;flex:1}
.tr-card-delta{font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px}
.tr-card-delta.up{background:#1a2e1a;color:#56d364}
.tr-card-delta.down{background:#3d1a1a;color:#f85149}
.tr-card-delta.flat{background:#21262d;color:#8b949e}
.tr-sparkline{padding:0 14px 14px}
.tr-chart-wrap {
  position: relative;
  height: 80px;
  width: 100%;
}

.tr-chart-wrap svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.tr-legend{display:flex;gap:12px;margin-top:8px}
.tr-legend-item{display:flex;align-items:center;gap:5px;font-size:9px;color:#484f58}
.tr-legend-line{width:16px;height:2px;border-radius:1px}
.tr-stats-row{display:flex;gap:0;border-top:1px solid #21262d}
.tr-stat{flex:1;padding:8px 10px;text-align:center;border-right:1px solid #21262d}
.tr-stat:last-child{border-right:none}
.tr-stat-num{font-size:16px;font-weight:800}
.tr-stat-lbl{font-size:9px;color:#484f58;margin-top:2px;text-transform:uppercase;letter-spacing:.05em}
.tr-overview{background:#0d1117;border:1px solid #21262d;border-radius:10px;padding:14px}
.tr-overview-title{font-size:11px;font-weight:700;color:#8b949e;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}

/* Stakeholder Dashboard */
.sh-bg{flex:1;background:linear-gradient(135deg,#0d1117 0%,#161b22 50%,#0d1117 100%);overflow-y:auto;padding:24px}
.sh-header{text-align:center;margin-bottom:28px}
.sh-header-eyebrow{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#484f58;margin-bottom:8px}
.sh-header-title{font-size:28px;font-weight:900;background:linear-gradient(135deg,#58a6ff,#a371f7,#56d364);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:6px;letter-spacing:-.03em}
.sh-header-sub{font-size:12px;color:#484f58}
.sh-header-date{font-size:10px;color:#30363d;margin-top:4px}
.sh-score-ring-wrap{display:flex;justify-content:center;margin-bottom:28px}
.sh-score-ring{position:relative;width:160px;height:160px}
.sh-score-ring svg{transform:rotate(-90deg)}
.sh-score-ring-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.sh-score-num{font-size:36px;font-weight:900;letter-spacing:-.03em;line-height:1}
.sh-score-label{font-size:10px;color:#484f58;text-transform:uppercase;letter-spacing:.1em;margin-top:4px}
.sh-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.sh-kpi-card{background:#161b22;border:1px solid #30363d;border-radius:10px;padding:16px;text-align:center;position:relative;overflow:hidden}
.sh-kpi-num{font-size:28px;font-weight:900;line-height:1;margin-bottom:4px;letter-spacing:-.02em}
.sh-kpi-label{font-size:10px;color:#484f58;text-transform:uppercase;letter-spacing:.08em}
.sh-kpi-trend{font-size:9px;margin-top:6px}
.sh-section{margin-bottom:20px}
.sh-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#484f58;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.sh-section-title::after{content:'';flex:1;height:1px;background:#21262d}
.sh-screen-bar{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:12px 14px;margin-bottom:8px;display:flex;align-items:center;gap:12px}
.sh-screen-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.sh-screen-name{font-size:12px;font-weight:600;color:#e6edf3;flex:1}
.sh-screen-pct{font-size:11px;font-weight:700;min-width:40px;text-align:right}
.sh-screen-bar-wrap{width:120px;height:8px;background:#21262d;border-radius:4px;overflow:hidden;flex-shrink:0}
.sh-screen-bar-fill{height:100%;border-radius:4px}
.sh-health-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sh-health-item{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:12px;display:flex;align-items:center;gap:10px}
.sh-health-icon{font-size:18px;flex-shrink:0}
.sh-health-title{font-size:11px;font-weight:600;color:#e6edf3}
.sh-health-val{font-size:10px;color:#8b949e;margin-top:2px}
.sh-health-badge{margin-left:auto;font-size:9px;font-weight:700;padding:3px 8px;border-radius:10px;flex-shrink:0}
.sh-health-badge.green{background:#1a2e1a;color:#56d364;border:1px solid #2d5a2d}
.sh-health-badge.yellow{background:#2d2200;color:#e3b341;border:1px solid #5a4200}
.sh-health-badge.red{background:#3d1a1a;color:#f85149;border:1px solid #5a2020}
.sh-sprint-table{width:100%;border-collapse:collapse;font-size:11px}
.sh-sprint-table th{padding:8px 12px;background:#161b22;color:#484f58;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;text-align:left;border-bottom:1px solid #21262d}
.sh-sprint-table td{padding:10px 12px;border-bottom:1px solid #0d1117;color:#e6edf3;background:#161b22}
.sh-sprint-table tr:hover td{background:#1c2a3a22}
.sh-watermark{text-align:center;margin-top:32px;padding-top:20px;border-top:1px solid #21262d;font-size:10px;color:#30363d}
.sh-share-bar{position:sticky;bottom:0;background:#161b22;border-top:1px solid #21262d;padding:10px 24px;display:flex;align-items:center;gap:10px;flex-shrink:0}
/* ── VISUAL DIFF MODAL ── */
.vd-modal{background:#161b22;border:1px solid #30363d;border-radius:10px;width:960px;max-width:97vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}
.vd-toolbar{padding:10px 14px;border-bottom:1px solid #21262d;display:flex;align-items:center;gap:10px;flex-shrink:0;background:#0d1117;flex-wrap:wrap}
.vd-mode-btn{padding:4px 12px;background:#21262d;border:1px solid #30363d;border-radius:5px;color:#8b949e;font-size:10px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
.vd-mode-btn.active{background:#1f6feb22;border-color:#1f6feb;color:#58a6ff}
.vd-body{display:flex;flex:1;overflow:hidden;min-height:0}
.vd-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid #21262d}
.vd-pane:last-child{border-right:none}
.vd-pane-hdr{padding:7px 12px;background:#0d1117;border-bottom:1px solid #21262d;font-size:10px;font-weight:700;color:#8b949e;text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;display:flex;align-items:center;gap:7px}
.vd-ss-wrap{flex:1;position:relative;overflow:hidden;background:#0a0f14}
.vd-ss-wrap canvas{display:block;width:100%;height:100%;image-rendering:pixelated}
.vd-overlay-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.vd-slider-wrap{position:relative;flex:1;overflow:hidden;background:#0a0f14;cursor:col-resize}
.vd-slider-line{position:absolute;top:0;bottom:0;width:2px;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.6);z-index:10;pointer-events:none}
.vd-slider-handle{position:absolute;top:50%;transform:translate(-50%,-50%);width:28px;height:28px;background:#fff;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.5);z-index:11;display:flex;align-items:center;justify-content:center;pointer-events:none}
.vd-diff-badge{font-size:9px;padding:2px 7px;border-radius:10px;font-weight:700}
.vd-diff-badge.added{background:#1a2e1a;color:#56d364;border:1px solid #2d5a2d}
.vd-diff-badge.removed{background:#3d1a1a;color:#f85149;border:1px solid #5a2d2d}
.vd-diff-badge.changed{background:#2d2200;color:#e3b341;border:1px solid #5a4200}
.vd-pixel-diff{position:absolute;border:2px solid #f85149;border-radius:2px;box-shadow:0 0 0 1px rgba(248,81,73,.3);pointer-events:none;transition:opacity .2s}
.vd-pixel-diff-label{position:absolute;top:-18px;left:0;font-size:8px;background:#f85149;color:#fff;padding:1px 5px;border-radius:3px;font-weight:700;white-space:nowrap}
.vd-pixel-diff.layout{border-color:#e3b341;box-shadow:0 0 0 1px rgba(227,179,65,.3)}
.vd-pixel-diff.layout .vd-pixel-diff-label{background:#e3b341;color:#0d1117}
.vd-pixel-diff.added{border-color:#56d364;box-shadow:0 0 0 1px rgba(86,211,100,.3)}
.vd-pixel-diff.added .vd-pixel-diff-label{background:#56d364;color:#0d1117}
.vd-stats-bar{padding:8px 14px;background:#0d1117;border-top:1px solid #21262d;display:flex;gap:14px;font-size:10px;color:#8b949e;flex-shrink:0;flex-wrap:wrap;align-items:center}
.vd-stat-pill{padding:2px 8px;border-radius:10px;font-weight:700;font-size:9px}

/* ── BASELINE MANAGER ── */
.bl-modal{background:#161b22;border:1px solid #30363d;border-radius:10px;width:1020px;max-width:97vw;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.bl-toolbar{padding:10px 14px;border-bottom:1px solid #21262d;display:flex;align-items:center;gap:10px;flex-shrink:0;background:#0d1117;flex-wrap:wrap}
.bl-filter-btn{padding:3px 11px;background:#21262d;border:1px solid #30363d;border-radius:4px;color:#8b949e;font-size:10px;cursor:pointer;font-family:inherit;transition:all .15s}
.bl-filter-btn.active{background:#1c2a3a;border-color:#58a6ff;color:#58a6ff}
.bl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;padding:12px;overflow-y:auto;flex:1}
.bl-card{background:#0d1117;border:1px solid #30363d;border-radius:8px;overflow:hidden;transition:border-color .15s}
.bl-card:hover{border-color:#58a6ff}
.bl-card.status-approved{border-color:#2d5a2d}
.bl-card.status-rejected{border-color:#5a2d2d}
.bl-card.status-pending{border-color:#5a4200}
.bl-card-screens{display:flex;height:120px;position:relative;overflow:hidden}
.bl-card-screen{flex:1;position:relative;overflow:hidden}
.bl-card-screen canvas{width:100%;height:100%;display:block;object-fit:cover}
.bl-card-divider{width:2px;background:#30363d;flex-shrink:0;position:relative;z-index:2}
.bl-card-label{position:absolute;bottom:4px;left:4px;font-size:7px;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em}
.bl-card-label.baseline{background:#1c2a3a;color:#79c0ff}
.bl-card-label.current{background:#21262d;color:#8b949e}
.bl-card-body{padding:10px}
.bl-card-title{font-size:11px;font-weight:700;color:#e6edf3;margin-bottom:4px}
.bl-card-meta{font-size:9px;color:#484f58;margin-bottom:8px;line-height:1.5}
.bl-card-diff-row{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}
.bl-actions{display:flex;gap:6px}
.bl-approve-btn{flex:1;padding:5px;background:#238636;border:none;border-radius:5px;color:#fff;font-size:10px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}
.bl-approve-btn:hover{background:#2ea043}
.bl-reject-btn{flex:1;padding:5px;background:#da3633;border:none;border-radius:5px;color:#fff;font-size:10px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}
.bl-reject-btn:hover{background:#f85149}
.bl-skip-btn{padding:5px 8px;background:none;border:1px solid #30363d;border-radius:5px;color:#8b949e;font-size:10px;cursor:pointer;font-family:inherit}
.bl-queue-bar{padding:8px 14px;background:#0d1117;border-top:1px solid #21262d;display:flex;align-items:center;gap:12px;flex-shrink:0}
.bl-queue-prog{flex:1;height:4px;background:#21262d;border-radius:2px;overflow:hidden}
.bl-queue-fill{height:100%;background:#1f6feb;border-radius:2px;transition:width .4s}
.bl-status-chip{font-size:9px;padding:2px 8px;border-radius:10px;font-weight:700}
.bl-status-chip.approved{background:#1a2e1a;color:#56d364}
.bl-status-chip.rejected{background:#3d1a1a;color:#f85149}
.bl-status-chip.pending{background:#2d2200;color:#e3b341}
.bl-status-chip.skipped{background:#21262d;color:#8b949e}

/* ── ANNOTATED SCREENSHOT ── */
/* .ann-wrap{position:relative;width:100%;height:114px;overflow:hidden;background:#0d1117;cursor:crosshair}
.ann-wrap canvas{display:block;width:100%;height:100%}
.ann-overlay{position:absolute;inset:0;pointer-events:none}
.ann-hotspot{position:absolute;border-radius:3px;cursor:pointer;transition:opacity .15s;pointer-events:all}
.ann-hotspot:hover .ann-tooltip{opacity:1;transform:translateY(0)}
.ann-hotspot-ring{position:absolute;inset:-2px;border-radius:4px;opacity:0;transition:opacity .15s}
.ann-hotspot:hover .ann-hotspot-ring{opacity:1}
.ann-tooltip{position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%) translateY(4px);background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:6px 8px;font-size:9px;white-space:nowrap;pointer-events:none;z-index:100;opacity:0;transition:opacity .15s,transform .15s;box-shadow:0 4px 12px rgba(0,0,0,.5)}
.ann-tooltip-name{font-weight:700;color:#e6edf3;margin-bottom:2px}
.ann-tooltip-sel{color:#79c0ff;font-family:monospace;font-size:8px}
.ann-tooltip-type{font-size:8px;margin-top:2px}
.ann-toggle-btn{position:absolute;bottom:4px;right:4px;padding:2px 7px;background:#161b22;border:1px solid #30363d;border-radius:4px;color:#8b949e;font-size:8px;font-weight:700;cursor:pointer;z-index:20;font-family:inherit;transition:all .15s}
.ann-toggle-btn:hover{border-color:#58a6ff;color:#58a6ff}
.ann-toggle-btn.active{background:#1c2a3a;border-color:#58a6ff;color:#58a6ff}
.ann-badge-counter{position:absolute;top:4px;left:4px;background:#1f6feb;color:#fff;font-size:8px;font-weight:700;padding:1px 6px;border-radius:10px;z-index:20;display:none}
.node-ss.annotated .ann-badge-counter{display:block} */
/* ── ANNOTATED SCREENSHOT (legacy - kept minimal) ── */
.ann-overlay { display:none; } /* overlays now handled via lightbox only */
.ann-toggle-btn { display:none; }
.ann-badge-counter { display:none; }

/* ── DEAD TEST FINDER ── */
.dt-modal{background:#161b22;border:1px solid #30363d;border-radius:10px;width:900px;max-width:97vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}
.dt-toolbar{padding:10px 14px;border-bottom:1px solid #21262d;display:flex;align-items:center;gap:8px;flex-shrink:0;background:#0d1117;flex-wrap:wrap}
.dt-filter-btn{padding:3px 11px;background:#21262d;border:1px solid #30363d;border-radius:4px;color:#8b949e;font-size:10px;cursor:pointer;font-family:inherit;transition:all .15s}
.dt-filter-btn.active{background:#2d2200;border-color:#e3b341;color:#e3b341}
.dt-table{width:100%;border-collapse:collapse;font-size:11px}
.dt-table th{padding:7px 12px;background:#0d1117;color:#484f58;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #21262d;text-align:left;position:sticky;top:0}
.dt-table td{padding:8px 12px;border-bottom:1px solid #21262d;vertical-align:middle}
.dt-table tr:hover td{background:#161b2244}
.dt-risk-bar{height:5px;border-radius:3px;background:#21262d;overflow:hidden;width:80px;margin-top:3px}
.dt-risk-fill{height:100%;border-radius:3px}
.dt-action-btn{padding:3px 9px;border-radius:4px;font-size:9px;font-weight:700;cursor:pointer;font-family:inherit;border:1px solid;transition:all .15s}
.dt-action-btn.flag{background:#2d220011;border-color:#5a4200;color:#e3b341}
.dt-action-btn.flag:hover{background:#2d2200;border-color:#e3b341}
.dt-action-btn.delete{background:#3d1a1a11;border-color:#5a2d2d;color:#f85149}
.dt-action-btn.delete:hover{background:#3d1a1a;border-color:#f85149}
.dt-action-btn.keep{background:#1a2e1a11;border-color:#2d5a2d;color:#56d364}
.dt-action-btn.keep:hover{background:#1a2e1a;border-color:#56d364}
.dt-summary-bar{padding:10px 14px;background:#0d1117;border-top:1px solid #21262d;display:flex;gap:16px;font-size:10px;color:#8b949e;flex-shrink:0;align-items:center;flex-wrap:wrap}
.dt-stat-pill{font-size:9px;padding:2px 8px;border-radius:10px;font-weight:700}
.dt-sparkline{display:flex;gap:2px;align-items:flex-end;height:18px}
.dt-spark-bar{width:5px;border-radius:1px 1px 0 0;flex-shrink:0}

/* ── COVERAGE GAP HIGHLIGHTER ── */

.cg-node-badge {
  position: absolute;
  bottom: 32px;
  right: 8px;
  font-size: 8px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 10px;
  z-index: 15;
  pointer-events: none;
  letter-spacing: .04em;
  text-transform: uppercase;
  backdrop-filter: blur(4px);
}

/* Coverage Gap Panel — refined */
.cg-panel {
  position: absolute;
  top: 10px;
  right: 16px;
  background: #161b22;
  border: 1px solid #30363d;
  border-radius: 10px;
  padding: 14px;
  z-index: 55;
  min-width: 240px;
  max-width: 260px;
  box-shadow: 0 8px 32px rgba(0,0,0,.5), 0 0 0 1px rgba(248,81,73,.1);
  animation: cgPanelIn .2s ease-out;
}
@keyframes cgPanelIn {
  from { opacity: 0; transform: translateY(-8px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.cg-panel-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 8px;
  border-bottom: 1px solid #21262d;
  font-size: 10px;
  cursor: pointer;
  border-radius: 5px;
  transition: background .12s;
  margin-bottom: 2px;
}
.cg-panel-row:last-of-type { border-bottom: none; }
.cg-panel-row:hover { background: #21262d; }
.cg-screen-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.cg-legend-bar {
  padding: 10px 14px;
  border-top: 1px solid #21262d;
  background: #0d1117;
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 10px;
  color: #8b949e;
  flex-shrink: 0;
  flex-wrap: wrap;
}
/* Gaps button active state — border only, not filled */
#cgGlobalBtn.active-gap {
  border-color: #f85149 !important;
  color: #f85149 !important;
  background: #161b22 !important;
}
.cg-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
}
.cg-legend-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}

.cg-pulse {
  position: absolute;
  inset: -3px;
  border-radius: 12px;
  pointer-events: none;
  z-index: 5;
  animation: cgPulse 2.5s ease-in-out infinite;
  opacity: 0;
}
@keyframes cgPulse {
  0%, 100% { opacity: 0; }
  50% { opacity: 0.25; }
}
.cg-legend-bar{padding:10px 14px;border-top:1px solid #21262d;background:#0d1117;display:flex;gap:12px;align-items:center;font-size:10px;color:#8b949e;flex-shrink:0;flex-wrap:wrap}
.cg-legend-item{display:flex;align-items:center;gap:5px}
.cg-legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.cg-panel{position:absolute;top:10px;right:16px;background:#161b22;border:1px solid #30363d;border-radius:8px;padding:12px 14px;z-index:55;min-width:220px;box-shadow:0 4px 16px rgba(0,0,0,.4)}
.cg-panel-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid #21262d;font-size:10px;cursor:pointer}
.cg-panel-row:last-child{border-bottom:none}
.cg-panel-row:hover{color:#e6edf3}
.cg-screen-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* ── MUTATION TESTING ── */
.mt-modal{background:#161b22;border:1px solid #30363d;border-radius:10px;width:940px;max-width:97vw;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.mt-toolbar{padding:10px 14px;border-bottom:1px solid #21262d;display:flex;align-items:center;gap:10px;flex-shrink:0;background:#0d1117;flex-wrap:wrap}
.mt-body{display:flex;flex:1;overflow:hidden;min-height:0}
.mt-left{width:280px;flex-shrink:0;border-right:1px solid #21262d;display:flex;flex-direction:column;overflow:hidden}
.mt-right{flex:1;display:flex;flex-direction:column;overflow:hidden}
.mt-screen-list{flex:1;overflow-y:auto;padding:6px}
.mt-screen-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;cursor:pointer;border:1px solid transparent;margin-bottom:3px;transition:all .12s}
.mt-screen-item:hover{background:#21262d}
.mt-screen-item.selected{background:#1c2a3a22;border-color:#58a6ff}
.mt-score-ring{position:relative;flex-shrink:0}
.mt-mutation-row{background:#0d1117;border:1px solid #21262d;border-radius:6px;padding:10px 12px;margin-bottom:6px;transition:border-color .12s}
.mt-mutation-row:hover{border-color:#30363d}
.mt-mutation-row.killed{border-left:3px solid #56d364}
.mt-mutation-row.survived{border-left:3px solid #f85149}
.mt-mutation-row.timeout{border-left:3px solid #e3b341}
.mt-status-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:10px}
.mt-status-badge.killed{background:#1a2e1a;color:#56d364}
.mt-status-badge.survived{background:#3d1a1a;color:#f85149}
.mt-status-badge.timeout{background:#2d2200;color:#e3b341}
.mt-progress-wrap{padding:12px 14px;border-bottom:1px solid #21262d;flex-shrink:0;background:#0d1117}
.mt-prog-bar{width:100%;height:6px;background:#21262d;border-radius:3px;overflow:hidden;margin:6px 0}
.mt-prog-fill{height:100%;border-radius:3px;background:#1f6feb;transition:width .4s}
.mt-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 14px;border-bottom:1px solid #21262d;flex-shrink:0;background:#0d1117}
.mt-kpi{background:#161b22;border:1px solid #30363d;border-radius:7px;padding:10px;text-align:center}
.mt-kpi-num{font-size:20px;font-weight:800;line-height:1;margin-bottom:3px}
.mt-kpi-label{font-size:9px;color:#484f58;text-transform:uppercase;letter-spacing:.06em}
.mt-results-list{flex:1;overflow-y:auto;padding:10px 14px}
.mt-run-btn{padding:6px 16px;background:#238636;border:none;border-radius:6px;color:#fff;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}
.mt-run-btn:hover:not(:disabled){background:#2ea043}
.mt-run-btn:disabled{background:#21262d;color:#484f58;cursor:not-allowed}
.tr-chart-wrap svg {
  display: block;
  overflow: visible;
}

.tr-sparkline {
  padding: 0 14px 14px;
  overflow: hidden;
}

.tr-card {
  min-height: 180px;
}

/* ── ANNOTATION LIGHTBOX ── */
@keyframes fadeIn  { from { opacity:0 }       to { opacity:1 } }
@keyframes scaleIn { from { transform:scale(.96);opacity:0 } to { transform:scale(1);opacity:1 } }

.ann-lb-hotspot:hover {
  z-index: 10;
}
.ann-lb-hotspot:hover > div {
  opacity: 1 !important;
}
