:root {
  --tc-bg: #f7fafc;
  --tc-panel: #ffffff;
  --tc-muted: #6b7280;
  --tc-text: #0f172a;
  --tc-accent: #2563eb;
  --tc-add-bg: #dcfce7;
  --tc-add-border: rgba(16, 185, 129, 0.25);
  --tc-rem-bg: #fee2e2;
  --tc-rem-border: rgba(244, 63, 94, 0.2);
  --tc-card-border: #e6eef8;
}

.text-compare-page {
  min-height: 100%;
  background: var(--tc-bg);
  color: var(--tc-text);
  padding: 1.25rem 1rem 2.5rem;
}

.text-compare-page .container {
  max-width: 1100px;
  margin: 0 auto;
}

.text-compare-page .page-intro h1 {
  font-size: 20px;
  margin: 0 0 14px;
}

.text-compare-page .controls {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
}

.text-compare-page textarea {
  width: 100%;
  height: 220px;
  padding: 12px;
  background: var(--tc-panel);
  border: 1px solid var(--tc-card-border);
  color: var(--tc-text);
  resize: vertical;
  border-radius: 8px;
  font: inherit;
}

.text-compare-page .grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.text-compare-page .panel {
  background: var(--tc-panel);
  padding: 12px;
  border-radius: 10px;
  border: 1px solid var(--tc-card-border);
}

.text-compare-page label {
  display: block;
  margin-bottom: 6px;
  color: var(--tc-muted);
  font-size: 13px;
}

.text-compare-page button {
  background: var(--tc-accent);
  border: none;
  padding: 8px 12px;
  border-radius: 8px;
  color: #fff;
  font-weight: 600;
  cursor: pointer;
}

.text-compare-page button.secondary {
  background: #f1f5f9;
  color: var(--tc-text);
  border: 1px solid var(--tc-card-border);
}

.text-compare-page .options {
  display: flex;
  gap: 8px;
  align-items: center;
}

.text-compare-page .result-wrap {
  display: flex;
  gap: 12px;
  margin-top: 12px;
}

.text-compare-page .result {
  flex: 1;
  padding: 12px;
  background: var(--tc-panel);
  border-radius: 8px;
  border: 1px solid var(--tc-card-border);
}

.text-compare-page .side {
  overflow: auto;
  max-height: 520px;
  padding: 8px;
}

.text-compare-page pre {
  margin: 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", monospace;
  font-size: 13px;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--tc-text);
}

.text-compare-page .tok {
  padding: 0 4px;
  border-radius: 4px;
}

.text-compare-page .tok.add {
  background: var(--tc-add-bg);
  border: 1px solid var(--tc-add-border);
}

.text-compare-page .tok.rem {
  background: var(--tc-rem-bg);
  border: 1px solid var(--tc-rem-border);
}

.text-compare-page .tok.common {
  background: transparent;
}

.text-compare-page .legend {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 8px;
  color: var(--tc-muted);
  font-size: 13px;
}

.text-compare-page .legend-note {
  margin-left: auto;
  color: var(--tc-muted);
}

.text-compare-page .legend .pill {
  display: inline-block;
  padding: 6px 8px;
  border-radius: 6px;
  font-size: 12px;
}

.text-compare-page .pill.add {
  background: var(--tc-add-bg);
  border: 1px solid var(--tc-add-border);
}

.text-compare-page .pill.rem {
  background: var(--tc-rem-bg);
  border: 1px solid var(--tc-rem-border);
}

.text-compare-page .controls .granularity {
  background: transparent;
  border: 1px solid var(--tc-card-border);
  padding: 8px;
  border-radius: 8px;
  color: var(--tc-text);
}

.text-compare-page .footer2 {
  margin-bottom: 12px;
  margin-top: 12px;
  color: var(--tc-muted);
  font-size: 13px;
}

.text-compare-page .intro {
  margin: 12px 0;
  padding: 12px;
  background: #ffffff;
  border-radius: 8px;
  border: 1px solid var(--tc-card-border);
  color: var(--tc-text);
}

.text-compare-page .intro p {
  margin: 6px 0;
  color: var(--tc-muted);
}

@media (max-width: 900px) {
  .text-compare-page .grid {
    grid-template-columns: 1fr;
  }

  .text-compare-page .result-wrap {
    flex-direction: column;
  }
}

.shell-main.text-compare-page-shell {
  margin: 0;
  padding: 0;
  border: none;
  box-shadow: none;
  border-radius: 0;
  background: transparent;
}

body[data-shell-active] .shell-main.text-compare-page-shell {
  padding: 0;
}

.shell-main.text-compare-page-shell .tool-page-header,
.shell-main.text-compare-page-shell .tool-lead {
  display: none;
}
