.keyword-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: var(--space-4);
}

.keyword-card-head p {
  margin-top: var(--space-2);
  color: var(--muted);
  font-size: 12px;
}

/* 소스가 늘면서 탭 버튼이 카드 폭을 넘겼다(2026-08-01) — 소스·정렬 두 개의 드롭다운으로 교체.
   좁아지면 세로로 쌓이도록 각 라벨에 최소 폭만 준다. */
.keyword-controls {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding-top: var(--space-3);
}

.keyword-controls label {
  flex: 1 1 140px;
  min-width: 0;
  display: grid;
  gap: var(--space-1);
}

.keyword-controls span {
  color: var(--faint);
  font-size: 11px;
  font-weight: 650;
}

.keyword-controls select {
  width: 100%;
  min-height: 32px;
  font-size: 12px;
}

/* 전체 후보는 최대 500개라 카드가 끝없이 길어진다 — 목록만 스크롤시킨다. */
.keyword-pool {
  margin-top: var(--space-4);
}

.keyword-rank-list.is-scrollable {
  max-height: 520px;
  overflow-y: auto;
}

.source-tabs {
  display: flex;
  flex-wrap: wrap;
  padding-top: var(--space-2);
}

.source-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 var(--space-2);
  font-size: 12px;
  font-weight: 650;
  white-space: nowrap;
}

.keyword-rank-list {
  display: grid;
  margin-top: var(--space-3);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

/* 카드 3장이 나란히 서면 카드 안쪽 폭이 ~365px라, 최소폭을 120/180px로 잡아두면 합이 넘쳐
   "정보" 칸 글자가 잘린다(2026-08-01, 근거 문구에 주제 적합도가 붙으며 드러남). 최소폭을 0으로
   두고 비율로만 나눠 카드 폭에 맞춰 줄어들게 한다. */
.keyword-list-head,
.keyword-row {
  grid-template-columns: 36px 24px minmax(0, 0.9fr) minmax(0, 1.6fr);
}

.keyword-list-head {
  display: grid;
  align-items: center;
  gap: var(--space-2);
  font-size: 11px;
  font-weight: 650;
}

.keyword-row,
.compare-item,
.recommend-row,
.table-row,
.published-row,
.comparison-row,
.benchmark-post-row,
.benchmark-compare-row,
.detail-keyword-row {
  display: grid;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
}

.table-row {
  border-bottom: 1px solid var(--line);
}

.keyword-row {
  width: 100%;
  color: var(--text);
  text-align: left;
}

.keyword-row > b {
  color: var(--muted);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.keyword-row > .icon {
  font-size: var(--icon-size);
}

.keyword-row > strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.keyword-row > small {
  min-width: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.table-row {
  border: 1px solid var(--line);
  background: var(--surface);
}

.recommend-head,
.published-head,
.comparison-head,
.benchmark-post-head,
.benchmark-compare-head {
  display: grid;
  align-items: center;
  gap: var(--space-2);
  font-size: 12px;
  font-weight: 750;
}

.recommend-head,
.recommend-row {
  grid-template-columns: minmax(84px, 0.7fr) minmax(220px, 2fr) minmax(180px, 1.5fr) minmax(108px, 0.8fr) 64px 88px 32px;
  column-gap: var(--space-4);
}

.recommend-row {
  padding-block: var(--space-3);
}

.recommend-row > span,
.recommend-head > span {
  min-width: 0;
}

.recommend-type,
.recommend-timing {
  color: var(--muted);
  font-size: 11px;
}

.recommend-title-cell strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-height: 1.4;
}

.recommend-reason {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.recommend-timing {
  line-height: 1.4;
}

.recommend-source-cell,
.recommend-schedule-cell,
.recommend-dismiss-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

.recommend-schedule-cell .mini-button {
  width: 100%;
  padding-inline: var(--space-1);
  white-space: nowrap;
}

.published-head,
.published-row {
  /* 2026-08-06: 「PostScore | 본문 | 검색」에서 본문 열을 뺐다 — 콘텐츠 품질이 곧 본문완결성이라
     앞 두 열이 같은 숫자가 됐다. 긴 헤더는 한 줄로 읽히도록 고정 열의 폭을 확보한다. */
  grid-template-columns: 112px 64px 104px 84px minmax(200px, 1.5fr) 88px minmax(150px, 1.1fr) 96px 52px 52px 44px;
}

.published-head > span {
  white-space: nowrap;
}

.published-head > :nth-child(1),
.published-head > :nth-child(2),
.published-head > :nth-child(3),
.published-head > :nth-child(4),
.published-head > :nth-child(6),
.published-head > :nth-child(8),
.published-head > :nth-child(9),
.published-head > :nth-child(10),
.published-row > :nth-child(1),
.published-row > :nth-child(2),
.published-row > :nth-child(3),
.published-row > :nth-child(4),
.published-row > :nth-child(6),
.published-row > :nth-child(8),
.published-row > :nth-child(9),
.published-row > :nth-child(10) {
  justify-self: center;
  text-align: center;
}

.published-table.content-item-list {
  overflow: visible;
}

.published-table .published-head {
  position: sticky;
  top: 72px;
  z-index: 8;
  background: var(--surface);
}

.post-topic-cell { overflow-wrap: anywhere; }

.post-title-link {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.post-topic-pending { color: var(--muted); }

.post-total-score {
  font-family: var(--dashboard-score-actual-font);
  font-size: 34px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

.post-total-score.red { color: var(--red); }
.post-total-score.orange { color: var(--orange); }
.post-total-score.yellow { color: var(--yellow); }
.post-total-score.green { color: var(--green); }

.post-subscore-value,
.post-reaction-value {
  font-family: var(--dashboard-score-reference-font);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  text-align: center;
  white-space: nowrap;
}

.post-reaction-value {
  color: var(--muted);
}

/* 입력칸 아래 붙는 짧은 설명. 모달 안팎에서 같은 역할이라 한 규칙으로 묶는다(2026-08-03). */
.modal-help-text,
.field-hint { color: var(--muted); font-size: 11px; margin-top: var(--space-1); display: block; }

/* 상한을 넘겨 뒤엣것이 버려지는 상태 — 경고가 아니라 주의라서 주황을 쓴다(점수 하락 표시와 같은 결). */
.field-hint.is-over { color: var(--color-on-warm-soft); }
.keyword-correct-link {
  border: 0; background: transparent; color: var(--muted);
  font-size: 11px; text-decoration: underline; white-space: nowrap; padding: 0;
}
.keyword-correct-link:hover { color: var(--text); }
.keyword-remove-correction { color: #c0392b; }
.keyword-remove-correction:hover { opacity: 0.75; }
.keyword-add-button { margin-top: var(--space-3); width: 100%; }
.keyword-remove-correction .icon { font-size: 16px; }

.table-row {
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.keyword-tools input,
.control-row select {
  flex: 1 1 auto;
}

.compare-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}

.compare-item {
  grid-template-columns: auto auto auto;
}

.quality-workspace {
  grid-template-columns: minmax(480px, 1.5fr) minmax(340px, 0.9fr) minmax(240px, 0.52fr);
  align-items: start;
}

.quality-editor-panel textarea {
  min-height: 680px;
}

.quality-analysis-panel,
.quality-check-rail {
  align-content: start;
}

.quality-score-estimates {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.quality-analysis-section {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--line);
}

.quality-analysis-section > h3 {
  margin: 0;
  font-size: var(--type-component-title-size);
}

.quality-check-rail {
  position: sticky;
  top: calc(var(--topbar-height, 72px) + var(--space-4));
}

@media (max-width: 1480px) {
  .quality-workspace {
    grid-template-columns: minmax(460px, 1.25fr) minmax(340px, 0.75fr);
  }

  .quality-check-rail {
    position: static;
    grid-column: 1 / -1;
  }

  .quality-check-rail > .metric-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
