/* json-splitter — generated by scripts/tools-v2/build-tool-css.js from
   views/v1-backup/tools-json-splitter.ejs. DO NOT EDIT BY HAND: npm run test:tools-page-v2
   regenerates it and fails if this file has drifted.

   The shared vocabulary (.btn-primary, .form-input, .tool-card, .badge-*,
   .toast-*, #map, headings) is NOT here — public/css/tools-page-v2.css
   declares it once for every tool page. What is left is this tool's own,
   with its colour literals resolved to theme tokens and every selector
   scoped to the tool body so nothing reaches the shared header. */

.tpv2-body .CodeMirror {
  border: 1px solid var(--border-color);
  border-radius: 0.375rem;
  font-size: 14px;
  font-family: 'Consolas', 'Monaco', 'Lucida Console', monospace;
  background-color: var(--bg-primary);
  color: var(--text-primary);
  transition: border-color 0.3s, background-color 0.3s, color 0.3s;
}

.tpv2-body .CodeMirror-focused {
  border-color: var(--sk-info);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sk-info) 10%, transparent);
}

.tpv2-body #previewContainer::-webkit-scrollbar {
  width: 8px;
}

.tpv2-body #previewContainer::-webkit-scrollbar-track {
  background: var(--bg-primary);
  border-radius: 4px;
}

.tpv2-body #previewContainer::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 4px;
}

.tpv2-body #previewContainer::-webkit-scrollbar-thumb:hover {
  background: var(--text-muted);
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.tpv2-body #splitPreview,
.tpv2-body #fileList {
  animation: fadeIn 0.3s ease-out;
}

.tpv2-body #filesContainer {
  max-height: 320px; /* 20rem equivalent */
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) var(--bg-primary);
}

.tpv2-body #filesContainer::-webkit-scrollbar {
  width: 8px;
}

.tpv2-body #filesContainer::-webkit-scrollbar-track {
  background: var(--bg-primary);
  border-radius: 4px;
}

.tpv2-body #filesContainer::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 4px;
}

.tpv2-body #filesContainer::-webkit-scrollbar-thumb:hover {
  background: var(--text-muted);
}

.tpv2-body #filesContainer > div {
  margin-bottom: 0.75rem;
}

.tpv2-body #filesContainer > div:last-child {
  margin-bottom: 0;
}

.tpv2-body #filesContainer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(to bottom, rgba(0,0,0,0.1), transparent);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.tpv2-body #filesContainer:hover::before {
  opacity: 1;
}

.tpv2-body #filesContainer {
  position: relative;
  box-shadow: inset 0 -4px 8px -4px rgba(0, 0, 0, 0.1);
}
