
/* --- Unified writing stage: questions replace the reader ------------------ */

#task.writing-mode .file-rail,
#task.writing-mode .file-rail-open,
#task.writing-mode .board-workspace,
#task.writing-mode #documentText {
  display: none;
}

/* The toolbar row stays as the timer strip; the reading-stage pieces hide. */
#task.writing-mode .reader-toolbar {
  min-height: 46px;
  padding: 8px 26px;
}

#task.writing-mode .reader-toolbar > div:not(.timer):not(.role-chip),
#task.writing-mode .copy-ai {
  display: none;
}

/* The rail leaves the grid entirely (display:none), so the questions column
   is the single remaining track. */
#task.writing-mode {
  grid-template-columns: minmax(0, 1fr);
}

/* The questions column fills the width and scrolls internally, so the
   docked chat stays pinned (and draggable) at the bottom as read-only
   reference — same layout language as the reading stage. */
#task.writing-mode .reader .survey-form {
  flex: 1 1 auto;
  margin: 0;
  max-width: none;
  min-height: 0;
  overflow-y: auto;
  padding: 22px 40px 60px;
}

/* Reference-only right panel during writing: no live AI, no editing. */
body.writing-stage .chat-form,
body.writing-stage .prep-prompt-editor {
  display: none;
}

/* --- Condition 6 (REDLINE): framework challenge cards --------------------
   Neutral argument diagnoses: claim, framework defect, document support,
   then participant-owned resolution. */

.attack-button {
  background: #7a1f1f;
}

.attack-button:disabled {
  background: #b98f8f;
}

.attack-cards {
  display: grid;
  gap: 12px;
  margin-top: 10px;
}

.attack-framework-overview {
  background: #f7f2ea;
  border-left: 3px solid #8f3327;
  display: grid;
  gap: 7px;
  padding: 9px 10px;
}

.attack-framework-overview > strong {
  color: #4a3a30;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.attack-framework-overview-list {
  display: grid;
  gap: 5px 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.attack-framework-result {
  color: #5c676d;
  font-size: 10.5px;
  line-height: 1.3;
}

.attack-framework-result-contradiction,
.attack-framework-result-pressure {
  color: #7a352b;
}

.attack-claim-group {
  background: transparent;
  border: 0;
  border-top: 1px solid #d8cbc4;
  padding: 10px 0 4px;
}

.attack-claim-group > .attack-target {
  margin-bottom: 0;
}

.attack-claim-list {
  display: grid;
}

.attack-holds-copy {
  color: #2e6f50;
  font-size: 12px;
  margin: 0;
}

.attack-framework-group {
  background: #fff;
  border: 1px solid #d8cbc4;
}

.attack-framework-summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: 4px 9px;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  list-style: none;
  padding: 10px 12px;
}

.attack-framework-summary::-webkit-details-marker {
  display: none;
}

.attack-framework-summary:focus-visible {
  background: #f7f2ea;
  outline: 1px solid #cdb9a8;
  outline-offset: -1px;
}

.attack-framework-summary::before {
  border-bottom: 4px solid transparent;
  border-left: 6px solid #8a7568;
  border-top: 4px solid transparent;
  content: "";
  height: 0;
  transform-origin: 2px 4px;
  transition: transform 140ms ease;
  width: 0;
}

.attack-framework-group[open] > .attack-framework-summary::before {
  transform: rotate(90deg);
}

.attack-framework-label {
  color: #8f3327;
  font-size: 12px;
  font-weight: 850;
}

.attack-framework-meta {
  color: #6e767b;
  font-size: 10.5px;
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
}

.attack-framework-list {
  border-top: 1px solid #e5ddd8;
  padding: 0 12px 3px;
}

.attack-history {
  border-top: 1px solid #ddd4ca;
  color: #667085;
  margin-top: 12px;
  padding-top: 8px;
}

.attack-history > summary {
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
}

.attack-history-list {
  margin-top: 8px;
  opacity: 0.82;
}

.attack-card {
  background: transparent;
  border: 0;
  border-top: 1px solid #dfd5cf;
  padding: 14px 0 4px;
}

.attack-framework-list .attack-card:first-child {
  border-top: 0;
}

.attack-card.attack-patched {
  opacity: 0.92;
}

.attack-card.attack-conceded {
  opacity: 0.92;
}

.attack-card-head {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-start;
  margin-bottom: 8px;
}

.attack-hierarchy-label {
  color: #4a3a30;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.attack-flavor {
  color: #a8402f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
}

.attack-flavor-silence {
  color: #8a6d3b;
}

.attack-impact {
  border: 1px solid #91b8a3;
  color: #2f6b50;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.02em;
  padding: 2px 5px;
}

.attack-status {
  color: #5c6b73;
  font-size: 11px;
  font-weight: 700;
  margin-left: auto;
  white-space: nowrap;
}

.attack-patched .attack-status {
  color: #2e7d4f;
}

.attack-target {
  background: #fbfaf6;
  border: 0;
  border-left: 3px solid #c9a89d;
  color: #342c28;
  cursor: pointer;
  display: block;
  font-size: 12.5px;
  margin: 0 0 10px;
  padding: 7px 9px;
  text-align: left;
  width: 100%;
}

.attack-target:hover {
  border-left-color: #a8402f;
}

.attack-target-empty {
  cursor: default;
}

.attack-target-label {
  color: #7a6a62;
  display: block;
  font-family: Optima, "Segoe UI", sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  margin-bottom: 2px;
  text-transform: uppercase;
}

.attack-target-quote {
  display: block;
  line-height: 1.4;
}

.attack-break {
  margin: 0;
  padding: 0;
}

.attack-break p {
  font-size: 13px;
  font-style: normal;
  line-height: 1.45;
  margin: 0;
}

.attack-lever {
  font-size: 12px;
  font-style: normal;
  margin: 6px 0 0;
}

.attack-clues {
  background: #fff8df;
  border-left: 3px solid #b7791f;
  margin-top: 11px;
  padding: 9px 10px 7px;
}

.attack-clues-heading {
  color: #76510d;
  display: block;
  font-size: 11px;
  letter-spacing: 0.01em;
  margin-bottom: 4px;
}

.attack-clue-list {
  display: grid;
}

.attack-clue {
  appearance: none;
  background: transparent;
  border: 0;
  border-top: 1px solid #ead7a4;
  color: #3f3728;
  display: grid;
  font: inherit;
  gap: 4px;
  padding: 8px 2px;
  text-align: left;
  width: 100%;
}

button.attack-clue {
  cursor: pointer;
}

button.attack-clue:hover,
button.attack-clue:focus-visible {
  background: #ffefbd;
  outline: 0;
}

.attack-clue blockquote {
  font-size: 12px;
  line-height: 1.42;
  margin: 0;
}

.attack-clue-source {
  color: #8a651d;
  font-size: 10.5px;
  font-weight: 800;
}

.attack-resolution-note {
  color: #8a6d3b;
  font-size: 12px;
  margin: 8px 0 0;
}

.attack-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.attack-action {
  background: #fff;
  border: 1px solid #c8b8ae;
  color: #4a3a30;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  padding: 5px 10px;
}

.attack-action:hover:not(:disabled) {
  border-color: #a8402f;
  color: #a8402f;
}

.attack-action:disabled {
  cursor: default;
  opacity: 0.5;
}

.attack-retest {
  border-color: #2e7d4f;
  color: #2e7d4f;
}

.attack-retest:hover:not(:disabled) {
  background: #eef7f0;
  border-color: #2e7d4f;
  color: #2e7d4f;
}

.attack-reference {
  margin-top: 8px;
}

.attack-holds-badge {
  color: #2e7d4f;
  font-weight: 800;
}

.attack-flavor-wrap {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
