/* ============================================
   文字数カウンター
   ============================================ */

/* --- テキストエリア --- */
.charCounter__textarea {
  min-height: 200px;
  resize: vertical;
  line-height: 1.8;
}

/* --- カウント結果グリッド --- */
.charCounter__resultGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

.charCounter__resultCard {
  background-color: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  padding: 16px;
  text-align: center;
}

.charCounter__resultCard:first-child {
  grid-column: 1 / -1;
  background-color: #ecfdf5;
  border-color: #6ee7b7;
}

.charCounter__resultLabel {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #4b5563;
  margin-bottom: 4px;
}

.charCounter__resultValue {
  font-size: 1.75rem;
  font-weight: 700;
  color: #064e3b;
  font-variant-numeric: tabular-nums;
}

.charCounter__resultCard:first-child .charCounter__resultValue {
  font-size: 2.25rem;
}

/* --- アクションボタン --- */
.charCounter__actions {
  display: flex;
  gap: 12px;
  margin-bottom: 32px;
}

/* --- SEO文字数チェッカー --- */
.charCounter__seoSection {
  margin-top: 8px;
  padding-top: 32px;
  border-top: 1px solid #e5e7eb;
}

.charCounter__seoTitle {
  font-size: 1.125rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 8px;
}

.charCounter__seoDescription {
  font-size: 0.875rem;
  color: #6b7280;
  margin-bottom: 24px;
}

.charCounter__seoItem {
  margin-bottom: 20px;
}

.charCounter__seoRecommend {
  font-size: 0.75rem;
  font-weight: 400;
  color: #9ca3af;
  margin-left: 4px;
}

.charCounter__seoStatus {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 6px;
}

.charCounter__seoCount {
  font-size: 0.8125rem;
  color: #6b7280;
  font-variant-numeric: tabular-nums;
}

.charCounter__seoBadge {
  font-size: 0.75rem;
  font-weight: 700;
  padding: 2px 10px;
  border-radius: 4px;
}

.charCounter__seoBadge_state_ok {
  background-color: #d1fae5;
  color: #065f46;
}

.charCounter__seoBadge_state_warning {
  background-color: #fef3c7;
  color: #92400e;
}

.charCounter__seoBadge_state_ng {
  background-color: #fee2e2;
  color: #991b1b;
}

/* --- Responsive (Tablet) --- */
@media (min-width: 640px) {
  .charCounter__resultGrid {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }

  .charCounter__resultCard:first-child {
    grid-column: 1 / -1;
  }

  .charCounter__resultValue {
    font-size: 2rem;
  }

  .charCounter__resultCard:first-child .charCounter__resultValue {
    font-size: 2.5rem;
  }
}
