/* Leads (Figma 326:263 list, 326:26800 bulk, 328:2025 exhibition, 336:4676 import, 330:2467 detail, 334:28553/28795/28921 modals).
   Pages use the shared .pp classes (persons.css) plus .ld overrides below. */

/* ---------- list ---------- */
.ld .ld-head { margin-block-end: 20px; }
.ld .ld-head .page-header__actions { gap: 12px; }
.ld .ld-head .page-header__actions .btn { height: 40px; }
.ld .ld-menu { min-width: 220px; inset-inline-start: 0; inset-inline-end: auto; }
.ld .ld-tabs { margin-block-end: 20px; gap: 8px; }
.ld .ld-tabs .tab { height: 44px; padding: 0 14px; }
.ld .ld-table .table-wrap { overflow: visible; }
.ld .ld-table__t th { white-space: nowrap; }
.ld .ld-table__t td { height: 48px; }
.ld .ld-table__t tbody tr.is-warn { background: var(--color-row-warn); }
.ld .ld-table__t tbody tr.is-warn td:first-child { box-shadow: inset -3px 0 0 var(--color-brand-orange); }
.ld .ld-table__t tbody tr.is-warn:hover { background: var(--color-row-warn-hover); }
.ld .ld-mobile { direction: ltr; unicode-bidi: isolate; white-space: nowrap; }
.ld .ld-trunc { display: inline-block; max-width: 112px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.ld .ld-av { background: var(--color-brand-amber-50); color: var(--color-amber-text); border: 1px solid var(--color-amber-border); }
.ld .ld-av--none { background: var(--color-gray-100); color: var(--color-gray-500); border-color: var(--color-gray-200); }
.ld .ld-by { font: var(--text-body-strong); }
.ld .ld-warn { display: inline-flex; align-items: center; gap: 4px; color: var(--color-danger); font: var(--text-small); line-height: 16px; }
.ld .ld-warn .icon { width: 14px; height: 14px; }
.ld .badge--dot { gap: 6px; }
.ld .badge--blue { --dot: var(--color-info); }
.ld .badge--amber { --dot: var(--color-brand-orange); }
.ld .badge--navy { --dot: var(--color-brand-navy); }
.ld .badge--green { --dot: var(--color-success); }
.ld .badge--red { --dot: var(--color-danger); }
.ld .badge--neutral { --dot: var(--color-gray-400); }
.ld .badge--orange { --dot: var(--color-brand-orange); }
.ld .ld-table__t.table--dense td { height: 40px; }

/* bulk bar (326:26800) */
.ld .ld-bulk { min-height: 56px; padding: 10px 16px; gap: 12px; background: var(--color-brand-navy-50); border-bottom: 1px solid var(--color-border); border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.ld .ld-bulk[hidden] { display: none; }
.ld .ld-bulk__count { font: var(--text-body-strong); margin-inline-end: 4px; }
.ld .ld-bulk__pop > summary { height: 36px; background: var(--color-surface-card); }
.ld .ld-bulk__cancel { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 8px; border: 0; background: none; font: var(--text-body-strong); color: var(--color-text-primary); cursor: pointer; }
.ld .ld-bulk__cancel .icon { width: 16px; height: 16px; }
.ld .ptable__table tbody tr.is-selected { background: var(--color-brand-navy-50); }

/* create modal */
.ld .ld-create { width: min(640px, 100%); }
.ld .ld-create.has-dup { width: min(960px, 100%); }
.ld .ld-create .modal__body { max-height: calc(100vh - 200px); overflow: auto; }

/* ---------- detail (330:2467) ---------- */
.ld .ld-detail-head { display: flex; align-items: flex-start; gap: 16px; padding: 24px; margin-block-end: 16px; }
.ld .ld-detail-head__icon { width: 56px; height: 56px; flex: none; border-radius: var(--radius-lg); background: var(--color-gray-100); color: var(--color-text-brand); display: grid; place-items: center; }
.ld .ld-detail-head__icon .icon { width: 28px; height: 28px; }
.ld .ld-detail-head__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.ld .ld-detail-head__title { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ld .ld-detail-head__title h1 { font: var(--text-h1); margin: 0; }
.ld .ld-number { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: 6px; background: var(--color-gray-100); font: 500 12px/16px var(--font-family); color: var(--color-gray-700); direction: ltr; }
.ld .ld-detail-head__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-partner-chip { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; height: 28px; padding: 0 12px; border-radius: 999px; background: var(--color-gray-100); font: var(--text-small); color: var(--color-text-primary); }
.ld .ld-partner-chip .icon { width: 16px; height: 16px; color: var(--color-gray-600); }
.ld .ld-detail-head__ctrl { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin-top: 6px; font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-detail-head__ctrl form { display: inline-flex; align-items: center; gap: 10px; }
.ld .ld-status-select { height: 40px; min-width: 180px; font: var(--text-body); color: var(--color-text-primary); }
.ld .ld-detail-head__ctrl .owner b { font: var(--text-body-strong); color: var(--color-text-primary); }
.ld .ld-detail-head__actions { display: flex; align-items: center; gap: 12px; }
.ld .ld-detail-head__actions .btn { height: 40px; }
.ld .ld-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.ld .ld-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ld .ld-side { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 16px; }
.ld .ld-card { padding: 20px 20px 16px; }
.ld .ld-card__head { display: flex; align-items: center; justify-content: space-between; margin-block-end: 18px; }
.ld .ld-card__head h2 { font: var(--text-h3); margin: 0; }
.ld .ld-card__head a { font: var(--text-body-strong); color: var(--color-text-primary); text-decoration: none; }
.ld .ld-kv { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 48px; margin: 0; }
.ld .ld-kv > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.ld .ld-kv dt { font: var(--text-small); color: var(--color-text-secondary); white-space: nowrap; }
.ld .ld-kv dd { margin: 0; font: var(--text-body-strong); text-align: left; }
.ld .ld-kv dd.ltr-num { direction: ltr; text-align: left; }
.ld .ld-note { margin: 16px 0 0; font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-attr { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.ld .ld-attr li { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.ld .ld-attr span { font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-attr b { font: var(--text-body-strong); }
.ld .ld-attr-note { margin: 16px 0 0; font: var(--text-caption); color: var(--color-text-muted); }
.ld .ld-side .msgr { margin-top: 4px; }
.ld .ld-tl .tl__title b { margin-inline-end: 4px; }
.ld .ld-tl .tl__body { background: var(--color-surface-card); }
.ld .ld-tl__chips { display: flex; gap: 8px; margin-top: 10px; }
.ld .ld-tl__chip { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 8px; border-radius: 999px; background: var(--color-gray-100); font: var(--text-caption); color: var(--color-text-secondary); }
.ld .ld-tl__chip--ok { background: var(--color-success-bg); color: var(--color-success-text); }
.ld .ld-tl__chip--ok::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--color-success); }
.ld .ld-converted { display: flex; align-items: center; gap: 10px; margin-block-end: 16px; }

/* ---------- modals (convert / disqualify / transfer / duplicate / next) ---------- */
.ld .ld-modal { width: min(560px, 100%); }
.ld .ld-modal .modal__body { display: flex; flex-direction: column; gap: 20px; }
.ld .ld-modal--convert { width: min(800px, 100%); }
.ld .ld-modal--convert .modal__body { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; align-items: start; max-height: calc(100vh - 220px); overflow: auto; }
.ld .ld-conv-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ld .ld-conv-col h3 { font: var(--text-h3); margin: 0; }
.ld .ld-person-card { display: flex; align-items: center; gap: 12px; padding: 16px; border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.ld .ld-person-card.is-selected { border-color: var(--color-brand-navy); background: var(--color-brand-navy-50); }
.ld .ld-person-card__meta { flex: 1; display: flex; flex-direction: column; gap: 2px; font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-person-card__meta strong { font: var(--text-body-strong); color: var(--color-text-primary); }
.ld .ld-person-card .reason { align-self: flex-start; margin-top: 4px; padding: 0 8px; height: 22px; display: inline-flex; align-items: center; border-radius: 999px; background: var(--color-brand-amber-50); border: 1px solid var(--color-amber-border); font: var(--text-caption); color: var(--color-gray-800); }
.ld .ld-pick { position: relative; }
.ld .ld-pick input { position: absolute; opacity: 0; pointer-events: none; }
.ld .ld-pick .btn { pointer-events: none; }
.ld .ld-pick input:checked + .btn { background: var(--color-brand-navy); border-color: var(--color-brand-navy); color: #fff; }
.ld .ld-person-new { font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-info-box { display: flex; gap: 10px; padding: 14px 16px; border: 1px solid var(--color-info-border); border-radius: var(--radius-lg); background: var(--color-info-bg); }
.ld .ld-info-box > .icon { width: 18px; height: 18px; color: var(--color-info); flex: none; margin-top: 3px; }
.ld .ld-info-box b { display: block; font: var(--text-body-strong); margin-block-end: 4px; }
.ld .ld-info-box p { margin: 0; font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-radio-row { display: flex; gap: 24px; flex-wrap: wrap; }
.ld .ld-switch { display: flex; align-items: center; gap: 10px; font: var(--text-body-strong); }
.ld .ld-modal .field__hint { color: var(--color-text-muted); }

/* ---------- exhibition (328:2025) ---------- */
.ld .ld-exh { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.ld .ld-exh__form { padding: 24px; display: flex; flex-direction: column; gap: 20px; }
.ld .ld-exh__form .form-grid { gap: 16px; }
.ld .ld-exh__sep { border: 0; border-top: 1px solid var(--color-border); margin: 0; }
.ld .ld-exh__side { display: flex; flex-direction: column; gap: 16px; }
.ld .ld-exh__kpi { padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.ld .ld-exh__kpi-top { display: flex; justify-content: space-between; align-items: flex-start; }
.ld .ld-exh__kpi-top .kpi__icon { width: 36px; height: 36px; border-radius: var(--radius-md); background: var(--color-brand-navy-50); color: var(--color-text-brand); display: grid; place-items: center; }
.ld .ld-exh__kpi-val { display: flex; align-items: baseline; gap: 6px; }
.ld .ld-exh__kpi-val b { font: var(--text-display); }
.ld .ld-exh__kpi-foot { display: flex; justify-content: space-between; align-items: flex-end; font: var(--text-caption); color: var(--color-text-secondary); }
.ld .ld-exh__recent { padding: 20px; }
.ld .ld-exh__recent h2 { font: var(--text-h3); margin: 0 0 16px; }
.ld .ld-exh__recent ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ld .ld-exh__recent li { display: flex; justify-content: space-between; gap: 12px; font: var(--text-body-strong); }
.ld .ld-exh__recent li span { font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-exh__recent p { margin: 16px 0 0; font: var(--text-caption); color: var(--color-text-muted); }
.ld .ld-exh__dup { display: flex; gap: 12px; padding: 16px; border: 1px solid var(--color-brand-orange); border-radius: var(--radius-lg); background: var(--color-brand-amber-50); }
.ld .ld-exh__dup > .icon { width: 20px; height: 20px; color: var(--color-brand-orange); flex: none; margin-top: 2px; }
.ld .ld-exh__dup b { display: block; font: var(--text-body-strong); }
.ld .ld-exh__dup p { margin: 4px 0 10px; font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-exh__dup .btn { background: var(--color-surface-card); }
.ld .ld-exh__actions { display: flex; align-items: center; gap: 12px; }
.ld .ld-exh__actions .hint { margin-inline-end: auto; font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.ld .ld-tagpick { position: relative; }
.ld .ld-tagpick input { position: absolute; opacity: 0; }
.ld .ld-tagpick span { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface-card); font: var(--text-small); cursor: pointer; }
.ld .ld-tagpick input:checked + span { background: var(--color-gray-100); border-color: var(--color-gray-300); }
.ld .ld-tagpick input:focus-visible + span { box-shadow: var(--focus-ring); }
.ld .ld-tagpick input:checked + span::after { content: "×"; color: var(--color-gray-600); }
.ld .ld-exh-toast { position: fixed; inset-inline-end: 24px; bottom: 24px; z-index: 60; width: 380px; display: flex; gap: 12px; padding: 16px 20px; background: var(--color-surface-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); border-inline-start: 4px solid var(--color-success); }
.ld .ld-exh-toast > .icon { width: 20px; height: 20px; color: var(--color-success); flex: none; margin-top: 2px; }
.ld .ld-exh-toast b { display: block; font: var(--text-body-strong); }
.ld .ld-exh-toast p { margin: 4px 0 0; font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-exh-toast button { border: 0; background: none; cursor: pointer; color: var(--color-gray-600); align-self: flex-start; }
.ld .ld-mobile-affix input { direction: ltr; text-align: left; }

/* ---------- import (336:4676) ---------- */
.ld .ld-import { padding: 24px; display: flex; flex-direction: column; gap: 24px; }
.ld .ld-import .stepper { grid-template-columns: repeat(5, 1fr); padding-bottom: 20px; border-bottom: 1px solid var(--color-border); }
.ld .ld-import .stepper__sub { font: var(--text-caption); color: var(--color-text-secondary); margin-top: -4px; }
.ld .ld-import .stepper__item.is-done .stepper__label { color: var(--color-text-secondary); }
.ld .ld-import__h { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.ld .ld-import__h h2 { font: var(--text-h3); margin: 0; }
.ld .ld-import__h p { margin: 0; font: var(--text-caption); color: var(--color-text-muted); }
.ld .ld-map { border: 1px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; }
.ld .ld-map th { background: var(--color-gray-50); height: 40px; }
.ld .ld-map td { height: 56px; }
.ld .ld-map .select { height: 40px; max-width: 316px; }
.ld .ld-map__sample { unicode-bidi: plaintext; text-align: right; }
.ld .ld-import__foot { display: flex; gap: 12px; }
.ld .ld-drop { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 40px 24px; border: 1.5px dashed var(--color-gray-300); border-radius: var(--radius-lg); background: var(--color-gray-50); text-align: center; }
.ld .ld-drop .icon { width: 32px; height: 32px; color: var(--color-gray-500); }
.ld .ld-drop p { margin: 0; font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-rules { display: flex; flex-direction: column; gap: 12px; }
.ld .ld-rule { display: flex; gap: 12px; padding: 16px; border: 1px solid var(--color-border); border-radius: var(--radius-lg); cursor: pointer; }
.ld .ld-rule:has(input:checked) { border-color: var(--color-brand-navy); background: var(--color-brand-navy-50); }
.ld .ld-rule input { width: 18px; height: 18px; accent-color: var(--color-brand-navy); margin-top: 3px; }
.ld .ld-rule b { display: block; font: var(--text-body-strong); }
.ld .ld-rule span { font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ld .ld-stat { padding: 16px; border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.ld .ld-stat span { font: var(--text-small); color: var(--color-text-secondary); }
.ld .ld-stat b { display: block; font: var(--text-h1); margin-top: 4px; }
.ld .ld-preview td { height: 44px; }
.ld .ld-preview .ltr { direction: ltr; unicode-bidi: isolate; }
.ld .ld-owner-wrap { display: inline-flex; align-items: center; gap: 8px; }
.ld .ld-owner-wrap .owner-pick .pop { inset-inline-start: auto; inset-inline-end: 0; }
.ld .ld-side .na-card { margin: 0; }
