/* ============================================================================
   ORVX free tools (/tools). Loaded after landing.css and resources.css and
   built only on their tokens (--surface, --line, --text, --lime...), so the
   tools read as the same site. Mobile first: every grid is one column until
   there is room for more.
   ==========================================================================*/

.tool-main .wrap { max-width: 1040px; }
.tool-head { margin-bottom: 8px; }
.topic-badge .tool-icon { width: 15px; height: 15px; vertical-align: -3px; margin-inline-end: 4px; }

/* ── hero + form ──────────────────────────────────────────────────────── */
.tool-hero { display: grid; gap: 22px; margin: 6px 0 30px; }
.tool-hero h1 { margin: 12px 0 10px; }
@media (min-width: 900px) { .tool-hero { grid-template-columns: 1fr 1.05fr; align-items: start; gap: 36px; } }

.tool-form {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-xl);
  padding: 20px; box-shadow: 0 10px 30px -18px rgba(17, 17, 19, .25); display: grid; gap: 14px;
}
.tf-field { display: grid; gap: 6px; min-width: 0; }
.tf-field label { font-weight: 600; font-size: 14px; color: var(--text); }
.tf-opt { font-weight: 500; font-size: 12px; color: var(--text-muted); margin-inline-start: 4px; }
.tf-field input, .tf-field select, .tf-field textarea {
  width: 100%; font: inherit; font-size: 16px; color: var(--text); background: var(--bg-2);
  border: 1px solid var(--line-2); border-radius: var(--r); padding: 11px 12px; min-height: 46px;
}
.tf-field textarea { resize: vertical; min-height: 110px; line-height: 1.5; }
.tf-field input:focus, .tf-field select:focus, .tf-field textarea:focus { outline: 2px solid var(--lime-line); outline-offset: 1px; border-color: var(--accent); }
.tf-hint { margin: 0; font-size: 13px; color: var(--text-muted); }
.tf-row { display: grid; gap: 14px; }
@media (min-width: 560px) { .tf-row { grid-template-columns: 1fr 1fr; } .tf-row-3 { grid-template-columns: 1fr 1fr 1fr; } }
.tf-more { border-top: 1px solid var(--line); padding-top: 10px; display: grid; gap: 14px; }
.tf-more summary { cursor: pointer; font-weight: 600; font-size: 14px; color: var(--text-dim); }
.tf-more[open] summary { margin-bottom: 4px; }
.tf-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.tf-submit { min-height: 46px; padding: 0 22px; }
.tf-submit[disabled] { opacity: .6; cursor: progress; }
.tf-note { margin: 0; font-size: 13px; color: var(--text-muted); }
.tf-error { margin: 0; padding: 10px 12px; border-radius: var(--r); background: var(--danger-soft); color: var(--danger-text); border: 1px solid var(--danger-line); font-size: 14px; }

/* ── progress ─────────────────────────────────────────────────────────── */
.tool-progress { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 16px 18px; margin: 0 0 24px; }
.tp-head { display: flex; align-items: center; gap: 10px; }
.tp-elapsed { margin-inline-start: auto; color: var(--text-muted); font-variant-numeric: tabular-nums; font-size: 14px; }
.tp-spinner { width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--line-2); border-top-color: var(--accent); animation: tp-spin .8s linear infinite; }
@keyframes tp-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .tp-spinner { animation: none; border-top-color: var(--lime-line); } }
.tp-stages { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; font-size: 14px; }
.tp-stages li { display: flex; gap: 8px; align-items: center; color: var(--text-dim); }
.tp-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--line-2); flex: none; }
.tp-stages li.active .tp-dot { background: var(--lime-line); box-shadow: 0 0 0 3px var(--lime-soft); }
.tp-stages li.done { color: var(--text-muted); }
.tp-stages li.done .tp-dot { background: var(--good); }

/* ── results ──────────────────────────────────────────────────────────── */
.tool-result { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-xl); padding: 20px; margin: 0 0 36px; outline: none; }
@media (min-width: 720px) { .tool-result { padding: 28px; } }
.tr-head h2 { margin: 0 0 4px; font-size: 22px; }
.tr-url { margin: 0 0 8px; word-break: break-all; font-size: 14px; }
.tr-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; color: var(--text-muted); }
.tr-sec { border-top: 1px solid var(--line); margin-top: 20px; padding-top: 18px; }
.tr-sec h3 { margin: 0 0 10px; font-size: 18px; }
.tr-sec h4 { margin: 16px 0 8px; font-size: 15px; }
.tr-note { font-size: 13px; color: var(--text-muted); margin: 6px 0 10px; }
.tr-sum { font-size: 15px; color: var(--text-dim); }
.muted { color: var(--text-muted); }
.tr-fail h2 { margin-top: 0; }
.tr-fail-inline { color: var(--danger-text); }
.disclaimer { margin: 14px 0; padding: 12px 14px; background: var(--lime-soft); border: 1px solid var(--lime-line); border-radius: var(--r); color: var(--lime-ink); font-weight: 560; font-size: 14px; }
.tr-notes { font-size: 13px; color: var(--text-muted); }

.chip { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; line-height: 1; padding: 6px 9px; border-radius: var(--r-full); background: var(--surface-3); color: var(--text-dim); border: 1px solid var(--line); text-transform: none; }
.chip-muted { background: var(--surface-2); color: var(--text-muted); font-weight: 500; }
.chip-high { background: var(--danger-soft); color: var(--danger-text); border-color: var(--danger-line); }
.chip-medium { background: var(--warn-soft); color: var(--warn-text); border-color: #F5D9A8; }
.chip-low { background: var(--surface-2); color: var(--text-muted); }
.chip-conf-high { background: var(--good-soft); color: var(--good-text); border-color: var(--good-line); }
.chip-conf-medium { background: var(--warn-soft); color: var(--warn-text); border-color: #F5D9A8; }
.chip-conf-low { background: var(--surface-2); color: var(--text-muted); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }

/* score rings */
.rings { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 14px; }
.score-ring { display: grid; justify-items: center; text-align: center; gap: 4px; }
.ring-wrap { position: relative; width: 72px; height: 72px; }
.ring-track { fill: none; stroke: var(--surface-3); stroke-width: 7; }
.ring-val { fill: none; stroke-width: 7; stroke-linecap: round; }
.ring-good { stroke: var(--good); } .ring-mid { stroke: var(--warn); } .ring-low { stroke: var(--danger); } .ring-none { stroke: transparent; }
.ring-num { position: absolute; inset: 0; display: grid; place-items: center; font-weight: 700; font-size: 20px; font-variant-numeric: tabular-nums; }
.ring-label { font-weight: 600; font-size: 13px; }
.ring-sub { font-size: 12px; color: var(--text-muted); }
.tr-method { margin-top: 14px; font-size: 14px; }
.tr-method summary, .tr-about summary, .tr-sample summary { cursor: pointer; font-weight: 600; color: var(--text-dim); }

/* recommendations */
.rec-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; counter-reset: rec; }
.rec { border: 1px solid var(--line); border-radius: var(--r-lg); padding: 14px 16px; background: var(--bg-2); }
.rec h4 { margin: 8px 0 6px; font-size: 16px; }
.rec p { margin: 4px 0; font-size: 14px; color: var(--text-dim); }
.rec-top { display: flex; gap: 6px; flex-wrap: wrap; }
.rec-ev { font-size: 12px !important; color: var(--text-muted) !important; }

/* checks */
.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.tab { font: inherit; font-size: 13px; font-weight: 600; padding: 8px 12px; border-radius: var(--r-full); border: 1px solid var(--line-2); background: var(--bg-2); color: var(--text-dim); cursor: pointer; min-height: 38px; }
.tab[aria-selected="true"] { background: var(--accent); color: #fff; border-color: var(--accent); }
.check-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.check { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; padding: 12px; border-radius: var(--r); border: 1px solid var(--line); background: var(--bg-2); }
.check-badge { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 4px 7px; border-radius: 6px; white-space: nowrap; }
.check-pass .check-badge { background: var(--good-soft); color: var(--good-text); }
.check-warn .check-badge { background: var(--warn-soft); color: var(--warn-text); }
.check-fail .check-badge { background: var(--danger-soft); color: var(--danger-text); }
.check-na .check-badge { background: var(--surface-3); color: var(--text-muted); }
.check-body p { margin: 4px 0 0; font-size: 14px; color: var(--text-dim); overflow-wrap: anywhere; }
.check-fix { color: var(--text) !important; }
.evidence { list-style: none; padding: 0; margin: 6px 0 0; display: grid; gap: 4px; }
.evidence code, .srcs code, .tr-sec code { font-family: var(--mono); font-size: 12px; background: var(--surface-3); padding: 2px 6px; border-radius: 5px; overflow-wrap: anywhere; word-break: break-all; }
.todo { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: 14px; }
.todo li { display: flex; gap: 8px; align-items: flex-start; }
.todo input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.todo input:checked + label { color: var(--text-muted); text-decoration: line-through; }

/* tables, facts, tiles */
.tr-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.tr-table th, .tr-table td { text-align: start; padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.tr-table thead th { font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: var(--text-muted); }
.tr-table tbody th { font-weight: 600; text-transform: capitalize; }
.tool-main .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.facts { display: grid; grid-template-columns: minmax(110px, auto) 1fr; gap: 6px 14px; margin: 0; font-size: 14px; }
.facts dt { color: var(--text-muted); }
.facts dd { margin: 0; overflow-wrap: anywhere; }
.quotes { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; font-size: 14px; }
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.tiles-wide { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.tile { border: 1px solid var(--line); border-radius: var(--r); padding: 10px 12px; background: var(--bg-2); display: grid; gap: 2px; }
.tile-k { font-size: 12px; color: var(--text-muted); }
.tile-v { font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; }
.tile-s { font-size: 12px; color: var(--text-muted); }
.price-group { margin-bottom: 16px; }
.hist { display: flex; align-items: flex-end; gap: 6px; height: 150px; margin-top: 14px; padding-bottom: 34px; }
.hist-col { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; position: relative; min-width: 0; }
.hist-bar { width: 100%; max-width: 60px; background: var(--accent); border-radius: 5px 5px 0 0; }
.hist-n { font-size: 12px; font-weight: 600; margin-bottom: 3px; }
.hist-l { position: absolute; bottom: -30px; font-size: 11px; color: var(--text-muted); text-align: center; line-height: 1.2; white-space: nowrap; }
.insights { display: grid; gap: 16px; }
@media (min-width: 720px) { .insights { grid-template-columns: 1fr 1fr; } }
.insights ul { padding-inline-start: 18px; margin: 0; display: grid; gap: 6px; font-size: 14px; }

/* app detector */
.app-cats { display: grid; gap: 14px; }
.app-cat h4 { margin: 0 0 8px; }
.app-cat-empty h4 { color: var(--text-muted); }
.app-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.app { border: 1px solid var(--line); border-radius: var(--r); padding: 12px; background: var(--bg-2); }
.app-top { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 15px; }
.app-top a { font-size: 13px; margin-inline-start: auto; }

/* generator */
.copy-block { margin-top: 18px; }
.copy-head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.copy-head h4 { margin: 0; font-size: 15px; }
.copy-count { margin-inline-start: auto; font-size: 12px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.copy-count.over { color: var(--danger-text); font-weight: 600; }
.copy-text { width: 100%; font: inherit; font-size: 15px; line-height: 1.6; color: var(--text); background: var(--bg-2); border: 1px solid var(--line-2); border-radius: var(--r); padding: 10px 12px; resize: vertical; }
.copy-text[dir="rtl"] { font-family: "Noto Kufi Arabic", "Segoe UI", Tahoma, sans-serif; }

.tr-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 20px; border-top: 1px solid var(--line); padding-top: 16px; }
.tr-share .tr-share { border: 0; margin: 0; padding: 0; }
.tr-about { margin-top: 16px; font-size: 13px; color: var(--text-muted); }
.tr-about ul { padding-inline-start: 18px; }
.srcs { list-style: none; padding: 0 !important; display: grid; gap: 4px; }

/* ── directory and related cards ──────────────────────────────────────── */
.tool-cat { margin: 26px 0 10px; }
.tool-cat h2 { margin: 0 0 4px; font-size: 22px; }
.tool-cat-blurb { margin: 0 0 14px; color: var(--text-muted); }
.tool-grid { display: grid; gap: 14px; }
@media (min-width: 640px) { .tool-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 980px) { .tool-grid { grid-template-columns: repeat(3, 1fr); } }
.tool-card {
  display: grid; gap: 8px; align-content: start; padding: 18px; border-radius: var(--r-lg); border: 1px solid var(--line);
  background: var(--surface); color: var(--text); text-decoration: none; transition: border-color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);
}
.tool-card:hover, .tool-card:focus-visible { border-color: var(--accent); box-shadow: 0 10px 26px -16px rgba(17, 17, 19, .35); transform: translateY(-1px); }
.tool-card-top { display: flex; align-items: center; justify-content: space-between; }
.tool-card .tool-icon { width: 34px; height: 34px; padding: 6px; border-radius: 9px; background: var(--lime-soft); color: var(--lime-ink); }
.tool-free { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--lime-ink); background: var(--lime-soft); border: 1px solid var(--lime-line); padding: 4px 8px; border-radius: var(--r-full); }
.tool-card-name { font-weight: 700; font-size: 17px; }
.tool-card-desc { color: var(--text-dim); font-size: 14px; line-height: 1.5; }
.tool-card-use { color: var(--text-muted); font-size: 13px; }
.tool-card-cta { font-weight: 600; font-size: 14px; margin-top: 4px; }
.tool-related { margin: 36px 0 10px; }
.tool-related h2 { font-size: 20px; margin: 0 0 14px; }
.tool-all { margin: 14px 0 0; }
.tool-guide { margin-top: 10px; }
.tool-orvx { margin-top: 30px; }

@media (max-width: 520px) {
  .tool-form { padding: 16px; }
  .tool-result { padding: 16px; border-radius: var(--r-lg); }
  .facts { grid-template-columns: 1fr; }
  .facts dt { margin-top: 6px; }
  .hist-l { font-size: 10px; transform: rotate(-30deg); transform-origin: top center; }
}

/* ── calculators (public_site/assets/calculators.js) ──────────────────── */
.calc-h { margin: 0 0 14px; font-size: 20px; letter-spacing: -.02em; }
.calc-tiles { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr)); }
.calc-tile { border: 1px solid var(--line); border-radius: var(--r-lg); padding: 14px 16px; background: var(--bg-2); min-width: 0; }
.calc-tile span { display: block; font-size: 13px; color: var(--text-muted); }
.calc-tile b { display: block; margin-top: 6px; font-size: 24px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.calc-tile.is-good { border-color: var(--lime-line); background: var(--lime-soft); }
.calc-tile.is-bad { border-color: var(--danger-line); background: var(--danger-soft); }
.calc-tile.is-bad b { color: var(--danger-text); }
.calc-table { width: 100%; margin: 18px 0 6px; border-collapse: collapse; font-size: 15px; }
.calc-table caption { text-align: start; font-weight: 700; padding-bottom: 6px; }
.calc-table th, .calc-table td { padding: 8px 4px; border-bottom: 1px solid var(--line); text-align: start; font-weight: 500; }
.calc-table td { text-align: end; font-variant-numeric: tabular-nums; }
.calc-note { margin: 14px 0 0; padding: 10px 12px; border-radius: var(--r); background: var(--surface-2); font-size: 14px; }
.calc-formula, .calc-private { margin: 12px 0 0; font-size: 14px; color: var(--text-dim); }
.calc-private { color: var(--text-muted); }

/* ── the directory (/tools) ───────────────────────────────────────────── */
.td-hero { position: relative; overflow: hidden; background: #0B0B0F; color: #fff; border-radius: 28px; padding: clamp(28px, 6vw, 64px); margin: 8px 0 40px; isolation: isolate; display: grid; gap: 32px; align-items: center; }
@media (min-width: 960px) { .td-hero { grid-template-columns: 1.05fr .95fr; } }
.td-hero::before { content: ""; position: absolute; inset: -40% -10% auto 40%; height: 150%; z-index: -1; background: radial-gradient(closest-side, rgba(183,255,74,.18), transparent 70%); }
.td-hero h1 { margin: 10px 0 14px; font-size: clamp(36px, 6vw, 64px); line-height: 1.02; letter-spacing: -.04em; color: #fff; }
.td-hero h1 em { font-style: normal; color: #B7FF4A; }
.td-hero p { margin: 0 0 22px; color: #C9CCD1; font-size: clamp(16px, 1.5vw, 19px); line-height: 1.6; max-width: 54ch; }
.td-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #B7FF4A; }
.td-cta { display: flex; flex-wrap: wrap; gap: 12px; }
.td-stats { display: flex; flex-wrap: wrap; gap: 18px 26px; margin: 24px 0 0; padding: 0; list-style: none; color: #C9CCD1; font-size: 14px; }
.td-stats b { display: block; color: #fff; font-size: 22px; letter-spacing: -.02em; }
.td-preview { position: relative; min-height: 300px; }
.td-win { position: absolute; background: rgba(26,26,31,.92); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; padding: 14px; box-shadow: 0 30px 60px -30px rgba(0,0,0,.8); color: #fff; }
.td-win small { display: block; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #C9CCD1; }
.td-win--a { inset: 0 18% auto 0; }
.td-win--b { inset: 46% 0 auto 26%; }
.td-win--c { inset: auto auto 0 6%; width: 52%; }
.td-bar { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 12px; color: #C9CCD1; }
.td-bar i { flex: 1; height: 7px; border-radius: 99px; background: rgba(255,255,255,.08); overflow: hidden; }
.td-bar i::after { content: ""; display: block; height: 100%; width: var(--w, 60%); border-radius: inherit; background: #B7FF4A; }
.td-ring { display: grid; place-items: center; width: 78px; height: 78px; border-radius: 50%; margin-top: 8px; background: conic-gradient(#B7FF4A 0 var(--p, 72%), rgba(255,255,255,.1) 0); }
.td-ring b { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: #1A1A1F; font-size: 20px; }
.td-mono { margin-top: 6px; font: 600 22px/1.2 Inter, system-ui, sans-serif; letter-spacing: -.02em; }
.td-mono em { font-style: normal; color: #B7FF4A; }
.td-tag { position: absolute; right: 0; bottom: -4px; font-size: 11px; color: #C9CCD1; opacity: .7; }
@media (prefers-reduced-motion: no-preference) {
  .td-win { animation: td-float 7s ease-in-out infinite; }
  .td-win--b { animation-delay: -2.4s; } .td-win--c { animation-delay: -4.8s; }
  .td-bar i::after { animation: td-grow 1.6s cubic-bezier(.22,.61,.36,1) both; }
  .tool-card, .td-feat { transition: transform .25s cubic-bezier(.22,.61,.36,1), box-shadow .25s, border-color .25s; }
  .tool-card:hover, .td-feat:hover { transform: translateY(-3px); }
}
@keyframes td-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes td-grow { from { width: 0; } }
.td-sec { margin: 0 0 44px; }
.td-sec > h2 { margin: 0 0 6px; font-size: clamp(26px, 3.4vw, 36px); letter-spacing: -.03em; }
.td-sec > p.td-lede { margin: 0 0 20px; color: var(--text-dim); max-width: 62ch; }
.td-feats { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); }
.td-feat { position: relative; display: grid; gap: 8px; padding: 22px; border-radius: 20px; text-decoration: none; color: var(--text); background: var(--surface); border: 1px solid var(--line); min-width: 0; }
.td-feat:nth-child(1) { background: #0B0B0F; color: #fff; border-color: #0B0B0F; grid-column: 1 / -1; }
@media (min-width: 900px) { .td-feat:nth-child(1) { grid-column: span 2; } }
.td-feat:nth-child(1) .td-feat-desc, .td-feat:nth-child(1) .td-feat-use { color: #C9CCD1; }
.td-feat:nth-child(1) .tool-icon { color: #B7FF4A; }
.td-feat:nth-child(3) { background: var(--lime-soft); border-color: var(--lime-line); }
.td-feat:hover { box-shadow: 0 18px 40px -26px rgba(17,17,19,.45); border-color: var(--line-2); }
.td-feat-k { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.td-feat:nth-child(1) .td-feat-k { color: #B7FF4A; }
.td-feat-name { font-size: 21px; font-weight: 700; letter-spacing: -.02em; }
.td-feat-desc { color: var(--text-dim); line-height: 1.55; }
.td-feat-use { font-size: 14px; color: var(--text-muted); }
.td-feat-cta { font-weight: 700; font-size: 14px; }
.td-calcs { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); }
.td-calc { display: grid; gap: 6px; padding: 18px; border-radius: 18px; background: var(--surface); border: 1px solid var(--line); text-decoration: none; color: var(--text); min-width: 0; }
.td-calc:hover { border-color: var(--lime-line); }
.td-calc .tool-icon { color: var(--text); }
.td-calc b { font-size: 17px; letter-spacing: -.01em; }
.td-calc span { font-size: 14px; color: var(--text-dim); line-height: 1.5; }
.td-calc code { font: 600 12px/1.4 ui-monospace, Menlo, monospace; color: var(--text-muted); background: var(--surface-2); padding: 5px 7px; border-radius: 8px; overflow-wrap: anywhere; }
.td-steps { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); margin: 0; padding: 0; list-style: none; counter-reset: td; }
.td-steps li { counter-increment: td; padding: 20px; border-radius: 18px; background: var(--surface); border: 1px solid var(--line); }
.td-steps li::before { content: counter(td); display: grid; place-items: center; width: 32px; height: 32px; margin-bottom: 10px; border-radius: 50%; background: #0B0B0F; color: #B7FF4A; font-weight: 800; }
.td-steps b { display: block; margin-bottom: 4px; }
.td-steps p { margin: 0; color: var(--text-dim); font-size: 15px; }
.td-caps { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); }
.td-cap { padding: 18px; border-radius: 18px; border: 1px dashed var(--line-2); text-decoration: none; color: var(--text); display: grid; gap: 6px; }
.td-cap:hover { border-style: solid; }
.td-cap span { color: var(--text-dim); font-size: 14px; }
.td-faq details { border-bottom: 1px solid var(--line); padding: 14px 0; }
.td-faq summary { cursor: pointer; font-weight: 700; }
.td-faq p { margin: 10px 0 0; color: var(--text-dim); }
.tool-promo { margin: 0 0 36px; }

/* Guides to the tools and country guides (src/seo/curated), on the /tools hub. */
.td-guides{margin:8px 0 18px;padding-left:20px;line-height:1.8;columns:2;column-gap:32px}
.td-guides li{break-inside:avoid}
@media (max-width:720px){.td-guides{columns:1}}
