/* =============================================================================
   TNAADO Tool Page System — v20260512e
   -----------------------------------------------------------------------------
   Authoritative stylesheet for all 196 tool subpages.

   Scope: any page with <body class="tool-page">.
   Theme: LIGHT (utility-focused) with TNAADO brand accents (Ferrari red, Fraunces
          italics for hero/result, IBM Plex for body, JetBrains Mono for labels).
   Out of scope: /tools/ landing page (stays dark — its own inline CSS).

   Architecture:
     1. Page tokens (.tool-page CSS custom properties)
     2. Resets / base typography
     3. Breadcrumb bar (top of page)
     4. Hero
     5. Layout grid (form | result, with related-sidebar below)
     6. Panels (form, result, related)
     7. Form components (field/label/input/select/textarea/button)
     8. Result components (single, grid, table)
     9. Related-tools sidebar
    10. Responsive breakpoints (≥1024 desktop, 768-1023 tablet, <768 mobile)
    11. Utilities + ad/copy-notification helpers
    12. Legacy fallbacks (calculator-result-table, etc.)
   =============================================================================
*/

/* ---------- 1. Page tokens (page-local, do not pollute global scope) ------- */
.tool-page {
  --tool-bg:            #ffffff;
  --tool-surface:       #fafafa;
  --tool-surface-2:     #f4f4f5;
  --tool-text:          #111827;
  --tool-text-mute:     #6b7280;
  --tool-text-soft:     #4b5563;
  --tool-border:        rgba(17, 24, 39, 0.10);
  --tool-border-strong: rgba(17, 24, 39, 0.18);
  --tool-accent:        #c8102e;
  --tool-accent-deep:   #8a0a1f;
  --tool-accent-tint:   rgba(200, 16, 46, 0.08);
  --tool-success:       #15803d;
  --tool-warn:          #b45309;
  --tool-radius:        6px;
  --tool-radius-sm:     4px;
  --tool-radius-lg:     10px;
  --tool-shadow:        0 1px 2px rgba(17, 24, 39, 0.04),
                        0 4px 12px rgba(17, 24, 39, 0.04);
  --tool-shadow-hover:  0 1px 2px rgba(17, 24, 39, 0.06),
                        0 8px 24px rgba(17, 24, 39, 0.08);

  --font-display: 'Fraunces', Georgia, serif;
  --font-body:    'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* ---------- 2. Base ------------------------------------------------------- */
.tool-page,
body.tool-page {
  background: var(--tool-bg);
  color: var(--tool-text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.tool-page *,
.tool-page *::before,
.tool-page *::after {
  box-sizing: border-box;
}

.tool-page a {
  color: var(--tool-accent);
  text-decoration: none;
  transition: color 0.15s ease;
}
.tool-page a:hover { color: var(--tool-accent-deep); text-decoration: underline; }

.tool-page h1, .tool-page h2, .tool-page h3, .tool-page h4 {
  margin: 0;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--tool-text);
}

.tool-page p { margin: 0; }

/* Skip link helper (a11y) */
.tool-page .visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* ---------- 3. Breadcrumb bar -------------------------------------------- */
.tool-page nav.tnaado-breadcrumb-bar,
.tool-page .tool-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 18px 32px 8px;
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tool-text-mute);
}
.tool-page nav.tnaado-breadcrumb-bar a,
.tool-page .tool-breadcrumb a {
  color: var(--tool-text-mute);
  text-decoration: none;
}
.tool-page nav.tnaado-breadcrumb-bar a:hover,
.tool-page .tool-breadcrumb a:hover {
  color: var(--tool-accent);
  text-decoration: none;
}

/* ---------- 4. Main container ------------------------------------------- */
.tool-main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 32px 96px;
}

/* ---------- 4b. Hero ---------------------------------------------------- */
.tool-hero {
  padding: 32px 0 40px;
  border-bottom: 1px solid var(--tool-border);
  margin-bottom: 40px;
}
.tool-hero__eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tool-accent);
  margin: 0 0 16px;
}
.tool-hero__headline {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2rem, 3.2vw + 1rem, 3.25rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--tool-text);
  margin: 0 0 14px;
}
.tool-hero__headline em {
  font-style: italic;
  font-weight: 400;
  color: var(--tool-accent);
}
.tool-hero__subtitle {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--tool-text-soft);
  max-width: 64ch;
  margin: 0;
}
.tool-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 18px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tool-text-mute);
}

/* ---------- 5. Layout grid --------------------------------------------- */
.tool-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  grid-template-areas:
    "form result"
    "related related";
  gap: 24px;
  align-items: start;
}

.tool-form-panel    { grid-area: form; }
.tool-result-panel  { grid-area: result; position: sticky; top: 24px; }
.tool-related       { grid-area: related; }

/* ---------- 6. Panels (cards) ----------------------------------------- */
.tool-form-panel,
.tool-display-panel,
.tool-result-panel,
.tool-related {
  background: var(--tool-bg);
  border: 1px solid var(--tool-border);
  border-radius: var(--tool-radius);
  box-shadow: var(--tool-shadow);
  padding: 28px 28px 24px;
}

/* Display-only panel (no form) — used by tools that show auto-detected data
   like my-ip.html. Sits in the .tool-layout's "form" grid area. */
.tool-display-panel { grid-area: form; }

.tool-panel__heading {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tool-text-mute);
  margin: 0 0 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--tool-border);
}

.tool-panel__heading--accent {
  color: var(--tool-accent);
}

/* ---------- 7. Form components --------------------------------------- */
.tool-fieldset {
  border: 0;
  margin: 0 0 20px;
  padding: 0;
}
.tool-fieldset > legend {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--tool-accent);
  padding: 0;
  margin: 0 0 14px;
}

.tool-field {
  margin: 0 0 18px;
}
.tool-field:last-child { margin-bottom: 0; }

.tool-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 0 0 18px;
}
@media (max-width: 540px) {
  .tool-field-row { grid-template-columns: 1fr; }
}

.tool-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--tool-accent);
  margin: 0 0 8px;
}
.tool-label--neutral {
  color: var(--tool-text-mute);
}

.tool-input,
.tool-select,
.tool-textarea {
  width: 100%;
  padding: 12px 14px;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.4;
  color: var(--tool-text);
  background: var(--tool-bg);
  border: 1px solid var(--tool-border-strong);
  border-radius: var(--tool-radius);
  box-shadow: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.tool-textarea {
  min-height: 200px;
  resize: vertical;
  font-family: var(--font-body);
  line-height: 1.55;
}
.tool-textarea--mono {
  font-family: var(--font-mono);
  font-size: 14px;
}

.tool-input:focus,
.tool-select:focus,
.tool-textarea:focus {
  outline: none;
  border-color: var(--tool-accent);
  box-shadow: 0 0 0 3px var(--tool-accent-tint);
}

.tool-input::placeholder,
.tool-textarea::placeholder {
  color: var(--tool-text-mute);
  opacity: 0.7;
}

.tool-select {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%236b7280' stroke-width='1.5' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}

/* Input with currency / unit affix */
.tool-input-wrap {
  position: relative;
}
.tool-input-wrap .tool-input { width: 100%; }
.tool-input-wrap .tool-input--with-prefix  { padding-left: 30px; }
.tool-input-wrap .tool-input--with-suffix  { padding-right: 38px; }
.tool-input-prefix,
.tool-input-suffix {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--tool-text-mute);
  pointer-events: none;
}
.tool-input-prefix { left: 12px; }
.tool-input-suffix { right: 12px; }

/* Helper / error text */
.tool-helper {
  display: block;
  margin: 6px 0 0;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--tool-text-mute);
}
.tool-error {
  display: block;
  margin: 6px 0 0;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--tool-accent);
}

/* Button row */
.tool-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 22px 0 0;
}
.tool-button-row--center { justify-content: center; }
.tool-button-row--end    { justify-content: flex-end; }

/* Buttons */
.tool-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 22px;
  min-height: 44px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #ffffff;
  background: var(--tool-accent);
  border: 1px solid var(--tool-accent);
  border-radius: var(--tool-radius);
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease,
              color 0.15s ease, transform 0.05s ease;
}
.tool-button:hover {
  background: var(--tool-accent-deep);
  border-color: var(--tool-accent-deep);
  color: #ffffff;
  text-decoration: none;
}
.tool-button:active { transform: translateY(1px); }
.tool-button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--tool-accent-tint);
}
.tool-button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.tool-button--secondary {
  background: transparent;
  color: var(--tool-text);
  border-color: var(--tool-border-strong);
}
.tool-button--secondary:hover {
  background: var(--tool-surface);
  color: var(--tool-text);
  border-color: var(--tool-text);
}

.tool-button--ghost {
  background: transparent;
  color: var(--tool-text-soft);
  border-color: transparent;
  padding: 10px 14px;
}
.tool-button--ghost:hover {
  background: var(--tool-surface);
  color: var(--tool-accent);
  border-color: transparent;
}

.tool-button--small {
  padding: 8px 14px;
  min-height: 36px;
  font-size: 13px;
}

.tool-button--block {
  width: 100%;
}

/* Pill button cluster (e.g. the 12 case-conversion choices) */
.tool-button-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin: 0 0 20px;
}
.tool-button-grid--compact {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.tool-action-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 14px 12px;
  min-height: 64px;
  background: var(--tool-bg);
  border: 1px solid var(--tool-border-strong);
  border-radius: var(--tool-radius);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--tool-text);
  cursor: pointer;
  text-align: center;
  transition: all 0.15s ease;
}
.tool-action-card:hover {
  border-color: var(--tool-accent);
  color: var(--tool-accent);
  background: var(--tool-accent-tint);
}
.tool-action-card__example {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: var(--tool-text-mute);
}
.tool-action-card:hover .tool-action-card__example {
  color: var(--tool-accent-deep);
  opacity: 0.85;
}

/* ---------- 8. Result components ------------------------------------ */
.tool-result {
  text-align: center;
  padding: 12px 0 4px;
}
.tool-result-empty {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--tool-text-mute);
  padding: 32px 0;
}

.tool-result-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tool-text-mute);
  margin: 0 0 8px;
}
.tool-result-value {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2.25rem, 4vw, 3rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--tool-text);
  margin: 0;
}
.tool-result-value--accent { color: var(--tool-accent); }
.tool-result-meta {
  display: block;
  margin-top: 10px;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--tool-text-mute);
}

.tool-result-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 18px 0 0;
  border-top: 1px solid var(--tool-border);
}
.tool-result-grid__item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid var(--tool-border);
}
.tool-result-grid__item--highlight {
  background: var(--tool-accent-tint);
  margin: 0 -16px;
  padding-left: 16px;
  padding-right: 16px;
  border-bottom-color: var(--tool-accent-tint);
}
.tool-result-grid__label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--tool-text-mute);
}
.tool-result-grid__value {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--tool-text);
  text-align: right;
}

.tool-result-grid--cards {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  border-top: 0;
  gap: 12px;
}
.tool-result-grid--cards .tool-result-grid__item {
  display: block;
  text-align: center;
  border-bottom: 0;
  background: var(--tool-surface);
  border: 1px solid var(--tool-border);
  border-radius: var(--tool-radius);
  padding: 16px 12px;
}
.tool-result-grid--cards .tool-result-grid__label { display: block; margin-bottom: 6px; }
.tool-result-grid--cards .tool-result-grid__value { text-align: center; font-size: 1.5rem; }

.tool-chart-container,
.tool-result-table-wrap {
  margin-top: 18px;
  overflow-x: auto;
}

.tool-result-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-body);
  font-size: 14px;
}
.tool-result-table th,
.tool-result-table td {
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid var(--tool-border);
}
.tool-result-table th {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tool-text-mute);
  background: var(--tool-surface);
}

/* Result-only secondary action row (copy, download, etc.) */
.tool-result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 18px;
}

/* Single-value random/generator output (large, centered, italic display). */
.tool-result-single {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--tool-accent);
  text-align: center;
  padding: 28px 0;
  margin: 0;
  word-break: break-word;
}

/* PDF generator preview frame (canvas/iframe lives inside). */
.tool-pdf-preview {
  position: relative;
  width: 100%;
  margin: 18px 0 8px;
  background: #fff;
  border: 1px solid var(--tool-border);
  border-radius: var(--tool-radius);
  overflow: hidden;
  min-height: 360px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tool-pdf-preview canvas,
.tool-pdf-preview iframe,
.tool-pdf-preview img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 720px;
  border: 0;
}
.tool-pdf-preview iframe {
  height: 640px;
}
.tool-pdf-preview__placeholder {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--tool-text-mute);
  padding: 48px 16px;
  text-align: center;
}

/* Code / JSON / preformatted output. */
.tool-result-code {
  display: block;
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.55;
  color: var(--tool-text);
  background: var(--tool-surface);
  border: 1px solid var(--tool-border);
  border-radius: var(--tool-radius);
  padding: 14px 16px;
  margin: 0;
  white-space: pre;
  overflow: auto;
  max-height: 540px;
}

/* Plain transformed-text output. */
.tool-result-text {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.55;
  color: var(--tool-text);
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0;
}

/* ---------- 9. Related tools sidebar --------------------------------- */
.tool-related-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.tool-related-item {
  margin: 0;
}
.tool-related-link {
  display: block;
  padding: 16px 18px;
  border: 1px solid var(--tool-border);
  border-radius: var(--tool-radius);
  background: var(--tool-bg);
  color: var(--tool-text);
  text-decoration: none;
  transition: border-color 0.15s ease, transform 0.05s ease, box-shadow 0.15s ease;
  height: 100%;
}
.tool-related-link:hover {
  border-color: var(--tool-accent);
  color: var(--tool-text);
  text-decoration: none;
  box-shadow: var(--tool-shadow-hover);
}
.tool-related-link__eyebrow {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tool-accent);
  margin: 0 0 6px;
}
.tool-related-link__title {
  display: block;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--tool-text);
  margin: 0 0 4px;
}
.tool-related-link__desc {
  display: block;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--tool-text-mute);
  line-height: 1.45;
}

/* ---------- 10. Misc + utilities ------------------------------------ */
.tool-section-divider {
  border: 0;
  border-top: 1px solid var(--tool-border);
  margin: 32px 0;
}

.tool-info {
  margin-top: 56px;
  padding: 32px;
  background: var(--tool-surface);
  border: 1px solid var(--tool-border);
  border-radius: var(--tool-radius);
  font-size: 15px;
  line-height: 1.65;
  color: var(--tool-text-soft);
}
.tool-info h2,
.tool-info h3 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--tool-text);
  margin: 24px 0 10px;
}
.tool-info h2:first-child,
.tool-info h3:first-child { margin-top: 0; }
.tool-info p { margin-bottom: 12px; }
.tool-info ul { margin: 8px 0 14px 20px; padding: 0; }
.tool-info li { margin: 4px 0; }
.tool-info strong { color: var(--tool-text); font-weight: 600; }

.tool-disclaimer {
  margin-top: 32px;
  padding: 18px 22px;
  background: var(--tool-bg);
  border-left: 3px solid var(--tool-accent);
  border-radius: var(--tool-radius-sm);
  font-size: 13px;
  color: var(--tool-text-soft);
}
.tool-disclaimer h4 {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--tool-accent);
  margin: 0 0 8px;
}

/* Copy notification toast */
.tool-toast {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  padding: 12px 18px;
  background: var(--tool-text);
  color: #ffffff;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: var(--tool-radius);
  box-shadow: var(--tool-shadow-hover);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
  z-index: 1000;
}
.tool-toast.show {
  opacity: 1;
  transform: translateY(0);
}

/* Ad container resets — keep ads from stretching panels */
.tool-page .ad-container,
.tool-page .ad-unit {
  margin: 32px auto;
  text-align: center;
  max-width: 100%;
}

/* ---------- 11. Responsive ------------------------------------------ */
@media (max-width: 1023px) {
  .tool-main { padding: 20px 24px 72px; }
  .tool-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "form"
      "result"
      "related";
  }
  .tool-result-panel { position: static; }
  .tool-hero { padding: 24px 0 28px; margin-bottom: 28px; }
}

@media (max-width: 767px) {
  .tool-page nav.tnaado-breadcrumb-bar,
  .tool-page .tool-breadcrumb { padding: 16px 18px 6px; }
  .tool-main { padding: 16px 18px 64px; }
  .tool-form-panel,
  .tool-result-panel,
  .tool-related { padding: 22px 18px 20px; }
  .tool-info { padding: 22px 18px; }

  /* iOS zoom prevention — inputs must be ≥16px font-size on iPhone */
  .tool-input,
  .tool-select,
  .tool-textarea { font-size: 16px; }

  .tool-button { width: 100%; }
  .tool-button-row { flex-direction: column; }
  .tool-button-row .tool-button { width: 100%; }
  .tool-button-row .tool-button--ghost { width: 100%; }
}

@media (max-width: 480px) {
  .tool-button-grid {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .tool-action-card { padding: 12px 8px; font-size: 13px; min-height: 56px; }
  .tool-action-card__example { font-size: 10px; }
}

/* =============================================================================
   12. LEGACY FALLBACKS
   Minimal, narrow back-compat for pages not yet migrated. New pages should
   NEVER reach for these classes — use the .tool-* primitives above.
   =============================================================================
*/

/* Legacy: full-width amortization / breakdown tables some calculators render */
.tool-page .calculator-result-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-body);
  font-size: 14px;
  margin-top: 18px;
}
.tool-page .calculator-result-table th,
.tool-page .calculator-result-table td {
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid var(--tool-border);
}
.tool-page .calculator-result-table th {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tool-text-mute);
  background: var(--tool-surface);
}

/* Legacy: copy-notification class used by older converters */
.tool-page .copy-notification {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  padding: 12px 18px;
  background: var(--tool-text);
  color: #ffffff;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: var(--tool-radius);
  box-shadow: var(--tool-shadow-hover);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
  z-index: 1000;
}
.tool-page .copy-notification.show {
  opacity: 1;
  transform: translateY(0);
}

/* =============================================================================
   12b. Ad slots (top + bottom of tool subpages)
   ============================================================================= */
.tool-page .tool-ad-slot {
  max-width: 1200px;
  margin: 24px auto;
  padding: 18px 32px;
  border-top: 1px solid var(--tool-border);
  border-bottom: 1px solid var(--tool-border);
  text-align: center;
  background: var(--tool-surface);
}
.tool-page .tool-ad-slot::before {
  content: "Advertisement";
  display: block;
  margin-bottom: 10px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tool-text-mute);
}
.tool-page .tool-ad-slot--top    { margin-top: 0; }
.tool-page .tool-ad-slot--bottom { margin-bottom: 0; }
.tool-page .tool-ad-slot ins.adsbygoogle { display: block; min-height: 90px; }
@media (max-width: 768px) {
  .tool-page .tool-ad-slot { padding: 14px 20px; }
}

/* =============================================================================
   13. Category index pages (e.g., /tools/seo/, /tools/calculators/loans/)
   -----------------------------------------------------------------------------
   Class names match the existing source (`category-hero`, `category-search`,
   `category-nav`, `tools-container`, `tools-grid`, `tool-card`, etc.). Light
   theme, hairline borders, IBM Plex body, Fraunces display, Ferrari red accent.
   ============================================================================= */
:root {
  --tool-bg:            #ffffff;
  --tool-surface:       #fafafa;
  --tool-text:          #111827;
  --tool-text-mute:     #6b7280;
  --tool-text-soft:     #4b5563;
  --tool-border:        rgba(17, 24, 39, 0.10);
  --tool-border-strong: rgba(17, 24, 39, 0.18);
  --tool-accent:        #c8102e;
  --tool-accent-deep:   #8a0a1f;
  --tool-accent-tint:   rgba(200, 16, 46, 0.08);
  --tool-radius:        6px;
  --tool-radius-sm:     4px;
  --tool-shadow:        0 1px 2px rgba(17, 24, 39, 0.04),
                        0 4px 12px rgba(17, 24, 39, 0.04);
  --tool-shadow-hover:  0 1px 2px rgba(17, 24, 39, 0.06),
                        0 8px 24px rgba(17, 24, 39, 0.08);
  --tool-font-display:  'Fraunces', Georgia, serif;
  --tool-font-body:     'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --tool-font-mono:     'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* Scope: pages that are NOT .tool-page (i.e., category index pages) */
body:not(.tool-page) .category-hero,
body:not(.tool-page) .category-search,
body:not(.tool-page) .category-nav,
body:not(.tool-page) .tools-container,
body:not(.tool-page) .tools-grid,
body:not(.tool-page) .tool-card {
  font-family: var(--tool-font-body);
  color: var(--tool-text);
  box-sizing: border-box;
}

/* Body baseline for category index pages */
.tool-category-page,
body:has(> nav.tnaado-breadcrumb-bar + .category-hero, > #tnaado-header + nav.tnaado-breadcrumb-bar + .category-hero, > #tnaado-header + nav.tnaado-breadcrumb-bar + .ad-unit + .category-hero) {
  background: var(--tool-bg);
  color: var(--tool-text);
  font-family: var(--tool-font-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Breadcrumb on category pages */
body:not(.tool-page) > nav.tnaado-breadcrumb-bar,
.tool-category-page nav.tnaado-breadcrumb-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 18px 32px 8px;
  font-family: var(--tool-font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tool-text-mute);
}
body:not(.tool-page) > nav.tnaado-breadcrumb-bar a,
.tool-category-page nav.tnaado-breadcrumb-bar a {
  color: var(--tool-text-mute);
  text-decoration: none;
}
body:not(.tool-page) > nav.tnaado-breadcrumb-bar a:hover,
.tool-category-page nav.tnaado-breadcrumb-bar a:hover {
  color: var(--tool-accent);
}

/* Category Hero ------------------------------------------------------------- */
.category-hero {
  max-width: 1200px;
  margin: 8px auto 0;
  padding: 40px 32px 32px;
  border-bottom: 1px solid var(--tool-border);
}
.category-hero .tool-count-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  margin-bottom: 18px;
  background: var(--tool-accent-tint);
  border: 1px solid var(--tool-accent);
  border-radius: 100px;
  color: var(--tool-accent);
  font-family: var(--tool-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.category-hero .tool-count-badge i {
  font-size: 11px;
}
.category-hero h1 {
  font-family: var(--tool-font-display);
  font-weight: 600;
  font-size: clamp(2rem, 3.2vw + 1rem, 3.25rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--tool-text);
  margin: 0 0 14px;
}
.category-hero h1 em {
  font-style: italic;
  font-weight: 400;
  color: var(--tool-accent);
}
.category-hero p {
  font-family: var(--tool-font-body);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--tool-text-soft);
  max-width: 64ch;
  margin: 0;
}

/* Category Search ----------------------------------------------------------- */
.category-search {
  max-width: 1200px;
  margin: 24px auto 0;
  padding: 0 32px;
  position: relative;
}
.category-search i {
  position: absolute;
  left: 48px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--tool-text-mute);
  font-size: 14px;
  pointer-events: none;
}
.category-search input {
  width: 100%;
  padding: 14px 16px 14px 44px;
  border: 1px solid var(--tool-border);
  border-radius: var(--tool-radius);
  background: var(--tool-bg);
  font-family: var(--tool-font-body);
  font-size: 15px;
  color: var(--tool-text);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.category-search input::placeholder { color: var(--tool-text-mute); }
.category-search input:focus {
  outline: none;
  border-color: var(--tool-accent);
  box-shadow: 0 0 0 3px var(--tool-accent-tint);
}

/* Category Nav (back-link strip) -------------------------------------------- */
.category-nav {
  max-width: 1200px;
  margin: 18px auto 0;
  padding: 12px 32px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--tool-font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tool-text-mute);
  border-top: 1px solid var(--tool-border);
  border-bottom: 1px solid var(--tool-border);
}
.category-nav a {
  color: var(--tool-text-mute);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.15s ease;
}
.category-nav a:hover { color: var(--tool-accent); }
.category-nav span { color: var(--tool-border-strong); }

/* Tools container + grid ---------------------------------------------------- */
.tools-container {
  max-width: 1200px;
  margin: 32px auto 0;
  padding: 0 32px 96px;
}
.tools-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

/* Tool card (link card with icon + title + description) --------------------- */
.tool-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px;
  background: var(--tool-bg);
  border: 1px solid var(--tool-border);
  border-radius: var(--tool-radius);
  box-shadow: var(--tool-shadow);
  text-decoration: none;
  color: var(--tool-text);
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
.tool-card:hover {
  transform: translateY(-1px);
  border-color: var(--tool-accent);
  box-shadow: var(--tool-shadow-hover);
}
.tool-card-icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: var(--tool-radius-sm);
  background: var(--tool-accent-tint);
  color: var(--tool-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}
.tool-card-content {
  flex: 1;
  min-width: 0;
}
.tool-card-content h3 {
  margin: 0 0 4px;
  font-family: var(--tool-font-body);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--tool-text);
}
.tool-card-content p {
  margin: 0;
  font-family: var(--tool-font-body);
  font-size: 13px;
  line-height: 1.45;
  color: var(--tool-text-soft);
}

/* Ad-unit + ad-container reset on category pages ---------------------------- */
body:not(.tool-page) .ad-container,
body:not(.tool-page) .ad-unit {
  max-width: 1200px;
  margin: 24px auto;
  padding: 0 32px;
}

/* Responsive ---------------------------------------------------------------- */
@media (max-width: 768px) {
  .category-hero,
  .category-search,
  .category-nav,
  .tools-container { padding-left: 20px; padding-right: 20px; }
  .tools-grid { grid-template-columns: 1fr; gap: 12px; }
  .category-hero h1 { font-size: 2rem; }
}
