:root,
html[data-theme="light"] {
  --fee-brand: #0f6b5c;
  --fee-brand-dark: #0a4f44;
  --fee-nav: #123f38;
  --fee-brand-light: #e6f3f0;
  --fee-accent: #c45c26;
  --fee-text: #15201d;
  --fee-text-secondary: #2f3f3a;
  --fee-muted: #3f524c;
  --fee-border: #c9d8d2;
  --fee-background: #eef3f1;
  --fee-surface: #fff;
  --fee-surface-elevated: #fff;
  --fee-surface-muted: #e6f3f0;
  --fee-surface-hover: #f6f7f8;
  --fee-font: "Segoe UI", system-ui, -apple-system, sans-serif;
  --fee-fs-page: 1.5rem;       /* 24px */
  --fee-lh-page: 1.25;
  --fee-fs-section: 1.125rem;  /* 18px */
  --fee-lh-section: 1.35;
  --fee-fs-card: 1rem;         /* 16px */
  --fee-lh-card: 1.35;
  --fee-fs-body: 1rem;         /* 16px */
  --fee-lh-body: 1.5;
  --fee-fs-compact: .875rem;   /* 14px */
  --fee-lh-compact: 1.45;
  --fee-fs-meta: .8125rem;     /* 13px */
  --fee-lh-meta: 1.4;

  --fee-table-head: #f7f8f8;
  --fee-table-hover: #f8fbfa;
  --fee-table-line: #eef1f0;
  --fee-bulk-bg: #f4fbf8;
  --fee-success: #1b5e3b;
  --fee-warning: #7a3e00;
  --fee-danger: #9b2c2c;
  --fee-radius-sm: 8px;
  --fee-radius-md: 10px;
  --fee-radius-lg: 14px;
  --fee-shadow-sm: 0 1px 2px rgba(12,63,55,.06);
  --fee-shadow-md: 0 12px 32px rgba(12,63,55,.14);
  --fee-space-1: 4px;
  --fee-space-2: 8px;
  --fee-space-3: 12px;
  --fee-space-4: 16px;
  --fee-space-5: 24px;
  --fee-space-6: 32px;
  --fee-control-h: 42px;
  --fee-ink: var(--fee-text);
  --fee-teal: var(--fee-brand);
  --fee-teal-dark: var(--fee-brand-dark);
  --fee-wash: var(--fee-brand-light);
  --fee-line: var(--fee-border);
  --fee-bg: var(--fee-background);
  --fee-white: var(--fee-surface);
  --fee-sidebar: 251px;
  --fee-sidebar-bg: #0c3f37;
  --fee-sidebar-text: #d7efe9;
  --fee-sidebar-muted: #9cb8b1;
  --fee-sidebar-link: #c5ddd7;
  --fee-pay-label-size: 16px;
  --fee-pay-note-size: 13.5px;
  --fee-pay-note: #33403c;
  --fee-pay-mark-h: 24px;
  --fee-pay-card-pad-y: 1.05rem;
  --fee-pay-card-pad-x: 1.2rem;

  /* Home dashboard accent system (controlled SaaS palette) */
  --dash-bg: #f1f5f9;
  --dash-card-radius: 14px;
  --dash-card-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);
  --dash-card-shadow-hover: 0 4px 12px rgba(15, 23, 42, .08), 0 16px 32px rgba(15, 23, 42, .08);
  --dash-leads: #065f46;
  --dash-leads-soft: rgba(6, 95, 70, .12);
  --dash-projects: #6366f1;
  --dash-projects-soft: rgba(99, 102, 241, .12);
  --dash-verify: #f59e0b;
  --dash-verify-soft: rgba(245, 158, 11, .14);
  --dash-plan: #0f6b5c;
  --dash-plan-soft: rgba(15, 107, 92, .12);
  --dash-maps: #0891b2;
  --dash-maps-deep: #2563eb;
  --dash-maps-soft: rgba(8, 145, 178, .1);
  --dash-maps-border: rgba(8, 145, 178, .28);
  --dash-maps-businesses: #2563eb;
  --dash-maps-businesses-soft: rgba(37, 99, 235, .12);
  --dash-maps-websites: #0891b2;
  --dash-maps-websites-soft: rgba(8, 145, 178, .14);
  --dash-maps-email: #10b981;
  --dash-maps-email-soft: rgba(16, 185, 129, .14);
  --dash-maps-emails: #7c3aed;
  --dash-maps-emails-soft: rgba(124, 58, 237, .12);
  --dash-intel: #7c3aed;
  --dash-intel-soft: rgba(124, 58, 237, .12);
  --dash-growth: #2563eb;
  --dash-growth-soft: rgba(37, 99, 235, .1);
  --dash-routing: #065f46;
  --dash-routing-soft: rgba(6, 95, 70, .1);
  --dash-providers: #6366f1;
  --dash-providers-soft: rgba(99, 102, 241, .1);

  --fee-domain-mail-ready-bg: #eff6ff;
  --fee-domain-mail-ready-text: #1d4ed8;
  --fee-domain-mail-ready-border: #93c5fd;
  /* Legacy aliases — same domain mail-ready tokens */
  --fee-mail-ready-bg: var(--fee-domain-mail-ready-bg);
  --fee-mail-ready-text: var(--fee-domain-mail-ready-text);
  --fee-mail-ready-border: var(--fee-domain-mail-ready-border);
  color-scheme: light;
}

html[data-theme="dark"] {
  /* ProspectChief dark: deep green surfaces, teal actions, orange as selective accent only */
  --fee-brand: #2bb89a;
  --fee-brand-dark: #5fd4b8;
  --fee-nav: #071412;
  --fee-brand-light: #173630;
  --fee-accent: #F7931E;
  --fee-text: #f2f7f5;
  --fee-text-secondary: #d0ddd8;
  --fee-muted: #b4c6c0;
  --fee-border: #3a4f49;
  --fee-surface-elevated: #1c2925;

  --fee-background: #0b1210;
  --fee-surface: #15201d;
  --fee-surface-muted: #1a2c27;
  --fee-surface-hover: #243632;
  --fee-table-head: #13201c;
  --fee-table-hover: #1e2e2a;
  --fee-table-line: #2a3d37;
  --fee-bulk-bg: #1a2c27;
  --fee-success: #6dcea0;
  --fee-warning: #f0b46a;
  --fee-danger: #fca5a5;
  --fee-shadow-sm: 0 1px 2px rgba(0,0,0,.4);
  --fee-shadow-md: 0 16px 40px rgba(0,0,0,.5);
  --fee-ink: var(--fee-text);
  --fee-teal: var(--fee-brand);
  --fee-teal-dark: var(--fee-brand-dark);
  --fee-wash: var(--fee-brand-light);
  --fee-line: var(--fee-border);
  --fee-bg: var(--fee-background);
  --fee-white: var(--fee-surface);
  --fee-sidebar-bg: #0a1815;
  --fee-sidebar-text: #d7efe9;
  --fee-sidebar-muted: #8eaaa3;
  --fee-sidebar-link: #b7d0c9;
  --fee-pay-note: #c0d0ca;
  --fee-focus-ring: rgba(43, 184, 154, .45);
  --fee-accent-soft: rgba(247, 147, 30, .14);
  --fee-accent-border: rgba(247, 147, 30, .45);

  --dash-bg: #0b1210;
  --dash-card-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px rgba(0, 0, 0, .28);
  --dash-card-shadow-hover: 0 8px 22px rgba(0, 0, 0, .45);
  --dash-leads: #34d399;
  --dash-leads-soft: rgba(52, 211, 153, .16);
  --dash-projects: #a5b4fc;
  --dash-projects-soft: rgba(165, 180, 252, .16);
  --dash-verify: #fbbf24;
  --dash-verify-soft: rgba(251, 191, 36, .16);
  --dash-plan: #2bb89a;
  --dash-plan-soft: rgba(43, 184, 154, .16);
  --dash-maps: #22d3ee;
  --dash-maps-deep: #60a5fa;
  --dash-maps-soft: rgba(34, 211, 238, .12);
  --dash-maps-border: rgba(34, 211, 238, .32);
  --dash-maps-businesses: #60a5fa;
  --dash-maps-businesses-soft: rgba(96, 165, 250, .16);
  --dash-maps-websites: #22d3ee;
  --dash-maps-websites-soft: rgba(34, 211, 238, .16);
  --dash-maps-email: #34d399;
  --dash-maps-email-soft: rgba(52, 211, 153, .16);
  --dash-maps-emails: #c4b5fd;
  --dash-maps-emails-soft: rgba(196, 181, 253, .16);
  --dash-intel: #c4b5fd;
  --dash-intel-soft: rgba(196, 181, 253, .16);
  --dash-growth: #60a5fa;
  --dash-growth-soft: rgba(96, 165, 250, .14);
  --dash-routing: #34d399;
  --dash-routing-soft: rgba(52, 211, 153, .14);
  --dash-providers: #a5b4fc;
  --dash-providers-soft: rgba(165, 180, 252, .14);

  --fee-domain-mail-ready-bg: rgba(37,99,235,.16);
  --fee-domain-mail-ready-text: #93c5fd;
  --fee-domain-mail-ready-border: #3b82f6;
  --fee-mail-ready-bg: var(--fee-domain-mail-ready-bg);
  --fee-mail-ready-text: var(--fee-domain-mail-ready-text);
  --fee-mail-ready-border: var(--fee-domain-mail-ready-border);
  color-scheme: dark;
}

html[data-theme="dark"] .btn:not(.secondary):not(.ghost):not(.danger):not(.link):not(.btn-accent) {
  color: #06201b;
}
html[data-theme="dark"] .btn:not(.secondary):not(.ghost):not(.danger):not(.link):not(.btn-accent):hover {
  color: #06201b;
}
html[data-theme="dark"] .btn.secondary {
  background: var(--fee-surface-elevated);
  color: var(--fee-brand-dark);
  border-color: var(--fee-border);
}
html[data-theme="dark"] .btn.secondary:hover {
  background: var(--fee-surface-hover);
  color: var(--fee-text);
}
html[data-theme="dark"] .btn.ghost {
  color: var(--fee-brand-dark);
}
html[data-theme="dark"] .btn:focus-visible,
html[data-theme="dark"] input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus {
  outline-color: var(--fee-focus-ring, rgba(43, 184, 154, .45));
}
html[data-theme="dark"] .project-type-badge--extractor { color: #34d399; }
html[data-theme="dark"] .project-type-badge--maps { color: #67e8f9; }
html[data-theme="dark"] .badge.mailbox { background: rgba(96, 165, 250, .16); color: #bfdbfe; }
html[data-theme="dark"] .badge.hosted { background: rgba(251, 191, 36, .16); color: #fde68a; }
html[data-theme="dark"] .badge.gateway { background: rgba(196, 181, 253, .16); color: #ddd6fe; }
html[data-theme="dark"] .badge.family-dns,
html[data-theme="dark"] .health-flags li.is-warn,
html[data-theme="dark"] .mail-status--unknown,
html[data-theme="dark"] .badge.mail-status--mailbox-unknown {
  background: rgba(251, 191, 36, .14);
  color: #fde68a;
  border-color: rgba(251, 191, 36, .35);
}
html[data-theme="dark"] .mail-status--fallback {
  background: rgba(251, 191, 36, .12);
  color: #fde68a;
  border-color: rgba(251, 191, 36, .35);
}
html {
  max-width: 100%;
}
body.fee-app, body.fee-admin, body.fee-auth, body.fee-checkout, body.fee-public {
  margin: 0;
  font-family: var(--fee-font, "Segoe UI", system-ui, -apple-system, sans-serif);
  font-size: var(--fee-fs-body, 1rem);
  line-height: var(--fee-lh-body, 1.5);
  color: var(--fee-ink);
  background: var(--fee-bg);
  max-width: 100%;
}
body.fee-admin {
  font-size: var(--fee-fs-compact, .875rem);
  line-height: var(--fee-lh-compact, 1.45);
}

a { color: var(--fee-teal); text-decoration: none; }
a:hover { text-decoration: underline; }
.fee-shell { display: grid; grid-template-columns: var(--fee-sidebar) minmax(0, 1fr); min-height: 100vh; align-items: start; width: 100%; max-width: 100%; }
.fee-nav { display: flex; flex-direction: column; background: var(--fee-nav); color: #d7efe9; padding: 1.1rem 0.85rem; position: sticky; top: 0; height: 100vh; max-height: 100dvh; overflow: auto; border-right: 3px solid var(--fee-brand); align-self: start; }
.fee-nav a { color: #d7efe9; }
.fee-brand { font-weight: 700; font-size: 15px; margin: 0 0 1rem; color: #fff; display: flex; flex-direction: column; gap: .4rem; }
.fee-brand .brand-logo { max-width: 168px; }
/* FEE wordmark SVG fills the sidebar width; the ProspectChief lockup keeps its small mark + text. */
.fee-brand .brand-logo:not(.brand-logo--lockup) img { width: 100%; height: auto; }
.fee-brand .brand-logo--lockup { max-width: 100%; min-width: 0; }
.fee-brand .brand-logo--lockup .brand-logo-mark { width: 1.75rem; height: 1.75rem; max-width: 1.75rem; }
.fee-brand .brand-logo--lockup .brand-logo-wordmark { font-size: 1.05rem; min-width: 0; }
/* The admin sidebar never scrolls sideways: a brand asset that outgrows it is a bug, not a layout feature. */
.fee-nav { overflow-x: hidden; }
.fee-nav .nav-badge { display: inline-block; min-width: 1.2rem; padding: 0 .35rem; margin-left: .3rem; border-radius: 999px; background: #c45c26; color: #fff; font-size: 11px; line-height: 1.2rem; text-align: center; font-weight: 700; vertical-align: middle; }
.fee-brand .admin-badge { display: inline-flex; align-self: flex-start; background: #0f6b5c; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .15rem .45rem; border-radius: 4px; }
.fee-brand .admin-badge.is-super { background: #c45c26; }
.fee-brand .admin-badge.is-operator { background: #0f6b5c; }
.role-badge { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: .1rem .38rem; border-radius: 4px; margin-left: .35rem; vertical-align: middle; }
.role-badge-super { background: #c45c26; color: #fff; }
.role-badge-admin { background: #0f6b5c; color: #fff; }
.role-badge-user { background: var(--fee-surface-hover); color: var(--fee-muted); }
.health-flags { display: flex; flex-wrap: wrap; gap: .45rem; list-style: none; margin: 0 0 1.1rem; padding: 0; }
.health-flags li { font-size: 12px; font-weight: 650; border-radius: 999px; padding: .2rem .6rem; background: #e8f6ee; color: #1b5e3b; }
.health-flags li.is-warn { background: #fff3e0; color: #7a3e00; }
.identity { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.identity-primary { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.identity-email { display: block; color: var(--fee-muted); font-size: 12px; }
.fee-nav a.item { display: block; padding: .35rem .55rem; border-radius: 6px; }
.fee-nav a.item:hover, .fee-nav a.active { background: rgba(255,255,255,.08); text-decoration: none; }
.fee-main { min-width: 0; max-width: 100%; width: auto; }
.fee-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .85rem 1.4rem; border-bottom: 1px solid var(--fee-line); background: var(--fee-white); min-width: 0; }
.fee-top h1 { margin: 0; font-size: 18px; }
.fee-content { width: 100%; max-width: 100%; min-width: 0; padding: 1.2rem 1.4rem 2.5rem; }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .75rem; margin: 0 0 1.2rem; }
.stat { background: var(--fee-white); border: 1px solid var(--fee-line); border-radius: 10px; padding: .75rem .9rem; }
.stat b { display: block; font-size: 22px; }
.stat span { color: var(--fee-muted); font-size: 12px; }
.card { background: var(--fee-white); border: 1px solid var(--fee-line); border-radius: var(--fee-radius-md); padding: 1rem; margin-bottom: 1rem; box-shadow: var(--fee-shadow-sm); }
.admin-bulk { display: flex; align-items: center; gap: .6rem; padding: .65rem 14px; background: var(--fee-bulk-bg); border-bottom: 1px solid var(--fee-line); }
.admin-bulk[hidden] { display: none !important; }
.table-wrap { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
table.data { width: 100%; max-width: 100%; border-collapse: collapse; background: var(--fee-white); table-layout: fixed; }
table.data th, table.data td { text-align: left; padding: .5rem .6rem; border-bottom: 1px solid var(--fee-line); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--fee-text); }
/* Native <select> menus break inside overflow:hidden/auto ancestors in Chromium. */
table.data td:has(select),
table.data td.mx-ops,
.filterbar select,
.app-filters select { overflow: visible; }
table.data td.wrap, table.data td.wrap span, .kv dd { white-space: normal; overflow-wrap: anywhere; }
.stat b.long { font-size: 13px; line-height: 1.35; white-space: normal; }
table.data th { font-size: 12px; color: var(--fee-muted); font-weight: 600; }
.badge { display: inline-block; border-radius: 999px; padding: .1rem .45rem; font-size: 11px; background: var(--fee-wash); color: var(--fee-teal-dark); }
.badge.inbox-unread { background: #c45c26; color: #fff; margin-left: .3rem; }
/*
 * Contact inbox message body. Uses theme tokens for both surface and text so the
 * body stays readable in dark mode (an undefined token previously fell back to a
 * light hard-coded background while the text inherited the dark-theme foreground).
 */
.inbox-message {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  margin: 0;
  padding: 14px;
  border-radius: 10px;
  border: 1px solid var(--fee-border);
  background: var(--fee-surface-muted);
  color: var(--fee-text);
  font: inherit;
  line-height: 1.5;
}
.inbox-message--empty { font-style: italic; }
/* Contact inbox "From": address + compact Copy + info icon; the reply caveat lives in the popover. */
/* `table.data td` sets overflow:hidden, which would clip the info popover; match its specificity. */
table.data td.inbox-from { overflow: visible; white-space: nowrap; }
.inbox-from__email { font-variant-ligatures: none; user-select: all; }
.inbox-copy {
  border: 1px solid var(--fee-border); background: var(--fee-surface); color: var(--fee-teal, #0f6b5c);
  border-radius: 6px; padding: .1rem .5rem; margin-left: .4rem; font: inherit; font-size: 12px; line-height: 1.4; cursor: pointer;
}
.inbox-copy:hover { background: var(--fee-surface-hover); }
.inbox-copy:focus-visible { outline: 2px solid var(--fee-focus-ring, rgba(43, 184, 154, .45)); outline-offset: 1px; }
.inbox-copy.is-copied { color: var(--fee-success); border-color: var(--fee-success); }
.badge.inbox-status--new { background: #e0f2fe; color: #075985; }
.badge.inbox-status--in_progress { background: #fef3c7; color: #92400e; }
.badge.inbox-status--resolved { background: #dcfce7; color: #166534; }
.badge.inbox-status--archived { background: #e5e7eb; color: #374151; }
.badge.mailbox { background: #e8f1ff; color: #234; }
.badge.hosted { background: #fff3e0; color: #7a3e00; }
.badge.gateway { background: #f3e8ff; color: #4a2870; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: var(--fee-control-h); background: var(--fee-teal); color: #fff; border: 0; border-radius: var(--fee-radius-sm); padding: 0 .9rem; cursor: pointer; font: inherit; font-weight: 650; box-shadow: var(--fee-shadow-sm); }
.btn:hover { background: var(--fee-teal-dark); text-decoration: none; }
.btn:focus-visible { outline: 2px solid rgba(15,107,92,.35); outline-offset: 2px; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn.secondary { background: var(--fee-surface); color: var(--fee-teal-dark); border: 1px solid var(--fee-line); box-shadow: none; }
.btn.danger {
  background: #b42318;
  color: #fff;
  border: 1px solid #912018;
  box-shadow: none;
}
.btn.danger:hover { background: #912018; color: #fff; }
.btn.danger:focus-visible { outline: 2px solid rgba(180, 35, 24, .55); outline-offset: 2px; }
.btn.danger:disabled { opacity: .45; color: #fff; }
.btn.danger.ghost {
  background: color-mix(in srgb, #b42318 16%, var(--fee-surface, #fff));
  color: #7a1510;
  border: 1px solid color-mix(in srgb, #b42318 55%, var(--fee-line, #ccc));
  box-shadow: none;
}
.btn.danger.ghost:hover {
  background: color-mix(in srgb, #b42318 28%, var(--fee-surface, #fff));
  color: #5c100c;
}
[data-theme="dark"] .btn.danger,
html.dark .btn.danger {
  background: #dc2626;
  color: #fff;
  border-color: #b91c1c;
}
[data-theme="dark"] .btn.danger:hover,
html.dark .btn.danger:hover { background: #b91c1c; color: #fff; }
[data-theme="dark"] .btn.danger.ghost,
html.dark .btn.danger.ghost {
  background: color-mix(in srgb, #dc2626 28%, #1c1f24);
  color: #fecaca;
  border-color: color-mix(in srgb, #dc2626 55%, #444);
}
[data-theme="dark"] .btn.danger.ghost:hover,
html.dark .btn.danger.ghost:hover {
  background: color-mix(in srgb, #dc2626 42%, #1c1f24);
  color: #fff;
}
.btn.ghost { background: transparent; color: var(--fee-teal-dark); box-shadow: none; border: 0; min-height: var(--fee-control-h); }
.btn-link, .btn.link { background: none; color: var(--fee-teal); box-shadow: none; min-height: auto; padding: 0; }
.btn.secondary { text-decoration: none; }
/* Soft tinted accent buttons for Home dashboard (secondary hierarchy). */
.btn.btn-accent {
  border: 1px solid color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 45%, var(--fee-border));
  background: color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 12%, var(--fee-surface));
  color: var(--btn-accent-ink, var(--fee-teal-dark));
  box-shadow: none;
  text-decoration: none;
}
.btn.btn-accent:hover {
  background: color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 20%, var(--fee-surface));
  border-color: color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 65%, var(--fee-border));
  color: var(--btn-accent-ink, var(--fee-teal-dark));
}
.btn.btn-accent:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 45%, transparent);
  outline-offset: 2px;
}
.btn.btn-accent:disabled,
.btn.btn-accent[aria-disabled="true"] {
  opacity: .5;
  cursor: not-allowed;
}
.btn.btn-accent--solid-emerald,
.btn.btn-accent--solid {
  background: var(--btn-accent, var(--fee-brand));
  border-color: transparent;
  color: #fff;
  box-shadow: var(--fee-shadow-sm);
}
.btn.btn-accent--solid-emerald:hover,
.btn.btn-accent--solid:hover {
  background: color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 88%, #000);
  border-color: transparent;
  color: #fff;
}
.btn.btn-accent--emerald { --btn-accent: #065f46; --btn-accent-ink: #065f46; }
.btn.btn-accent--solid-emerald { --btn-accent: #0f6b5c; --btn-accent-ink: #fff; }
.btn.btn-accent--indigo { --btn-accent: #6366f1; --btn-accent-ink: #4338ca; }
.btn.btn-accent--amber { --btn-accent: #d97706; --btn-accent-ink: #92400e; }
.btn.btn-accent--blue { --btn-accent: #2563eb; --btn-accent-ink: #1d4ed8; }
.btn.btn-accent--teal { --btn-accent: #0891b2; --btn-accent-ink: #0e7490; }
.btn.btn-accent--purple { --btn-accent: #7c3aed; --btn-accent-ink: #6d28d9; }
html[data-theme="dark"] .btn.btn-accent {
  background: color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 16%, var(--fee-surface-elevated));
  border-color: color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 55%, var(--fee-border));
  color: var(--btn-accent-ink, var(--btn-accent, var(--fee-brand-dark)));
}
html[data-theme="dark"] .btn.btn-accent:hover {
  background: color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 26%, var(--fee-surface-elevated));
  border-color: color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 70%, var(--fee-border));
  color: var(--btn-accent-ink, var(--btn-accent, var(--fee-brand-dark)));
}
html[data-theme="dark"] .btn.btn-accent--emerald { --btn-accent: #34d399; --btn-accent-ink: #6ee7b7; }
html[data-theme="dark"] .btn.btn-accent--solid-emerald { --btn-accent: #2bb89a; --btn-accent-ink: #06201b; }
html[data-theme="dark"] .btn.btn-accent--solid-emerald,
html[data-theme="dark"] .btn.btn-accent--solid {
  background: var(--btn-accent, var(--fee-brand));
  border-color: transparent;
  color: #06201b;
}
html[data-theme="dark"] .btn.btn-accent--solid-emerald:hover,
html[data-theme="dark"] .btn.btn-accent--solid:hover {
  background: color-mix(in srgb, var(--btn-accent, var(--fee-brand)) 88%, #fff);
  border-color: transparent;
  color: #06201b;
}
html[data-theme="dark"] .btn.btn-accent--indigo { --btn-accent: #a5b4fc; --btn-accent-ink: #c7d2fe; }
html[data-theme="dark"] .btn.btn-accent--amber { --btn-accent: #fbbf24; --btn-accent-ink: #fde68a; }
html[data-theme="dark"] .btn.btn-accent--blue { --btn-accent: #60a5fa; --btn-accent-ink: #93c5fd; }
html[data-theme="dark"] .btn.btn-accent--teal { --btn-accent: #22d3ee; --btn-accent-ink: #67e8f9; }
html[data-theme="dark"] .btn.btn-accent--purple { --btn-accent: #c4b5fd; --btn-accent-ink: #ddd6fe; }
label { display: block; margin: .55rem 0 .2rem; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]),
select, textarea { width: 100%; max-width: 520px; min-height: var(--fee-control-h); padding: .45rem .7rem; border: 1px solid var(--fee-line); border-radius: var(--fee-radius-sm); font: inherit; background: var(--fee-surface); color: var(--fee-text); }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):focus, select:focus, textarea:focus { outline: 2px solid rgba(15,107,92,.28); border-color: var(--fee-teal); }
input:disabled, select:disabled { background: var(--fee-surface-hover); color: var(--fee-muted); }
input[type=checkbox], input[type=radio] {
  width: 16px; height: 16px; min-height: 16px; max-width: 16px; margin: 0; padding: 0;
  accent-color: var(--fee-teal); flex: 0 0 16px; vertical-align: middle;
}
.check, label.check { display: flex; align-items: center; gap: .5rem; font-weight: 500; margin: .85rem 0 1rem; }
input.is-error, .field-error + input { border-color: var(--fee-danger); }
.inline-row { display: flex; align-items: center; gap: .4rem; margin: 0; width: max-content; max-width: 100%; }
table.data td .inline-row select { width: 10.5rem; max-width: 10.5rem; flex: 0 0 10.5rem; }
.inline-row .btn { flex: 0 0 auto; }
.filterbar { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; align-items: end; max-width: 100%; min-width: 0; overflow: visible; }
.filterbar input, .filterbar select { max-width: 180px; min-width: 0; }
.muted { color: var(--fee-muted); }
.tabs { display: flex; gap: .15rem; border-bottom: 1px solid var(--fee-line); margin: 0 0 1rem; }
.tabs a { display: inline-block; padding: .55rem .85rem; color: var(--fee-muted); border-bottom: 2px solid transparent; }
.tabs a.active { color: var(--fee-teal-dark); font-weight: 650; border-bottom-color: var(--fee-teal); }
dialog { border: 1px solid var(--fee-line); border-radius: 10px; padding: 1rem 1.1rem; max-width: 640px; width: min(640px, 92vw); background: var(--fee-surface); color: var(--fee-text); }
.form-narrow { max-width: 680px; }
.toast { position: fixed; right: 1rem; bottom: 1rem; background: var(--fee-ink); color: #fff; padding: .6rem .8rem; border-radius: 8px; }
.toast-inline { background: var(--fee-wash); border: 1px solid var(--fee-line); border-radius: 8px; padding: .6rem .8rem; }
.fee-top { align-items: flex-start; }
.page-sub { margin: .2rem 0 0; color: var(--fee-muted); font-size: 13px; }
.fee-top-actions { display: flex; gap: .65rem; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.global-search input { max-width: 280px; }
.account-menu { position: relative; }
.account-toggle {
  display: inline-flex; align-items: center; gap: .55rem;
  background: var(--fee-surface); border: 1px solid var(--fee-line); border-radius: 10px;
  padding: .35rem .55rem .35rem .4rem; cursor: pointer; min-height: 40px; color: var(--fee-text);
}
.account-toggle:hover, .account-toggle[aria-expanded="true"] { border-color: var(--fee-teal); box-shadow: 0 0 0 3px rgba(15,107,92,.12); }
.account-avatar { width: 28px; height: 28px; border-radius: 999px; background: #0c3f37; color: #fff; display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.account-toggle-copy { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.15; text-align: left; }
.account-toggle-copy strong { font-size: 13px; }
.account-toggle-copy span { font-size: 11px; color: var(--fee-muted); }
.account-caret { color: var(--fee-muted); font-size: 11px; }
.account-drop { position: absolute; right: 0; top: calc(100% + 6px); background: var(--fee-surface); color: var(--fee-text); border: 1px solid var(--fee-line); border-radius: 10px; min-width: 260px; padding: .45rem; z-index: 40; box-shadow: var(--fee-shadow-md); }
.account-drop a, .account-drop button { display: block; width: 100%; text-align: left; background: none; border: 0; padding: .45rem .55rem; cursor: pointer; color: inherit; border-radius: 6px; }
.account-drop a:hover, .account-drop button:hover { background: var(--fee-wash); }
.fee-nav button.group { display: flex; width: 100%; background: rgba(15,107,92,.32); border: 1px solid rgba(15,107,92,.5); color: #e6f3f0; margin: .55rem 0 .3rem; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; text-align: left; cursor: pointer; align-items: center; justify-content: space-between; gap: .4rem; padding: .45rem .55rem; border-radius: 6px; font-weight: 700; }
.fee-nav button.group[aria-expanded="false"] { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); color: #c5ddd7; }
.fee-nav [data-nav-items] { margin: 0 0 .2rem .35rem; padding-left: .45rem; border-left: 2px solid #c45c26; }
.nav-chevron { display: inline-block; min-width: 0.9em; font-size: 12px; line-height: 1; opacity: .95; }
.fee-nav a.item.active { background: rgba(15,107,92,.45); font-weight: 650; box-shadow: inset 3px 0 0 #c45c26; }
table.data tbody tr:hover,
table.data tr:hover { background: var(--fee-table-hover); }
table.data th { background: var(--fee-table-head); }
.chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; }
.chip { background: var(--fee-wash); border-radius: 999px; padding: .15rem .55rem; font-size: 12px; }
.empty { color: var(--fee-muted); padding: 1.5rem; background: var(--fee-white); border: 1px dashed var(--fee-line); border-radius: 10px; }
.provider-cell { display: inline-flex; align-items: center; gap: .35rem; }
.badge.family-free { background: #e8f6ee; color: #1b5e3b; }
.badge.family-corporate { background: #e8f1ff; color: #234; }
.badge.family-gateway { background: #f3e8ff; color: #4a2870; }
.badge.family-other { background: #f3f3f3; color: #444; }
.badge.family-dns { background: #fff3e0; color: #7a3e00; }
.fee-admin svg, .fee-app svg { width: 16px; height: 16px; max-width: 16px; max-height: 16px; flex-shrink: 0; }
.fee-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin: 1rem 0 0; padding: .75rem 0; }
.fee-pagination--top { margin: 0 0 .65rem; padding: .35rem 0 .55rem; border-bottom: 1px solid var(--fee-line); }
.fee-pagination-range { margin: 0; color: var(--fee-muted); font-size: 13px; }
.fee-pagination-pages { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; }
.fee-page-btn, .fee-page-size { display: inline-flex; align-items: center; justify-content: center; min-width: 2rem; padding: .25rem .5rem; border: 1px solid var(--fee-line); border-radius: 6px; background: var(--fee-surface); color: var(--fee-ink); text-decoration: none; }
.fee-page-btn:hover, .fee-page-size:hover { text-decoration: none; background: var(--fee-wash); }
.fee-page-btn.is-current, .fee-page-size.is-current { background: var(--fee-teal); color: #fff; border-color: var(--fee-teal); }
.fee-page-btn.is-disabled { opacity: .45; pointer-events: none; }
.fee-page-ellipsis { padding: 0 .2rem; color: var(--fee-muted); }
.fee-pagination-size { margin: 0; color: var(--fee-muted); display: inline-flex; align-items: center; gap: .4rem; font-size: 13px; }
/* Shared rows-per-page select (x-page-size): sits inside a table's filter toolbar. */
.page-size-select { font: inherit; font-size: 13px; color: var(--fee-ink); background: var(--fee-surface); border: 1px solid var(--fee-line); border-radius: 6px; padding: .25rem .45rem; min-width: 6rem; }
.filterbar .page-size-select { max-width: 7rem; }
.app-filters select.page-size-select { flex: 0 0 auto; min-width: 6.25rem; max-width: 7rem; margin-left: auto; }
.app-filters select.page-size-select + .app-filters-actions { margin-left: 0; }

.kv { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: .55rem 1.25rem; margin: 0; }
.kv dt { color: var(--fee-muted); font-size: 12px; padding-top: .2rem; font-weight: 600; }
.kv dd { margin: 0; line-height: 1.45; }
.btn-row { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; align-items: center; }
.card h2 { margin: 0 0 .85rem; font-size: 16px; }
.admin-user-overview .kv { margin-bottom: .25rem; }
.admin-user-actions { margin-top: 1.35rem; padding-top: 1rem; border-top: 1px solid var(--fee-line); }
.admin-note-card .admin-note-body { margin: 0 0 .85rem; white-space: pre-wrap; line-height: 1.5; }
.admin-note-meta { margin: 0 0 .35rem; }
.badge.status-ok { background: #d8f3e4; color: #0f5132; border: 1px solid #6fcf97; }
.badge.status-info,
.mail-status--fallback { background: #fff0d6; color: #7a3e00; border: 1px solid #e0a85c; }
.badge.status-warn,
.mail-status--unknown { background: #fff3e0; color: #7a3e00; border: 1px solid #f0c98a; }
.badge.status-bad,
.mail-status--no-route { background: #fde2e2; color: #8a1f1f; border: 1px solid #e59a9a; }
.badge.status-nx,
.mail-status--domain-not-found { background: #ffe8d6; color: #9a3412; border: 1px solid #fb923c; }
.badge.status-muted,
.mail-status--unchecked { background: var(--fee-surface-hover); color: var(--fee-muted); border: 1px solid var(--fee-border); }
html[data-theme="dark"] .badge.status-ok { background: #14532d; color: #bbf7d0; border-color: #22c55e; }
html[data-theme="dark"] .badge.status-info,
html[data-theme="dark"] .mail-status--fallback { background: #5c3d12; color: #fde68a; border-color: #d97706; }
html[data-theme="dark"] .badge.status-warn,
html[data-theme="dark"] .mail-status--unknown { background: #4a3514; color: #fcd34d; border-color: #b45309; }
html[data-theme="dark"] .badge.status-bad,
html[data-theme="dark"] .mail-status--no-route { background: #7f1d1d; color: #fecaca; border-color: #ef4444; }
html[data-theme="dark"] .badge.status-nx,
html[data-theme="dark"] .mail-status--domain-not-found { background: #7c2d12; color: #fed7aa; border-color: #f97316; }
html[data-theme="dark"] .badge.status-muted,
html[data-theme="dark"] .mail-status--unchecked { background: #1f2c28; color: #a3b4ae; border-color: #2a3d38; }
.badge { font-weight: 650; }
table.data td .btn { font-size: 12px; padding: .25rem .5rem; }
@media (max-width: 900px) {
  .fee-shell { grid-template-columns: 1fr; }
  .fee-nav { display: flex; flex-wrap: wrap; gap: .4rem; position: relative; height: auto; max-height: none; }
  .kv { grid-template-columns: 1fr; }
}

/* User application shell (not admin) */
*, *::before, *::after { box-sizing: border-box; }
body.fee-app { background: var(--fee-background); color: var(--fee-text); font: 14px/1.45 "Segoe UI", system-ui, sans-serif; }
/* Desktop sidebar: 228px × 1.10 ≈ 251px (modest +10%, not a redesign) */
.app-shell { display: grid; grid-template-columns: 251px minmax(0, 1fr); min-height: 100vh; width: 100%; max-width: 100%; align-items: start; }
.app-sidebar { display: flex; flex-direction: column; background: var(--fee-sidebar-bg); color: var(--fee-sidebar-text); padding: 1.1rem 0.75rem 0.2rem; position: sticky; top: 0; align-self: start; height: 100vh; max-height: 100dvh; min-height: 0; overflow: hidden; z-index: 20; }
.app-brand { display: flex; align-items: center; gap: .55rem; color: #fff; font-weight: 700; font-size: 13px; margin: 0 0 1.2rem; text-decoration: none; flex-shrink: 0; }
.app-brand:hover { text-decoration: none; }
.brand-logo { display: inline-flex; align-items: center; line-height: 0; text-decoration: none; border-radius: 6px; }
.brand-logo img { display: block; width: auto; height: auto; max-width: 100%; }
.brand-logo:focus-visible { outline: 2px solid #f4c27a; outline-offset: 3px; }
.brand-logo--default:focus-visible { outline-color: var(--fee-brand); }
.app-brand.brand-logo { width: 100%; max-width: 196px; }
.app-brand.brand-logo:not(.brand-logo--lockup) img { width: 100%; height: auto; display: block; }
.brand-logo--lockup {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  width: auto;
  max-width: none;
  text-decoration: none;
  line-height: 1;
}
.brand-logo--lockup .brand-logo-mark {
  width: 1.75rem;
  height: 1.75rem;
  flex: 0 0 auto;
  display: block;
}
.brand-logo--lockup.brand-logo--md .brand-logo-mark { width: 2.1rem; height: 2.1rem; }
.brand-logo--lockup.brand-logo--lg .brand-logo-mark { width: 2.6rem; height: 2.6rem; }
.brand-logo-wordmark {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: -0.03em;
  line-height: 1;
}
.brand-logo--md .brand-logo-wordmark { font-size: 1.25rem; }
.brand-logo--lg .brand-logo-wordmark { font-size: 1.45rem; }
.brand-logo-prospect,
.brand-logo-chief { margin: 0; padding: 0; }
.brand-logo--default .brand-logo-prospect,
.brand-logo--mark .brand-logo-prospect { color: #06483F; }
.brand-logo--default .brand-logo-chief,
.brand-logo--mark .brand-logo-chief { color: #F7931E; }
.brand-logo--inverse .brand-logo-prospect { color: #fff; }
.brand-logo--inverse .brand-logo-chief { color: #F7931E; }
.app-brand.brand-logo--lockup {
  width: auto;
  max-width: 100%;
  margin: 0 0 1.2rem;
}
.app-brand.brand-logo--lockup .brand-logo-mark {
  width: 1.85rem;
  height: 1.85rem;
}
.app-brand.brand-logo--lockup .brand-logo-wordmark { font-size: 1.05rem; }
.auth-brand.brand-logo--lockup,
.pub-brand.brand-logo--lockup { width: auto; max-width: none; }
.project-type-badge {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.project-type-badge--extractor { color: #047857; }
.project-type-badge--maps { color: #0369a1; }
.project-type-icon {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
}
.project-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: .5rem 1rem;
  margin: 0 0 .75rem;
}
.project-header-main { min-width: 0; flex: 1 1 18rem; }
.project-header-aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .3rem;
  margin-left: auto;
  max-width: 100%;
}
.project-header-aside .project-header-meta { font-size: 12px; text-align: right; }
.project-breadcrumbs { margin: 0 0 .2rem; }
.project-breadcrumbs ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem;
  margin: 0;
  padding: 0;
  font-size: var(--fee-fs-compact);
  line-height: var(--fee-lh-compact);
  color: var(--fee-text-secondary, var(--fee-muted));
}
.project-breadcrumbs li + li::before {
  content: "›";
  margin: 0 .35rem 0 .1rem;
  color: var(--fee-muted);
}
.project-breadcrumbs a { color: inherit; font-weight: 600; }
.project-breadcrumbs a:hover { color: var(--fee-text); }
.project-breadcrumbs [aria-current="page"] {
  color: var(--fee-text);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 24rem;
}
.project-header-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem .55rem;
  min-width: 0;
}
.project-header-title {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.project-header-sep {
  color: var(--fee-muted, #64748b);
  font-weight: 500;
  line-height: 1;
  user-select: none;
}
.project-header-count {
  display: inline-flex;
  align-items: center;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  color: var(--fee-text-secondary, var(--fee-muted));
}
.project-header-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1rem;
  margin: 0;
  color: var(--fee-muted, #64748b);
  font-size: .9rem;
}
.project-type-picker {
  border: 0;
  margin: .85rem 0 0;
  padding: 0;
}
.project-type-picker legend {
  font-weight: 700;
  margin-bottom: .55rem;
}
.project-type-option { display: block; margin: 0 0 .45rem; cursor: pointer; }
.project-type-option input { position: absolute; opacity: 0; pointer-events: none; }
.project-type-option-card {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  padding: .7rem .8rem;
  border: 1px solid var(--fee-border, #dbe3ee);
  border-radius: .65rem;
  background: var(--fee-surface, #fff);
}
.project-type-option-card strong { display: block; }
.project-type-option-card small { display: block; color: var(--fee-muted, #64748b); }
.project-type-option input:checked + .project-type-option-card {
  border-color: #0d9488;
  box-shadow: 0 0 0 1px #0d9488 inset;
}
.project-type-option-card--extractor .project-type-icon { color: #047857; }
html[data-theme="dark"] .brand-logo--default .brand-logo-prospect { color: #e8fff6; }
html[data-theme="dark"] .project-type-option-card {
  background: var(--fee-surface, #111827);
  border-color: var(--fee-border, #334155);
}
.app-mark { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; background: rgba(255,255,255,.12); font-size: 9px; letter-spacing: .04em; }
.app-nav { display: flex; flex-direction: column; gap: .15rem; flex: 1; min-height: 0; overflow: auto; }
.app-nav-link { display: flex; align-items: center; gap: .55rem; padding: .45rem .6rem; border-radius: 8px; color: var(--fee-sidebar-link); }
.app-nav-link svg { width: 16px; height: 16px; opacity: .85; }
.app-nav-link:hover { background: rgba(255,255,255,.06); text-decoration: none; color: #fff; }
.app-nav-link.is-active {
  background: rgba(255,255,255,.12);
  color: #fff;
  font-weight: 650;
  box-shadow: inset 3px 0 0 #f4c27a;
}
.app-nav-link .dash-icon--maps-mono { opacity: .9; }
.app-nav-link.is-active .dash-icon--maps-mono { opacity: 1; color: #f4c27a; }
.app-nav-group { display: flex; flex-direction: column; gap: .1rem; }
.app-nav-row { display: flex; align-items: center; gap: .15rem; }
.app-nav-row .app-nav-link { flex: 1; min-width: 0; }
.app-nav-disclose {
  flex: 0 0 auto; width: 1.65rem; height: 1.65rem; border: 0; border-radius: 6px;
  background: transparent; color: var(--fee-sidebar-link); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
}
.app-nav-disclose:hover { background: rgba(255,255,255,.08); color: #fff; }
.app-nav-disclose[aria-expanded="true"] .app-nav-disclose-icon { display: inline-block; transform: rotate(90deg); }
.app-nav-disclose-icon { display: inline-block; font-size: 11px; line-height: 1; transition: transform .12s ease; }
.app-nav-recent {
  list-style: none; margin: 0 0 .35rem; padding: 0 0 0 1.85rem; display: grid; gap: .1rem;
}
.app-nav-recent[hidden] { display: none !important; }
.app-nav-recent-link, .app-nav-recent-browse {
  display: block; padding: .28rem .45rem; border-radius: 6px; color: var(--fee-sidebar-link);
  font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.app-nav-recent-link:hover, .app-nav-recent-browse:hover { background: rgba(255,255,255,.06); color: #fff; text-decoration: none; }
.app-nav-recent-link.is-active, .app-nav-recent-browse.is-active {
  background: rgba(255,255,255,.16);
  color: #fff;
  font-weight: 650;
  box-shadow: inset 3px 0 0 #f4c27a;
}
.app-nav-recent-empty { padding: .28rem .45rem; font-size: 12px; color: rgba(255,255,255,.45); }
.app-nav-recent-heading {
  padding: .35rem .45rem .1rem; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: rgba(255,255,255,.5);
}
.app-nav-recent-heading + li .app-nav-recent-link { margin-top: 0; }
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Projects index: fill the main workspace (prior 85%/1320px was the constraining ancestor). */
.projects-page {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.projects-page .app-page-head { align-items: center; }
.projects-page .app-page-actions { margin-left: 0; }
.projects-search { max-width: 28rem; margin-bottom: 1rem; }
.projects-search input { max-width: 18rem; }
.app-table-card.projects-table-card {
  /* Fill the workspace; column widths below share the row.
     Two classes so this beats the later single-class card max-width. */
  max-width: none;
  width: 100%;
  padding-right: 0;
  box-sizing: border-box;
}
.app-table--projects {
  width: 100%;
  table-layout: fixed;
}
.app-table--projects th,
.app-table--projects td {
  padding: .65rem .5rem;
  box-sizing: border-box;
  vertical-align: middle;
}
.projects-table-card .app-table--projects {
  width: 100%;
}
.projects-table-card .app-pagination {
  padding-right: 1.25rem;
}
.app-table--projects .app-row-menu {
  display: inline-flex;
  justify-content: flex-start;
  width: auto;
}
.app-table--projects .app-row-menu summary {
  margin-left: 0;
  margin-right: 0;
}
@media (max-width: 768px) {
  .app-table--projects th,
  .app-table--projects td { padding: .55rem .35rem; }
}
.app-nav-recent-action {
  display: block; width: 100%; text-align: left; padding: .28rem .45rem; border-radius: 6px;
  border: 0; background: transparent; color: #9fe8d6; font-size: 12.5px; font-weight: 650;
  cursor: pointer; font-family: inherit;
}
.app-nav-recent-action:hover { background: rgba(255,255,255,.08); color: #fff; }
.app-nav-toggle { display: none; }
.app-nav-link.app-notif-bell { position: relative; }
.app-nav-link.app-notif-bell.has-unread { color: #fff; }
.app-notif-count { margin-left: auto; background: var(--fee-teal); color: #fff; font-size: 10px; font-weight: 700; min-width: 16px; height: 16px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; line-height: 1; flex-shrink: 0; }
.notif-popup-dialog { width: min(480px, calc(100vw - 2rem)); }
.notif-popup-title { margin: 0 0 .75rem; }
.notif-popup-body { white-space: pre-wrap; margin: 0 0 1rem; }
.notif-popup-cta { margin-bottom: .75rem; display: inline-block; }
.notif-list { padding: 0; }
.notif-item { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--fee-border); }
.notif-item:last-child { border-bottom: 0; }
.notif-item--unread { background: color-mix(in srgb, var(--fee-teal) 5%, transparent); }
.notif-item-title { font-weight: 650; margin-bottom: .25rem; }
.notif-item-body { font-size: 14px; color: var(--fee-text); white-space: pre-wrap; }
.notif-item-meta { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; white-space: nowrap; font-size: 13px; flex-shrink: 0; }
.btn-link { background: none; border: none; color: var(--fee-teal); cursor: pointer; font-size: 13px; padding: 0; text-decoration: underline; }
/* Footer profile badge keeps ~20px clear of the viewport bottom (padding + button padding). */
.app-user { margin-top: auto; padding: .35rem .15rem 1rem; border-top: 1px solid rgba(255,255,255,.12); position: relative; flex-shrink: 0; background: var(--fee-sidebar-bg); }
.app-user-btn { display: flex; align-items: flex-start; gap: .7rem; width: 100%; background: transparent; border: 0; color: inherit; text-align: left; cursor: pointer; padding: .4rem .5rem .25rem; border-radius: 10px; line-height: 1.45; }
.app-user-btn:hover { background: rgba(255,255,255,.06); }
.app-avatar { width: 36px; height: 36px; margin-top: .15rem; border-radius: 999px; background: #c45c26; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex-shrink: 0; }
.app-user-meta { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: .45rem; }
.app-user-name { display: block; font-size: 13px; font-weight: 650; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.4; }
.app-user-email { display: block; font-size: var(--fee-fs-meta); font-weight: 500; color: var(--fee-sidebar-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: var(--fee-lh-meta); }
.app-user-plan { display: block; font-size: var(--fee-fs-meta); color: var(--fee-sidebar-muted); line-height: var(--fee-lh-meta); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-caret { opacity: .6; font-size: 11px; flex-shrink: 0; margin-top: .35rem; }
.app-user-pop { position: absolute; left: 0; right: 0; bottom: calc(100% + 10px); background: var(--fee-surface); color: var(--fee-text); border: 1px solid var(--fee-border); border-radius: 12px; box-shadow: var(--fee-shadow-md); padding: .45rem; z-index: 30; }
.app-user-pop-head { padding: .8rem .75rem .75rem; border-bottom: 1px solid var(--fee-border); margin-bottom: .4rem; }
.app-user-pop-name { font-size: 13px; font-weight: 650; line-height: 1.4; }
.app-user-pop-email { font-size: 12px; line-height: 1.5; margin-top: .35rem; word-break: break-all; white-space: normal; }
.app-user-pop-plan { font-size: 12px; line-height: 1.4; margin-top: .3rem; }
.app-user-pop-actions { display: flex; flex-direction: column; gap: .1rem; padding: .15rem 0 .1rem; }
.app-user-pop a, .app-user-pop button:not(.fee-theme-chip) { display: block; width: 100%; text-align: left; background: none; border: 0; padding: .55rem .7rem; border-radius: 8px; color: inherit; cursor: pointer; font: inherit; text-decoration: none; line-height: 1.4; }
.app-user-pop a:hover, .app-user-pop button:not(.fee-theme-chip):hover { background: var(--fee-surface-hover); text-decoration: none; }
.fee-theme-block { margin: .2rem 0 .15rem; padding: .4rem .7rem .5rem; border-radius: 8px; }
.fee-theme-label { font-size: 12px; font-weight: 650; color: var(--fee-muted); margin: 0 0 .4rem; letter-spacing: .01em; }
.fee-theme-options { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; }
.fee-theme-chip { display: inline-flex; align-items: center; justify-content: center; gap: .3rem; width: 100%; min-height: 34px; padding: .35rem .4rem; border: 1px solid var(--fee-border); border-radius: 8px; background: var(--fee-surface); color: var(--fee-text); cursor: pointer; font: inherit; font-size: 12px; font-weight: 600; line-height: 1.2; }
.fee-theme-chip:hover { background: var(--fee-surface-hover); }
.fee-theme-chip.is-active { background: var(--fee-brand-light); border-color: var(--fee-brand); color: var(--fee-teal-dark); box-shadow: inset 0 0 0 1px var(--fee-brand); }
.fee-theme-ico { font-size: 13px; line-height: 1; }
.account-drop .fee-theme-block { margin: .25rem 0; padding: .35rem .55rem .45rem; }
.app-logout { color: var(--fee-danger) !important; margin-top: .25rem; border-top: 1px solid var(--fee-border) !important; border-radius: 0 0 8px 8px !important; padding-top: .65rem !important; }
.app-main { min-width: 0; max-width: 100%; display: flex; flex-direction: column; }
.app-content { padding: 18px 22px 32px; width: 100%; max-width: 100%; min-width: 0; }
.app-content:has(.dash-home) {
  background: var(--dash-bg, var(--fee-background));
}
.app-content:has(.app-workspace),
.app-content:has(.app-table-card) { max-width: 100%; }
.app-content:has(.auth-card) { max-width: 720px; }
.app-page-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin: 0 0 1.1rem; flex-wrap: wrap; }
.app-page-head h1 { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
.app-page-head-main { min-width: 0; flex: 1 1 12rem; }
.app-page-head-aside { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .55rem; margin-left: auto; }
.app-page-head--workspace .app-page-head-aside {
  flex-direction: column;
  align-items: flex-end;
  gap: .4rem;
}
.app-page-stats-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem .75rem;
  margin: .35rem 0 0;
}
.app-page-stats-row .app-page-stats { margin: 0; }
.app-filters-verify-form { display: none; }
.app-page-meta { margin: .2rem 0 0; color: var(--fee-muted); font-size: 13px; }
.app-page-meta--aside {
  margin: 0;
  text-align: right;
  width: 100%;
}
.app-page-actions { display: flex; gap: .45rem; flex-wrap: wrap; }
.app-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: 0 0 .7rem; max-width: 920px; }
.app-quick { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 .9rem; }
.app-intel { margin: 0 0 1rem; color: var(--fee-muted); font-size: 13px; }
.app-summary-item { background: var(--fee-surface); border: 1px solid var(--fee-border); border-radius: 10px; padding: .85rem 1rem; }
.app-summary-item b { display: block; font-size: 22px; }
.app-summary-item span { color: var(--fee-muted); font-size: 12px; }
.app-section-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 0 0 .7rem; }
.app-section-head h2 { margin: 0; font-size: 15px; font-weight: 650; }
.app-panel { background: var(--fee-surface); border: 1px solid var(--fee-border); border-radius: 10px; padding: 1.05rem 1.1rem; margin-bottom: 1rem; }
.app-plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; max-width: 720px; }
.fee-checkout { margin: 0; background: var(--fee-bg); min-height: 100vh; }
.checkout-back { display: inline-block; margin: 0.85rem 1.25rem 0; color: var(--fee-muted); font-size: 13px; }
.checkout-flash { padding: 0.75rem 1.25rem; }
.checkout-page {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  /* Shared checkout shell — Pro + credits. Cap ultrawide sprawl; keep room for summary. */
  width: min(1160px, calc(100vw - 48px));
  max-width: 1160px;
  margin: 0 auto;
  padding: 1.5rem 0 3rem;
  align-items: start;
  box-sizing: border-box;
}
.checkout-page--intent {
  grid-template-columns: minmax(0, 1fr);
  width: min(1160px, calc(100vw - 48px));
  max-width: 1160px;
}
.checkout-page--intent .checkout-brand,
.checkout-page .checkout-brand {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 0 .25rem;
}
.checkout-page--intent .checkout-pay--intent {
  width: 100%;
  max-width: none;
  min-width: 0;
}
.checkout-page--intent .credits-config-shell {
  max-width: 100%;
}
.checkout-email-field {
  display: block;
  margin: 0 0 1rem;
  font-weight: 650;
  font-size: 13px;
}
.checkout-email-field input {
  display: block;
  width: 100%;
  margin-top: .35rem;
  padding: .55rem .7rem;
  border: 1px solid var(--fee-line);
  border-radius: 8px;
  font: inherit;
}
.intent-pro-upsell {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--fee-line);
}
.intent-pro-lede {
  margin: 0 0 .75rem;
  font-size: 15px;
  font-weight: 650;
  color: var(--fee-ink);
}
.intent-pro-toggle {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: .65rem;
  align-items: start;
  border: 1px solid var(--fee-line);
  border-radius: 10px;
  padding: .7rem .8rem;
  cursor: pointer;
  background: var(--fee-surface);
  margin: 0 0 .65rem;
}
.intent-pro-toggle.is-selected,
.intent-pro-toggle:has(input:checked) {
  border-color: var(--fee-teal);
  background: var(--fee-wash);
  box-shadow: 0 0 0 1px var(--fee-teal);
}
.intent-pro-toggle input { margin-top: .2rem; }
.intent-pro-toggle-copy { display: grid; gap: .15rem; }
.intent-pro-toggle-copy strong { font-size: 14px; }
.intent-pro-plans {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
}
.intent-pro-plans--primary { margin: 0 0 1rem; }
.intent-pro-plan {
  position: relative;
  display: grid;
  gap: .2rem;
  border: 1px solid var(--fee-line);
  border-radius: 10px;
  padding: .65rem .75rem;
  cursor: pointer;
  background: var(--fee-surface);
}
.intent-pro-plan input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.intent-pro-plan.is-selected,
.intent-pro-plan:has(input:checked) {
  border-color: var(--fee-teal);
  background: var(--fee-wash);
  box-shadow: 0 0 0 1px var(--fee-teal);
}
.intent-pro-plan-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
}
.intent-pro-plan span { color: var(--fee-muted); font-size: 12px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; }
.intent-pro-plan strong { font-size: 15px; }
.intent-pro-plan-note { font-size: 12px; color: var(--fee-muted); font-weight: 500; text-transform: none; letter-spacing: 0; }
.intent-pro-active { margin: 1rem 0 0; font-size: 13px; }
.intent-credits-selector { margin-top: .75rem; }
/* Unified cart: one block per item; add-ons collapse to their toggle until checked. */
.cart-item { margin-top: 1.1rem; }
.cart-item--addon { padding-top: 1rem; border-top: 1px solid var(--fee-line); }
.cart-item--primary + .cart-item--addon { margin-top: 1.4rem; }
.cart-item .credits-config-section-title { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.cart-config { margin-top: .75rem; }
.cart-config[hidden] { display: none; }
.cart-config--primary { margin-top: .5rem; }
.cart-badge {
  display: inline-block;
  padding: .1rem .5rem;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  vertical-align: middle;
}
.cart-badge--paid { background: color-mix(in srgb, #d8f3e4 70%, var(--fee-surface)); color: #0d5147; }
.cart-badge--active { background: var(--fee-wash); color: var(--fee-muted); border: 1px solid var(--fee-line); }
.cart-item--already_active .credits-config-section-title,
.cart-item--already_active .muted { opacity: .85; }
.intent-summary-row--discount { color: #0d5147; font-size: 13px; }
.intent-summary-row--discount.is-hidden { display: none; }
.intent-summary-benefits { margin-top: 1.1rem; padding-top: .85rem; border-top: 1px solid var(--fee-line); }
.intent-benefit-list {
  margin: 0;
  padding: 0 0 0 1.1rem;
  display: grid;
  gap: .35rem;
  font-size: 13px;
  line-height: 1.35;
  color: var(--fee-ink);
}
.plan-badge--save {
  background: color-mix(in srgb, var(--fee-teal) 18%, transparent);
  color: var(--fee-teal-dark);
}
.credits-addon-prices { margin: .75rem 0 0; font-size: 13px; }
.intent-summary-block { margin: 0 0 .85rem; padding-bottom: .75rem; border-bottom: 1px solid var(--fee-line); }
.intent-summary-block.is-hidden { display: none; }
.intent-summary-kind { margin: .15rem 0 .35rem; font-size: 12px; }
.intent-summary-renew { margin: .35rem 0 0; font-size: 12px; line-height: 1.45; }
.intent-summary-renew.is-hidden { display: none; }
@media (min-width: 1024px) and (min-height: 720px) {
  .checkout-page--intent .credits-config-panel {
    overflow: visible;
  }
  .checkout-page--intent .credits-config-summary {
    position: sticky;
    top: 1rem;
    align-self: start;
  }
}
@media (max-width: 1023px) {
  .checkout-page--intent {
    grid-template-columns: 1fr;
  }
  .checkout-page--intent .checkout-brand { order: 0; }
  .checkout-page--intent .checkout-pay--intent { order: 1; }
  .intent-pro-plans { grid-template-columns: 1fr; }
}
.checkout-brand { padding-top: 0.35rem; }
.checkout-brand .brand-logo { max-width: 200px; display: block; }
.checkout-brand .brand-logo img { width: 100%; height: auto; }
.checkout-mark {
  width: 40px; height: 40px; border-radius: 10px; background: var(--fee-teal-dark); color: #fff;
  display: grid; place-items: center; font-weight: 800; margin: 0 0 0.45rem;
}
.checkout-brand-name { margin: 0; font-weight: 750; }
.checkout-brand-meta { margin: 0.2rem 0 0; color: var(--fee-muted); font-size: 12px; }
.checkout-title { margin: 0 0 .5rem; font-size: 1.45rem; }
.checkout-form { margin-top: 1rem; }
.checkout-billing { margin: 0 0 .85rem; }
.checkout-cta { width: 100%; }
.checkout-total { margin: 0.35rem 0 0.75rem; }
.checkout-legal { margin: 0.55rem 0 0; color: var(--fee-muted); font-size: 12px; }
.pay-options { border: 0; padding: 0; margin: 0 0 1.15rem; }
.pay-legend { padding: 0; margin: 0 0 .65rem; font-weight: 750; font-size: 15px; }
.pay-option { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: .85rem; align-items: start; border: 1px solid var(--fee-line); border-radius: var(--fee-radius-md); padding: var(--fee-pay-card-pad-y) var(--fee-pay-card-pad-x); margin: 0 0 .7rem; cursor: pointer; background: var(--fee-surface); }
.pay-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pay-option .plan-radio { margin-top: .2rem; }
.pay-option.is-selected .plan-radio, .pay-option:has(input:checked) .plan-radio { border-color: var(--fee-teal); box-shadow: inset 0 0 0 5px var(--fee-teal); }
.pay-option.is-selected, .pay-option:has(input:checked) { border-color: var(--fee-teal); background: var(--fee-wash); box-shadow: 0 0 0 1px var(--fee-teal); }
.pay-option.is-selected .pay-option-name, .pay-option:has(input:checked) .pay-option-name { color: var(--fee-teal-dark); font-weight: 800; }
.pay-option:focus-within { outline: 2px solid var(--fee-teal-dark); outline-offset: 2px; }
.pay-option.is-disabled { opacity: .55; cursor: not-allowed; }
.pay-option--compact {
  grid-template-columns: 18px minmax(0, 1fr);
  gap: .55rem;
  padding: .55rem .7rem;
  margin: 0;
  align-items: center;
  min-height: 56px;
}
.pay-option--compact .plan-radio { margin-top: 0; width: 16px; height: 16px; }
.pay-option--compact .pay-option-head {
  flex-direction: column;
  align-items: flex-start;
  gap: .25rem;
}
.pay-option--compact .pay-option-name { font-size: 14px; }
.pay-option--compact .pay-marks { gap: 6px; flex-wrap: nowrap; }
.pay-option--compact .pay-mark { height: 18px; }
.pay-option--compact .pay-mark-coin { height: 20px; width: 20px; }
.credits-pay-compact .pay-option--compact {
  min-height: 72px;
  padding: .7rem .75rem;
  align-items: center;
}
.credits-pay-compact .pay-option--compact .pay-option-name { font-size: 15px; font-weight: 750; }
.credits-pay-compact .pay-option--compact .pay-marks {
  /* Prefer one row; wrap only as a deliberate balanced second row — never clip. */
  flex-wrap: wrap;
  gap: 5px;
  max-width: 100%;
  overflow: visible;
}
.pay-option-head { display: flex; align-items: center; justify-content: space-between; gap: .55rem .85rem; flex-wrap: wrap; }
.checkout-fineprint { color: var(--fee-muted); font-size: 12px; line-height: 1.5; margin: .5rem 0 0; }
.pay-option-name { font-weight: 750; font-size: var(--fee-pay-label-size); line-height: 1.35; }
.pay-option-note { display: block; color: var(--fee-pay-note); font-size: var(--fee-pay-note-size); line-height: 1.5; margin-top: .4rem; white-space: pre-line; }
/* Marks sit in a spaced row. Compact checkout summary keeps logos on one line. */
.pay-marks { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; flex-wrap: nowrap; }
.pay-mark { display: block; height: var(--fee-pay-mark-h); width: auto; border-radius: 4px; background: #fff; flex: 0 0 auto; }
.pay-mark-coin { height: var(--fee-pay-mark-h); width: var(--fee-pay-mark-h); border-radius: 999px; box-shadow: 0 0 0 1px #e6e6e6; }
@media (max-width: 480px) {
  .pay-option-head { align-items: flex-start; }
  .pay-marks { gap: 6px; flex-wrap: nowrap; }
  .pay-mark { height: 18px; }
  .pay-mark-coin { height: 20px; width: 20px; }
}
.pay-single { display: flex; align-items: center; justify-content: space-between; gap: .5rem; flex-wrap: wrap; margin: 0 0 .2rem; }
.pay-single-note { color: var(--fee-pay-note); font-size: var(--fee-pay-note-size); line-height: 1.5; margin: 0 0 1rem; white-space: pre-line; }
.unlock-lede { margin: 0 0 .35rem; color: var(--fee-ink); }
.unlock-body { margin: 0 0 1rem; color: var(--fee-pay-note); font-size: 15px; line-height: 1.5; max-width: 40rem; }
.unlock-note { margin: 0 0 1rem; color: var(--fee-muted); max-width: 40rem; }
.plan-picks { border: 0; padding: 0; margin: 0 0 1rem; }
.plan-pick { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: .7rem; align-items: start; border: 1px solid var(--fee-line); border-radius: var(--fee-radius-md); padding: .75rem .85rem; margin: 0 0 .55rem; cursor: pointer; background: var(--fee-surface); }
.plan-pick input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.plan-radio { width: 18px; height: 18px; margin-top: .2rem; border-radius: 999px; border: 2px solid var(--fee-line); background: var(--fee-surface); }
.plan-pick.is-selected .plan-radio, .plan-pick:has(input:checked) .plan-radio { border-color: var(--fee-teal); box-shadow: inset 0 0 0 4px var(--fee-teal); }
.plan-pick.is-selected, .plan-pick:has(input:checked) { border-color: var(--fee-teal); background: var(--fee-wash); }
.plan-pick-name { display: block; font-weight: 750; }
.plan-pick-price { display: block; font-size: 1.15rem; font-weight: 700; color: var(--fee-teal-dark); }
.plan-pick-note { display: block; color: var(--fee-muted); font-size: 12px; margin-top: .15rem; }
.plan-badge { display: inline-block; margin-left: .35rem; background: var(--fee-accent); color: #fff; font-size: 10px; letter-spacing: .04em; padding: .12rem .4rem; border-radius: 999px; vertical-align: middle; }
.checkout-billing { margin: .4rem 0 1rem; }
.checkout-cta { width: 100%; max-width: none; padding: .7rem 1rem; font-size: 1rem; }
.checkout-benefits { margin: .75rem 0 1.1rem; padding-left: 1.1rem; }
.checkout-benefits li { margin: .28rem 0; }
.checkout-trust p { margin: .45rem 0; color: var(--fee-muted); font-size: 13px; }
.checkout-trust strong { display: block; color: var(--fee-ink); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.btn.secondary { background: var(--fee-surface); color: var(--fee-teal-dark); border: 1px solid var(--fee-line); }
.app-price { font-size: 22px; font-weight: 700; margin: .2rem 0 1rem; }
.app-price span { font-size: 13px; font-weight: 500; color: var(--fee-muted); }
.app-kv { display: grid; grid-template-columns: 9rem 1fr; gap: .35rem 1rem; margin: 0 0 1rem; }
.app-kv dt { color: var(--fee-muted); font-size: 12px; }
.app-kv dd { margin: 0; }
.app-workspace { display: block; width: 100%; max-width: 100%; min-width: 0; }
.app-workspace--full { display: block; }
.app-workspace-main { min-width: 0; max-width: 100%; width: 100%; }
.app-filters { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin: 0 0 .75rem; width: 100%; max-width: 100%; min-width: 0; overflow: visible; }
.app-filters input:not([type=checkbox]):not([type=radio]), .app-filters select { width: auto; min-width: 6.5rem; max-width: 10rem; flex: 1 1 7rem; }
.app-filters input[name=q] { flex: 1.4 1 16rem; min-width: 11rem; max-width: 20rem; }
.app-filters select { flex: 0 1 8.5rem; min-width: 6.8rem; max-width: 10.5rem; width: auto; }
.app-filters select[name=mail_display],
.app-filters select[name=mailbox_status] { flex: 0 1 9.5rem; min-width: 7.5rem; max-width: 11rem; }
.app-filters select[name=family] { flex: 0 1 10rem; min-width: 8.5rem; max-width: 11rem; }
.app-filters select[name=email] { flex: 0 1 10rem; min-width: 9.5rem; max-width: 11.5rem; }
.app-filters .app-multi { flex: 0 1 9rem; min-width: 7.5rem; max-width: 11rem; }
.app-filters .app-project-filter { flex: 0 1 10rem; min-width: 8.5rem; max-width: 12rem; }
.app-filters-actions { display: flex; gap: .4rem; margin-left: auto; flex-wrap: wrap; flex-shrink: 0; padding-left: .2rem; }
.app-table { width: 100%; table-layout: fixed; }
.app-table th, .app-table td { overflow: hidden; text-overflow: ellipsis; }
.app-table th.col-contact, .app-table td.col-contact { width: auto; min-width: 12rem; }
.app-table th.col-company, .app-table td.col-company { width: 10rem; min-width: 8.5rem; max-width: 12rem; }
.app-table th.col-mail, .app-table td.col-mail { width: 9.5rem; min-width: 8.75rem; max-width: 11rem; }
.app-table th.col-verify, .app-table td.col-verify { width: 8.75rem; min-width: 8rem; max-width: 10rem; }
/* Mail Status / Verification badges are categorical chips — never stretch. */
.app-table td.col-mail .badge,
.app-table td.col-verify .badge,
.app-table .stack-cell > .badge {
  display: inline-flex;
  align-items: center;
  width: auto;
  max-width: 100%;
  flex: 0 0 auto;
  align-self: flex-start;
  box-sizing: border-box;
}
.app-table th.col-provider-mx, .app-table td.col-provider-mx { width: 11rem; min-width: 9.5rem; max-width: 13rem; white-space: normal; }
.app-table--leads .col-provider-mx { white-space: normal; }
.app-table td.col-provider-mx .stack-cell--mx {
  display: flex;
  flex-direction: column;
  gap: 0;
  line-height: 1.2;
  min-height: 0;
  max-height: 2.5em;
  overflow: hidden;
}
.app-table td.col-provider-mx .stack-cell--mx strong {
  font-weight: 650;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.app-table td.col-provider-mx .stack-cell--mx span,
.app-table td.col-provider-mx .mx-primary-host {
  color: var(--fee-muted);
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.app-table th.col-source, .app-table td.col-source { width: 7.5rem; min-width: 6.5rem; max-width: 9rem; }
.app-table th.col-found, .app-table td.col-found { width: 10.5rem; min-width: 9rem; max-width: 13rem; }
.app-table th.col-saved, .app-table td.col-saved { width: 6.75rem; min-width: 5.75rem; max-width: 8rem; }
/* Leads geometry: the table fills the card. Select, status, source, saved,
   and actions stay compact. Lead, company, provider/MX, and found-on share
   leftover space up to a max so none of them can take half the table. */
.app-table--leads col.col-check { width: 40px; }
.app-table--leads col.col-mail { width: 8.75rem; }
.app-table--leads col.col-verify { width: 8rem; }
.app-table--leads col.col-source { width: 7.5rem; }
.app-table--leads col.col-saved { width: 6.25rem; }
.app-table--leads col.col-actions { width: 5.75rem; }
.app-table--leads col.col-contact { width: auto; min-width: 9rem; max-width: 20rem; }
.app-table--leads col.col-company { width: auto; min-width: 7rem; max-width: 16rem; }
.app-table--leads col.col-provider-mx { width: auto; min-width: 8rem; max-width: 18rem; }
.app-table--leads col.col-found { width: auto; min-width: 7.5rem; max-width: 14rem; }
.app-table--leads th.col-contact,
.app-table--leads td.col-contact { width: auto; min-width: 0; max-width: 20rem; }
.app-table--leads th.col-company,
.app-table--leads td.col-company { width: auto; min-width: 0; max-width: 16rem; }
.app-table--leads th.col-provider-mx,
.app-table--leads td.col-provider-mx { width: auto; min-width: 0; max-width: 18rem; }
.app-table--leads th.col-found,
.app-table--leads td.col-found { width: auto; min-width: 0; max-width: 14rem; }
.app-table--leads th.col-mail,
.app-table--leads td.col-mail,
.app-table--leads th.col-verify,
.app-table--leads td.col-verify,
.app-table--leads th.col-source,
.app-table--leads td.col-source,
.app-table--leads th.col-saved,
.app-table--leads td.col-saved {
  width: auto;
  min-width: 0;
  max-width: none;
}
.col-co-content { display: flex; align-items: center; gap: 5px; min-width: 0; max-width: 100%; }
.col-co-mark {
  flex: 0 0 22px; width: 22px; height: 22px; border-radius: 5px;
  display: inline-flex; align-items: center; justify-content: center;
  overflow: hidden; background: var(--fee-wash); border: 1px solid var(--fee-border); flex-shrink: 0;
}
.col-co-logo { width: 22px; height: 22px; object-fit: contain; display: block; }
.col-co-initials { font-size: 9px; font-weight: 700; color: var(--fee-teal-dark); }
.col-co-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
.app-table--leads th,
.app-table--leads td {
  box-sizing: border-box;
}
.app-table .app-check,
.app-table--leads .app-check,
.app-table col.col-check,
.app-table--leads col.col-check {
  width: 40px; min-width: 40px; max-width: 40px; text-align: center;
}
.app-table--leads th.app-check,
.app-table--leads td.app-check {
  width: 40px !important; min-width: 40px !important; max-width: 40px !important;
  padding-left: 6px !important; padding-right: 6px !important;
  box-sizing: border-box !important;
}
.app-table th.col-actions, .app-table td.col-actions,
.app-table--leads .col-actions,
.app-table--leads col.col-actions {
  width: 5.75rem; min-width: 5.75rem; max-width: 5.75rem; text-align: center;
}
/*
 * Actions header vs Maps — root cause:
 * 1) Canonical fee-data-table aligns .col-actions right; “Actions” is wider than ⋯,
 *    so right-align pins the label to the card edge.
 * 2) Extractor was width:100%; min-width:0 inside .app-table-card{overflow:hidden},
 *    so the last column had no scroll gutter. Maps uses min-width:68rem and scrolls.
 * Fix: center + end padding (both products), and give Extractor a min-width so the
 * wrap scrolls instead of clipping the header into the border.
 */
.app-table--leads th.col-actions,
.app-table--leads td.col-actions,
.app-table--maps th.col-actions,
.app-table--maps td.col-actions {
  width: 5.75rem !important; min-width: 5.75rem !important; max-width: 5.75rem !important;
  padding-left: 10px !important; padding-right: 1.25rem !important;
  text-align: center !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
.app-table.app-table--leads:not(.app-table--maps) {
  width: 100%;
  min-width: 70rem;
  table-layout: fixed;
}
/* Inset the scrollport so the Actions header clears the card border (Maps gets
   the same wrap; its min-width scroll already made the clip less obvious). */
.app-table-card:has(.app-table--leads) .app-table-wrap {
  padding-right: 10px;
  box-sizing: border-box;
  overflow-x: auto;
}
/* Extractor only: Found −10% → Company; Provider/MX −10% → Saved. */
.app-table--leads:not(.app-table--maps) col.col-company,
.app-table--leads:not(.app-table--maps) th.col-company,
.app-table--leads:not(.app-table--maps) td.col-company {
  width: 20% !important;
  min-width: 0 !important;
  max-width: none !important;
}
.app-table--leads:not(.app-table--maps) col.col-found,
.app-table--leads:not(.app-table--maps) th.col-found,
.app-table--leads:not(.app-table--maps) td.col-found {
  width: 10% !important;
  min-width: 0 !important;
  max-width: none !important;
}
.app-table--leads:not(.app-table--maps) col.col-provider-mx,
.app-table--leads:not(.app-table--maps) th.col-provider-mx,
.app-table--leads:not(.app-table--maps) td.col-provider-mx {
  width: 12% !important;
  min-width: 0 !important;
  max-width: none !important;
}
.app-table--leads:not(.app-table--maps) col.col-saved,
.app-table--leads:not(.app-table--maps) th.col-saved,
.app-table--leads:not(.app-table--maps) td.col-saved {
  width: 16% !important;
  min-width: 6rem !important;
  max-width: none !important;
  white-space: nowrap;
}
.app-table .col-contact, .app-table .col-found, .app-table .col-company, .app-table .col-source, .app-table .col-saved {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.app-table-wrap { overflow-x: auto; overflow-y: visible; max-width: 100%; min-width: 0; -webkit-overflow-scrolling: touch; }
.app-table { width: 100%; min-width: 0; }
.stack-cell { display: flex; flex-direction: column; gap: 1px; min-width: 0; white-space: normal; }
.stack-cell strong, .stack-cell .provider-name { font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stack-cell span { color: var(--fee-muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stack-cell--mail { gap: .15rem; }
.stack-cell--mail > .badge { align-self: flex-start; }
.stack-cell--mail .mail-domain-support {
  display: block;
  color: var(--fee-muted);
  font-size: 11.5px;
  font-weight: 450;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.app-rail { background: var(--fee-surface); border: 1px solid var(--fee-border); border-radius: 10px; padding: .5rem; }
.app-rail-label { margin: .7rem .55rem .3rem; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--fee-muted); }
.app-rail-item { display: flex; justify-content: space-between; gap: .5rem; padding: .45rem .55rem; border-radius: 8px; color: inherit; }
.app-rail-item:hover { background: var(--fee-surface-hover); text-decoration: none; }
.app-rail-item.is-active {
  background: var(--fee-brand-light);
  color: var(--fee-teal-dark);
  font-weight: 700;
  box-shadow: inset 3px 0 0 var(--fee-brand, #1b5e45);
}
.app-count { color: var(--fee-muted); font-size: 12px; }
.app-rail-new { display: block; width: 100%; margin-top: .35rem; background: none; border: 0; color: var(--fee-teal-dark); padding: .45rem .55rem; text-align: left; cursor: pointer; border-radius: 8px; }
.app-rail-new:hover { background: var(--fee-surface-hover); }
.app-rail-browse {
  display: block; margin: .35rem .55rem; font-size: 12.5px; color: var(--fee-teal-dark);
}
.app-rail-empty { margin: .35rem .55rem; font-size: 12.5px; }

/* Lead expand / compact inspector */
.lead-disclose {
  display: flex; align-items: center; gap: .4rem; cursor: pointer;
  min-width: 0; max-width: 100%;
}
.lead-disclose:focus-visible { outline: 2px solid var(--fee-teal); outline-offset: 2px; border-radius: 6px; }
.lead-chevron {
  flex: 0 0 auto; width: .5rem; height: .5rem;
  border-right: 2px solid var(--fee-muted); border-bottom: 2px solid var(--fee-muted);
  transform: rotate(-45deg); margin: 0 .1rem 0 .05rem; transition: transform .12s ease;
}
.lead-row.is-expanded .lead-chevron { transform: rotate(45deg); }
.lead-id { min-width: 0; overflow: hidden; }
.lead-email-line {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%;
  font-size: 13.5px; font-weight: 600;
}
.app-table--leads .lead-row > td { height: 42px; vertical-align: middle; }
.app-table--leads .badge {
  font-size: 12px;
  padding: .14rem .42rem;
  line-height: 1.2;
}
.app-table--leads td.col-mail,
.app-table--leads td.col-verify {
  padding-left: .55rem;
  padding-right: .55rem;
}
.app-table--leads .lead-email-line {
  font-size: 13.5px;
  line-height: 1.3;
}
.app-table--leads td.col-provider-mx .stack-cell--mx span,
.app-table--leads td.col-provider-mx .mx-primary-host {
  font-size: 12px;
  line-height: 1.25;
  color: color-mix(in srgb, var(--fee-muted) 92%, var(--fee-ink));
}
.lead-row.is-expanded { background: color-mix(in srgb, var(--fee-brand-light) 45%, #fff); }
/* Detail panels live in [data-lead-detail-store] and move into the shared drawer. */
[data-lead-detail-store] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
html[data-theme="dark"] .lead-row.is-expanded {
  background: color-mix(in srgb, var(--fee-brand-light) 40%, var(--fee-surface));
}

/* Business details drawer */
.biz-drawer {
  position: fixed;
  inset: 0;
  z-index: 80;
  pointer-events: none;
}
.biz-drawer.is-open { pointer-events: auto; }
.biz-drawer[hidden] { display: none !important; }
.biz-drawer-backdrop {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, #0f172a 42%, transparent);
}
.biz-drawer-shell {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(680px, 100vw);
  max-width: 100vw;
  background: var(--fee-surface, #fff);
  border-left: 1px solid var(--fee-border);
  box-shadow: -12px 0 40px color-mix(in srgb, #0f172a 18%, transparent);
  display: flex;
  flex-direction: column;
  outline: none;
}
.biz-drawer-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
  overflow: hidden;
}
.biz-drawer-body .lead-detail-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
  padding: 0;
  border-top: 0;
  padding-left: 0;
}
.biz-drawer-sticky-header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  padding: 1rem 1.1rem .85rem;
  background: color-mix(in srgb, var(--fee-surface) 92%, var(--fee-wash));
  border-bottom: 1px solid var(--fee-border);
}
.biz-drawer-title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--fee-ink);
}
.biz-drawer-subtitle {
  margin: .2rem 0 0;
  font-size: 13px;
  line-height: 1.35;
}
.biz-drawer-status-row {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .45rem;
}
.biz-drawer-close {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--fee-border);
  border-radius: 8px;
  background: var(--fee-surface);
  color: var(--fee-ink);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}
.biz-drawer-close:hover { background: var(--fee-surface-hover); }
.biz-drawer-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: .25rem;
  padding: .45rem .85rem;
  border-bottom: 1px solid var(--fee-border);
  background: var(--fee-surface);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.biz-drawer-tab {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: var(--fee-muted);
  font-size: 13px;
  font-weight: 600;
  padding: .4rem .65rem;
  border-radius: 7px;
  cursor: pointer;
  white-space: nowrap;
}
.biz-drawer-tab:hover { background: var(--fee-surface-hover); color: var(--fee-ink); }
.biz-drawer-tab.is-active {
  background: color-mix(in srgb, var(--fee-brand-light) 70%, #fff);
  color: var(--fee-ink);
}
.biz-drawer-pane[hidden] { display: none !important; }
.biz-drawer-scroll {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: .9rem 1.1rem 1.25rem;
  display: grid;
  gap: 1rem;
  align-content: start;
}
.biz-drawer-scroll .lead-detail-section h3 { margin-top: 0; }
.biz-drawer-body .lead-detail-footer {
  position: sticky;
  bottom: 0;
  margin-top: .25rem;
  padding: .75rem 1rem calc(.85rem + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(to top, var(--fee-surface) 70%, transparent);
  border-top: 1px solid var(--fee-table-line);
}
.biz-drawer-body .lead-detail-footer-primary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem .6rem;
}
.biz-drawer-body .lead-detail-footer .btn {
  min-height: 36px;
  padding: .45rem .9rem;
  font-size: 13.5px;
}
.biz-drawer-scroll {
  padding-bottom: 1.75rem;
}
.lead-drawer-section-title {
  margin: 0 0 .45rem;
  font-size: 15px;
  font-weight: 700;
  color: var(--fee-text);
}
.biz-drawer-scroll .lead-detail-section dl dd,
.biz-drawer-scroll .lead-detail-section a,
.biz-drawer-scroll .maps-email-compact-main strong,
.biz-drawer-scroll .lead-company-name,
.biz-drawer-scroll .lead-found-url a,
.biz-drawer-scroll .lead-email-actions > strong,
.biz-drawer-scroll .lead-contact-name strong {
  font-size: 15px;
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.biz-drawer-scroll .lead-detail-section dt {
  font-size: 12.5px;
}
.biz-drawer-scroll .lead-detail-section dl > div {
  grid-template-columns: 7rem minmax(0, 1fr);
  gap: .35rem .65rem;
}
.biz-drawer-scroll .mono,
.biz-drawer-scroll .lead-mx-table .mono {
  font-size: 12.5px;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
}
.biz-drawer-title { font-size: 1.15rem; }
.biz-drawer-subtitle { font-size: 14px; }
.biz-drawer-body .lead-detail-footer {
  margin: 0 .35rem .35rem;
  border-radius: 10px;
  padding: .85rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px));
}
.biz-drawer-scroll .maps-email-compact-main strong {
  font-size: 14.5px;
}
html[data-theme="dark"] .biz-drawer-shell {
  background: var(--fee-surface);
  border-left-color: color-mix(in srgb, var(--fee-border) 80%, #000);
  box-shadow: -16px 0 48px rgba(0, 0, 0, .45);
}
html[data-theme="dark"] .biz-drawer-sticky-header {
  background: color-mix(in srgb, var(--fee-surface) 88%, #000);
}
html[data-theme="dark"] .biz-drawer-tab.is-active {
  background: color-mix(in srgb, var(--fee-brand) 28%, var(--fee-surface));
  color: var(--fee-text);
}
html[data-theme="dark"] .biz-drawer-scroll .lead-detail-section dd,
html[data-theme="dark"] .biz-drawer-scroll .maps-email-compact-main strong,
html[data-theme="dark"] .biz-drawer-title {
  color: var(--fee-text);
}
html[data-theme="dark"] .maps-email-compact-row {
  background: var(--fee-surface-elevated, var(--fee-surface));
  border-color: var(--fee-border);
}
html[data-theme="dark"] .biz-drawer-body .lead-detail-footer {
  background: linear-gradient(to top, var(--fee-surface) 78%, transparent);
  border-top-color: var(--fee-border);
}
.lead-tech-details--full,
.lead-secondary-disclosures--stack {
  display: block;
  width: 100%;
  max-width: 100%;
  grid-template-columns: 1fr;
}
.lead-tech-details--full .lead-mx-scroll {
  max-height: none;
  overflow-x: auto;
  overflow-y: visible;
}
.lead-tech-details--full .lead-mx-table {
  min-width: 0;
  width: 100%;
  table-layout: fixed;
  font-size: 13px;
}
.lead-tech-details--full .lead-mx-table .mono,
.lead-tech-details--full .lead-mx-table td:nth-child(2) {
  word-break: break-word;
  overflow-wrap: anywhere;
  white-space: normal;
}
.maps-email-compact-list { display: grid; gap: .4rem; }
.maps-email-compact-row {
  border: 1px solid var(--fee-border);
  border-radius: 8px;
  background: var(--fee-surface);
}
.maps-email-compact-row > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .5rem;
  padding: .55rem .65rem;
}
.maps-email-compact-row > summary::-webkit-details-marker { display: none; }
.maps-email-compact-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .3rem .4rem;
  min-width: 0;
}
.maps-email-compact-main strong {
  font-size: 13px;
  word-break: break-word;
}
.maps-email-compact-body {
  padding: 0 .65rem .65rem;
  border-top: 1px solid color-mix(in srgb, var(--fee-border) 80%, transparent);
}
.biz-org-list {
  list-style: none;
  margin: 0 0 .6rem;
  padding: 0;
  display: grid;
  gap: .45rem;
}
.biz-org-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .45rem .75rem;
  padding: .45rem .55rem;
  border: 1px solid var(--fee-border);
  border-radius: 8px;
}
.biz-org-list li > div { display: grid; gap: .1rem; min-width: 0; }
html.biz-drawer-open { overflow: hidden; }
@media (max-width: 720px) {
  .biz-drawer-shell { width: 100vw; border-left: 0; }
}
@media (min-width: 1100px) {
  .biz-drawer-shell { width: min(720px, 42vw); }
}
html[data-theme="dark"] .lead-detail-section dd,
html[data-theme="dark"] .lead-contact-name,
html[data-theme="dark"] .lead-email-actions > strong {
  color: var(--fee-text);
}
html[data-theme="dark"] .lead-contact-email {
  color: var(--fee-text-secondary);
}
html[data-theme="dark"] .lead-copy-email {
  background: var(--fee-surface);
  color: var(--fee-text);
  border-color: var(--fee-border);
}
.lead-detail-panel {
  padding: 12px 16px 12px;
  /* Align Contact under Lead email (checkbox + cell pad + chevron). */
  padding-left: calc(40px + 12px + 14px);
  border-top: 1px solid var(--fee-table-line);
}
.lead-detail-panel--page {
  padding: 1rem 1.15rem 1.5rem;
  padding-left: 1.15rem;
  border: 1px solid var(--fee-border);
  border-radius: 12px;
  background: var(--fee-surface);
}
.lead-detail-panel--page .lead-detail-section { max-width: 48rem; }
.maps-email-page-list {
  list-style: none;
  margin: .5rem 0 0;
  padding: 0;
  display: grid;
  gap: .45rem;
}
.lead-detail-grid,
.lead-detail-grid--compact {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem 1.1rem;
  align-items: start;
}
.lead-detail-section h3 {
  margin: 0 0 .4rem; font-size: 12.5px; letter-spacing: .02em; text-transform: uppercase;
  color: color-mix(in srgb, var(--fee-muted) 70%, var(--fee-ink)); font-weight: 700; line-height: 1.3;
}
.lead-detail-section dl { margin: 0 0 .4rem; display: grid; gap: .35rem; }
.lead-detail-section dl > div {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  column-gap: .5rem;
  align-items: baseline;
}
.lead-detail-section dt { font-size: 12px; color: var(--fee-muted); margin: 0; line-height: 1.35; }
.lead-detail-section dd { margin: 0; font-size: 13px; color: var(--fee-ink); word-break: break-word; line-height: 1.4; font-weight: 500; }
.lead-detail-section .badge { font-size: 12px; padding: .16rem .45rem; }
.lead-email-actions { display: inline-flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.lead-email-actions > strong { font-size: 13.5px; font-weight: 650; line-height: 1.35; }
.lead-copy-email {
  border: 1px solid var(--fee-border); background: var(--fee-surface); color: var(--fee-ink);
  border-radius: 6px; height: 26px; padding: 0 .5rem; font-size: 12px; cursor: pointer;
  line-height: 1; white-space: nowrap;
}
.lead-copy-email:hover { background: var(--fee-surface-hover); }
.lead-copy-email.is-copied { border-color: var(--fee-teal); color: var(--fee-teal-dark); }
a.lead-compose-email {
  display: inline-flex; align-items: center; text-decoration: none; color: var(--fee-ink);
}
a.lead-compose-email:hover { text-decoration: none; }
a.lead-compose-email:focus-visible { outline: 2px solid var(--fee-teal); outline-offset: 2px; }
.lead-contact-identity {
  display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: .55rem; align-items: start;
  margin: 0 0 .45rem;
}
.lead-contact-avatar {
  width: 36px; height: 36px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--fee-wash); border: 1px solid var(--fee-border); color: var(--fee-teal-dark);
}
.lead-contact-avatar-icon { width: 18px; height: 18px; display: block; }
.lead-contact-name { font-size: 13px; font-weight: 650; line-height: 1.3; color: var(--fee-ink); margin: 0 0 .1rem; }
.lead-contact-email { font-weight: 500; color: var(--fee-muted); }
.lead-contact-company {
  font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--fee-ink); margin-top: .15rem;
}
.lead-domain-avatar {
  width: 36px; height: 36px; border-radius: 8px; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--fee-wash); border: 1px solid var(--fee-border);
}
.lead-domain-avatar-img,
.lead-company-logo {
  width: 36px; height: 36px; border-radius: 8px; object-fit: contain;
  background: var(--fee-wash); border: 0; display: block;
}
.lead-company-logo-fallback {
  width: 100%; height: 100%; min-width: 36px; min-height: 36px; border-radius: 8px; display: inline-flex;
  align-items: center; justify-content: center;
  background: var(--fee-wash); font-size: 12px; font-weight: 700; color: var(--fee-teal-dark);
}
.lead-company-identity {
  display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: .55rem; align-items: start;
  margin: 0;
}
.lead-company-name { font-size: 13px; font-weight: 650; line-height: 1.3; color: var(--fee-ink); }
.lead-company-site { font-size: 12px; color: var(--fee-muted); line-height: 1.3; }
.lead-company-site a { color: var(--fee-teal-dark); text-decoration: none; }
.lead-company-site a:hover { text-decoration: underline; }
.lead-company-desc {
  margin: .25rem 0 0; font-size: 12.5px; color: color-mix(in srgb, var(--fee-muted) 88%, var(--fee-ink)); line-height: 1.35;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
.lead-company-provenance { margin: .35rem 0 0; font-size: 11.5px; }
.lead-secondary-disclosures {
  display: grid; grid-template-columns: 1fr; gap: .55rem; margin-top: .55rem;
}
.lead-secondary-disclosures--stack { margin-top: 1rem; }
.lead-company-details,
.lead-tech-details {
  margin-top: 0; border: 1px solid color-mix(in srgb, var(--fee-teal) 18%, var(--fee-table-line));
  border-radius: 7px; background: color-mix(in srgb, var(--fee-teal) 6%, var(--fee-surface)); padding: 0;
  min-width: 0;
}
.lead-company-details > summary,
.lead-tech-details > summary {
  cursor: pointer; list-style: none; padding: .4rem .65rem; font-size: 12.5px; font-weight: 650;
  color: color-mix(in srgb, var(--fee-muted) 55%, var(--fee-ink)); line-height: 1.25;
}
.lead-company-details > summary::-webkit-details-marker,
.lead-tech-details > summary::-webkit-details-marker { display: none; }
.lead-company-details > summary::after,
.lead-tech-details > summary::after { content: " ▸"; font-weight: 700; color: var(--fee-teal-dark); }
.lead-company-details[open] > summary::after,
.lead-tech-details[open] > summary::after { content: " ▾"; }
.lead-company-details[open] > summary,
.lead-tech-details[open] > summary { border-bottom: 1px solid var(--fee-table-line); color: var(--fee-text); }
.lead-company-body,
.lead-tech-body { padding: .55rem .65rem .65rem; }
.lead-mx-scroll {
  max-height: 9.5rem; overflow: auto; border: 1px solid var(--fee-table-line); border-radius: 6px;
}
.lead-mx-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.lead-mx-table th, .lead-mx-table td { padding: .28rem .45rem; text-align: left; border-bottom: 1px solid var(--fee-table-line); }
.lead-mx-table th { background: var(--fee-wash); font-weight: 650; position: sticky; top: 0; }
.lead-verify-inline { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .55rem; }
.lead-verify-btn {
  background: var(--fee-teal) !important;
  border-color: var(--fee-teal) !important;
  color: #fff !important;
}
.lead-verify-btn.secondary {
  background: color-mix(in srgb, var(--fee-teal) 14%, #fff) !important;
  border-color: color-mix(in srgb, var(--fee-teal) 55%, var(--fee-border)) !important;
  color: var(--fee-teal-dark) !important;
}
.lead-verify-btn.is-busy { opacity: .75; cursor: wait; }
.lead-verify-spin {
  display: inline-block; width: .7rem; height: .7rem; border: 2px solid currentColor;
  border-right-color: transparent; border-radius: 50%; animation: fee-spin .7s linear infinite;
  vertical-align: -1px; margin-right: .25rem;
}
@keyframes fee-spin { to { transform: rotate(360deg); } }
.lead-not-charged { font-size: 12px; color: var(--fee-muted); }
.btn-collapse-details {
  border: 1px solid color-mix(in srgb, var(--fee-orange, #e67e22) 55%, var(--fee-border));
  background: color-mix(in srgb, var(--fee-orange, #e67e22) 14%, var(--fee-surface, #fff));
  color: color-mix(in srgb, var(--fee-orange, #e67e22) 75%, #1a1a1a);
  border-radius: 7px;
  min-height: 30px;
  height: 30px;
  padding: 0 .85rem;
  font-size: 12.5px;
  cursor: pointer;
  font-weight: 650;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.btn-collapse-details:hover {
  background: color-mix(in srgb, var(--fee-orange, #e67e22) 22%, var(--fee-surface, #fff));
}
.btn-collapse-details:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--fee-orange, #e67e22) 70%, transparent);
  outline-offset: 2px;
}
[data-theme="dark"] .btn-collapse-details,
html.dark .btn-collapse-details {
  background: color-mix(in srgb, var(--fee-orange, #e67e22) 18%, #1c1f24);
  color: #ffc48a;
  border-color: color-mix(in srgb, var(--fee-orange, #e67e22) 45%, #444);
}
.lead-detail-footer .btn.danger,
.lead-detail-footer .btn.danger.ghost,
button.btn.danger.ghost.btn-compact,
.app-dialog .btn.danger {
  background: #b42318 !important;
  border: 1px solid #912018 !important;
  color: #fff !important;
}
.lead-detail-footer .btn.danger:hover,
.lead-detail-footer .btn.danger.ghost:hover,
button.btn.danger.ghost.btn-compact:hover,
.app-dialog .btn.danger:hover {
  background: #912018 !important;
  color: #fff !important;
}
[data-theme="dark"] .lead-detail-footer .btn.danger,
[data-theme="dark"] .lead-detail-footer .btn.danger.ghost,
[data-theme="dark"] button.btn.danger.ghost.btn-compact,
[data-theme="dark"] .app-dialog .btn.danger,
html.dark .lead-detail-footer .btn.danger,
html.dark .lead-detail-footer .btn.danger.ghost,
html.dark button.btn.danger.ghost.btn-compact,
html.dark .app-dialog .btn.danger {
  background: #dc2626 !important;
  border-color: #b91c1c !important;
  color: #fff !important;
}
.app-row-menu .is-danger,
.app-row-menu button.is-danger {
  color: #b42318 !important;
  font-weight: 650;
}
[data-theme="dark"] .app-row-menu .is-danger,
[data-theme="dark"] .app-row-menu button.is-danger,
html.dark .app-row-menu .is-danger,
html.dark .app-row-menu button.is-danger {
  color: #fca5a5 !important;
}
.app-dialog.app-dialog--compact { width: min(420px, calc(100vw - 2rem)); max-width: 420px; }
.app-dialog.app-dialog--compact .project-picker,
.app-dialog.app-dialog--compact .project-picker-results,
.app-dialog.app-dialog--compact input,
.app-dialog.app-dialog--compact select {
  max-width: 100%; box-sizing: border-box;
}
.project-picker-results { max-width: 100%; overflow-x: hidden; }
.project-picker-results li span:first-child {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}
.lead-project-chips { display: flex; flex-wrap: wrap; gap: .2rem; }
.lead-chip {
  display: inline-flex; align-items: center; padding: .08rem .35rem; border-radius: 5px;
  border: 1px solid var(--fee-border); background: var(--fee-surface); font-size: 11.5px; color: inherit;
  text-decoration: none; line-height: 1.25;
}
.lead-chip:hover { background: var(--fee-surface-hover); text-decoration: none; }
.lead-chip--more { color: var(--fee-muted); }
.lead-flag-badge { margin-left: .3rem; font-size: 10.5px; vertical-align: middle; }
.lead-open-source { margin-left: .35rem; font-size: 11.5px; white-space: nowrap; }
.btn-compact { height: 26px; padding: 0 .5rem; font-size: 12px; line-height: 1; }
/* Lead inspector must stay denser than admin MX compact buttons (later .btn-compact resets). */
.lead-detail-panel .btn-compact,
.lead-detail-panel .btn.btn-compact {
  height: 26px;
  min-height: 26px;
  padding: 0 .5rem;
  font-size: 12px;
  line-height: 1;
}
.lead-detail-section .btn.btn-compact[data-open-dialog="add-to-list"] {
  height: 24px; min-height: 24px; padding: 0 .45rem; font-size: 11.5px; margin-top: .1rem;
}
.lead-tech-body { padding: .45rem .55rem .55rem; }
.lead-tech-signals { margin: 0 0 .4rem; display: grid; gap: .15rem; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.lead-tech-signals dt { font-size: 10.5px; color: var(--fee-muted); }
.lead-tech-signals dd { margin: 0; font-size: 12.5px; }
.lead-tech-mx-label { margin: 0 0 .2rem; font-size: 11.5px; font-weight: 600; color: var(--fee-muted); }
.lead-mx-table { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: .1rem; }
.lead-mx-table th, .lead-mx-table td { padding: .15rem .25rem; border-bottom: 1px solid var(--fee-table-line); text-align: left; height: auto; white-space: normal; }
.lead-mx-table .mono, .lead-detail-section .mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 11.5px; }
.mx-extra { display: none; }
.lead-found-url { overflow-wrap: anywhere; word-break: break-word; }
.lead-detail-footer {
  display: flex; justify-content: space-between; align-items: center; gap: .35rem; flex-wrap: wrap;
  margin-top: .25rem; padding-top: .25rem; border-top: 1px solid var(--fee-table-line);
}
.lead-detail-footer-primary { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; }
.lead-detail-inline-form { display: inline; margin: 0; }
.lead-mail-actions { margin-top: .1rem; }
.lead-verify-inline { display: inline-flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.app-row-menu-form { margin: 0; }
.app-row-menu hr { border: 0; border-top: 1px solid var(--fee-table-line); margin: .25rem 0; }
.app-row-menu-form button, .app-row-menu .is-danger { color: var(--fee-danger, #b42318); }
.app-project-filter-panel { display: grid; gap: .25rem; min-width: 14rem; }
.app-project-filter-choice {
  display: block; width: 100%; text-align: left; background: none; border: 0; padding: .35rem .45rem;
  border-radius: 6px; cursor: pointer; font: inherit; color: inherit;
}
.app-project-filter-choice:hover,
.app-project-filter-choice.is-active { background: var(--fee-surface-hover); }
.app-project-filter-search { width: 100%; max-width: none !important; min-width: 0 !important; flex: none !important; margin: .15rem 0; }
.app-project-filter-results {
  list-style: none; margin: 0; padding: 0; max-height: 180px; overflow: auto;
}
.app-project-filter-results li {
  padding: .35rem .45rem; cursor: pointer; display: flex; justify-content: space-between; gap: .4rem;
  border-radius: 6px;
}
.app-project-filter-results li:hover { background: var(--fee-surface-hover); }
.app-project-filter-clear { margin-top: .15rem; font-size: 12.5px; color: var(--fee-teal-dark); }
.project-picker { position: relative; }
.project-picker-input { width: 100%; }
.project-picker-results {
  position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 2px);
  max-height: 220px; overflow: auto; margin: 0; padding: .25rem 0; list-style: none;
  background: var(--fee-surface); border: 1px solid var(--fee-border); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.project-picker-results li {
  padding: .45rem .65rem; cursor: pointer; display: flex; justify-content: space-between; gap: .5rem;
}
.project-picker-results li:hover, .project-picker-results li[aria-selected=true] {
  background: var(--fee-surface-hover);
}
/* Keep Found on visible on common desktop widths; only collapse when space is truly tight.
   Extractor min-width (70rem) is set with the Actions/Found column rules above. */
@media (max-width: 1180px) {
  .app-table--leads:not(.app-table--maps) col.col-found,
  .app-table--leads:not(.app-table--maps) th.col-found,
  .app-table--leads:not(.app-table--maps) td.col-found { visibility: collapse; width: 0 !important; min-width: 0 !important; max-width: 0 !important; padding: 0 !important; border: 0 !important; }
}
@media (max-width: 1280px) {
  .lead-detail-grid,
  .lead-detail-grid--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-table--leads col.col-source,
  .app-table--leads th.col-source,
  .app-table--leads td.col-source { visibility: collapse; width: 0 !important; min-width: 0 !important; max-width: 0 !important; padding: 0 !important; border: 0 !important; }
}
@media (max-width: 1100px) {
  .app-table--leads col.col-saved,
  .app-table--leads th.col-saved,
  .app-table--leads td.col-saved { visibility: collapse; width: 0 !important; min-width: 0 !important; max-width: 0 !important; padding: 0 !important; border: 0 !important; }
}
@media (max-width: 1024px) {
  .lead-detail-grid,
  .lead-detail-grid--compact { grid-template-columns: 1fr; }
  .app-table--leads col.col-company,
  .app-table--leads th.col-company,
  .app-table--leads td.col-company { visibility: collapse; width: 0 !important; min-width: 0 !important; max-width: 0 !important; padding: 0 !important; border: 0 !important; }
}
@media (max-width: 900px) {
  .app-table--leads col.col-contact { width: 14rem; min-width: 14rem; max-width: 14rem; }
  .app-table.app-table--leads { width: min(100%, calc(40px + 14rem + 8.75rem + 8rem + 52px)); min-width: 0; }
  .app-table--leads col.col-provider-mx,
  .app-table--leads th.col-provider-mx,
  .app-table--leads td.col-provider-mx { visibility: collapse; width: 0 !important; min-width: 0 !important; max-width: 0 !important; padding: 0 !important; border: 0 !important; }
}
.app-project-filter-choice.is-active { background: var(--fee-surface-hover); }
.app-project-filter-search { width: 100%; max-width: none !important; min-width: 0 !important; flex: none !important; margin: .15rem 0; }
.app-project-filter-results {
  list-style: none; margin: 0; padding: 0; max-height: 180px; overflow: auto;
}
.app-project-filter-results li {
  padding: .35rem .45rem; cursor: pointer; display: flex; justify-content: space-between; gap: .4rem;
  border-radius: 6px;
}
.app-project-filter-results li:hover { background: var(--fee-surface-hover); }
.app-project-filter-clear { margin-top: .15rem; font-size: 12.5px; color: var(--fee-teal-dark); }
.project-picker { position: relative; }
.project-picker-input { width: 100%; }
.project-picker-results {
  position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 2px);
  max-height: 220px; overflow: auto; margin: 0; padding: .25rem 0; list-style: none;
  background: var(--fee-surface); border: 1px solid var(--fee-border); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.project-picker-results li {
  padding: .45rem .65rem; cursor: pointer; display: flex; justify-content: space-between; gap: .5rem;
}
.project-picker-results li:hover, .project-picker-results li[aria-selected=true] {
  background: var(--fee-surface-hover);
}
/* "More filters": inline toggle at the end of the primary row; when open it drops to its own full-width row. */
.app-filters > details.app-filters-more { flex: 0 0 auto; min-width: 0; }
.app-filters > details.app-filters-more[open] { flex-basis: 100%; }
.app-filters-more-toggle { list-style: none; display: inline-flex; align-items: center; gap: .4rem; height: var(--fee-control-h); padding: 0 .7rem; border: 1px solid var(--fee-border); border-radius: var(--fee-radius-sm); background: var(--fee-surface); color: var(--fee-text); cursor: pointer; white-space: nowrap; font-size: .9rem; user-select: none; }
.app-filters-more-toggle::-webkit-details-marker { display: none; }
.app-filters-more-toggle::before { content: "▸"; font-size: .8em; color: var(--fee-muted); }
.app-filters-more[open] > .app-filters-more-toggle::before { content: "▾"; }
.app-filters-more-toggle:focus-visible { outline: 2px solid var(--fee-teal); outline-offset: 2px; }
.app-filters-more-count { min-width: 1.25rem; padding: 0 .35rem; border-radius: 999px; background: var(--fee-teal); color: #fff; font-size: .72rem; font-weight: 700; line-height: 1.25rem; text-align: center; }
.app-filters-more-panel { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; width: 100%; box-sizing: border-box; margin-top: .45rem; padding: .55rem .6rem; border: 1px solid var(--fee-border); border-radius: 8px; background: var(--fee-surface-muted, #f6f8f7); }
.app-provider-apply { margin: .35rem 0 0; }
.app-provider-apply .btn { width: 100%; }
.app-filter-chips { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin: -.3rem 0 .75rem; font-size: .82rem; }
.app-filter-chip { display: inline-flex; align-items: center; gap: .3rem; max-width: 22rem; padding: .15rem .6rem; border-radius: 999px; border: 1px solid var(--fee-border); background: var(--fee-surface); color: var(--fee-text); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.app-filter-chip:hover { border-color: var(--fee-teal); text-decoration: none; }
.app-filter-chip-label { color: var(--fee-muted); }
.app-filter-chip-x { font-weight: 700; color: var(--fee-muted); }
.app-filter-chips-clear { margin-left: .25rem; color: var(--fee-teal); font-weight: 600; }
.app-multi { position: relative; flex: 1 1 6.5rem; min-width: 0; max-width: 9rem; }
.app-multi[data-provider-multi] { flex: 1 1 7rem; min-width: 0; max-width: 8.5rem; }
.app-multi > summary { list-style: none; height: var(--fee-control-h); display: flex; align-items: center; padding: 0 .55rem; border: 1px solid var(--fee-border); border-radius: var(--fee-radius-sm); background: var(--fee-surface); color: var(--fee-text); cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-multi > summary::-webkit-details-marker { display: none; }
.app-multi-panel { position: absolute; z-index: 24; top: calc(100% + 4px); left: 0; min-width: 100%; width: max(100%, 16rem); max-height: 18rem; overflow: auto; background: var(--fee-surface); color: var(--fee-text); border: 1px solid var(--fee-border); border-radius: 8px; box-shadow: var(--fee-shadow-md); padding: .35rem; }
.app-multi[data-provider-multi] .app-multi-panel { width: min(18rem, calc(100vw - 1.5rem)); max-width: calc(100vw - 1rem); box-sizing: border-box; }
.app-multi[data-provider-multi] > summary:focus-visible,
.app-multi[data-provider-multi] .app-provider-search:focus-visible { outline: 2px solid var(--fee-teal); outline-offset: 2px; }
.app-provider-search { width: 100%; max-width: none !important; min-width: 0 !important; flex: none !important; margin: .15rem 0 .3rem; box-sizing: border-box; }
.app-multi[data-provider-multi] [data-provider-option] { min-width: 0; }
.app-multi[data-provider-multi] [data-provider-option][hidden] { display: none !important; }
.app-multi[data-provider-multi] [data-provider-option]:focus-within { outline: 2px solid var(--fee-teal); outline-offset: 1px; }
.app-provider-option-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.app-provider-option-count { flex: none; font-variant-numeric: tabular-nums; color: var(--fee-muted); }
.app-provider-empty { margin: .35rem .4rem; font-size: 13px; color: var(--fee-muted); }
.app-multi-panel label { display: flex; gap: .45rem; align-items: center; padding: .22rem .4rem; font-size: 13px; cursor: pointer; white-space: nowrap; }
.app-multi-panel input[type=checkbox],
.app-multi-panel input[type=radio] {
  width: 14px;
  height: 14px;
  min-width: 14px;
  max-width: 14px;
  flex: none;
  margin: 0;
  accent-color: var(--fee-brand);
}
.app-date-custom { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .55rem; margin: .35rem .4rem .15rem; padding-top: .45rem; border-top: 1px solid var(--fee-line); }
.app-date-custom label { display: flex; flex-direction: row; align-items: center; gap: .35rem; padding: 0; font-size: 12px; color: var(--fee-muted); font-weight: 600; white-space: nowrap; }
.app-date-custom input[type=date] { max-width: 9.75rem; min-width: 8.5rem; width: 9.75rem; height: 32px; }
.app-date-custom .btn { height: 32px; padding: 0 .7rem; }
.app-dialog label { display: block; margin: .65rem 0 .25rem; font-size: 13px; font-weight: 600; }
.app-dialog select, .app-dialog input[type=text], .app-dialog input:not([type]) { width: 100%; }
.app-table-card { background: var(--fee-surface); border: 1px solid var(--fee-border); border-radius: 10px; overflow: hidden; max-width: 100%; min-width: 0; }
.app-table-wrap { overflow-x: auto; overflow-y: visible; max-width: 100%; min-width: 0; }
.app-table { width: 100%; border-collapse: collapse; font-size: 14px; table-layout: fixed; min-width: 0; }
.app-table th, .app-table td { text-align: left; padding: 0 12px; height: 44px; border-bottom: 1px solid var(--fee-table-line); white-space: nowrap; vertical-align: middle; color: var(--fee-text); }
.app-table--leads th, .app-table--leads td { height: 42px; padding: 0 10px; }
.app-table th { height: 40px; background: var(--fee-table-head); color: var(--fee-muted); font-size: 12.5px; font-weight: 600; }
.app-table--leads th { height: 38px; }
.app-table tbody tr:hover { background: var(--fee-table-hover); }
.app-table tbody tr[data-row-href] { cursor: pointer; }
.app-check { width: 36px; }
.app-person { display: flex; flex-direction: row; align-items: center; gap: .5rem; min-width: 0; white-space: normal; }
.app-person > div { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.app-person strong { font-weight: 650; overflow: hidden; text-overflow: ellipsis; }
.app-person span { color: var(--fee-muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; }
.app-contact-icon { width: 16px; height: 16px; flex: 0 0 16px; display: block; color: var(--fee-teal-dark); opacity: .88; }
.app-table th.col-actions, .app-table td.col-actions { width: 5.75rem; min-width: 5.75rem; max-width: 5.75rem; text-align: center; overflow: visible; }
.app-check-label { display: flex; align-items: center; gap: .45rem; margin: .75rem 0 0; font-size: 13px; font-weight: 550; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.app-pagination { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem 14px; border-top: 1px solid var(--fee-line); }
.app-pagination-range { margin: 0; color: var(--fee-muted); font-size: 13px; }
.app-pagination-controls { display: flex; align-items: center; gap: .45rem; }
.app-page-btn { display: inline-flex; align-items: center; padding: .25rem .55rem; border: 1px solid var(--fee-border); border-radius: 6px; background: var(--fee-surface); color: inherit; text-decoration: none; }
.app-page-btn:hover { text-decoration: none; background: var(--fee-surface-hover); }
.app-page-btn.is-disabled { opacity: .45; pointer-events: none; }
.app-empty { background: var(--fee-surface); border: 1px dashed var(--fee-border); border-radius: 10px; padding: 1.1rem 1.25rem; text-align: left; max-width: 36rem; }
.app-empty h2 { margin: 0 0 .4rem; font-size: 18px; }
.app-empty p { margin: 0 auto 1rem; max-width: 28rem; color: var(--fee-muted); }
.app-empty-actions { display: flex; justify-content: center; gap: .5rem; flex-wrap: wrap; }
.app-bulk { display: flex; align-items: center; gap: .6rem; padding: .65rem 14px; background: var(--fee-bulk-bg); border-bottom: 1px solid var(--fee-border); }
.app-bulk[hidden] { display: none !important; }
.app-banner { background: #3a2a14; border: 1px solid #6a4e22; border-radius: 8px; padding: .65rem .8rem; color: var(--fee-warning); }
html[data-theme="light"] .app-banner { background: #fff3e0; border-color: #f0d9b5; color: var(--fee-text); }
.app-toast { position: fixed; right: 1.2rem; bottom: 1.2rem; background: #1a2421; color: #fff; padding: .55rem .8rem; border-radius: 8px; z-index: 40; }
.app-toast.is-error { background: #9b2c2c; }
.app-toast.is-gone { opacity: 0; transition: opacity .4s; }
.app-row-menu { position: relative; }
.app-row-menu summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  min-height: 2rem;
  padding: 0 .4rem;
  border: 1px solid var(--fee-border);
  border-radius: 6px;
  background: var(--fee-surface);
  color: var(--fee-ink);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1;
}
.app-row-menu summary:hover { background: var(--fee-surface-hover); border-color: var(--fee-teal-dark); color: var(--fee-teal-dark); }
.app-row-menu summary:focus-visible { outline: 2px solid var(--fee-teal); outline-offset: 2px; }
.app-row-menu summary::-webkit-details-marker { display: none; }
.app-row-menu div { position: absolute; right: 0; top: 120%; background: var(--fee-surface); color: var(--fee-text); border: 1px solid var(--fee-border); border-radius: 8px; min-width: 11.5rem; padding: .35rem .15rem; z-index: 30; box-shadow: var(--fee-shadow-md); box-sizing: border-box; }
.app-row-menu.is-placed > div { position: fixed; right: auto; top: auto; bottom: auto; overflow-y: auto; }
.app-row-menu.is-opening-up > div { transform-origin: bottom right; }
.app-row-menu button, .app-row-menu a { display: block; width: 100%; text-align: left; background: none; border: 0; padding: .45rem .95rem .45rem .75rem; color: inherit; text-decoration: none; cursor: pointer; box-sizing: border-box; }
.app-row-menu .is-danger { color: var(--fee-danger); }
.app-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; }
.app-plan-list { margin: .4rem 0 0; padding-left: 1.1rem; color: var(--fee-muted, #4a5a55); }
.app-next-plan { margin: 12px 0; padding-top: 12px; border-top: 1px solid var(--fee-line); }
.app-empty { max-width: 36rem; padding: 1.1rem 1.25rem; }
.app-price { font-size: 1.25rem; font-weight: 650; margin: 0 0 .35rem; }
.app-price span { font-size: .9rem; font-weight: 500; color: var(--fee-muted); }
.app-dialog-actions { display: flex; gap: .4rem; margin: .9rem 0 0; }
.admin-grant-dialog { width: min(520px, calc(100vw - 2rem)); }
.admin-grant-option { display: block; font-weight: 400; margin: .3rem 0; cursor: pointer; }
.admin-grant-option input[type="radio"] { margin-right: .4rem; }
/* Icon-sized hint only — Leads/Maps Actions col rules own the real width (header “Actions”). */
.app-actions-cell { width: auto; }
.app-table:not(.app-table--leads):not(.app-table--maps) .app-actions-cell { width: 2.5rem; }
@media (max-width: 1200px) {
  .app-filters { flex-wrap: wrap; }
  .app-filters select.page-size-select { margin-left: 0; }
  .app-filters-actions { margin-left: 0; width: 100%; }
}
@media (max-width: 640px) {
  .app-filters input:not([type=checkbox]):not([type=radio]), .app-filters select {
    min-width: 0;
    max-width: none;
    flex: 1 1 calc(50% - .3rem);
  }
  .app-filters select.page-size-select { flex: 1 1 calc(50% - .3rem); max-width: none; }
  .app-filters input[name=q] { flex: 1 1 100%; max-width: none; min-width: 0; }
  .app-filters .filter-lock { flex: 1 1 calc(50% - .3rem); }
  .app-filters-actions { width: 100%; margin-left: 0; }
  .app-filters-actions .btn,
  .app-filters-actions .btn.ghost,
  .app-filters-actions .btn.secondary { flex: 1 1 auto; }
}
@media (max-width: 1100px) {
  .app-workspace { display: block; }
}
.admin-contacts { width: 100%; table-layout: fixed; }
.admin-contacts .identity { min-width: 0; max-width: 100%; }
.admin-contacts .identity-name,
.admin-contacts .identity-email { overflow: hidden; text-overflow: ellipsis; }
.admin-contacts th, .admin-contacts td { overflow: hidden; text-overflow: ellipsis; }
.admin-contacts .col-contact { width: 16%; }
.admin-contacts .col-account { width: 13%; }
.admin-contacts .col-projects { width: 8%; }
.admin-contacts .col-class { width: 8%; }
.admin-contacts .col-mail { width: 8%; }
.admin-contacts .col-provider-mx { width: 22%; white-space: normal; overflow: hidden; }
.admin-contacts .col-found { width: 14%; }
.admin-contacts .col-updated { width: 9.5rem; min-width: 9.5rem; white-space: nowrap; overflow: visible; text-overflow: clip; font-variant-numeric: tabular-nums; }
.admin-contacts .col-actions { width: 2.75rem; overflow: visible; }
.identity { display:flex; flex-direction:column; gap:1px; min-width: 0; }
.identity-name { font-weight: 650; color: inherit; }
.identity-email { color: var(--fee-muted); font-size: 12px; }
table.data th.num, table.data td.num { text-align: right; font-variant-numeric: tabular-nums; }
/*
 * Users table geometry (table-layout: fixed + explicit % via colgroup):
 * Prior overcorrection left .col-user without a width so it absorbed all
 * remainder (~50–65% on wide viewports). Use balanced percentages so User
 * stays ~18–22% while compact columns keep readable rem floors via min-width.
 */
/*
 * Column shares MUST sum to exactly 100% — a previous set summed to 107%, so the browser
 * rescaled every column and Role / Last active truncated at 1366px. The rem floor lets
 * narrow viewports scroll inside .table-wrap instead of squeezing badges and dates.
 * User is the only column designed to ellipsize, so it absorbs the squeeze; every other
 * column is sized to its widest fixed content at the 62.5rem (1000px) floor:
 * Role "SUPER ADMIN" badge ≈97px, Last active "13 Oct 2026, 18:56" ≈140px, Created ≈97px.
 * Shares (×100): 13 + 10 + 11 + 11 + 6 + 6 + 5 + 7 + 14.5 + 10 + 6.5 = 100.
 */
table.data.users-table { table-layout: fixed; width: 100%; min-width: 62.5rem; }
table.data.users-table col.users-col-user { width: 13%; }
table.data.users-table col.users-col-role { width: 10%; }
table.data.users-table col.users-col-plan { width: 5%; }
table.data.users-table col.users-col-access { width: 11%; }
table.data.users-table col.users-col-status { width: 6%; }
table.data.users-table col.users-col-projects { width: 6%; }
table.data.users-table col.users-col-leads { width: 5%; }
/* Devices renders "0 / 3" (~30px) on one line: 7% is ≥70px at the floor. */
table.data.users-table col.users-col-devices { width: 7%; }
table.data.users-table col.users-col-last-active { width: 14.5%; }
table.data.users-table col.users-col-created { width: 10%; }
table.data.users-table col.users-col-actions { width: 6.5%; }
table.data.users-table .col-user {
  min-width: 12rem;
  max-width: 22rem;
}
table.data.users-table .col-role {
  white-space: nowrap;
  padding-left: .35rem;
  padding-right: .35rem;
}
table.data.users-table .col-plan {
  white-space: nowrap;
  padding-left: .35rem;
  padding-right: .35rem;
}
table.data.users-table .col-access {
  white-space: nowrap;
  padding-left: .35rem;
  padding-right: .35rem;
}
table.data.users-table .col-status {
  white-space: nowrap;
  padding-left: .35rem;
  padding-right: .35rem;
}
/*
 * Owner decision 2026-10-13: every users-table column is left aligned, including counts.
 * These cells therefore must NOT carry the canonical `.num` class — `table.data .num`
 * is `text-align: right !important` by contract (see the alignment system below), and
 * an opposing rule here would silently lose to it.
 */
table.data.users-table th.col-projects,
table.data.users-table th.col-leads,
table.data.users-table th.col-devices,
table.data.users-table td.col-projects,
table.data.users-table td.col-leads,
table.data.users-table td.col-devices {
  text-align: left;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
table.data.users-table th.col-projects a,
table.data.users-table th.col-leads a,
table.data.users-table th.col-devices a {
  display: block;
  width: 100%;
  text-align: left;
}
table.data.users-table .col-last-active,
table.data.users-table .col-created {
  white-space: nowrap;
}
table.data.users-table td.col-user {
  white-space: normal;
  overflow: hidden;
  text-overflow: clip;
}
table.data.users-table td.col-user .identity-name,
table.data.users-table td.col-user .identity-email {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
table.data.users-table th.col-actions,
table.data.users-table td.col-actions {
  overflow: visible;
  text-overflow: clip;
  text-align: center;
  padding-left: .25rem;
  padding-right: .25rem;
}
table.data.users-table .role-badge {
  max-width: 100%;
  box-sizing: border-box;
  display: inline-block;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}

@media (min-width: 1440px) {
  .table-wrap--users {
    overflow-x: visible;
  }
}

/* Devices admin: filters left, compact purge block right (same toolbar row) */
.devices-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: .75rem 1.25rem;
  margin-bottom: .85rem;
}
.devices-toolbar__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .65rem .85rem;
  min-width: 0;
  margin: 0;
}
.devices-toolbar__purge {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .28rem;
  width: max-content;
  max-width: 100%;
  flex: 0 0 auto;
  margin: 0 0 0 auto;
  box-sizing: border-box;
}
.devices-toolbar__purge-meta {
  margin: 0;
  font-size: 12px;
  font-weight: 650;
  color: var(--fee-muted);
  white-space: nowrap;
  text-align: right;
  line-height: 1.2;
}
.devices-toolbar__purge .btn { align-self: flex-end; }
.devices-toolbar__purge .btn[disabled] { opacity: .55; cursor: not-allowed; }
.devices-toolbar__purge details.pp-popover > .pp-popover-body { width: 24rem; }
.devices-toolbar__purge-confirm { display: flex; gap: .5rem; align-items: flex-start; margin: .6rem 0 0; font-size: 13px; }
.devices-toolbar__purge-confirm input { width: auto; margin: .15rem 0 0; }
@media (max-width: 700px) {
  .devices-toolbar__purge { align-items: flex-start; margin-left: 0; }
  .devices-toolbar__purge-meta { text-align: left; white-space: normal; }
  .devices-toolbar__purge details.pp-popover > .pp-popover-body { right: auto; left: 0; }
}

/* Shared admin filter fields: label above control, actions baseline with controls */
.filterbar--fields,
.analytics-filters.filterbar--fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .65rem .85rem;
}
.filter-field {
  display: flex;
  flex-direction: column;
  gap: .28rem;
  min-width: 0;
}
.filter-field > label,
.filter-field > .filter-field-label {
  display: block;
  margin: 0;
  font-size: 12px;
  font-weight: 650;
  color: var(--fee-muted);
  line-height: 1.2;
  white-space: nowrap;
}
.filter-field > input,
.filter-field > select {
  margin: 0;
  min-height: 2.25rem;
  max-width: 12.5rem;
}
.filter-field--grow > input,
.filter-field--grow > select { max-width: 16rem; }
.filter-field--action {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  gap: .45rem;
  padding-bottom: 0;
}
.filter-field--action > label { display: none; }
.analytics-filters.filterbar--fields.card {
  flex-wrap: wrap;
  align-items: flex-end;
  overflow: visible;
}
.analytics-filters.filterbar--fields .filter-field > select,
.analytics-filters.filterbar--fields .filter-field > input[type=date] {
  width: auto;
  min-width: 9.5rem;
  max-width: 12.5rem;
}
.row-menu { position: relative; }
.row-menu-toggle { background: var(--fee-surface); border:1px solid var(--fee-line); border-radius:6px; width:2rem; height:2rem; cursor:pointer; color: var(--fee-text); }
.row-menu-drop { position:absolute; right:0; top:120%; background: var(--fee-surface); color: var(--fee-text); border:1px solid var(--fee-line); border-radius:8px; min-width:180px; padding:.3rem; z-index:30; box-shadow: var(--fee-shadow-md); }
.row-menu-drop.is-fixed { position: fixed; right: auto; z-index: 80; max-height: min(70vh, 24rem); overflow: auto; }
table.data th.col-actions, table.data td.col-actions { width: 4.25rem; overflow: visible; text-overflow: clip; }
.row-menu-drop a, .row-menu-drop button { display:block; width:100%; text-align:left; background:none; border:0; padding:.4rem .5rem; cursor:pointer; color:inherit; font:inherit; }
.account-drop-head { padding:.35rem .5rem .55rem; border-bottom:1px solid var(--fee-line); margin-bottom:.25rem; display:flex; flex-direction:column; }
tr[data-row-href] { cursor: pointer; }
.audit-meta { font-size:11px; white-space:pre-wrap; max-width: 28rem; }
@media (max-width: 900px) {
  .fee-shell { grid-template-columns: 1fr; }
  .app-shell { grid-template-columns: 1fr; }
  .app-sidebar { min-height: auto; position: relative; height: auto; max-height: none; overflow: visible; }
  .app-nav { display: none; }
  .app-sidebar.is-open .app-nav { display: flex; }
  .app-nav-toggle { display: inline-flex; align-self: flex-start; margin-bottom: .6rem; background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.2); border-radius: 6px; padding: .25rem .55rem; }
  .app-summary { grid-template-columns: 1fr; }
  .app-plans { grid-template-columns: 1fr; }
  .checkout-page { grid-template-columns: 1fr; padding: 1rem 1rem 2rem; }
  .checkout-brand { order: 0; }
  .checkout-sales { order: 1; }
  .checkout-pay { order: 2; }
  .checkout-page.is-confirmed .checkout-pay { order: 1; }
  .checkout-page.is-confirmed .checkout-sales { order: 2; }
  .app-content { padding: 18px 16px 32px; }
}
.dash-home { display: grid; gap: 1.15rem; }
.dash-home .app-page-header { margin-bottom: 0; }
.metric-card {
  position: relative;
  background: var(--fee-surface-elevated, var(--fee-surface));
  border: 1px solid var(--fee-border);
  border-radius: var(--dash-card-radius, var(--fee-radius-md));
  padding: 1rem 1.1rem 1.05rem;
  box-shadow: var(--dash-card-shadow, var(--fee-shadow-sm));
  overflow: hidden;
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.metric-card--accent::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--dash-card-accent, var(--fee-brand));
  border-radius: 3px 0 0 3px;
}
.metric-card--accent:hover {
  box-shadow: var(--dash-card-shadow-hover, var(--fee-shadow-md));
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--dash-card-accent, var(--fee-brand)) 35%, var(--fee-border));
}
@media (prefers-reduced-motion: reduce) {
  .metric-card { transition: none; }
  .metric-card--accent:hover { transform: none; }
}
.metric-card-top {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin: 0 0 .55rem;
  min-width: 0;
}
.metric-card-icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 10px;
  color: var(--dash-card-accent, var(--fee-brand));
  background: var(--dash-card-soft, var(--fee-brand-light));
}
.metric-card-icon .dash-icon { width: 1.15rem; height: 1.15rem; }
.metric-card-kicker {
  display: block;
  margin: 0;
  font-size: var(--fee-fs-meta);
  line-height: var(--fee-lh-meta);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--fee-text-secondary, var(--fee-muted));
  min-width: 0;
}
.metric-card b { display: block; font-size: 1.75rem; font-weight: 750; letter-spacing: -.02em; line-height: 1.15; color: var(--fee-text); }
.metric-card-desc, .metric-card > span:not(.metric-card-kicker):not(.metric-card-icon) {
  color: var(--fee-text-secondary, var(--fee-muted));
  font-size: var(--fee-fs-compact);
  line-height: var(--fee-lh-compact);
  display: block;
  margin: .25rem 0 .55rem;
  font-weight: 500;
}
.metric-card-meta {
  margin: 0 0 .65rem;
  color: var(--fee-muted);
  font-size: var(--fee-fs-meta);
  line-height: var(--fee-lh-meta);
}
.metric-card .btn { margin-top: .15rem; align-self: flex-start; }
.metric-card--compact {
  display: flex;
  flex-direction: column;
  min-height: 9.5rem;
  padding: 1rem 1.05rem 1.05rem;
}
.metric-card--compact > b {
  font-size: 1.75rem;
  margin-top: .1rem;
  letter-spacing: -.03em;
}
.metric-card--compact .metric-card-desc { margin: .3rem 0 .5rem; }
.metric-card--compact .metric-card-meta { margin: 0 0 .5rem; }
.metric-card--compact .dash-growth { margin: .2rem 0 .4rem; flex: 1 1 auto; }
.metric-card--compact .dash-kv { margin: .35rem 0 .5rem; flex: 1 1 auto; }
.metric-card--compact .dash-providers { margin: .35rem 0 .5rem; flex: 1 1 auto; }
.metric-card--compact .btn { margin-top: auto; }
.metric-card--plan > b {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.25;
}
.metric-card--emphasis {
  background:
    linear-gradient(165deg, var(--dash-card-soft, transparent) 0%, transparent 55%),
    var(--fee-surface-elevated, var(--fee-surface));
  box-shadow: var(--dash-card-shadow, var(--fee-shadow-sm));
  min-height: 9.75rem;
}
.metric-card--emphasis > b { font-size: 1.9rem; }
.metric-card--emphasis.metric-card--plan > b { font-size: 1.15rem; }
.dash-grid--home {
  align-items: stretch;
}
.dash-grid--home .metric-card {
  height: 100%;
  min-height: 10.25rem;
}
.metric-card--leads { --dash-card-accent: var(--dash-leads); --dash-card-soft: var(--dash-leads-soft); }
.metric-card--projects { --dash-card-accent: var(--dash-projects); --dash-card-soft: var(--dash-projects-soft); }
.metric-card--verify { --dash-card-accent: var(--dash-verify); --dash-card-soft: var(--dash-verify-soft); }
.metric-card--plan { --dash-card-accent: var(--dash-plan); --dash-card-soft: var(--dash-plan-soft); }
.metric-card--maps-businesses { --dash-card-accent: var(--dash-maps-businesses); --dash-card-soft: var(--dash-maps-businesses-soft); }
.metric-card--maps-websites { --dash-card-accent: var(--dash-maps-websites); --dash-card-soft: var(--dash-maps-websites-soft); }
.metric-card--maps-email { --dash-card-accent: var(--dash-maps-email); --dash-card-soft: var(--dash-maps-email-soft); }
.metric-card--maps-emails { --dash-card-accent: var(--dash-maps-emails); --dash-card-soft: var(--dash-maps-emails-soft); }
.metric-card--intel { --dash-card-accent: var(--dash-intel); --dash-card-soft: var(--dash-intel-soft); }
.metric-card--growth { --dash-card-accent: var(--dash-growth); --dash-card-soft: var(--dash-growth-soft); }
.metric-card--routing { --dash-card-accent: var(--dash-routing); --dash-card-soft: var(--dash-routing-soft); }
.metric-card--providers { --dash-card-accent: var(--dash-providers); --dash-card-soft: var(--dash-providers-soft); }
.metric-card--neutral { --dash-card-accent: var(--fee-brand); --dash-card-soft: var(--fee-brand-light); }
.dash-hero, .dash-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; margin: 0; }
.dash-grid--primary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dash-grid--secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dash-grid--intel { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; }
.dash-section {
  margin: 0;
  padding: 1rem 1.05rem 1.1rem;
  border: 1px solid var(--dash-section-border, var(--fee-border));
  border-radius: calc(var(--dash-card-radius, 14px) + 2px);
  background:
    linear-gradient(135deg, var(--dash-section-wash-a, transparent) 0%, var(--dash-section-wash-b, transparent) 55%, transparent 100%),
    var(--fee-surface-elevated, var(--fee-surface));
  box-shadow: var(--dash-card-shadow, var(--fee-shadow-sm));
}
.dash-section--extractor {
  --dash-section-border: color-mix(in srgb, var(--dash-leads) 28%, var(--fee-border));
  --dash-section-wash-a: var(--dash-leads-soft);
  --dash-section-wash-b: transparent;
  --dash-section-icon-bg: var(--dash-leads-soft);
  --dash-section-icon-fg: var(--dash-leads);
}
.dash-section--maps {
  --dash-section-border: var(--dash-maps-border);
  --dash-section-wash-a: rgba(8, 145, 178, .1);
  --dash-section-wash-b: rgba(37, 99, 235, .08);
  --dash-section-icon-bg: var(--fee-surface);
  --dash-section-icon-fg: var(--dash-maps-deep);
}
.dash-section--intelligence {
  --dash-section-border: color-mix(in srgb, var(--dash-intel) 30%, var(--fee-border));
  --dash-section-wash-a: var(--dash-intel-soft);
  --dash-section-wash-b: var(--dash-providers-soft);
  --dash-section-icon-bg: var(--dash-intel-soft);
  --dash-section-icon-fg: var(--dash-intel);
}
.dash-section-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .85rem;
  flex-wrap: wrap;
  min-height: 2.75rem;
  margin: 0 0 .9rem;
}
.dash-section-brand { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.dash-section-icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 12px;
  color: var(--dash-section-icon-fg, var(--fee-brand));
  background: var(--dash-section-icon-bg, var(--fee-brand-light));
  box-shadow: 0 4px 12px color-mix(in srgb, var(--dash-section-icon-fg, var(--fee-brand)) 18%, transparent);
}
.dash-section-icon .dash-icon { width: 1.3rem; height: 1.3rem; }
.dash-section--maps .dash-section-icon {
  background: var(--fee-surface);
  border: 1px solid color-mix(in srgb, var(--dash-maps) 25%, var(--fee-border));
  box-shadow: 0 6px 16px rgba(8, 145, 178, .18);
}
.dash-section--maps .dash-section-icon .dash-icon--maps { width: 1.45rem; height: 1.45rem; }
.dash-section-title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.2;
  font-weight: 750;
  letter-spacing: -.015em;
  color: var(--fee-text);
}
.dash-section-sub {
  margin: .1rem 0 0;
  font-size: var(--fee-fs-meta);
  line-height: var(--fee-lh-meta);
  color: var(--fee-muted);
  font-weight: 500;
}
.dash-section-actions { display: flex; flex-wrap: wrap; gap: .45rem; }
.dash-section-body { min-width: 0; }
.dash-section-empty { margin: .7rem 0 0; }
.dash-section-empty a { color: var(--dash-maps-deep); font-weight: 650; }

/* Dark shell: deep sidebar; orange only on active nav inset */
html[data-theme="dark"] .app-nav-link.is-active,
html[data-theme="dark"] .app-nav-recent-link.is-active,
html[data-theme="dark"] .app-nav-recent-browse.is-active {
  background: rgba(255, 255, 255, .08);
  box-shadow: inset 3px 0 0 #F7931E;
}
html[data-theme="dark"] .dash-section {
  background:
    linear-gradient(135deg, var(--dash-section-wash-a, transparent) 0%, var(--dash-section-wash-b, transparent) 55%, transparent 100%),
    var(--fee-surface);
  box-shadow: var(--dash-card-shadow);
}
html[data-theme="dark"] .dash-section--extractor {
  --dash-section-border: color-mix(in srgb, var(--dash-leads) 36%, var(--fee-border));
  --dash-section-wash-a: rgba(52, 211, 153, .1);
  --dash-section-icon-fg: #6ee7b7;
}
html[data-theme="dark"] .dash-section--maps {
  --dash-section-border: color-mix(in srgb, var(--fee-brand) 40%, var(--fee-border));
  --dash-section-wash-a: rgba(43, 184, 154, .14);
  --dash-section-wash-b: rgba(247, 147, 30, .07);
  --dash-section-icon-fg: #7dd3c0;
  --dash-section-icon-bg: var(--fee-surface-elevated);
}
html[data-theme="dark"] .dash-section--maps .dash-section-icon {
  background: var(--fee-surface-elevated);
  border-color: color-mix(in srgb, var(--fee-accent) 40%, var(--fee-border));
  box-shadow: none;
}
html[data-theme="dark"] .dash-section--intelligence {
  --dash-section-border: color-mix(in srgb, var(--dash-intel) 38%, var(--fee-border));
  --dash-section-wash-a: rgba(196, 181, 253, .1);
  --dash-section-icon-fg: #c4b5fd;
}
html[data-theme="dark"] .metric-card {
  background: var(--fee-surface-elevated);
  border-color: var(--fee-border);
}
html[data-theme="dark"] .metric-card--accent:hover {
  border-color: color-mix(in srgb, var(--dash-card-accent, var(--fee-brand)) 45%, var(--fee-border));
}
html[data-theme="dark"] .metric-card-kicker {
  color: var(--fee-text-secondary);
}
html[data-theme="dark"] .metric-card-desc,
html[data-theme="dark"] .metric-card-meta {
  color: var(--fee-muted);
}
html[data-theme="dark"] .dash-empty {
  border-color: color-mix(in srgb, var(--fee-brand) 35%, var(--fee-border));
  background:
    linear-gradient(160deg, rgba(43, 184, 154, .1) 0%, transparent 60%),
    var(--fee-surface-elevated);
}
html[data-theme="dark"] .dash-section-empty a,
html[data-theme="dark"] .dash-more a {
  color: var(--fee-brand-dark);
}
html[data-theme="dark"] .app-content:has(.dash-home) {
  background: var(--dash-bg);
}
.app-nav-link .dash-icon--maps {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}
.dash-recent { margin: 0; }
.dash-empty {
  display: grid;
  justify-items: start;
  gap: .55rem;
  padding: 1.35rem 1.25rem;
  border: 1px dashed color-mix(in srgb, var(--dash-projects) 40%, var(--fee-border));
  border-radius: var(--dash-card-radius, 14px);
  background:
    linear-gradient(160deg, var(--dash-projects-soft) 0%, transparent 60%),
    var(--fee-surface-elevated, var(--fee-surface));
}
.dash-empty-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 12px;
  color: var(--dash-projects);
  background: var(--dash-projects-soft);
}
.dash-empty-icon .dash-icon { width: 1.35rem; height: 1.35rem; }
.dash-empty h3 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--fee-text);
}
.dash-empty p {
  margin: 0;
  color: var(--fee-muted);
  font-size: var(--fee-fs-compact);
  max-width: 36rem;
}
.dash-empty-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .25rem; }
.dash-growth { list-style: none; margin: .35rem 0 0; padding: 0; display: grid; gap: .35rem; }
.dash-growth li { display: flex; align-items: baseline; justify-content: space-between; gap: .55rem; color: var(--fee-muted); }
.dash-growth li b { font-size: 1.15rem; margin: 0; color: var(--fee-text); }
.dash-growth li span { color: var(--fee-muted); font-size: var(--fee-fs-compact); }

.dash-split { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin: 0 0 1rem; align-items: stretch; }
.dash-split > .app-panel { min-height: 16.5rem; display: flex; flex-direction: column; }
.billing-split > .app-panel { min-height: 0; }
.billing-overview { margin-top: .35rem; }
.billing-overview-card {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.billing-overview-card:hover {
  border-color: var(--fee-teal);
  text-decoration: none;
  color: inherit;
}
.billing-overview-card.is-active {
  border-color: var(--fee-teal-dark);
  box-shadow: 0 0 0 1px var(--fee-teal-dark);
}
.billing-overview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin: 0 0 .35rem;
}
.billing-overview-head h3 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
}
.billing-overview-blurb {
  margin: 0 0 .55rem;
  color: var(--fee-muted);
  font-size: var(--fee-fs-compact);
  line-height: 1.4;
}
.billing-plan-pill {
  display: inline-flex;
  align-items: center;
  padding: .15rem .55rem;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: var(--fee-muted);
  background: var(--fee-wash);
  border: 1px solid var(--fee-line);
  white-space: nowrap;
}
.billing-plan-pill.is-pro {
  color: var(--fee-teal-dark);
  background: color-mix(in srgb, var(--fee-teal) 14%, #fff);
  border-color: color-mix(in srgb, var(--fee-teal) 35%, var(--fee-line));
}
.billing-product-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: 0 0 1rem;
  padding: .2rem;
  border: 1px solid var(--fee-line);
  border-radius: 10px;
  background: var(--fee-wash);
}
.billing-product-tabs a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.1rem;
  padding: .35rem .9rem;
  border-radius: 8px;
  color: var(--fee-muted);
  font-weight: 650;
  text-decoration: none;
}
.billing-product-tabs a:hover {
  color: var(--fee-text);
  background: var(--fee-surface-hover);
  text-decoration: none;
}
.billing-product-tabs a.is-active {
  color: #fff;
  background: var(--fee-brand);
}
.billing-product-tabs a:focus-visible {
  outline: 2px solid var(--fee-brand);
  outline-offset: 2px;
}
.billing-tab-panel { margin: 0 0 1rem; }
.billing-tab-panel[hidden] { display: none !important; }
.billing-product-blurb { margin: 0 0 .55rem; }
.dash-more { margin: .35rem 0 .35rem; }
.dash-more a { color: var(--fee-teal-dark); font-weight: 650; text-decoration: none; }
.dash-more a:hover { text-decoration: underline; }
.dash-kv { display: grid; gap: .35rem; margin: .75rem 0 0; }
.dash-kv--compact { margin: .35rem 0 .45rem; gap: .2rem; }
.dash-kv > div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--fee-line); padding: .35rem 0; }
.dash-kv--compact > div { padding: .2rem 0; }
.dash-kv dt { color: var(--fee-muted); }
.dash-kv dd { margin: 0; font-weight: 650; }
.dash-providers { list-style: none; margin: .75rem 0 0; padding: 0; }
.dash-providers--compact { margin: .35rem 0 .45rem; }
.dash-providers li { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem 0; border-bottom: 1px solid var(--fee-line); }
.dash-providers--compact li { padding: .25rem 0; }
.lead-retry-form { display: inline-flex; margin: 0 0 .25rem; }
.dash-spark { width: 120px; height: 36px; margin-top: .35rem; }
.stack-cell { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.stack-cell strong { font-weight: 650; }
.stack-cell span, .truncate { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--fee-muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: normal; max-width: 36rem; line-height: 1.35; max-height: 2.8em; }
.mx-row-actions { display: inline-flex; flex-wrap: nowrap; gap: .35rem; align-items: center; white-space: nowrap; max-width: 100%; }
.mx-assign { display: inline-flex; flex-wrap: nowrap; gap: .35rem; align-items: center; white-space: nowrap; }
.mx-assign select, table.data td .mx-assign select {
  width: 180px; max-width: 180px; min-width: 160px; flex: 0 0 180px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.btn-compact { min-height: 34px; padding: 0 .65rem; white-space: nowrap; flex: 0 0 auto; }
/* Unknown MX: fill content width; long cols + stretchable provider select absorb leftover space. */
.unknown-mx-table-wrap {
  width: 100%;
  max-width: none;
}
table.data.mx-unknown {
  table-layout: fixed;
  width: 100%;
  max-width: none;
}
table.data.mx-unknown th,
table.data.mx-unknown td {
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
  padding-left: 10px;
  padding-right: 10px;
  white-space: nowrap;
}
table.data.mx-unknown td.mx-ops,
table.data.mx-unknown td:last-child {
  overflow: visible;
  white-space: nowrap;
}
table.data.mx-unknown .mx-col-pattern { width: 17%; }
table.data.mx-unknown .mx-col-example { width: 14%; }
table.data.mx-unknown .mx-col-domains,
table.data.mx-unknown th.num,
table.data.mx-unknown td.num { width: 88px; text-align: right; }
table.data.mx-unknown .mx-col-status { width: 95px; }
table.data.mx-unknown .mx-col-seen { width: 115px; }
table.data.mx-unknown .mx-col-priority { width: 75px; }
table.data.mx-unknown .mx-col-ops { width: 38%; }
table.data.mx-unknown .mx-pattern,
table.data.mx-unknown .mx-example {
  max-width: 0; /* ellipsis respects fixed col width */
  white-space: nowrap;
}
table.data.mx-unknown .mx-row-actions {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  max-width: none;
}
table.data.mx-unknown .mx-assign {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  align-items: center;
  gap: 8px;
  max-width: none;
}
table.data.mx-unknown .mx-assign select,
table.data.mx-unknown td .mx-assign select {
  flex: 1 1 0;
  width: 0; /* grow into leftover Provider/Actions space */
  min-width: 180px;
  max-width: none;
}
.provider-form { max-width: 1100px; }
.provider-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.suffix-tokens { list-style: none; margin: 0 0 .75rem; padding: 0; display: flex; flex-direction: column; gap: .35rem; max-width: 40rem; }
.suffix-tokens li { display: flex; align-items: center; justify-content: space-between; gap: .5rem; border: 1px solid var(--fee-line); border-radius: 8px; padding: .35rem .55rem; background: var(--fee-surface); }
@media (max-width: 900px) {
  .dash-hero, .dash-grid, .dash-split, .provider-form-grid { grid-template-columns: 1fr; }
}
.check-list { list-style: none; margin: .75rem 0 1.1rem; padding: 0; }
.check-list li { display: flex; gap: .55rem; align-items: flex-start; margin: .35rem 0; }
.check-list .icon-check { width: 16px; height: 16px; margin-top: .15rem; flex-shrink: 0; }
.filter-lock { display: inline-flex; align-items: center; height: var(--fee-control-h); padding: 0 .7rem; border: 1px solid var(--fee-border); border-radius: var(--fee-radius-sm); background: var(--fee-surface); color: var(--fee-muted); text-decoration: none; font-size: 13px; font-weight: 600; }
.filter-lock:hover { border-color: var(--fee-accent); color: var(--fee-accent); text-decoration: none; }
.app-filters input:not([type=checkbox]):not([type=radio]), .app-filters select, .app-filters .btn, .app-filters .filter-lock { height: var(--fee-control-h); }
.impersonation-banner { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; background: #1a2421; color: #fff; padding: .7rem 1rem; }
.impersonation-banner .btn { min-height: 36px; }
.status-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: .1rem .5rem; font-size: 12px; font-weight: 650; background: var(--fee-wash); color: var(--fee-teal-dark); }
.status-pill-ok { background: #e8f6ee; color: #1b5e3b; }
.access-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: .12rem .55rem; font-size: 12px; font-weight: 650; white-space: nowrap; background: var(--fee-surface-muted); color: var(--fee-text); }
/* Effective-access reason under the product badge: term + renewal/paid-through or override provenance. */
.access-reason { display: block; margin-top: .2rem; font-size: 11px; line-height: 1.3; color: var(--fee-text-muted); white-space: normal; overflow-wrap: anywhere; }
/*
 * Billing details behind an info icon (hover / keyboard focus / click via <details>),
 * so the badge cell stays one line. The popover text is the same accessReason string
 * that used to render as a subtext line.
 */
.access-info { display: inline-block; position: relative; margin-left: .3rem; vertical-align: middle; }
.access-info > summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
  width: 1.1rem; height: 1.1rem; border-radius: 999px; font-size: 11px; font-weight: 700; line-height: 1;
  color: var(--fee-text-muted); border: 1px solid var(--fee-border); background: var(--fee-surface);
}
.access-info > summary::-webkit-details-marker { display: none; }
.access-info > summary:focus-visible { outline: 2px solid var(--fee-focus-ring, rgba(43, 184, 154, .45)); outline-offset: 1px; }
.access-info__text {
  position: absolute; z-index: 20; left: 0; top: calc(100% + .3rem); min-width: 14rem; max-width: 20rem;
  padding: .45rem .6rem; border-radius: 8px; font-size: 12px; line-height: 1.35; white-space: normal;
  color: var(--fee-text); background: var(--fee-surface); border: 1px solid var(--fee-border);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .12);
}
.access-info--end > .access-info__text { left: auto; right: 0; }
.access-info:not([open]) > .access-info__text { display: none; }
.access-info:not([open]):hover > .access-info__text,
.access-info:not([open]):focus-within > .access-info__text { display: block; }
table.data.users-table td.col-access { overflow: visible; }
.access-free { background: var(--fee-surface-hover); color: var(--fee-muted); }
.access-pro, .access-pro-sub { background: var(--fee-brand-light); color: var(--fee-success); }
.access-pro-admin { background: var(--fee-brand-light); color: var(--fee-teal-dark); }
.access-internal { background: #234060; color: #d6e4ff; }
.access-restricted { background: #3a1a1a; color: var(--fee-danger); }
html[data-theme="light"] .access-internal { background: #e8f1ff; color: #234; }
html[data-theme="light"] .access-restricted { background: #fdecec; color: #9b2c2c; }
html[data-theme="light"] .access-pro, html[data-theme="light"] .access-pro-sub { background: #e8f6ee; color: #1b5e3b; }
html[data-theme="light"] .access-free { background: #eef1f0; color: #3a4a46; }
.empty-state { border-style: solid; box-shadow: var(--fee-shadow-sm); }
.empty-icon { display: inline-flex; color: var(--fee-teal); margin-bottom: .35rem; }
.empty-icon svg { width: 28px; height: 28px; }
.getting-started { margin: .4rem 0 0; padding-left: 1.2rem; color: var(--fee-muted); }
.password-field { position: relative; display: block; max-width: 520px; }
.password-field input { padding-right: 4.2rem; }
.password-toggle { position: absolute; right: .35rem; top: 50%; transform: translateY(-50%); background: none; border: 0; color: var(--fee-teal-dark); cursor: pointer; font: inherit; font-size: 12px; font-weight: 650; }
.auth-split { display: grid; grid-template-columns: minmax(220px, 32%) minmax(0, 1fr); min-height: calc(100vh - 72px); }
.auth-rail { background: linear-gradient(165deg, #083830 0%, #0f6b5c 55%, #0a4f44 100%); color: #e6f3f0; padding: 2.4rem 1.7rem; }
.auth-rail h2 { font-size: 26px; line-height: 1.25; margin: 1.15rem 0 .55rem; font-weight: 750; }
.auth-rail-copy { margin: 0 0 1.3rem; color: #cfe4df; font-size: 14px; line-height: 1.5; }
.auth-rail-points { margin: 0; padding: 0; list-style: none; }
.auth-rail-points li { display: flex; gap: .55rem; margin: .45rem 0; color: #f3faf8; font-size: 14px; }
.auth-card label.check { display: flex; align-items: center; gap: .5rem; font-weight: 500; }
.auth-rail h2 { font-size: 22px; margin: 1rem 0 .4rem; }
.auth-rail .checkout-mark { background: rgba(255,255,255,.12); }
.auth-rail .checkout-brand-name { color: #fff; }
.auth-shell { display: flex; align-items: center; justify-content: center; padding: 32px 16px; }
.auth-card { width: 100%; max-width: 448px; background: #fff; border: 1px solid var(--fee-line); border-radius: var(--fee-radius-md); box-shadow: var(--fee-shadow-sm); padding: 28px; }
.auth-brand { display: inline-flex; font-weight: 700; color: var(--fee-ink); margin: 0 0 1rem; text-decoration: none; }
.auth-brand.brand-logo { max-width: 220px; }
.auth-rail .brand-logo { max-width: 240px; margin: 0 0 .35rem; }
/* Horizontal logo SVGs fill the rail/card width; lockup marks stay at brand-logo--* sizes. */
.auth-rail .brand-logo:not(.brand-logo--lockup) img,
.auth-brand.brand-logo:not(.brand-logo--lockup) img,
.pub-brand.brand-logo:not(.brand-logo--lockup) img { width: 100%; height: auto; }
.auth-rail .brand-logo--lockup .brand-logo-mark,
.auth-brand.brand-logo--lockup .brand-logo-mark,
.pub-brand.brand-logo--lockup .brand-logo-mark {
  width: 1.75rem;
  height: 1.75rem;
  max-width: none;
}
.auth-rail .brand-logo--lockup.brand-logo--md .brand-logo-mark,
.auth-brand.brand-logo--lockup.brand-logo--md .brand-logo-mark,
.pub-brand.brand-logo--lockup.brand-logo--md .brand-logo-mark {
  width: 2.1rem;
  height: 2.1rem;
}
.auth-card h1 { margin: 0 0 6px; font-size: 24px; font-weight: 700; }
.auth-lede { margin: 0 0 22px; color: var(--fee-muted); font-size: 14px; }
.auth-product-context { margin: -10px 0 20px; padding: 10px 12px; border-radius: 10px; background: var(--fee-surface-2, #f3f6fb); color: var(--fee-muted); font-size: 13px; line-height: 1.45; }
.auth-card label { display: block; margin: 0 0 6px; font-size: 12px; font-weight: 600; }
.field { margin: 0 0 14px; }
.label-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.btn-auth { display: block; width: 100%; min-height: var(--fee-control-h); background: var(--fee-teal); color: #fff; border: 0; border-radius: var(--fee-radius-sm); font: inherit; font-weight: 650; cursor: pointer; text-align: center; text-decoration: none; box-sizing: border-box; padding: .7rem 1rem; }
.btn-auth:hover { filter: brightness(1.06); }
.btn-auth:focus-visible { outline: 2px solid var(--fee-teal); outline-offset: 3px; }
.auth-cta-stack { display: flex; flex-direction: column; gap: 10px; margin: 0 0 18px; }
.btn-auth-secondary { display: block; width: 100%; min-height: calc(var(--fee-control-h) - 4px); background: #fff; color: var(--fee-teal-dark, #0a4f44); border: 1px solid var(--fee-line); border-radius: var(--fee-radius-sm); font: inherit; font-weight: 650; cursor: pointer; text-align: center; padding: .55rem 1rem; }
.btn-auth-secondary:hover { background: var(--fee-wash); border-color: var(--fee-teal); }
.btn-auth-secondary:focus-visible { outline: 2px solid var(--fee-teal); outline-offset: 3px; }
.auth-switch { text-align: center; margin: 16px 0 0; color: var(--fee-muted); }
.auth-alert { background: var(--fee-wash); border: 1px solid var(--fee-line); border-radius: 8px; padding: .65rem .75rem; margin: 0 0 14px; }
.auth-alert.is-error { background: #fdecec; border-color: #f3c4c4; color: var(--fee-danger); }
.auth-legal { margin: 12px 0 0; color: var(--fee-muted); font-size: 12px; }
.auth-footer { text-align: center; padding: 0 16px 28px; color: var(--fee-muted); font-size: 12px; }
.footer-cookie-settings { background: none; border: 0; padding: 0; color: inherit; font: inherit; cursor: pointer; text-decoration: underline; }
.name-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.checkout-success-page { max-width: 640px; margin: 0 auto; padding: 2rem 1rem 3rem; }
.checkout-success-card h1 { font-size: 26px; margin: .4rem 0 .6rem; }
.fee-error { min-height: 100vh; display: grid; place-items: center; padding: 2rem 1rem; }
.fee-error-card { max-width: 28rem; background: #fff; border: 1px solid var(--fee-line); border-radius: var(--fee-radius-lg); padding: 1.5rem; box-shadow: var(--fee-shadow-md); }
@media (max-width: 768px) {
  .auth-split { grid-template-columns: 1fr; }
  .auth-rail { padding: 1.2rem 1.1rem; }
  .name-grid { grid-template-columns: 1fr; }
}

/* ---- Plain check lists (no inline icon) ---- */
.check-list.is-plain li::before { content: "✓"; color: var(--fee-teal); font-weight: 700; line-height: 1.45; }

/* ---- Plan & billing ---- */
.billing-status { margin: 0 0 .35rem; font-weight: 650; color: var(--fee-success); }
.billing-status.is-ending { color: var(--fee-ink); }
.billing-price { margin: -.15rem 0 .35rem; color: var(--fee-muted); font-weight: 650; }
.billing-meta { margin-top: .45rem; }
.billing-features { margin-top: .4rem; }
.billing-note { margin: .75rem 0 0; }
.billing-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .85rem; }
.billing-actions form { margin: 0; }
.billing-switch-note { margin: .65rem 0 0; }
.billing-pager { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; padding: .65rem 14px; border-top: 1px solid var(--fee-line); }
.billing-pager .app-page-btn.is-current { background: var(--fee-teal-dark); color: #fff; border-color: var(--fee-teal-dark); }
.billing-pending { margin: .85rem 0 0; padding: .65rem .75rem; border: 1px solid var(--fee-line); border-radius: 8px; background: var(--fee-wash); }
.billing-pending p { margin: 0; }
.billing-pending-kicker { font-size: 12px; font-weight: 650; color: var(--fee-muted); letter-spacing: .01em; margin-bottom: .15rem !important; }
.app-nav-out { margin-top: auto; }

.cookie-banner {
  position: fixed; z-index: 80; left: 0; right: 0; bottom: 0; width: 100%;
  box-sizing: border-box; background: var(--fee-surface); color: var(--fee-ink);
  border-top: 1px solid var(--fee-border); box-shadow: var(--fee-shadow-md);
  padding: .7rem 1.1rem;
}
.cookie-settings-panel {
  position: fixed; z-index: 81; left: 50%; bottom: 4.25rem; transform: translateX(-50%);
  width: min(520px, calc(100vw - 1.5rem)); box-sizing: border-box; background: var(--fee-surface); color: var(--fee-text);
  border: 1px solid var(--fee-border); border-radius: 12px; box-shadow: var(--fee-shadow-md);
  padding: 1rem 1.1rem;
}
.cookie-banner-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 1120px; margin: 0 auto; }
.cookie-settings-inner { display: grid; gap: .85rem; }
.cookie-settings-panel h2 { margin: 0 0 .35rem; font-size: 1.05rem; }
.cookie-banner p, .cookie-settings-panel p { margin: 0; font-size: .92rem; color: var(--fee-muted); }
.cookie-banner p a { color: inherit; }
.cookie-banner-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; flex-shrink: 0; }
.cookie-btn { min-height: 40px; padding: .4rem .85rem; border-radius: 8px; border: 1px solid var(--fee-border); background: var(--fee-surface); color: inherit; font: inherit; font-weight: 600; cursor: pointer; }
.cookie-btn-accept, .cookie-btn-accept:hover, .cookie-btn-accept:focus-visible { background: var(--fee-brand); border-color: var(--fee-brand); color: #fff; }
.cookie-settings-list { border: 0; margin: 0; padding: 0; display: grid; gap: .65rem; }
.cookie-setting { display: flex; gap: .6rem; align-items: flex-start; font-size: .9rem; }
@media (max-width: 640px) {
  .cookie-banner { padding: .75rem .9rem; }
  .cookie-banner-inner, .cookie-banner-actions { flex-direction: column; align-items: stretch; }
  .cookie-btn { width: 100%; }
  .cookie-settings-panel { bottom: auto; top: 50%; transform: translate(-50%, -50%); }
}

/* ---- App-domain public landing ---- */
body.fee-public { background: var(--fee-white); }
.pub-header { border-bottom: 1px solid var(--fee-line); background: #fff; position: sticky; top: 0; z-index: 20; }
.pub-bar { display: flex; align-items: center; gap: 1.25rem; max-width: 1120px; margin: 0 auto; padding: .75rem 1.25rem; }
.pub-brand { display: flex; align-items: center; gap: .55rem; font-weight: 700; color: var(--fee-ink); text-decoration: none; }
.pub-brand:hover { text-decoration: none; }
.pub-brand.brand-logo { max-width: 220px; }
.pub-nav { display: flex; gap: 1.1rem; margin-right: auto; }
.pub-nav a { color: var(--fee-muted); text-decoration: none; font-weight: 550; }
.pub-nav a:hover, .pub-nav a[aria-current="page"] { color: var(--fee-teal-dark); }
.pub-actions { display: flex; gap: .5rem; align-items: center; }
.pub-nav-toggle { display: none; }
.pub-main { max-width: 1120px; margin: 0 auto; padding: 0 1.25rem; }
.pub-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 2.5rem; align-items: center; padding: 3rem 0 2.5rem; }
.pub-hero h1 { font-size: 40px; line-height: 1.12; margin: 0 0 .75rem; letter-spacing: -.4px; }
.pub-kicker {
  margin: 0 0 .45rem;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--fee-teal-dark, #0f6b5c);
}
.pub-lede { font-size: 16px; color: var(--fee-muted); margin: 0 0 1.25rem; max-width: 48ch; }
.pub-cta-row { display: flex; flex-wrap: wrap; gap: .6rem; }
.pub-hero-note { margin: .85rem 0 0; font-size: 13px; max-width: 48ch; }
.pub-shot-frame { border: 1px solid var(--fee-line); border-radius: var(--fee-radius-lg); overflow: hidden; box-shadow: var(--fee-shadow-md); background: #fff; }
.pub-shot-bar { display: flex; gap: .35rem; padding: .5rem .7rem; background: #f1f5f4; border-bottom: 1px solid var(--fee-line); }
.pub-shot-bar i { width: 9px; height: 9px; border-radius: 50%; background: #cdd9d5; }
.pub-shot img { display: block; width: 100%; height: auto; }
.pub-shot-wide { margin-top: 1.5rem; }
.pub-section { padding: 2.5rem 0; border-top: 1px solid var(--fee-line); scroll-margin-top: 76px; }
.pub-section > h2 { font-size: 24px; margin: 0 0 1.15rem; }
.pub-section-wash { background: var(--fee-wash); border-radius: var(--fee-radius-lg); padding: 2rem 1.6rem; margin: 2.25rem 0; border-top: 0; }
.pub-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: stretch; }
.pub-grid .app-panel { height: 100%; margin-bottom: 0; padding: 1.15rem 1.2rem; }
.pub-grid h3, .pub-plans h3 { margin: 0 0 .4rem; font-size: 15px; }
.pub-grid p { margin: 0; color: var(--fee-muted); }
.pub-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; list-style: none; counter-reset: step; margin: 0; padding: 0; }
.pub-steps li { counter-increment: step; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--fee-line); border-radius: 10px; padding: 1rem 1.05rem; min-height: 100%; }
.pub-steps li::before { content: counter(step); display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--fee-teal); color: #fff; font-size: 12px; font-weight: 700; margin-bottom: .55rem; }
.pub-steps b { display: block; margin-bottom: .3rem; font-size: 14px; }
.pub-steps span { color: var(--fee-muted); font-size: 13px; line-height: 1.4; }
.pub-plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: stretch; }
.pub-plan { display: flex; flex-direction: column; height: 100%; margin-bottom: 0; padding: 1.25rem 1.3rem; }
.pub-plan .check-list { flex: 1 1 auto; margin: 0 0 1.1rem; }
.pub-plan .btn { margin-top: auto; align-self: flex-start; }
.pub-plan-kicker { margin: 0 0 .85rem; font-size: 13px; color: var(--fee-muted); }
.pub-plan-badge { display: inline-block; margin: 0 0 .45rem; padding: .15rem .55rem; border-radius: 999px; background: var(--fee-wash); color: var(--fee-teal-dark); font-size: 11px; font-weight: 700; letter-spacing: .02em; }
.pub-plans .is-featured { border-color: var(--fee-teal); background: #f6fbf9; box-shadow: var(--fee-shadow-sm); }
.pub-plans .app-price { font-size: 28px; margin: 0 0 .2rem; }
.pub-price-per { font-size: 13px; font-weight: 500; color: var(--fee-muted); }
.pub-final { text-align: center; }
.pub-final .pub-lede { margin: 0 auto 1.25rem; }
.pub-final .pub-cta-row { justify-content: center; }
.pub-footer { border-top: 1px solid var(--fee-line); margin-top: 2.5rem; background: #fbfcfc; }
.pub-footer-grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 1.5rem; max-width: 1120px; margin: 0 auto; padding: 2.25rem 1.25rem 1.5rem; }
.pub-footer-brand { font-weight: 700; margin: 0 0 .4rem; }
.pub-footer h2 { font-size: 13px; margin: 0 0 .5rem; }
.pub-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.pub-footer a { color: var(--fee-muted); text-decoration: none; }
.pub-footer a:hover { color: var(--fee-teal-dark); }
.pub-footer-bottom {
  max-width: 1120px;
  margin: 0 auto;
  padding: .85rem 1.25rem 1.5rem;
  border-top: 1px solid var(--fee-line);
}
.pub-footer-bottom-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .65rem 1.25rem;
}
.pub-footer-meta {
  margin: 0;
  padding: 0;
  color: var(--fee-muted);
  font-size: 12px;
  flex: 0 1 auto;
}
.pub-footer-payments {
  display: flex;
  align-items: center;
  gap: .45rem .55rem;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
  font-size: 12px;
  color: var(--fee-muted);
  flex: 1 1 auto;
  max-width: 100%;
  position: relative;
}
.pub-footer-bottom .footer-crypto-note {
  margin: .45rem 0 0;
  font-size: 11px;
  line-height: 1.35;
  color: var(--fee-muted);
}
.pub-footer-payments img {
  height: 18px;
  width: auto;
  max-width: 32px;
  display: block;
  object-fit: contain;
}
@media (max-width: 720px) {
  .pub-footer-bottom-row {
    flex-direction: column;
    align-items: flex-start;
  }
  .pub-footer-payments {
    justify-content: flex-start;
  }
}
.auth-back { display: inline-block; margin: -.5rem 0 1rem; color: var(--fee-muted); font-size: 13px; text-decoration: none; }
.auth-back:hover { color: var(--fee-teal-dark); }
@media (max-width: 900px) {
  .pub-hero { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; padding: 2.25rem 0; }
  .pub-hero h1 { font-size: 30px; }
  .pub-grid, .pub-plans { grid-template-columns: minmax(0, 1fr); }
  .pub-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pub-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pub-nav-toggle { display: inline-flex; align-items: center; min-height: 36px; padding: 0 .7rem; border: 1px solid var(--fee-line); border-radius: var(--fee-radius-sm); background: #fff; font: inherit; cursor: pointer; margin-left: auto; }
  .pub-nav { display: none; order: 3; flex-basis: 100%; flex-direction: column; gap: .5rem; padding-top: .5rem; }
  .pub-nav.is-open { display: flex; }
  .pub-bar { flex-wrap: wrap; gap: .6rem; }
  .pub-actions { order: 4; flex-basis: 100%; }
  .pub-actions .btn { flex: 1; }
}
@media (max-width: 560px) {
  .pub-steps { grid-template-columns: minmax(0, 1fr); }
  .pub-footer-grid { grid-template-columns: minmax(0, 1fr); }
  .pub-section-wash { padding: 1.5rem 1rem; }
}

/* ---- Admin settings tabs ---- */
.settings-tabs { display: flex; flex-wrap: wrap; gap: 1.25rem; border-bottom: 1px solid var(--fee-line); margin: 0 0 1.1rem; }
.settings-tab { display: inline-block; padding: .55rem .1rem; color: var(--fee-muted); text-decoration: none; font-weight: 600; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.settings-tab:hover { color: var(--fee-teal-dark); text-decoration: none; }
.settings-tab.is-active { color: var(--fee-teal-dark); border-bottom-color: var(--fee-teal-dark); }
.inline-form { display: inline; }
.card textarea { width: 100%; max-width: 40rem; font: inherit; padding: .5rem .65rem; border: 1px solid var(--fee-line); border-radius: 8px; }
.admission-compose { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-bottom: 1rem; }
.admission-compose .card { margin-bottom: 0; }
.admission-compose .card textarea { max-width: none; }
.admission-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 .75rem; align-items: end; }
.admission-fields + .admission-fields { margin-top: .5rem; }
.admission-fields--actions { align-items: center; margin-top: .5rem; }
.admission-fields--actions .admission-enabled { margin-top: 0; }
.admission-field-action { display: flex; align-items: end; padding-bottom: 2px; }
.admission-enabled { display: flex; align-items: center; min-height: var(--fee-control-h); margin-top: .75rem; }
.admission-enabled .app-check-label { margin: 0; }
.admission-actions { margin: .75rem 0 0; }
@media (min-width: 720px) {
  .admission-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .admission-fields--actions { grid-template-columns: auto auto; justify-content: start; gap: 1rem; }
}
@media (min-width: 1100px) {
  .admission-compose { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
}

/* ---- Contact intelligence: lead count left, mail status chips right (Free sees aggregates as upsell) ---- */
.app-page-stats { margin: .3rem 0 0; font-size: 14px; }
.app-page-count { font-size: 17px; font-weight: 700; color: var(--fee-teal-dark); }
.app-mail-intel { display: inline-flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; max-width: 100%; }
.app-mail-chip {
  display: inline-flex; align-items: center; gap: .35rem;
  border-radius: 999px; padding: .22rem .6rem; font-size: 12px; font-weight: 650;
  border: 1px solid transparent; white-space: nowrap; line-height: 1.2;
  text-decoration: none; color: inherit;
}
.app-mail-chip strong { font-weight: 750; font-variant-numeric: tabular-nums; }
/* Mail Intelligence: Domain Mail Ready = BLUE (not green — green is mailbox VALID) */
.app-mail-chip--ready { background: #0b4f8a; color: #eff6ff; border-color: #1d6fb8; }
.app-mail-chip--bad { background: #b91c1c; color: #fff; border-color: #dc2626; }
.app-mail-chip--unknown { background: #b45309; color: #fffbeb; border-color: #d97706; }
.app-mail-chip--upsell { cursor: pointer; }
.app-mail-chip--upsell:hover { filter: brightness(1.08); text-decoration: none; }
html[data-theme="dark"] .app-mail-chip--ready { background: #16324d; color: #8ec5f0; border-color: #3b82c4; }
html[data-theme="dark"] .app-mail-chip--bad { background: #7f1d1d; color: #fecaca; border-color: #ef4444; }
html[data-theme="dark"] .app-mail-chip--unknown { background: #78350f; color: #fde68a; border-color: #f59e0b; }
.badge.status-muted { background: #f3f3f3; color: #555; }
.lock-pro { display: inline-flex; align-items: center; gap: .2rem; border-radius: 999px; padding: .1rem .5rem; font-size: 11px; font-weight: 650; background: var(--fee-wash); color: var(--fee-muted); text-decoration: none; white-space: nowrap; }
.lock-pro:hover { color: var(--fee-accent); text-decoration: none; }
/* Maps Free email reveal: compact inline form, same pill as the lock badge. */
.maps-reveal-form { display: inline-flex; margin: 0; }
button.maps-reveal-btn { border: 0; cursor: pointer; font: inherit; font-size: 11px; font-weight: 650; }
button.maps-reveal-btn:hover { color: var(--fee-accent); background: var(--fee-wash); }
.maps-locked-list { display: grid; gap: .3rem; margin-top: .5rem; }
.maps-locked-row { display: flex; align-items: center; gap: .6rem; font-size: 12px; }
.maps-locked-row .lead-copy-email { cursor: pointer; }
@media (max-width: 560px) {
  .project-header-aside { align-items: flex-start; margin-left: 0; width: 100%; }
  .project-header-aside .app-mail-intel { justify-content: flex-start; }
  .project-header-aside .project-header-meta { text-align: left; }
  .app-page-head-aside { justify-content: flex-start; width: 100%; margin-left: 0; }
  .app-page-head--workspace .app-page-head-aside { align-items: flex-start; }
  .app-page-meta--aside { text-align: left; }
  .app-page-count { font-size: 16px; }
  .app-page-stats-row { gap: .45rem .6rem; }
}

/* ---- Admin analytics / capacity ---- */
.dash-h { font-size: 16px; margin: 1.4rem 0 .6rem; }
/* Preset: one compact horizontal row. Custom may wrap. */
.analytics-filters.card {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 1rem;
  padding: .55rem .85rem;
  margin-bottom: .75rem;
  overflow-x: auto;
}
.analytics-pair {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: .5rem .65rem;
  flex: 0 1 auto;
  min-width: 0;
}
.analytics-pair-label {
  display: inline;
  margin: 0;
  font-size: 12px;
  font-weight: 650;
  color: var(--fee-muted);
  white-space: nowrap;
}
.analytics-filters select {
  width: 11.25rem; /* ~180px */
  max-width: 12.5rem;
  min-width: 10rem;
  margin: 0;
  flex: 0 0 auto;
}
#analytics-compare { width: 12rem; } /* ~192px — longer labels */
.analytics-resolved {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--fee-text);
  white-space: nowrap;
  align-self: center;
  line-height: 1.2;
}
.analytics-date {
  display: inline-flex !important;
  flex-direction: row;
  align-items: center;
  gap: .35rem;
  margin: 0 !important;
  flex: 0 0 auto;
}
.analytics-date-label {
  font-size: 11px;
  font-weight: 650;
  color: var(--fee-muted);
  white-space: nowrap;
}
.analytics-filters input[type=date] {
  width: 9.75rem;
  max-width: 10.5rem;
  margin: 0;
}
.analytics-date[hidden],
.analytics-resolved[hidden] { display: none !important; }
.analytics-apply {
  flex: 0 0 auto;
  margin-left: auto;
  white-space: nowrap;
}
/* Tablet / narrow: allow wrap only when needed */
@media (max-width: 1100px) {
  .analytics-filters.card { flex-wrap: wrap; gap: .65rem .85rem; }
  .analytics-apply { margin-left: 0; }
}
@media (max-width: 640px) {
  .analytics-pair {
    flex-wrap: wrap;
    width: 100%;
  }
  .analytics-filters select,
  #analytics-compare {
    width: 100%;
    max-width: none;
  }
}
.analytics-compare-note { margin: -.15rem 0 1rem; }
.analytics-period-summary { margin: 0 0 .25rem; font-size: 13px; color: var(--fee-text); }
.analytics-period-summary .muted { font-weight: 500; margin: 0 .3rem; }
.analytics-delta-chips { margin: 0; font-size: 12px; display: flex; flex-wrap: wrap; gap: .35rem .9rem; }
.chart-card-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: 0 0 .75rem; }
.chart-card-head h3 { margin: 0; font-size: 14px; }
.chart-type-toggle { display: inline-flex; border: 1px solid var(--fee-line); border-radius: 8px; overflow: hidden; flex-shrink: 0; }
.chart-type-btn {
  appearance: none; border: 0; background: var(--fee-surface); color: var(--fee-muted);
  font: inherit; font-size: 11px; font-weight: 700; letter-spacing: .02em; padding: .28rem .55rem; cursor: pointer;
}
.chart-type-btn + .chart-type-btn { border-left: 1px solid var(--fee-line); }
.chart-type-btn.is-active { background: var(--fee-brand-light, #e6f3f0); color: var(--fee-teal-dark); }
html[data-theme="dark"] .chart-type-btn.is-active { background: #1a3d36; color: #b7e2d6; }
.chart-empty { margin: .35rem 0 0; font-size: 13px; }
.dash-charts, .dash-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
@media (min-width: 900px) {
  .dash-charts, .dash-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
.dash-charts .card h3, .dash-split .card h3 { margin: 0 0 .75rem; font-size: 14px; }
.dash-charts .chart-card-head + .chart-box,
.dash-charts .chart-card-head ~ .chart-box { /* head already spaced */ }
.funnel { list-style: none; margin: 0; padding: 0; }
.funnel li { padding: .45rem 0; border-bottom: 1px solid var(--fee-line); display: flex; flex-direction: column; gap: .15rem; }
.funnel li:last-child { border-bottom: 0; }
.delta-up { color: #1b5e3b; font-size: 12px; }
.delta-down { color: #9b2c2c; font-size: 12px; }
html[data-theme="dark"] .delta-up { color: #86efac; }
html[data-theme="dark"] .delta-down { color: #fca5a5; }
.cap-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: .35rem; background: #15803d; vertical-align: middle; }
.cap-dot.cap-yellow { background: #d97706; }
.cap-dot.cap-red { background: #dc2626; }
.cap-dot.cap-unknown { background: #6b7280; }
.health-metric-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: .4rem;
}
.health-metric-meta > span:first-child {
  color: var(--fee-muted);
  font-size: 12px;
}
/* Theme-capable capacity pills (dark overrides below). */
.cap-pill {
  display: inline-block;
  margin-top: .35rem;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .01em;
  border-radius: 999px;
  padding: .18rem .55rem;
  line-height: 1.2;
  background: #166534;
  color: #f0fdf4;
}
.cap-pill.cap-green { background: #166534; color: #f0fdf4; }
.cap-pill.cap-yellow { background: #f59e0b; color: #1c1917; }
.cap-pill.cap-red { background: #dc2626; color: #fff; }
.cap-pill.cap-unknown { background: #e5e7eb; color: #374151; }
html[data-theme="dark"] .cap-pill.cap-green,
html[data-theme="dark"] .cap-pill:not(.cap-yellow):not(.cap-red):not(.cap-unknown) {
  background: #14532d;
  color: #bbf7d0;
}
html[data-theme="dark"] .cap-pill.cap-yellow { background: #b45309; color: #fff7ed; }
html[data-theme="dark"] .cap-pill.cap-red { background: #991b1b; color: #fee2e2; }
html[data-theme="dark"] .cap-pill.cap-unknown { background: #374151; color: #e5e7eb; }
.cap-overall { margin-bottom: 1rem; }
.stats-hero .stat b { font-size: 22px; }
.stats-compact { margin-bottom: .85rem; }
.stats-compact .stat { padding: .55rem .7rem; }
.stats-compact .stat b { font-size: 18px; }
.stats-compact .stat small.muted { display: block; margin-top: .15rem; font-weight: 500; color: var(--fee-muted); }
/* Settings Payments crypto gateway panels (Settings/Health recovery). */
.gateway-picks { border: 0; margin: .75rem 0; padding: 0; }
.gateway-pick { display: flex; align-items: flex-start; gap: .55rem; margin: .45rem 0; }
.gateway-panels { display: grid; gap: 1rem; margin-top: 1rem; }
@media (min-width: 860px) {
  .gateway-panels { grid-template-columns: 1fr 1fr; }
}
.gateway-panel { padding: .85rem 1rem; border: 1px solid var(--fee-line); border-radius: 8px; }
.chart-card { min-height: 0; }
.chart-card .chart-box {
  position: relative;
  width: 100%;
  height: 220px;
  max-height: 220px;
  overflow: hidden;
}
.chart-card .chart-box canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-height: 220px;
}
.dash-charts-hero { margin-bottom: 1rem; }
.dash-tabs { margin: 0 0 1.2rem; }
.dash-tablist { display: flex; flex-wrap: wrap; gap: .35rem; border-bottom: 1px solid var(--fee-line); margin-bottom: .85rem; }
.dash-tab { appearance: none; background: transparent; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: .5rem .7rem; font: inherit; font-weight: 650; font-size: 13px; color: var(--fee-muted); cursor: pointer; }
.dash-tab:hover { color: var(--fee-teal-dark); }
.dash-tab.is-active { color: var(--fee-teal-dark); border-bottom-color: var(--fee-teal); }
.dash-tabpanel { display: none; }
.dash-tabpanel.is-active { display: block; }
.fee-hp {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Email Verification — ONE stable centered application shell across all routes.
   Desktop: ~72% of .app-content, centered (90% × 0.80). Narrower viewports expand.
   Title, tabs, alert, and outer content share the same left origin + width.
   Do NOT change shell geometry via :has(.verify-data) or route-specific max-width.
   Narrow forms center INSIDE .verify-workflow; wide tables fill .verify-data.
   Job detail (/verification/jobs/{id}) MUST use the same .verify-page shell. */
.verify-page {
  width: 72%;
  max-width: 100%;
  margin-inline: auto;
  min-width: 0;
}
@media (max-width: 1440px) {
  .verify-page {
    width: min(82%, 100%);
  }
}
@media (max-width: 1200px) {
  .verify-page {
    width: min(90%, 100%);
  }
}
@media (max-width: 1024px) {
  .verify-page {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
  }
}
.verify-page--data .verify-panel,
.verify-data > .verify-panel {
  padding: .85rem .75rem;
}
.verify-shell { width: 100%; max-width: 100%; min-width: 0; }
.verify-admin-shell {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-inline: 0;
}
.verify-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: .85rem 1.25rem;
  margin: 0 0 .85rem;
}
.verify-page-title {
  margin: 0 0 .35rem;
  font-size: var(--fee-fs-page);
  line-height: var(--fee-lh-page);
  font-weight: 700;
  color: var(--fee-text);
}
.verify-page-lede,
.verify-section-lede,
.verify-body {
  margin: 0;
  font-size: var(--fee-fs-body);
  line-height: var(--fee-lh-body);
  color: var(--fee-text-secondary, var(--fee-muted));
  font-weight: 450;
}
.verify-section-lede { margin: 0 0 .85rem; max-width: 40rem; }
.verify-section-title,
.verify-card-title {
  margin: 0 0 .4rem;
  font-size: var(--fee-fs-section);
  line-height: var(--fee-lh-section);
  font-weight: 700;
  color: var(--fee-text);
}
.verify-card-title { font-size: var(--fee-fs-card); }
.verify-meta { font-size: var(--fee-fs-meta); line-height: var(--fee-lh-meta); color: var(--fee-muted); }
.verify-credit-status {
  min-width: 11rem;
  padding: .65rem .8rem;
  border: 1px solid var(--fee-border);
  border-radius: 10px;
  background: var(--fee-surface);
  box-shadow: var(--fee-shadow-sm);
}
.verify-credit-status-value {
  display: block;
  font-size: 1.35rem;
  line-height: 1.15;
  font-weight: 750;
  color: var(--fee-text);
}
.verify-credit-status-label {
  display: block;
  margin-top: .15rem;
  font-size: var(--fee-fs-meta);
  color: var(--fee-text-secondary, var(--fee-muted));
  font-weight: 600;
}
.verify-credit-status-meta {
  margin-top: .35rem;
  font-size: var(--fee-fs-meta);
  color: var(--fee-muted);
}
.verify-credit-status-link {
  display: inline-block;
  margin-top: .45rem;
  font-size: var(--fee-fs-compact);
  font-weight: 650;
}
.verify-feature-off {
  margin: 0 0 1rem;
  padding: .85rem 1rem;
  border: 1px solid color-mix(in srgb, var(--fee-warning) 35%, var(--fee-border));
  border-radius: 10px;
  background: color-mix(in srgb, var(--fee-accent) 10%, var(--fee-surface));
}
.verify-feature-off strong {
  display: block;
  margin-bottom: .25rem;
  font-size: var(--fee-fs-card);
  color: var(--fee-text);
}
.verify-feature-off p { margin: 0; color: var(--fee-text-secondary, var(--fee-muted)); font-size: var(--fee-fs-compact); }
.credits-route-header { margin: 0 0 1rem; }
.credits-pro-chip {
  display: inline-block;
  margin: .55rem 0 0;
  padding: .2rem .55rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--fee-accent) 18%, transparent);
  color: var(--fee-accent);
  font-size: var(--fee-fs-meta);
  font-weight: 750;
}
/*
 * Credits package selector — OWNED by .verify-credit-selector*
 * Do NOT share track/fill/border rules with .verify-job-progress*.
 * Outer rail width is always 100% of the choose column; --credits-fill
 * only sizes the INNER fill bar and must never size the border.
 * Native range track is fully neutralized — FEE track/fill/thumb are the only visuals.
 */
.verify-credit-selector {
  margin: 0 0 .85rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.verify-credit-selector__rail {
  --credits-fill: 0%;
  position: relative;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 2.65rem;
  padding: .85rem 1rem;
  border: 1px solid var(--fee-border);
  border-radius: 10px;
  background: var(--fee-surface);
  cursor: pointer;
}
.verify-credit-selector__track {
  position: absolute;
  left: 1rem;
  right: 1rem;
  top: 50%;
  height: 10px;
  margin-top: -5px;
  border-radius: 999px;
  background: var(--fee-line);
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.verify-credit-selector__fill {
  display: block;
  height: 100%;
  width: var(--credits-fill, 0%);
  max-width: 100%;
  border-radius: inherit;
  background: var(--fee-teal);
}
.credits-slider-track {
  position: absolute;
  left: 1rem;
  right: 1rem;
  top: 50%;
  height: 0;
  margin-top: 0;
  pointer-events: none;
  z-index: 1;
}
.credits-slider-tick {
  position: absolute;
  top: 0;
  width: 6px;
  height: 6px;
  margin-top: -3px;
  margin-left: -3px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--fee-border) 70%, #fff);
  border: 0;
  box-shadow: none;
  z-index: 1;
  pointer-events: none;
  opacity: .9;
}
.credits-slider-tick.is-active {
  /* Active position is the range thumb only — hide the tick underneath. */
  opacity: 0;
  background: transparent;
  box-shadow: none;
}
.credits-slider-labels {
  position: relative;
  height: 1.35rem;
  margin-top: .55rem;
  padding: 0 .15rem;
}
.credits-slider-label {
  position: absolute;
  transform: translateX(-50%);
  font-size: 11px;
  color: var(--fee-muted);
  white-space: nowrap;
}
.credits-slider-label.is-active {
  color: var(--fee-teal-dark);
  font-weight: 750;
}
.credits-config-shell { max-width: 100%; }
@media (max-width: 1100px) {
  .dash-grid--primary,
  .dash-grid--intel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .dash-grid--primary,
  .dash-grid--secondary,
  .dash-grid--intel { grid-template-columns: 1fr; }
  .verify-header { flex-direction: column; }
  .credits-slider-label:nth-child(even) { display: none; }
}
.docs-code {
  display: block;
  overflow-x: auto;
  padding: .75rem .9rem;
  border-radius: 8px;
  background: color-mix(in srgb, var(--fee-wash) 70%, var(--fee-surface));
  border: 1px solid var(--fee-border);
  font-size: var(--fee-fs-compact);
  line-height: 1.45;
}
.api-token-plain {
  display: block;
  word-break: break-all;
  padding: .65rem .75rem;
  border-radius: 8px;
  background: var(--fee-surface-muted);
  border: 1px solid var(--fee-border);
  font-size: var(--fee-fs-compact);
}
.settings-links { margin: .35rem 0 0; padding-left: 1.1rem; }
.settings-links li { margin: .25rem 0; }


/* Verification credits configurator */
.credits-config { max-width: 100%; }
.credits-config-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem 1.25rem;
  margin: 0 0 1rem;
  max-width: 1280px;
}
.credits-config-header h1 { margin: 0 0 .3rem; font-size: 1.4rem; }
.credits-config-lede { margin: 0; color: var(--fee-muted); max-width: 34rem; }
.credits-config-status {
  min-width: 9.5rem;
  max-width: 12rem;
  padding: .55rem .7rem;
  border: 1px solid var(--fee-line);
  border-radius: 8px;
  background: var(--fee-surface);
}
.credits-config-status-row {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: baseline;
  font-size: 12px;
}
.credits-config-status-row + .credits-config-status-row { margin-top: .3rem; }
.credits-config-status-k { color: var(--fee-muted); text-transform: uppercase; letter-spacing: .04em; font-size: 11px; }
.credits-config-status-v { font-weight: 750; font-size: 13px; }
.credits-config-status-pro { font-weight: 750; color: var(--fee-teal-dark); font-size: 12px; }

.credits-config-shell {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.credits-config-panel {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border: 1px solid var(--fee-line);
  border-radius: 12px;
  background: var(--fee-surface);
  overflow: visible;
}
@media (min-width: 1024px) {
  .credits-config-panel,
  .checkout-page--intent[data-checkout-mode="pro"] .credits-config-panel,
  .credits-config-shell[data-checkout-mode="pro"] .credits-config-panel,
  .checkout-page--intent[data-checkout-mode="credits"] .credits-config-panel,
  .credits-config-shell[data-checkout-mode="credits"] .credits-config-panel {
    /* Shared Pro + credits shell: ~66% main / ~34% summary (~360–400px at 1160). */
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.52fr);
  }
}
.credits-config-choose,
.credits-config-summary { padding: 1.1rem 1.15rem 1.2rem; min-width: 0; }
.credits-config-summary {
  border-left: 1px solid var(--fee-line);
  background: color-mix(in srgb, var(--fee-wash, transparent) 55%, var(--fee-surface));
}
.credits-config-section-title {
  margin: 0 0 .55rem;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--fee-muted);
}
.credits-config-prompt { margin: 0 0 .85rem; color: var(--fee-ink); font-size: 15px; }
.credits-config-qty { margin: 0 0 .75rem; }
.credits-config-qty-num {
  display: block;
  font-size: 28px;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--fee-ink);
}
.credits-config-qty-unit { color: var(--fee-muted); font-size: 13px; }

.credits-slider-wrap { margin: 0; max-width: 100%; width: 100%; }
.credits-slider,
.verify-credit-selector__range {
  /* Full-rail hit target; native track fully neutralized. */
  appearance: none;
  -webkit-appearance: none;
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 2.75rem;
  max-width: none !important;
  margin: 0;
  padding: 0 1rem;
  border: 0 !important;
  border-radius: 10px;
  background: transparent !important;
  color: transparent;
  outline: none;
  cursor: pointer;
}
.credits-slider::-webkit-slider-runnable-track,
.verify-credit-selector__range::-webkit-slider-runnable-track {
  height: 10px;
  border: 0;
  border-radius: 999px;
  background: transparent !important;
  box-shadow: none;
}
.credits-slider::-moz-range-track,
.verify-credit-selector__range::-moz-range-track {
  height: 10px;
  border: 0;
  border-radius: 999px;
  background: transparent !important;
  box-shadow: none;
}
.credits-slider::-moz-range-progress,
.verify-credit-selector__range::-moz-range-progress {
  height: 10px;
  border: 0;
  border-radius: 999px;
  background: transparent !important;
}
.credits-slider::-webkit-slider-thumb,
.verify-credit-selector__range::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  margin-top: -5px;
  border-radius: 50%;
  background: var(--fee-teal);
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px var(--fee-teal-dark);
  cursor: pointer;
  position: relative;
  z-index: 3;
}
.credits-slider::-moz-range-thumb,
.verify-credit-selector__range::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--fee-teal);
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px var(--fee-teal-dark);
  cursor: pointer;
}
.credits-slider:focus-visible,
.verify-credit-selector__range:focus-visible {
  outline: 2px solid var(--fee-teal-dark);
  outline-offset: 2px;
}
.credits-slider-ends {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: .5rem;
  font-size: 12px;
  color: var(--fee-muted);
}
.credits-slider-ends > span:last-child { text-align: right; }
.credits-slider-active {
  justify-self: center;
  font-weight: 750;
  color: var(--fee-teal-dark);
  min-width: 2.5rem;
  text-align: center;
}

.credits-quick-title { margin-top: .15rem; }
.credits-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .4rem;
}
.credits-quick-btn {
  min-height: 44px;
  border: 1px solid var(--fee-line);
  border-radius: 8px;
  background: var(--fee-surface);
  color: var(--fee-ink);
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  padding: .4rem .3rem;
}
.credits-quick-btn:hover { border-color: var(--fee-teal); }
.credits-quick-btn.is-selected {
  border-color: var(--fee-teal);
  background: var(--fee-wash);
  box-shadow: 0 0 0 1px var(--fee-teal);
  color: var(--fee-teal-dark);
}
.credits-quick-btn:focus-visible { outline: 2px solid var(--fee-teal-dark); outline-offset: 2px; }

.credits-summary-qty { margin: 0 0 .45rem; font-size: 15px; font-weight: 700; }
.credits-summary-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .35rem .55rem;
  margin: 0 0 .35rem;
}
/* Line-item amounts — secondary to Due today */
.credits-summary-pay {
  font-size: 1.4rem; /* ~22.4px */
  font-weight: 750;
  line-height: 1.1;
  color: var(--fee-ink);
  letter-spacing: -0.015em;
}
.credits-config-summary [data-summary-pro-amount].credits-summary-pay {
  font-size: 1.45rem;
  font-weight: 750;
  color: var(--fee-ink);
}
.credits-summary-list { color: var(--fee-muted); font-size: 14px; }
.credits-summary-list s { text-decoration: line-through; }
.credits-summary-save {
  display: inline-block;
  margin: 0 0 .45rem;
  padding: .18rem .45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--fee-teal) 18%, transparent);
  color: var(--fee-teal-dark);
  font-size: 12px;
  font-weight: 700;
}
.credits-summary-unit { margin: 0 0 .85rem; color: var(--fee-muted); font-size: 13px; }
.is-hidden { display: none !important; }

.intent-summary-totals {
  margin: 0 0 1rem;
  padding: .85rem 0 .15rem;
  border-top: 1px solid var(--fee-line);
}
.intent-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .75rem;
}
.intent-summary-row > span {
  font-size: 16px;
  font-weight: 700;
  color: var(--fee-ink);
  flex: 1 1 auto;
  min-width: 0;
}
.intent-summary-row > strong,
.intent-summary-row [data-summary-due] {
  font-size: 1.75rem; /* ~28px — dominant money signal */
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--fee-teal-dark);
  flex: 0 0 auto;
  white-space: nowrap;
  text-align: right;
}
.credits-summary-qty,
.credits-summary-unit {
  overflow-wrap: anywhere;
}
.credits-summary-unit {
  white-space: nowrap;
}

.credits-summary-paymethod { margin: 0 0 1rem; }
.credits-pay-compact {
  display: grid;
  /* Equal Card | Crypto — no 200px floor that overflows a ~360–400px summary. */
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 0 0 .45rem;
}
.credits-pay-compact .pay-option--compact {
  min-height: 68px;
  padding: .7rem .75rem;
  min-width: 0;
}
.credits-pay-compact .pay-option--compact .pay-marks {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  overflow: visible;
  min-width: 0;
}
.credits-pay-compact .pay-option--compact .pay-mark {
  height: 18px;
  width: auto;
  max-width: 36px;
  object-fit: contain;
  flex: 0 0 auto;
}
.credits-pay-compact .pay-option--compact .pay-mark-coin {
  height: 20px;
  width: 20px;
  flex: 0 0 20px;
  object-fit: contain;
}
.credits-pay-compact .pay-option { margin: 0; height: 100%; }
.credits-pay-compact:has(> :only-child) { grid-template-columns: 1fr; }
.credits-pay-hint { margin: 0; color: var(--fee-muted); font-size: 12px; line-height: 1.4; }
.credits-pay-unavailable {
  border: 1px dashed var(--fee-line);
  border-radius: 8px;
  padding: .7rem .75rem;
  background: var(--fee-surface);
  min-height: 0;
}
.credits-pay-unavailable strong { display: block; margin-bottom: .25rem; font-size: 13px; }
.credits-pay-unavailable p { margin: 0; color: var(--fee-muted); font-size: 12px; line-height: 1.45; }

.credits-config-cta {
  width: 100%;
  justify-content: center;
  padding: .75rem 1rem;
  font-size: 1rem;
}
.credits-config-cta:disabled { opacity: .55; cursor: not-allowed; }
.credits-config-fineprint { margin: .5rem 0 0; color: var(--fee-muted); font-size: 12px; text-align: center; }

.credits-state {
  border: 1px solid var(--fee-line);
  border-radius: 10px;
  padding: 1rem 1.1rem;
  margin: 0 0 1rem;
  background: var(--fee-surface);
  max-width: 1280px;
}
.credits-state h2 { margin: 0 0 .4rem; font-size: 1.1rem; }
.credits-state--success { border-color: #7eb8a0; background: color-mix(in srgb, #d8f3e4 55%, var(--fee-surface)); }
.credits-state--pending { border-color: #c9b27a; }
.credits-state--error { border-color: #e0a0a0; }
.credits-state-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }

@media (max-width: 1023px) {
  .credits-config-panel { grid-template-columns: 1fr; }
  .credits-config-summary { border-left: 0; border-top: 1px solid var(--fee-line); }
}
@media (max-width: 560px) {
  .credits-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .credits-config-qty-num { font-size: 30px; }
  .credits-pay-compact { grid-template-columns: 1fr; }
  .credits-summary-unit { white-space: normal; }
}

html[data-theme="dark"] .credits-config-status-pro,
body.theme-dark .credits-config-status-pro,
html[data-theme="dark"] .credits-summary-pay,
body.theme-dark .credits-summary-pay,
html[data-theme="dark"] .credits-summary-save,
body.theme-dark .credits-summary-save,
html[data-theme="dark"] .credits-slider-active,
body.theme-dark .credits-slider-active,
html[data-theme="dark"] .credits-quick-btn.is-selected,
body.theme-dark .credits-quick-btn.is-selected { color: #8ee0b0; }
html[data-theme="dark"] .credits-state--success,
body.theme-dark .credits-state--success { background: #163d2a; border-color: #2f6b4d; }
html[data-theme="dark"] .credits-slider::-webkit-slider-thumb,
body.theme-dark .credits-slider::-webkit-slider-thumb { border-color: #0f1c18; }

@media (prefers-reduced-motion: reduce) {
  .credits-summary-pay, .credits-config-qty-num { transition: none; }
}

/* Focused form cards: narrower max-width, centered WITHIN the stable shell.
   Never put margin-auto / max-width on .verify-page itself. */
.verify-workflow,
.verify-workflow--single,
.verify-workflow--bulk {
  width: 100%;
  max-width: 60rem;
  margin-inline: auto;
  min-width: 0;
}
/* Projects planner fills the shared shell (table of counts); do not force a narrow card. */
.verify-workflow--projects {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
  min-width: 0;
}
.verify-workflow--narrow { max-width: 42rem; }
.verify-data { width: 100%; max-width: 100%; min-width: 0; }
.verify-shell > .verify-tabs,
.verify-shell > .verify-balance-bar,
.verify-shell > .app-banner { max-width: 100%; }
.verify-balance-bar { justify-content: flex-start; }
.verify-workflow .verify-balance-bar,
.verify-shell > .verify-balance-bar { max-width: 100%; }

.verify-discover-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  margin: .85rem 0 0;
}
.verify-discover-grid--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 960px) {
  .verify-discover-grid--three { grid-template-columns: minmax(0, 1fr); }
}
.verify-discover-card {
  display: grid;
  gap: .35rem;
  padding: .9rem 1rem;
  border: 1px solid var(--fee-line);
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  background: var(--fee-surface);
  color: var(--fee-text);
}
.verify-discover-card:hover {
  border-color: var(--fee-teal-dark);
  text-decoration: none;
}
.verify-discover-card strong { font-size: 1rem; }
.verify-discover-card span {
  color: var(--fee-muted);
  font-size: .9rem;
  line-height: 1.4;
}
@media (max-width: 720px) {
  .verify-discover-grid { grid-template-columns: minmax(0, 1fr); }
}

.verify-panel {
  background: var(--fee-surface);
  border: 1px solid #b8c9c2;
  border-radius: 10px;
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}
html[data-theme="dark"] .verify-panel,
body.theme-dark .verify-panel { border-color: #3d524c; }
.verify-panel > h2 { margin: 0 0 .65rem; font-size: 1.05rem; line-height: 1.3; }
.verify-panel > .muted:first-of-type { margin-top: 0; }

.verify-balance-bar { display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:center; margin:0 0 .85rem; font-size:13px; }
.verify-balance-bar a { color: var(--fee-teal); }
/*
 * Active job progress — OWNED by .verify-job-progress*
 * Isolated from .verify-credit-selector so rail/border fixes never collide.
 */
.verify-job-progress {
  margin: 0 0 .25rem;
}
.verify-job-progress__track,
.verify-progress-bar {
  box-sizing: border-box;
  height: 10px;
  border: 1px solid var(--fee-border);
  border-radius: 999px;
  background: var(--fee-surface);
  overflow: hidden;
  margin: .65rem 0 1rem;
  width: 100%;
  max-width: 100%;
}
.verify-job-progress__fill,
.verify-progress-bar-fill {
  display: block;
  height: 100%;
  background: var(--fee-teal);
  border-radius: inherit;
  transition: width .25s ease;
  min-width: 0;
}
.verify-actions { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:.75rem; margin-bottom:1rem; }
.verify-actions.is-disabled { opacity:.92; }
.verify-action-card h2 { margin-top:0; font-size:1.05rem; }

/* Stronger controls inside Verification — global borders are too faint here.
   Do NOT set max-width here: it beats compact field caps (e.g. Save to Leads 28rem)
   because input:not(...) specificity outranks .verify-save-leads input[type=text].
   Exclude range — Credits slider must span the full choose column. */
.verify-shell input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]),
.verify-shell select,
.verify-shell textarea {
  border-color: #8fa89f;
  background: var(--fee-surface);
}
html[data-theme="dark"] .verify-shell input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]),
html[data-theme="dark"] .verify-shell select,
html[data-theme="dark"] .verify-shell textarea,
body.theme-dark .verify-shell input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]),
body.theme-dark .verify-shell select,
body.theme-dark .verify-shell textarea { border-color: #5a736b; }

.verify-upload-form { display: flex; flex-direction: column; gap: .75rem; max-width: 100%; }
.verify-upload-form .verify-drop {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .45rem;
  width: 100%;
  max-width: 100%;
  border: 1.5px dashed #7f9a91;
  border-radius: 8px;
  padding: .85rem 1rem;
  background: var(--fee-wash, #f3f7f5);
  cursor: pointer;
}
html[data-theme="dark"] .verify-upload-form .verify-drop,
body.theme-dark .verify-upload-form .verify-drop {
  border-color: #5a736b;
  background: rgba(255,255,255,.03);
}
.verify-upload-form .verify-drop:hover,
.verify-upload-form .verify-drop:focus-within {
  border-color: var(--fee-teal);
  outline: none;
}
.verify-upload-form .verify-drop-title { font-weight: 650; font-size: 13px; color: var(--fee-text); }
.verify-upload-form .verify-drop-hint { font-size: 12px; color: var(--fee-muted); line-height: 1.4; }
.verify-upload-form .verify-drop input[type=file] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.verify-upload-form .verify-file-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0 .75rem;
  border-radius: var(--fee-radius-sm);
  border: 1px solid #8fa89f;
  background: var(--fee-surface);
  color: var(--fee-teal-dark);
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  pointer-events: none;
}
.verify-upload-form .verify-file-name {
  font-size: 12px;
  color: var(--fee-text);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.verify-upload-form .verify-label-field { display: block; margin: 0; max-width: 100%; }
.verify-upload-form .verify-label-field input { width: 100%; margin-top: .35rem; }
.verify-upload-form .verify-form-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .15rem; }
.verify-upload-form .verify-inline-row {
  display: flex;
  flex-wrap: nowrap;
  gap: .55rem .6rem;
  align-items: flex-end;
  justify-content: flex-start;
  width: auto;
  max-width: 100%;
}
.verify-upload-form .verify-inline-row .verify-inline-field {
  flex: 0 0 auto;
  width: 24rem;
  max-width: 100%;
}
.verify-upload-form .verify-inline-row .verify-inline-field label { display: block; margin: 0 0 .35rem; }
.verify-upload-form .verify-inline-row .verify-inline-field input {
  width: 100%;
  height: var(--fee-control-h, 2.25rem);
  border-width: 1.5px;
  border-color: #6f8f84;
}
.verify-upload-form .verify-inline-row .btn {
  flex: 0 0 auto;
  height: var(--fee-control-h, 2.25rem);
  white-space: nowrap;
  align-self: flex-end;
}

.stack-form label { display:block; margin:.5rem 0; }
.stack-form input, .stack-form select { width:100%; max-width:100%; }
.verify-status-chips { display:flex; flex-wrap:wrap; gap:.4rem; margin:.65rem 0; }
.verify-status-chips .badge b { margin-left:.25rem; }
.verify-result-toolbar { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:space-between; align-items:center; margin:0 0 .75rem; }
.verify-filters { display:flex; flex-wrap:wrap; gap:.35rem; }
.verify-back { margin:0 0 .5rem; }
.verify-project-cta { display:flex; flex-wrap:wrap; gap:.5rem .75rem; align-items:center; margin:0 0 .75rem; }
.verify-provider-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:.75rem; margin-bottom:1rem; }
.verify-service-card .verify-service-toggle { display:flex; gap:.5rem; align-items:center; margin:.35rem 0 .5rem; }
.verify-admin .input-with-suffix,
.verify-admin .input-with-prefix {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.verify-admin .input-with-suffix .suffix,
.verify-admin .input-with-prefix .prefix {
  color: var(--fee-muted);
  font-size: 13px;
  white-space: nowrap;
}
.verify-admin .field-error {
  display: block;
  color: var(--fee-danger);
  font-size: 12px;
  margin-top: .25rem;
}
.verify-admin .app-table td { white-space: normal; vertical-align: top; padding-top: .65rem; padding-bottom: .65rem; height: auto; }
.verify-admin-wide { max-width: none; width: 100%; }
.verify-pricing-globals {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.25rem;
  margin-top: 1rem;
  align-items: start;
}
.verify-pricing-globals--triple {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.verify-pricing-globals--quad {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.verify-pricing-global-field { display: block; margin: 0; font-weight: 600; }
.verify-pricing-global-field .input-with-suffix { margin-top: .35rem; }
.verify-pricing-global-field input[type="number"] { width: 100%; max-width: 8rem; margin-top: .35rem; }
.verify-pricing-label {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.verify-info {
  border: 0;
  background: transparent;
  color: var(--fee-muted, #5a6b66);
  cursor: help;
  font-size: 13px;
  line-height: 1;
  padding: 0;
}
.verify-bonus-input { width: 6.5rem !important; max-width: 8rem; text-align: right; font-variant-numeric: tabular-nums; }
.verify-field-hint { display: block; margin-top: .35rem; font-weight: 400; }
.verify-pricing-table { font-size: 14px; line-height: 1.35; }
.verify-pricing-table th.num,
.verify-pricing-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.verify-commercial-table {
  table-layout: fixed;
  width: 100%;
}
.verify-commercial-table th.col-bool,
.verify-commercial-table td.col-bool {
  width: 3rem;
  max-width: 3rem;
  min-width: 2.75rem;
  padding-left: .15rem;
  padding-right: .15rem;
  text-align: center;
  box-sizing: border-box;
  vertical-align: middle;
}
.verify-commercial-table col.col-enabled { width: 3rem; }
.verify-commercial-table col.col-credits { width: 6.5rem; }
.verify-commercial-table col.col-money { width: 9.5rem; }
.verify-commercial-table col.col-markup { width: 7.5rem; }
.verify-commercial-table col.col-discount { width: 12.75rem; }
.verify-commercial-table col.col-pro { width: 11.5rem; }
.verify-commercial-table th.num,
.verify-commercial-table td.num,
.verify-commercial-table th.col-num,
.verify-commercial-table td.col-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  vertical-align: middle;
}
.verify-commercial-table .verify-price-stack,
.verify-commercial-table .verify-per-1k {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .15rem;
  width: 100%;
}
.verify-commercial-table .input-with-prefix {
  justify-content: flex-end;
  width: 100%;
  max-width: 9rem;
  margin-left: auto;
}
.verify-commercial-table .input-with-suffix {
  justify-content: flex-end;
  margin-left: auto;
}
.verify-per-1k {
  font-size: 11.5px;
  font-weight: 400;
  line-height: 1.25;
  white-space: nowrap;
  opacity: .85;
}
.verify-money-input {
  width: 100%;
  max-width: 7.5rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.verify-markup-input {
  width: 5.5ch;
  min-width: 5.5ch;
  max-width: 7ch;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
/* Pro discount: reserve Global + Custom geometry; never wrap primary controls. */
.verify-pack-discount {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .35rem;
  min-width: 0;
  width: 100%;
}
.verify-discount-control {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: .4rem;
  min-width: 0;
  width: 100%;
}
.verify-discount-select {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  max-width: 11.5rem;
  margin: 0;
}
.verify-pct-narrow {
  width: 4.5ch;
  min-width: 4.5ch;
  max-width: 5.5ch;
  text-align: right;
  padding-left: .35rem;
  padding-right: .35rem;
  font-variant-numeric: tabular-nums;
}
.verify-custom-discount {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  visibility: hidden;
  pointer-events: none;
}
.verify-custom-discount.is-active {
  visibility: visible;
  pointer-events: auto;
}
.verify-custom-discount.is-hidden { /* legacy class kept for JS; prefer is-active */
  visibility: hidden;
  pointer-events: none;
}
.verify-effective-discount {
  margin-top: 0;
  font-size: 12px;
  line-height: 1.25;
  min-height: 1.25em;
}
.verify-ref-badge { margin: .15rem 0 .65rem; font-size: 12px; }
.verify-tier-credits { width: 7rem; max-width: 100%; }
#js-pricing-save.is-dirty { box-shadow: 0 0 0 2px rgba(15, 118, 110, .35); }
.field-error.is-hidden { display: none; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.verify-cost-provider .js-add-tier { margin-top: .75rem; }
.verify-cost-provider .js-remove-tier {
  min-width: 2rem;
  padding-left: .4rem;
  padding-right: .4rem;
  line-height: 1;
}
.verify-cost-provider .js-cost-ladder-table {
  table-layout: fixed;
  width: 100%;
}
.verify-cost-provider .js-cost-ladder-table th:nth-child(1),
.verify-cost-provider .js-cost-ladder-table td:nth-child(1) { width: 8rem; }
.verify-cost-provider .js-cost-ladder-table th:nth-child(2),
.verify-cost-provider .js-cost-ladder-table td:nth-child(2),
.verify-cost-provider .js-cost-ladder-table th:nth-child(3),
.verify-cost-provider .js-cost-ladder-table td:nth-child(3) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.verify-cost-provider .js-cost-ladder-table th:last-child,
.verify-cost-provider .js-cost-ladder-table td:last-child {
  width: 2.75rem;
  text-align: center;
  padding-inline: .2rem;
}
.verify-cost-provider .verify-tier-credits {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 1280px) {
  .verify-pricing-globals--quad { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1100px) {
  .verify-pricing-globals--triple { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .verify-pricing-globals,
  .verify-pricing-globals--triple,
  .verify-pricing-globals--quad { grid-template-columns: 1fr; }
}
.kv.compact { display:grid; grid-template-columns:auto 1fr; gap:.2rem .75rem; font-size:13px; }
.col-verify { white-space:nowrap; }
/* Domain Mail Ready = blue; mailbox Valid = green. Do not reuse these classes across layers. */
.badge.mail-status--verified { background: #d8f3e4; color: #0d5c36; }
.badge.mail-status--domain-ready,
.badge.mail-status--ready { background: var(--fee-domain-mail-ready-bg, #eff6ff); color: var(--fee-domain-mail-ready-text, #1d4ed8); border: 1px solid var(--fee-domain-mail-ready-border, #93c5fd); }
.badge.status-ok.mail-status--domain-ready,
.badge.status-info.mail-status--domain-ready,
.badge.status-ok.mail-status--ready,
.badge.status-info.mail-status--ready {
  background: var(--fee-domain-mail-ready-bg, #eff6ff);
  color: var(--fee-domain-mail-ready-text, #1d4ed8);
  border: 1px solid var(--fee-domain-mail-ready-border, #93c5fd);
}
.badge.mail-status--invalid,
.badge.mail-status--no-route { background: #fde2e2; color: #8a1f1f; }
.badge.mail-status--catch-all { background: #e8e4f6; color: #3d3470; border: 1px solid #c4b5fd; }
.badge.mail-status--mailbox-unknown { background: #fff3e0; color: #7a3e00; border: 1px solid #f0c98a; }
.badge.mail-status--domain-unknown { background: #f3e8d4; color: #6b4e16; }
.badge.mail-status--checking,
.badge.mail-status--unchecked { background: #e8ecef; color: #4a5560; }
html.theme-dark .badge.mail-status--verified,
body.theme-dark .badge.mail-status--verified { background: #163d2a; color: #8ee0b0; }
html.theme-dark .badge.mail-status--domain-ready,
body.theme-dark .badge.mail-status--domain-ready,
html[data-theme="dark"] .badge.mail-status--domain-ready,
html.theme-dark .badge.mail-status--ready,
body.theme-dark .badge.mail-status--ready,
html[data-theme="dark"] .badge.mail-status--ready,
html[data-theme="dark"] .badge.status-ok.mail-status--ready,
html[data-theme="dark"] .badge.status-info.mail-status--ready,
html[data-theme="dark"] .badge.status-ok.mail-status--domain-ready,
html[data-theme="dark"] .badge.status-info.mail-status--domain-ready,
html.theme-dark .badge.status-ok.mail-status--ready,
body.theme-dark .badge.status-ok.mail-status--ready,
html.theme-dark .badge.status-info.mail-status--ready,
body.theme-dark .badge.status-info.mail-status--ready { background: #16324d; color: #8ec5f0; border-color: #3b82c4; }
html.theme-dark .badge.mail-status--invalid,
body.theme-dark .badge.mail-status--invalid,
html.theme-dark .badge.mail-status--no-route,
body.theme-dark .badge.mail-status--no-route { background: #4a1c1c; color: #f0a0a0; }
html.theme-dark .badge.mail-status--catch-all,
body.theme-dark .badge.mail-status--catch-all { background: #2e2648; color: #d4c4f7; border-color: #7c6bb8; }
html.theme-dark .badge.mail-status--mailbox-unknown,
body.theme-dark .badge.mail-status--mailbox-unknown { background: #2c2648; color: #c4b8f0; }
html.theme-dark .badge.mail-status--domain-unknown,
body.theme-dark .badge.mail-status--domain-unknown { background: #3d3220; color: #e0c48a; }
html.theme-dark .badge.mail-status--checking,
body.theme-dark .badge.mail-status--checking,
html.theme-dark .badge.mail-status--unchecked,
body.theme-dark .badge.mail-status--unchecked { background: #2a3036; color: #a0a8b0; }

/* Verification workspace tabs + compact action forms */
.verify-tabs { display:flex; flex-wrap:wrap; gap:.4rem; margin:0 0 .85rem; border-bottom:1px solid var(--fee-border,#d8dee6); padding-bottom:.55rem; }
.verify-tabs a {
  display:inline-flex; align-items:center;
  padding:.55rem .95rem;
  border-radius:8px;
  text-decoration:none;
  color:var(--fee-text-secondary);
  font-weight:600;
  font-size:var(--fee-fs-body); /* 16px */
  line-height:1.3;
}
.verify-tabs a:hover { background:var(--fee-surface-hover); color:var(--fee-text); }
.verify-tabs a.is-active { background:var(--fee-teal,#0f6b5c); color:#fff; }
.verify-tabs a:focus-visible { outline:2px solid var(--fee-teal); outline-offset:2px; }

/* Always reset native fieldset chrome — default border caused phantom wide outlines */
fieldset.verify-fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

/* Field + CTA on one row: field modestly wider (+~50%), not stretched to the card edge. */
/* Row targeted by the Maps extension's Verify handoff (?project=ID). */
.verify-projects-row--focus > td { background: var(--fee-surface-muted); }
/* One accent bar at the row start only; on every cell it reads as column dividers. */
.verify-projects-row--focus > td:first-child { box-shadow: inset 3px 0 0 var(--fee-accent, #0f6b5c); }
.verify-inline-form {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .6rem;
  align-items: flex-end;
  justify-content: flex-start;
  width: 100%;
  max-width: 100%;
}
.verify-inline-form .verify-inline-row {
  display: flex;
  flex-wrap: nowrap;
  gap: .55rem .6rem;
  align-items: flex-end;
  justify-content: flex-start;
  width: auto;
  max-width: 100%;
}
.verify-inline-form .verify-inline-field {
  flex: 0 0 auto;
  width: 24rem; /* ~50% longer than prior ~16rem shrink-wrap; not full-card */
  min-width: 0;
  max-width: 100%;
}
.verify-inline-form .verify-inline-row .verify-inline-field {
  flex: 0 0 auto;
  width: 24rem;
}
.verify-inline-form .verify-inline-field input,
.verify-inline-form .verify-inline-field select {
  width: 100%;
  height: var(--fee-control-h, 2.25rem);
  border-width: 1.5px;
  border-color: #6f8f84;
}
.verify-inline-form .verify-inline-check {
  flex: 1 1 100%;
  width: 100%;
  max-width: 100%;
  margin-top: .15rem;
}
.verify-inline-form .verify-inline-check label { display:flex; gap:.5rem; align-items:center; font-weight:500; margin:0; }
.verify-inline-form .verify-inline-check input { width:auto; height:auto; min-height:0; max-width:none; }
.verify-inline-form .verify-field-hint { margin:.35rem 0 0; font-size:.82rem; line-height:1.4; max-width: 22rem; }
.verify-inline-form .btn,
.verify-inline-form .verify-inline-row .btn {
  flex: 0 0 auto;
  height: var(--fee-control-h, 2.25rem);
  white-space: nowrap;
  align-self: flex-end;
  margin-left: 0;
}

.verify-single-result { margin-bottom: .85rem; }
.verify-single-result .status-chip,
.verify-single-result .badge { display:inline-block; width:auto; padding:.2rem .6rem; border-radius:.35rem; font-weight:650; font-size:.95rem; }
.verify-single-hero-row { display: flex; gap: .85rem; align-items: flex-start; margin-bottom: .85rem; }
.verify-single-icon {
  flex: 0 0 auto;
  width: 2.4rem; height: 2.4rem; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.15rem; font-weight: 700; border: 1px solid transparent;
}
.verify-single-hero { margin: 0 0 .25rem; }
.verify-single-hero-label { font-size: 1rem; }
.verify-single-email { margin: 0 0 .2rem; font-size: 1.15rem; font-weight: 700; word-break: break-all; }
.verify-single-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: .55rem .9rem;
  margin: 0 0 .65rem;
}
.verify-single-grid dt { margin: 0; font-size: 11px; color: var(--fee-muted); text-transform: uppercase; letter-spacing: .03em; }
.verify-single-grid dd { margin: .1rem 0 0; font-weight: 650; }
.verify-help { margin: .35rem 0 0; font-size: 12.5px; color: var(--fee-muted); max-width: 36rem; }
.verify-discover-cta { display: block; margin-top: .55rem; font-weight: 650; color: var(--fee-brand); }
.verify-discover-formats { display: block; margin-top: .35rem; font-size: 12.5px; color: var(--fee-muted); }
/* API reference fills its shell. The old 52rem cap left code samples in a
   column much narrower than the public header and the signed-in workspace.
   Prose stays at a readable measure; cards, code, and tables use the canvas. */
.docs-api { width: 100%; max-width: none; }
.docs-api p,
.docs-api li { max-width: 68ch; }
.docs-api code { overflow-wrap: anywhere; }
.docs-panel { scroll-margin-top: 5.5rem; }
body.fee-public.is-api-docs .pub-bar,
body.fee-public.is-api-docs .pub-main,
body.fee-public.is-api-docs .pub-footer-grid,
body.fee-public.is-api-docs .pub-footer-bottom {
  max-width: 90rem;
}
body.fee-public.is-api-docs .pub-main { padding-top: 1.5rem; }
.docs-api-hero h1 { margin: 0 0 .35rem; font-size: 1.6rem; }
.docs-api-meta { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.docs-api-toc { display: flex; flex-wrap: wrap; gap: .5rem .85rem; margin: 0 0 1rem; }
.docs-api-toc a { font-size: 13px; }
.docs-note { padding: .65rem .8rem; border-radius: 8px; background: var(--fee-wash, #f3f7f5); border: 1px solid var(--fee-line); }
.docs-fields { width: 100%; max-width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 13px; margin: .75rem 0; }
.docs-fields th, .docs-fields td { text-align: left; padding: .4rem .5rem; border-bottom: 1px solid var(--fee-line); vertical-align: top; overflow-wrap: anywhere; }
.docs-code { max-width: 100%; }
.docs-examples h3 { margin: .85rem 0 .35rem; font-size: 13px; }
.app-nav-recent-link.is-active {
  font-weight: 700;
}
.pricing-savings-summary { background: color-mix(in srgb, #e8f5ef 70%, #fff); border-style: solid; }
.pricing-savings-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: .75rem;
}
.pricing-savings-stat { display: grid; gap: .15rem; }
.pricing-savings-stat strong { font-size: 1.05rem; font-variant-numeric: tabular-nums; color: var(--fee-brand, #1b5e45); }
.pricing-savings-stat span { font-size: 12px; color: var(--fee-muted); }
.pricing-savings-badge-row { display: flex; align-items: center; gap: .55rem; margin: 0; font-size: 13px; }
.verify-savings-badge { display: inline-flex; padding: .2rem .55rem; border-radius: 999px; }
.verify-stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(9rem,1fr)); gap:.75rem; margin:0 0 1rem; }
.verify-stat-card { padding:.85rem 1rem; border:1px solid var(--fee-border,#d8dee6); border-radius:8px; background:var(--fee-surface,#fff); }
.verify-stat-card .muted { display:block; font-size:12px; margin-bottom:.2rem; }
.verify-stat-card strong { font-size:1.25rem; font-variant-numeric:tabular-nums; }
.verify-quick-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 .85rem; }
.verify-quick-actions .btn { min-height: 2.15rem; }

.verify-shell.is-service-off .verify-panel { opacity: 1; }
.verify-shell.is-service-off fieldset.verify-fieldset:disabled {
  opacity: 1;
  pointer-events: none;
  filter: none;
}
.verify-shell.is-service-off fieldset.verify-fieldset:disabled,
.verify-shell.is-service-off fieldset.verify-fieldset:disabled .verify-panel,
.verify-shell.is-service-off fieldset.verify-fieldset:disabled input,
.verify-shell.is-service-off fieldset.verify-fieldset:disabled select,
.verify-shell.is-service-off fieldset.verify-fieldset:disabled textarea,
.verify-shell.is-service-off fieldset.verify-fieldset:disabled .btn {
  background: var(--fee-surface-muted);
  color: var(--fee-muted);
  border-color: var(--fee-line);
}
html[data-theme="dark"] .verify-shell.is-service-off fieldset.verify-fieldset:disabled .btn:disabled,
html[data-theme="dark"] .verify-shell.is-service-off .btn:disabled {
  background: var(--fee-surface-muted);
  color: var(--fee-muted);
  opacity: 1;
}

@media (max-width: 900px) {
  .verify-actions, .verify-provider-grid { grid-template-columns: 1fr; }
  .verify-workflow { max-width: 100%; }
}
@media (max-width: 640px) {
  .verify-result-toolbar { flex-direction:column; align-items:stretch; }
  .verify-inline-form,
  .verify-inline-form .verify-inline-row { flex-direction:column; align-items:stretch; width: 100%; }
  .verify-inline-form .verify-inline-field { max-width: 100%; flex-basis: auto; width: 100%; }
  .verify-inline-form .btn,
  .verify-inline-form .verify-inline-row .btn { width:100%; }
  .verify-upload-form .verify-drop,
  .verify-upload-form .verify-label-field { max-width: 100%; }
  .verify-upload-form .verify-inline-row { flex-direction: column; align-items: stretch; width: 100%; }
  .verify-upload-form .verify-inline-row .verify-inline-field { width: 100%; }
  .verify-upload-form .verify-inline-row .btn { width: 100%; }
  .verify-tabs { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; }
}


/* Lead edit — mailbox verification summary */
.app-lead-mailbox { margin: .75rem 0 1rem; padding: .65rem .75rem; border: 1px solid var(--fee-border, #d8dee6); border-radius: 6px; background: var(--fee-surface-2, #f7f9fc); }
.app-lead-mailbox h3 { margin: 0 0 .35rem; font-size: 13px; font-weight: 650; }
.app-lead-mailbox p { margin: .15rem 0; font-size: 13px; }
.app-lead-verify-actions { margin-top: .25rem; padding-top: 0; border-top: 0; }


/* Settings shell */
.settings-page { max-width: 960px; }
.settings-header { margin: 0 0 1rem; }
.settings-title { margin: 0 0 .35rem; font-size: var(--fee-fs-page); font-weight: 700; line-height: var(--fee-lh-page); color: var(--fee-text); }
.settings-lede { margin: 0; color: var(--fee-text-secondary); font-size: var(--fee-fs-body); line-height: var(--fee-lh-body); max-width: 40rem; }
.settings-tabs {
  display: flex; flex-wrap: nowrap; gap: .35rem;
  margin: 0 0 1.1rem; padding-bottom: .55rem;
  border-bottom: 1px solid var(--fee-border);
  overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.settings-tabs a {
  display: inline-flex; align-items: center;
  padding: .5rem .85rem; border-radius: 8px;
  text-decoration: none; white-space: nowrap;
  color: var(--fee-text-secondary);
  font-size: var(--fee-fs-compact); font-weight: 600;
}
.settings-tabs a:hover { background: var(--fee-surface-hover); color: var(--fee-text); }
.settings-tabs a.is-active { background: var(--fee-brand); color: #fff; }
.settings-tabs a:focus-visible { outline: 2px solid var(--fee-brand); outline-offset: 2px; }
.settings-panel { margin-bottom: 1rem; }
/* Settings → Exclusions */
.exclusions-policy-list { margin: .4rem 0 0; padding-left: 1.1rem; font-size: .9rem; line-height: 1.5; }
.exclusions-policy-list li + li { margin-top: .2rem; }
.exclusions-subtabs { margin: .25rem 0 1rem; }
.exclusions-count { display: inline-block; min-width: 1.4rem; margin-left: .3rem; padding: 0 .35rem; border-radius: 999px; font-size: .75rem; text-align: center; background: var(--fee-surface-muted); color: var(--fee-text-muted); }
.exclusions-layout { display: grid; grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); gap: 1rem; align-items: start; }
.exclusions-form label { display: block; margin: .6rem 0 .2rem; font-size: .85rem; font-weight: 600; }
.exclusions-form input, .exclusions-form textarea, .exclusions-form select { width: 100%; }
.exclusions-form-row { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: end; }
.exclusions-form-row > label { margin-top: .6rem; }
.exclusions-form-row .app-check-label { margin: 0 0 .35rem; }
.exclusions-list-head { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: space-between; align-items: center; margin-bottom: .75rem; }
.exclusions-search { display: flex; gap: .4rem; flex-wrap: wrap; }
.exclusions-search input { min-width: 14rem; }
.exclusions-table { table-layout: auto; width: 100%; }
.exclusions-table th { white-space: nowrap; }
.exclusions-table td { white-space: normal; overflow-wrap: break-word; }
.exclusions-table td.col-actions, .exclusions-table td.exclusions-added { white-space: nowrap; }
.exclusions-table code { font-size: .88rem; }
.exclusions-form .app-check-label { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; font-weight: 600; font-size: .85rem; }
.exclusions-form .app-check-label input { width: auto; }
.exclusions-invalid { margin: 0 0 .75rem; font-size: .88rem; }
.exclusions-invalid ul { margin: .35rem 0 0; padding-left: 1.1rem; }
.danger-text { color: var(--fee-danger, #b42318); }
@media (max-width: 900px) { .exclusions-layout { grid-template-columns: 1fr; } }
.settings-device-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
  margin: 0 0 1.25rem;
}
.settings-device-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 14rem;
  padding: 1.1rem 1.15rem 1.15rem;
  border: 1px solid var(--fee-border);
  border-radius: var(--fee-radius-md, 12px);
  background: var(--fee-surface-elevated, var(--fee-surface));
  box-shadow: var(--fee-shadow-sm);
}
.settings-device-card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .5rem .85rem;
  margin: 0 0 .85rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--fee-border);
}
.settings-device-card-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 750;
  letter-spacing: -.015em;
  color: var(--fee-text);
}
.settings-device-quota {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 750;
  letter-spacing: -.02em;
  line-height: 1.15;
  color: var(--fee-text);
  white-space: nowrap;
}
.settings-device-quota-sep {
  margin: 0 .1rem;
  color: var(--fee-muted);
  font-weight: 600;
}
.settings-device-quota-label {
  margin-left: .35rem;
  font-size: var(--fee-fs-compact);
  font-weight: 600;
  color: var(--fee-text-secondary, var(--fee-muted));
  letter-spacing: 0;
}
.settings-device-empty {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  padding: .35rem 0;
}
.settings-device-empty-title {
  margin: 0 0 .35rem;
  font-size: var(--fee-fs-body);
  font-weight: 650;
  color: var(--fee-text);
}
.settings-device-empty .muted { margin: 0; }
.settings-device-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .65rem;
}
.settings-device-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  padding: .7rem .75rem;
  border: 1px solid var(--fee-border);
  border-radius: 10px;
  background: var(--fee-surface);
}
.settings-device-item-main { min-width: 0; flex: 1 1 auto; }
.settings-device-item-name {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  font-weight: 650;
  color: var(--fee-text);
}
.settings-device-item-meta { margin: .2rem 0 0; }
.settings-device-item-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .35rem .75rem;
  margin: .55rem 0 0;
}
.settings-device-item-facts dt {
  margin: 0;
  font-size: var(--fee-fs-meta);
  line-height: var(--fee-lh-meta);
  font-weight: 650;
  color: var(--fee-muted);
  text-transform: uppercase;
  letter-spacing: .03em;
}
.settings-device-item-facts dd {
  margin: .1rem 0 0;
  font-size: var(--fee-fs-compact);
  color: var(--fee-text);
}
@media (max-width: 900px) {
  .settings-device-grid { grid-template-columns: 1fr; }
}

.admin-settings-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  width: 100%;
  max-width: 100%;
  margin-bottom: 1rem;
}
.admin-settings-form:not(.form-narrow) { max-width: none; width: 100%; }
.admin-settings-form .admin-settings-card { height: 100%; min-width: 0; }
@media (max-width: 1024px) {
  .admin-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .admin-settings-grid { grid-template-columns: 1fr; }
}
.stack-form label { display: block; margin: 0 0 .85rem; font-weight: 600; color: var(--fee-text); }
.stack-form input, .stack-form select {
  display: block; width: 100%; max-width: 28rem; margin-top: .35rem;
  min-height: var(--fee-control-h); padding: .55rem .7rem;
  border: 1px solid var(--fee-border); border-radius: 8px;
  background: var(--fee-surface); color: var(--fee-text);
  font-size: var(--fee-fs-body);
}

/* MX RRset details in contacts */
.mx-other-details { margin-top: .25rem; font-size: var(--fee-fs-meta); }
.mx-other-details summary { cursor: pointer; color: var(--fee-brand); font-weight: 600; }
.mx-other-details ul { margin: .35rem 0; padding-left: 1.1rem; }
.mx-rrset {
  margin: .35rem 0 0; padding: .5rem .6rem;
  background: var(--fee-surface-muted); border-radius: 6px;
  font-size: 12px; line-height: 1.45; white-space: pre-wrap;
  max-width: 28rem; overflow: auto;
}

@media (max-width: 720px) {
  .verify-tabs a { font-size: var(--fee-fs-compact); padding: .45rem .7rem; }
}


.verify-download-btn { white-space: nowrap; flex: 0 0 auto; }
.verify-exports { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.verify-download-menu {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
}
.verify-download-details { position: relative; }
.verify-download-details > summary {
  list-style: none;
  cursor: pointer;
}
.verify-download-details > summary::-webkit-details-marker { display: none; }
.verify-download-list {
  position: absolute;
  z-index: 20;
  top: calc(100% + .35rem);
  left: 0;
  min-width: 14rem;
  margin: 0;
  padding: .35rem;
  list-style: none;
  background: var(--fee-surface, #fff);
  border: 1px solid var(--fee-border, #d8dee6);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(12, 63, 55, .12);
}
.verify-download-list a {
  display: block;
  padding: .45rem .65rem;
  border-radius: 6px;
  text-decoration: none;
  color: var(--fee-text);
  white-space: nowrap;
}
.verify-download-list a:hover { background: var(--fee-wash, #f3f7f5); }
.verify-results-table-wrap { width: 100%; overflow-x: auto; }
@media (min-width: 1100px) {
  /* Table is fixed-layout at 100%, so nothing scrolls; keep overflow visible so the Warnings popover is not clipped. */
  .verify-results-table-wrap { overflow: visible; }
}
.verify-results-table {
  width: 100%;
  table-layout: fixed;
  font-size: 13px;
  border-collapse: collapse;
}
.verify-results-table th,
.verify-results-table td {
  padding: .5rem .4rem;
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
}
.verify-results-table .col-job { width: 21%; }
.verify-results-table .col-source { width: 13%; }
.verify-results-table .col-status { width: 9%; }
.verify-results-table .col-progress { width: 11%; }
.verify-results-table .col-count { width: 6.5%; }
.verify-results-table .col-catch,
.verify-results-table .col-unknown { width: 8%; }
.verify-results-table .col-expires { width: 9%; }
.verify-results-table .col-action { width: 8%; }
.verify-results-table td.col-source { white-space: normal; }
.verify-results-table .verify-job-name {
  /* Product · project · count: wrap to two lines rather than hiding the project name. */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  white-space: normal;
  overflow-wrap: anywhere;
}
.verify-results-table .col-count,
.verify-results-table .col-num,
.verify-results-table .col-progress,
.verify-results-table .col-status,
.verify-results-table .col-source,
.verify-results-table .col-expires,
.verify-results-table .col-action {
  text-align: center;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.verify-results-table .col-action {
  overflow: visible;
}
.verify-results-table .app-row-menu {
  display: inline-flex;
  justify-content: center;
}
.verify-results-table .verify-download-btn,
.verify-results-table .verify-delete-btn {
  padding: .3rem .45rem;
  font-size: 12px;
  white-space: nowrap;
}
@media (max-width: 1100px) {
  .verify-results-table .col-expires,
  .verify-results-table .col-source { display: none; }
}
@media (max-width: 900px) {
  .verify-results-table .col-catch,
  .verify-results-table .col-unknown { display: none; }
}
@media (max-width: 720px) {
  .verify-results-table .col-progress,
  .verify-results-table .col-count { display: none; }
}
.verify-num { font-variant-numeric: tabular-nums; }
.verify-result-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.75rem 1rem; align-items:center; margin: .75rem 0 1rem; }
/* Compact Save-to-Leads: Include / Existing project / New project share one control width. */
.verify-save-leads {
  max-width: 32rem;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.verify-save-leads .verify-save-field {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  width: min(100%, 28rem);
  max-width: 28rem;
}
.verify-save-leads .verify-save-or {
  margin: .15rem 0;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--fee-muted, #5a6b64);
  text-transform: uppercase;
}
.verify-save-leads .verify-save-field > select,
.verify-save-leads .verify-save-field > input[type="text"],
.verify-save-leads select,
.verify-save-leads input[type="text"] {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 28rem;
}
/* Projects planner: the page uses the full content column (nine columns of counts + actions);
   below ~1040px the wrap scrolls horizontally instead of truncating headers. */
.verify-page:has(.verify-workflow--projects),
.verify-page:has(.verify-results-table) { width: 100%; }
.app-table-wrap:has(.verify-projects-table) {
  overflow-x: auto;
  overflow-y: visible;
}
.verify-projects-table {
  width: 100%;
  min-width: 940px !important;
  table-layout: fixed;
}
.verify-projects-table th,
.verify-projects-table td {
  white-space: normal;
  overflow: visible;
  vertical-align: top;
  height: auto;
  padding-top: .65rem;
  padding-bottom: .65rem;
}
.verify-projects-table th { white-space: nowrap; }
.verify-projects-table .verify-inline-form {
  display: flex;
  justify-content: center;
}
.verify-projects-table .verify-projects-action .btn {
  white-space: nowrap;
}
.verify-projects-meta { margin: .15rem 0 0; font-size: .85rem; color: var(--fee-muted, #5a6b64); }

/* ── Canonical FEE data-table alignment system (customer + admin) ──
   Text/descriptive → left (.col-text)
   Numeric/financial → right + tabular-nums (.col-num / .num)
   Compact boolean checkbox → center (.col-bool)
   Actions → right (.col-actions)
   Header alignment always matches cell alignment.
*/
.fee-data-table th.col-text,
.fee-data-table td.col-text,
.app-table th.col-text,
.app-table td.col-text,
table.data th.col-text,
table.data td.col-text { text-align: left; }

.fee-data-table th.col-num,
.fee-data-table td.col-num,
.app-table th.col-num,
.app-table td.col-num,
.app-table th.num,
.app-table td.num,
.app-table.fee-data-table th.col-count,
.app-table.fee-data-table td.col-count,
.app-table.fee-data-table th.col-progress,
.app-table.fee-data-table td.col-progress,
.app-table.verify-results-table th.col-count,
.app-table.verify-results-table td.col-count,
.app-table.verify-results-table th.col-progress,
.app-table.verify-results-table td.col-progress,
table.data th.num,
table.data td.num,
.dash-kv dd.num {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

.fee-data-table th.col-bool,
.fee-data-table td.col-bool,
.app-table th.col-bool,
.app-table td.col-bool,
.verify-pricing-table th.col-bool,
.verify-pricing-table td.col-bool {
  text-align: center;
  width: 3.25rem;
  max-width: 3.5rem;
  padding-left: .35rem;
  padding-right: .35rem;
}

/* Right-align Actions only outside Leads/Maps — those headers must not hug the card edge. */
.fee-data-table th.col-actions,
.fee-data-table td.col-actions,
.app-table:not(.app-table--leads):not(.app-table--maps) th.col-actions,
.app-table:not(.app-table--leads):not(.app-table--maps) td.col-actions {
  text-align: right;
  overflow: visible;
}
.app-table.app-table--leads th.col-actions,
.app-table.app-table--leads td.col-actions,
.app-table.app-table--maps th.col-actions,
.app-table.app-table--maps td.col-actions {
  text-align: center !important;
  padding-left: 10px !important;
  padding-right: 1.25rem !important;
  overflow: visible !important;
}

/* Projects index: full-width row; data columns share space evenly; all text left. */
.app-table.app-table--projects {
  width: 100%;
  min-width: 52rem;
}
/* Percentages sum to 100% so leftover width cannot pile into Actions. */
.app-table--projects col.col-project { width: 18%; }
.app-table--projects col.col-type { width: 14%; }
.app-table--projects col.col-records { width: 14%; }
.app-table--projects col.col-with-email { width: 14%; }
.app-table--projects col.col-with-phone { width: 14%; }
.app-table--projects col.col-updated { width: 16%; }
.app-table--projects col.col-actions { width: 10%; }
.app-table--projects th,
.app-table--projects td {
  text-align: left !important;
}
.app-table--projects th.col-project,
.app-table--projects td.col-project {
  overflow: hidden;
  text-overflow: ellipsis;
}
.projects-name-lockup {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  max-width: 100%;
  min-width: 0;
  vertical-align: middle;
}
.projects-name-icon {
  width: 1.1rem;
  height: 1.1rem;
  flex: 0 0 auto;
}
.projects-name-lockup--extractor .projects-name-icon { color: #047857; }
.projects-name-lockup--maps .projects-name-icon { color: #0369a1; }
.projects-name-text {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 700;
  color: var(--fee-ink, var(--fee-text));
}
.app-table--projects th.col-type,
.app-table--projects td.col-type,
.app-table--projects th.col-records,
.app-table--projects td.col-records,
.app-table--projects th.col-with-email,
.app-table--projects td.col-with-email,
.app-table--projects th.col-with-phone,
.app-table--projects td.col-with-phone,
.app-table--projects th.col-updated,
.app-table--projects td.col-updated {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.app-table--projects th.col-actions,
.app-table--projects td.col-actions {
  overflow: visible;
}
.app-table.app-table--projects td.col-updated {
  color: var(--fee-muted);
}

/* Verify project contacts: left-aligned text, right-aligned counts, actions column wide enough for two actions. */
.app-table.verify-projects-table col.col-project { width: 19%; }
.app-table.verify-projects-table col.col-product { width: 9%; }
.app-table.verify-projects-table col.col-n { width: 8%; }
.app-table.verify-projects-table col.col-act { width: 24%; }
.app-table.verify-projects-table th,
.app-table.verify-projects-table td { min-width: 0 !important; max-width: none !important; }
.app-table.verify-projects-table th.col-text,
.app-table.verify-projects-table td.col-text { text-align: left !important; }
.app-table.verify-projects-table th.col-num,
.app-table.verify-projects-table td.col-num { text-align: right !important; font-variant-numeric: tabular-nums; }
.verify-projects-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.verify-projects-table .verify-inline-form { display: flex; justify-content: flex-start; }
.verify-projects-table td.col-num .verify-projects-meta { display: block; white-space: nowrap; }
.verify-projects-details summary { cursor: pointer; list-style: none; text-decoration: underline dotted; }
.verify-projects-details summary::-webkit-details-marker { display: none; }
.verify-projects-details ul { margin: .35rem 0 0; padding-left: 1rem; text-align: left; font-size: .82rem; color: var(--fee-muted, #5a6b64); }
.verify-projects-reverify-toggle { display: inline-block; margin-top: .4rem; padding: 0; border: 0; background: none; cursor: pointer; font: inherit; font-size: .82rem; color: var(--fee-muted, #5a6b64); text-decoration: underline dotted; }
.verify-projects-reverify-toggle:hover { color: var(--fee-text, #1f2a27); }
.verify-projects-reverify-toggle::before { content: "▸ "; text-decoration: none; display: inline-block; }
.verify-projects-reverify-toggle[aria-expanded="true"]::before { content: "▾ "; }
.verify-projects-table tr.is-reverify-open td { border-bottom: 0; }
.verify-projects-table tr.verify-projects-reverify > td { padding-top: 0; }
.verify-projects-reverify-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .5rem 1rem; align-items: center; margin-bottom: .6rem; padding: .7rem .9rem; border: 1px solid var(--fee-border, #d9e2de); border-radius: 8px; background: var(--fee-surface-muted, #f6f8f7); }
.verify-projects-reverify-panel .verify-projects-meta { margin: 0; font-size: .85rem; }
.verify-projects-reverify-panel .btn { white-space: nowrap; }
.verify-projects-preview { display: grid; grid-template-columns: repeat(3, minmax(0, auto)); gap: .25rem 1rem; margin: 0; font-size: .8rem; }
.verify-projects-preview div { display: flex; justify-content: space-between; gap: .5rem; white-space: nowrap; }
@media (max-width: 1100px) {
  .verify-projects-reverify-panel { grid-template-columns: 1fr; }
}
.verify-projects-preview dt { color: var(--fee-muted, #5a6b64); }
.verify-projects-preview dd { margin: 0; font-variant-numeric: tabular-nums; }

/* Compact "Warnings" badge: click/focus opens a structured category list; row height never grows. */
.verify-warnings { position: relative; display: inline-block; }
.verify-warnings > summary { list-style: none; cursor: pointer; white-space: nowrap; }
.verify-warnings > summary::-webkit-details-marker { display: none; }
.verify-warnings > summary:focus-visible { outline: 2px solid var(--fee-focus, #2563eb); outline-offset: 2px; }
.verify-warnings-panel { position: absolute; z-index: 30; left: 0; top: calc(100% + .35rem); min-width: 16rem; max-width: 22rem; padding: .6rem .75rem; text-align: left; font-size: .82rem; line-height: 1.4; background: #fff; color: var(--fee-text, #1b2b26); border: 1px solid var(--fee-border, #d9e2de); border-radius: 8px; box-shadow: 0 8px 24px rgba(15, 35, 30, .14); }
.verify-warnings-title { margin: 0 0 .35rem; font-weight: 650; }
.verify-warnings-panel ul { list-style: none; margin: 0 0 .35rem; padding: 0; }
.verify-warnings-panel li { display: flex; justify-content: space-between; gap: .75rem; padding: .1rem 0; }
.verify-warnings-panel li b { font-variant-numeric: tabular-nums; }
.verify-warnings-panel .muted { margin: 0; }
.app-table.verify-results-table td.col-status { overflow: visible !important; }
.verify-job-warnings { margin: .5rem 0 0; padding: .6rem .8rem; max-width: 32rem; font-size: .88rem; border: 1px solid var(--fee-border, #d9e2de); border-left: 3px solid var(--fee-warn, #d98f1b); border-radius: 8px; background: var(--fee-surface-muted, #f6f8f7); }
.verify-job-warnings ul { list-style: none; margin: 0 0 .35rem; padding: 0; }
.verify-job-warnings li { display: flex; justify-content: space-between; gap: .75rem; padding: .1rem 0; }
.verify-job-warnings .muted { margin: 0; }
.app-table.verify-results-table .badge { white-space: nowrap; min-width: 5.5rem; justify-content: center; }

/* Verification results: proportional columns (job/source need room for "Product · project · count");
   counts stay compact. Actions are a menu, not a button row. */
.app-table.verify-results-table th,
.app-table.verify-results-table td {
  min-width: 0 !important;
  max-width: none !important;
  text-align: center;
}
.app-table.verify-results-table th.col-text,
.app-table.verify-results-table td.col-text { text-align: left; }
.app-table.verify-results-table td.col-action,
.app-table.verify-results-table th.col-action {
  overflow: visible !important;
}
.app-table.verify-results-table td.col-status,
.app-table.verify-results-table th.col-status,
.app-table.verify-results-table td.col-job,
.app-table.verify-results-table th.col-job {
  white-space: normal !important;
}
.app-table.verify-results-table th.col-num,
.app-table.verify-results-table td.col-num,
.app-table.verify-results-table th.col-count,
.app-table.verify-results-table td.col-count,
.app-table.verify-results-table th.col-progress,
.app-table.verify-results-table td.col-progress {
  text-align: center !important;
}

.verify-section-head-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .5rem 1rem;
  margin-bottom: .65rem;
}
.verify-section-head-row .verify-card-title { margin: 0; }
.verify-single-hero-label { font-size: 1.05rem; }
.verify-single-result .verify-single-email {
  font-size: 1.15rem;
  font-weight: 650;
  word-break: break-word;
}

.verify-savings-badge {
  background: var(--fee-wash, #eef6f2);
  color: var(--fee-brand, #1b5e45);
  border: 1px solid var(--fee-border, #c5d9cf);
  font-weight: 650;
}
html[data-theme="dark"] .verify-savings-badge {
  background: rgba(60, 140, 110, .18);
  color: #b7e0cc;
  border-color: rgba(60, 140, 110, .35);
}


.pricing-calc-card {
  border: 1px solid var(--fee-line);
  border-radius: 10px;
  padding: 1rem 1.1rem;
  background: var(--fee-wash, #f3f7f5);
  margin: 1rem 0;
}
.pricing-calc-card h3 { margin: 0 0 .65rem; font-size: 1rem; }
.pricing-calc-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem 1.25rem;
  margin: 0;
}
.pricing-calc-grid dt { font-size: 12px; color: var(--fee-muted); margin: 0; }
.pricing-calc-grid dd { margin: .15rem 0 0; font-weight: 650; font-variant-numeric: tabular-nums; }

/* —— System → Pricing (commercial control plane) —— */
.pricing-shell { max-width: 980px; }
.pricing-card { margin-bottom: 1rem; }
.pricing-card-title { margin: 0 0 .35rem; font-size: 1.05rem; font-weight: 700; }
.pricing-lede { margin: 0 0 1rem; font-size: 13px; }
.pricing-pro-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}
.pricing-plan-card {
  border: 1px solid var(--fee-line);
  border-radius: 10px;
  padding: 1rem 1.1rem;
  background: var(--fee-surface);
}
.pricing-plan-card h3 { margin: 0 0 .75rem; font-size: 15px; }
.pricing-plan-card label { display: grid; gap: .3rem; margin: 0 0 .75rem; font-size: 13px; font-weight: 650; }
.pricing-money-input { width: 7.5rem; max-width: 100%; }
/* Currency input: $ attached inside the field (Extractor + Maps Pro admin) */
.currency-input {
  display: inline-flex;
  align-items: center;
  gap: 0;
  max-width: 12rem;
  min-height: var(--fee-control-h, 2.35rem);
  border: 1px solid var(--fee-line, var(--fee-border));
  border-radius: var(--fee-radius-sm, 8px);
  background: var(--fee-surface);
  overflow: hidden;
}
.currency-input-symbol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 .55rem;
  min-height: inherit;
  color: var(--fee-muted);
  font-weight: 650;
  background: var(--fee-surface-muted, var(--fee-surface-hover));
  border-right: 1px solid var(--fee-line, var(--fee-border));
  line-height: 1;
}
.currency-input .pricing-money-input {
  border: 0;
  box-shadow: none;
  outline: none;
  min-height: inherit;
  width: 7.5rem;
  max-width: 100%;
  padding: .45rem .7rem;
  background: transparent;
}
.currency-input:focus-within {
  border-color: var(--fee-brand);
  box-shadow: 0 0 0 2px var(--fee-focus-ring, rgba(15, 107, 92, .28));
}
.pricing-plan-card .input-with-prefix { display: none; }
.pricing-calc-card {
  border: 1px dashed var(--fee-line);
  border-radius: 10px;
  padding: .9rem 1rem;
  background: color-mix(in srgb, var(--fee-wash, transparent) 40%, var(--fee-surface));
  margin-bottom: 1rem;
}
.pricing-calc-card h3 { margin: 0 0 .55rem; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--fee-muted); }
.pricing-calc-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .65rem;
  margin: 0;
}
.pricing-calc-grid dt { font-size: 11px; color: var(--fee-muted); margin: 0; }
.pricing-calc-grid dd { margin: .15rem 0 0; font-size: 15px; font-weight: 750; }
.pricing-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.pricing-provider-status .pricing-provider-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  flex-wrap: wrap;
}
.pricing-tabs a { min-height: 36px; }
@media (max-width: 800px) {
  .pricing-pro-grid, .pricing-calc-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .pricing-pro-grid, .pricing-calc-grid { grid-template-columns: 1fr; }
}

.verify-derived { display:inline-block; min-width:4.5rem; text-align:right; font-variant-numeric:tabular-nums; font-weight:650; }
.verify-tier-remove {
  width:28px; height:28px; padding:0; border:1px solid var(--fee-line);
  border-radius:6px; background:transparent; color:var(--fee-muted);
  font-size:16px; line-height:1; cursor:pointer;
}
.verify-tier-remove:hover { color:var(--fee-ink); border-color:var(--fee-ink); }
.verify-commercial-table tbody tr { height:52px; }
.verify-commercial-table .verify-money-input { width:6.5rem; }
.verify-commercial-table .verify-discount-select { width:10rem; max-width:100%; }
.pricing-tabs a.is-active { background:var(--fee-green, #1f6b4a); color:#fff; }
html[data-theme="dark"] .pricing-tabs a.is-active {
  background: color-mix(in srgb, var(--fee-brand) 75%, #06201b);
  color: #e8fff6;
  box-shadow: inset 0 -2px 0 #F7931E;
}
html[data-theme="dark"] .app-nav-link:focus-visible,
html[data-theme="dark"] .app-nav-recent-link:focus-visible {
  outline: 2px solid var(--fee-accent-border, rgba(247, 147, 30, .45));
  outline-offset: 1px;
}
html[data-theme="dark"] .verify-tabs a.is-active {
  box-shadow: inset 0 -2px 0 #F7931E;
}
html[data-theme="dark"] .settings-tabs a.is-active {
  background: color-mix(in srgb, var(--fee-brand) 70%, #06201b);
  box-shadow: inset 0 -2px 0 #F7931E;
}
html[data-theme="dark"] .billing-product-tabs a.is-active {
  background: color-mix(in srgb, var(--fee-brand) 70%, #06201b);
  box-shadow: inset 0 -2px 0 #F7931E;
}
html[data-theme="dark"] .billing-plan-pill.is-pro {
  color: #9fd9cf;
  background: color-mix(in srgb, var(--fee-teal) 22%, #0b1f1c);
  border-color: color-mix(in srgb, var(--fee-teal) 40%, #24443e);
}
html[data-theme="dark"] .billing-overview-card.is-active {
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--fee-teal) 70%, #24443e);
}
html[data-theme="dark"] .settings-tab.is-active {
  color: var(--fee-brand-dark);
  border-bottom-color: #F7931E;
}
html[data-theme="dark"] .dash-tab.is-active {
  color: var(--fee-brand-dark);
  border-bottom-color: #F7931E;
}
html[data-theme="dark"] .app-panel {
  border-color: color-mix(in srgb, var(--fee-border) 70%, #1a2c27);
  background: linear-gradient(180deg, color-mix(in srgb, var(--fee-surface-elevated) 55%, var(--fee-surface)) 0%, var(--fee-surface) 100%);
}
html[data-theme="dark"] .btn:not(.secondary):not(.btn-accent):not(.danger):focus-visible {
  outline: 2px solid var(--fee-accent-border, rgba(247, 147, 30, .45));
  outline-offset: 2px;
}
html[data-theme="dark"] a.btn.secondary:hover,
html[data-theme="dark"] button.btn.secondary:hover {
  border-color: color-mix(in srgb, var(--fee-accent) 35%, var(--fee-border));
}

/* ---- Admin notification form 2-col grid ---- */
.admin-notif-card { padding: 1.25rem; }
.admin-notif-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .75rem;
  align-items: end;
}
.admin-notif-field { display: flex; flex-direction: column; gap: 6px; }
.admin-notif-field--full { grid-column: 1 / -1; }
.admin-notif-actions { flex-direction: row; align-items: flex-end; gap: .5rem; padding-bottom: 2px; }
.admin-field-label { font-weight: 600; font-size: .85rem; }
@media (min-width: 720px) {
  .admin-notif-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

/* ---- Provider card two-row compact layout ---- */
.provider-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .75rem;
  margin-bottom: .5rem;
  align-items: flex-end;
}
.provider-row label { display: flex; flex-direction: column; gap: 6px; font-size: .85rem; font-weight: 600; flex: 1 1 6rem; }
.provider-row label input[type="number"] { width: 100%; max-width: 7rem; }
.provider-row--controls { align-items: center; }
.provider-row--controls .app-check-label { font-weight: 400; flex: 0 0 auto; }
.provider-apikey-label { flex: 2 1 12rem !important; }
.provider-apikey-label input { width: 100%; }

/* ---- Local rules add form horizontal row ---- */
.local-rule-add-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .75rem;
  align-items: flex-end;
}
.local-rule-add-row label { display: flex; flex-direction: column; gap: .2rem; font-size: .85rem; font-weight: 600; flex: 1 1 10rem; }
.local-rule-add-row label input { width: 100%; }
.local-rule-add-row .local-rule-enabled { flex: 0 0 auto; flex-direction: row; align-items: center; gap: .35rem; font-weight: 400; padding-bottom: 4px; }
.local-rule-add-row .btn { flex: 0 0 auto; align-self: flex-end; }

/* Shared phone list (Maps Business compact + Extractor/Maps expanded details) */
.phone-list{list-style:none;margin:2px 0 0;padding:0;display:grid;gap:2px}
.phone-list li{display:flex;align-items:center;gap:4px;min-width:0;font-size:11px;line-height:1.25;color:var(--fee-muted)}
.phone-list a{color:inherit;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phone-list a:hover{color:var(--fee-teal,#0f6b5c);text-decoration:underline}
.phone-list-icon{width:12px;height:12px;flex:0 0 12px;color:var(--fee-teal,#0f6b5c)}
.phone-list-copy{border:0;background:transparent;padding:0;margin:0;font:inherit;color:var(--fee-teal,#0f6b5c);cursor:pointer;flex:0 0 auto}
.phone-list-more{font-weight:650;color:var(--fee-teal,#0f6b5c)}
html[data-theme="dark"] .phone-list li{color:var(--fee-text-secondary)}
html[data-theme="dark"] .phone-list a:hover,
html[data-theme="dark"] .phone-list-icon,
html[data-theme="dark"] .phone-list-copy,
html[data-theme="dark"] .phone-list-more{color:var(--fee-brand-dark)}
/* Maps compact Business cell: name + primary phone only (≤2 lines) */
.app-table--maps .maps-business-cell .lead-id{display:grid;gap:2px;min-width:0}
.app-table--maps .maps-business-name{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-weight:700;line-height:1.25;max-width:100%;
}
.app-table--maps .maps-business-phone{display:block;min-width:0;max-width:100%}
.app-table--maps .maps-business-phone .phone-list{margin:0}
/*
 * Maps column % budget (Source removed from compact table).
 * Business 21 · Email 18 · Mail 11 · Verify 9 · Provider 18 · Found 11 · Saved 8.
 * Found on is two stacked links (Bing listing + website domain).
 */
.app-table-wrap:has(.app-table--maps){overflow-x:auto;-webkit-overflow-scrolling:touch}
.app-table.app-table--maps.app-table--leads,
.app-table.app-table--maps{
  width:100%;min-width:68rem;table-layout:fixed;
}
.app-table--maps.app-table--leads col.col-check,
.app-table--maps col.col-check{width:40px;min-width:40px;max-width:40px}
.app-table--maps.app-table--leads col.col-actions,
.app-table--maps col.col-actions{width:5.75rem;min-width:5.75rem;max-width:5.75rem}
.app-table--maps.app-table--leads col.col-contact,
.app-table--maps col.col-contact,
.app-table--maps.app-table--leads th.col-contact,
.app-table--maps th.col-contact,
.app-table--maps.app-table--leads td.col-contact,
.app-table--maps td.col-contact{
  width:21%;min-width:0;max-width:none;
}
.app-table--maps.app-table--leads col.col-email,
.app-table--maps col.col-email,
.app-table--maps.app-table--leads th.col-email,
.app-table--maps th.col-email,
.app-table--maps.app-table--leads td.col-email,
.app-table--maps td.col-email{
  width:18%;min-width:0;max-width:none;
}
.app-table--maps.app-table--leads col.col-mail,
.app-table--maps col.col-mail,
.app-table--maps.app-table--leads th.col-mail,
.app-table--maps th.col-mail,
.app-table--maps.app-table--leads td.col-mail,
.app-table--maps td.col-mail{
  width:11%;min-width:0;max-width:none;
}
.app-table--maps.app-table--leads col.col-verify,
.app-table--maps col.col-verify,
.app-table--maps.app-table--leads th.col-verify,
.app-table--maps th.col-verify,
.app-table--maps.app-table--leads td.col-verify,
.app-table--maps td.col-verify{
  width:9%;min-width:0;max-width:none;
}
.app-table--maps.app-table--leads col.col-provider-mx,
.app-table--maps col.col-provider-mx,
.app-table--maps.app-table--leads th.col-provider-mx,
.app-table--maps th.col-provider-mx,
.app-table--maps.app-table--leads td.col-provider-mx,
.app-table--maps td.col-provider-mx{
  width:16%;min-width:0;max-width:none;white-space:normal;
}
.app-table--maps.app-table--leads col.col-source,
.app-table--maps col.col-source,
.app-table--maps.app-table--leads th.col-source,
.app-table--maps th.col-source,
.app-table--maps.app-table--leads td.col-source,
.app-table--maps td.col-source{
  display:none !important;width:0 !important;min-width:0 !important;max-width:0 !important;padding:0 !important;border:0 !important;
}
.app-table--maps.app-table--leads col.col-found,
.app-table--maps col.col-found,
.app-table--maps.app-table--leads th.col-found,
.app-table--maps th.col-found,
.app-table--maps.app-table--leads td.col-found,
.app-table--maps td.col-found{
  width:11%;min-width:0;max-width:none;white-space:normal;
}
.app-table--maps.app-table--leads col.col-saved,
.app-table--maps col.col-saved,
.app-table--maps.app-table--leads th.col-saved,
.app-table--maps th.col-saved,
.app-table--maps.app-table--leads td.col-saved,
.app-table--maps td.col-saved{
  width:10%;min-width:6.5rem;max-width:none;white-space:nowrap;
}
.maps-found-stack{
  display:grid;gap:2px;min-width:0;line-height:1.25;
}
.maps-found-stack a{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;
  font-size:12.5px;
}
.maps-found-stack .maps-found-site{color:var(--fee-muted);font-size:12px}
.app-table--maps td.col-contact,
.app-table--maps td.col-contact .maps-business-cell,
.app-table--maps td.col-contact .lead-id,
.app-table--maps td.col-email,
.app-table--maps td.col-found{
  min-width:0;max-width:100%;overflow:hidden;
}
.app-table--maps td.col-mail .badge{
  max-width:100%;
  white-space:nowrap;
}
.app-table--maps td.col-provider-mx .stack-cell--mx{
  display:grid;gap:1px;min-width:0;max-width:100%;
}
.app-table--maps td.col-provider-mx .stack-cell--mx strong{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;
  line-height:1.25;
}
.app-table--maps td.col-provider-mx .mx-primary-host{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;
  font-size:11.5px;opacity:.85;line-height:1.25;
}
.app-table--maps .maps-email-icon{width:14px;height:14px;flex:0 0 auto;opacity:.85}
.lead-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px}
.lead-detail-footer-primary{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lead-retry-form.inline{display:inline}
.app-table--maps .maps-verify-aggregate{white-space:normal;line-height:1.25;font-weight:600;max-width:14rem;display:inline-block}
.maps-email-verify-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem}
.maps-email-cell{display:flex;align-items:center;gap:.35rem;min-width:0;width:100%;max-width:100%}
.maps-email-text{
  display:block;flex:1 1 auto;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  min-width:0;max-width:100%;width:100%;
}
.maps-email-more{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--fee-teal,#0f6b5c)}
.maps-email-empty{font-size:12px}
.maps-tech-domain{margin:0 0 .65rem}
.maps-tech-domain:last-child{margin-bottom:0}
.maps-email-intel-block{margin:0 0 .75rem;padding:0 0 .65rem;border-bottom:1px solid var(--fee-table-line)}
.maps-email-intel-block:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}
/* Maps mail-status badges must use the shared Extractor mail-status tokens (never default teal). */
.app-table--maps td.col-mail .badge.mail-status--domain-ready,
.app-table--maps td.col-mail .badge.mail-status--ready{background:var(--fee-domain-mail-ready-bg,#eff6ff);color:var(--fee-domain-mail-ready-text,#1d4ed8);border:1px solid var(--fee-domain-mail-ready-border,#93c5fd)}
.app-table--maps td.col-mail .badge.mail-status--no-route{background:#fde2e2;color:#8a1f1f}
.app-table--maps td.col-mail .badge.mail-status--domain-unknown{background:#f3e8d4;color:#6b4e16}
.lead-mx-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
/* MX table: explicit columns. Pref fits 0–65535, host takes the remainder and wraps,
   Provider/Family are bounded so they can never paint over the host. */
.lead-mx-scroll .lead-mx-table{width:100%;min-width:0;table-layout:fixed}
.lead-mx-table .lead-mx-col-pref{width:3rem}
.lead-mx-table .lead-mx-col-provider{width:7rem}
.lead-mx-table .lead-mx-col-family{width:5.25rem}
.lead-mx-table td,.lead-mx-table th{min-width:0;overflow:hidden;vertical-align:top}
.lead-mx-table .lead-mx-pref{font-variant-numeric:tabular-nums;white-space:nowrap}
.lead-mx-table .lead-mx-host,.lead-mx-table .lead-mx-provider,.lead-mx-table .lead-mx-family{overflow-wrap:anywhere;word-break:break-word;white-space:normal}
.lead-mx-table .lead-mx-host-copy{
  display:block;width:100%;max-width:100%;height:auto;min-height:26px;padding:.2rem .4rem;
  text-align:left;white-space:normal;overflow-wrap:anywhere;word-break:break-all;line-height:1.3;
  font:inherit;
}
.lead-mx-scroll{container-type:inline-size}
@container (max-width:34rem){
  .lead-mx-table .lead-mx-col-provider{width:6rem}
  .lead-mx-table .lead-mx-col-family{width:4.75rem}
}
@container (max-width:27rem){
  .lead-mx-scroll .lead-mx-table,.lead-mx-table thead,.lead-mx-table tbody,.lead-mx-table tr,.lead-mx-table td{display:block;width:100%}
  .lead-mx-table colgroup,.lead-mx-table thead{display:none}
  .lead-mx-table tr{padding:.35rem 0;border-bottom:1px solid var(--fee-table-line)}
  .lead-mx-table td{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.5rem;border-bottom:0;padding:.12rem .25rem}
  .lead-mx-table td::before{content:attr(data-label);font-weight:650;color:var(--fee-muted);font-family:var(--fee-font)}
}
@media (max-width:420px){
  .lead-mx-scroll .lead-mx-table,.lead-mx-table thead,.lead-mx-table tbody,.lead-mx-table tr,.lead-mx-table td{display:block;width:100%}
  .lead-mx-table colgroup,.lead-mx-table thead{display:none}
  .lead-mx-table tr{padding:.35rem 0;border-bottom:1px solid var(--fee-table-line)}
  .lead-mx-table td{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.5rem;border-bottom:0;padding:.12rem .25rem}
  .lead-mx-table td::before{content:attr(data-label);font-weight:650;color:var(--fee-muted);font-family:var(--fee-font)}
}
.biz-profiles dl{margin:0}
.biz-drawer-pane > .lead-drawer-section-title ~ .lead-drawer-section-title,
.lead-detail-panel--page .lead-drawer-section-title ~ .lead-drawer-section-title{margin-top:1.15rem}
.biz-profile-links{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.biz-profile-links a{display:block;min-width:0;overflow-wrap:anywhere;word-break:break-word}
.biz-profile-name{font-weight:650;margin-right:.35rem}
.biz-profile-url{font-size:.92em}
.app-table--maps .maps-business-image{display:flex;align-items:center;gap:8px}
.app-table--maps .maps-business-image img{width:72px;height:72px;object-fit:cover;border-radius:6px;background:var(--surface-2,#f3f4f6)}
.maps-export-options{display:grid;gap:.75rem;margin:0 0 1rem}
.maps-export-group-label{margin:0;font-size:12px;font-weight:650;color:var(--fee-muted)}
.maps-export-actions{justify-content:flex-start;margin:0}
.app-filters--maps .app-filters-actions .btn,
.app-filters--maps .app-filters-actions .btn.ghost,
.app-filters--maps .app-filters-actions .btn.secondary{
  flex:0 0 auto;height:auto;padding:.4rem .75rem;font-size:inherit;line-height:1.25;border-radius:var(--fee-radius,6px);
}
html[data-theme="dark"] .maps-email-more{color:var(--fee-brand-dark)}

/* ── Billing admin (Payment providers, Customers › Subscriptions / Payments) ──
   Every header and cell is LEFT aligned, including amounts (tabular digits keep
   them scannable). Column widths come from <colgroup> so a 2-character Version
   column no longer takes a tenth of the table, and rows keep a stable height. */
.pp-tabs { margin-bottom: 1rem; }
.pp-lede { margin: 0 0 .85rem; }
.pp-foot { margin: .75rem 0 0; font-size: 12px; }
.pp-table th, .pp-table td { text-align: left !important; vertical-align: top; padding: .5rem .6rem; }
.pp-table thead th { white-space: nowrap; }
.pp-table td.wrap { white-space: normal; overflow: visible; }
.pp-table td .badge { white-space: nowrap; }
.pp-sync-badge-row { display: inline-flex; align-items: center; gap: .25rem; flex-wrap: wrap; }
.pp-table th .access-info { margin-left: .15rem; }
.pricing-card-title .access-info { font-weight: 400; }
.pp-table .pp-amount { font-variant-numeric: tabular-nums; white-space: nowrap; }
.pp-table .pp-amount .badge { margin-left: .35rem; }
.pp-table .inline-row { width: auto; }
.pp-table .inline-row .btn, .pp-table details.pp-popover > summary.btn { font-size: 12px; padding: .25rem .55rem; }
.pp-table .pp-row-actions { overflow: visible; }
.pp-table .pp-row-actions > * { display: block; margin: 0 0 .3rem; }
.pp-table .pp-row-actions > *:last-child { margin-bottom: 0; }
.pp-stack { display: flex; flex-direction: column; gap: .2rem; white-space: normal; min-width: 0; }
.pp-stack .muted, .pp-stack code { font-size: 11px; overflow-wrap: anywhere; }
.pp-stack .badge { align-self: flex-start; }
.pp-table col.pp-col-provider { width: 14%; }
.pp-table col.pp-col-customer { width: 16%; }
.pp-table col.pp-col-item { width: 18%; }
.pp-table col.pp-col-price { width: 11%; }
.pp-table col.pp-col-version { width: 11%; }
.pp-table col.pp-col-provider-cell { width: 13%; }
.pp-table col.pp-col-url { width: 30%; }
.pp-table col.pp-col-wide { width: 18%; }
.pp-table col.pp-col-m { width: 11%; }
.pp-table col.pp-col-s { width: 8%; }
.pp-table col.pp-col-actions { width: 12%; }
.pp-table col.pp-col-actions-s { width: 7%; }
.pp-table col.pp-col-date { width: 12%; }
.pp-table col.pp-col-ref { width: 13%; }
.pp-table td.pp-nowrap, .pp-table td.pp-nowrap code { white-space: nowrap; }
.pp-table--overview { min-width: 66rem; }
.pp-table--sync { min-width: 70rem; }
.pp-table--subscriptions, .pp-table--payments { min-width: 68rem; }
.pp-table--events, .pp-table--endpoints { min-width: 62rem; }
.pp-url { font-size: 11px; overflow-wrap: anywhere; white-space: normal; }
.pp-url-input { width: 100%; max-width: 34rem; font-family: ui-monospace, monospace; font-size: 12px; margin: .25rem 0; }
.pp-env { display: block; }
.pp-inline-details { font-size: 12px; }
.pp-inline-details > summary { cursor: pointer; list-style: none; }
.pp-inline-details > summary::-webkit-details-marker { display: none; }
.pp-inline-details > summary::after { content: ' ▾'; }
.pp-inline-details[open] > summary::after { content: ' ▴'; }
.pp-inline-details code { display: block; margin-top: .15rem; }
.pp-inline-details .field-error { white-space: normal; margin-top: .2rem; }
.pp-catalog-actions { margin: 0 0 .85rem; }
.pp-catalog-actions form { margin: 0; }

/* Inline editor / confirmation popover (no JS): a <details> whose body floats under its button. */
details.pp-popover { position: relative; display: inline-block; }
details.pp-popover > summary { list-style: none; cursor: pointer; display: inline-block; }
details.pp-popover > summary::-webkit-details-marker { display: none; }
details.pp-popover > .pp-popover-body {
  position: absolute; z-index: 30; right: 0; top: calc(100% + .35rem);
  width: 22rem; max-width: 80vw; padding: .85rem .95rem;
  background: var(--fee-surface, var(--fee-white)); color: var(--fee-text);
  border: 1px solid var(--fee-line); border-radius: 10px; box-shadow: var(--fee-shadow-md, 0 10px 30px rgba(0,0,0,.18));
  text-align: left; white-space: normal;
}
details.pp-popover > .pp-popover-body label { display: block; margin: .5rem 0 0; font-size: 12px; font-weight: 600; }
details.pp-popover > .pp-popover-body input { width: 100%; margin-top: .25rem; font-size: 13px; }
details.pp-popover > .pp-popover-body p { margin: 0 0 .25rem; font-size: 12px; }
details.pp-popover > .pp-popover-body .btn-row { margin-top: .7rem; }
.table-wrap:has(details.pp-popover[open]) { overflow: visible; }

/* Configuration tab */
.pp-provider-nav { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; }
.pp-provider-nav .chip { text-decoration: none; color: inherit; }
.pp-provider-nav .chip.is-active { background: var(--fee-teal); color: #fff; }
details.pp-provider > summary { cursor: pointer; font-size: 15px; list-style: none; }
details.pp-provider > summary::-webkit-details-marker { display: none; }
details.pp-provider > summary::before { content: '▸ '; color: var(--fee-muted); }
details.pp-provider[open] > summary::before { content: '▾ '; }
details.pp-provider > summary .muted { font-size: 13px; font-weight: 400; }
details.pp-provider[open] > summary { margin-bottom: .85rem; }
.pp-provider-grid { display: grid; grid-template-columns: minmax(0, 24rem) minmax(0, 1fr); gap: 1.25rem 2rem; align-items: start; }
.pp-provider-form label { display: block; margin: .35rem 0; }
.pp-provider-form select { max-width: 14rem; }
.pp-check { display: flex !important; gap: .5rem; align-items: flex-start; font-weight: 400; line-height: 1.4; }
.pp-check input { margin-top: .25rem; flex: 0 0 auto; }
.pp-fieldset { border: 1px solid var(--fee-line); border-radius: 8px; padding: .5rem .85rem .65rem; margin: .65rem 0; }
.pp-fieldset legend { font-size: 12px; font-weight: 600; color: var(--fee-muted); padding: 0 .3rem; }
.pp-kv { grid-template-columns: 8.5rem minmax(0, 1fr); gap: .5rem 1rem; }
.pp-kv dd { display: flex; flex-direction: column; gap: .3rem; align-items: flex-start; }
.pp-kv dd .inline-row { margin-top: .15rem; }
.pp-chips { flex-direction: row !important; flex-wrap: wrap; gap: .3rem !important; }
.pp-chips .chip.is-off { opacity: .55; text-decoration: line-through; }
.pp-chips .chip.is-on { background: #d8f3e4; color: #0f5132; }
html[data-theme="dark"] .pp-chips .chip.is-on { background: #14532d; color: #bbf7d0; }
.pp-warning { background: #fff4e5; border: 1px solid #f0c37a; color: #7a4b00; border-radius: 8px; padding: .6rem .8rem; margin: .75rem 0 0; }
html[data-theme="dark"] .pp-warning { background: #3b2a08; border-color: #a16207; color: #fde68a; }
.pp-gateways { display: grid; gap: 1rem; }
.pp-gateway h3 { margin: 0 0 .5rem; font-size: 14px; }
@media (max-width: 960px) {
  .pp-provider-grid { grid-template-columns: 1fr; }
  .pp-kv { grid-template-columns: 1fr; }
  .pp-kv dt { padding-top: .35rem; }
}

/* ── Accessible tooltip (replaces native title bubbles that clipped / lagged) ──
   <button class="fee-tip" data-tip="…" aria-label="…">ⓘ</button>
   Shows on hover and keyboard focus, stacks above table chrome, flips to the
   left edge when the trigger sits in the right half (`.fee-tip--end`). */
.fee-tip { position: relative; border: 0; background: transparent; color: var(--fee-muted, #5a6b66); cursor: help; font-size: 13px; line-height: 1; padding: 0 .1rem; }
.fee-tip::after {
  content: attr(data-tip); position: absolute; left: 0; top: calc(100% + .4rem); z-index: 40;
  width: max-content; max-width: 18rem; padding: .45rem .6rem; border-radius: 8px;
  background: var(--fee-text, #1f2933); color: var(--fee-white, #fff); font-size: 12px; font-weight: 400; line-height: 1.4;
  text-align: left; white-space: normal; box-shadow: 0 8px 24px rgba(0,0,0,.22);
  opacity: 0; pointer-events: none; transform: translateY(-2px); transition: opacity .12s ease, transform .12s ease;
}
.fee-tip--end::after { left: auto; right: 0; }
.fee-tip:hover::after, .fee-tip:focus-visible::after { opacity: 1; transform: translateY(0); }
.fee-tip:focus-visible { outline: 2px solid var(--fee-teal); outline-offset: 2px; border-radius: 4px; }
html[data-theme="dark"] .fee-tip::after { background: #e5e7eb; color: #111827; }
