/* =====================================================================
   tcw — taxcount whois — production stylesheet (FINAL design, adapted to the real markup)
   Base direction: "search-first" + grafts (dataforthai-plus, ledger,
   dashboard, app-like, editorial, report-card, friendly).
   FIXED LIGHT theme — no dark mode, no prefers-color-scheme block.
   MOBILE-FIRST: base rules = 360–390px phone; min-width queries enhance.
   Breakpoints (min-width only): 420 (verdict source cells side by side) · 480 (pill search)
                · 560 (stats 3-col, tinted fact labels) · 720 (search moves to nav)
                · 1080 (desktop: result gets an aside; sticky only when the viewport is ≥860px tall).
   Fonts are loaded by partials/header.php (Kanit 400–700, IBM Plex Sans Thai 400–600).
   ===================================================================== */

:root {
  color-scheme: light;

  /* ---- Brand (red = primary action, logo, fail. Nothing else.) ---- */
  --tc-red: #B92025;          /* white on red 6.37:1 */
  --tc-red-hover: #9E1B1F;    /* white on hover 7.98:1 */
  --tc-red-ring: rgba(185, 32, 37, .16);

  /* ---- Ink & neutrals ---- */
  --tc-ink: #363636;          /* 12.08:1 on white, 11.10:1 on surface */
  --tc-ink-strong: #1D1D1F;   /* 16.83:1 on white — h1, values */
  --tc-muted: #5F5F64;        /* 6.35:1 on white, 5.83:1 on surface — ALL secondary text */
  --tc-muted-2: #6B7280;      /* 4.83:1 — on pure white only, never on grey */
  --tc-field-edge: #8E8E93;   /* 3.26:1 — form-field edge (WCAG 1.4.11); never text */
  --tc-surface: #F5F5F7;      /* page background */
  --tc-surface-2: #FAFAFB;    /* fact label column, quiet wells */
  --tc-card: #FFFFFF;
  --tc-hair: rgba(29, 29, 31, .09);
  --tc-hair-strong: rgba(29, 29, 31, .16);
  --tc-link: #2025B9;         /* 10.36:1 on white */

  /* ---- Status tone pairs: fg on its own soft bg (AA checked) ---- */
  --tc-ok: #007426;    --tc-ok-soft: #E6F4EA;     /* 5.24:1 */
  --tc-info: #2025B9;  --tc-info-soft: #ECEDFB;   /* 8.92:1 */
  --tc-warn: #7A4F00;  --tc-warn-soft: #FFF5D6;   /* 6.55:1 — yellow #FFBC00 only as a fill/rule */
  --tc-yellow: #FFBC00;
  --tc-fail: #B92025;  --tc-fail-soft: #FDEEEE;   /* 5.66:1 */
  --tc-mute: #5F5F64;  --tc-mute-soft: #EEEEF1;   /* 5.48:1 */

  /* ---- Type ---- */
  --tc-font: 'IBM Plex Sans Thai', 'Sukhumvit Set', 'Thonburi', 'Leelawadee UI', 'Noto Sans Thai', -apple-system, 'Segoe UI', sans-serif;
  --tc-font-head: 'Kanit', 'IBM Plex Sans Thai', 'Sukhumvit Set', 'Noto Sans Thai', sans-serif;
  --fs-xs: .8125rem;   /* 13 — floor for Thai, meta only */
  --fs-sm: .875rem;    /* 14 — labels, captions */
  --fs-md: 1rem;       /* 16 — body, inputs (no iOS zoom) */
  --fs-lg: 1.125rem;   /* 18 — panel titles */
  --fs-xl: 1.25rem;    /* 20 — verdict headline (mobile), stat value */
  --fs-2xl: 1.375rem;  /* 22 — section titles */
  --fs-name: clamp(1.5rem, 1.2rem + 1.3vw, 2.125rem);      /* company h1: 24 → 34 */
  --fs-display: clamp(1.75rem, 1.25rem + 2.3vw, 2.75rem);  /* home h1: 28 → 44 */
  --lh-body: 1.68;
  --lh-head: 1.35;

  /* ---- Space (4-pt) ---- */
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 20px; --s-6: 24px;
  --s-8: 32px; --s-10: 40px; --s-12: 48px; --s-16: 64px; --s-20: 80px;

  /* ---- Shape & depth: ONE radius family ---- */
  --r-sm: 8px;      /* chips inside cards, code, kbd */
  --r: 12px;        /* inner wells, flags, cells */
  --r-card: 16px;   /* every card */
  --r-pill: 999px;  /* buttons, pills, search */
  --sh-1: 0 1px 2px rgba(29, 29, 31, .04);
  --sh-2: 0 1px 2px rgba(29, 29, 31, .04), 0 6px 20px rgba(29, 29, 31, .05);
  --sh-search: 0 1px 2px rgba(29, 29, 31, .05), 0 10px 30px rgba(29, 29, 31, .07);
  --ease: cubic-bezier(.2, .8, .2, 1);

  /* ---- Layout ---- */
  --w-col: 680px;     /* search + result column */
  --w-aside: 320px;
  --w-page: 1080px;
  --nav-h: 56px;
}

/* =====================================================================
   Base
   ===================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--nav-h) + 16px); }
body {
  margin: 0; background: var(--tc-surface); color: var(--tc-ink);
  font-family: var(--tc-font); font-size: var(--fs-md); line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: clip;
}
h1, h2, h3, h4 { font-family: var(--tc-font-head); font-weight: 600; line-height: var(--lh-head); color: var(--tc-ink-strong); margin: 0; }
p, ul, ol, dl, dd, figure { margin: 0; }
:where(ul[class], ol[class]) { list-style: none; padding: 0; }
a { color: var(--tc-link); text-decoration: none; text-underline-offset: 3px; }
a:hover { text-decoration: underline; }
button { font: inherit; color: inherit; }
img, svg { display: block; }
code, kbd { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: .8125rem; }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--tc-red); outline-offset: 2px; border-radius: 6px; }
.num, time, .tc-taxid, .tc-fact-value, .tc-stat-value, .tc-table td { font-variant-numeric: tabular-nums; }
.tc-icon { flex: none; display: inline-block; vertical-align: -.2em; } /* real pages put icons inline in text (e.g. <p>{icon} text</p>); in flex/grid parents this is a no-op */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.nw { white-space: nowrap; }               /* keep Thai compounds whole: ผู้เสีย|ภาษี */
.tc-muted { color: var(--tc-muted); }
[hidden] { display: none !important; }

.tc-skip { position: absolute; left: 16px; top: -120px; z-index: 100; background: var(--tc-card); color: var(--tc-ink); padding: 10px 16px; border-radius: var(--r-sm); }
.tc-skip:focus { top: 12px; box-shadow: var(--sh-2); }

.tc-main { display: block; min-height: calc(100vh - var(--nav-h) - 160px); }
.tc-main:focus { outline: none; }
.tc-container { width: 100%; max-width: var(--w-page); margin: 0 auto; padding: 0 var(--s-4); }
.tc-container--col { max-width: calc(var(--w-col) + 32px); }

/* =====================================================================
   Nav — logo only (owner: no menu). Result pages add compact search
   (≥720) and the sticky verdict chip.
   ===================================================================== */
.tc-nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(245, 245, 247, .86);
  -webkit-backdrop-filter: saturate(1.4) blur(16px); backdrop-filter: saturate(1.4) blur(16px);
  border-bottom: 1px solid transparent; transition: border-color .2s var(--ease);
}
.tc-nav.is-scrolled, .tc-nav--result { border-bottom-color: var(--tc-hair); }
.tc-nav-inner { height: var(--nav-h); display: flex; align-items: center; gap: var(--s-3); }
.tc-logo { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--tc-ink); font-family: var(--tc-font-head); line-height: 1; white-space: nowrap; flex: none; }
.tc-logo:hover { text-decoration: none; }
.tc-logo img, .tc-logo-mark { width: 28px; height: 28px; border-radius: 8px; flex: none; }
.tc-logo-mark { background: var(--tc-red); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: .8125rem; }
.tc-logo-text { display: inline-flex; align-items: baseline; }
.tc-logo-brand { color: var(--tc-red); font-weight: 700; font-size: 1.25rem; }
/* legacy links list: owner removed the menu; keep rules so stray markup stays hidden */
.tc-nav-links, .tc-nav-links.is-open, .tc-nav-toggle { display: none !important; }
/* Result pages: the ONE compact search form lives in the header.
   Phones: header scrolls away (not sticky) and wraps to logo row + full-width search row;
   the bottom action dock carries "ค้นหาใหม่" back to it. ≥720: one sticky row. */
.tc-nav--result { position: relative; }
.tc-nav--result .tc-nav-inner { flex-wrap: wrap; height: auto; padding-bottom: var(--s-3); gap: 0 var(--s-3); }
.tc-nav--result .tc-logo { height: 52px; }
.tc-nav .tc-search--compact { flex: 1 1 100%; max-width: none; }
.tc-nav-verdict { display: none !important; }

/* Sticky verdict chip (app-like graft). aria-hidden duplicate of the banner. */
.tc-nav-verdict {
  margin-left: auto; display: inline-flex; align-items: center; gap: 6px; min-width: 0; max-width: 62vw;
  height: 32px; padding: 0 12px 0 8px; border-radius: var(--r-pill);
  background: var(--tone-bg, var(--tc-mute-soft)); color: var(--tc-ink-strong);
  font-size: var(--fs-sm); font-weight: 500;
  opacity: 0; transform: translateY(-6px); pointer-events: none;
  transition: opacity .2s var(--ease), transform .2s var(--ease);
}
.tc-nav-verdict .tc-icon { color: var(--tone); width: 18px; height: 18px; }
.tc-nav-verdict span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-nav.has-verdict .tc-nav-verdict { opacity: 1; transform: none; }

@media (min-width: 720px) {
  :root { --nav-h: 64px; }
  .tc-nav--result { position: sticky; }
  .tc-nav--result .tc-nav-inner { flex-wrap: nowrap; height: var(--nav-h); padding-bottom: 0; gap: var(--s-3); }
  .tc-nav--result .tc-logo { height: auto; }
  .tc-nav .tc-search--compact { flex: 1 1 auto; max-width: 440px; margin-left: var(--s-4); }
  .tc-nav-verdict { display: inline-flex !important; max-width: 260px; }
}

/* =====================================================================
   Hero (home) — centered (owner). The search is the page.
   ===================================================================== */
.tc-page-home { background: linear-gradient(180deg, #FFFFFF 0, var(--tc-surface) 520px) no-repeat, var(--tc-surface); }
.tc-page-home .tc-nav:not(.is-scrolled) { background: rgba(255, 255, 255, .72); }
.tc-hero { padding: clamp(32px, 8vh, 96px) 0 var(--s-10); text-align: center; }
.tc-hero-title { font-size: var(--fs-display); font-weight: 600; line-height: 1.3; max-width: 17ch; margin: 0 auto; text-wrap: balance; }
.tc-hero-title em { font-style: normal; color: var(--tc-red); }
.tc-hero-sub { margin: var(--s-3) auto 0; max-width: 46ch; color: var(--tc-muted); font-size: var(--fs-lg); line-height: 1.6; text-wrap: balance; }
.tc-hero .tc-search { margin: var(--s-6) auto 0; text-align: left; }
/* Compact hero: result-type pages (lookup error, search, status, privacy, 404) — LEFT aligned */
.tc-hero--compact { text-align: left; background: none; padding: var(--s-8) 0 var(--s-4); }
.tc-hero--compact .tc-hero-title { margin: 0; max-width: none; font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem); }
.tc-hero--compact .tc-hero-sub { margin: var(--s-2) 0 0; font-size: var(--fs-md); max-width: 60ch; }
.tc-hero--compact .tc-search { margin: var(--s-5) 0 0; }
.tc-eyebrow { display: inline-flex; align-items: center; gap: 6px; color: var(--tc-muted); font-size: var(--fs-sm); margin-bottom: var(--s-2); }

/* =====================================================================
   Search
   ===================================================================== */
.tc-search { width: 100%; max-width: var(--w-col); min-width: 0; }
/* critic: an <input> keeps a ~20ch intrinsic min-content width; inside any grid cell that pushed the compact form past 320/360px. Basis still comes from flex. */
.tc-search-row > .tc-input { width: 1px; }
.tc-search-row {
  position: relative; display: flex; align-items: center; flex-wrap: wrap;
  background: var(--tc-card); border: 1.5px solid var(--tc-field-edge); border-radius: var(--r-card);
  transition: border-color .15s var(--ease), box-shadow .15s var(--ease);
}
.tc-search-row:focus-within { border-color: var(--tc-ink); box-shadow: 0 0 0 4px var(--tc-red-ring); }
.tc-search-lead { display: none; color: var(--tc-muted); padding-left: 18px; }
.tc-input {
  flex: 1 1 100%; min-width: 0; height: 56px; border: 0; background: transparent; color: var(--tc-ink-strong);
  font-family: var(--tc-font); font-size: 1.125rem; padding: 0 16px; font-variant-numeric: tabular-nums; outline: none;
  text-overflow: ellipsis;
}
.tc-input::placeholder { color: var(--tc-muted); font-size: 1rem; opacity: 1; }
.tc-search-row .tc-btn { flex: 1 1 100%; margin: 0 6px 6px; min-height: 48px; }
.tc-search--hero .tc-search-row { box-shadow: var(--sh-search); }
.tc-search--hero .tc-btn { font-size: 1.0625rem; }

.tc-search-meta { display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); min-height: 30px; padding: var(--s-2) var(--s-2) 0; }
.tc-search-hint { margin: 0; color: var(--tc-muted); font-size: var(--fs-sm); display: inline-flex; align-items: center; gap: 6px; min-height: 22px; }
.tc-search-hint::before { content: none; width: 16px; height: 16px; flex: none; background: currentColor; -webkit-mask: var(--hint-icon) center / 16px no-repeat; mask: var(--hint-icon) center / 16px no-repeat; }
.tc-search-hint[data-state] { font-weight: 500; }
.tc-search-hint[data-state]::before { content: ""; }
.tc-search-hint[data-state="valid"], .tc-search-hint[data-state="ok"] { color: var(--tc-ok); --hint-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.5 12.5l2.5 2.5 4.5-5'/%3E%3C/svg%3E"); }
.tc-search-hint[data-state="person"] { color: var(--tc-info); --hint-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z'/%3E%3C/svg%3E"); }
.tc-search-hint[data-state="invalid"], .tc-search-hint[data-state="bad"] { color: var(--tc-fail); --hint-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5h.01'/%3E%3C/svg%3E"); }
.tc-search-hint[data-state="name"] { color: var(--tc-ink); --hint-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='1.5'/%3E%3Cpath d='M9 21v-4h6v4'/%3E%3C/svg%3E"); }
kbd { display: inline-block; padding: 1px 6px; border-radius: 6px; background: var(--tc-card); box-shadow: inset 0 0 0 1px var(--tc-hair-strong), 0 1px 0 var(--tc-hair-strong); color: var(--tc-ink); }

.tc-search.is-invalid .tc-search-row, .tc-search-row:has(.tc-input[aria-invalid="true"]) { border-color: var(--tc-fail); }
.tc-field-error { display: flex; gap: 8px; align-items: flex-start; margin: var(--s-2) 0 0; padding: 10px 14px; border-radius: var(--r); background: var(--tc-fail-soft); color: var(--tc-fail); font-size: var(--fs-sm); font-weight: 500; line-height: 1.55; }
.tc-field-error::before { content: ""; width: 18px; height: 18px; margin-top: 1px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5h.01'/%3E%3C/svg%3E") center / 18px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5h.01'/%3E%3C/svg%3E") center / 18px no-repeat; }

/* Bad check digit shown inline (invalid-id state) */
.tc-digits { display: inline-flex; flex-wrap: wrap; gap: 2px; font-family: var(--tc-font-head); font-size: var(--fs-lg); font-weight: 500; color: var(--tc-ink-strong); font-variant-numeric: tabular-nums; }
.tc-digits .is-bad { color: var(--tc-fail); text-decoration: underline 2px; text-underline-offset: 5px; }

.tc-search-note { margin: 12px 8px 0; font-size: var(--fs-sm); line-height: 1.6; }
.tc-search-note p { margin: 0; }
.tc-search-note p + p { margin-top: 4px; }
.tc-samples { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--s-2); margin: var(--s-4) 0 0; color: var(--tc-muted); font-size: var(--fs-sm); }
.tc-chip {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: var(--r-pill);
  background: var(--tc-card); box-shadow: inset 0 0 0 1px var(--tc-hair-strong); color: var(--tc-ink); font-size: var(--fs-sm);
}
.tc-chip:hover { box-shadow: inset 0 0 0 1px var(--tc-ink); text-decoration: none; }
.tc-chip .num { font-family: var(--tc-font-head); font-weight: 500; color: var(--tc-ink-strong); }
.tc-chip .tc-chip-sub { color: var(--tc-muted); }

@media (min-width: 480px) {
  .tc-search-row { flex-wrap: nowrap; border-radius: var(--r-pill); }
  .tc-search-lead { display: grid; place-items: center; }
  .tc-input { flex: 1 1 auto; padding: 0 12px; }
  .tc-search-row .tc-btn { flex: none; margin: 5px; }
  .tc-search--hero .tc-search-row { min-height: 64px; }
  .tc-search--hero .tc-input { font-size: 1.25rem; height: 60px; }
  .tc-search--hero .tc-btn { min-height: 52px; padding: 0 26px; }
  .tc-search-meta { padding: var(--s-2) var(--s-5) 0; }
  .tc-field-error { margin-inline: var(--s-2); }
}

/* Compact search (result pages): 52px on mobile at top of result, 48px in nav */
.tc-search--compact .tc-search-row { flex-wrap: nowrap; border-radius: var(--r-pill); border-width: 1px; border-color: var(--tc-field-edge); background: var(--tc-card); }
.tc-search--compact .tc-search-lead { display: grid; place-items: center; padding-left: 14px; }
.tc-search--compact .tc-input { flex: 1 1 auto; height: 50px; font-size: 1rem; padding: 0 10px; }
.tc-search--compact .tc-input::placeholder { font-size: .9375rem; }
.tc-search--compact .tc-btn { flex: none; margin: 4px; min-height: 44px; padding: 0 16px; font-size: .9375rem; }
.tc-search--compact .tc-search-meta { padding: 6px var(--s-4) 0; min-height: 0; }
.tc-search--compact .tc-search-hint:empty { min-height: 0; }
.tc-nav .tc-search--compact .tc-search-row { background: rgba(255, 255, 255, .92); border-color: var(--tc-field-edge); } /* critic: was hair-strong 1.27:1, fails 1.4.11 */
.tc-nav .tc-search--compact .tc-search-row:focus-within { border-color: var(--tc-ink); }
@media (min-width: 720px) {
  .tc-nav .tc-search--compact { position: relative; }
  .tc-nav .tc-search--compact .tc-input { height: 44px; }
  .tc-nav .tc-search--compact .tc-btn { min-height: 36px; position: relative; }
  .tc-nav .tc-search--compact .tc-btn::after { content: ""; position: absolute; inset: -4px; } /* 44px hit area */
  .tc-nav .tc-search--compact .tc-search-meta { position: absolute; left: 0; right: 0; top: 100%; padding: 4px var(--s-4); }
  .tc-nav .tc-search--compact .tc-search-hint[data-state] { background: var(--tc-card); padding: 2px 10px; border-radius: var(--r-pill); box-shadow: var(--sh-2); }
  .tc-nav .tc-search--compact .tc-field-error { position: absolute; left: 0; right: 0; top: 100%; z-index: 2; box-shadow: var(--sh-2); }
}

/* =====================================================================
   Buttons
   ===================================================================== */
.tc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px;
  border-radius: var(--r-pill); border: 0; background: transparent; color: var(--tc-ink);
  font-family: var(--tc-font-head); font-weight: 500; font-size: 1rem; line-height: 1.2; cursor: pointer;
  white-space: nowrap; text-decoration: none; -webkit-tap-highlight-color: transparent;
  transition: background-color .15s var(--ease), box-shadow .15s var(--ease), transform .1s var(--ease);
}
.tc-btn:hover { text-decoration: none; }
.tc-btn:active { transform: translateY(1px); }
.tc-btn .tc-icon { width: 18px; height: 18px; }
.tc-btn--primary { background: var(--tc-red); color: #fff; }
.tc-btn--primary:hover { background: var(--tc-red-hover); }
.tc-btn--primary:focus-visible { outline: 2px solid var(--tc-red); outline-offset: 2px; box-shadow: 0 0 0 2px #fff; }
.tc-btn--secondary { background: var(--tc-card); box-shadow: inset 0 0 0 1px var(--tc-hair-strong); }
.tc-btn--secondary:hover { box-shadow: inset 0 0 0 1px var(--tc-ink); }
.tc-btn--ghost:hover { background: rgba(29, 29, 31, .06); }
.tc-btn--icon { width: 44px; padding: 0; flex: none; }
.tc-btn--block { width: 100%; }
.tc-btn--sm { min-height: 36px; padding: 0 14px; font-size: var(--fs-sm); position: relative; }
.tc-btn--sm::after { content: ""; position: absolute; inset: -4px 0; } /* keep a 44px hit area */
.tc-btn[disabled], .tc-btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
.tc-btn.is-done .tc-icon { color: var(--tc-ok); }
/* Loading: spinner replaces the icon; label stays readable (accessible name kept) */
.tc-loading { pointer-events: none; }
.tc-loading::before { content: ""; width: 16px; height: 16px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: tc-spin .7s linear infinite; flex: none; }
.tc-loading .tc-icon { display: none; }
@keyframes tc-spin { to { transform: rotate(360deg); } }

/* =====================================================================
   Tones, pills, dots
   ===================================================================== */
.tc-tone--ok    { --tone: var(--tc-ok);   --tone-bg: var(--tc-ok-soft); }
.tc-tone--info  { --tone: var(--tc-info); --tone-bg: var(--tc-info-soft); }
.tc-tone--warn  { --tone: var(--tc-warn); --tone-bg: var(--tc-warn-soft); --tone-rule: var(--tc-yellow); }
.tc-tone--fail  { --tone: var(--tc-fail); --tone-bg: var(--tc-fail-soft); }
.tc-tone--muted { --tone: var(--tc-mute); --tone-bg: var(--tc-mute-soft); }

.tc-pills { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.tc-pill {
  display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 2px 12px 2px 9px;
  border-radius: var(--r-pill); font-size: var(--fs-sm); font-weight: 500; line-height: 1.4;
  color: var(--tone, var(--tc-ink)); background: var(--tone-bg, var(--tc-mute-soft)); white-space: nowrap;
}
.tc-pill .tc-icon { width: 16px; height: 16px; }
.tc-pill--plain { color: var(--tc-ink); background: var(--tc-card); box-shadow: inset 0 0 0 1px var(--tc-hair-strong); padding-left: 12px; }
.tc-pill.tc-tone--muted { box-shadow: inset 0 0 0 1px rgba(95, 95, 100, .3); }
.tc-code { display: inline-block; font-family: var(--tc-font-head); font-weight: 500; font-size: var(--fs-sm); padding: 0 8px; border-radius: 6px; background: var(--tc-mute-soft); color: var(--tc-ink-strong); margin-right: 6px; font-variant-numeric: tabular-nums; }
.tc-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--tone, var(--tc-mute)); flex: none; }
.tc-dot.tc-tone--warn, .tc-tone--warn .tc-dot { background: #B07A00; }

/* =====================================================================
   Home sections
   ===================================================================== */
.tc-section { padding: var(--s-10) 0; }
.tc-section-head { margin-bottom: var(--s-5); }
.tc-page-home .tc-section-head { text-align: center; }
.tc-page-home .tc-section-head .tc-section-title { justify-content: center; }
.tc-section-title { font-size: var(--fs-2xl); display: flex; align-items: center; gap: 10px; }
.tc-section-title .tc-icon { color: var(--tc-muted); }
.tc-section-lede { color: var(--tc-muted); margin-top: var(--s-1); }
.tc-section--center .tc-section-head { text-align: center; }
.tc-section--center .tc-section-title { justify-content: center; }

.tc-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s-2) var(--s-5); margin-top: var(--s-6); color: var(--tc-muted); font-size: var(--fs-sm); }
.tc-trust li { display: inline-flex; align-items: center; gap: 6px; }
.tc-trust .tc-icon { width: 18px; height: 18px; color: var(--tc-ok); }

.tc-grid { display: grid; gap: var(--s-3); }
.tc-card { background: var(--tc-card); border-radius: var(--r-card); padding: var(--s-5); box-shadow: var(--sh-1); border: 1px solid var(--tc-hair); }
.tc-card-icon { width: 40px; height: 40px; border-radius: var(--r); background: var(--tc-surface); color: var(--tc-ink); display: grid; place-items: center; flex: none; }
.tc-card-icon.tc-tone--ok, .tc-card-icon.tc-tone--warn, .tc-card-icon.tc-tone--fail, .tc-card-icon.tc-tone--info, .tc-card-icon.tc-tone--muted { background: var(--tone-bg); color: var(--tone); }
.tc-card-title { font-size: var(--fs-lg); line-height: 1.4; }
.tc-card-text { color: var(--tc-muted); font-size: var(--fs-sm); line-height: 1.65; }

/* Features: mobile = compact grouped list (icon left), ≥720 = 3×2 tiles */
.tc-grid--3 { gap: 0; background: var(--tc-card); border-radius: var(--r-card); border: 1px solid var(--tc-hair); box-shadow: var(--sh-1); overflow: hidden; }
.tc-grid--3 > .tc-card { display: grid; grid-template-columns: 40px 1fr; gap: 2px var(--s-4); align-items: start; border: 0; border-radius: 0; box-shadow: none; padding: var(--s-4); }
.tc-grid--3 > .tc-card + .tc-card { border-top: 1px solid var(--tc-hair); }
.tc-grid--3 > .tc-card .tc-card-icon { grid-row: span 2; }
.tc-feature-eg { grid-column: 2; display: flex; justify-content: space-between; align-items: center; gap: var(--s-2); margin-top: var(--s-2); padding-top: var(--s-2); border-top: 1px dashed var(--tc-hair-strong); font-size: var(--fs-sm); color: var(--tc-muted); }
.tc-feature-eg b { font-weight: 500; color: var(--tc-ink-strong); font-variant-numeric: tabular-nums; }
@media (min-width: 720px) {
  .tc-grid--3 { grid-template-columns: repeat(3, 1fr); gap: var(--s-3); background: none; border: 0; box-shadow: none; overflow: visible; }
  .tc-grid--3 > .tc-card { display: flex; flex-direction: column; gap: var(--s-1); border: 1px solid var(--tc-hair); border-radius: var(--r-card); box-shadow: var(--sh-1); padding: var(--s-5); }
  .tc-grid--3 > .tc-card + .tc-card { border-top: 1px solid var(--tc-hair); }
  .tc-grid--3 > .tc-card .tc-card-icon { margin-bottom: var(--s-2); }
  .tc-feature-eg { margin-top: auto; padding-top: var(--s-3); }
  .tc-grid--3 > .tc-card .tc-card-text { margin-bottom: var(--s-3); }
}

/* Steps */
.tc-steps { display: grid; gap: var(--s-3); counter-reset: step; }
.tc-step { display: grid; grid-template-columns: 36px 1fr; gap: 0 var(--s-3); align-items: start; align-content: start; }
.tc-step-num { grid-row: span 2; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--tc-card); box-shadow: inset 0 0 0 1px var(--tc-hair-strong); font-family: var(--tc-font-head); font-weight: 600; color: var(--tc-ink-strong); }
@media (min-width: 720px) {
  .tc-steps { grid-template-columns: repeat(3, 1fr); gap: var(--s-6); }
  .tc-step { grid-template-columns: 1fr; grid-template-rows: auto auto 1fr; }
  .tc-step-num { grid-row: auto; margin-bottom: var(--s-3); }
}

/* FAQ */
.tc-faq { max-width: var(--w-col); margin: 0 auto; background: var(--tc-card); border-radius: var(--r-card); border: 1px solid var(--tc-hair); padding: 0 var(--s-5); }
.tc-faq details + details { border-top: 1px solid var(--tc-hair); }
.tc-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: var(--s-4); align-items: center; min-height: 56px; padding: var(--s-3) 0; font-weight: 500; color: var(--tc-ink-strong); }
.tc-faq summary::-webkit-details-marker { display: none; }
.tc-faq summary .tc-icon { color: var(--tc-muted); transition: transform .2s var(--ease); }
.tc-faq details[open] summary .tc-icon { transform: rotate(180deg); }
.tc-faq details p { padding: 0 0 var(--s-4); color: var(--tc-muted); }
.tc-cta { display: none; } /* owner removed the studio CTA band */

/* Recent searches (home + result aside) */
.tc-recent { max-width: var(--w-col); margin: 0 auto; }
.tc-recent-head { display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); padding: 0 var(--s-2) var(--s-2); color: var(--tc-muted); font-size: var(--fs-sm); }
.tc-recent-head .tc-btn { color: var(--tc-muted); }
.tc-recent-list { padding: var(--s-1); background: var(--tc-card); border-radius: var(--r-card); border: 1px solid var(--tc-hair); }
.tc-recent-list li { display: flex; align-items: center; }
.tc-recent-list li + li { border-top: 1px solid var(--tc-hair); }
.tc-recent-list a { flex: 1; min-width: 0; display: grid; gap: 0; padding: 10px var(--s-3); min-height: 56px; border-radius: var(--r); color: var(--tc-ink); }
.tc-recent-list a:hover { background: var(--tc-surface); text-decoration: none; }
.tc-recent-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; color: var(--tc-ink-strong); }
.tc-recent-id { color: var(--tc-muted); font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }
.tc-layout-aside .tc-recent { margin: 0; max-width: none; }
.tc-layout-aside .tc-recent-list { border: 0; padding: 0; margin: 0 calc(var(--s-3) * -1); background: none; }
.tc-recent-note { color: var(--tc-muted); font-size: var(--fs-xs); padding: var(--s-2) var(--s-2) 0; }

/* =====================================================================
   Result page — verdict-led column (+ sticky aside ≥1080)
   ===================================================================== */
.tc-layout { max-width: calc(var(--w-col) + 32px); margin: 0 auto; padding: var(--s-4) var(--s-4) var(--s-10); display: grid; gap: var(--s-4); }
.tc-layout-main, .tc-layout-aside { display: grid; gap: var(--s-4); min-width: 0; align-content: start; }
@media (min-width: 720px) { .tc-layout { padding-top: var(--s-8); } }
@media (min-width: 1080px) {
  .tc-layout { max-width: var(--w-page); grid-template-columns: minmax(0, 1fr) var(--w-aside); gap: var(--s-6); align-items: start; }
  .tc-layout > .tc-source { grid-column: 1; }
  .tc-layout--single { max-width: calc(var(--w-col) + 32px); grid-template-columns: minmax(0, 1fr); }
}
/* critic: 3 aside cards are ~800px tall; sticking them on a 768px laptop hides the recent card. Stick only when it fits. */
@media (min-width: 1080px) and (min-height: 860px) {
  .tc-layout-aside { position: sticky; top: calc(var(--nav-h) + 24px); }
}

/* ---- Profile card = verdict band + identity (one screenshot-able unit) ---- */
.tc-company { background: var(--tc-card); border-radius: var(--r-card); box-shadow: var(--sh-2); border: 1px solid var(--tc-hair); overflow: hidden; }
.tc-company-body { padding: var(--s-5) var(--s-5) var(--s-4); }
.tc-company-type { color: var(--tc-muted); font-size: var(--fs-sm); margin-bottom: 2px; }
.tc-company-name { font-size: var(--fs-name); font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; scroll-margin-top: calc(var(--nav-h) + 16px); }
.tc-company-name:focus { outline: none; }
.tc-company-en { margin-top: 2px; color: var(--tc-muted); font-size: var(--fs-md); overflow-wrap: anywhere; }
.tc-company .tc-pills { margin-top: var(--s-3); }
.tc-idrow { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--s-2); margin-top: var(--s-4); padding-top: var(--s-3); border-top: 1px solid var(--tc-hair); }
.tc-idrow-label { flex-basis: 100%; color: var(--tc-muted); font-size: var(--fs-sm); }
.tc-taxid { font-family: var(--tc-font-head); font-weight: 500; font-size: 1.25rem; color: var(--tc-ink-strong); white-space: nowrap; margin-right: auto; }
.tc-idrow .tc-btn--icon { color: var(--tc-ink); }
.tc-company-foot { display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); padding: 10px var(--s-5); background: var(--tc-surface-2); border-top: 1px solid var(--tc-hair); color: var(--tc-muted); font-size: var(--fs-xs); }
.tc-company-foot b { font-family: var(--tc-font-head); font-weight: 700; color: var(--tc-red); font-size: var(--fs-sm); }
@media (min-width: 480px) {
  .tc-company-body { padding: var(--s-6) var(--s-6) var(--s-5); }
  .tc-idrow-label { flex-basis: auto; margin-right: var(--s-1); }
  .tc-company-foot { padding-inline: var(--s-6); }
}

/* ---- Verdict (banner on its own, or band at the top of .tc-company) ---- */
.tc-verdict { display: grid; grid-template-columns: 40px 1fr; gap: 2px var(--s-3); align-items: start; padding: var(--s-4); border-radius: var(--r-card); background: var(--tone-bg); color: var(--tc-ink-strong); }
.tc-company > .tc-verdict { border-radius: 0; padding: var(--s-4) var(--s-5) var(--s-4); }
.tc-verdict-icon { grid-row: span 3; width: 40px; height: 40px; border-radius: 50%; background: var(--tc-card); color: var(--tone); display: grid; place-items: center; box-shadow: 0 1px 2px rgba(29, 29, 31, .06); }
.tc-verdict-icon .tc-icon { width: 24px; height: 24px; }
.tc-verdict-label { font-size: var(--fs-sm); font-weight: 600; color: var(--tone); line-height: 1.4; }
.tc-verdict-headline { font-family: var(--tc-font-head); font-weight: 600; font-size: var(--fs-xl); line-height: 1.35; color: var(--tc-ink-strong); text-wrap: pretty; }
.tc-verdict-scope { font-size: var(--fs-sm); color: var(--tc-ink); line-height: 1.5; }
.tc-verdict-scope time { white-space: nowrap; }
/* Two source cells: DBD | RD (search-first) + mismatch line (dashboard) */
.tc-verdict-sources { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; gap: var(--s-2); margin-top: var(--s-3); }
.tc-verdict-source { display: grid; grid-template-columns: auto 1fr; gap: 0 var(--s-2); align-items: start; padding: 10px 12px; border-radius: var(--r); background: rgba(255, 255, 255, .72); box-shadow: inset 0 0 0 1px rgba(29, 29, 31, .05); min-width: 0; }
.tc-verdict-source .tc-icon { grid-row: span 2; width: 18px; height: 18px; margin-top: 3px; color: var(--tone, var(--tc-muted)); }
.tc-verdict-source small { display: block; font-size: var(--fs-xs); color: var(--tc-muted); line-height: 1.45; }
.tc-verdict-source strong { display: block; font-weight: 600; font-size: var(--fs-sm); line-height: 1.45; color: var(--tc-ink-strong); }
.tc-verdict-source em { font-style: normal; font-weight: 400; color: var(--tc-muted); }
.tc-verdict-match { grid-column: 1 / -1; display: flex; gap: 8px; align-items: flex-start; margin-top: var(--s-2); padding: 8px 12px; border-radius: var(--r); background: rgba(255, 255, 255, .72); font-size: var(--fs-sm); line-height: 1.5; }
.tc-verdict-match .tc-icon { color: var(--tone); margin-top: 2px; width: 18px; height: 18px; }
.tc-verdict-next { grid-column: 2; margin-top: var(--s-1); font-size: var(--fs-sm); color: var(--tc-ink); }
.tc-verdict-next b { font-weight: 600; }
/* Unverified must never look like "not found": white + dashed edge */
.tc-verdict.tc-tone--muted { background: var(--tc-card); box-shadow: inset 0 0 0 1.5px transparent; border: 1.5px dashed var(--tc-field-edge); }
.tc-company > .tc-verdict.tc-tone--muted { border-width: 0 0 1.5px; }
.tc-verdict.tc-tone--warn { box-shadow: inset 4px 0 0 var(--tc-yellow); }
@media (min-width: 420px) { .tc-verdict-sources { grid-template-columns: 1fr 1fr; } }
@media (min-width: 480px) {
  .tc-verdict { grid-template-columns: 44px 1fr; gap: 2px var(--s-4); padding: var(--s-5); }
  .tc-company > .tc-verdict { padding: var(--s-5) var(--s-6); }
  .tc-verdict-icon { width: 44px; height: 44px; }
  .tc-verdict-headline { font-size: var(--fs-2xl); }
  .tc-verdict-sources { grid-column: 2; }
  .tc-verdict-match { grid-column: 2; }
}

/* ---- Key stats: rows on mobile, 3 columns ≥560 ---- */
.tc-stats { display: grid; background: var(--tc-card); border-radius: var(--r-card); box-shadow: var(--sh-1); border: 1px solid var(--tc-hair); }
.tc-stat { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 0 var(--s-3); padding: var(--s-3) var(--s-5); }
.tc-stat + .tc-stat { border-top: 1px solid var(--tc-hair); }
.tc-stat-label { color: var(--tc-muted); font-size: var(--fs-sm); }
.tc-stat-value { font-family: var(--tc-font-head); font-weight: 600; font-size: var(--fs-xl); color: var(--tc-ink-strong); line-height: 1.3; text-align: right; white-space: nowrap; }
.tc-stat-value small { font-size: var(--fs-sm); font-weight: 500; color: var(--tc-ink); margin-left: 2px; }
.tc-stat-sub { grid-column: 1 / -1; color: var(--tc-muted); font-size: var(--fs-xs); text-align: right; font-variant-numeric: tabular-nums; }
@media (min-width: 560px) {
  .tc-stats { grid-template-columns: repeat(3, 1fr); }
  .tc-stat { display: block; padding: var(--s-4) var(--s-5); }
  .tc-stat + .tc-stat { border-top: 0; border-left: 1px solid var(--tc-hair); }
  .tc-stat-value { text-align: left; font-size: 1.5rem; margin-top: 2px; }
  .tc-stat-sub { text-align: left; }
}

/* ---- Panel = one sourced block (DBD / VAT / flags) ---- */
.tc-panel { background: var(--tc-card); border-radius: var(--r-card); border: 1px solid var(--tc-hair); box-shadow: var(--sh-1); overflow: hidden; }
.tc-panel-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-1) var(--s-3); padding: var(--s-4) var(--s-5); border-bottom: 1px solid var(--tc-hair); }
.tc-panel-title { font-size: var(--fs-lg); display: flex; align-items: center; gap: 10px; }
.tc-panel-title .tc-icon { color: var(--tc-muted); }
.tc-panel-body { padding: var(--s-4) var(--s-5); }
.tc-panel-body > p + p { margin-top: var(--s-2); }
.tc-source-chip { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-xs); color: var(--tc-muted); background: var(--tc-surface); border-radius: var(--r-pill); padding: 2px 10px; white-space: nowrap; }
.tc-source-chip .tc-icon { width: 14px; height: 14px; }
.tc-panel.tc-tone--warn, .tc-panel.tc-tone--fail, .tc-panel.tc-tone--info { background: var(--tone-bg); border-color: transparent; padding: var(--s-4) var(--s-5); display: flex; gap: var(--s-3); align-items: flex-start; }
.tc-panel.tc-tone--warn { box-shadow: inset 4px 0 0 var(--tc-yellow); }
.tc-panel.tc-tone--warn > .tc-icon, .tc-panel.tc-tone--fail > .tc-icon, .tc-panel.tc-tone--info > .tc-icon { color: var(--tone); margin-top: 3px; }

/* Facts <dl>: stacked on mobile, tinted label column ≥560 (dataforthai graft) */
.tc-facts { display: grid; }
.tc-fact { display: grid; grid-template-columns: 1fr; padding: 10px var(--s-5); }
.tc-fact + .tc-fact { border-top: 1px solid var(--tc-hair); }
.tc-fact-label { display: flex; align-items: center; gap: 6px; color: var(--tc-muted); font-size: var(--fs-sm); line-height: 1.5; }
.tc-fact-label .tc-icon { display: none; }
.tc-fact-value { color: var(--tc-ink-strong); font-weight: 500; overflow-wrap: anywhere; line-height: 1.6; }
.tc-fact-value small { display: block; color: var(--tc-muted); font-weight: 400; font-size: var(--fs-sm); }
.tc-fact-value small .tc-icon { display: inline; vertical-align: -3px; width: 15px; height: 15px; color: var(--tc-ok); margin-right: 2px; }
.tc-fact-value.is-empty { color: var(--tc-muted); font-weight: 400; }
/* critic: name_match=false must not show the forced-green check. <small class="tc-tone--warn"> + alert-triangle */
.tc-fact-value small[class*="tc-tone--"] .tc-icon { color: var(--tone); }
.tc-fact-value small.tc-tone--warn { color: var(--tc-warn); }
@media (min-width: 560px) {
  .tc-fact { grid-template-columns: 200px 1fr; padding: 0; }
  .tc-fact-label { padding: 12px var(--s-5); background: var(--tc-surface-2); border-right: 1px solid var(--tc-hair); align-items: flex-start; }
  .tc-fact-value { padding: 12px var(--s-5); }
}
.tc-panel .tc-facts:first-child .tc-fact:first-child { border-top: 0; }

/* Explainer inside a panel (friendly graft — only for "ไม่พบ VAT") */
.tc-explain { border-top: 1px solid var(--tc-hair); }
.tc-explain summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 var(--s-5); color: var(--tc-link); font-size: var(--fs-sm); font-weight: 500; }
.tc-explain summary::-webkit-details-marker { display: none; }
.tc-explain summary .tc-icon { width: 18px; height: 18px; }
.tc-explain p { padding: 0 var(--s-5) var(--s-4); color: var(--tc-ink); font-size: var(--fs-sm); }

/* ---- Flags = "สิ่งที่ตรวจแล้ว" checklist, worst first ---- */
.tc-flags { display: grid; }
.tc-flag { display: grid; grid-template-columns: 22px 1fr; gap: 0 var(--s-3); align-items: start; padding: var(--s-3) var(--s-5); font-size: var(--fs-md); color: var(--tc-ink-strong); line-height: 1.55; }
.tc-flag + .tc-flag { border-top: 1px solid var(--tc-hair); }
.tc-flag > .tc-icon { color: var(--tone); width: 20px; height: 20px; margin-top: 2px; }
.tc-flag.tc-tone--warn, .tc-flag.tc-tone--fail { background: var(--tone-bg); }
.tc-flag.tc-tone--warn { box-shadow: inset 4px 0 0 var(--tc-yellow); }
.tc-flag-next { grid-column: 2; display: block; color: var(--tc-ink); font-size: var(--fs-sm); margin-top: 2px; }
.tc-flag-next b { font-weight: 600; }

/* ---- Actions: on phones they dock to the bottom (thumb zone), no JS ---- */
.tc-actions { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.tc-actions--dock {
  position: sticky; bottom: 0; z-index: 20; flex-wrap: nowrap;
  margin: 0 calc(var(--s-4) * -1); padding: 10px var(--s-4) max(10px, env(safe-area-inset-bottom));
  background: rgba(245, 245, 247, .9); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  border-top: 1px solid var(--tc-hair);
}
.tc-actions--dock .tc-btn { flex: 1 1 0; padding: 0 10px; font-size: .9375rem; }
/* critic: 3 nowrap buttons overflowed at 320px (WCAG 1.4.10 reflow) — let them shrink, drop icons on very narrow phones */
.tc-actions--dock .tc-btn { min-width: 0; gap: 6px; }
@media (max-width: 359px) { .tc-actions--dock .tc-btn { padding: 0 6px; font-size: .875rem; } .tc-actions--dock .tc-btn .tc-icon { display: none; } }
.tc-actions--dock .tc-btn--extra { display: none; }
@media (min-width: 720px) {
  .tc-actions--dock { position: static; margin: 0; padding: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; border: 0; flex-wrap: wrap; }
  .tc-actions--dock .tc-btn { flex: none; padding: 0 18px; }
  .tc-actions--dock .tc-btn--extra { display: inline-flex; }
}

/* ---- Source line + owner warning (no links, no route/ms/cache) ---- */
.tc-source { display: grid; gap: var(--s-2); color: var(--tc-muted); font-size: var(--fs-sm); line-height: 1.65; padding: var(--s-2) var(--s-1) 0; }
.tc-source p { display: flex; gap: 8px; align-items: flex-start; }
.tc-source .tc-icon { width: 16px; height: 16px; margin-top: 4px; }
.tc-disclaimer { color: var(--tc-muted); font-size: var(--fs-sm); line-height: 1.65; }
.tc-source .tc-disclaimer { color: var(--tc-ink); }
.tc-source .tc-disclaimer .tc-icon { color: var(--tc-warn); }

/* ---- Aside cards (ledger grafts) ---- */
.tc-aside-card { background: var(--tc-card); border-radius: var(--r-card); border: 1px solid var(--tc-hair); box-shadow: var(--sh-1); padding: var(--s-4) var(--s-5) var(--s-5); }
.tc-aside-title { font-size: 1rem; display: flex; align-items: center; gap: 8px; margin-bottom: var(--s-1); }
.tc-aside-title .tc-icon { color: var(--tc-muted); width: 18px; height: 18px; }
.tc-aside-lede { color: var(--tc-muted); font-size: var(--fs-sm); margin-bottom: var(--s-2); }
/* "ใช้กรอกใบกำกับภาษี" copy rows */
.tc-copyrows { margin-bottom: var(--s-3); }
.tc-copyrow { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0 var(--s-2); padding: 6px 0; }
.tc-copyrow + .tc-copyrow { border-top: 1px solid var(--tc-hair); }
.tc-copyrow dt { color: var(--tc-muted); font-size: var(--fs-xs); }
.tc-copyrow dd { grid-column: 1; font-weight: 500; color: var(--tc-ink-strong); font-size: var(--fs-sm); overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.tc-copyrow .tc-btn { grid-column: 2; grid-row: 1 / span 2; }
/* "ขอบเขตการตรวจครั้งนี้" */
.tc-scope { display: grid; gap: 6px; font-size: var(--fs-sm); }
.tc-scope li { display: grid; grid-template-columns: 18px 1fr; gap: 8px; align-items: start; }
.tc-scope .tc-icon { width: 18px; height: 18px; margin-top: 2px; color: var(--tone, var(--tc-muted)); }
.tc-scope-out { margin-top: var(--s-3); padding-top: var(--s-3); border-top: 1px solid var(--tc-hair); color: var(--tc-muted); font-size: var(--fs-sm); }
.tc-scope-out b { color: var(--tc-ink); font-weight: 500; display: block; }

/* ---- Empty / not found / error (never red) ---- */
.tc-empty { text-align: center; padding: var(--s-10) var(--s-5); background: var(--tc-card); border-radius: var(--r-card); border: 1px solid var(--tc-hair); box-shadow: var(--sh-1); }
.tc-empty > .tc-card-icon, .tc-empty-icon { width: 56px; height: 56px; margin: 0 auto var(--s-4); border-radius: 50%; background: var(--tc-surface); color: var(--tc-muted); display: grid; place-items: center; }
.tc-empty > .tc-card-icon .tc-icon, .tc-empty-icon .tc-icon { width: 28px; height: 28px; }
.tc-empty h1, .tc-empty h2 { font-size: var(--fs-2xl); margin-bottom: var(--s-2); }
.tc-empty p { color: var(--tc-muted); max-width: 44ch; margin: 0 auto; }
.tc-empty p + p { margin-top: var(--s-2); }
.tc-empty ul { text-align: left; max-width: 40ch; margin: var(--s-4) auto 0; display: grid; gap: 6px; color: var(--tc-ink); font-size: var(--fs-sm); }
.tc-empty ul li { display: grid; grid-template-columns: 16px 1fr; gap: 8px; }
.tc-empty ul li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--tc-field-edge); margin: 9px 0 0 5px; }
.tc-empty .tc-actions { justify-content: center; margin-top: var(--s-6); }
.tc-empty .tc-digits { margin-top: var(--s-3); justify-content: center; }
.tc-panel.tc-empty, .tc-card.tc-empty { padding: var(--s-8) var(--s-5); }

/* ---- Banner (429 / upstream) with countdown ---- */
.tc-banner { display: grid; grid-template-columns: 22px 1fr; gap: 2px var(--s-3); padding: var(--s-4) var(--s-5); border-radius: var(--r-card); background: var(--tone-bg); color: var(--tc-ink-strong); }
.tc-banner.tc-tone--warn { box-shadow: inset 4px 0 0 var(--tc-yellow); }
.tc-banner > .tc-icon { color: var(--tone); margin-top: 3px; grid-row: span 3; }
.tc-banner-title { font-family: var(--tc-font-head); font-weight: 600; font-size: var(--fs-lg); line-height: 1.4; }
.tc-banner-text { font-size: var(--fs-sm); color: var(--tc-ink); }
.tc-banner .tc-actions { margin-top: var(--s-3); }
.tc-countdown { margin-top: var(--s-3); display: grid; gap: 6px; }
.tc-countdown-bar { height: 6px; border-radius: 3px; background: rgba(29, 29, 31, .08); overflow: hidden; }
.tc-countdown-bar i { display: block; height: 100%; width: var(--p, 40%); background: var(--tc-yellow); border-radius: 3px; transition: width 1s linear; }
.tc-countdown .num { font-family: var(--tc-font-head); font-weight: 600; font-size: 1.25rem; }

/* ---- Skeleton (loading) — same shape as the profile card ---- */
.tc-skel { display: block; border-radius: var(--r-sm); background: linear-gradient(90deg, #ECECEF 0%, #F6F6F8 40%, #ECECEF 80%); background-size: 300% 100%; animation: tc-shimmer 1.4s ease-in-out infinite; }
.tc-skel--line { height: 14px; margin: 10px 0; }
.tc-skel--title { height: 30px; width: 72%; margin: 6px 0 12px; }
.tc-skel--band { height: 92px; border-radius: 0; }
.tc-skel-note { color: var(--tc-muted); font-size: var(--fs-sm); text-align: center; }
@keyframes tc-shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }

/* ---- Name search results ---- */
.tc-search-results .tc-section-title { flex-wrap: wrap; }
.tc-results-count { font-family: var(--tc-font); font-size: var(--fs-sm); font-weight: 500; color: var(--tc-muted); }
.tc-results { background: var(--tc-card); border-radius: var(--r-card); border: 1px solid var(--tc-hair); box-shadow: var(--sh-1); overflow: hidden; margin-top: var(--s-4); }
.tc-results > li + li { border-top: 1px solid var(--tc-hair); }
.tc-result { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); min-height: 64px; color: var(--tc-ink); }
.tc-result:hover { background: var(--tc-surface-2); text-decoration: none; }
.tc-result-main { flex: 1; min-width: 0; display: grid; gap: 2px; }
.tc-result-name { font-weight: 600; color: var(--tc-ink-strong); overflow-wrap: anywhere; }
.tc-result-meta { color: var(--tc-muted); font-size: var(--fs-sm); }
.tc-result-meta .tc-taxid { font-family: var(--tc-font); font-size: var(--fs-sm); font-weight: 500; color: var(--tc-ink); margin: 0; }
.tc-result .tc-pills { margin-top: 4px; }
.tc-result .tc-pill { min-height: 24px; font-size: var(--fs-xs); }
.tc-result-go { color: var(--tc-muted); flex: none; }
.tc-result:hover .tc-result-go { color: var(--tc-ink); }
.tc-results-note { margin-top: var(--s-3); color: var(--tc-muted); font-size: var(--fs-sm); }

/* =====================================================================
   Long-text pages (privacy) / 404
   ===================================================================== */
.tc-prose { max-width: var(--w-col); margin: 0 auto; }
.tc-prose h2, .tc-prose .tc-section-title { font-size: var(--fs-xl); margin: var(--s-8) 0 var(--s-2); }
.tc-prose p, .tc-prose li { color: var(--tc-ink); margin-bottom: var(--s-3); }
.tc-prose ul { padding-left: 1.25em; }

/* =====================================================================
   Status / self-test (unlisted)
   ===================================================================== */
.tc-status-hero .tc-eyebrow { color: var(--tc-muted); }
.tc-status-grid { display: grid; gap: var(--s-3); }
@media (min-width: 720px) { .tc-status-grid { grid-template-columns: repeat(2, 1fr); } }
.tc-components { display: grid; background: var(--tc-card); border-radius: var(--r-card); border: 1px solid var(--tc-hair); box-shadow: var(--sh-1); overflow: hidden; }
.tc-component { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-5); min-height: 52px; }
.tc-component + .tc-component { border-top: 1px solid var(--tc-hair); }
.tc-component-name { flex: 1; min-width: 0; font-weight: 500; color: var(--tc-ink-strong); }
.tc-component-ms { color: var(--tc-muted); font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }
.tc-service { background: var(--tc-card); border-radius: var(--r-card); border: 1px solid var(--tc-hair); box-shadow: var(--sh-1); padding: 0; overflow: hidden; display: grid; }
.tc-service-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: var(--s-2); padding: var(--s-4) var(--s-5) var(--s-3); }
.tc-service-name { font-family: var(--tc-font-head); font-weight: 600; font-size: var(--fs-lg); color: var(--tc-ink-strong); line-height: 1.4; }
.tc-service-path { display: flex; align-items: center; gap: 6px; margin-top: 2px; font-size: var(--fs-xs); color: var(--tc-muted); }
.tc-service-path code { background: var(--tc-mute-soft); color: var(--tc-ink); padding: 1px 6px; border-radius: 6px; }
.tc-method { font-family: ui-monospace, Menlo, monospace; font-size: .75rem; font-weight: 600; color: var(--tc-info); background: var(--tc-info-soft); padding: 1px 6px; border-radius: 6px; }
.tc-metrics { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--tc-hair); border-bottom: 1px solid var(--tc-hair); background: var(--tc-surface-2); }
.tc-metric { padding: var(--s-3) var(--s-4); }
.tc-metric + .tc-metric { border-left: 1px solid var(--tc-hair); }
.tc-metric dt { color: var(--tc-muted); font-size: var(--fs-xs); }
.tc-metric dd { font-family: var(--tc-font-head); font-weight: 600; font-size: 1.125rem; color: var(--tc-ink-strong); font-variant-numeric: tabular-nums; }
.tc-upstream-list { display: grid; padding: var(--s-2) var(--s-5) var(--s-3); }
.tc-upstream { display: flex; align-items: center; gap: var(--s-2); padding: 8px 0; font-size: var(--fs-sm); }
.tc-upstream + .tc-upstream { border-top: 1px dashed var(--tc-hair-strong); }
.tc-upstream-name { flex: 1; min-width: 0; color: var(--tc-ink); }
.tc-upstream-meta { color: var(--tc-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tc-service-foot { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-4); padding: 10px var(--s-5); border-top: 1px solid var(--tc-hair); color: var(--tc-muted); font-size: var(--fs-xs); }
.tc-service-foot span { display: inline-flex; align-items: center; gap: 6px; }

.tc-table-wrap { overflow-x: auto; background: var(--tc-card); border-radius: var(--r-card); border: 1px solid var(--tc-hair); }
.tc-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.tc-table th { text-align: left; font-weight: 500; color: var(--tc-muted); padding: 10px var(--s-4); background: var(--tc-surface-2); border-bottom: 1px solid var(--tc-hair); white-space: nowrap; }
.tc-table td { padding: var(--s-3) var(--s-4); border-top: 1px solid var(--tc-hair); vertical-align: top; color: var(--tc-ink); }
.tc-table tr:first-child td { border-top: 0; }
.tc-table .is-num { text-align: right; white-space: nowrap; }
.tc-table td.is-empty { color: var(--tc-muted); text-align: center; padding: var(--s-6) var(--s-4); }
.tc-selftest { display: grid; gap: var(--s-4); }
.tc-selftest-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-3); }
.tc-selftest-head > div { flex: 1 1 0; min-width: min(100%, 240px); }
.tc-selftest-note { color: var(--tc-muted); font-size: var(--fs-xs); }
@media (max-width: 559px) {
  /* self-test table → stacked rows on phones */
  .tc-table--stack thead { display: none; }
  .tc-table--stack tr { display: grid; grid-template-columns: 1fr auto; gap: 2px var(--s-3); padding: var(--s-3) var(--s-4); border-top: 1px solid var(--tc-hair); }
  .tc-table--stack tr:first-child { border-top: 0; }
  .tc-table--stack td { padding: 0; border: 0; }
  .tc-table--stack td[data-label]::before { content: attr(data-label) " "; color: var(--tc-muted); font-size: var(--fs-xs); }
  .tc-table--stack td:first-child { grid-column: 1 / -1; font-weight: 500; color: var(--tc-ink-strong); }
  .tc-table--stack td.is-num { text-align: left; }
  .tc-table--stack td.is-empty { grid-column: 1 / -1; color: var(--tc-muted); font-weight: 400; text-align: center; padding: var(--s-4) 0; } /* critic */
}

/* =====================================================================
   Footer — recedes. Owner: no status link, no about.
   ===================================================================== */
.tc-footer { margin-top: var(--s-10); border-top: 1px solid var(--tc-hair); color: var(--tc-muted); font-size: var(--fs-sm); }
.tc-footer-inner { padding: var(--s-8) var(--s-4) var(--s-10); display: grid; gap: var(--s-2); }
.tc-footer-brand { color: var(--tc-ink); }
.tc-footer-brand strong { font-family: var(--tc-font-head); font-weight: 600; }
.tc-footer-links { display: flex; flex-wrap: wrap; gap: 0 var(--s-5); margin: var(--s-1) 0; }
.tc-footer-links a { color: var(--tc-ink); display: inline-flex; min-height: 44px; align-items: center; }
.tc-footer-copy { font-size: var(--fs-xs); }
.tc-page-result .tc-footer { margin-top: 0; }

/* =====================================================================
   Toast — tcw.js toggles .is-idle / .is-hiding (visible = neither)
   ===================================================================== */
.tc-toast {
  position: fixed; left: 50%; bottom: max(88px, calc(env(safe-area-inset-bottom) + 80px)); z-index: 90;
  display: inline-flex; align-items: center; gap: 8px; max-width: calc(100vw - 32px);
  padding: 10px 18px 10px 14px; border-radius: var(--r-pill); background: var(--tc-ink-strong); color: #fff;
  font-size: var(--fs-sm); box-shadow: 0 8px 24px rgba(29, 29, 31, .2);
  transform: translate(-50%, 0); opacity: 1; transition: opacity .2s var(--ease), transform .2s var(--ease); pointer-events: none;
}
.tc-toast::before { content: ""; width: 18px; height: 18px; flex: none; background: #7FD49B; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.5 12.5l2.5 2.5 4.5-5'/%3E%3C/svg%3E") center / 18px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.5 12.5l2.5 2.5 4.5-5'/%3E%3C/svg%3E") center / 18px no-repeat; }
.tc-toast.is-idle, .tc-toast.is-hiding { opacity: 0; transform: translate(-50%, 12px); }
.tc-toast.is-idle { visibility: hidden; }
@media (min-width: 720px) { .tc-toast { bottom: 32px; } }

/* =====================================================================
   Motion & print
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .tc-skel { animation: none; }
}

@media print {
  @page { margin: 14mm; }
  body { background: #fff; font-size: 11pt; }
  .tc-nav .tc-search--compact, .tc-nav-verdict, .tc-actions, .tc-idrow .tc-btn,
  .tc-layout-aside .tc-recent, .tc-copyrow .tc-btn, .tc-aside-card .tc-btn, .tc-footer-links, .tc-toast, .tc-skip { display: none !important; }
  .tc-nav { position: static; background: none; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .tc-layout { display: block; max-width: none; padding: 0; }
  .tc-layout > * + *, .tc-layout-main > * + *, .tc-layout-aside > * { margin-top: 10pt; }
  .tc-company, .tc-panel, .tc-stats, .tc-aside-card { box-shadow: none; border: 1px solid #ccc; break-inside: avoid; }
  .tc-verdict, .tc-flag, .tc-pill { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .tc-footer { margin-top: 12pt; border-top: 1px solid #ccc; }
}
.tc-layout-aside .tc-recent-note { padding-left: 0; }

/* =====================================================================
   Critic pass additions (gaps found against SPEC + research)
   ===================================================================== */
/* Footer data-source sentence (was unstyled) */
.tc-footer-note { color: var(--tc-muted); font-size: var(--fs-sm); max-width: 72ch; }

/* Province / text-valued stat (replaces inline style in the mockup) */
.tc-stat-value--text { font-size: var(--fs-lg); white-space: normal; overflow-wrap: anywhere; }
@media (min-width: 560px) { .tc-stat-value--text { font-size: 1.125rem; } }
.tc-stat-value.is-empty { color: var(--tc-muted); font-weight: 500; }

/* Person result: masked id + privacy foot (no copy/share, no URL) */
.tc-taxid .tc-mask { color: var(--tc-muted); }
.tc-company-foot--privacy { justify-content: flex-start; gap: 8px; color: var(--tc-ink); }
.tc-company-foot--privacy .tc-icon { width: 16px; height: 16px; color: var(--tc-info); flex: none; }

/* Sub-heading inside a column (status page, search page) — replaces inline font-size styles */
.tc-subhead { font-family: var(--tc-font-head); font-weight: 600; font-size: var(--fs-lg); color: var(--tc-ink-strong); margin: var(--s-2) 0 10px; }

/* Self-test: running row + fail reason */
.tc-table td .tc-selftest-reason { display: block; color: var(--tc-muted); font-size: var(--fs-xs); margin-top: 2px; white-space: normal; }
.tc-table tr.is-running td { color: var(--tc-muted); }

/* Name search: truncated note sits above the list, coverage note below */
.tc-results-more { margin-top: var(--s-2); color: var(--tc-ink); font-size: var(--fs-sm); display: flex; gap: 6px; align-items: flex-start; }
.tc-results-more .tc-icon { width: 16px; height: 16px; margin-top: 4px; color: var(--tc-info); }
.tc-result.is-dissolved .tc-result-name { color: var(--tc-ink); }

/* Page-level column for search / privacy / 404 / lookup-error (single 680 column) */
.tc-page-col { max-width: calc(var(--w-col) + 32px); margin: 0 auto; padding: var(--s-4) var(--s-4) var(--s-10); display: grid; gap: var(--s-4); }
@media (min-width: 720px) { .tc-page-col { padding-top: var(--s-8); } }

/* Privacy page: section cards with a quiet "สรุป" box */
.tc-prose-summary { background: var(--tc-card); border: 1px solid var(--tc-hair); border-radius: var(--r-card); padding: var(--s-4) var(--s-5); box-shadow: var(--sh-1); }
.tc-prose-summary ul { padding: 0; list-style: none; display: grid; gap: 6px; }
.tc-prose-summary li { display: grid; grid-template-columns: 18px 1fr; gap: 8px; margin: 0; }
.tc-prose-summary .tc-icon { width: 18px; height: 18px; margin-top: 4px; color: var(--tc-ok); }
.tc-prose .tc-btn { margin-top: var(--s-1); }

/* Toast variants are copy-only; the error toast (clipboard blocked) uses an alert glyph */
.tc-toast.is-error::before { background: #FFB4B4; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5h.01'/%3E%3C/svg%3E") center / 18px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5h.01'/%3E%3C/svg%3E") center / 18px no-repeat; }


/* =====================================================================
   Real-site adaptation (implementation pass). Keeps every class the PHP
   partials / pages / tcw.js still emit styled, including markup that the
   page rewrites may leave in place.
   ===================================================================== */
/* Name search (search.php): pills may sit beside .tc-result-main; the list stays in the 680 column */
.tc-search-results > .tc-container { max-width: calc(var(--w-col) + 32px); }
.tc-search-results .tc-section-title { gap: 4px 10px; overflow-wrap: anywhere; }
.tc-search-results .tc-section-title + .tc-card-text { margin-top: var(--s-1); }
.tc-search-results .tc-search { margin-top: var(--s-5); }
.tc-search-results .tc-panel[class*="tc-tone--"], .tc-search-results .tc-empty { margin-top: var(--s-4); }
.tc-result-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0 6px; overflow-wrap: anywhere; }
.tc-result > .tc-pills { flex: 0 1 auto; justify-content: flex-end; margin-top: 0; max-width: 45%; }
.tc-result .tc-pill { white-space: normal; text-align: left; }
@media (max-width: 479px) {
  .tc-result { flex-wrap: wrap; row-gap: var(--s-1); }
  .tc-result-main { flex: 1 1 calc(100% - 40px); }
  .tc-result > .tc-pills { order: 3; flex: 1 1 100%; max-width: none; justify-content: flex-start; }
  .tc-result > .tc-result-go { order: 2; }
}
.tc-results-note, .tc-results-more { overflow-wrap: anywhere; }
.tc-results + .tc-disclaimer, .tc-results ~ .tc-disclaimer { margin-top: var(--s-3); }

/* Owner source footer / warning lines and any inline-icon notice */
.tc-disclaimer { display: flex; gap: 8px; align-items: flex-start; }
.tc-disclaimer > .tc-icon { width: 16px; height: 16px; margin-top: 4px; color: var(--tc-muted); }
.tc-source .tc-disclaimer > .tc-icon, .tc-disclaimer > .tc-icon--alert-triangle { color: var(--tc-warn); }
.tc-panel[class*="tc-tone--"] > p { display: flex; gap: 8px; align-items: flex-start; color: var(--tc-ink); }
.tc-panel[class*="tc-tone--"] .tc-icon { color: var(--tone); }
.tc-panel[class*="tc-tone--"] > p > .tc-icon { margin-top: 4px; }
.tc-panel[class*="tc-tone--"] > div { min-width: 0; }

/* Home hero: centred (owner); the hint/kbd row keeps the mockup's left/right split */
.tc-hero:not(.tc-hero--compact) .tc-field-error { text-align: left; }
.tc-hero--compact .tc-samples { justify-content: flex-start; }

/* Legacy identity markup (pre-final result-card.php): keep it readable until replaced */
.tc-company-head { border: 0; border-radius: 0; box-shadow: none; padding: var(--s-5); }
.tc-company-head .tc-taxid { margin-top: var(--s-3); }
.tc-taxid-value { display: inline-flex; align-items: center; gap: 6px; font-family: var(--tc-font-head); font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tc-taxid-value .tc-icon { color: var(--tc-muted); }
.tc-verdict > div, .tc-verdict-body { min-width: 0; }

/* Person result (tc-company--person): no copy/share; masked id never wraps mid-group */
.tc-company--person .tc-taxid { letter-spacing: 0; }

/* Status page legacy helpers still emitted by markup */
.tc-pill code { font-size: .75rem; background: rgba(255, 255, 255, .6); padding: 0 4px; border-radius: 4px; }
.tc-selftest-results { min-width: 0; }
.tc-table td.num, .tc-table .tc-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Privacy prose: lead paragraph, clear-recent button sits on its own line */
.tc-prose .tc-lead { font-size: 1.0625rem; color: var(--tc-muted); }
.tc-prose > :first-child { margin-top: 0; }

/* Phones: the sticky action dock must never hide focused controls (WCAG 2.4.11), and the
   name + 13-digit id must sit above the dock on a real visible viewport (390x664, 360x640). */
@media (max-width: 719px) {
  html { scroll-padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  .tc-company > .tc-verdict { padding: var(--s-3) var(--s-4); }
  .tc-verdict-headline { font-size: 1.125rem; }
  .tc-verdict-scope { font-size: var(--fs-xs); grid-column: 1 / -1; margin-top: 2px; }
  .tc-verdict-icon { grid-row: span 2; }
  .tc-verdict-sources { gap: 6px; margin-top: var(--s-2); }
  .tc-verdict-source { padding: 6px 10px; }
  .tc-verdict-source .tc-icon { margin-top: 2px; }
  .tc-company-body { padding: var(--s-3) var(--s-4) var(--s-3); }
  .tc-idrow { margin-top: var(--s-2); padding-top: var(--s-2); }
}
