/* ==========================================================================
   app.css - TreatmentCosts interactive surfaces (NOT loaded on the high-traffic
   public pages). Conditionally enqueued only on: single clinic profiles, the
   owner dashboard / add-clinic / for-clinics pages, and the contact page.
   Keeping these rules out of main.css trims the render-blocking CSS on the
   homepage, money pages and directory. Depends on tokens.css for variables.
   ========================================================================== */

/* Manage-clinic dashboard - a full-width app surface, not prose. */
.tc-content--wide { max-width: none; }
.tc-manage-clinic { max-width: 1140px; margin-inline: auto; }
.tc-mc-head { display: flex; align-items: center; justify-content: space-between; gap: var(--tc-sp-3); margin-bottom: var(--tc-sp-4); flex-wrap: wrap; }
.tc-mc-plan { font-size: var(--tc-fs-sm); font-weight: 600; padding: 4px 10px; border-radius: 999px; background: var(--tc-bg-alt, #f5f7fa); }
.tc-mc-card {
	background: #fff; border: 1px solid var(--tc-border, #e3e8ee); border-radius: var(--tc-radius-lg, 16px);
	padding: var(--tc-sp-5, 24px); margin-bottom: var(--tc-sp-4, 20px); box-shadow: var(--tc-shadow-sm);
}
.tc-mc-card h3 { margin-top: 0; display: flex; align-items: center; gap: 8px; font-size: var(--tc-fs-lg); }
.tc-mc-card h3 + .tc-mc-muted, .tc-mc-card h3 + .tc-mc-note { margin-top: -2px; }
/* Self-service "add a clinic" disclosure + the clinic-page "other locations" block. */
.tc-mc-addclinic summary { cursor: pointer; list-style: none; display: flex; flex-direction: column; gap: 2px; }
.tc-mc-addclinic summary::-webkit-details-marker { display: none; }
.tc-mc-addclinic summary strong { font-size: var(--tc-fs-md); }
.tc-mc-addclinic[open] summary { margin-bottom: var(--tc-sp-4); padding-bottom: var(--tc-sp-3); border-bottom: 1px solid var(--tc-line, #e4ebed); }
.tc-mc-addclinic .tc-btn { margin-top: var(--tc-sp-2); }
.tc-clinic-locations { margin-top: var(--tc-sp-6); }
.tc-clinic-locations__list { list-style: none; margin: var(--tc-sp-3) 0 0; padding: 0; display: grid; gap: var(--tc-sp-2); }
.tc-clinic-locations__list a { display: flex; gap: var(--tc-sp-2); align-items: baseline; padding: var(--tc-sp-3); border: 1px solid var(--tc-line, #e4ebed); border-radius: var(--tc-radius, 12px); }
.tc-clinic-locations__list a:hover { border-color: var(--tc-primary); }
.tc-mc-card--locked { opacity: .85; }
.tc-mc-soon { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #8a6d00; background: #fcf0d6; padding: 2px 8px; border-radius: 999px; margin-left: 4px; }

/* --------------------------------------------------------------------------
   Field groups - divide a long dashboard form into labelled, boxed sections
   so each piece of functionality reads as its own block instead of one wall
   of inputs. Used on the clinic + specialist profile/edit forms.
   -------------------------------------------------------------------------- */
.tc-fgroup { border: 1px solid var(--tc-line, #e4ebed); border-radius: var(--tc-radius, 12px); background: var(--tc-bg-alt, #f7f9fb); padding: var(--tc-sp-4, 18px); margin-bottom: var(--tc-sp-4, 20px); }
.tc-fgroup__h { display: flex; align-items: center; gap: 8px; margin: 0 0 3px; font-size: var(--tc-fs-base, 15px); font-weight: 800; color: var(--tc-ink); letter-spacing: -.01em; }
.tc-fgroup__sub { margin: 0 0 var(--tc-sp-4); font-size: var(--tc-fs-sm); color: var(--tc-muted); line-height: 1.5; }
.tc-fgroup > *:last-child { margin-bottom: 0; }
/* Nested hint boxes flip to white so they lift off the tinted group. */
.tc-fgroup .tc-mc-hint { background: #fff; }
@media (max-width: 600px) { .tc-fgroup { padding: var(--tc-sp-3, 14px); } }

/* Dashboard header preview link + pending banner. */
.tc-mc-head h2 { margin: 0; }
.tc-mc-preview { font-weight: 600; white-space: nowrap; color: var(--tc-primary-700); }
.tc-mc-preview--soon { color: var(--tc-muted); font-weight: 500; }
.tc-mc-pending { background: var(--tc-amber-100); border: 1px solid var(--tc-amber); color: var(--tc-ink-700); padding: 14px 18px; border-radius: var(--tc-radius-lg); margin-bottom: var(--tc-sp-5); font-size: var(--tc-fs-sm); line-height: 1.55; }
.tc-mc-pending strong { color: var(--tc-warning); }
/* "Check your prices first" callout - front-and-centre nudge above the dashboard tabs. */
.tc-mc-pricecta { display: flex; align-items: center; gap: 14px; margin: 0 0 var(--tc-sp-5); padding: 15px 18px; border: 1px solid var(--tc-primary); border-radius: var(--tc-radius-lg); background: color-mix(in srgb, var(--tc-primary) 8%, #fff); }
.tc-mc-pricecta__ico { flex: 0 0 auto; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--tc-primary); color: #fff; }
.tc-mc-pricecta__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; }
.tc-mc-pricecta__body strong { font-size: 1rem; color: var(--tc-primary-700); }
.tc-mc-pricecta__body span { font-size: var(--tc-fs-sm); color: var(--tc-muted); line-height: 1.5; }
.tc-mc-pricecta__btn { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 640px) { .tc-mc-pricecta { flex-wrap: wrap; } .tc-mc-pricecta__btn { width: 100%; text-align: center; } }
/* Reward state: the same callout turns green the moment prices are confirmed. */
.tc-mc-pricecta--done { border-color: var(--tc-success); background: var(--tc-success-100); animation: tc-pricecta-pop .4s ease both; }
.tc-mc-pricecta--done .tc-mc-pricecta__ico { background: var(--tc-success); }
.tc-mc-pricecta--done .tc-mc-pricecta__body strong { color: var(--tc-success); }
@keyframes tc-pricecta-pop { from { transform: scale(.98); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .tc-mc-pricecta--done { animation: none; } }
.tc-mc-note { font-size: var(--tc-fs-sm); color: var(--tc-muted); margin: 0 0 var(--tc-sp-3); }
.tc-pwcard { max-width: 440px; margin: var(--tc-sp-6) auto; }
.tc-pwcard .lost-password-url{
	margin-top: var(--tc-sp-3)
}
/* Dashboard tabs: a left sidebar nav + a content panel (an app layout, not pills). */
.tc-mc-tabs { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--tc-sp-6); align-items: start; margin-top: var(--tc-sp-6); }
.tc-mc-tabs .tc-tabs__nav { flex-direction: column; flex-wrap: nowrap; gap: 3px; margin-bottom: 0; padding: var(--tc-sp-3); border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); background: #fff; box-shadow: var(--tc-shadow-sm); overflow: visible; position: sticky; top: var(--tc-sp-4); }
.tc-mc-tabs .tc-tabs__tab { width: 100%; justify-content: flex-start; text-align: left; padding: 9px 14px; border-radius: var(--tc-radius); font-size: var(--tc-fs-sm); font-weight: 600; }
/* Grouped tabs: teal section headings, a hairline divider between groups, and a
   leading icon per tab (teal when idle, white on the active tab). */
.tc-mc-tabs .tc-tabs__group { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; color: var(--tc-primary-700, #0a5c61); padding: 15px 14px 6px; margin-top: 7px; border-top: 1px solid var(--tc-line); }
.tc-mc-tabs .tc-tabs__nav > .tc-tabs__group:first-child { margin-top: 0; padding-top: 2px; border-top: 0; }
.tc-mc-tabs .tc-tabs__ico { flex: 0 0 auto; color: var(--tc-primary-700, #0a5c61); }
.tc-mc-tabs .tc-tabs__tab.is-active .tc-tabs__ico { color: #fff; }
.tc-mc-tabs .tc-tabs__tab.is-active { box-shadow: none; }
.tc-mc-tabs .tc-tabs__panel { padding-top: 0; }
.tc-mc-tabs .tc-tabs__panel .tc-mc-card:last-child { margin-bottom: 0; }
@media (max-width: 880px) {
	.tc-mc-tabs { grid-template-columns: 1fr; gap: var(--tc-sp-4); }
	.tc-mc-tabs .tc-tabs__nav { flex-direction: row; flex-wrap: nowrap; overflow-x: auto; position: static; -webkit-overflow-scrolling: touch; }
	.tc-mc-tabs .tc-tabs__tab { width: auto; white-space: nowrap; }
	.tc-mc-tabs .tc-tabs__group { display: none; } /* headings don't fit the horizontal scroll rail */
}
/* Phone: tighten the dashboard + let multi-field rows stack. */
@media (max-width: 600px) {
	.tc-mc-card { padding: var(--tc-sp-4); }
	.tc-mc-topbar { padding: var(--tc-sp-3) var(--tc-sp-4); }
	.tc-mc-topbar__right { flex: 1 1 100%; justify-content: space-between; }
	.tc-consadd__row { flex-wrap: wrap; }
	.tc-consadd__row > select, .tc-consadd__row > input { flex: 1 1 140px; }
	.tc-specadd__body { padding: var(--tc-sp-4); }
	.tc-mc-treattable td:last-child { width: auto; }
	.tc-mc-cons { align-items: flex-start; }
	.tc-mc-cons__actions { width: 100%; }
}

/* Staff repeater rows. */
.tc-team { display: grid; gap: var(--tc-sp-2); margin-bottom: var(--tc-sp-3); }
.tc-team__row { display: grid; grid-template-columns: 1fr 1fr 40px; gap: var(--tc-sp-2); align-items: center; }
.tc-team__row input { width: 100%; border: 1.5px solid var(--tc-line); border-radius: var(--tc-radius); padding: 0.6rem 0.8rem; font-size: var(--tc-fs-sm); font-family: inherit; color: var(--tc-ink); box-sizing: border-box; }
.tc-team__row input:focus { outline: none; border-color: var(--tc-primary); }
.tc-team__rm { width: 40px; height: 40px; border: 1px solid var(--tc-line); background: #fff; border-radius: var(--tc-radius); cursor: pointer; color: var(--tc-muted); font-size: 20px; line-height: 1; }
.tc-team__rm:hover { border-color: var(--tc-accent); color: var(--tc-accent); }
@media (max-width: 480px) { .tc-team__row { grid-template-columns: 1fr 1fr; } .tc-team__rm { grid-column: 1 / -1; width: auto; } }
.tc-mc-muted { color: var(--tc-muted, #647084); font-size: var(--tc-fs-sm); }
.tc-mc-switch { margin-bottom: var(--tc-sp-4); display: inline-flex; align-items: center; gap: 8px; }
.tc-mc-switch label { font-size: var(--tc-fs-sm); font-weight: 700; color: var(--tc-muted); }
.tc-mc-switch select { padding: 9px 12px; border-radius: 10px; border: 1px solid var(--tc-line, #cdd6e0); background: #fff; font-weight: 700; font-size: var(--tc-fs-sm); color: var(--tc-ink, #0c1f28); cursor: pointer; box-shadow: var(--tc-shadow-sm); max-width: 320px; }
.tc-mc-switch select:hover { border-color: var(--tc-primary); }
.tc-mc-switch select:focus { outline: none; border-color: var(--tc-primary); box-shadow: 0 0 0 3px var(--tc-primary-50, rgba(18,160,160,.18)); }
.tc-fld { display: block; margin-bottom: var(--tc-sp-3); }
.tc-fld > span { display: block; font-size: var(--tc-fs-sm); font-weight: 600; margin-bottom: 4px; }
.tc-fld input:not([type=checkbox]):not([type=radio]), .tc-fld textarea, .tc-fld select {
	width: 100%; padding: 10px 12px; border-radius: 8px;
	border: 1px solid var(--tc-border, #cdd6e0); font: inherit; box-sizing: border-box;
	background: #fff; color: var(--tc-ink); transition: border-color var(--tc-dur) var(--tc-ease), box-shadow var(--tc-dur) var(--tc-ease);
}
.tc-fld input:not([type=checkbox]):not([type=radio]):focus, .tc-fld textarea:focus, .tc-fld select:focus { outline: none; border-color: var(--tc-primary); box-shadow: 0 0 0 3px var(--tc-primary-50); }
/* Checkbox/radio grids inside .tc-fld keep native, fixed-size controls (no reflow on toggle). */
.tc-fld input[type=checkbox], .tc-fld input[type=radio] { flex: 0 0 auto; width: auto; margin: 0; }
/* Inline checkbox row (e.g. "We accept NHS patients"). */
.tc-fld--check { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.tc-fld--check > span { display: inline; margin: 0; font-weight: 600; }
/* Invalid fields after a failed Save - clear red state so it's obvious what to fix. */
.tc-validated :invalid { border-color: #d63638; box-shadow: 0 0 0 3px rgba(214, 54, 56, .14); }
.tc-fld select { appearance: none; -webkit-appearance: none; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235e7177' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 12px center; padding-right: 34px; }
.tc-mc-table { width: 100%; border-collapse: collapse; margin-bottom: var(--tc-sp-3); }
.tc-mc-table th, .tc-mc-table td { text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--tc-border, #eef1f5); font-size: var(--tc-fs-sm); }
.tc-mc-inline { display: flex; gap: 8px; }
.tc-mc-inline input { flex: 1; padding: 10px 12px; border-radius: 8px; border: 1px solid var(--tc-border, #cdd6e0); font: inherit; }
.tc-mc-invite { margin-top: var(--tc-sp-3); }
.tc-mc-invite label { display: block; font-size: var(--tc-fs-sm); font-weight: 600; margin-bottom: 4px; }
.tc-link-danger { background: none; border: none; color: #c0392b; cursor: pointer; font: inherit; padding: 0; text-decoration: underline; }
.tc-mc-foot { margin-top: var(--tc-sp-4); }
.tc-code-input { font-size: 1.7rem; letter-spacing: .5em; text-align: center; width: 100%; max-width: 240px; padding: 12px; border-radius: 12px; border: 1.5px solid var(--tc-border, #cdd6e0); display: block; box-sizing: border-box; }
.tc-code-input:focus { outline: none; border-color: var(--tc-primary); box-shadow: 0 0 0 3px var(--tc-primary-50); }

/* One-time-code: 6 single-digit boxes (JS-enhanced from the .tc-otp__real input). */
.tc-otp { display: flex; justify-content: center; width: 100%; }
.tc-otp__boxes { display: flex; gap: 10px; }
.tc-otp__box { width: 48px; height: 58px; padding: 0; text-align: center; font-size: 1.7rem; font-weight: 700; color: var(--tc-ink); background: #fff; border: 1.5px solid var(--tc-border, #cdd6e0); border-radius: 12px; caret-color: var(--tc-primary); transition: border-color var(--tc-dur) var(--tc-ease), box-shadow var(--tc-dur) var(--tc-ease); }
.tc-otp__box:focus { outline: none; border-color: var(--tc-primary); box-shadow: 0 0 0 3px var(--tc-primary-50); }
.tc-otp__box.is-filled { border-color: var(--tc-primary); }
/* Once enhanced, keep the real input in the form but out of sight (still submits). */
.tc-otp.is-ready .tc-otp__real { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media (max-width: 420px) { .tc-otp__boxes { gap: 7px; } .tc-otp__box { width: 44px; height: 54px; font-size: 1.5rem; } }

/* ── Self-registration: verify-email screen ─────────────────────────────── */
.tc-verify { max-width: 460px; margin: var(--tc-sp-4) auto var(--tc-sp-6); }
.tc-verify .tc-stepper { margin-bottom: var(--tc-sp-5); }

/* Numbered progress stepper with connector lines. */
.tc-stepper { list-style: none; display: flex; padding: 0; margin: 0 0 var(--tc-sp-6); }
.tc-stepper__step { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; position: relative; text-align: center; }
.tc-stepper__step:not(:first-child)::before {
	content: ""; position: absolute; top: 16px; height: 2px;
	left: calc(-50% + 18px); right: calc(50% + 18px); background: var(--tc-line);
}
.tc-stepper__step.is-done::before, .tc-stepper__step.is-active::before { background: var(--tc-primary); }
.tc-stepper__num {
	width: 34px; height: 34px; border-radius: 999px; display: grid; place-items: center;
	font-weight: 800; font-size: 14px; background: #fff; border: 2px solid var(--tc-line);
	color: var(--tc-muted); position: relative; z-index: 1;
}
.tc-stepper__num svg { display: block; }
.tc-stepper__step.is-done .tc-stepper__num { background: var(--tc-primary); border-color: var(--tc-primary); color: #fff; }
.tc-stepper__step.is-active .tc-stepper__num { border-color: var(--tc-primary); color: var(--tc-primary-700); box-shadow: 0 0 0 4px var(--tc-primary-50); }
.tc-stepper__label { font-size: var(--tc-fs-sm); font-weight: 600; color: var(--tc-muted); max-width: 11ch; line-height: 1.25; }
.tc-stepper__step.is-done .tc-stepper__label, .tc-stepper__step.is-active .tc-stepper__label { color: var(--tc-ink); }

/* The card itself: centred, calm, focused on the one action. */
.tc-verify__card {
	background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg);
	box-shadow: var(--tc-shadow); padding: var(--tc-sp-8) var(--tc-sp-7); text-align: center;
}
.tc-verify__icon {
	display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 999px;
	background: var(--tc-primary-50); color: var(--tc-primary-700); margin-bottom: var(--tc-sp-4);
}
.tc-verify__title { font-size: var(--tc-fs-xl); margin: 0 0 var(--tc-sp-2); }
.tc-verify__lead { color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); margin: 0 auto var(--tc-sp-5); max-width: 38ch; }
.tc-verify__lead strong { color: var(--tc-ink); }
.tc-verify__form { display: flex; flex-direction: column; align-items: center; gap: var(--tc-sp-3); }
.tc-verify__form .tc-code-input { margin: 0 auto; }
.tc-verify__btn { width: 100%; max-width: 280px; justify-content: center; }
.tc-verify__help { color: var(--tc-muted); font-size: var(--tc-fs-sm); margin: var(--tc-sp-4) 0 0; }
.tc-verify__reassure { text-align: center; color: var(--tc-muted); font-size: var(--tc-fs-sm); margin: var(--tc-sp-4) auto 0; max-width: 40ch; }
/* ===== For providers (clinics + specialists) landing ===== */
.tc-forclinics { margin-inline: auto; }

/* Focused, centred hero: one primary CTA + a quiet sign-in link + trust ticks */
.tc-fc-hero { text-align: center;  margin: 0 auto; padding: var(--tc-sp-4) 0 var(--tc-sp-6); }
.tc-fc-hero h1, .tc-fc-hero h2 { font-size: clamp(1.9rem, 4.2vw, 2.7rem); letter-spacing: -0.025em; line-height: 1.06; margin: var(--tc-sp-3) 0 var(--tc-sp-4); font-weight: 900; }
.tc-fc-hero > p { font-size: var(--tc-fs-md); color: var(--tc-ink-soft); margin: 0 auto var(--tc-sp-5); max-width: 54ch; }
.tc-fc-hero__cta { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: center; }
.tc-fc-hero__signin { font-weight: 700; color: var(--tc-primary-700); text-decoration: none; }
.tc-fc-hero__signin:hover { text-decoration: underline; }
/* Higher specificity (.tc-forclinics .tc-fc-ticks) so it beats the generic
   ".tc-content ul { display:grid }" content rule that would otherwise stack
   these trust ticks vertically. */
.tc-forclinics .tc-fc-ticks { list-style: none; display: flex; flex-flow: row wrap; gap: 8px 22px; justify-content: center; align-items: center; margin: var(--tc-sp-5) 0 0; padding: 0; }
.tc-forclinics .tc-fc-ticks li { display: inline-flex; align-items: center; gap: 6px; font-size: var(--tc-fs-sm); font-weight: 600; color: var(--tc-ink-soft); }
.tc-forclinics .tc-fc-ticks svg { width: 16px; height: 16px; color: var(--tc-primary); flex: 0 0 auto; }
.tc-fc-claimprompt { text-align: center; color: var(--tc-muted); font-size: var(--tc-fs-sm); margin: var(--tc-sp-6) 0 var(--tc-sp-4); }

/* Final CTA band */
.tc-fc-finalcta { text-align: center; background: var(--tc-grad-primary); color: #fff; border-radius: var(--tc-radius-lg); padding: var(--tc-sp-8) var(--tc-sp-5); margin: var(--tc-sp-8) auto 0; max-width: 900px; }
.tc-fc-finalcta h3 { color: #fff; font-size: var(--tc-fs-xl); margin: 0 0 8px; }
.tc-fc-finalcta p { color: rgba(255,255,255,.92); margin: 0 auto var(--tc-sp-5); max-width: 48ch; }
.tc-fc-finalcta .tc-btn--primary { background: #fff; color: var(--tc-primary-700); }
.tc-fc-finalcta .tc-btn--primary:hover { background: rgba(255,255,255,.92); }


/* "How it works" - clean numbered steps with a connecting line behind them. */
.tc-fc-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--tc-sp-5); max-width: 920px; margin: var(--tc-sp-5) auto 0; position: relative; }
.tc-fc-step { position: relative; z-index: 1; text-align: center; padding: 0 var(--tc-sp-3); }
.tc-fc-step__n { display: inline-grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--tc-grad-primary, linear-gradient(135deg,#12a0a0,#0a5c61)); color: #fff; font-weight: 800; font-size: var(--tc-fs-lg); box-shadow: 0 8px 22px rgba(10,92,97,.28); border: 4px solid #fff; margin-bottom: var(--tc-sp-3); }
.tc-fc-step h4 { margin: 0 0 6px; font-size: var(--tc-fs-md); font-weight: 800; color: var(--tc-ink); }
.tc-fc-step p { margin: 0; color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); line-height: var(--tc-lh-base); }
.tc-fc-steps::before { content: ""; position: absolute; top: 29px; left: 17%; right: 17%; height: 3px; background: var(--tc-grad-primary, linear-gradient(135deg,#12a0a0,#0a5c61)); opacity: .22; border-radius: 2px; z-index: 0; }
@media (max-width: 700px) {
	.tc-fc-steps { grid-template-columns: 1fr; gap: var(--tc-sp-4); max-width: 460px; }
	.tc-fc-steps::before { display: none; }
	.tc-fc-step { display: grid; grid-template-columns: auto 1fr; column-gap: 16px; row-gap: 2px; text-align: left; padding: 0; }
	.tc-fc-step__n { grid-row: 1 / 3; align-self: start; width: 46px; height: 46px; margin: 0; font-size: var(--tc-fs-md); }
	.tc-fc-step h4 { align-self: center; }
}
/* Clinic facilities */
.tc-facilities__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--tc-sp-5); }
.tc-faccard { background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius); padding: var(--tc-sp-5); }
.tc-faccard h3 { display: flex; align-items: center; gap: 8px; margin-top: 0; font-size: var(--tc-fs-base); }
.tc-hours { width: 100%; border-collapse: collapse; }
.tc-hours th { text-align: left; font-weight: 600; color: var(--tc-ink-soft); padding: 5px 0; }
.tc-hours td { text-align: right; padding: 5px 0; font-variant-numeric: tabular-nums; }
.tc-hours tr.is-today th, .tc-hours tr.is-today td { font-weight: 800; color: var(--tc-primary-700); }
.tc-hours__closed { color: var(--tc-muted); }
.tc-faclist { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tc-faclist li { display: flex; align-items: center; gap: 8px; }
.tc-faclist--check li::before { content: "\2713"; color: #0b7a43; font-weight: 800; }

/* Owner dashboard: login + topbar */
.tc-mc-topbar { display: flex; align-items: center; justify-content: space-between; gap: var(--tc-sp-3); margin-bottom: var(--tc-sp-5); flex-wrap: wrap; background: var(--tc-bg-alt); border: 1px solid var(--tc-line); border-radius: var(--tc-radius); padding: var(--tc-sp-3) var(--tc-sp-4); }
.tc-mc-user { display: flex; align-items: center; gap: var(--tc-sp-3); min-width: 0; }
.tc-mc-user__avatar { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 999px; display: grid; place-items: center; background: var(--tc-primary); color: #fff; font-weight: 800; font-size: var(--tc-fs-md); }
.tc-mc-user__meta { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.tc-mc-user__meta small { color: var(--tc-muted); font-size: var(--tc-fs-xs); text-transform: uppercase; letter-spacing: .04em; }
.tc-mc-user__meta strong { color: var(--tc-ink); font-size: var(--tc-fs-sm); overflow: hidden; text-overflow: ellipsis; }
.tc-mc-signout { gap: 6px; flex: 0 0 auto; }
.tc-mc-signout svg { width: 15px; height: 15px; }
/* Topbar right group: plan chip + sign out share the row with the user. */
.tc-mc-topbar__right { display: flex; align-items: center; gap: var(--tc-sp-3); flex: 0 0 auto; }
.tc-mc-planchip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: var(--tc-radius-pill); border: 1px solid var(--tc-line); background: #fff; color: var(--tc-ink); font-size: var(--tc-fs-sm); font-weight: 700; text-decoration: none; transition: border-color var(--tc-dur) var(--tc-ease); }
.tc-mc-planchip svg { width: 14px; height: 14px; color: var(--tc-muted); }
.tc-mc-planchip:hover { border-color: var(--tc-primary); }
.tc-mc-planchip.is-prem { background: var(--tc-grad-primary); border-color: transparent; color: #fff; }
.tc-mc-planchip.is-prem svg { color: #fff; }

/* Floating "complete your profile" widget (collapsible, bottom-right). */
.tc-mc-float { position: fixed; right: 20px; bottom: 20px; z-index: 60; width: 320px; max-width: calc(100vw - 32px); background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); box-shadow: var(--tc-shadow); overflow: hidden; }
.tc-mc-float__toggle { width: 100%; display: flex; align-items: center; gap: 10px; padding: 12px 16px; border: 0; background: var(--tc-grad-primary); color: #fff; cursor: pointer; font: inherit; font-weight: 700; font-size: var(--tc-fs-sm); text-align: left; }
.tc-mc-float__pct { flex: 0 0 auto; font-weight: 900; font-size: var(--tc-fs-md); }
.tc-mc-float__lbl { flex: 1; }
.tc-mc-float__chev { flex: 0 0 auto; transition: transform var(--tc-dur) var(--tc-ease); }
.tc-mc-float.is-collapsed .tc-mc-float__chev { transform: rotate(180deg); }
.tc-mc-float__body { padding: var(--tc-sp-4); max-height: 60vh; overflow-y: auto; }
.tc-mc-float.is-collapsed { width: auto; }
.tc-mc-float.is-collapsed .tc-mc-float__body { display: none; }
.tc-mc-float.is-collapsed .tc-mc-float__lbl { display: none; }
@media (max-width: 600px) { .tc-mc-float { right: 12px; bottom: 12px; width: 270px; } }

/* Styled hint box (e.g. intro-video how-to). */
.tc-mc-hint { background: var(--tc-bg-alt); border: 1px solid var(--tc-line); border-radius: var(--tc-radius); padding: var(--tc-sp-4); margin: 0 0 var(--tc-sp-3); }
.tc-mc-hint__lead { margin: 0 0 var(--tc-sp-3); color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); }
.tc-mc-hint__h { margin: 0 0 6px; font-weight: 800; font-size: var(--tc-fs-sm); color: var(--tc-ink); }
.tc-content .tc-mc-hint__steps { margin: 0; padding-left: 1.2em; display: grid; gap: 4px; }
.tc-content .tc-mc-hint__steps li { font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); list-style: decimal; line-height: 1.5; }
.tc-mc-hint__steps code { background: #fff; border: 1px solid var(--tc-line); border-radius: 4px; padding: 1px 5px; font-size: .85em; }

/* #11 price-accuracy warning. */
.tc-mc-warn { background: #fff7ed; border: 1px solid #fad9a8; color: #8a5a00; border-radius: var(--tc-radius); padding: var(--tc-sp-3) var(--tc-sp-4); font-size: var(--tc-fs-sm); margin-bottom: var(--tc-sp-4); }

/* Staff repeater spacing. */
.tc-team__add { margin-bottom: var(--tc-sp-4); }
.tc-mc-formactions { margin-top: var(--tc-sp-5); padding-top: var(--tc-sp-4); border-top: 1px solid var(--tc-line-soft); }
.tc-login { max-width: 420px; margin-inline: auto; }
.tc-login__remember { display: flex; align-items: center; gap: 8px; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); margin-bottom: var(--tc-sp-4); }
.tc-login .tc-btn { width: 100%; justify-content: center; }
/* Test/demo clinic banner (only ever shown on a hidden test clinic page) */
.tc-testbar { background: #fff7e6; border-bottom: 1px solid #f0d28a; color: #7a5200; font-size: var(--tc-fs-sm); }
.tc-testbar .tc-container { display: flex; align-items: center; gap: 8px; padding: 10px var(--tc-sp-5); flex-wrap: wrap; }
.tc-testbar svg { color: #b3760a; flex: 0 0 auto; }

/* Photo carousel (clinic gallery) */
.tc-carousel { position: relative; margin-top: var(--tc-sp-5); }
.tc-carousel__viewport { overflow: hidden; border-radius: var(--tc-radius-lg); border: 1px solid var(--tc-line); }
.tc-carousel__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.tc-carousel__track::-webkit-scrollbar { display: none; }
.tc-carousel__slide { flex: 0 0 100%; scroll-snap-align: start; margin: 0; }
.tc-carousel__img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--tc-bg-alt); }
.tc-carousel__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; border: none; background: rgba(255,255,255,.92); box-shadow: var(--tc-shadow-sm); color: var(--tc-ink); font-size: 22px; line-height: 1; cursor: pointer; display: grid; place-items: center; transition: background var(--tc-dur) var(--tc-ease); }
.tc-carousel__nav:hover { background: #fff; }
.tc-carousel__nav--prev { left: 10px; }
.tc-carousel__nav--next { right: 10px; }
.tc-carousel__nav:disabled { opacity: .3; cursor: default; }
.tc-carousel__dots { display: flex; justify-content: center; gap: 6px; margin-top: var(--tc-sp-3); }
.tc-carousel__dot { width: 8px; height: 8px; border-radius: 50%; border: none; background: var(--tc-line); cursor: pointer; padding: 0; transition: background var(--tc-dur) var(--tc-ease); }
.tc-carousel__dot.is-active { background: var(--tc-primary); }

/* Owner dashboard: photo gallery manager */
.tc-mc-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: var(--tc-sp-3); margin-bottom: var(--tc-sp-4); }
.tc-mc-gallery__item { position: relative; margin: 0; border-radius: var(--tc-radius-sm, 8px); overflow: hidden; border: 1px solid var(--tc-line); aspect-ratio: 1 / 1; }
.tc-mc-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tc-mc-gallery__rm { position: absolute; top: 4px; right: 4px; margin: 0; }
.tc-mc-gallery__x { width: 26px; height: 26px; border-radius: 50%; border: none; background: rgba(16,24,40,.7); color: #fff; font-size: 18px; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.tc-mc-gallery__x:hover { background: var(--tc-danger, #c0392b); }
.tc-mc-gallery-add input[type="file"] { font-size: var(--tc-fs-sm); }

/* Owner dashboard: "Write an article" */
.tc-rte__area--tall { min-height: 280px; }
.tc-rte--article .tc-rte__area h2 { font-size: var(--tc-fs-lg); margin: var(--tc-sp-4) 0 var(--tc-sp-2); }
.tc-artform__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--tc-sp-3); }
@media (max-width: 600px) { .tc-artform__row { grid-template-columns: 1fr; } }
.tc-artlist { list-style: none; margin: 0 0 var(--tc-sp-5); padding: 0; display: grid; gap: 8px; }
.tc-artlist__item { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 10px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius); background: #fff; }
.tc-artlist__title { font-weight: 700; color: var(--tc-ink); flex: 1; min-width: 0; }
.tc-artlist__status { font-size: var(--tc-fs-xs); font-weight: 800; text-transform: uppercase; letter-spacing: .03em; padding: 3px 9px; border-radius: 999px; }
.tc-artlist__item--pending .tc-artlist__status { background: #fff3d6; color: #7a5200; }
.tc-artlist__item--publish .tc-artlist__status { background: #e7f7ee; color: #0b7a43; }
.tc-artlist__item--draft .tc-artlist__status { background: #fde8e8; color: #b3271e; }
.tc-artlist__reason { flex-basis: 100%; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); background: var(--tc-bg-alt); border-radius: var(--tc-radius-sm); padding: 8px 10px; }
.tc-artlist__rm { margin: 0; }
.tc-linkbtn { background: none; border: none; color: var(--tc-muted); font-size: var(--tc-fs-sm); cursor: pointer; text-decoration: underline; padding: 0; }
.tc-linkbtn:hover { color: var(--tc-danger, #b3271e); }

/* Owner dashboard: per-treatment description editor */
.tc-mc-treatnote { margin-top: 8px; }
.tc-mc-treatnote > summary { cursor: pointer; font-size: var(--tc-fs-xs); font-weight: 700; color: var(--tc-primary-700); list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.tc-mc-treatnote > summary::-webkit-details-marker { display: none; }
.tc-mc-treatnote > summary::before { content: "+"; font-weight: 700; }
.tc-mc-treatnote[open] > summary::before { content: "\2212"; }
.tc-mc-treatnote__body { margin-top: 10px; display: grid; gap: 10px; max-width: 460px; }
.tc-mc-treatnote textarea, .tc-mc-treatnote input[type="url"] { width: 100%; box-sizing: border-box; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm, 8px); padding: 10px 12px; font-family: inherit; font-size: var(--tc-fs-sm); color: var(--tc-ink); background: #fff; }
.tc-mc-treatnote textarea { resize: vertical; min-height: 60px; }
.tc-mc-treatnote textarea:focus, .tc-mc-treatnote input[type="url"]:focus { outline: none; border-color: var(--tc-primary); box-shadow: 0 0 0 3px var(--tc-primary-50); }
.tc-mc-treatnote .tc-btn { justify-self: start; }
/* Specialist public-profile URL under each name in the clinic Specialists list */
.tc-mc-cons__url { display: block; font-size: var(--tc-fs-xs); color: var(--tc-primary-700); text-decoration: none; margin-top: 2px; word-break: break-all; }
.tc-mc-cons__url:hover { text-decoration: underline; }
.tc-mc-cons__url.tc-mc-muted { color: var(--tc-muted); }

/* Owner dashboard: clinic performance stats */
/* Compact performance snapshot. */
.tc-mc-stats { padding: var(--tc-sp-4); }
.tc-mc-stats h3 { font-size: var(--tc-fs-md); margin-bottom: var(--tc-sp-3); }
.tc-mc-stats .tc-mc-note { margin-top: var(--tc-sp-2); font-size: var(--tc-fs-xs); }
.tc-mc-stats .tc-statgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: var(--tc-sp-2); margin-bottom: 0; }
.tc-statgrid__item { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: var(--tc-sp-3); background: var(--tc-bg-alt); border: 1px solid var(--tc-line); border-radius: var(--tc-radius); }
.tc-statgrid__ico { color: var(--tc-primary); display: inline-flex; margin-bottom: 2px; }
.tc-statgrid__ico svg { width: 16px; height: 16px; }
.tc-statgrid__value { font-size: var(--tc-fs-xl); font-weight: 800; color: var(--tc-ink); line-height: 1.1; font-variant-numeric: tabular-nums; }
.tc-statgrid__label { font-size: var(--tc-fs-xs); color: var(--tc-muted); font-weight: 600; }

/* Lightweight rich-text editor (owner "About" field) */
.tc-rte { border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm, 8px); background: #fff; overflow: hidden; }
.tc-rte:focus-within { border-color: var(--tc-primary); box-shadow: 0 0 0 3px var(--tc-primary-100, #d7e3ff); }
.tc-rte__bar { display: flex; flex-wrap: wrap; gap: 2px; padding: 5px; background: var(--tc-bg-alt); border-bottom: 1px solid var(--tc-line); }
.tc-rte__btn { min-width: 30px; height: 28px; padding: 0 8px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--tc-ink); font-size: var(--tc-fs-sm); cursor: pointer; line-height: 1; }
.tc-rte__btn:hover { background: #fff; border-color: var(--tc-line); }
.tc-rte__area { min-height: 130px; padding: var(--tc-sp-3) var(--tc-sp-4); font-size: var(--tc-fs-base); line-height: var(--tc-lh-base); color: var(--tc-ink); outline: none; }
.tc-rte__area:empty::before { content: attr(data-placeholder); color: var(--tc-muted); }
.tc-rte__area p, .tc-rte__area div { margin: 0 0 var(--tc-sp-3); }
.tc-rte__area ul, .tc-rte__area ol { margin: 0 0 var(--tc-sp-3) var(--tc-sp-5); }
.tc-rte__area a { color: var(--tc-primary-700); }
/* Headings render styled (and coloured) right in the editor, so what you see is what you get. */
.tc-rte__area h2 { font-size: var(--tc-fs-lg); font-weight: 800; margin: var(--tc-sp-4) 0 var(--tc-sp-2); color: var(--tc-ink); }
.tc-rte__area h3 { font-size: var(--tc-fs-md); font-weight: 800; margin: var(--tc-sp-4) 0 var(--tc-sp-2); color: var(--tc-ink); }
.tc-rte__area h4 { font-size: var(--tc-fs-base); font-weight: 700; margin: var(--tc-sp-3) 0 var(--tc-sp-1); color: var(--tc-primary-700); }

/* Public "About this clinic" block */
.tc-clinic-about { margin: var(--tc-sp-6) 0; }
.tc-clinic-about__body { color: var(--tc-ink-soft); line-height: var(--tc-lh-base); max-width: 70ch; }
.tc-clinic-about__body > :first-child { margin-top: 0; }
.tc-clinic-about__body p { margin: 0 0 var(--tc-sp-4); }
.tc-clinic-about__body ul, .tc-clinic-about__body ol { margin: 0 0 var(--tc-sp-4) var(--tc-sp-5); }
.tc-clinic-about__body a { color: var(--tc-primary-700); }

/* Dashboard leads inbox */
.tc-mc-leadcount { font-size: var(--tc-fs-xs); font-weight: 700; background: var(--tc-primary); color: #fff; padding: 2px 9px; border-radius: 999px; margin-left: 8px; vertical-align: middle; }
.tc-leadlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tc-leadlist--locked li { display: flex; align-items: center; justify-content: space-between; gap: var(--tc-sp-3); padding: 10px 14px; background: var(--tc-bg-alt); border: 1px solid var(--tc-line-soft); border-radius: var(--tc-radius-sm); }
.tc-lead__lock { font-size: var(--tc-fs-xs); color: var(--tc-muted); font-weight: 600; white-space: nowrap; }
.tc-lead-upsell { margin-top: var(--tc-sp-4); padding: var(--tc-sp-4); border: 1.5px dashed var(--tc-primary-200); border-radius: var(--tc-radius); background: var(--tc-primary-50); }
.tc-leadtable { display: grid; gap: var(--tc-sp-3); }
.tc-leadrow { border: 1px solid var(--tc-line); border-radius: var(--tc-radius); padding: var(--tc-sp-4); }
.tc-leadrow--new { border-left: 3px solid var(--tc-primary); }
.tc-leadrow--closed { opacity: .65; }
.tc-leadrow__top { display: flex; align-items: center; justify-content: space-between; gap: var(--tc-sp-3); }
.tc-lead__status { font-size: var(--tc-fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--tc-muted); }
.tc-lead__meta { font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); margin: 4px 0; }
.tc-lead__contact { font-size: var(--tc-fs-sm); font-weight: 600; }
.tc-lead__msg { font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); font-style: italic; margin: var(--tc-sp-2) 0 0; }
.tc-lead__actions { display: flex; gap: 6px; margin-top: var(--tc-sp-3); flex-wrap: wrap; }
.tc-lead__actions form { margin: 0; }

/* Team list (public clinic page) - initial-avatar rows. */
.tc-faccard--team .tc-team { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tc-sp-3); }
.tc-team li { display: flex; flex-direction: row; align-items: center; gap: var(--tc-sp-3); }
.tc-team__avatar { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 999px; display: grid; place-items: center; background: var(--tc-primary-100); color: var(--tc-primary-700); font-weight: 800; font-size: var(--tc-fs-sm); }
.tc-team__info { display: flex; flex-direction: column; min-width: 0; }
.tc-team__name { font-weight: 600; color: var(--tc-ink); }
.tc-team__role { font-size: var(--tc-fs-sm); color: var(--tc-muted); }

/* ── Clinic-page hero (redesigned) ─────────────────────────────────────── */
.tc-clinic-hero { display: flex; align-items: flex-start; gap: var(--tc-sp-5); margin-top: var(--tc-sp-3); }
/* White rounded box so any logo (incl. transparent / white marks) is visible on
   the tinted hero background, on desktop and mobile alike. */
.tc-clinic-hero__logo { flex: 0 0 auto; background: #fff; border-radius: var(--tc-radius); padding: var(--tc-sp-2); box-shadow: var(--tc-shadow-xs); display: inline-flex; }
.tc-clinic-hero__logo img.tc-clinic__logo,
.tc-clinic-hero__logo svg.tc-clinic__logo { width: 150px; height: 66px; object-fit: contain; display: block; }
.tc-clinic-hero__logo img.tc-clinic__logo.tc-logo--dark { background: #0b0d10; border-radius: var(--tc-radius-sm); }
.tc-clinic-hero__body { min-width: 0; }
.tc-clinic-hero__badges { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: var(--tc-sp-3); }
/* One consistent badge shape/size across the hero (claim status, CQC, premium) - colours
   still differ per type, but weight, case, padding and radius are unified. */
.tc-clinic-hero__badges .tc-claimbadge,
.tc-clinic-hero__badges .tc-cqc,
.tc-clinic-hero__badges .tc-prembadge,
.tc-clinic-hero__badges .tc-fbadge {
	font-size: 11px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase;
	padding: 5px 11px; border-radius: 999px; line-height: 1; height: auto;
	display: inline-flex; align-items: center; gap: 5px;
}
.tc-clinic-hero__body h1 { font-size: 2.5rem; margin: 0 0 var(--tc-sp-2); }
.tc-clinic-hero__loc { display: flex; align-items: center; gap: 6px; color: var(--tc-ink-soft); font-size: var(--tc-fs-md); margin: 0 0 var(--tc-sp-3); }
.tc-clinic-hero__loc svg { color: var(--tc-primary); flex: 0 0 auto; }
/* Address opens Google Maps in a new tab - keep it subtle (underline on hover). */
.tc-clinic-hero__loc a { color: inherit; text-decoration: underline; text-decoration-color: var(--tc-line); text-underline-offset: 2px; }
.tc-clinic-hero__loc a:hover { color: var(--tc-primary-700); text-decoration-color: currentColor; }
/* City chip (in the badges row) - links to the category+city hub. Matches the badge
   shape but uses a soft primary tint so it reads as a place, not a status. */
.tc-clinic-hero__city {
	display: inline-flex; align-items: center; gap: 5px;
	font-size: 11px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase;
	padding: 5px 11px; border-radius: var(--tc-radius-pill); line-height: 1;
	background: var(--tc-primary-50); color: var(--tc-primary-700);
	border: 1px solid var(--tc-primary-100); text-decoration: none;
}
.tc-clinic-hero__city:hover { background: var(--tc-primary-100); border-color: var(--tc-primary-200); }
.tc-clinic-hero__city svg { width: 14px; height: 14px; color: var(--tc-primary); flex: 0 0 auto; }
.tc-clinic-hero__rating { margin-bottom: var(--tc-sp-3); }
.tc-clinic-hero__intro { color: var(--tc-ink-soft); font-size: var(--tc-fs-md); line-height: var(--tc-lh-base); margin: var(--tc-sp-3) 0 0; max-width: 60ch; }
.tc-clinic-hero__actions { margin: var(--tc-sp-4) 0 0; }
@media (max-width: 560px) {
	.tc-clinic-hero { flex-direction: column; gap: var(--tc-sp-3); }
	.tc-clinic-hero__logo { align-self: flex-start; }
}

/* CQC official widget wrapper. */
.tc-cqc-widget { background: #fff; border: 1px solid var(--tc-primary-100); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-4); box-shadow: var(--tc-shadow-xs); }
.tc-cqc-widget__head { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--tc-primary-700); font-size: var(--tc-fs-sm); margin-bottom: var(--tc-sp-3); }
.tc-cqc-widget__head svg { color: var(--tc-primary); }
.tc-cqc-widget .cqc { min-height: 40px; }

/* Dashboard: two-column add-treatment chooser. */
.tc-treatadd { display: grid; grid-template-columns: 1fr auto 1fr; align-items: start; gap: var(--tc-sp-3); margin: var(--tc-sp-3) 0; }
.tc-treatadd__col { display: flex; flex-direction: column; gap: 6px; }
.tc-treatadd__col.is-disabled { opacity: .45; }
.tc-treatadd__label { font-size: var(--tc-fs-sm); font-weight: 600; }
.tc-treatadd__col select, .tc-treatadd__col input { width: 100%; border: 1.5px solid var(--tc-line); border-radius: var(--tc-radius); padding: 0.6rem 0.8rem; font: inherit; font-size: var(--tc-fs-sm); color: var(--tc-ink); box-sizing: border-box; background: #fff; }
.tc-treatadd__col select:focus, .tc-treatadd__col input:focus { outline: none; border-color: var(--tc-primary); }
.tc-treatadd__or { align-self: center; padding-top: 22px; color: var(--tc-muted); font-size: var(--tc-fs-xs); text-transform: uppercase; font-weight: 700; }
.tc-treatadd__price { max-width: 220px; margin-top: var(--tc-sp-2); }
@media (max-width: 540px) { .tc-treatadd { grid-template-columns: 1fr; } .tc-treatadd__or { padding-top: 0; } }

/* Dashboard: inline price editor in the treatments table. */
.tc-mc-treattable td:last-child { width: 200px; }
.tc-mc-treat__name { display: block; font-weight: 600; }
.tc-mc-treattable small { display: block; font-size: var(--tc-fs-xs); }
.tc-mc-priceactions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; }
.tc-mc-priceedit { display: flex; align-items: center; gap: 6px; }
.tc-mc-treatdel { margin: 0; }
/* Inline help glyph (native-title tooltip), e.g. next to "Related treatment". */
.tc-help { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; background: var(--tc-line); color: var(--tc-ink-soft); font-size: 11px; font-weight: 700; font-style: normal; line-height: 1; cursor: help; vertical-align: middle; }
.tc-help:hover, .tc-help:focus-visible { background: var(--tc-primary-100); color: var(--tc-primary-700); outline: none; }
/* "One plan covers all your clinics" callout on /for-clinics/. */
.tc-fc-groupnote { margin: var(--tc-sp-6) auto 0; max-width: 860px; background: var(--tc-primary-50); border: 1px solid var(--tc-primary-100); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-6); }
.tc-fc-groupnote h4 { margin: 0 0 var(--tc-sp-4); font-size: var(--tc-fs-lg); color: var(--tc-primary-700); text-align: center; }
.tc-fc-grouppts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--tc-sp-5); }
.tc-fc-grouppts li { display: flex; gap: 10px; align-items: flex-start; }
.tc-fc-grouppts__ico { flex: 0 0 auto; color: var(--tc-primary); margin-top: 1px; }
.tc-fc-grouppts__ico svg { width: 22px; height: 22px; }
.tc-fc-grouppts__body { display: flex; flex-direction: column; gap: 3px; }
.tc-fc-grouppts__body strong { color: var(--tc-ink); font-size: var(--tc-fs-sm); }
.tc-fc-grouppts__body span { color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); line-height: 1.45; }
@media (max-width: 720px) { .tc-fc-grouppts { grid-template-columns: 1fr; gap: var(--tc-sp-4); } .tc-fc-groupnote { padding: var(--tc-sp-5); } .tc-fc-groupnote h4 { text-align: left; } }

/* Extra-seat packs (styled cards under the price cards on /for-clinics/). */
.tc-seatpacks { margin: var(--tc-sp-5) 0 0; scroll-margin-top: 90px; }
.tc-seatpacks__lead { text-align: center; color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); margin: 0 0 var(--tc-sp-3); }
.tc-seatpacks__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--tc-sp-3); }
.tc-seatpack { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 130px; padding: var(--tc-sp-4) var(--tc-sp-5); background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); box-shadow: var(--tc-shadow-sm); }
.tc-seatpack--unl { border-color: var(--tc-primary); background: var(--tc-primary-50); }
.tc-seatpack__qty { font-weight: 800; color: var(--tc-ink); font-size: var(--tc-fs-lg); line-height: 1.1; }
.tc-seatpack__label { font-size: var(--tc-fs-xs); color: var(--tc-muted); text-transform: uppercase; letter-spacing: .04em; }
.tc-seatpack__price { margin-top: 6px; font-weight: 800; color: var(--tc-primary-700); }
.tc-seatpack__price small { font-weight: 600; color: var(--tc-muted); }
.tc-cmp__seatlink { color: var(--tc-primary-700); font-weight: 700; text-decoration: underline; white-space: nowrap; }

/* Seat meter in the clinic dashboard Specialists tab. */
.tc-seatmeter { margin: 0 0 var(--tc-sp-4); padding: var(--tc-sp-4) var(--tc-sp-5); background: var(--tc-bg-alt); border: 1px solid var(--tc-line-soft); border-radius: var(--tc-radius-lg); }
.tc-seatmeter__top { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; }
.tc-seatmeter__num { font-weight: 800; font-size: var(--tc-fs-xl); color: var(--tc-ink); line-height: 1; font-variant-numeric: tabular-nums; }
.tc-seatmeter__lbl { color: var(--tc-muted); font-size: var(--tc-fs-sm); }
.tc-seatmeter__bar { margin-top: 10px; height: 8px; border-radius: 999px; background: var(--tc-line); overflow: hidden; }
.tc-seatmeter__bar span { display: block; height: 100%; background: var(--tc-primary); border-radius: 999px; transition: width var(--tc-dur) var(--tc-ease); }
.tc-seatmeter.is-full .tc-seatmeter__bar span { background: #d9534f; }
.tc-seatmeter__hint { margin: 8px 0 0; font-size: var(--tc-fs-xs); color: var(--tc-muted); }
.tc-seatmeter__up { display: inline-block; margin-top: 8px; font-weight: 700; color: var(--tc-primary-700); font-size: var(--tc-fs-sm); }

/* Live character counter for short-summary fields (events + articles). */
.tc-charcount { display: block; text-align: right; font-size: var(--tc-fs-xs); color: var(--tc-muted); margin-top: 3px; font-variant-numeric: tabular-nums; }
.tc-charcount.is-full { color: #d9534f; font-weight: 700; }
/* Authoring clinic name on /guides/ listing cards. */
.tc-guide-card__by { font-weight: 700; color: var(--tc-primary-700); }

/* Claim-a-clinic start form: clearer structure + a proper gap before the "how it works". */
.tc-claimstart__lead { color: var(--tc-ink-soft); }
.tc-claimstart__alt { margin: var(--tc-sp-4) 0 0; font-size: var(--tc-fs-sm); color: var(--tc-muted); }
.tc-claimstart__how { margin-top: var(--tc-sp-6); padding-top: var(--tc-sp-4); border-top: 1px solid var(--tc-line-soft); }
.tc-claimstart__howh { font-weight: 700; margin: 0 0 8px; color: var(--tc-ink); }
.tc-claimstart__how ul { margin: 0; padding-left: 1.1em; display: grid; gap: 8px; color: var(--tc-muted); font-size: var(--tc-fs-sm); line-height: 1.5; }

/* Claim flow: two-column layout - the form card + a "how claiming works" sidebar. */
.tc-claim2 { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--tc-sp-5); align-items: start; }
.tc-claim2__side { position: sticky; top: 90px; }
.tc-claimsteps { background: var(--tc-surface, #fff); border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-5); }
.tc-claimsteps__h { margin: 0 0 var(--tc-sp-4); font-size: var(--tc-fs-md); }
.tc-claimsteps__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tc-sp-4); }
.tc-claimsteps__step { display: flex; gap: 12px; align-items: flex-start; }
.tc-claimsteps__num { flex: 0 0 auto; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--tc-primary-50); color: var(--tc-primary-700); font-weight: 800; font-size: var(--tc-fs-sm); }
.tc-claimsteps__step > div { display: grid; gap: 2px; }
.tc-claimsteps__step strong { font-size: var(--tc-fs-sm); color: var(--tc-ink); }
.tc-claimsteps__step div > span { font-size: var(--tc-fs-xs); color: var(--tc-muted); line-height: 1.5; }
.tc-claimsteps__chips { list-style: none; margin: var(--tc-sp-5) 0 0; padding: var(--tc-sp-4) 0 0; border-top: 1px solid var(--tc-line-soft); display: grid; gap: 8px; }
.tc-claimsteps__chips li { display: flex; align-items: center; gap: 8px; font-size: var(--tc-fs-xs); font-weight: 600; color: var(--tc-ink-soft); }
.tc-claimsteps__chips svg { flex: 0 0 auto; width: 15px; height: 15px; color: var(--tc-primary); }
@media (max-width: 880px) { .tc-claim2 { grid-template-columns: 1fr; } .tc-claim2__side { position: static; } }

/* Claim form: quieter, roomier - smaller labels/hints, clear grouping so it
   doesn't read as one dense stack of boxes. Scoped to the claim page only. */
.tc-claim2__main .tc-mc-card { padding: var(--tc-sp-6) var(--tc-sp-6) var(--tc-sp-5); }
.tc-claim2 .tc-claimstart__lead { font-size: var(--tc-fs-sm); line-height: 1.6; color: var(--tc-muted); margin: 0 0 var(--tc-sp-5); }
.tc-claim2 .tc-claimstart__form .tc-fld { margin-bottom: var(--tc-sp-5); }
.tc-claim2 .tc-claimstart__form .tc-fld > span { font-size: var(--tc-fs-xs); font-weight: 600; letter-spacing: .01em; color: var(--tc-ink-soft); margin-bottom: 6px; }
.tc-claim2 .tc-claimstart__form .tc-fld input:not([type=checkbox]),
.tc-claim2 .tc-claimstart__form .tc-fld textarea { padding: 11px 13px; font-size: var(--tc-fs-sm); }
/* Field hint text: tie it under the field above, add clear air before the next. */
.tc-claim2 .tc-claimstart__form .tc-mc-muted,
.tc-claim2 .tc-claimstart__form .tc-mc-muted--field { font-size: var(--tc-fs-xs); line-height: 1.5; color: var(--tc-muted); margin: -10px 0 var(--tc-sp-5); }
.tc-claim2 .tc-claimstart__form .tc-reviewform__row { margin-bottom: var(--tc-sp-5); gap: 14px; }
.tc-claim2 .tc-claimstart__form .tc-reviewform__row .tc-fld { margin-bottom: 0; }
.tc-claim2 .tc-claimstart__alt { margin-top: var(--tc-sp-5); font-size: var(--tc-fs-xs); }
/* The agree checkbox + submit get their own breathing room from the fields. */
.tc-claim2 .tc-claimstart__form .tc-agree { margin: var(--tc-sp-4) 0; font-size: var(--tc-fs-sm); }
.tc-claim2 .tc-claimstart__form .tc-btn--primary { margin-top: 4px; }

/* (.tc-dupname moved to main.css - it's used on public add-clinic + register forms
   where app.css isn't loaded.) */

/* ---- Clinic page mobile/tablet polish ---- */
@media (max-width: 560px) {
	.tc-clinic-hero__body h1 { font-size: 1.9rem; }
	.tc-ptable th, .tc-ptable td { padding: var(--tc-sp-3); }
	.tc-ptable td:last-child { white-space: normal; }
	.tc-ptable td .tc-booknow--sm { margin-left: 0; margin-top: 6px; }
	.tc-clinic-hero__loc { flex-wrap: wrap; }
}
.tc-mc-priceedit__field { display: flex; align-items: center; gap: 2px; border: 1.5px solid var(--tc-line); border-radius: var(--tc-radius); padding: 0 0 0 8px; background: #fff; }
.tc-mc-priceedit__field span { color: var(--tc-muted); }
.tc-mc-priceedit__field input { width: 80px; border: 0; padding: 0.45rem 0.5rem; font: inherit; }
.tc-mc-priceedit__field input:focus { outline: none; }
/* ── Reviews ────────────────────────────────────────────────────────────── */
.tc-reviews { scroll-margin-top: 90px; }
.tc-reviews__summary { display: flex; flex-wrap: wrap; gap: var(--tc-sp-6); align-items: center; background: var(--tc-bg-alt); border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-5); margin-bottom: var(--tc-sp-5); }
.tc-reviews__score { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.tc-reviews__avg { font-size: 2.6rem; font-weight: 800; color: var(--tc-ink); line-height: 1; }
.tc-reviews__bars { flex: 1 1 240px; min-width: 220px; display: grid; gap: 5px; }
.tc-reviews__bar { display: flex; align-items: center; gap: 8px; font-size: var(--tc-fs-sm); }
.tc-reviews__barlabel { width: 28px; color: var(--tc-muted); }
.tc-reviews__bartrack { flex: 1; height: 8px; background: var(--tc-line); border-radius: 999px; overflow: hidden; }
.tc-reviews__barfill { display: block; height: 100%; background: var(--tc-amber); }
.tc-reviews__barn { width: 28px; text-align: right; color: var(--tc-muted); }

.tc-reviews__note { color: var(--tc-ink-soft); }
.tc-reviews__toolbar { display: flex; justify-content: space-between; align-items: center; gap: var(--tc-sp-3); margin: var(--tc-sp-5) 0 var(--tc-sp-3); color: var(--tc-muted); font-size: var(--tc-fs-sm); flex-wrap: wrap; }
.tc-reviews__sort select { border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm); padding: 4px 8px; font: inherit; }

/* Star rating input */
.tc-starinput { display: inline-flex; flex-direction: row-reverse; justify-self: start; gap: 2px; margin-bottom: var(--tc-sp-3); }
.tc-starinput input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tc-starinput label { color: var(--tc-line); cursor: pointer; line-height: 1; }
.tc-starinput label svg { width: 30px; height: 30px; display: block; }
.tc-starinput input:checked ~ label,
.tc-starinput label:hover, .tc-starinput label:hover ~ label { color: var(--tc-amber); }
.tc-starinput input:focus-visible + label { outline: 2px solid var(--tc-primary); outline-offset: 2px; border-radius: 4px; }

/* Review form / auth */
.tc-reviewform { display: grid; gap: var(--tc-sp-3); max-width: 720px; width: 100%; }
.tc-reviewform textarea { width: 100%; border: 1.5px solid var(--tc-line); border-radius: var(--tc-radius); padding: 0.7rem 0.9rem; font: inherit; box-sizing: border-box; }
.tc-reviewform textarea:focus { outline: none; border-color: var(--tc-primary); }
.tc-reviews__anon { display: inline-flex; align-items: center; gap: 6px; font-size: var(--tc-fs-sm); }
.tc-reviews__form-wrap { margin-bottom: var(--tc-sp-6); }
.tc-reviews__form-wrap > summary { cursor: pointer; font-weight: 700; padding: var(--tc-sp-3) 0; }
.tc-reviews__auth { margin-bottom: var(--tc-sp-6); }
.tc-reviews__authtitle { margin: 0 0 4px; font-size: var(--tc-fs-lg); }
.tc-reviews__auth .tc-reviews__note { margin: 0 0 var(--tc-sp-4); }
.tc-reviews__authcols { display: grid; grid-template-columns: 1fr 1fr; gap: var(--tc-sp-4); align-items: stretch; }
.tc-authcard { display: flex; flex-direction: column; gap: var(--tc-sp-3); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-5); max-width: none; }
.tc-authcard__head { margin-bottom: 2px; }
.tc-authcard__head h4 { margin: 0; font-size: var(--tc-fs-md); }
.tc-authcard__head p { margin: 2px 0 0; font-size: var(--tc-fs-sm); color: var(--tc-muted); }
.tc-authcard--new { background: #fff; border: 1px solid var(--tc-line); box-shadow: var(--tc-shadow-xs); }
.tc-authcard--back { background: var(--tc-primary-50); border: 1px solid var(--tc-primary-100); }
.tc-authcard__btn { width: 100%; justify-content: center; margin-top: auto; }
@media (max-width: 560px) { .tc-reviews__authcols { grid-template-columns: 1fr; } }

/* Review list */
.tc-reviews__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tc-sp-4); }
.tc-review { border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-5); background: #fff; }
.tc-review__head { display: flex; align-items: center; gap: var(--tc-sp-3); margin-bottom: var(--tc-sp-3); }
.tc-review__avatar { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 999px; display: grid; place-items: center; background: var(--tc-primary-100); color: var(--tc-primary-700); font-weight: 800; }
.tc-review__author { display: block; font-weight: 700; color: var(--tc-ink); }
.tc-review__meta { display: flex; align-items: center; gap: 8px; font-size: var(--tc-fs-sm); color: var(--tc-muted); }
.tc-review__title { font-weight: 700; margin: 0 0 4px; }
.tc-review__body { color: var(--tc-ink-700); margin: 0; }
.tc-review__reply { margin-top: var(--tc-sp-3); padding: var(--tc-sp-3) var(--tc-sp-4); background: var(--tc-bg-alt); border-left: 3px solid var(--tc-primary); border-radius: 0 var(--tc-radius) var(--tc-radius) 0; }
.tc-review__reply strong { display: block; font-size: var(--tc-fs-sm); color: var(--tc-primary-700); margin-bottom: 4px; }
.tc-review__reply p { margin: 0; color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); }
.tc-review__actions { display: flex; gap: var(--tc-sp-3); align-items: center; margin-top: var(--tc-sp-3); }
.tc-review__inline { display: inline; }
.tc-review__inline button, .tc-review__del { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; font-size: var(--tc-fs-sm); color: var(--tc-muted); }
.tc-review__inline button:hover { color: var(--tc-primary-700); }
.tc-review__del:hover { color: var(--tc-accent); }
.tc-review__replyform { display: grid; gap: var(--tc-sp-2); margin-top: var(--tc-sp-3); }
.tc-review__replyform textarea { border: 1.5px solid var(--tc-line); border-radius: var(--tc-radius); padding: 0.6rem 0.8rem; font: inherit; }

/* Photo gallery */
.tc-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--tc-sp-3); margin-top: var(--tc-sp-5); }
.tc-gallery__item { margin: 0; border-radius: var(--tc-radius); overflow: hidden; aspect-ratio: 4 / 3; }
.tc-gallery__img { width: 100%; height: 100%; object-fit: cover; }

/* Add-clinic form reuses .tc-mc-card / .tc-fld */
.tc-addclinic { max-width: 520px; margin-inline: auto; }

/* Owner dashboard: facilities editor */
.tc-mc-sub { margin: var(--tc-sp-4) 0 var(--tc-sp-2); font-size: var(--tc-fs-sm); font-weight: 800; text-transform: uppercase; letter-spacing: .03em; color: var(--tc-ink-soft); }
.tc-hours-edit { width: 100%; max-width: 380px; border-collapse: collapse; margin-bottom: var(--tc-sp-2); }
.tc-hours-edit th { text-align: left; font-weight: 600; color: var(--tc-ink-soft); padding: 4px 8px 4px 0; white-space: nowrap; }
.tc-hours-edit td { padding: 3px 4px; }
.tc-hours-edit__to { color: var(--tc-muted); font-size: var(--tc-fs-sm); }
.tc-hours-edit input[type="time"] { padding: 6px 8px; border: 1px solid var(--tc-border, #cdd6e0); border-radius: 8px; font: inherit; }
.tc-checkgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-bottom: var(--tc-sp-2); }
.tc-checkgrid label { display: flex; align-items: center; gap: 8px; font-size: var(--tc-fs-sm); padding: 8px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius); background: #fff; cursor: pointer; transition: border-color var(--tc-dur) var(--tc-ease), background var(--tc-dur) var(--tc-ease); }
.tc-checkgrid label input { width: auto; flex: 0 0 auto; }
.tc-checkgrid label:hover { border-color: var(--tc-primary-200); }
.tc-checkgrid label:has(input:checked) { border-color: var(--tc-primary); background: var(--tc-primary-50); }
.tc-checkgrid label:has(input:checked) span { color: var(--tc-primary-700); font-weight: 700; }
.tc-mc-textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--tc-border, #cdd6e0); border-radius: 8px; font: inherit; box-sizing: border-box; margin-bottom: var(--tc-sp-3); }

/* Owner dashboard: treatments & proposals */
.tc-mc-sub2 { margin: var(--tc-sp-4) 0 var(--tc-sp-2); font-size: var(--tc-fs-sm); font-weight: 700; color: var(--tc-ink-soft); }
.tc-mc-or { display: flex; align-items: center; gap: var(--tc-sp-3); margin: var(--tc-sp-5) 0; font-size: var(--tc-fs-xs); text-transform: uppercase; letter-spacing: .05em; color: var(--tc-muted); }
.tc-mc-or::before, .tc-mc-or::after { content: ""; flex: 1; height: 1px; background: var(--tc-line); }
.tc-mc-or span { white-space: nowrap; }
.tc-proposed { list-style: none; margin: 0 0 var(--tc-sp-3); padding: 0; display: grid; gap: 6px; }
.tc-proposed li { display: flex; align-items: center; justify-content: space-between; gap: var(--tc-sp-3); padding: 8px 12px; background: #fffaf0; border: 1px solid #f3e2b5; border-radius: var(--tc-radius-sm); font-size: var(--tc-fs-sm); }
.tc-proposed__badge { font-size: 11px; font-weight: 700; color: #8a6d00; background: #fcf0d6; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }

/* Owner dashboard: logo editor */
.tc-mc-logo-preview { display: inline-flex; align-items: center; justify-content: center; padding: 10px; border: 1px solid var(--tc-line); border-radius: 12px; background: #fff; margin-bottom: var(--tc-sp-3); }
.tc-mc-logo-preview.is-dark { background: #0b0d10; border-color: #0b0d10; }
.tc-radio-row { display: flex; align-items: center; gap: 8px; font-size: var(--tc-fs-sm); margin-bottom: 6px; }
/* Contact page */
.tc-contact { max-width: 680px; margin-inline: auto; }
.tc-contact__lead { color: var(--tc-ink-soft); margin-bottom: var(--tc-sp-5); }
.tc-contact__form .tc-quote__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--tc-sp-3); }
.tc-contact__form .tc-btn { width: 100%; justify-content: center; }
@media (max-width: 600px) { .tc-contact__form .tc-quote__row { grid-template-columns: 1fr; } }
/* For-clinics benefits grid - icon-chip cards with a per-card accent */
.tc-fc-benefits { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--tc-sp-4); margin: var(--tc-sp-5) 0; }
.tc-fc-benefit { position: relative; background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-4); overflow: hidden; transition: box-shadow var(--tc-dur) var(--tc-ease), transform var(--tc-dur) var(--tc-ease), border-color var(--tc-dur) var(--tc-ease); }
.tc-fc-benefit:hover { transform: translateY(-3px); box-shadow: var(--tc-shadow); border-color: transparent; }
.tc-fc-benefit__ico { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; margin-bottom: var(--tc-sp-3); color: var(--tc-fc-accent, var(--tc-primary)); background: color-mix(in srgb, var(--tc-fc-accent, var(--tc-primary)) 13%, #fff); }
.tc-fc-benefit__ico svg { width: 24px; height: 24px; }
.tc-fc-benefit h4 { margin: 0 0 6px; font-size: var(--tc-fs-md); font-weight: 800; color: var(--tc-ink); letter-spacing: -0.01em; }
.tc-fc-benefit p { margin: 0; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); line-height: var(--tc-lh-base); }
.tc-fc-benefit--a { --tc-fc-accent: #0a8f8f; }
.tc-fc-benefit--b { --tc-fc-accent: #2f6bff; }
.tc-fc-benefit--c { --tc-fc-accent: #7c4dff; }
.tc-fc-benefit--d { --tc-fc-accent: #e6a700; }
.tc-fc-benefit--e { --tc-fc-accent: #e8590c; }
.tc-fc-benefit--f { --tc-fc-accent: #0b7a43; }

/* Hero sign-in card (injected into the page hero on /for-clinics/) */
.tc-fc-signin { background: #fff; border: 1px solid var(--tc-line-soft, #eef1f5); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-6); box-shadow: var(--tc-shadow); }
.tc-fc-signin__eyebrow { display: inline-block; font-size: var(--tc-fs-xs); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--tc-primary-700); margin-bottom: var(--tc-sp-2); }
.tc-fc-signin__title { font-size: var(--tc-fs-md); font-weight: 800; color: var(--tc-ink); margin: 0 0 4px; }
.tc-fc-signin__text { font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); margin: 0 0 var(--tc-sp-4); }
.tc-btn--block { width: 100%; justify-content: center; }
.tc-fc-cols { display: grid; grid-template-columns: 1fr 1fr; gap: var(--tc-sp-6); margin: var(--tc-sp-5) 0; }
.tc-fc-cols h3 { margin-top: 0; }
.tc-fc-cols ul { list-style: none; padding: 0; display: grid; gap: 8px; }
.tc-fc-cols .tc-yes li { padding-left: 26px; position: relative; list-style: none !important;}
.tc-fc-cols .tc-yes li::before { content: "\2713"; position: absolute; left: 0; color: #0b7a43; font-weight: 800; }
.tc-fc-cols .tc-no li { padding-left: 26px; position: relative; color: var(--tc-muted); list-style: none !important; }
.tc-fc-cols .tc-no li::before { content: "\2715"; position: absolute; left: 0; color: #b3271e; font-weight: 800; }
@media (max-width: 640px) { .tc-fc-cols { grid-template-columns: 1fr; } }
.tc-fc-h { text-align: center; margin: var(--tc-sp-7) 0 var(--tc-sp-4); }

/* ── For-clinics: value pitch (free-for-all revamp) ─────────────────────── */
.tc-fc-eyebrow { display: inline-block; font-size: var(--tc-fs-xs); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--tc-primary-700); background: var(--tc-primary-50, #eef4ff); border: 1px solid var(--tc-primary-100, #d7e3ff); padding: 5px 12px; border-radius: 999px; margin-bottom: var(--tc-sp-4); }
.tc-fc-lead { text-align: center; color: var(--tc-ink-soft); font-size: var(--tc-fs-md); max-width: 62ch; margin: 0 auto var(--tc-sp-5); }

/* "Everything you get - free": clean check-chip grid (no default markers). */
.tc-fc-features { list-style: none; padding: 0; margin: var(--tc-sp-5) 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px; }
.tc-fc-features li { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; background: #fff; font-size: var(--tc-fs-sm); color: var(--tc-ink); font-weight: 600; }
.tc-fc-features li::before { content: "\2713"; flex: 0 0 auto; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #e7f7ee; color: #0b7a43; font-size: 13px; font-weight: 800; }

/* "Why clinics choose us" - highlighted callout with an accent edge. */
.tc-fc-pitch { position: relative; background: linear-gradient(180deg, var(--tc-primary-50, #eef4ff), #fff); border: 1px solid var(--tc-primary-100, #d7e3ff); padding: var(--tc-sp-7); margin: var(--tc-sp-7) 0; overflow: hidden; }
.tc-fc-pitch::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--tc-grad-primary, linear-gradient(180deg,#12a0a0,#0a5c61)); }
.tc-fc-pitch h3 { margin-top: 0; font-size: var(--tc-fs-xl); }
.tc-fc-pitch > p { font-size: var(--tc-fs-md); color: var(--tc-ink-soft); max-width: 70ch; }
.tc-fc-pitch .tc-yes { list-style: none; padding: 0; margin: var(--tc-sp-5) 0 0; display: flex; flex-wrap: wrap; gap: var(--tc-sp-3); }
.tc-fc-pitch .tc-yes li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; background: #fff;  font-size: var(--tc-fs-sm); font-weight: 700; color: var(--tc-ink); }
.tc-fc-pitch .tc-yes li::before { content: "\2713"; color: #0b7a43; font-weight: 800; }

.tc-fc-note { text-align: center; color: var(--tc-muted); font-size: var(--tc-fs-sm); max-width: 64ch; margin: var(--tc-sp-6) auto; }
.tc-fc-note .tc-fc-em, .tc-fc-em { color: var(--tc-primary-700); font-weight: 700; }
.tc-fc-final { text-align: center; position: relative; overflow: hidden; background: var(--tc-grad-primary, linear-gradient(135deg,#12a0a0,#0a5c61)); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-8) var(--tc-sp-5); margin-top: var(--tc-sp-7); }
.tc-fc-final h3 { margin: 0 0 var(--tc-sp-2); color: #fff; font-size: var(--tc-fs-2xl); }
.tc-fc-final p { margin: 0 0 var(--tc-sp-5); color: rgba(255,255,255,.88); font-size: var(--tc-fs-md); }
.tc-fc-final .tc-btn { background: #fff; color: var(--tc-primary-700); border-color: #fff; }
.tc-fc-final .tc-btn:hover { background: rgba(255,255,255,.9); }

/* ── "Get your badge" panel (owner dashboard) ───────────────────────────── */
.tc-badgepick { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--tc-sp-4); margin: var(--tc-sp-4) 0; }
.tc-badgetile { border: 1px solid var(--tc-line); border-radius: var(--tc-radius); padding: var(--tc-sp-4); display: flex; flex-direction: column; gap: var(--tc-sp-3); }
.tc-badgetile__label { font-size: var(--tc-fs-xs); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--tc-muted); }
.tc-badgetile__preview { display: flex; align-items: center; justify-content: center; min-height: 90px; border-radius: var(--tc-radius); padding: var(--tc-sp-4); }
.tc-badgetile__preview--price { align-items: flex-start; justify-content: flex-start; max-height: 280px; overflow: auto; }
.tc-badgetile__code { width: 100%; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; line-height: 1.5; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm, 8px); padding: 8px 10px; background: var(--tc-bg-alt); color: var(--tc-ink); box-sizing: border-box; resize: vertical; }
.tc-badgetile .tc-badge-copy { align-self: flex-start; }
.tc-badgelive { list-style: none; margin: var(--tc-sp-2) 0 0; padding: 0; display: grid; gap: 6px; }
.tc-badgelive li { font-size: var(--tc-fs-sm); }

/* Badge builder: type tabs + light/dark toggle drive ONE live preview + code box. */
.tc-badgebuilder { border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg, 16px); padding: var(--tc-sp-4); display: flex; flex-direction: column; gap: var(--tc-sp-3); margin: var(--tc-sp-4) 0; background: var(--tc-surface, #fff); }
.tc-bb__tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.tc-bb__tab { appearance: none; cursor: pointer; border: 1px solid var(--tc-line); background: var(--tc-bg-alt); color: var(--tc-muted); font: inherit; font-size: var(--tc-fs-sm); font-weight: 700; padding: 7px 14px; border-radius: 999px; transition: color var(--tc-dur) var(--tc-ease), background var(--tc-dur) var(--tc-ease), border-color var(--tc-dur) var(--tc-ease); }
.tc-bb__tab:hover { color: var(--tc-ink); border-color: var(--tc-primary); }
.tc-bb__tab.is-active { background: var(--tc-primary); border-color: var(--tc-primary); color: #fff; }
.tc-bb__stage { position: relative; display: flex; align-items: center; justify-content: center; min-height: 118px; padding: var(--tc-sp-5) var(--tc-sp-4); border-radius: var(--tc-radius); background: repeating-conic-gradient(var(--tc-bg-alt) 0% 25%, color-mix(in srgb, var(--tc-bg-alt) 55%, #fff) 0% 50%) 0 0 / 22px 22px; }
.tc-bb__preview { display: flex; align-items: center; justify-content: center; }
.tc-bb__toggle { position: absolute; top: 10px; right: 12px; display: inline-flex; align-items: center; gap: 6px; font-size: var(--tc-fs-xs); font-weight: 700; color: var(--tc-muted); background: var(--tc-surface, #fff); border: 1px solid var(--tc-line); border-radius: 999px; padding: 4px 10px 4px 8px; cursor: pointer; user-select: none; }
.tc-bb__toggle input { accent-color: var(--tc-primary); cursor: pointer; margin: 0; }
.tc-bb__copy { align-self: flex-start; }
.tc-bb__copy.is-done { color: var(--tc-primary-700); border-color: var(--tc-primary); }

/* Branch / area name under a clinic's title (multi-location chains) */
.tc-clinic-hero__branch { font-size: var(--tc-fs-md); font-weight: 600; color: var(--tc-primary-700); margin: -2px 0 var(--tc-sp-2); }

/* Clinic intro video - click-to-load facade (YouTube/Vimeo) */
.tc-video { position: relative; aspect-ratio: 16 / 9; width: 100%; margin: 0; border-radius: var(--tc-radius-lg); overflow: hidden; background: #0b1416; cursor: pointer; box-shadow: var(--tc-shadow); }
/* Crop-zoom the poster so baked-in letterbox (cinematic) bars don't show. Tunable. */
.tc-video__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.22); transform-origin: center; }
.tc-video::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.28)); transition: background var(--tc-dur) var(--tc-ease); }
.tc-video:hover::after { background: rgba(0,0,0,.12); }
.tc-video__play { position: absolute; inset: 0; margin: auto; width: 60px; height: 42px; padding: 0; border: none; background: none; cursor: pointer; z-index: 2; display: grid; place-items: center; }
.tc-video__playbg { fill: #212121; opacity: .82; transition: fill var(--tc-dur) var(--tc-ease), opacity var(--tc-dur) var(--tc-ease); }
.tc-video:hover .tc-video__playbg { fill: #cc0000; opacity: 1; }
.tc-video__tag { position: absolute; top: 10px; left: 10px; z-index: 2; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #fff; background: rgba(0,0,0,.55); padding: 3px 9px; border-radius: 999px; }
.tc-video__iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tc-video.is-playing { cursor: default; }
.tc-video.is-playing::after, .tc-video.is-playing .tc-video__tag { display: none; }

/* "Other locations from this clinic" - richer cards */
.tc-clinic-locations { margin-top: var(--tc-sp-7); }
.tc-loccards { list-style: none; margin: var(--tc-sp-4) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--tc-sp-3); }
.tc-loccards li { margin: 0; }

/* This clinic's own guides (3 per row) */
.tc-clinicguides { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--tc-sp-4); }
.tc-clinicguide { margin: 0; }
.tc-clinicguide__link { display: block; text-decoration: none; color: var(--tc-ink); border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); overflow: hidden; background: #fff; transition: transform var(--tc-dur) var(--tc-ease), box-shadow var(--tc-dur) var(--tc-ease); }
.tc-clinicguide__link:hover { transform: translateY(-2px); box-shadow: var(--tc-shadow); }
.tc-clinicguide__img img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--tc-bg-alt); }
.tc-clinicguide__title { display: block; padding: 12px 14px; font-weight: 700; line-height: 1.35; }
@media (max-width: 880px) { .tc-clinicguides { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .tc-clinicguides { grid-template-columns: 1fr; } }

/* ---- Clinic profile: right sidebar (CTAs + social + info cards) ---- */
.tc-clinicaside { display: grid; gap: var(--tc-sp-4); }
.tc-clinicaside__card { background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); box-shadow: var(--tc-shadow-sm); padding: var(--tc-sp-5); display: grid; gap: var(--tc-sp-3); }
.tc-clinicaside__cta { display: grid; gap: var(--tc-sp-2); }
.tc-clinicaside__cta .tc-btn { width: 100%; justify-content: center; }
.tc-clinicaside__social { display: flex; flex-wrap: wrap; gap: var(--tc-sp-2); padding-top: var(--tc-sp-3); border-top: 1px solid var(--tc-line); }
/* Info cards rendered into the sidebar stack as compact widgets. */
.tc-clinicaside .tc-faccard { background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); box-shadow: var(--tc-shadow-sm); padding: var(--tc-sp-5); }

/* ---- Clinic gallery (3 per row, hover zoom, click to open lightbox) ---- */
.tc-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--tc-sp-3); }
.tc-gallery__item { margin: 0; padding: 0; border: 0; background: var(--tc-bg-alt); border-radius: var(--tc-radius); overflow: hidden; cursor: zoom-in; aspect-ratio: 4 / 3; position: relative; }
.tc-gallery__item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s var(--tc-ease); }
.tc-gallery__item::after { content: ""; position: absolute; inset: 0; background: rgba(8,15,20,0); transition: background var(--tc-dur) var(--tc-ease); }
.tc-gallery__item:hover img, .tc-gallery__item:focus-visible img { transform: scale(1.07); }
.tc-gallery__item:hover::after { background: rgba(8,15,20,.08); }
.tc-gallery__item:focus-visible { outline: 2px solid var(--tc-primary); outline-offset: 2px; }
@media (max-width: 700px) { .tc-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 440px) { .tc-gallery { grid-template-columns: 1fr; } }

/* ---- Lightbox overlay ---- */
body.tc-lb-open { overflow: hidden; }
.tc-lb { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; background: rgba(8,15,20,.92); padding: 4vmin; }
.tc-lb.is-open { display: flex; animation: tc-lb-fade .2s var(--tc-ease); }
@keyframes tc-lb-fade { from { opacity: 0; } to { opacity: 1; } }
.tc-lb__img { max-width: 92vw; max-height: 88vh; border-radius: var(--tc-radius); box-shadow: 0 24px 70px rgba(0,0,0,.5); }
.tc-lb__close, .tc-lb__nav { position: absolute; border: 0; background: rgba(255,255,255,.14); color: #fff; border-radius: 50%; cursor: pointer; line-height: 1; transition: background var(--tc-dur) var(--tc-ease); }
.tc-lb__close { top: 16px; right: 20px; width: 44px; height: 44px; font-size: 28px; }
.tc-lb__nav { top: 50%; transform: translateY(-50%); width: 48px; height: 48px; font-size: 30px; }
.tc-lb__prev { left: 16px; }
.tc-lb__next { right: 16px; }
.tc-lb__close:hover, .tc-lb__nav:hover { background: rgba(255,255,255,.28); }

.tc-loccard__link { display: flex; align-items: center; gap: var(--tc-sp-3); padding: var(--tc-sp-4); border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); background: #fff; text-decoration: none; transition: box-shadow var(--tc-dur) var(--tc-ease), border-color var(--tc-dur) var(--tc-ease), transform var(--tc-dur) var(--tc-ease); }
.tc-loccard__link:hover { box-shadow: var(--tc-shadow); border-color: var(--tc-primary-100); transform: translateY(-2px); }
.tc-loccard__logo { flex: 0 0 auto; display: inline-flex; }
.tc-loccard__logo .tc-clinic__logo { width: 56px; height: 40px; object-fit: contain; }
.tc-loccard__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.tc-loccard__name { font-weight: 800; color: var(--tc-ink); }
.tc-loccard__loc { display: inline-flex; align-items: center; gap: 5px; font-size: var(--tc-fs-sm); color: var(--tc-muted); }
.tc-loccard__loc svg { color: var(--tc-primary); flex: 0 0 auto; }
.tc-loccard__badges { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 2px; }
.tc-loccard__aside { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.tc-loccard__aside small { font-size: var(--tc-fs-xs); color: var(--tc-muted); text-transform: uppercase; letter-spacing: .03em; }
.tc-loccard__aside .tc-price { font-size: var(--tc-fs-lg); font-weight: 800; color: var(--tc-primary-700); line-height: 1.1; }
.tc-loccard__go { color: var(--tc-muted); flex: 0 0 auto; display: inline-flex; align-items: center; }
.tc-loccard__link:hover .tc-loccard__go { color: var(--tc-primary-700); }

/* Owner dashboard: social-link inputs */
.tc-socialflds { display: grid; gap: 8px 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 560px) { .tc-socialflds { grid-template-columns: 1fr; } }
.tc-socialfld { display: flex; align-items: center; gap: 10px; }
.tc-socialfld__ico { flex: 0 0 auto; width: 22px; height: 22px; display: inline-flex; color: var(--tc-muted); }
.tc-socialfld__ico svg { width: 22px; height: 22px; }
.tc-socialfld input { flex: 1 1 auto; min-width: 0; }

/* Owner dashboard: FAQ editor rows */
.tc-faqrow { display: grid; gap: 6px; margin-bottom: var(--tc-sp-3); padding-bottom: var(--tc-sp-3); border-bottom: 1px solid var(--tc-line-soft); }
.tc-faqrow:last-of-type { border-bottom: 0; }
.tc-faqrow input, .tc-faqrow textarea { width: 100%; padding: 9px 12px; border-radius: var(--tc-radius-sm, 8px); border: 1px solid var(--tc-line); font: inherit; box-sizing: border-box; color: var(--tc-ink); background: #fff; }
.tc-faqrow input { font-weight: 700; }
.tc-faqrow textarea { resize: vertical; }

/* Owner dashboard: insurer checkboxes */
.tc-inschks { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px; margin-bottom: 6px; }
.tc-inschk { display: flex; align-items: center; gap: 10px; font-size: var(--tc-fs-sm); font-weight: 600; cursor: pointer; padding: 8px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius); background: #fff; transition: border-color var(--tc-dur) var(--tc-ease), background var(--tc-dur) var(--tc-ease); }
.tc-inschk:hover { border-color: var(--tc-primary-200); }
.tc-inschk:has(input:checked) { border-color: var(--tc-primary); background: var(--tc-primary-50); }
.tc-inschk input { flex: 0 0 auto; width: auto; }
.tc-inschk__chip { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: 0 0 auto; }
.tc-inschk__chip img, .tc-inschk__chip .tc-insurer__img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.tc-inschk { align-items: center; min-height: 44px; }

/* Field helper note tucked under an input (replaces a repeated inline margin) */
.tc-mc-muted--field { margin: -6px 0 var(--tc-sp-3); }

/* ===== /for-clinics/ - Free vs Premium ===== */
.tc-fc-trial { display: inline-flex; align-items: center; gap: 8px; margin-top: var(--tc-sp-4); padding: 9px 16px; border-radius: var(--tc-radius-pill); background: var(--tc-primary-100); color: var(--tc-primary-700); font-weight: 700; font-size: var(--tc-fs-sm); }
.tc-fc-trial svg { width: 16px; height: 16px; flex: 0 0 auto; }

.tc-fc-plans { width: 100%; margin: var(--tc-sp-5) 0 var(--tc-sp-4); }
/* border-collapse:separate so cell corners can round + tooltips aren't clipped */
.tc-plantable { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); box-shadow: 0 12px 44px -24px rgba(12,31,40,.4); }
.tc-plantable th, .tc-plantable td { padding: 15px 22px; text-align: left; border-bottom: 1px solid var(--tc-line-soft); vertical-align: middle; }
.tc-plantable tbody tr:last-child td { border-bottom: 0; }
.tc-plantable tbody tr:hover td { background: rgba(14, 138, 143, .035); }

/* Header */
.tc-plantable thead th { background: var(--tc-bg-alt); vertical-align: bottom; padding-top: 18px; padding-bottom: 15px; }
.tc-plantable thead th:first-child { font-size: var(--tc-fs-sm); font-weight: 700; color: var(--tc-muted); text-transform: uppercase; letter-spacing: .04em; vertical-align: middle; }
.tc-plantable__plan { display: block; font-weight: 900; font-size: var(--tc-fs-lg); color: var(--tc-ink); line-height: 1.1; }
.tc-plantable thead small { display: block; color: var(--tc-muted); font-weight: 600; font-size: var(--tc-fs-xs); margin-top: 3px; }

/* Plan columns (centred, fixed) */
.tc-plantable th:nth-child(2), .tc-plantable th:nth-child(3),
.tc-plantable td:nth-child(2), .tc-plantable td:nth-child(3) { text-align: center; width: 150px; }

/* Premium highlighted lane */
.tc-plantable__premcol { background: var(--tc-primary-50); }
.tc-plantable tbody tr:hover td.tc-plantable__premcol { background: var(--tc-primary-100); }
.tc-plantable thead th.tc-plantable__premcol { background: linear-gradient(180deg, var(--tc-primary-100), var(--tc-primary-50)); box-shadow: inset 0 3px 0 var(--tc-primary); }
.tc-plantable thead th.tc-plantable__premcol .tc-plantable__plan { color: var(--tc-primary-700); }

/* Rounded corners (cells, since separate borders) */
.tc-plantable thead th:first-child { border-top-left-radius: var(--tc-radius-lg); }
.tc-plantable thead th:last-child { border-top-right-radius: var(--tc-radius-lg); }
.tc-plantable tbody tr:last-child td:first-child { border-bottom-left-radius: var(--tc-radius-lg); }
.tc-plantable tbody tr:last-child td:last-child { border-bottom-right-radius: var(--tc-radius-lg); }

/* Feature label (left column expands) */
.tc-plantable__feat { font-weight: 600; color: var(--tc-ink); font-size: var(--tc-fs-base); }

/* Included / not-included marks */
.tc-pt-mark { display: inline-grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; }
.tc-pt-mark--yes { background: var(--tc-primary); color: #fff; box-shadow: 0 3px 8px -2px rgba(14, 138, 143, .55); }
.tc-pt-mark--yes svg { width: 15px; height: 15px; }
.tc-pt-mark--no { background: var(--tc-bg-alt); color: var(--tc-muted); font-weight: 700; }

/* "Soon" pill */
.tc-soon { display: inline-block; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--tc-primary-700); background: var(--tc-primary-100); border-radius: 999px; padding: 2px 8px; vertical-align: middle; margin-left: 6px; }

/* Info tooltip (inline ⓘ after the label) */
.tc-tip { position: relative; display: inline-flex; vertical-align: middle; margin-left: 6px; color: var(--tc-muted); cursor: help; border-radius: 50%; opacity: .7; }
.tc-tip:hover, .tc-tip:focus, .tc-tip:focus-visible { color: var(--tc-primary); opacity: 1; outline: none; }
.tc-tip:focus-visible { box-shadow: 0 0 0 3px var(--tc-primary-100); }
.tc-tip svg { width: 15px; height: 15px; display: block; }
.tc-tip__bubble { position: absolute; bottom: calc(100% + 10px); left: 50%; transform: translateX(-50%); width: max-content; max-width: min(280px, 78vw); background: var(--tc-ink); color: #fff; font-size: var(--tc-fs-xs); font-weight: 500; line-height: 1.5; text-align: left; padding: 10px 12px; border-radius: 10px; box-shadow: 0 16px 40px -10px rgba(0,0,0,.5); opacity: 0; visibility: hidden; transition: opacity .14s var(--tc-ease), visibility .14s; z-index: 60; pointer-events: none; white-space: normal; }
.tc-tip__bubble::after { content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 6px solid transparent; border-top-color: var(--tc-ink); }
.tc-tip:hover .tc-tip__bubble, .tc-tip:focus .tc-tip__bubble, .tc-tip:focus-visible .tc-tip__bubble { opacity: 1; visibility: visible; }

/* Small note below the table (separate) */
.tc-fc-plannote { max-width: 760px; margin: var(--tc-sp-4) auto 0; text-align: center; }
.tc-fc-plannote__trial { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 var(--tc-sp-3); padding: 9px 18px; border-radius: var(--tc-radius-pill); background: var(--tc-primary-50); color: var(--tc-primary-700); font-size: var(--tc-fs-sm); font-weight: 700; }
.tc-fc-plannote__trial svg { width: 15px; height: 15px; flex: 0 0 auto; }
.tc-fc-plannote p { margin: 6px 0; color: var(--tc-muted); font-size: var(--tc-fs-sm); line-height: 1.55; }
.tc-fc-plannote p strong { color: var(--tc-ink); }

@media (max-width: 640px) {
	.tc-plantable th, .tc-plantable td { padding: 12px 12px; }
	.tc-plantable__feat { font-size: var(--tc-fs-sm); }
	.tc-plantable th:nth-child(2), .tc-plantable th:nth-child(3), .tc-plantable td:nth-child(2), .tc-plantable td:nth-child(3) { width: 64px; }
	.tc-plantable thead th { padding: 12px 8px; }
	.tc-plantable__plan { font-size: var(--tc-fs-base); }
	.tc-pt-mark { width: 23px; height: 23px; }
	.tc-pt-mark--yes svg { width: 13px; height: 13px; }
}

/* ===== Verified review collection (form + display + dashboard) ===== */
/* Verified-link banner + no-login form */
.tc-reviews__verifiednote { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 10px 14px; border-radius: var(--tc-radius-sm); background: var(--tc-primary-50); color: var(--tc-primary-700); font-weight: 600; font-size: var(--tc-fs-sm); }
.tc-reviews__verifiednote svg { flex: 0 0 auto; width: 16px; height: 16px; }
.tc-reviewform__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tc-reviews__consent { display: flex; gap: 8px; align-items: flex-start; font-size: var(--tc-fs-sm); color: var(--tc-ink); margin: 6px 0; }
.tc-reviews__consent input { margin-top: 3px; flex: 0 0 auto; }
.tc-reviews__smallnote { font-size: var(--tc-fs-xs); color: var(--tc-muted); margin: 8px 0 0; }
@media (max-width: 540px) { .tc-reviewform__row { grid-template-columns: 1fr; } }
/* Title (compact) + full-name row in the clinic "add specialist" form */
.tc-reviewform__row.tc-namerow { grid-template-columns: 110px minmax(0, 1fr); }
@media (max-width: 540px) { .tc-reviewform__row.tc-namerow { grid-template-columns: 84px minmax(0, 1fr); } }

/* Verified badge + treatment chip on a published review */
.tc-review__verified { display: inline-flex; align-items: center; gap: 3px; margin-left: 8px; padding: 2px 8px; border-radius: var(--tc-radius-pill); background: var(--tc-primary-50); color: var(--tc-primary-700); font-size: 11px; font-weight: 800; letter-spacing: .02em; vertical-align: middle; }
.tc-review__verified svg { width: 12px; height: 12px; }
.tc-review__tags { margin: 2px 0 6px; }
.tc-review__treat { display: inline-block; padding: 3px 10px; border-radius: var(--tc-radius-pill); background: var(--tc-bg-alt); color: var(--tc-ink-soft); font-size: var(--tc-fs-xs); font-weight: 600; }

/* Dashboard: review-request link box */
/* Public-profile URL bar at the top of the dashboard */
.tc-mc-publicurl { margin: 0 0 18px; display: grid; gap: 6px; }
.tc-mc-publicurl__lbl { font-weight: 600; font-size: .85rem; color: var(--tc-muted); }
.tc-mc-publicurl .tc-revlink { margin: 0; }
.tc-revlink { display: flex; gap: 8px; margin: 6px 0; }
.tc-revlink input { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm); background: var(--tc-bg-alt); font-size: var(--tc-fs-sm); color: var(--tc-ink); }
.tc-revlink .tc-btn { flex: 0 0 auto; }
@media (max-width: 540px) { .tc-revlink { flex-direction: column; } }

/* Dashboard: reviews moderation list */
.tc-mc-revlist { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 12px; }
.tc-mc-rev { border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); padding: 14px 16px; background: #fff; }
.tc-mc-rev.is-pending { border-color: #e7c200; background: #fffdf3; }
.tc-mc-rev__top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tc-mc-rev__top strong { font-weight: 800; }
.tc-mc-rev__date { margin-left: auto; color: var(--tc-muted); font-size: var(--tc-fs-xs); }
.tc-mc-rev__ttl { font-weight: 700; margin: 6px 0 2px; }
.tc-mc-rev__body { margin: 6px 0; color: var(--tc-ink); font-size: var(--tc-fs-sm); line-height: 1.5; }
.tc-mc-rev__reply { margin: 8px 0 0; padding: 8px 12px; border-left: 3px solid var(--tc-primary); background: var(--tc-primary-50); border-radius: 6px; font-size: var(--tc-fs-sm); }
.tc-mc-rev__actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.tc-mc-rev__replyform { display: flex; gap: 8px; margin-top: 10px; align-items: flex-start; }
.tc-mc-rev__replyform textarea { flex: 1; min-width: 0; padding: 8px 10px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm); font-size: var(--tc-fs-sm); }

/* Status pills */
.tc-revpill { display: inline-block; padding: 2px 9px; border-radius: var(--tc-radius-pill); background: var(--tc-bg-alt); color: var(--tc-muted); font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.tc-revpill--ok { background: var(--tc-primary-50); color: var(--tc-primary-700); }
.tc-revpill--pending { background: #fcf0d6; color: #8a6d00; }

/* ===== Standalone /leave-a-review/ landing page ===== */
.tc-revland { max-width: 640px; margin: 0 auto; }
.tc-revland__back { display: inline-block; margin-bottom: var(--tc-sp-4); color: var(--tc-muted); font-size: var(--tc-fs-sm); font-weight: 600; text-decoration: none; }
.tc-revland__back:hover { color: var(--tc-primary); }
.tc-revland__card { background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); box-shadow: 0 18px 50px -28px rgba(12,31,40,.4); padding: clamp(20px, 4vw, 36px); }
.tc-revland__head { display: flex; align-items: center; gap: 16px; padding-bottom: var(--tc-sp-4); margin-bottom: var(--tc-sp-5); border-bottom: 1px solid var(--tc-line-soft); }
.tc-revland__logo { width: 60px; height: 60px; object-fit: contain; border-radius: var(--tc-radius-sm); flex: 0 0 auto; }
.tc-revland__headtext { min-width: 0; }
.tc-revland__eyebrow { display: block; color: var(--tc-muted); font-size: var(--tc-fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.tc-revland__name { margin: 2px 0 0; font-size: var(--tc-fs-xl); font-weight: 900; line-height: 1.15; }
.tc-revland__rating { margin-top: 6px; }
/* Reuse the in-page review form, but always visible (no <details>) and roomier */
.tc-revland .tc-reviewform { display: block; }
.tc-revland .tc-fld { margin-bottom: var(--tc-sp-4); }
/* Thank-you state */
.tc-revland__thanks { text-align: center; padding: var(--tc-sp-5) 0 var(--tc-sp-3); }
.tc-revland__thanksicon { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--tc-primary); color: #fff; margin-bottom: var(--tc-sp-4); box-shadow: 0 8px 22px -6px rgba(14,138,143,.6); }
.tc-revland__thanksicon svg { width: 30px; height: 30px; }
.tc-revland__thanks h2 { margin: 0 0 var(--tc-sp-2); }
.tc-revland__thanks p { color: var(--tc-ink-soft); margin: 0 auto var(--tc-sp-5); max-width: 42ch; }

/* ===== Dashboard: profile-completeness meter ===== */
.tc-mc-complete__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tc-mc-complete__top h3 { margin: 0; }
.tc-mc-complete__pct { font-weight: 900; font-size: var(--tc-fs-lg); color: var(--tc-primary-700); }
.tc-mc-complete__bar { height: 10px; border-radius: var(--tc-radius-pill); background: var(--tc-bg-alt); overflow: hidden; margin: 10px 0 4px; }
.tc-mc-complete__bar span { display: block; height: 100%; border-radius: var(--tc-radius-pill); background: linear-gradient(90deg, var(--tc-primary), var(--tc-primary-700)); transition: width .4s var(--tc-ease); }
/* .tc-content prefix so these beat the generic `.tc-content ul/li` prose rules. */
.tc-content .tc-mc-complete__list { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tc-content .tc-mc-complete__list li { list-style: none; margin: 0; color: inherit; }
.tc-mc-complete__list a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-pill); background: #fff; font-size: var(--tc-fs-sm); font-weight: 600; color: var(--tc-ink); text-decoration: none; }
.tc-mc-complete__list a::before { content: "+"; font-weight: 900; color: var(--tc-primary); }
.tc-mc-complete__list a:hover { border-color: var(--tc-primary); background: var(--tc-primary-50); }

/* ===== Specialists: directory, cards & profile ===== */
.tc-specfilter { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 var(--tc-sp-5); }
.tc-specfilter input[type="search"] { flex: 1; min-width: 200px; padding: 11px 14px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm); font-size: var(--tc-fs-sm); }
.tc-specfilter select { padding: 11px 14px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm); font-size: var(--tc-fs-sm); background: #fff; }

.tc-speclist { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; margin-top: 12px; }

/* Card */
.tc-speccard { position: relative; display: flex; align-items: center; gap: 14px; padding: 16px; background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); text-decoration: none; color: var(--tc-ink); transition: border-color .15s var(--tc-ease), box-shadow .15s var(--tc-ease), transform .15s var(--tc-ease); }
.tc-speccard:hover { border-color: var(--tc-primary); box-shadow: 0 14px 36px -22px rgba(12,31,40,.4); transform: translateY(-2px); }
/* Stretched cover link makes the whole card clickable; chips sit above it. */
.tc-speccard__cover { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.tc-speccard__foci { position: relative; z-index: 2; margin-top: 6px; }
.tc-speccard__foci .tc-foci-chip { font-size: var(--tc-fs-xs); padding: 3px 9px; }
.tc-speccard__media { flex: 0 0 auto; }
.tc-speccard__body { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
.tc-speccard__name { font-weight: 800; display: inline-flex; align-items: center; gap: 5px; }
.tc-speccard__spec { color: var(--tc-primary-700); font-size: var(--tc-fs-sm); font-weight: 600; }
.tc-speccard__rating { font-size: var(--tc-fs-sm); }
.tc-speccard__where { display: inline-flex; align-items: center; gap: 4px; color: var(--tc-muted); font-size: var(--tc-fs-xs); }
.tc-speccard__where svg { width: 14px; height: 14px; flex: 0 0 auto; }
/* Single-stat variant of the directory stat card (specialists). */
.tc-statcard__grid--one { grid-template-columns: 1fr; }

/* Avatar */
.tc-specavatar { display: inline-grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--tc-bg-alt); flex: 0 0 auto; }
.tc-specavatar__img { width: 100%; height: 100%; object-fit: cover; }
.tc-specavatar--initial { color: var(--tc-primary-700); font-weight: 800; font-size: 1.4rem; }

/* Verified marks */
.tc-spec-vtick { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: var(--tc-primary); color: #fff; }
.tc-spec-vtick svg { width: 11px; height: 11px; }
.tc-spec-vbadge { display: inline-flex; align-items: center; gap: 4px; vertical-align: middle; margin-left: 10px; padding: 3px 10px; border-radius: var(--tc-radius-pill); background: var(--tc-primary-50); color: var(--tc-primary-700); font-size: var(--tc-fs-xs); font-weight: 800; }
.tc-spec-vbadge svg { width: 13px; height: 13px; }

/* Profile */
.tc-specprofile { max-width: 1060px; }
.tc-spechero { display: flex; gap: 28px; align-items: flex-start; padding: var(--tc-sp-6); background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); box-shadow: var(--tc-shadow-sm); margin-bottom: var(--tc-sp-5); }

/* Anchor sub-nav (jump links) under the hero */
.tc-specnav { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 var(--tc-sp-5); padding: 6px; background: var(--tc-bg-alt); border: 1px solid var(--tc-line-soft); border-radius: var(--tc-radius-md); position: sticky; top: 12px; z-index: 5; }
.tc-specnav a { padding: 7px 14px; border-radius: var(--tc-radius-sm); font-size: var(--tc-fs-sm); font-weight: 600; color: var(--tc-ink-soft); text-decoration: none; white-space: nowrap; }
.tc-specnav a:hover { background: #fff; color: var(--tc-primary-700); }

/* Two-column layout: content + sticky contact/info sidebar */
.tc-speclayout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--tc-sp-6); align-items: start; }
.tc-speclayout--full { grid-template-columns: 1fr; }
.tc-speclayout__main { min-width: 0; }
.tc-speclayout__main > div[id] { scroll-margin-top: 76px; }
.tc-speclayout__side { position: sticky; top: 72px; }
.tc-specaside__card { background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); box-shadow: var(--tc-shadow-sm); padding: var(--tc-sp-5); }
.tc-specaside__card + .tc-specaside__card { margin-top: var(--tc-sp-4); }
.tc-specaside__h { font-size: var(--tc-fs-lg); margin: 0 0 var(--tc-sp-4); }
/* "Practises at" sidebar card: clinics stacked vertically (reusing the clinic cards). */
.tc-specaside__clinics { display: grid; gap: 10px; }
.tc-specaside__card--clinics .tc-speclinks--side { flex-direction: column; align-items: stretch; gap: 8px; margin: var(--tc-sp-4) 0 0; padding-top: var(--tc-sp-4); border-top: 1px solid var(--tc-line-soft); }
.tc-specaside__card--clinics .tc-speclinks--side a { justify-content: flex-start; }
.tc-specaside__contact { display: grid; gap: 8px; margin-top: var(--tc-sp-3); }
.tc-specaside__facts { margin-top: var(--tc-sp-4); padding-top: var(--tc-sp-4); border-top: 1px solid var(--tc-line-soft); display: grid; gap: var(--tc-sp-3); }
.tc-specaside__row { display: grid; gap: 4px; font-size: var(--tc-fs-sm); }
.tc-specaside__lbl { font-weight: 700; color: var(--tc-muted); font-size: var(--tc-fs-xs);  }
.tc-specaside__val { display: inline-flex; align-items: center; gap: 6px; color: var(--tc-ink-soft); }
.tc-specaside__val svg { width: 15px; height: 15px; flex: 0 0 auto; }
.tc-langlist { display: flex; flex-wrap: wrap; gap: 6px 12px; }
.tc-langlist .tc-lang { display: inline-flex; align-items: center; gap: 5px; color: var(--tc-ink-soft); }
@media (max-width: 900px) {
	.tc-speclayout { grid-template-columns: 1fr; }
	/* On narrow screens the contact/info card moves ABOVE the content (instead of
	   dropping to the very bottom under the reviews) so it stays easy to reach. */
	.tc-speclayout__side { position: static; order: -1; }
	.tc-speclayout--clinic .tc-speclayout__side { top: auto; max-height: none; overflow: visible; }
	.tc-specnav { position: static; }
	/* Sub-nav scrolls horizontally instead of wrapping into a tall block. */
	.tc-specnav { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.tc-specnav a { flex: 0 0 auto; }
}
@media (max-width: 560px) {
	.tc-specprofile { max-width: 100%; }
	.tc-spechero { padding: var(--tc-sp-4); }
	.tc-spechero__name { font-size: var(--tc-fs-xl); gap: 8px 10px; }
	.tc-specaside__card { padding: var(--tc-sp-4); }
}
.tc-spechero__media { flex: 0 0 auto; }
.tc-spechero__media .tc-specavatar { box-shadow: 0 0 0 5px var(--tc-primary-50); }
.tc-spechero__main { min-width: 0; flex: 1; }
.tc-spechero__name { margin: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; line-height: 1.15; font-size: 1.95rem; }
.tc-spechero__spec { margin: 8px 0 0; color: var(--tc-primary-700); font-weight: 700; font-size: var(--tc-fs-lg); }
.tc-spechero__meta { display: flex; align-items: center; gap: 8px 20px; flex-wrap: wrap; }
.tc-spechero__langs, .tc-spechero__loc { display: inline-flex; align-items: center; gap: 6px; color: var(--tc-muted); font-size: var(--tc-fs-sm); }
.tc-spechero__langs { flex-wrap: wrap; gap: 6px 12px; }
.tc-spechero__langs .tc-lang { display: inline-flex; align-items: center; gap: 5px; }
.tc-spechero__langs svg, .tc-spechero__loc svg { width: 15px; height: 15px; flex: 0 0 auto; }
.tc-spechero__cta { margin-top: var(--tc-sp-4); }

.tc-specblock { margin: var(--tc-sp-6) 0; }
.tc-specblock h2 { font-size: var(--tc-fs-xl); margin: 0 0 var(--tc-sp-3); }
.tc-specblock__prose { color: var(--tc-ink-soft); line-height: 1.7; }
.tc-specblock__note { color: var(--tc-muted); font-size: var(--tc-fs-xs); margin-top: 8px; }

.tc-spectreat { width: 100%; border-collapse: collapse; }
.tc-spectreat td { padding: 12px 4px; border-bottom: 1px solid var(--tc-line-soft); vertical-align: top; }
.tc-spectreat__name { font-weight: 600; }
.tc-spectreat__price { text-align: right; white-space: nowrap; color: var(--tc-muted); }
.tc-spectreat__price strong { color: var(--tc-ink); }

/* Public profile: treatments & prices list - clear, well-separated rows */
/* Per-clinic treatment groups on the specialist profile ("At Clinic B" / "At Clinic C"). */
.tc-treatgroup__h { font-size: var(--tc-fs-md); margin: var(--tc-sp-5) 0 var(--tc-sp-2); padding-top: var(--tc-sp-4); border-top: 1px solid var(--tc-line-soft); }
.tc-treatgroup__h:first-of-type { margin-top: var(--tc-sp-2); padding-top: 0; border-top: 0; }
.tc-treatgroup__at { color: var(--tc-muted); font-weight: 600; }
.tc-treatgroup__h a { color: var(--tc-primary-700); text-decoration: none; }
.tc-treatgroup__h a:hover { text-decoration: underline; }
.tc-treatlist { list-style: none; margin: 0; padding: 0; }
.tc-treatlist__item { padding: 18px 0; border-bottom: 1px solid var(--tc-line); }
.tc-treatlist__item:first-child { padding-top: 4px; }
.tc-treatlist__item:last-child { border-bottom: 0; padding-bottom: 4px; }
.tc-treatlist__top { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.tc-treatlist__name { font-weight: 700; font-size: var(--tc-fs-md); color: var(--tc-ink); line-height: 1.3; }
.tc-treatlist__price { white-space: nowrap; color: var(--tc-ink); font-size: var(--tc-fs-md); }
.tc-treatlist__price strong { font-weight: 800; }
.tc-treatlist__from { color: var(--tc-muted); font-weight: 500; font-size: var(--tc-fs-sm); }
.tc-treatlist__desc { margin: 8px 0 0; color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); line-height: 1.6; max-width: 62ch; }
.tc-treatlist__cta { margin-top: 12px; }
/* Doctor Pro per-treatment editor (dashboard) */
.tc-treatmeta { margin-top: 6px; }
.tc-treatmeta > summary { cursor: pointer; font-weight: 600; font-size: .85rem; color: var(--tc-primary); list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.tc-treatmeta > summary::-webkit-details-marker { display: none; }
.tc-treatmeta > summary::before { content: "+"; font-weight: 700; }
.tc-treatmeta[open] > summary::before { content: "\2212"; }
.tc-treatmeta__body { display: grid; gap: 10px; margin-top: 10px; max-width: 460px; }
.tc-treatmeta__body textarea, .tc-treatmeta__body input[type="url"] {
	width: 100%; box-sizing: border-box; font: inherit; color: var(--tc-ink); background: #fff;
	border: 1px solid var(--tc-border, #cdd6e0); border-radius: 8px; padding: 10px 12px;
	transition: border-color var(--tc-dur) var(--tc-ease), box-shadow var(--tc-dur) var(--tc-ease);
}
.tc-treatmeta__body textarea { resize: vertical; min-height: 64px; }
.tc-treatmeta__body textarea:focus, .tc-treatmeta__body input[type="url"]:focus { outline: none; border-color: var(--tc-primary); box-shadow: 0 0 0 3px var(--tc-primary-50); }

.tc-specclinics { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.tc-specclinic { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); text-decoration: none; color: var(--tc-ink); transition: border-color var(--tc-dur) var(--tc-ease), box-shadow var(--tc-dur) var(--tc-ease); }
.tc-specclinic:hover { border-color: var(--tc-primary); box-shadow: var(--tc-shadow-sm); }
.tc-specclinic__logo { flex: 0 0 auto; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; }
.tc-specclinic__logo img, .tc-specclinic__logo .tc-clinic-logo { width: 40px; height: 40px; border-radius: 8px; object-fit: contain; }
.tc-specclinic__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.tc-specclinic__name { font-weight: 800; line-height: 1.2; }
.tc-specclinic__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; color: var(--tc-muted); font-size: var(--tc-fs-xs); }
.tc-specclinic__loc { display: inline-flex; align-items: center; gap: 3px; }
.tc-specclinic__rate .tc-rating { font-size: var(--tc-fs-xs); }
.tc-specclinic__go { flex: 0 0 auto; color: var(--tc-muted); }
.tc-specclinic:hover .tc-specclinic__go { color: var(--tc-primary); }

/* Subtle text-style buttons (used for a low-emphasis Remove so it isn't misclicked). */
.tc-linklike { background: none; border: 0; padding: 4px 6px; margin: 0; font: inherit; cursor: pointer; text-decoration: underline; color: var(--tc-muted); }
.tc-linklike:hover { color: var(--tc-ink); }
.tc-linklike--danger { color: #b32d2e; }
.tc-linklike--danger:hover { color: #8a1f1c; }

/* "Remove from clinic" sits on its own row, separated from the action buttons. */
.tc-mc-cons__danger { flex-basis: 100%; margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--tc-line-soft); text-align: right; }
.tc-mc-cons__danger form { display: inline; margin: 0; }

/* "Get badge" on its own full-width row, with a plain-English explainer above it. */
/* Badge promo: hint + "Get badge code" grouped as one contained block. */
.tc-mc-cons__badge { flex-basis: 100%; margin-top: 12px; padding: 14px; background: var(--tc-bg-alt); border: 1px solid var(--tc-line); border-radius: var(--tc-radius); }
.tc-mc-cons__badgehint { margin: 0 0 10px; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); line-height: 1.5; }
.tc-mc-cons__badgehint strong { color: var(--tc-ink); }

/* Delegated specialist's treatments & prices, edited in place (AJAX) in the Edit panel. */
.tc-spectreats { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--tc-line); }
.tc-spectreats.is-busy { opacity: .6; pointer-events: none; }
.tc-spectreats__lead { margin: 0 0 10px; }
.tc-spectreats__msg { min-height: 0; font-size: var(--tc-fs-sm); font-weight: 600; margin: 0; }
.tc-spectreats__msg.is-ok { color: #0b7a43; margin-bottom: 8px; }
.tc-spectreats__msg.is-err { color: #b32d2e; margin-bottom: 8px; }
.tc-spectreats__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.tc-spectreats__row { display: flex; align-items: center; gap: 10px; font-size: var(--tc-fs-sm); padding: 6px 8px; border-radius: 8px; }
.tc-spectreats__row:hover { background: var(--tc-bg-alt); }
.tc-spectreats__name { flex: 1 1 auto; min-width: 0; }
.tc-spectreats__price { display: inline-flex; align-items: center; gap: 2px; font-weight: 700; }
.tc-spectreats__cur { color: var(--tc-muted); }
.tc-spectreats__input { width: 82px; padding: 5px 8px; border: 1px solid var(--tc-line); border-radius: 8px; font-size: var(--tc-fs-sm); font-weight: 700; text-align: right; }
.tc-spectreats__input:focus { border-color: var(--tc-primary); outline: 2px solid var(--tc-primary-100, #cfeaea); outline-offset: 1px; }
.tc-spectreats__delform { margin: 0; flex: 0 0 auto; }
.tc-spectreats__del { font-size: 20px; line-height: 1; text-decoration: none; padding: 0 4px; }
.tc-spectreats__empty { margin: 0 0 8px; }
/* "Add a single treatment" row: procedure dropdown + price + Add. */
.tc-spectreats__addform { margin: 10px 0 0; }
.tc-spectreats__addrow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tc-spectreats__proc { flex: 1 1 auto; min-width: 0; padding: 6px 10px; border: 1px solid var(--tc-line); border-radius: 8px; font: inherit; font-size: var(--tc-fs-sm); background: #fff; }
.tc-spectreats__addrow .tc-spectreats__price { flex: 0 0 auto; }
.tc-spectreats__addrow .tc-spectreats__input { width: 74px; }
.tc-spectreats__reqnote { margin: 8px 0 0; font-size: var(--tc-fs-sm); }
.tc-spectreats__reqnote a { color: var(--tc-primary-700); text-decoration: underline; }
/* Copy button sits apart from its explainer, with breathing room. */
.tc-spectreats__copy { margin-top: 14px; }
.tc-spectreats__copyform { margin: 0; }
.tc-spectreats__note { margin: 10px 0 0; }
.tc-spectreats__scope { margin: 0 0 10px; }
/* Never show the destructive "Remove from clinic" while the card is being edited or a
   badge is open - avoids an accidental click next to the edit controls. */
.tc-mc-cons:has(details[open]) .tc-mc-cons__danger { display: none; }

/* Qualifications & registration table */
.tc-spectable { width: 100%; border-collapse: collapse; margin: 0; }
.tc-spectable th, .tc-spectable td { text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--tc-line-soft); font-size: var(--tc-fs-sm); vertical-align: top; line-height: 1.45; }
.tc-spectable tr:first-child th, .tc-spectable tr:first-child td { border-top: 1px solid var(--tc-line-soft); }
.tc-spectable th { width: 38%; color: var(--tc-muted); font-weight: 600; }
.tc-spectable td { color: var(--tc-ink); font-weight: 600; }
.tc-spectable__sub { display: inline-block; margin-top: 2px; color: var(--tc-muted); font-weight: 500; }
/* Multiple registrations stacked under one "Registered with" row */
.tc-reg-item + .tc-reg-item { margin-top: 12px; }
.tc-reg-item__name { display: block; font-weight: 500; }
.tc-reg-item .tc-spectable__sub { display: block; }

/* Areas-of-expertise chips in the profile hero ("Specialist in …") */
.tc-spechero__foci { margin-top: 18px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.tc-spechero__foci-lbl { font-size: var(--tc-fs-xs); font-weight: 700;  color: var(--tc-muted); }
.tc-spechero__foci .tc-foci-chips { gap: 8px; }
.tc-spechero__foci .tc-foci-chip { background: #fff; border: 1px solid var(--tc-primary-100, #cfeaea); color: var(--tc-primary-700); font-weight: 700; padding: 7px 15px; box-shadow: 0 1px 2px rgba(16,24,40,.05); transition: background var(--tc-dur) var(--tc-ease), border-color var(--tc-dur) var(--tc-ease), transform var(--tc-dur) var(--tc-ease), box-shadow var(--tc-dur) var(--tc-ease); }
.tc-spechero__foci .tc-foci-chip--link:hover { background: var(--tc-primary-50); border-color: var(--tc-primary); transform: translateY(-1px); box-shadow: 0 4px 10px rgba(16,24,40,.08); }

/* Premium / Doctor Pro badge base pill now lives in main.css (loaded first, site-wide)
   so directory cards get it too. Hero sizing overrides only are kept in app.css. */
/* Specialty/category badge in the hero badge row */
.tc-catbadge { display: inline-flex; align-items: center; padding: 3px 11px; border-radius: 999px; font-size: 11px; font-weight: 800; line-height: 1; letter-spacing: .02em; text-transform: uppercase; background: var(--tc-primary-50); color: var(--tc-primary-700); border: 1px solid var(--tc-primary-100, #cfeaea); white-space: nowrap; vertical-align: middle; }
/* Calendar icon inside the Book button */
.tc-book-ico { flex: 0 0 auto; }

/* Consistent section headings across the specialist profile (e.g. Reviews matched the
   rest instead of rendering at the global oversized h2 size) */
.tc-speclayout__main section > h2 { font-size: var(--tc-fs-xl); line-height: 1.25; margin: 0 0 var(--tc-sp-3); }
/* Section headings on the clinic + specialist profile pages, ~13% smaller than base. */
.tc-speclayout__main .tc-section__head h2 { font-size: 1.65rem; line-height: 1.2; }

/* Clinic profile: the sidebar clears the sticky sub-nav (72px header + ~48px sub-nav).
   No internal max-height/overflow: position:sticky already reveals the bottom when you
   reach the end of the page, and capping it forced an ugly scrollbar once the contact
   CTAs (e.g. WhatsApp) grew past the viewport height. */
.tc-speclayout--clinic .tc-speclayout__side { top: 124px; }
.tc-speclayout--clinic .tc-speclayout__main > div[id] { scroll-margin-top: 128px; }

/* Languages spoken - shown in the clinic hero (moved out of the sidebar). */
.tc-clinic-hero__langs { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: var(--tc-sp-3) 0 0; }
.tc-clinic-hero__langs-label { font-weight: 700; color: var(--tc-muted); font-size: var(--tc-fs-sm); }
.tc-clinic-hero__langs-list { display: inline-flex; flex-wrap: wrap; gap: 6px 14px; }
.tc-hero-lang { display: inline-flex; align-items: center; gap: 6px; color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); }
.tc-hero-lang svg, .tc-hero-lang img { width: 18px; height: auto; border-radius: 2px; flex: 0 0 auto; }

/* Insurers accepted - wide horizontal list in the main content (moved from sidebar). */
.tc-inslist--wide { display: flex; flex-wrap: wrap; gap: var(--tc-sp-4); margin: 0; padding: 0; list-style: none; }
.tc-inslist--wide .tc-inslist__item { display: inline-flex; align-items: center; gap: 8px; }

@media (max-width: 640px) {
	.tc-spechero { flex-direction: column; gap: 16px; }
	.tc-spectable th { width: 42%; }
}

/* Focus-area display chips (areas of expertise) */
.tc-foci-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tc-foci-chip { display: inline-block; padding: 5px 12px; border-radius: var(--tc-radius-pill); background: var(--tc-primary-50); color: var(--tc-primary-700); font-size: var(--tc-fs-sm); font-weight: 600; border: 1px solid transparent; }
.tc-foci-chip--link { text-decoration: none; transition: background var(--tc-dur) var(--tc-ease), border-color var(--tc-dur) var(--tc-ease); }
.tc-foci-chip--link:hover { background: #fff; border-color: var(--tc-primary-100, #d7e3ff); }

/* Plain "from" prefix in the clinic price table (replaces the old pill badge) */
.tc-ptable__from { color: var(--tc-muted); font-weight: 600; font-size: var(--tc-fs-xs); }

/* Clinic profile: tighter vertical rhythm between anchored sections */
.tc-anchor > .tc-section { padding-block: var(--tc-sp-7); }
.tc-anchor + .tc-anchor > .tc-section { padding-top: 0; }

/* Focus-area picker (checkbox chips, max 3) - a tidy 3-up grid (responsive). */
.tc-foci { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 4px; }
.tc-foci__opt { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius); cursor: pointer; font-size: var(--tc-fs-sm); font-weight: 600; color: var(--tc-ink-soft); background: #fff; user-select: none; line-height: 1.25; transition: border-color var(--tc-dur) var(--tc-ease), background var(--tc-dur) var(--tc-ease), color var(--tc-dur) var(--tc-ease); }
.tc-foci__opt input { margin: 0; width: auto; flex: 0 0 auto; }
@media (max-width: 768px) { .tc-foci { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 440px) { .tc-foci { grid-template-columns: 1fr; } }
.tc-foci__opt.is-on { border-color: var(--tc-primary); background: var(--tc-primary-50); color: var(--tc-primary-700); }
.tc-foci__opt input:disabled { opacity: .4; }
.tc-foci__none { color: var(--tc-muted); font-size: var(--tc-fs-sm); margin: 4px 0 0; }
/* Expertise picker: divided section + a live search filter (specialist dashboard). */
.tc-fld--expertise { padding: var(--tc-sp-4, 16px); border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); background: var(--tc-primary-50); }
.tc-fld--expertise > span { font-size: var(--tc-fs-base, 15px); font-weight: 700; margin-bottom: 2px; }
.tc-foci-why { margin: 2px 0 12px; }
.tc-foci-search { margin-bottom: 10px; }
.tc-foci-search__in { width: 100%; box-sizing: border-box; padding: 9px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius); font: inherit; background: #fff; color: var(--tc-ink); }
.tc-foci-search__in:focus { outline: none; border-color: var(--tc-primary); box-shadow: 0 0 0 3px var(--tc-primary-50); }
.tc-foci-empty { margin: 10px 0 0; color: var(--tc-muted); font-size: var(--tc-fs-sm); }
.tc-speccontact { display: flex; flex-wrap: wrap; gap: 10px; }
.tc-speccontact .tc-btn { display: inline-flex; align-items: center; gap: 7px; }
.tc-speccontact .tc-btn svg { width: 16px; height: 16px; }

/* Dashboard: Consultants panel */
.tc-mc-conslist { list-style: none; margin: 8px 0 16px; padding: 0; display: grid; gap: 8px; }
.tc-mc-cons { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 12px 14px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); background: #fff; }
.tc-mc-cons.is-pending { border-color: #e7c200; background: #fffdf3; }
.tc-mc-cons__who { min-width: 0; display: flex; align-items: center; gap: 12px; flex-wrap: nowrap; }
.tc-mc-cons__who a { text-decoration: none; color: var(--tc-ink); }
.tc-mc-cons__avatar { flex: 0 0 auto; width: 44px; height: 44px; }
.tc-mc-cons__avatarimg { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; background: #fff; border: 1px solid var(--tc-line); }
.tc-mc-cons__avatarph { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; color: var(--tc-primary-700); background: var(--tc-primary-50); text-transform: uppercase; }
.tc-mc-cons__id { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tc-mc-cons__nameline { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tc-mc-cons__actions { display: flex; gap: 8px; }
.tc-mc-subhead { margin: 18px 0 8px; font-size: var(--tc-fs-base); }
.tc-consadd { display: grid; gap: 10px; max-width: 540px; }
.tc-consadd__row { display: flex; gap: 8px; }
.tc-consadd__row select { flex: 1 1 auto; min-width: 0; }
.tc-consadd__row input { flex: 1; min-width: 0; }
.tc-consadd__row input[type=number] { flex: 0 0 150px; }
.tc-consadd input:not([type=checkbox]):not([type=radio]), .tc-consadd select, .tc-consadd textarea { padding: 10px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm); font-size: var(--tc-fs-sm); background: #fff; font-family: inherit; box-sizing: border-box; width: 100%; }
.tc-consadd .tc-checkgrid { margin-top: 4px; }
.tc-consadd button { justify-self: start; }

/* Specialists: inline edit accordion on each row. */
.tc-mc-cons__actions { flex-wrap: wrap; align-items: flex-start; }
.tc-mc-consedit { width: 100%; }
.tc-mc-consedit > summary { display: inline-flex; cursor: pointer; list-style: none; }
.tc-mc-consedit > summary::-webkit-details-marker { display: none; }
.tc-mc-consedit[open] > summary { margin-bottom: 12px; }
.tc-mc-consedit .tc-consadd { margin-top: 8px; max-width: none; padding: 14px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius); background: var(--tc-bg-alt); }

/* Add a specialist: three collapsible methods. */
.tc-specadd { display: grid; gap: 10px; margin-top: 8px; }
.tc-specadd__m { border: 1px solid var(--tc-line); border-radius: var(--tc-radius); background: #fff; }
.tc-specadd__m > summary { cursor: pointer; list-style: none; padding: 12px 16px; font-weight: 700; font-size: var(--tc-fs-sm); display: flex; align-items: center; justify-content: space-between; }
.tc-specadd__m > summary::-webkit-details-marker { display: none; }
.tc-specadd__m > summary::after { content: "+"; font-weight: 800; color: var(--tc-primary); font-size: 1.15em; line-height: 1; }
.tc-specadd__m[open] > summary::after { content: "-"; }
.tc-specadd__m[open] > summary { border-bottom: 1px solid var(--tc-line-soft); }
.tc-specadd__body { padding: 16px; display: grid; gap: 10px; }
/* Numbered "how it works" steps in the invite-by-email panel. */
.tc-invite-steps { margin: 0; padding-left: 20px; display: grid; gap: 6px; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); }
.tc-invite-steps li { line-height: 1.5; padding-left: 2px; }
.tc-invite-steps li::marker { color: var(--tc-primary); font-weight: 800; }
.tc-specsearch { display: flex; gap: 8px; }
.tc-specsearch input { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm); font-size: var(--tc-fs-sm); background: #fff; }
.tc-specsearch__res { display: grid; gap: 6px; margin: 2px 0; }
.tc-specsearch__res:not(:empty) { margin: 8px 0; }
.tc-specsearch__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm); background: #fff; }
.tc-specsearch__row form { margin: 0; flex: 0 0 auto; }

/* Add-branch: "what to bring over" checklist */
.tc-mc-copyopts { border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); padding: 12px 16px 14px; margin: 0 0 8px; }
.tc-mc-copyopts legend { font-weight: 700; padding: 0 6px; }
.tc-mc-copyopts__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px 14px; margin-top: 4px; }
.tc-mc-copyopt { display: flex; align-items: center; gap: 8px; font-size: var(--tc-fs-sm); }
/* Add-clinic branch controls: breathing room so hints don't crowd the inputs. */
.tc-mc-branchhint { display: block; margin: 6px 0 2px; font-size: var(--tc-fs-sm); color: var(--tc-muted, #647084); line-height: 1.45; }
.tc-mc-addclinic [data-tc-branchwhere] { margin-top: 6px; }
.tc-mc-addclinic .tc-mc-copyopts { margin-bottom: var(--tc-sp-3); }
.tc-fld__hint { font-style: normal; font-weight: 400; color: var(--tc-muted, #647084); }

/* Specialist claim CTA (public profile) + accounts dashboard */
.tc-specclaimcta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: space-between; margin: 0 0 var(--tc-sp-5); padding: 14px 18px; border: 1px dashed var(--tc-primary); border-radius: var(--tc-radius-lg); background: var(--tc-primary-50); }
.tc-specclaimcta span { color: var(--tc-primary-700); font-weight: 600; font-size: var(--tc-fs-sm); }
.tc-specdash { max-width: 760px; margin: 0 auto; }
.tc-specclaim .tc-fld input[type="file"] { padding: 8px; border: 1px dashed var(--tc-line); border-radius: var(--tc-radius-sm); width: 100%; }

/* Specialist "request to join a clinic" search results. */
.tc-mc-subhd { margin: 18px 0 8px; font-size: var(--tc-fs-sm); font-weight: 700; color: var(--tc-ink, #16323f); }
.tc-clinicsearch__res { display: flex; flex-direction: column; gap: 4px; margin: 6px 0; }
.tc-clinicsearch__opt { text-align: left; padding: 8px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm); background: #fff; cursor: pointer; font-size: var(--tc-fs-sm); }
.tc-clinicsearch__opt:hover { border-color: var(--tc-primary); background: var(--tc-primary-50); }

/* Profile-photo preview (specialist dashboard + clinic add/edit specialist). */
.tc-mc-photo { margin: 0 0 8px; }
.tc-mc-photo__img { width: 84px; height: 84px; object-fit: cover; border-radius: 50%; border: 1px solid var(--tc-line); display: block; }

/* Repeatable qualification rows (name + year) - specialist dashboard / add forms. */
.tc-quals__rows { display: flex; flex-direction: column; gap: 8px; }
.tc-quals__row { display: flex; gap: 8px; align-items: center; }
.tc-quals__name { flex: 1 1 auto; min-width: 0; }
.tc-quals__year { flex: 0 0 90px; width: 90px; }
.tc-quals__rm { flex: 0 0 auto; width: 34px; height: 34px; line-height: 1; border: 1px solid var(--tc-line); background: #fff; color: var(--tc-muted); border-radius: var(--tc-radius-sm); font-size: 18px; cursor: pointer; }
.tc-quals__rm:hover { border-color: var(--tc-primary); color: var(--tc-primary); }
.tc-quals__tpl { display: none; }
.tc-quals__add { margin-top: 8px; }

/* Repeatable "Registered with" rows (regulator select + number) */
.tc-regs__rows { display: flex; flex-direction: column; gap: 8px; }
.tc-regs__row { display: flex; gap: 8px; align-items: center; }
.tc-regs__body { flex: 1 1 auto; min-width: 0; }
.tc-regs__num { flex: 0 0 150px; width: 150px; }
.tc-regs__rm { flex: 0 0 auto; width: 34px; height: 34px; line-height: 1; border: 1px solid var(--tc-line); background: #fff; color: var(--tc-muted); border-radius: var(--tc-radius-sm); font-size: 18px; cursor: pointer; }
.tc-regs__rm:hover { border-color: var(--tc-primary); color: var(--tc-primary); }
.tc-regs__tpl { display: none; }
.tc-regs__add { margin-top: 8px; }
@media (max-width: 540px) { .tc-regs__row { flex-wrap: wrap; } .tc-regs__num { flex: 1 1 auto; width: auto; } }

/* Multi-file uploader (verification docs) - progressively enhanced by theme.js. */
.tc-upl--ready .tc-upl__input { display: none; }
.tc-upl__drop { display: none; }
.tc-upl--ready .tc-upl__drop { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 16px; border: 1px dashed var(--tc-line); border-radius: var(--tc-radius-sm); background: var(--tc-bg-soft, #fafafa); transition: border-color .15s, background .15s; }
.tc-upl__drop.is-drag { border-color: var(--tc-primary); background: var(--tc-primary-50); }
.tc-upl__btn { flex: 0 0 auto; padding: 8px 16px; border: 1px solid var(--tc-primary); border-radius: var(--tc-radius-sm); background: #fff; color: var(--tc-primary-700); font-weight: 600; font-size: var(--tc-fs-sm); cursor: pointer; }
.tc-upl__btn:hover { background: var(--tc-primary-50); }
.tc-upl__dragnote { color: var(--tc-muted); font-size: var(--tc-fs-sm); }
.tc-upl__list { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.tc-upl__item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-sm); background: #fff; }
.tc-upl__name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--tc-fs-sm); font-weight: 600; }
.tc-upl__size { flex: 0 0 auto; color: var(--tc-muted); font-size: var(--tc-fs-xs, 12px); }
.tc-upl__rm { flex: 0 0 auto; width: 24px; height: 24px; line-height: 1; border: none; border-radius: 50%; background: var(--tc-primary-50); color: var(--tc-primary-700); font-size: 18px; cursor: pointer; }
.tc-upl__rm:hover { background: var(--tc-primary); color: #fff; }
.tc-upl__err { margin: 8px 0 0; color: #b32d2e; font-size: var(--tc-fs-sm); font-weight: 600; }

/* For-specialists CTA + specialty/city listing extras */
.tc-fc-cta { text-align: center; margin: var(--tc-sp-6) 0 var(--tc-sp-4); }
.tc-crumbs { font-size: var(--tc-fs-sm); color: var(--tc-muted); margin-bottom: 8px; }
.tc-crumbs a { color: var(--tc-muted); text-decoration: none; }
.tc-crumbs a:hover { color: var(--tc-primary); }
.tc-speclinks-h { font-size: var(--tc-fs-lg); margin: var(--tc-sp-7) 0 var(--tc-sp-3); }
.tc-speclinks { display: flex; flex-wrap: wrap; gap: 10px; margin: var(--tc-sp-4) 0 8px; }
.tc-speclinks a { display: inline-flex; align-items: center; padding: 8px 16px; border-radius: var(--tc-radius-pill); border: 1px solid var(--tc-line); background: #fff; color: var(--tc-primary-700); font-weight: 600; font-size: var(--tc-fs-sm); text-decoration: none; transition: border-color var(--tc-dur) var(--tc-ease), background var(--tc-dur) var(--tc-ease); }
.tc-speclinks a:hover { border-color: var(--tc-primary); background: var(--tc-primary-50); text-decoration: none; }

/* Specialist profile-completeness checklist chips */
.tc-speccomplete { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tc-speccomplete li { padding: 6px 12px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-pill); background: #fff; font-size: var(--tc-fs-sm); font-weight: 600; color: var(--tc-ink); }
.tc-speccomplete li::before { content: "+"; color: var(--tc-primary); font-weight: 900; margin-right: 6px; }

/* ---- Unified sign-in (/sign-in/) ---------------------------------------- */
.tc-auth { display: grid; grid-template-columns: 1.05fr .95fr; max-width: 980px; margin: var(--tc-sp-6) auto; background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); overflow: hidden; box-shadow: 0 24px 60px -34px rgba(14,42,55,.35); }
.tc-auth--in { grid-template-columns: 1fr; max-width: 520px; }
.tc-auth__info { background: var(--tc-grad-primary, linear-gradient(135deg,#12a0a0,#0a5c61)); color: #fff; padding: var(--tc-sp-7) var(--tc-sp-6); display: flex; flex-direction: column; justify-content: center; }
.tc-auth__eyebrow { display: inline-block; text-transform: uppercase; letter-spacing: .08em; font-size: var(--tc-fs-xs); font-weight: 800; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .28); padding: 5px 12px; border-radius: 999px; margin-bottom: var(--tc-sp-3); }
.tc-auth__info h2 { color: #fff; font-size: var(--tc-fs-2xl); margin: 8px 0 10px; font-weight: 900; }
.tc-auth__info > p { color: rgba(255,255,255,.9); margin: 0 0 var(--tc-sp-5); }
.tc-auth .tc-auth__points { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.tc-auth .tc-auth__points li { display: flex; gap: 10px; align-items: flex-start; font-size: var(--tc-fs-sm); list-style: none; color: rgba(255,255,255,.92); }
.tc-auth .tc-auth__points li::marker { content: ""; }
.tc-auth .tc-auth__points svg { flex: 0 0 auto; color: #fff; opacity: .95; }
.tc-auth__card { padding: var(--tc-sp-7) var(--tc-sp-6); }
.tc-auth__title { font-size: var(--tc-fs-xl); margin: 0 0 var(--tc-sp-4); }
.tc-auth__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; background: var(--tc-bg-alt); border-radius: var(--tc-radius-pill); padding: 4px; margin-bottom: var(--tc-sp-4); }
.tc-auth__tab { position: relative; margin: 0; }
.tc-auth__tab input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.tc-auth__tab span { display: block; text-align: center; padding: 9px 10px; border-radius: var(--tc-radius-pill); font-size: var(--tc-fs-sm); font-weight: 700; color: var(--tc-ink-soft); transition: background .15s, color .15s, box-shadow .15s; }
.tc-auth__tab input:checked + span { background: #fff; color: var(--tc-primary-700); box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.tc-auth__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 4px 0 var(--tc-sp-4); flex-wrap: wrap; }
.tc-auth__remember { font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); display: inline-flex; align-items: center; gap: 6px; }
.tc-auth__lost { font-size: var(--tc-fs-sm); }
.tc-auth__su { display: none; margin: var(--tc-sp-4) 0 0; padding-top: var(--tc-sp-4); border-top: 1px solid var(--tc-line-soft); font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); text-align: center; }
.tc-auth__form[data-as="clinic"] .tc-auth__su--clinic { display: block; }
.tc-auth__form[data-as="specialist"] .tc-auth__su--spec { display: block; }
.tc-auth__dests { display: grid; gap: 10px; margin: var(--tc-sp-4) 0; }
.tc-auth__signout { text-align: center; margin: var(--tc-sp-3) 0 0; font-size: var(--tc-fs-sm); }
@media (max-width: 760px) {
	.tc-auth { grid-template-columns: 1fr; max-width: 460px; }
	.tc-auth__info { padding: var(--tc-sp-5); }
	.tc-auth__card { padding: var(--tc-sp-5); }
}

/* ---- Dashboard plan / billing card -------------------------------------- */
.tc-billcard {
	background: #fff; border: 1px solid var(--tc-line, #e3e8ee); border-radius: var(--tc-radius-lg, 14px);
	padding: var(--tc-sp-5, 24px); margin-bottom: var(--tc-sp-4, 20px); position: relative; overflow: hidden;
}
.tc-billcard::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--tc-line); }
.tc-billcard:has(.tc-billcard__pill--on)::before { background: var(--tc-grad-primary, linear-gradient(180deg, var(--tc-primary), var(--tc-primary-700))); }
.tc-billcard__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.tc-billcard__head h3 { margin: 0; font-size: var(--tc-fs-lg); }
.tc-billcard__pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: var(--tc-radius-pill); background: var(--tc-bg-alt); color: var(--tc-ink-soft); font-size: var(--tc-fs-xs); font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.tc-billcard__pill--on { background: var(--tc-primary-50, #eef4ff); color: var(--tc-primary-700, #1d4ed8); }
.tc-billcard__body { margin: 12px 0 0; color: var(--tc-ink); font-size: var(--tc-fs-base); }
.tc-billcard__body.is-soon { color: #b32d2e; font-weight: 700; }
/* The renewal/end date - made prominent (amber when the plan is ending) */
.tc-billcard__when { font-weight: 800; color: var(--tc-primary-700); }
.tc-billcard__when.is-ending { color: #b8730a; }
.tc-billcard__note { margin: 8px 0 0; color: var(--tc-muted); font-size: var(--tc-fs-sm); }
.tc-billcard__note--info { color: var(--tc-ink-soft); background: var(--tc-primary-50); border: 1px solid var(--tc-primary-100, #cfeaea); border-radius: var(--tc-radius-sm, 8px); padding: 10px 12px; }
.tc-billcard__secure { display: inline-flex; align-items: center; gap: 8px; margin: 12px 0 0; padding: 7px 12px; background: var(--tc-bg-alt); border: 1px solid var(--tc-line); border-radius: var(--tc-radius-pill); color: var(--tc-ink-soft); font-size: var(--tc-fs-xs); font-weight: 600; }
.tc-billcard__secure svg { flex: 0 0 auto; color: var(--tc-primary-700); }
.tc-billcard__secure-cur { color: var(--tc-muted); font-weight: 700; padding-left: 8px; margin-left: 2px; border-left: 1px solid var(--tc-line); }
.tc-billcard__form { margin: 16px 0 0; }
.tc-billcard__choices { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.tc-billcard__choices .tc-billcard__form { margin: 0; }
/* Plan option cards (clearer than long inline buttons). */
.tc-planopts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin: 16px 0 8px; }
.tc-planopt { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; margin: 0; padding: 16px; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); background: #fff; transition: border-color var(--tc-dur) var(--tc-ease), box-shadow var(--tc-dur) var(--tc-ease); }
.tc-planopt:hover { border-color: var(--tc-primary); box-shadow: var(--tc-shadow-sm); }
.tc-planopt__name { font-weight: 700; font-size: var(--tc-fs-sm); color: var(--tc-ink); }
.tc-planopt__price { font-weight: 900; font-size: var(--tc-fs-2xl); color: var(--tc-ink); line-height: 1.1; margin-top: 6px; }
.tc-planopt__per { color: var(--tc-muted); font-size: var(--tc-fs-xs); margin-bottom: 12px; }
.tc-planopt button { margin-top: auto; width: 100%; justify-content: center; }
.tc-btn[data-loading] { opacity: .7; cursor: wait; pointer-events: none; }
/* "Copy this clinic's treatments" toggle on the add-specialist form. */
.tc-mc-copyline { display: flex; align-items: flex-start; gap: 8px; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); }
.tc-mc-copyline input { flex: 0 0 auto; margin-top: 3px; }
.tc-billcard__flash { margin: 0 0 16px; padding: 10px 14px; border-radius: var(--tc-radius-sm); font-size: var(--tc-fs-sm); font-weight: 600; }
.tc-billcard__flash--ok { background: #e7f6ec; color: #0b7a43; }
.tc-billcard__flash--info { background: var(--tc-bg-alt); color: var(--tc-ink-soft); }
.tc-billcard__flash--err { background: #fdecec; color: #b32d2e; }

/* ---- Free vs Premium comparison table (for-clinics / for-specialists) ---- */
.tc-cmp {
	display: grid; grid-template-columns: minmax(0,2.2fr) minmax(0,1fr) minmax(0,1fr);
	max-width: 940px; margin: var(--tc-sp-5) auto 0; background: #fff;
	border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); overflow: visible;
}
/* overflow:visible (so tooltips escape) means we round the corner cells ourselves */
.tc-cmp__th { padding: 18px 14px 16px; display: flex; flex-direction: column; gap: 2px; align-items: center; justify-content: flex-end; text-align: center; border-bottom: 2px solid var(--tc-line); }
.tc-cmp__th--feat { border-top-left-radius: var(--tc-radius-lg); }
.tc-cmp__th--pro { background: var(--tc-primary-50); border-bottom-color: var(--tc-primary); border-top-right-radius: var(--tc-radius-lg); }
.tc-cmp__plan { font-weight: 800; font-size: var(--tc-fs-lg); color: var(--tc-ink); line-height: 1.1; }
.tc-cmp__th--pro .tc-cmp__plan { color: var(--tc-primary-700); }
.tc-cmp__th small { color: var(--tc-muted); font-size: var(--tc-fs-xs); }
.tc-cmp__badge { display: inline-block; margin-bottom: 7px; background: var(--tc-grad-primary); color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 3px 11px; border-radius: var(--tc-radius-pill); white-space: nowrap; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.tc-cmp__grp { grid-column: 1 / -1; background: var(--tc-bg-alt); font-weight: 800; font-size: var(--tc-fs-sm); color: var(--tc-ink); padding: 11px 16px; }
.tc-cmp__feat { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 12px 16px; font-size: var(--tc-fs-sm); color: var(--tc-ink); border-top: 1px solid var(--tc-line-soft); }
.tc-cmp__tip { position: relative; text-decoration: underline dotted; text-decoration-color: var(--tc-muted); text-underline-offset: 3px; cursor: help; }
.tc-cmp__tip::after { content: attr(data-tip); position: absolute; left: 0; bottom: calc(100% + 8px); width: max-content; max-width: 280px; background: var(--tc-ink); color: #fff; font-size: var(--tc-fs-xs); font-weight: 500; line-height: 1.45; text-align: left; padding: 8px 11px; border-radius: 8px; box-shadow: 0 8px 22px rgba(0,0,0,.22); opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .14s, transform .14s; z-index: 30; pointer-events: none; white-space: normal; }
.tc-cmp__tip:hover::after, .tc-cmp__tip:focus::after { opacity: 1; visibility: visible; transform: translateY(0); }
.tc-cmp__cell { display: flex; align-items: center; justify-content: center; padding: 12px 8px; border-top: 1px solid var(--tc-line-soft); font-size: var(--tc-fs-sm); }
.tc-cmp__cell--pro { background: var(--tc-primary-50); }
.tc-cmp__yes { display: inline-flex; color: var(--tc-primary); }
.tc-cmp__cell--pro .tc-cmp__yes { color: var(--tc-primary-700); }
.tc-cmp__no { color: var(--tc-muted); font-size: 1.15em; }
.tc-cmp__val { font-weight: 700; color: var(--tc-ink); font-size: var(--tc-fs-xs); text-align: center; }
.tc-cmp__cell--pro .tc-cmp__val { color: var(--tc-primary-700); }
.tc-cmp__soon, .tc-cmp__feat-soon { display: inline-block; background: var(--tc-bg-alt); color: var(--tc-ink-soft); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 3px 8px; border-radius: var(--tc-radius-pill); }
.tc-cmp__cta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; padding: 20px; border-top: 2px solid var(--tc-line); border-bottom-left-radius: var(--tc-radius-lg); border-bottom-right-radius: var(--tc-radius-lg); }
.tc-cmp__cta .tc-btn { min-width: 250px; justify-content: center; text-align: center; }
@media (max-width: 640px) {
	.tc-cmp { grid-template-columns: minmax(0,1.7fr) minmax(0,1fr) minmax(0,1fr); }
	.tc-cmp__feat, .tc-cmp__cell { padding: 10px 7px; font-size: var(--tc-fs-xs); }
	.tc-cmp__plan { font-size: var(--tc-fs-base); }
	.tc-cmp__cta { justify-content: stretch; gap: 10px; padding: 16px; }
	.tc-cmp__cta .tc-btn { flex: 1 1 100%; min-width: 0; }
	.tc-cmp__tip::after { max-width: 220px; }
}

/* ---- Premium markers inside the dashboard ---- */
.tc-mc-prem { display: inline-block; vertical-align: middle; margin-left: 6px; background: var(--tc-grad-primary); color: #fff; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: 3px 9px; border-radius: var(--tc-radius-pill); }
.tc-mc-lock { display: flex; gap: 14px; align-items: flex-start; margin-top: 8px; padding: 18px; border: 1px dashed var(--tc-primary); border-radius: var(--tc-radius-lg); background: var(--tc-primary-50); }
.tc-mc-lock svg { flex: 0 0 auto; color: var(--tc-primary-700); }
.tc-mc-lock strong { display: block; font-size: var(--tc-fs-base); color: var(--tc-ink); }
.tc-mc-lock p { margin: 4px 0 12px; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); }
.tc-mc-usage { margin: 0 0 12px; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); }
.tc-mc-usage.is-full { color: #b32d2e; font-weight: 600; }
.tc-mc-usage a { color: var(--tc-primary-700); font-weight: 600; }

/* ---- Dashboard events publisher ----------------------------------------- */
.tc-evform__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tc-evlist { list-style: none; padding: 0; margin: 0 0 var(--tc-sp-3); display: grid; gap: 4px; }
.tc-evlist__item { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 0; border-bottom: 1px solid var(--tc-line-soft); font-size: var(--tc-fs-sm); }
.tc-evlist__date { color: var(--tc-muted); min-width: 96px; }
.tc-evlist__title { font-weight: 600; }
.tc-evlist__rm { margin-left: auto; }
@media (max-width: 560px) { .tc-evform__row { grid-template-columns: 1fr; } }

/* ---- Auto price cards (above "Why claim") + table "View prices" link ----- */
.tc-cmp__viewprices { color: var(--tc-primary-700); font-weight: 700; text-decoration: none; }
.tc-cmp__viewprices:hover { text-decoration: underline; }
.tc-prices { margin: var(--tc-sp-8) 0; scroll-margin-top: 90px; }
.tc-prices__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: var(--tc-sp-4); max-width: 920px; margin: var(--tc-sp-5) auto 0; }
.tc-price-card { position: relative; display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-5); text-align: center; }
.tc-price-card.is-best { border-color: var(--tc-primary); box-shadow: var(--tc-shadow-sm); }
.tc-price-card__badge { position: absolute; top: -11px; left: 50%; transform: translateX(-50%); background: var(--tc-grad-primary); color: #fff; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 3px 12px; border-radius: var(--tc-radius-pill); white-space: nowrap; }
.tc-price-card__tier { font-size: var(--tc-fs-xs); font-weight: 800; text-transform: uppercase; letter-spacing: var(--tc-tracking-wide); color: var(--tc-primary-700); }
.tc-price-card__name { font-size: var(--tc-fs-lg); font-weight: 800; color: var(--tc-ink); }
.tc-price-card__price { font-size: var(--tc-fs-2xl); font-weight: 800; color: var(--tc-ink); line-height: 1.1; font-variant-numeric: tabular-nums; }
.tc-price-card__price small { display: block; font-size: var(--tc-fs-xs); font-weight: 600; color: var(--tc-muted); text-transform: uppercase; letter-spacing: .03em; margin-top: 3px; }
.tc-price-card__blurb { font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); }
.tc-prices__addon { text-align: center; color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); margin: var(--tc-sp-5) auto 0; max-width: 720px; }
.tc-prices__addon strong { color: var(--tc-primary-700); }

/* "Independent? Create your specialist profile" - outstanding solo-doctor block */
.tc-fc-solo { max-width: 480px; margin: var(--tc-sp-8) auto 0; padding: var(--tc-sp-4) var(--tc-sp-5); background: var(--tc-bg-alt); border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); text-align: center; }
.tc-fc-solo__label { display: block; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); margin-bottom: 3px; }
.tc-fc-solo__link { display: inline-flex; align-items: center; font-weight: 800; color: var(--tc-primary-700); }
.tc-fc-solo__link:hover { color: var(--tc-primary); }

/* ---- Add-clinic page: lead + two-column (form + reassurance aside) ------- */
.tc-addclinic { max-width: 980px; margin: 0 auto; }
.tc-addclinic__lead { text-align: center; max-width: 680px; margin: 0 auto var(--tc-sp-7); color: var(--tc-ink-soft); font-size: var(--tc-fs-lg); line-height: 1.55; }
.tc-addclinic__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--tc-sp-6); align-items: start; }
.tc-addclinic__title { margin: 0 0 var(--tc-sp-4); font-size: var(--tc-fs-lg); }
.tc-addclinic__aside { display: flex; flex-direction: column; gap: var(--tc-sp-4); }
.tc-addclinic__box { background: var(--tc-bg-alt); border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); padding: var(--tc-sp-5); }
.tc-addclinic__box--ticks { background: #fff; }
.tc-addclinic__boxh { margin: 0 0 var(--tc-sp-3); font-size: var(--tc-fs-md); }
.tc-addclinic__steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--tc-sp-3); }
.tc-addclinic__steps li { display: flex; gap: var(--tc-sp-3); align-items: flex-start; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); line-height: 1.45; }
.tc-addclinic__num { flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; background: var(--tc-grad-primary); color: #fff; font-size: 12px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.tc-addclinic__ticks { list-style: none; margin: 0 0 var(--tc-sp-4); padding: 0; display: flex; flex-direction: column; gap: var(--tc-sp-2); }
.tc-addclinic__ticks li { display: flex; gap: 8px; align-items: flex-start; font-size: var(--tc-fs-sm); color: var(--tc-ink); }
.tc-ac-tick__ico { color: var(--tc-primary); flex: 0 0 auto; margin-top: 1px; }
.tc-addclinic__alt { margin: var(--tc-sp-2) 0 0; font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); }
.tc-addclinic__alt a { color: var(--tc-primary-700); font-weight: 700; display: inline-flex; align-items: center; }
@media (max-width: 820px) { .tc-addclinic__grid { grid-template-columns: 1fr; } }

/* Add-clinic trust strip + FAQ */
.tc-addclinic__trust { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--tc-sp-3) var(--tc-sp-6); max-width: 760px; margin: 0 auto var(--tc-sp-7); padding-bottom: var(--tc-sp-6); border-bottom: 1px solid var(--tc-line-soft); }
.tc-addclinic__trustitem { display: inline-flex; align-items: center; gap: 7px; font-size: var(--tc-fs-sm); font-weight: 600; color: var(--tc-ink-soft); }
.tc-addclinic__trustitem .tc-ico { color: var(--tc-primary); flex: 0 0 auto; }
.tc-addclinic__faq { max-width: 760px; margin: var(--tc-sp-8) auto 0; }
.tc-addclinic__faqh { text-align: center; margin: 0 0 var(--tc-sp-5); }
.tc-acfaq { border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); margin-bottom: var(--tc-sp-3); background: #fff; }
.tc-acfaq summary { cursor: pointer; padding: var(--tc-sp-4) var(--tc-sp-5); font-weight: 700; color: var(--tc-ink); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: var(--tc-sp-3); }
.tc-acfaq summary::-webkit-details-marker { display: none; }
.tc-acfaq summary::after { content: "+"; font-size: 1.4em; font-weight: 400; line-height: 1; color: var(--tc-primary); transition: transform var(--tc-dur) var(--tc-ease); }
.tc-acfaq[open] summary::after { transform: rotate(45deg); }
.tc-acfaq__a { padding: 0 var(--tc-sp-5) var(--tc-sp-4); color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); line-height: 1.55; }

/* Specialist register reuses .tc-addclinic; extra bits: centered header, safe-docs box */
.tc-addclinic__hd { text-align: center; max-width: 680px; margin: 0 auto var(--tc-sp-6); }
.tc-addclinic__hd h1 { margin: var(--tc-sp-2) 0 var(--tc-sp-3); }
.tc-addclinic__hd .tc-addclinic__lead { margin: 0; }
.tc-addclinic__box--safe { background: var(--tc-primary-50); border-color: var(--tc-primary-100); }
.tc-addclinic__box--safe p { font-size: var(--tc-fs-sm); color: var(--tc-ink-soft); line-height: 1.55; margin: 0 0 var(--tc-sp-2); }
.tc-addclinic__box--safe p:last-child { margin-bottom: 0; }
.tc-addclinic__boxh .tc-ico { vertical-align: -3px; margin-right: 6px; color: var(--tc-primary); }
.tc-fld__hint { margin-top: -4px; font-size: var(--tc-fs-xs); }

/* ---- Spotlight panel (specialist dashboard) + Sponsored card ------------- */
.tc-spotgrid { display: flex; flex-direction: column; gap: var(--tc-sp-4); margin-top: var(--tc-sp-3); }
.tc-spotarea__h { margin: 0 0 4px; font-size: var(--tc-fs-md); }
.tc-spotrow { display: flex; align-items: center; justify-content: space-between; gap: var(--tc-sp-3); padding: 8px 0; border-bottom: 1px solid var(--tc-line-soft); }
.tc-spotrow:last-child { border-bottom: 0; }
.tc-spotrow__city { font-weight: 600; color: var(--tc-ink); }
.tc-spotbuy { margin: 0; }
.tc-spot-badge { font-size: var(--tc-fs-sm); font-weight: 700; padding: 4px 10px; border-radius: var(--tc-radius-pill); white-space: nowrap; }
.tc-spot-badge--mine { background: var(--tc-primary-50); color: var(--tc-primary-700); }
.tc-spot-badge--taken, .tc-spot-badge--soon { background: var(--tc-bg-alt); color: var(--tc-muted); }

.tc-speccard.is-sponsored { border-color: var(--tc-primary); box-shadow: var(--tc-shadow-sm); }
.tc-speccard__sponsored { display: inline-block; align-self: flex-start; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--tc-primary-700); background: var(--tc-primary-50); padding: 2px 8px; border-radius: var(--tc-radius-pill); margin-bottom: 4px; }

/* Focus-area page empty state (no specialists listed yet) */
.tc-empty--focus { text-align: center; max-width: 520px; margin: var(--tc-sp-5) auto var(--tc-sp-7); padding: var(--tc-sp-7); background: var(--tc-bg-alt); border: 1px solid var(--tc-line); border-radius: var(--tc-radius-lg); }
.tc-empty--focus p { margin: 0 0 var(--tc-sp-2); color: var(--tc-ink); font-weight: 600; }
.tc-empty--focus .tc-empty__sub { font-weight: 400; color: var(--tc-ink-soft); font-size: var(--tc-fs-sm); margin-bottom: var(--tc-sp-4); }
