/* AI 레드티밍 운영 화면 (T25-73 교전 규칙, T25-61 반복 실행, T25-66 공격 세트, T25-64 정책 초안·재생): one card layout for
   redteam-engagement.js, redteam-recurrence.js, redteam-attack-sets.js and redteam-policy-draft.js. The shell's tokens only;
   IDs and words wrap and never take the page's width. */
.rto-page{display:flex;flex-direction:column;gap:var(--ds-space-4);color:var(--ds-text);font-size:var(--ds-fs-sm)}
.rto-card{min-width:0;padding:var(--ds-space-4);border:1px solid var(--ds-line);border-radius:var(--ds-radius);background:var(--ds-surface)}
.rto-card h3{margin:0 0 var(--ds-space-3);font-size:var(--ds-fs-sm);font-weight:650}
.rto-card h3 + h3{margin-top:var(--ds-space-4)}
.rto-sub,.rto-empty{color:var(--ds-text-3);font-size:var(--ds-fs-xs)}
.rto-empty{margin:0}
.rto-state{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--ds-space-3);margin-bottom:var(--ds-space-3)}
.rto-state[data-state="halting"] b,.rto-state[data-state="halted"] b,.rto-state[data-state="stopped"] b{color:var(--ds-danger)}
.rto-kv{display:grid;grid-template-columns:minmax(120px,max-content) minmax(0,1fr);gap:var(--ds-space-2) var(--ds-space-4);margin:0}
.rto-kv dt{color:var(--ds-text-3);font-size:var(--ds-fs-xs)}
.rto-kv dd{min-width:0;margin:0;overflow-wrap:anywhere}
.rto-kv code,.rto-sub code,.rto-list code{font-family:var(--ds-font-mono);font-size:var(--ds-fs-xs);overflow-wrap:anywhere}
.rto-form{display:flex;flex-direction:column;gap:var(--ds-space-3)}
.rto-field{display:grid;gap:var(--ds-space-1);margin:0;color:var(--ds-text-3);font-size:var(--ds-fs-xs)}
.rto-field .lx-in{max-width:420px;margin:0}
.rto-field-inline{display:inline-flex;align-items:center;gap:var(--ds-space-2);margin:0 var(--ds-space-4) var(--ds-space-2) 0;color:var(--ds-text-3);font-size:var(--ds-fs-xs)}
.rto-field-inline .lx-in{width:120px;margin:0}
.rto-set{display:flex;flex-wrap:wrap;gap:var(--ds-space-1) var(--ds-space-4);margin:0;padding:var(--ds-space-3);border:1px solid var(--ds-line);border-radius:var(--ds-radius)}
.rto-set legend{padding:0 var(--ds-space-1);color:var(--ds-text-3);font-size:var(--ds-fs-xs)}
.rto-check{display:inline-flex;align-items:center;gap:var(--ds-space-2);min-height:28px}
.rto-approve{font-weight:600}
.rto-form > .lx-btn{align-self:flex-start;margin:0}
.rto-acts,.rto-signals{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-2);margin-top:var(--ds-space-2)}
.rto-signals .rto-sub{flex-basis:100%}
.rto-halts,.rto-list{display:flex;flex-direction:column;gap:var(--ds-space-2);margin:0;padding:0;list-style:none}
.rto-halt,.rto-row{min-width:0;padding:var(--ds-space-3);border:1px solid var(--ds-line);border-radius:var(--ds-radius)}
.rto-halt[data-state="halting"],.rto-halt[data-state="halted"]{border-color:var(--ds-danger)}
.rto-halt-head,.rto-row-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--ds-space-2)}
.rto-halt p,.rto-row p{margin:var(--ds-space-1) 0 0}
.rto-row[aria-current="true"]{border-color:var(--ds-accent)}
.rto-table{width:100%;border-collapse:collapse;font-size:var(--ds-fs-xs)}
.rto-table th,.rto-table td{padding:var(--ds-space-1) var(--ds-space-2);border-bottom:1px solid var(--ds-line);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.rto-table th{color:var(--ds-text-3);font-weight:500}
.rto-upload{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--ds-space-3)}
.rto-counts{display:flex;flex-wrap:wrap;gap:var(--ds-space-3)}
@media (max-width:720px){.rto-kv{grid-template-columns:minmax(0,1fr)}}
.rto-steps{list-style:none;margin:var(--ds-space-2) 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--ds-space-1) var(--ds-space-3)}
/* A card's readiness note stands apart from the guidance line under it. */
.rto-card>.lx-note[data-testid$="-readiness"]{margin-bottom:var(--sp-3)}
