/* ============================================================
   TEST CENTER  —  Test ▸ Project ▸ Test Center
   ============================================================ */
.tc-breadcrumb{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-3)}
.tc-breadcrumb a{color:var(--text-secondary);transition:color var(--duration-fast) var(--ease)}
.tc-breadcrumb a:hover{color:var(--brand)}
.tc-breadcrumb__sep{color:var(--text-muted)}
.tc-breadcrumb__cur{color:var(--text-primary);font-weight:var(--weight-medium)}

.tc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-5)}
.tc-head__left{display:flex;align-items:center;gap:var(--space-3);min-width:0}
.tc-proj-icon{width:48px;height:48px;min-width:48px;border-radius:var(--radius-md);background:var(--navy);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-size:var(--text-md);font-weight:var(--weight-bold);letter-spacing:-.01em}
.tc-proj-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.tc-proj-name{font-size:var(--text-3xl);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:-.02em;line-height:1.1}
.tc-proj-sub{font-size:var(--text-base);color:var(--text-secondary);line-height:1.3}
.tc-head__right{display:flex;align-items:center;gap:var(--space-6);flex-shrink:0}
.tc-summary{display:flex;align-items:center;gap:var(--space-5)}
.tc-sum-metric{display:flex;flex-direction:column;gap:3px}
.tc-sum-val{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);line-height:1;white-space:nowrap}
.tc-sum-val--ok{color:var(--success)}
.tc-sum-label{font-size:var(--text-xs);color:var(--text-muted);line-height:1;white-space:nowrap}

.tc-tabs{display:flex;align-items:center;gap:var(--space-5);border-bottom:1px solid var(--border);margin-bottom:var(--space-5)}
.tc-tab{padding:0 0 var(--space-3);font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--duration-fast) var(--ease);font-family:inherit;line-height:inherit;outline:none}
.tc-tab:hover{color:var(--text-primary)}
.tc-tab--active{color:var(--info);border-bottom-color:var(--info);font-weight:var(--weight-semibold)}

.tc-toolbar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}
.tc-search{position:relative;width:240px;flex-shrink:0}
.tc-filters{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.tc-file-select{max-width:220px;flex-shrink:0}
.tc-filter{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 var(--space-3);border-radius:var(--radius-full);
  border:1px solid var(--border);background:var(--surface);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary);cursor:pointer;
  transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}
.tc-filter__count{font-weight:var(--weight-semibold);opacity:.85}
/* per-status tints — pills are always colour-coded; --active strengthens the fill */
.tc-filter--all{color:var(--info);border-color:var(--info-border)}
.tc-filter--all.tc-filter--active{background:var(--info-bg);border-color:var(--info)}
.tc-filter--passed{color:var(--success);border-color:var(--success-border)}
.tc-filter--passed.tc-filter--active{background:var(--success-bg);border-color:var(--success)}
.tc-filter--failed{color:var(--error);border-color:var(--error-border)}
.tc-filter--failed.tc-filter--active{background:var(--error-bg);border-color:var(--error)}
.tc-filter--running{color:var(--warning);border-color:var(--warning-border)}
.tc-filter--running.tc-filter--active{background:var(--warning-bg);border-color:var(--warning)}
.tc-filter--neverrun{color:var(--text-secondary);border-color:var(--border)}
.tc-filter--neverrun.tc-filter--active{background:var(--surface-2);border-color:var(--border-hi);color:var(--text-primary)}
.tc-filter:hover{filter:brightness(.98);border-color:var(--border-hi)}
.tc-actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}
.tc-morebtn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;
  background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}
.tc-morebtn:hover{background:var(--surface-2);border-color:var(--border-hi)}
.tc-morebtn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.tc-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}
.tc-thead,.tc-row{display:grid;grid-template-columns:34px .62fr .8fr minmax(0,1.8fr) .72fr 1fr .95fr .6fr .72fr 1fr .85fr 70px;align-items:center;gap:var(--space-2);padding:0 var(--space-5)}
.tc-cell--id{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);font-family:var(--font-mono,monospace)}
.tc-thead{height:44px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.tc-th{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary);white-space:nowrap}
.tc-th--num{min-width:0}
.tc-th--right,.tc-cell--right{justify-self:end;text-align:right}
.tc-row{min-height:60px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--duration-fast) var(--ease)}
.tc-row:last-child{border-bottom:none}
.tc-row:hover{background:var(--surface-2)}
.tc-rownum{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-muted);text-align:center}
.tc-cell{min-width:0;font-size:var(--text-base);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-cell--strong{color:var(--text-primary);font-weight:var(--weight-semibold)}
.tc-namecell{display:flex;flex-direction:column;gap:2px;min-width:0}
.tc-test-name{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-test-sub{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-env{display:inline-flex;align-items:center;height:22px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--surface-2);color:var(--text-secondary)}
.tc-status{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap}
.tc-status::before{content:'';width:6px;height:6px;border-radius:var(--radius-full);background:currentColor;display:block}
.tc-status--passed{background:var(--success-bg);color:var(--success)}
.tc-status--failed{background:var(--error-bg);color:var(--error)}
.tc-status--running{background:var(--warning-bg);color:var(--warning)}
.tc-status--queuing{background:var(--info-bg);color:var(--info)}
.tc-status--queuing svg{animation:none}
.tc-status--neverrun{background:var(--surface-2);color:var(--text-muted)}
/* icon variant (test rows) — icon replaces the dot */
.tc-status--icon{gap:6px;height:24px;padding:0 10px}
.tc-status--icon::before{display:none}
.tc-status--icon svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@keyframes tc-spin{to{transform:rotate(360deg)}}
.tc-status--running.tc-status--icon svg{animation:tc-spin 1s linear infinite}
.tc-passrate{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary)}
.tc-owner{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--text-secondary);min-width:0}
.tc-owner__avatar{width:24px;height:24px;min-width:24px;border-radius:var(--radius-full);background:var(--avatar-bg);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:var(--weight-bold);text-transform:uppercase}
.tc-rowactions{display:flex;align-items:center;gap:2px;justify-self:end}
.tc-iconbtn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}
.tc-iconbtn:hover{background:var(--surface-3);color:var(--text-primary)}
.tc-iconbtn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tc-iconbtn--run:hover{background:var(--success-bg);color:var(--success)}
.tc-iconbtn--running{color:var(--warning);cursor:default}
.tc-iconbtn--running svg{animation:tc-spin 1s linear infinite}
.tc-iconbtn--queue{color:var(--info);cursor:default}

/* ── Last Run cell: relative time + last-5 run sparkline ── */
.tc-lastrun{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.tc-lastrun__time{font-weight:var(--weight-semibold);color:var(--text-primary)}
.tc-runhist{display:inline-flex;align-items:center;gap:4px}
.tc-runhist__dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--surface-2);display:inline-block}
.tc-runhist__dot--passed{background:var(--success)}
.tc-runhist__dot--failed{background:var(--error)}
.tc-runhist__dot--running{background:var(--warning)}
.tc-runhist__dot--neverrun{background:var(--text-muted)}

/* ── More menu (Run All / Select / Delete All) ── */
.tc-more-wrap{position:relative;display:inline-flex}
.tc-morebtn--active{background:var(--surface-2);border-color:var(--border-hi)}
.tc-morebtn--cancel{width:40px;height:40px}
.tc-more-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:184px;background:var(--surface-0,#fff);
  border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;z-index:60;display:flex;flex-direction:column;gap:2px}
.tc-more-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;background:none;cursor:pointer;
  border-radius:7px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary);text-align:left}
.tc-more-item:hover{background:var(--surface-2)}
.tc-more-item svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tc-more-item--danger{color:var(--error)}
.tc-more-item--danger:hover{background:var(--error-bg)}
.tc-more-sep{height:1px;background:var(--border);margin:4px 2px}
/* per-row More dropdown */
.tc-rowmore-wrap{position:relative;display:inline-flex}
.tc-iconbtn--active{background:var(--surface-2);color:var(--text-primary)}
.tc-rowmenu{position:fixed;min-width:178px;background:var(--surface-0,#fff);
  border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;z-index:1300;display:flex;flex-direction:column;gap:2px}
.tc-rowmenu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;background:none;cursor:pointer;
  border-radius:7px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary);text-align:left}
.tc-rowmenu-item:hover{background:var(--surface-2)}
.tc-rowmenu-item svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tc-rowmenu-item--danger{color:var(--error)}
.tc-rowmenu-item--danger:hover{background:var(--error-bg)}
.tc-rowmenu-sep{height:1px;background:var(--border);margin:4px 2px}
/* move / export picker modal */
.tc-confirm--move,.tc-confirm--export{max-width:440px}
.tc-move-list{display:flex;flex-direction:column;gap:6px;margin:var(--space-3) 0 var(--space-5);max-height:320px;overflow-y:auto}
.tc-move-opt{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--border);background:var(--surface-1,transparent);
  border-radius:10px;cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}
.tc-move-opt:hover{background:var(--surface-2);border-color:var(--border-hi)}
.tc-move-opt__badge{width:34px;height:34px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:8px;
  background:var(--brand-muted,rgba(0,212,184,.12));color:var(--brand);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.02em}
.tc-move-opt__name{flex:1;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}
.tc-move-opt__slug{font-size:var(--text-xs);color:var(--text-secondary);font-family:var(--font-mono,monospace)}

/* ── Selection-mode action bar ── */
.tc-actions--select{gap:var(--space-2)}
.tc-selcount{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary);margin-right:var(--space-1)}
.pc-newbtn--ghost{background:var(--surface-1,#fff);color:var(--text-primary);border:1px solid var(--border)}
.pc-newbtn--ghost:hover{background:var(--surface-2)}
.pc-newbtn--danger{background:var(--error);color:#fff;border:1px solid var(--error)}
.pc-newbtn--danger:hover{filter:brightness(.94)}
.pc-newbtn[disabled]{opacity:.45;pointer-events:none}

/* ── Row selection checkboxes ── */
.tc-rowcheck-wrap{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.tc-rowcheck{width:16px;height:16px;cursor:pointer;accent-color:var(--brand)}
.tc-row--select{cursor:pointer}
.tc-row--checked{background:var(--brand-muted,rgba(0,212,184,.08))}

/* ── Confirm modal ── */
.tc-confirm-overlay{position:fixed;inset:0;background:rgba(8,12,24,.5);display:flex;align-items:center;justify-content:center;z-index:1200;padding:var(--space-4)}
.tc-confirm{width:100%;max-width:420px;background:var(--surface-0,#fff);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);padding:var(--space-5)}
.tc-confirm__title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-2)}
.tc-confirm__msg{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin-bottom:var(--space-5)}
.tc-confirm__actions{display:flex;justify-content:flex-end;gap:var(--space-2)}
.tc-confirm__btn{height:38px;padding:0 var(--space-4);border-radius:8px;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:1px solid transparent}
.tc-confirm__btn--ghost{background:none;border-color:var(--border);color:var(--text-primary)}
.tc-confirm__btn--ghost:hover{background:var(--surface-2)}
.tc-confirm__btn--primary{background:var(--brand);color:var(--text-inverse,#062b27)}
.tc-confirm__btn--primary:hover{background:var(--brand-alt,var(--brand))}
.tc-confirm__btn--danger{background:var(--error);color:#fff}
.tc-confirm__btn--danger:hover{filter:brightness(.94)}

/* ── Test Settings: Run Mode toggle ── */
.tcs-runmode-desc{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 var(--space-3)}
.tcs-runmode{display:flex;flex-direction:column;gap:var(--space-2)}
.tcs-runmode-opt{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}
.tcs-runmode-opt:hover{background:var(--surface-2);border-color:var(--border-hi)}
.tcs-runmode-opt input{margin-top:2px;width:16px;height:16px;accent-color:var(--brand);cursor:pointer;flex-shrink:0}
.tcs-runmode-opt--on{background:var(--brand-muted);border-color:var(--brand)}
.tcs-runmode-info{display:flex;flex-direction:column;gap:2px}
.tcs-runmode-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}
.tcs-runmode-sub{font-size:var(--text-xs);color:var(--text-secondary)}

/* ── Priority + Tag columns ── */
.tc-cell-empty{color:var(--text-muted)}
.tc-tagcell{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.tc-pri{display:inline-flex;align-items:center;padding:1px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:var(--weight-semibold);line-height:1.6;border:1px solid transparent}
.tc-pri--critical{background:var(--error-bg);color:var(--error);border-color:var(--error)}
.tc-pri--high{background:var(--warning-bg);color:var(--warning)}
.tc-pri--medium{background:var(--info-bg,rgba(41,121,255,.12));color:var(--info)}
.tc-pri--low{background:var(--surface-2);color:var(--text-secondary)}
.tc-tagchip{display:inline-flex;align-items:center;padding:1px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:var(--weight-medium);background:var(--surface-2);color:var(--text-secondary)}
.tc-tagchip--more{color:var(--text-muted)}

/* ── Suite form: auto-match controls ── */
.ts-automatch{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.ts-automatch-chk{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary);cursor:pointer}
.ts-automatch-chk input{width:15px;height:15px;accent-color:var(--brand);cursor:pointer}
.ts-automatch-mode{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:var(--text-xs);color:var(--text-secondary);padding-left:23px}
.ts-automatch-mode label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.ts-automatch-mode input{accent-color:var(--brand);cursor:pointer}

.tc-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-5)}
.tc-footer__info{font-size:var(--text-sm);color:var(--text-secondary)}

@media(max-width:1200px){.tc-head{flex-direction:column}.tc-thead{display:none}
  .tc-row{grid-template-columns:1fr 1fr;row-gap:var(--space-2);padding:var(--space-3) var(--space-4)}}

/* ── interactive additions ── */
.tc-th--sort{cursor:pointer;user-select:none}
.tc-th--sort:hover{color:var(--text-primary)}
.tc-th--sorted{color:var(--info)}
.tc-empty{padding:var(--space-10) 0;text-align:center;font-size:var(--text-md);color:var(--text-muted)}
.tc-iconbtn--disabled{opacity:.35;pointer-events:none}

/* Section header (Environments / Members) */
.tc-secthead{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}
.tc-sect-title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);line-height:1.2}
.tc-sect-sub{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}

/* Environments table */
.tc-ethead,.tc-erow{display:grid;grid-template-columns:1fr 1.4fr 1.3fr .8fr 1.1fr .8fr 70px;align-items:center;gap:var(--space-3);padding:0 var(--space-5)}
.tc-ethead{height:44px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.tc-erow{min-height:56px;border-bottom:1px solid var(--border)}
.tc-erow:last-child{border-bottom:none}
.tc-erow:hover{background:var(--surface-2)}
.tc-ecell{min-width:0;font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-ename{display:flex;align-items:center;gap:6px;font-weight:var(--weight-semibold);color:var(--text-primary)}
.tc-ebadge{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:var(--radius-full);background:var(--info-bg);color:var(--info);font-size:10px;font-weight:var(--weight-semibold)}
.tc-emono{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--info)}
.tc-callout{display:flex;align-items:center;gap:var(--space-3);background:var(--info-bg);border:1px solid var(--info-border);border-radius:12px;padding:var(--space-4);margin-top:var(--space-4)}
.tc-callout__icon{width:34px;height:34px;border-radius:var(--radius-md);background:var(--surface);color:var(--info);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tc-callout__icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tc-callout__text{flex:1;min-width:0}
.tc-callout__title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary)}
.tc-callout__sub{font-size:var(--text-xs);color:var(--text-secondary)}
.tc-callout__btn{display:inline-flex;align-items:center;height:36px;padding:0 var(--space-3);background:var(--surface);border:1px solid var(--info-border);border-radius:8px;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--info);cursor:pointer;flex-shrink:0}
.tc-callout__btn:hover{background:var(--info-bg)}

/* Settings */
.tc-settings{display:grid;grid-template-columns:220px 1fr;gap:var(--space-5);align-items:start}
.tc-setmenu{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--space-2)}
.tc-setmenu__item{text-align:left;height:38px;padding:0 var(--space-3);border:none;background:transparent;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}
.tc-setmenu__item:hover{background:var(--surface-2);color:var(--text-primary)}
.tc-setmenu__item--active{background:var(--info-bg);color:var(--info);font-weight:var(--weight-semibold)}
.tc-setmain{display:flex;flex-direction:column;gap:var(--space-5);min-width:0}
.tc-setcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--space-5)}
.tc-setcard__title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:var(--space-4)}
.tc-setcard--danger{border-color:var(--error)}
.tc-danger-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.tc-danger-title{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary)}
.tc-danger-sub{font-size:var(--text-sm);color:var(--text-secondary);margin-top:2px}
.pm-btn--danger{background:var(--error);color:#fff;border:1px solid var(--error)}
.pm-btn--danger:hover{filter:brightness(.94)}
.tc-setform{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.tc-setchecks{display:flex;flex-direction:column;gap:var(--space-3)}
.tc-check{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}
.tc-check input{width:16px;height:16px;accent-color:var(--info);cursor:pointer}
.tc-set-actions{display:flex;justify-content:flex-end}

/* Members */
.tc-mthead,.tc-mrow{display:grid;grid-template-columns:minmax(0,1.8fr) 1fr .8fr 1.2fr 1fr 70px;align-items:center;gap:var(--space-3);padding:0 var(--space-5)}
.tc-mthead{height:44px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.tc-mrow{min-height:58px;border-bottom:1px solid var(--border)}
.tc-mrow:last-child{border-bottom:none}
.tc-mrow:hover{background:var(--surface-2)}
.tc-mcell{min-width:0;font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-member{display:flex;align-items:center;gap:var(--space-2)}
.tc-member__avatar{width:32px;height:32px;min-width:32px;border-radius:var(--radius-full);background:var(--avatar-bg);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:var(--weight-bold);text-transform:uppercase}
.tc-member__text{display:flex;flex-direction:column;gap:1px;min-width:0}
.tc-member__name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}
.tc-member__email{font-size:var(--text-xs);color:var(--text-muted)}
.tc-rolebadge{display:inline-flex;align-items:center;height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--purple-bg);color:var(--purple);font-size:var(--text-xs);font-weight:var(--weight-semibold)}
.tc-note{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--text-muted);line-height:1.5}

/* New Test drawer */
.tc-drawer-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;z-index:1000}
.tc-drawer-overlay.tc-open{display:block}
.tc-drawer{position:absolute;top:0;right:0;height:100%;width:560px;max-width:92vw;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column}
.tc-drawer__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-5);border-bottom:1px solid var(--border)}
.tc-drawer__title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary)}
.tc-drawer__sub{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}
.tc-drawer__body{flex:1;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}
.tc-drawer__foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);flex-wrap:wrap}
.tc-textarea{height:auto;min-height:72px;padding:var(--space-2) var(--space-3);font-family:inherit;resize:vertical;line-height:1.5}

/* shared modal (reuse pm-* classes from project-center, define here too for safety) */
.pm-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:flex-start;justify-content:center;z-index:1000;padding:var(--space-10) var(--space-4);overflow-y:auto}
.pm-overlay.tc-open{display:flex}

.tc-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(8px);background:var(--navy);color:#fff;padding:10px var(--space-4);border-radius:10px;box-shadow:var(--shadow-lg);font-size:var(--text-sm);font-weight:var(--weight-medium);z-index:1100;opacity:0;pointer-events:none;transition:opacity var(--duration-base) var(--ease),transform var(--duration-base) var(--ease)}
.tc-toast--show{opacity:1;transform:translateX(-50%) translateY(0)}

@media(max-width:1100px){.tc-settings{grid-template-columns:1fr}.tc-setform{grid-template-columns:1fr}}

/* ── Test Settings / Credentials ── */
.tcs-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);}
.tcs-col-hdrs{display:grid;grid-template-columns:160px 1fr 130px 110px 64px;gap:var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;flex:1;margin-right:var(--space-4);}
.tcs-creds{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-4);}
.tcs-cred-row{display:grid;grid-template-columns:160px 1fr 130px 110px 64px;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:8px;background:var(--surface-0,var(--surface-2));border:1px solid var(--border);font-size:var(--text-sm);}
.tcs-cred-row:hover{border-color:var(--border-hi);}
.tcs-cred-name{display:flex;align-items:center;gap:6px;color:var(--text-primary);font-weight:var(--weight-medium);}
.tcs-cred-url{color:var(--brand);font-family:var(--font-mono);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tcs-cred-user{color:var(--text-secondary);font-size:var(--text-xs);}
.tcs-cred-pass{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.1em;}
.tcs-cred-actions{display:flex;gap:4px;justify-content:flex-end;}
.tcs-empty{padding:var(--space-6);text-align:center;color:var(--text-muted);font-size:var(--text-sm);border:1px dashed var(--border);border-radius:8px;margin-bottom:var(--space-4);}
/* Add/Edit form */
.tcs-add-form{background:var(--surface-2);border:1px solid var(--border-hi);border-radius:10px;padding:var(--space-4);margin-bottom:var(--space-4);}
.tcs-add-title{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:var(--space-3);}
.tcs-add-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-bottom:var(--space-3);}
.tcs-pass-row{display:flex;gap:6px;align-items:center;}
.tcs-pass-row .pm-input{flex:1;}
.tcs-eye-btn{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;color:var(--text-secondary);}
.tcs-eye-btn:hover{border-color:var(--brand);color:var(--brand);}
.tcs-add-actions{display:flex;justify-content:flex-end;gap:var(--space-2);}
/* Login session badge + spinner */
.tcs-sess-badge{margin-right:auto;font-size:var(--text-xs);font-weight:var(--weight-medium,500);padding:4px 10px;border-radius:var(--radius-full,999px);}
.tcs-sess-badge--green{background:rgba(0,230,118,.12);border:1px solid rgba(0,230,118,.3);color:var(--color-success,#00e676);}
.tcs-sess-badge--muted{background:var(--surface-2);border:1px solid var(--border);color:var(--text-secondary);}
.tcs-spin{animation:tc-spin .8s linear infinite;}
/* Login session result panel */
.tcs-sess-result{margin-top:var(--space-3);border-radius:8px;padding:var(--space-3);font-size:var(--text-sm);}
.tcs-sess-result--ok{background:rgba(0,230,118,.08);border:1px solid rgba(0,230,118,.28);}
.tcs-sess-result--fail{background:var(--error-bg,rgba(255,61,107,.08));border:1px solid var(--error,#ff3d6b);}
.tcs-sess-result__msg{font-weight:var(--weight-medium,500);color:var(--text-primary);margin-bottom:var(--space-2);}
.tcs-sess-steps{display:flex;flex-direction:column;gap:2px;}
.tcs-step{display:flex;align-items:flex-start;gap:8px;font-size:var(--text-xs);color:var(--text-secondary);}
.tcs-step__icon{flex-shrink:0;width:14px;text-align:center;font-weight:700;}
.tcs-step--pass .tcs-step__icon{color:var(--color-success,#00e676);}
.tcs-step--fail .tcs-step__icon{color:var(--error,#ff3d6b);}
.tcs-step--fail .tcs-step__txt{color:var(--text-primary);}
.tcs-step--pending .tcs-step__icon{color:var(--text-muted);}
/* Usage note */
.tcs-usage-note{display:flex;align-items:flex-start;gap:8px;padding:var(--space-3) var(--space-4);background:var(--brand-muted,rgba(0,212,184,.07));border:1px solid rgba(0,212,184,.2);border-radius:8px;font-size:var(--text-xs);color:var(--text-secondary);}
.tcs-usage-note code{background:var(--surface-2);padding:1px 5px;border-radius:4px;font-family:var(--font-mono);color:var(--brand);}
.tcs-usage-note strong{color:var(--text-primary);}

/* Preset Environments */
.tc-preset-table{overflow:hidden}
.tc-preset-thead{display:grid;grid-template-columns:44px 22px 1fr 1.8fr 150px;align-items:center;gap:var(--space-3);padding:0 var(--space-4);height:40px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.tc-preset-row{display:grid;grid-template-columns:44px 22px 1fr 1.8fr 150px;align-items:center;gap:var(--space-3);padding:0 var(--space-4);min-height:58px;border-bottom:1px solid var(--border);transition:background var(--duration-fast) var(--ease)}
.tc-preset-row:last-child{border-bottom:none}
.tc-preset-row:hover{background:var(--surface-2)}
.tc-preset-row--enabled{background:rgba(0,212,184,.04)}
.tc-preset-chk{display:flex;align-items:center;justify-content:center;cursor:pointer;height:100%}
.tc-preset-cb{width:16px;height:16px;accent-color:var(--brand);cursor:pointer;flex-shrink:0}
.tc-preset-dot{width:10px;height:10px;min-width:10px;border-radius:var(--radius-full);flex-shrink:0}
.tc-preset-info{min-width:0;display:flex;flex-direction:column;gap:2px}
.tc-preset-name{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}
.tc-preset-desc{font-size:var(--text-xs);color:var(--text-muted)}
.tc-preset-urlcell{min-width:0;display:flex;align-items:center}
.tc-preset-urlinput{height:32px;padding:0 var(--space-2);font-size:var(--text-xs);font-family:var(--font-mono);width:100%}
.tc-preset-urlhint{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-preset-acts{display:flex;align-items:center;justify-content:flex-end}
.tc-setdef-btn{height:28px;padding:0 var(--space-3);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--duration-fast) var(--ease)}
.tc-setdef-btn:hover{background:var(--brand-muted,rgba(0,212,184,.1));border-color:var(--brand);color:var(--brand)}
.tc-def-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--brand);white-space:nowrap}
.tc-custom-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);margin-top:var(--space-5);margin-bottom:var(--space-3)}
.tc-callout--envs{margin-top:var(--space-4)}

/* ── scheduled-runs strip (read-only link to Schedules page) ── */
.tc-sched-strip{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}
.tc-sched-strip__hd{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);
  font-weight:var(--weight-semibold);color:var(--text-secondary);margin-bottom:var(--space-3)}
.tc-sched-strip__hd svg{color:var(--brand)}
.tc-sched-manage{margin-left:auto;font-size:var(--text-sm);color:var(--brand);text-decoration:none;font-weight:var(--weight-semibold)}
.tc-sched-manage:hover{text-decoration:underline}
.tc-sched-strip__chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.tc-sched-chip{display:flex;flex-direction:column;gap:1px;text-decoration:none;padding:var(--space-2) var(--space-3);
  border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-0);min-width:160px;
  border-left:3px solid var(--success);transition:border-color var(--duration-fast),background var(--duration-fast)}
.tc-sched-chip:hover{background:var(--surface-2);border-color:var(--border-hi)}
.tc-sched-chip--paused{border-left-color:var(--text-muted)}
.tc-sched-chip--failed{border-left-color:var(--error)}
.tc-sched-chip__name{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary)}
.tc-sched-chip__meta{font-size:var(--text-xs);color:var(--text-secondary)}
.tc-sched-more{align-self:center;font-size:var(--text-sm);color:var(--brand);text-decoration:none;padding:0 var(--space-2)}
.tc-sched-more:hover{text-decoration:underline}
