.word-counter-app {
  --wc-gap: 1rem;
}

.word-counter-workspace,
.word-counter-settings-grid {
  display: grid;
  gap: var(--wc-gap);
  grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr);
  align-items: start;
}

.word-counter-editor,
.word-counter-results-panel,
.word-counter-subsection {
  min-width: 0;
}

.word-counter-editor > label,
.word-counter-subsection > label,
#wc-copy-fallback-wrap > label,
.word-counter-rate-grid label {
  display: block;
  margin-top: .75rem;
  margin-bottom: .35rem;
  font-weight: 700;
}

#wc-text {
  box-sizing: border-box;
  width: 100%;
  min-height: 18rem;
  resize: vertical;
  font: inherit;
  font-size: 1rem;
  line-height: 1.6;
  white-space: pre-wrap;
  unicode-bidi: plaintext;
}

.word-counter-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: .8rem;
}

.word-counter-actions .button {
  min-height: 2.75rem;
}

.word-counter-clear-row {
  margin-top: .75rem;
  padding: .85rem;
  border: 1px solid var(--border);
  border-radius: .5rem;
  background: var(--surface);
}

.word-counter-clear-row p {
  margin-top: 0;
}

.word-counter-primary-results,
.word-counter-detail-results,
.word-counter-time-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin: 0;
}

.word-counter-primary-results > div,
.word-counter-detail-results > div,
.word-counter-time-results > div {
  min-width: 0;
  padding: .8rem;
  border: 1px solid var(--border);
  border-radius: .5rem;
  background: var(--surface);
}

.word-counter-primary-results dt,
.word-counter-detail-results dt,
.word-counter-time-results dt {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.word-counter-primary-results dd,
.word-counter-detail-results dd,
.word-counter-time-results dd {
  margin: .3rem 0 0;
  font-size: clamp(1.25rem, 4vw, 1.8rem);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.word-counter-settings-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.word-counter-subsection {
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: .5rem;
}

.word-counter-subsection h3 {
  margin-top: 0;
}

.word-counter-rate-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.word-counter-rate-grid .small {
  display: block;
  margin-top: .3rem;
}

.field-error,
#wc-error {
  color: var(--error, var(--fg));
  font-weight: 700;
}

#wc-limit-status,
#wc-status {
  overflow-wrap: anywhere;
}

#wc-copy-fallback {
  box-sizing: border-box;
  width: 100%;
  resize: vertical;
  font-size: 1rem;
  line-height: 1.5;
}

.word-counter-details {
  margin-top: 1rem;
}

.word-counter-details > summary {
  min-height: 2.75rem;
  cursor: pointer;
  font-weight: 700;
}

.word-counter-details[open] > summary {
  margin-bottom: .75rem;
}

@media (max-width: 760px) {
  .word-counter-workspace,
  .word-counter-settings-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .word-counter-results-panel {
    order: 2;
  }
}

@media (max-width: 390px) {
  .word-counter-rate-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .word-counter-primary-results,
  .word-counter-detail-results,
  .word-counter-time-results {
    gap: .5rem;
  }

  .word-counter-primary-results > div,
  .word-counter-detail-results > div,
  .word-counter-time-results > div {
    padding: .65rem;
  }
}

@media (forced-colors: active) {
  .word-counter-clear-row,
  .word-counter-primary-results > div,
  .word-counter-detail-results > div,
  .word-counter-time-results > div,
  .word-counter-subsection {
    border-color: CanvasText;
  }
}
