/* crm — the CRM & Properties view. Industry design system: Barlow, square
 * corners, blueprint lines. No inline style anywhere (CSP); every geometry
 * decision is a class. */

.crm-nav { margin-bottom: 12px; }
.crm-link { color: var(--accent, #1f3a5f); text-decoration: none; font-weight: 600; }
.crm-link:hover, .crm-link:focus { text-decoration: underline; }
.crm-search { min-width: 220px; }

/* Company record tabs: Properties · Contacts · Opportunities · Activities · Tasks */
.crm-tabs { display: flex; gap: 2px; margin: 0 0 12px; border-bottom: 1px solid var(--line, #d9d9dc); }
.crm-tab { appearance: none; background: none; border: 0; border-bottom: 2px solid transparent; padding: 8px 14px; font: inherit; color: inherit; cursor: pointer; text-transform: capitalize; }
.crm-tab.active { border-bottom-color: var(--accent, #1f3a5f); font-weight: 600; }
.crm-tab-count { display: inline-block; min-width: 18px; padding: 0 5px; margin-left: 4px; font-size: 11px; line-height: 18px; text-align: center; background: #f2f2f3; border: 1px solid var(--line, #d9d9dc); }

/* Activities: a timeline list, newest first. */
.crm-activities { list-style: none; margin: 0; padding: 0; }
.crm-activity { padding: 10px 0; border-bottom: 1px solid var(--line, #d9d9dc); display: grid; grid-template-columns: max-content max-content 1fr; gap: 2px 12px; align-items: baseline; }
.crm-activity:last-child { border-bottom: 0; }
.crm-activity-kind { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; padding: 1px 6px; border: 1px solid var(--line, #d9d9dc); }
.crm-activity-when { color: var(--muted, #6b6b70); font-size: 12px; }
.crm-activity p { grid-column: 1 / -1; margin: 4px 0 0; white-space: pre-wrap; }
.crm-activity .faint { grid-column: 1 / -1; }

/* The opened alarm code: deliberately loud, so it is never mistaken for a chip. */
.crm-alarm-code { font-family: "Spline Sans Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 18px; letter-spacing: .12em; padding: 2px 8px; background: #fff7e0; border: 1px solid #b26a00; }
.crm-win-hint { padding: 0 8px; align-self: center; cursor: help; border-bottom: 1px dotted currentColor; }

/* Pipeline board: one column per Aspire status, cards link to the record. */
.crm-board { display: grid; grid-template-columns: repeat(8, minmax(180px, 1fr)); gap: 1px; background: var(--line, #d9d9dc); border: 1px solid var(--line, #d9d9dc); overflow-x: auto; }
.crm-col { background: #fff; min-height: 240px; padding: 8px; }
.crm-col-head { display: flex; justify-content: space-between; align-items: baseline; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; font-weight: 600; padding-bottom: 4px; border-bottom: 2px solid var(--accent, #1f3a5f); }
.crm-col-count { font-size: 14px; }
.crm-col-sum { min-height: 18px; font-size: 12px; margin: 4px 0 8px; }
.crm-card { display: grid; gap: 2px; padding: 8px; margin: 0 0 6px; background: #f7f7f8; border-left: 3px solid var(--accent, #1f3a5f); color: inherit; text-decoration: none; font-size: 13px; }
.crm-card:hover, .crm-card:focus { background: #eef1f6; }
.crm-card-num { font-size: 11px; color: var(--muted, #6b6b70); }

/* Import */
.crm-csv { width: 100%; font-family: "Spline Sans Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; white-space: pre; }
.crm-columns-found { display: flex; flex-wrap: wrap; gap: 4px; padding: 8px 12px; border-bottom: 1px solid var(--line, #d9d9dc); }

@media (max-width: 960px) {
  .crm-board { grid-template-columns: repeat(4, minmax(180px, 1fr)); }
}

/* Customer portal card (Company record): the one-time invite link and its copy row. */
.crm-portal-invite { display: grid; gap: 6px; padding: 12px 14px; margin: 0 0 12px; border: 1px solid var(--accent, #1f3a5f); background: #f7f9fc; }
.crm-copy-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.crm-copy-row .input { flex: 1 1 320px; min-width: 0; }
