  .recruit-rotate-hint { display: none !important; }

  .recruit-phone-list { display: none; }
  .recruit-phone-hint {
    margin: 0 0 .55rem;
    font-size: .78rem;
    color: #64748b;
  }
  .recruit-phone-empty {
    text-align: center;
    color: #64748b;
    padding: 1.4rem .5rem;
  }
  .recruit-phone-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: .7rem .8rem;
    margin-bottom: .55rem;
  }
  .recruit-phone-card.is-lead { border-left: 4px solid #22c55e; }
  .recruit-phone-card.is-stale { border-left: 4px solid #dc2626; }
  .recruit-phone-card.is-lead.is-stale { border-left-color: #dc2626; }
  .recruit-phone-card.is-paused { background: #f3f4f6; color: #6b7280; }
  .recruit-phone-card.is-enrolling-no { color: #94a3b8; }
  .rpc-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .45rem;
  }
  .rpc-name {
    font-weight: 800;
    font-size: .95rem;
    line-height: 1.3;
    color: #0f172a;
  }
  .rpc-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .25rem;
    flex: 0 0 auto;
  }
  .rpc-badge {
    font-size: .68rem;
    font-weight: 700;
    padding: .12rem .4rem;
    border-radius: 999px;
    white-space: nowrap;
  }
  .rpc-badge-lead { background: #dcfce7; color: #15803d; }
  .rpc-badge-paused { background: #e5e7eb; color: #4b5563; }
  .rpc-badge-stale { background: #fee2e2; color: #b91c1c; }
  .rpc-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .15rem .55rem;
    margin-top: .35rem;
    font-size: .78rem;
    color: #475569;
  }
  .rpc-regimen {
    margin-top: .35rem;
    font-size: .82rem;
    line-height: 1.4;
    color: #1e3a5f;
  }
  .rpc-criteria {
    margin-top: .3rem;
    font-size: .8rem;
    line-height: 1.4;
    color: #334155;
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
  }

  @media screen and (max-width: 920px) and (orientation: portrait) {
    .recruit-table-wrap { display: none !important; }
    .recruit-phone-list { display: block; }
    .col-resize-reset { display: none !important; }
    .cancer-tabs {
      flex-wrap: nowrap;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    body.is-guest .guest-main {
      max-width: none;
      padding: .55rem .55rem 1.1rem;
    }
    body.is-guest .guest-page-head {
      margin-bottom: .45rem;
    }
    body.is-guest .guest-page-head h1 { font-size: 1.08rem; }
    body.is-guest .guest-topbar-inner { padding: .45rem .6rem; }
  }
  @media screen and (max-width: 920px) and (orientation: landscape) {
    .recruit-phone-list { display: none !important; }
    .recruit-table-wrap { display: block; max-height: calc(100vh - 7.5rem) !important; }
    .sidebar { width: 12.5rem !important; }
    .content { padding: .45rem .5rem .6rem !important; }
    .topbar { padding: .35rem .55rem !important; }
    body.is-guest .guest-main { max-width: none; padding: .4rem .5rem .8rem; }
  }

  .recruit-legend {
    display: inline-flex;
    align-items: center;
    gap: .55rem .85rem;
    margin-left: .35rem;
    font-size: .78rem;
    color: #475569;
    flex-wrap: wrap;
  }
  .recruit-legend-item {
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    white-space: nowrap;
  }
  .recruit-swatch {
    display: inline-block;
    width: .72rem;
    height: .72rem;
    border-radius: 2px;
    border: 1px solid rgba(15, 23, 42, .12);
    flex: 0 0 auto;
  }
  .recruit-swatch-stale { background: #dc2626; border-color: #991b1b; }
  .recruit-swatch-lead { background: #22c55e; border-color: #15803d; }
  .recruit-swatch-paused { background: #9ca3af; border-color: #6b7280; }
  .recruit-table-wrap { overflow: auto; max-height: calc(100vh - 14rem); border-radius: 10px; border: 1px solid rgba(0,0,0,.08); }
  table.recruit-grid { border-collapse: collapse; min-width: 1400px; width: 100%; font-size: .86rem; background: #fff; }
  table.recruit-grid th, table.recruit-grid td {
    border: 1px solid rgba(15, 23, 42, .08); padding: .22rem .3rem; vertical-align: top; text-align: left;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  table.recruit-grid th {
    position: sticky; top: 0; z-index: 2;
    background: #eef1f5; font-weight: 600; white-space: nowrap;
    color: var(--text);
    box-shadow: 0 2px 0 #d0d5dd;
  }
  table.recruit-grid td.col-num {
    white-space: nowrap;
  }
  .row-drag-handle {
    display: inline-block;
    cursor: grab;
    color: #94a3b8;
    font-size: .72rem;
    letter-spacing: -.08em;
    user-select: none;
    line-height: 1;
    margin-right: .15rem;
    vertical-align: middle;
  }
  .row-drag-handle:active { cursor: grabbing; }
  table.recruit-grid tr.row-dragging { opacity: .55; }
  table.recruit-grid tr.row-drag-over td { box-shadow: inset 0 2px 0 #3b82f6; }
  table.recruit-grid th.col-num,
  table.recruit-grid td.num {
    width: 2.2rem; min-width: 2.1rem; max-width: 2.6rem;
    padding-left: .12rem !important; padding-right: .12rem !important;
    text-align: center; color: #64748b; background: #f8fafc;
    font-size: .7rem; line-height: 1.2;
  }
  table.recruit-grid th.col-row-edit,
  table.recruit-grid td.col-row-edit {
    width: 1.9rem; min-width: 1.8rem; max-width: 2rem;
    text-align: center; padding-left: .08rem !important; padding-right: .08rem !important;
  }
  table.recruit-grid th.col-project-edit,
  table.recruit-grid td.col-project-edit {
    width: 1.9rem; min-width: 1.8rem; max-width: 2rem;
    text-align: center; padding-left: .08rem !important; padding-right: .08rem !important;
  }
  .btn-row-edit {
    width: 1.45rem; height: 1.45rem; padding: 0; border-radius: 6px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .82rem; line-height: 1; border: 1px solid #cbd5e1;
    background: #fff; color: #334155; cursor: pointer;
  }
  a.btn-row-edit { text-decoration: none; vertical-align: middle; margin-right: .2rem; }
  td.col-project-edit a.btn-row-edit { margin-right: 0; }
  .btn-row-edit:hover { border-color: var(--primary); color: var(--primary); background: color-mix(in srgb, var(--primary) 7%, #fff); }
  tr.row-editing .btn-row-edit { background: color-mix(in srgb, var(--primary) 13%, #fff); border-color: var(--primary); color: var(--primary-dark, var(--primary)); }
  table.recruit-grid .cell-input, table.recruit-grid .cell-select, table.recruit-grid .cell-area {
    width: 100%; min-width: 0; border: 1px solid transparent; border-radius: 4px;
    padding: .15rem .25rem; font: inherit; background: transparent; color: inherit;
  }
  table.recruit-grid .cell-input:disabled,
  table.recruit-grid .cell-select:disabled,
  table.recruit-grid .cell-area:disabled {
    opacity: 1; color: inherit; background: transparent; border-color: transparent;
    cursor: default; resize: none;
  }
  table.recruit-grid .cell-select:disabled {
    appearance: none; -webkit-appearance: none; padding-right: .1rem;
  }
  table.recruit-grid tr:not(.row-editing) .cell-area {
    min-height: 1.55rem; height: 1.55rem; overflow: hidden;
  }
  table.recruit-grid tr.row-editing td { background: #f8fafc; }
  table.recruit-grid tr.row-lead-site:not(.row-editing) td { background: #ecfdf3; }
  table.recruit-grid .cell-input:focus, table.recruit-grid .cell-select:focus, table.recruit-grid .cell-area:focus {
    outline: none; border-color: var(--primary); background: #fff; box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 16%, transparent);
  }
  table.recruit-grid tr.saving td { background: #f0f9ff; }
  table.recruit-grid tr.err td { background: #fef2f2; }
  .recruit-actions { white-space: nowrap; }
  table.recruit-grid th.col-actions,
  table.recruit-grid td.recruit-actions,
  table.recruit-grid td.col-actions {
    width: 2.55rem;
    min-width: 2.55rem !important;
    max-width: 2.7rem !important;
    padding: .12rem .08rem !important;
    text-align: center;
  }
  table.recruit-grid .btn-del {
    padding: .1rem .28rem;
    min-height: 1.45rem;
    font-size: .75rem;
    line-height: 1.1;
  }

  /* 公司列：更紧凑 */
  table.recruit-grid th.col-company,
  table.recruit-grid td.col-company {
    width: 2.6rem; max-width: 2.6rem; min-width: 2.2rem;
  }
  table.recruit-grid td.col-company .company-text,
  table.recruit-grid td.col-company .cell-input,
  table.recruit-grid td.col-company .cell-from-project {
    display: block; max-width: 2.6rem; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
  }
  table.recruit-grid td.col-company .cell-input { padding: .1rem .15rem; }

  /* CRC 列 */
  table.recruit-grid th.col-crc,
  table.recruit-grid td.col-crc {
    width: 4.3rem; max-width: 5.25rem; min-width: 4.2rem;
    padding-left: .15rem !important; padding-right: .15rem !important;
  }
  table.recruit-grid td.col-crc .cell-from-project,
  table.recruit-grid td.col-crc .cell-input {
    display: block; max-width: 100%; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap; font-size: .78rem;
  }

  /* 化疗 / 基因 / 靶病灶：窄列 */
  table.recruit-grid th.col-chemo,
  table.recruit-grid td.col-chemo {
    width: 2.6rem; max-width: 2.8rem; min-width: 2.2rem;
    padding-left: .12rem !important; padding-right: .12rem !important;
  }
  table.recruit-grid th.col-gene,
  table.recruit-grid td.col-gene {
    width: 2.6rem; max-width: 2.8rem; min-width: 2.2rem;
    padding-left: .12rem !important; padding-right: .12rem !important;
  }
  table.recruit-grid th.col-lesion,
  table.recruit-grid td.col-lesion {
    width: 2.8rem; max-width: 3rem; min-width: 2.4rem;
    padding-left: .12rem !important; padding-right: .12rem !important;
  }
  table.recruit-grid td.col-chemo .cell-select,
  table.recruit-grid td.col-gene .cell-select,
  table.recruit-grid td.col-lesion .cell-select,
  table.recruit-grid td.col-chemo .cell-input,
  table.recruit-grid td.col-gene .cell-input,
  table.recruit-grid td.col-lesion .cell-input {
    max-width: 100%; font-size: .72rem; padding: .1rem .1rem;
  }

  table.recruit-grid th.col-stage,
  table.recruit-grid td.col-stage {
    width: 7.2rem; min-width: 7.2rem; max-width: 8.4rem;
  }
  table.recruit-grid td.col-stage {
    background: #eef2ff;
    color: #1e3a8a;
    font-weight: 800;
    font-size: .8rem;
    text-align: center;
    vertical-align: middle;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.25;
    padding: .35rem .28rem;
    border-right: 1px solid #d5deea;
  }
  .recruit-stage-label { word-break: break-word; }
  .recruit-stage-tools {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 2px;
    margin-top: .28rem;
  }
  .recruit-move {
    width: 1.15rem;
    height: 1.15rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    font-size: 11px;
    line-height: 1;
    cursor: pointer;
  }
  .recruit-move:hover { background: #dbeafe; color: #1d4ed8; }
  td.col-num .recruit-row-move { margin-left: 1px; vertical-align: middle; }
  .recruit-phone-stage { margin-bottom: .7rem; }
  .recruit-phone-stage-h {
    margin: 0 0 .35rem;
    padding: .22rem .55rem;
    border-radius: 6px;
    background: #eef2ff;
    color: #1e3a8a;
    font-size: .82rem;
    font-weight: 800;
  }
  table.recruit-grid th.col-mechanism,
  table.recruit-grid td.col-mechanism {
    width: 7.04rem; min-width: 7.04rem; max-width: 8rem;
  }
  table.recruit-grid th.col-regimen,
  table.recruit-grid td.col-regimen {
    width: 9.5rem; min-width: 9.5rem; max-width: 14.63rem;
    overflow: hidden;
  }
  table.recruit-grid th.col-start,
  table.recruit-grid td.col-start {
    width: 2rem; min-width: 1.8rem; max-width: 2.4rem;
    padding-left: .08rem !important; padding-right: .08rem !important;
    overflow: hidden; font-size: .72rem; white-space: nowrap;
  }

  /* 更新日不在「上周一～今天」：整行浅红（不再单独显示更新日期） */
  table.recruit-grid tbody tr.row-updated-stale,
  table.recruit-grid tbody tr:has(td.col-updated-stale) {
    background: #fecaca !important;
  }
  table.recruit-grid td.col-updated.col-updated-stale,
  table.recruit-grid td.col-updated.col-updated-stale .cell-updated-date {
    background: #dc2626 !important;
    color: #fff !important;
    font-weight: 800;
  }
  table.recruit-grid td.col-updated.col-updated-stale .cell-updated-date {
    border-color: #7f1d1d;
    box-shadow: inset 0 0 0 1px #7f1d1d;
  }

  /* 项目列：简称偏长，下拉/文本截断显示，title 看全称 */
  table.recruit-grid th.col-project,
  table.recruit-grid td.col-project {
    width: 10.08rem; min-width: 10.08rem; max-width: 10.08rem;
  }
  table.recruit-grid td.col-project .cell-select,
  table.recruit-grid td.col-project .cell-project-select {
    width: 100%; max-width: 10.08rem;
    min-height: 2rem;
    font-size: 13px;
    line-height: 1.25;
  }
  table.recruit-grid td.col-project .project-text {
    display: block; max-width: 10.08rem; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
    font-size: .78rem;
    line-height: 1.25;
  }
  table.recruit-grid td.col-project .project-text.is-empty { color: #94a3b8; }
  table.recruit-grid .cell-clip {
    display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }

  /* 进度列：只读计算值，居中加粗 */
  table.recruit-grid th.col-progress,
  table.recruit-grid td.col-progress {
    width: 3.2rem; min-width: 3rem; text-align: center;
  }
  table.recruit-grid td.col-progress .progress-text {
    font-weight: 700; color: #0f172a;
  }
  table.recruit-grid td.col-progress .progress-text.is-empty { color: #94a3b8; font-weight: 400; }

  /* 排行前三单位：仅显示一行，悬停 title 看全文 */
  table.recruit-grid th.col-top-sites,
  table.recruit-grid td.col-top-sites {
    min-width: 7rem; max-width: 12rem;
  }
  .top-sites-one-line,
  table.recruit-grid td.col-top-sites .cell-input,
  table.recruit-grid td.col-top-sites .cell-area {
    display: block;
    width: 100%;
    max-width: 12rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.35;
    resize: none;
  }
  .top-sites-one-line {
    cursor: default;
  }

  /* 入组标准：固定两行，点击展开全文 */
  table.recruit-grid th.col-criteria,
  table.recruit-grid td.col-criteria { min-width: 8rem; max-width: 11.2rem; }
  .criteria-preview {
    display: block; overflow: hidden; line-height: 1.35;
    cursor: pointer; white-space: nowrap; text-overflow: ellipsis;
    color: inherit; border-radius: 4px; padding: .1rem .15rem;
  }
  .criteria-preview:hover { background: #f1f5f9; }
  .criteria-preview.is-empty { color: #94a3b8; }
  /* 全文弹层 */
  .criteria-modal-mask {
    display: none; position: fixed; inset: 0; z-index: 80;
    background: rgba(15, 23, 42, .45); align-items: center; justify-content: center;
    padding: 1rem;
  }
  .criteria-modal-mask.open { display: flex; }
  .criteria-modal {
    width: min(560px, 96vw); max-height: 80vh; display: flex; flex-direction: column;
    background: #fff; border-radius: 12px; box-shadow: 0 16px 48px rgba(0,0,0,.18);
    overflow: hidden;
  }
  .criteria-modal-head {
    display: flex; align-items: center; justify-content: space-between; gap: .5rem;
    padding: .7rem 1rem; border-bottom: 1px solid #e2e8f0; font-weight: 700;
  }
  .criteria-modal-body { padding: .85rem 1rem; flex: 1; overflow: auto; }
  .criteria-modal-body textarea {
    width: 100%; min-height: 12rem; resize: vertical; font: inherit; line-height: 1.45;
    border: 1px solid #cbd5e1; border-radius: 8px; padding: .55rem .65rem;
  }
  .criteria-modal-body .criteria-full {
    white-space: pre-wrap; word-break: break-word; line-height: 1.5; margin: 0;
  }
  .criteria-modal-foot {
    display: flex; justify-content: flex-end; gap: .45rem;
    padding: .65rem 1rem; border-top: 1px solid #e2e8f0; background: #f8fafc;
  }

  #recruit-toast {
    position: fixed; right: 1rem; bottom: 1rem; z-index: 90;
    padding: .55rem .9rem; border-radius: 8px; background: #0f172a; color: #fff;
    font-size: .88rem; display: none; max-width: 22rem;
  }
  #recruit-toast.ok { background: #047857; }
  #recruit-toast.err { background: #b91c1c; }

  /* 更新列：仅月-日（窄列，如 7-1） */
  table.recruit-grid th.col-updated,
  table.recruit-grid td.col-updated {
    width: 2.8rem; min-width: 2.6rem; max-width: 3.1rem;
    padding-left: .12rem !important;
    padding-right: .12rem !important;
  }
  table.recruit-grid td.col-updated .cell-updated-date {
    max-width: 2.9rem; min-width: 2.4rem; width: 100%;
    font-size: 13px;
    padding: .1rem .05rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
  }
  /* 入组：对号/叉图标 */
  table.recruit-grid th.col-enrolling,
  table.recruit-grid td.col-enrolling {
    width: 2.4rem; min-width: 2.2rem; max-width: 2.8rem;
    text-align: center; padding-left: .15rem !important; padding-right: .15rem !important;
  }
  /* 入组：绿色对号 / 红色打叉图标 */
  .enroll-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.45rem; height: 1.45rem; border-radius: 999px;
    font-size: 0; line-height: 1; vertical-align: middle;
  }
  .enroll-icon svg { width: .95rem; height: .95rem; display: block; }
  .enroll-icon.enroll-yes {
    background: #16a34a;
    box-shadow: 0 0 0 1px rgba(22,163,74,.25);
  }
  .enroll-icon.enroll-no {
    background: #dc2626;
    box-shadow: 0 0 0 1px rgba(220,38,38,.25);
  }
  select.cell-enrolling {
    width: 2.55rem; min-width: 2.4rem; max-width: 2.7rem;
    padding: .12rem .1rem; text-align: center;
    font-size: 1.05rem; font-weight: 800; border-radius: 999px;
    border: 1px solid #cbd5e1; cursor: pointer;
    appearance: auto;
  }
  select.cell-enrolling.enr-yes {
    color: #fff; background: #16a34a; border-color: #15803d;
  }
  select.cell-enrolling.enr-no {
    color: #fff; background: #dc2626; border-color: #b91c1c;
  }
  select.cell-enrolling option { color: #0f172a; background: #fff; font-weight: 700; }
  /* 项目带入只读字段 */
  .cell-from-project {
    display: block; color: #475569; font-size: .82rem;
    line-height: 1.25; max-width: 100%;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  .cell-from-project.is-empty { color: #94a3b8; }
  /* 入组=否：整行更淡 */
  table.recruit-grid tr.row-enrolling-no td {
    color: #94a3b8 !important;
  }
  table.recruit-grid tr[data-project-status-code="paused"] td {
    background: #f3f4f6 !important;
    color: #9ca3af !important;
  }
  table.recruit-grid tr.row-enrolling-no .cell-input,
  table.recruit-grid tr.row-enrolling-no .cell-select,
  table.recruit-grid tr.row-enrolling-no .cell-area,
  table.recruit-grid tr.row-enrolling-no .company-text,
  table.recruit-grid tr.row-enrolling-no .project-text,
  table.recruit-grid tr.row-enrolling-no .progress-text,
  table.recruit-grid tr.row-enrolling-no .criteria-preview,
  table.recruit-grid tr.row-enrolling-no .top-sites-one-line {
    color: #94a3b8 !important;
    opacity: .92;
  }
  table.recruit-grid tr.row-enrolling-no .enroll-icon.enroll-no {
    opacity: 1; background: #f87171;
  }
  table.recruit-grid tr.row-enrolling-no .cell-from-project {
    color: #94a3b8 !important;
  }

  /* 新增项目弹窗 */
  .add-project-mask {
    display: none; position: fixed; inset: 0; z-index: 85;
    background: rgba(15, 23, 42, .45); align-items: center; justify-content: center;
    padding: 1rem;
  }
  .add-project-mask.open { display: flex; }
  .add-project-modal {
    width: min(640px, 96vw); max-height: 90vh; display: flex; flex-direction: column;
    background: #fff; border-radius: 12px; box-shadow: 0 16px 48px rgba(0,0,0,.18);
    overflow: hidden;
  }
  .add-project-head {
    display: flex; align-items: center; justify-content: space-between; gap: .5rem;
    padding: .75rem 1rem; border-bottom: 1px solid #e2e8f0; font-weight: 700;
  }
  .add-project-body { padding: .9rem 1rem; flex: 1; overflow: auto; }
  .add-project-foot {
    display: flex; justify-content: flex-end; gap: .45rem;
    padding: .65rem 1rem; border-top: 1px solid #e2e8f0; background: #f8fafc;
  }
  .add-field { margin-bottom: .75rem; }
  .add-field > label {
    display: block; font-size: .82rem; font-weight: 600; color: #334155; margin-bottom: .28rem;
  }
  .add-field .hint { font-size: .78rem; color: #64748b; margin-top: .2rem; }
  .add-field input[type="text"], .add-field input[type="number"], .add-field input[type="search"],
  .add-field input[type="date"], .add-field select, .add-field textarea {
    width: 100%; border: 1px solid #cbd5e1; border-radius: 8px; padding: .4rem .55rem; font: inherit;
  }
  .add-field textarea { min-height: 4rem; resize: vertical; }
  .add-inline { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
  .add-inline label { font-weight: 500; font-size: .88rem; display: inline-flex; align-items: center; gap: .25rem; }
  /* 语义色走全局 .chip / .chip-*（app.css） */
  .add-chip { /* 兼容旧 class 名，样式同 .chip-info */ }
  .add-section-title {
    font-size: .9rem; font-weight: 700; color: #0f172a; margin: .4rem 0 .55rem;
    padding-bottom: .3rem; border-bottom: 1px dashed #e2e8f0;
  }
  .add-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
  @media (max-width: 560px) { .add-grid-2 { grid-template-columns: 1fr; } }
  .add-arm-card {
    border: 1px solid #e2e8f0; border-radius: 10px; padding: .65rem .75rem;
    margin-bottom: .55rem; background: #f8fafc;
  }
  .add-arm-card h4 { margin: 0 0 .45rem; font-size: .88rem; color: #0f172a; }
  .add-arm-checks {
    display: flex; flex-wrap: wrap; gap: .35rem .75rem; align-items: center;
  }
  .add-arm-checks label {
    display: inline-flex; align-items: center; gap: .28rem;
    font-size: .86rem; font-weight: 500; cursor: pointer;
  }
  /* 筛选栏：与图例同一行，靠最右 */
  .recruit-filter-form {
    display: flex;
    flex-wrap: nowrap;
    gap: .35rem .4rem;
    align-items: center;
    margin-left: auto;
    flex: 0 1 22rem;
    min-width: 0;
  }
  .recruit-filter-form input[type="search"] {
    flex: 1 1 auto;
    min-width: 7rem;
    width: auto !important;
    border: 1px solid #d8dee4;
    border-radius: 8px;
    padding: .28rem .55rem;
    font-size: .82rem;
    background: #fff;
  }
  .recruit-filter-form .btn {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  /* 癌种标签页 */
  .cancer-tabs { display: flex; flex-wrap: nowrap; align-items: center; gap: .4rem; margin-bottom: .75rem; border-bottom: 1px solid #dbe2ea; overflow-x: auto; }
  .cancer-tabs .col-resize-reset {
    margin: 0 0 -1px .15rem;
    flex: 0 0 auto;
    align-self: center;
  }
  .cancer-tab {
    padding: .5rem 1.1rem; border-radius: 8px 8px 0 0; font-size: .95rem; font-weight: 600;
    color: #64748b; text-decoration: none; background: #f1f5f9;
    border: 1px solid #dbe2ea; border-bottom: none; transition: all .12s;
    margin-bottom: -1px;
  }
  .cancer-tab:hover { background: color-mix(in srgb, var(--primary) 10%, #fff); color: var(--primary-dark, var(--primary)); }
  .cancer-tab.active { background: var(--primary); color: #fff; border-color: var(--primary); }
