/* AgencyCRM — Base Reset */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body:has(#agencycrm-app) { overflow: hidden; padding: 8px !important; background: #F9FAFB; }
body:has(#agencycrm-app) > * { margin: 0 !important; padding: 0 !important; }
body:has(#agencycrm-app) #agencycrm-app { border-radius: 10px; overflow: hidden; height: calc(100vh - 16px); }
#agencycrm-app header *, #agencycrm-app main *, #agencycrm-app footer * { max-width: none !important; }
#agencycrm-app [data-modal-inner] { max-width: 540px !important; }


/* AgencyCRM — Design Tokens */
:root {
  --crm-primary:        #043240;
  --crm-primary-dark:   #031e29;
  --crm-primary-light:  #e0fafb;
  --crm-accent:         #20cbd4;
  --crm-danger:         #EF4444;
  --crm-success:        #22C55E;
  --crm-bg:             #F9FAFB;
  --crm-card:           #FFFFFF;
  --crm-sidebar:        #043240;
  --crm-border:         #E5E7EB;
  --crm-text-primary:   #111827;
  --crm-text-secondary: #53575d;
  --crm-text-muted:     #979798;
  --crm-font:           'DM Sans', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --crm-auto:           #2563EB;
  --crm-home:           #22C55E;
  --crm-business:       #F59E0B;
  --crm-radius:         8px;
  --crm-radius-lg:      12px;
  --crm-radius-xl:      16px;
  --crm-shadow:         0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
  --crm-shadow-md:      0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.04);
  --crm-transition:     150ms ease;
  /* Pipeline alias */
  --crm-surface-2:      #f1f5f9;
}

#agencycrm-app *, #agencycrm-app *::before, #agencycrm-app *::after {
  box-sizing: border-box; margin: 0; padding: 0;
}
/* Restore padding/margin stripped by global reset */
#agencycrm-app .pl-card { padding: 14px !important; margin: 0 0 8px 0 !important; }
#agencycrm-app .pl-card-top { margin: 0 0 10px 0 !important; }
#agencycrm-app .pl-card-foot { margin: 10px 0 0 0 !important; padding: 8px 0 0 0 !important; }
#agencycrm-app .pl-card-qrow { padding: 7px 10px !important; margin: 0 0 6px 0 !important; }
#agencycrm-app .pl-lt { padding: 2px 7px !important; margin-top: 4px !important; }
#agencycrm-app .pl-chip { padding: 3px 8px !important; }
#agencycrm-app .pl-card-age { padding: 2px 7px !important; }
#agencycrm-app .pl-col-header { padding: 11px 12px 9px !important; }
#agencycrm-app .pl-cards { padding: 10px !important; }
#agencycrm-app .pl-col-count { padding: 2px 8px !important; }
/* Modal */
#agencycrm-app .pl-modal { padding: 0 !important; }
#agencycrm-app .pl-mhdr { padding: 16px 20px !important; }
#agencycrm-app .pl-mbody { padding: 20px !important; }
#agencycrm-app .pl-mfoot { padding: 14px 20px !important; }
#agencycrm-app .pl-msec { gap: 10px !important; }
#agencycrm-app .pl-msec-label { padding-bottom: 5px !important; }
#agencycrm-app .pl-fg { gap: 4px !important; }
#agencycrm-app .pl-fg input,
#agencycrm-app .pl-fg select,
#agencycrm-app .pl-fg textarea { padding: 8px 10px !important; }
#agencycrm-app .pl-fg label { margin: 0 !important; }
#agencycrm-app .pl-row2 { gap: 10px !important; }
#agencycrm-app .pl-row3 { gap: 10px !important; }
#agencycrm-app .pl-msections { gap: 16px !important; }
#agencycrm-app .pl-pills { gap: 6px !important; margin-top: 4px !important; }
#agencycrm-app .pl-pill { padding: 5px 12px !important; }
#agencycrm-app .pl-lt-grid { gap: 6px !important; }
#agencycrm-app .pl-lt-btn { padding: 9px 12px !important; }
#agencycrm-app .pl-lt-selected { padding: 8px 12px !important; }
#agencycrm-app .pl-infobanner { padding: 11px 12px !important; }
#agencycrm-app .pl-cklist { gap: 8px !important; margin-top: 6px !important; }
#agencycrm-app .pl-chkitem { padding: 11px 13px !important; }
#agencycrm-app .pl-prior { padding: 10px !important; margin-bottom: 12px !important; }
/* Toolbar & board */
#agencycrm-app .pl-toolbar { padding: 12px 18px !important; gap: 10px !important; }
#agencycrm-app .pl-board { padding: 14px 16px !important; gap: 12px !important; }
#agencycrm-app .pl-btn { padding: 7px 13px !important; gap: 5px !important; }
#agencycrm-app .pl-lost-wrap { margin: 0 16px 18px !important; }
#agencycrm-app .pl-lost-head { padding: 12px 16px !important; }
#agencycrm-app .pl-lost-grid { padding: 12px !important; gap: 10px !important; }
#agencycrm-app .pl-lost-card { padding: 11px !important; }
/* Direct checkbox */
#agencycrm-app .pl-direct-label { display:flex !important; align-items:center !important; gap:8px !important; font-size:13px !important; font-weight:500 !important; color:var(--crm-text-primary) !important; cursor:pointer !important; }
#agencycrm-app .pl-direct-label input[type="checkbox"] { width:auto !important; margin:0 !important; cursor:pointer !important; }
#agencycrm-app {
  font-family: var(--crm-font); font-size: 14px; line-height: 1.5;
  color: var(--crm-text-primary); background: var(--crm-bg);
  -webkit-font-smoothing: antialiased;
}

/* Shared badges */
.crm-badge { display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase; }
.crm-badge--auto     { background:#DBEAFE;color:#1D4ED8; }
.crm-badge--home     { background:#DCFCE7;color:#15803D; }
.crm-badge--business { background:#FEF3C7;color:#B45309; }
.crm-badge--success  { background:#DCFCE7;color:#15803D; }
.crm-badge--danger   { background:#FEE2E2;color:#B91C1C; }
.crm-badge--muted    { background:#F3F4F6;color:#6B7280; }

/* Shared buttons */
.crm-btn { display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--crm-radius);border:none;font-family:var(--crm-font);font-size:13px;font-weight:500;cursor:pointer;transition:opacity var(--crm-transition),background var(--crm-transition);text-decoration:none; }
.crm-btn--primary { background:var(--crm-primary);color:#fff; }
.crm-btn--primary:hover { background:var(--crm-primary-dark); }
.crm-btn--ghost { background:transparent;color:var(--crm-text-secondary);border:1px solid var(--crm-border); }
.crm-btn--ghost:hover { background:var(--crm-bg); }
.crm-btn--danger { background:var(--crm-danger);color:#fff; }
.crm-btn:disabled { opacity:.45;cursor:not-allowed; }

/* Shared cards */
.crm-card { background:var(--crm-card);border:1px solid var(--crm-border);border-radius:var(--crm-radius-lg);box-shadow:var(--crm-shadow);padding:16px; }

/* Shared form */
.crm-input, .crm-select, .crm-textarea { width:100%;padding:8px 12px;border:1px solid var(--crm-border);border-radius:var(--crm-radius);font-family:var(--crm-font);font-size:13px;color:var(--crm-text-primary);background:var(--crm-card);transition:border-color var(--crm-transition),box-shadow var(--crm-transition);outline:none; }
.crm-input:focus, .crm-select:focus, .crm-textarea:focus { border-color:var(--crm-primary);box-shadow:0 0 0 3px var(--crm-primary-light); }
.crm-label { display:block;font-size:12px;font-weight:500;color:var(--crm-text-secondary);margin-bottom:4px; }
.crm-divider { border:none;border-top:1px solid var(--crm-border);margin:12px 0; }
.crm-muted { color:var(--crm-text-muted); }

/* ── Clean list tables (remove Excel grid look) ── */
#agencycrm-app table { border-collapse: collapse !important; }
#agencycrm-app thead th {
  background: transparent !important;
  border-bottom: 1px solid #E5E7EB !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
}
#agencycrm-app tbody td {
  border-bottom: 1px solid #F3F4F6 !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
}
#agencycrm-app tbody tr:last-child td {
  border-bottom: none !important;
}
/* Remove outer card border on table wrappers — keep the radius for clipping */
#agencycrm-app table:first-child { border: none !important; }
#crm-view-clients > div > div:has(> table),
#crm-view-policies > div > div:has(> table),
#crm-view-agents > div > div:has(> table) {
  border: none !important;
  box-shadow: none !important;
}
.crm-mono { font-family:'SF Mono','Fira Code',monospace;font-size:.92em; }
#agencycrm-app .pl-lt-pre { padding: 18px 18px 16px !important; }
#agencycrm-app .pl-lt-pre-icon { width: 40px !important; height: 40px !important; margin-bottom: 12px !important; padding: 0 !important; }
#agencycrm-app .pl-lt-pre-label { margin: 0 !important; padding: 0 !important; }
#agencycrm-app .pl-lt-pre-sub { margin-top: 2px !important; padding: 0 !important; }
/* New deal toggles + search results — override global reset */
#agencycrm-app .pl-nd-seg { padding: 9px 20px !important; }
#agencycrm-app .pl-nd-l1-sm .pl-nd-seg { padding: 6px 16px !important; }
#agencycrm-app .pl-nd-pill { padding: 6px 18px !important; margin: 0 !important; }
#agencycrm-app .pl-nd-toggles { gap: 10px !important; margin-bottom: 4px !important; }
#agencycrm-app .pl-nd-pills { gap: 8px !important; }
#agencycrm-app .pl-nd-ct-row { gap: 12px !important; }
#agencycrm-app .pl-cresults { padding: 0 !important; }
#agencycrm-app .pl-copt { padding: 10px 14px !important; margin: 0 !important; }
#agencycrm-app .pl-copt span { margin: 0 0 0 8px !important; padding: 0 !important; }
/* Context menu — override global reset */
#agencycrm-app .pl-ctx { padding: 5px !important; }
#agencycrm-app .pl-ctx button { padding: 9px 11px !important; margin: 0 !important; display: flex !important; align-items: center !important; gap: 8px !important; width: 100% !important; background: none !important; border: none !important; border-radius: 5px !important; font-size: 13px !important; color: #334155 !important; cursor: pointer !important; text-align: left !important; font-family: inherit !important; }
#agencycrm-app .pl-ctx button:hover { background: #f8fafc !important; }
#agencycrm-app .pl-ctx button.lost { color: #dc2626 !important; }
#agencycrm-app .pl-ctx button.lost:hover { background: #fef2f2 !important; }
#agencycrm-app .pl-ctx button.issue { color: #059669 !important; }
#agencycrm-app .pl-ctx button.issue:hover { background: #ecfdf5 !important; }
#agencycrm-app .pl-ctx-sep { height: 1px !important; background: #f1f5f9 !important; margin: 4px 5px !important; padding: 0 !important; }

/* ═══════════════════════════════════════════════════════════════ */
/* Activities page — split screen 60/40                            */
/* ═══════════════════════════════════════════════════════════════ */
#crm-view-activities.is-active { display: flex !important; flex-direction: column !important; height: 100% !important; }
#crm-view-activities.is-active ~ .crm-view-spacer { display: none !important; }
#crm-view-container:has(#crm-view-activities.is-active) { padding: 0 !important; overflow: hidden !important; }
.act-split { display: flex !important; height: 100% !important; min-height: 0 !important; flex: 1 !important; }
.act-left { flex: 6 !important; display: flex !important; flex-direction: column !important; min-width: 0 !important; border-right: 1px solid var(--crm-border) !important; overflow: hidden !important; height: 100% !important; }
.act-right { flex: 4 !important; display: flex !important; flex-direction: column !important; min-width: 0 !important; background: #F9FAFB !important; overflow: hidden !important; height: 100% !important; }

/* Left header */
.act-left-hdr { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 16px 16px 12px !important; }
.act-left-title { font-size: 18px !important; font-weight: 500 !important; color: var(--crm-text-primary) !important; }
.act-btn-new {
  display: flex !important; align-items: center !important; gap: 5px !important;
  padding: 7px 14px !important; background: #20CBD4 !important; color: #043240 !important;
  border: none !important; border-radius: var(--crm-radius) !important;
  font-size: 12px !important; font-weight: 500 !important; cursor: pointer !important;
  font-family: var(--crm-font) !important;
}
.act-btn-new:hover { background: #1bb8c0 !important; }

/* Left filters */
.act-left-filters { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 0 16px 10px !important; flex-wrap: wrap !important; gap: 6px !important; border-bottom: 1px solid var(--crm-border) !important; }
.act-tabs { display: flex !important; gap: 2px !important; background: #F3F4F6 !important; border-radius: 6px !important; padding: 2px !important; }
.act-tab { font-size: 12px !important; padding: 4px 10px !important; border-radius: 5px !important; cursor: pointer !important; color: var(--crm-text-secondary) !important; }
.act-tab.is-active { background: var(--crm-card) !important; color: var(--crm-text-primary) !important; box-shadow: 0 1px 2px rgba(0,0,0,.06) !important; font-weight: 500 !important; }
.act-dropdowns { display: flex !important; gap: 6px !important; }
.act-select { font-size: 11px !important; padding: 4px 8px !important; border: 1px solid var(--crm-border) !important; border-radius: 6px !important; color: var(--crm-text-secondary) !important; background: var(--crm-card) !important; font-family: var(--crm-font) !important; }

/* Activity list */
.act-list { flex: 1 !important; overflow-y: auto !important; }
.act-row {
  display: flex !important; align-items: center !important; gap: 8px !important;
  padding: 10px 16px !important; border-bottom: 1px solid var(--crm-border) !important;
  cursor: pointer !important; border-left: 3px solid transparent !important;
  transition: background .1s !important;
}
.act-row:hover { background: #F9FAFB !important; }
.act-row-active { background: #E6F1FB !important; border-left-color: #1B83E9 !important; }
.act-row-done { opacity: .55 !important; }

.act-row-body { flex: 1 !important; min-width: 0 !important; }
.act-row-top { display: flex !important; align-items: center !important; gap: 6px !important; margin-bottom: 3px !important; }
.act-row-title { font-size: 13px !important; font-weight: 500 !important; color: var(--crm-text-primary) !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
.act-strike { text-decoration: line-through !important; color: var(--crm-text-muted) !important; }
.act-closed-badge { font-size: 10px !important; padding: 1px 6px !important; border-radius: 6px !important; background: #E1F5EE !important; color: #085041 !important; font-weight: 500 !important; flex-shrink: 0 !important; }
.act-row-bottom { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 11px !important; color: var(--crm-text-secondary) !important; flex-wrap: wrap !important; }
.act-pill { font-size: 10px !important; padding: 1px 6px !important; border-radius: 6px !important; font-weight: 500 !important; display: inline-block !important; white-space: nowrap !important; }
.act-row-date { font-size: 11px !important; white-space: nowrap !important; }
.act-date-danger { color: #E24B4A !important; font-weight: 500 !important; }
.act-date-warning { color: #D97706 !important; font-weight: 500 !important; }
.act-row-agent { font-size: 11px !important; color: var(--crm-text-secondary) !important; }
.act-note-count { font-size: 11px !important; color: var(--crm-text-secondary) !important; display: flex !important; align-items: center !important; gap: 3px !important; flex-shrink: 0 !important; }
.act-empty { text-align: center !important; color: var(--crm-text-muted) !important; font-size: 13px !important; padding: 40px 16px !important; }

/* ── Right panel ─────────────────────────────────────────────── */
.act-right-empty { display: flex !important; align-items: center !important; justify-content: center !important; height: 100% !important; color: var(--crm-text-muted) !important; font-size: 13px !important; }
.act-r-hdr { padding: 14px 16px !important; border-bottom: 1px solid var(--crm-border) !important; background: var(--crm-card) !important; }
.act-r-title { font-size: 14px !important; font-weight: 500 !important; color: var(--crm-text-primary) !important; margin-bottom: 6px !important; }
.act-r-meta { display: flex !important; gap: 6px !important; flex-wrap: wrap !important; align-items: center !important; }
.act-r-meta-txt { font-size: 11px !important; color: var(--crm-text-secondary) !important; }
.act-r-actions { display: flex !important; gap: 6px !important; padding: 8px 16px !important; border-bottom: 1px solid var(--crm-border) !important; background: var(--crm-card) !important; }
.act-r-btn {
  font-size: 12px !important; padding: 5px 12px !important; border-radius: var(--crm-radius) !important;
  cursor: pointer !important; display: flex !important; align-items: center !important; gap: 5px !important;
  border: 1px solid var(--crm-border) !important; background: var(--crm-card) !important;
  color: var(--crm-text-secondary) !important; font-family: var(--crm-font) !important;
}
.act-r-btn:hover { background: #F3F4F6 !important; }
.act-r-btn-close { color: #E24B4A !important; border-color: #F09595 !important; }
.act-r-btn-close:hover { background: #FCEBEB !important; }
.act-r-btn-response { color: #0C447C !important; border-color: #A8CFF0 !important; }
.act-r-btn-response:hover { background: #E6F1FB !important; }
.act-r-btn-reopen { color: #1D9E75 !important; border-color: #9FE1CB !important; }
.act-r-btn-reopen:hover { background: #E1F5EE !important; }
.act-r-btn-delete { color: #E24B4A !important; border-color: #F09595 !important; margin-left: auto !important; }
.act-r-btn-delete:hover { background: #FCEBEB !important; }
.act-r-desc { padding: 10px 16px !important; font-size: 13px !important; color: var(--crm-text-secondary) !important; border-bottom: 1px solid var(--crm-border) !important; background: var(--crm-card) !important; line-height: 1.5 !important; }

/* Thread */
.act-r-thread { flex: 1 !important; overflow-y: auto !important; padding: 14px 16px !important; }
.act-r-thread-empty { text-align: center !important; color: var(--crm-text-muted) !important; font-size: 13px !important; padding: 30px 16px !important; }
.act-note { display: flex !important; gap: 10px !important; margin-bottom: 16px !important; }
.act-note-av {
  width: 28px !important; height: 28px !important; border-radius: 50% !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  font-size: 10px !important; font-weight: 500 !important; flex-shrink: 0 !important;
}
.act-note-body { flex: 1 !important; min-width: 0 !important; }
.act-note-head { font-size: 11px !important; color: var(--crm-text-secondary) !important; margin-bottom: 2px !important; }
.act-note-head strong { font-weight: 500 !important; color: var(--crm-text-primary) !important; }
.act-note-text { font-size: 13px !important; color: var(--crm-text-primary) !important; line-height: 1.5 !important; }
.act-note-tag-close { font-size: 10px !important; padding: 1px 6px !important; border-radius: 6px !important; background: #E1F5EE !important; color: #085041 !important; font-weight: 500 !important; margin-left: 4px !important; }

/* Input */
.act-r-input {
  padding: 14px 16px 20px !important; border-top: 2px solid #20CBD4 !important;
  background: var(--crm-card) !important; box-shadow: 0 -2px 8px rgba(0,0,0,.05) !important;
  margin-bottom: 8px !important;
}
.act-r-input-label { font-size: 11px !important; font-weight: 500 !important; color: var(--crm-text-muted) !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; margin-bottom: 8px !important; }
.act-r-input-row { display: flex !important; gap: 8px !important; align-items: flex-end !important; }
.act-r-input-row textarea {
  flex: 1 !important; font-size: 13px !important; padding: 10px 12px !important;
  border: 1px solid var(--crm-border) !important; border-radius: var(--crm-radius) !important;
  resize: none !important; min-height: 60px !important; font-family: var(--crm-font) !important;
  color: var(--crm-text-primary) !important; background: #F9FAFB !important; box-sizing: border-box !important;
}
.act-r-input-row textarea:focus { outline: none !important; border-color: #20CBD4 !important; box-shadow: 0 0 0 2px rgba(32,203,212,.15) !important; }
.act-r-send {
  padding: 8px 12px !important; background: #20CBD4 !important; color: #043240 !important;
  border: none !important; border-radius: var(--crm-radius) !important;
  font-size: 12px !important; font-weight: 500 !important; cursor: pointer !important;
  font-family: var(--crm-font) !important; align-self: flex-end !important;
}
.act-r-send:hover { background: #1bb8c0 !important; }

/* ── Close activity dialog ───────────────────────────────────── */
.act-close-modal {
  background: var(--crm-card) !important; border-radius: var(--crm-radius-lg) !important;
  width: 440px !important; max-width: 95vw !important;
  box-shadow: 0 8px 30px rgba(0,0,0,.15) !important; overflow: hidden !important;
}
.act-close-hdr { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 14px 20px !important; border-bottom: 1px solid var(--crm-border) !important; }
.act-close-hdr-title { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 16px !important; font-weight: 500 !important; }
.act-close-x { background: none !important; border: none !important; font-size: 22px !important; color: var(--crm-text-muted) !important; cursor: pointer !important; padding: 0 !important; line-height: 1 !important; }
.act-close-body { padding: 20px !important; }
.act-close-act-title { font-size: 13px !important; font-weight: 500 !important; padding: 10px 14px !important; background: #F3F4F6 !important; border-radius: var(--crm-radius) !important; margin-bottom: 16px !important; }
.act-close-label { font-size: 13px !important; font-weight: 500 !important; color: var(--crm-text-secondary) !important; margin-bottom: 6px !important; }
.act-close-opt { font-size: 11px !important; font-weight: 400 !important; color: var(--crm-text-muted) !important; }
.act-close-textarea {
  width: 100% !important; min-height: 80px !important; font-size: 13px !important; padding: 10px 12px !important;
  border: 1px solid var(--crm-border) !important; border-radius: var(--crm-radius) !important;
  background: #F9FAFB !important; color: var(--crm-text-primary) !important; resize: none !important;
  font-family: var(--crm-font) !important; box-sizing: border-box !important;
}
.act-close-textarea:focus { outline: none !important; border-color: #20CBD4 !important; box-shadow: 0 0 0 2px rgba(32,203,212,.15) !important; }
.act-close-foot { display: flex !important; justify-content: flex-end !important; gap: 10px !important; padding: 14px 20px !important; border-top: 1px solid var(--crm-border) !important; background: #F9FAFB !important; }
.act-btn-close-act {
  display: flex !important; align-items: center !important; gap: 5px !important;
  padding: 8px 18px !important; border: none !important; border-radius: var(--crm-radius) !important;
  font-size: 13px !important; font-weight: 500 !important; color: #fff !important;
  background: #E24B4A !important; cursor: pointer !important; font-family: var(--crm-font) !important;
}
.act-btn-close-act:hover { background: #C43C3B !important; }

/* Responsive */
@media (max-width: 768px) {
  .act-split { flex-direction: column !important; }
  .act-left { flex: none !important; border-right: none !important; border-bottom: 1px solid var(--crm-border) !important; max-height: 50vh !important; }
  .act-right { flex: none !important; min-height: 300px !important; }
  .act-left-filters { flex-direction: column !important; align-items: stretch !important; }
}
/* Modal */
.act-modal-overlay {
  position: fixed !important; inset: 0 !important; background: rgba(0,0,0,.4) !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  z-index: 10000 !important;
}
.act-modal {
  background: var(--crm-card) !important; border-radius: var(--crm-radius-lg) !important;
  width: 520px !important; max-width: 95vw !important;
  box-shadow: 0 8px 30px rgba(0,0,0,.15) !important; overflow: hidden !important;
}
.act-modal-header {
  display: flex !important; align-items: center !important; justify-content: space-between !important;
  padding: 14px 20px !important; border-bottom: 1px solid var(--crm-border) !important;
}
.act-modal-title-row { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 16px !important; font-weight: 500 !important; }
.act-modal-close { background: none !important; border: none !important; font-size: 22px !important; color: var(--crm-text-muted) !important; cursor: pointer !important; padding: 0 !important; line-height: 1 !important; }
.act-modal-body { padding: 20px !important; }
.act-modal-footer {
  display: flex !important; justify-content: flex-end !important; gap: 10px !important;
  padding: 14px 20px !important; border-top: 1px solid var(--crm-border) !important;
  background: #F9FAFB !important;
}
.act-form-row { display: flex !important; gap: 12px !important; margin-bottom: 16px !important; }
.act-form-field { margin-bottom: 16px !important; }
.act-form-row .act-form-field { margin-bottom: 0 !important; }
.act-form-field.flex-1 { flex: 1 !important; }
.act-form-field label { display: block !important; font-size: 13px !important; font-weight: 500 !important; color: var(--crm-text-secondary) !important; margin-bottom: 6px !important; }
.act-form-field label em { color: #E24B4A !important; font-style: normal !important; }
.act-form-field input, .act-form-field select, .act-form-field textarea {
  width: 100% !important; padding: 8px 12px !important;
  border: 1px solid var(--crm-border) !important; border-radius: var(--crm-radius) !important;
  font-size: 14px !important; color: var(--crm-text-primary) !important;
  background: #F9FAFB !important; font-family: var(--crm-font) !important;
  box-sizing: border-box !important;
}
.act-form-field textarea { resize: vertical !important; }
.act-form-field input:focus, .act-form-field select:focus, .act-form-field textarea:focus {
  outline: none !important; border-color: #20CBD4 !important;
  box-shadow: 0 0 0 2px rgba(32,203,212,.15) !important;
}
.act-form-field-rel { position: relative !important; }
.act-client-results {
  position: absolute !important; left: 0 !important; right: 0 !important;
  background: var(--crm-card) !important; border: 1px solid var(--crm-border) !important;
  border-radius: var(--crm-radius) !important; box-shadow: 0 4px 12px rgba(0,0,0,.1) !important;
  z-index: 100 !important; max-height: 180px !important; overflow-y: auto !important;
}
.act-client-results:empty { display: none !important; }
.act-csr-item { padding: 8px 12px !important; font-size: 13px !important; color: var(--crm-text-primary) !important; cursor: pointer !important; }
.act-csr-item:hover { background: #F3F4F6 !important; }
.act-csr-item small { color: var(--crm-text-muted) !important; }
.act-btn-cancel {
  padding: 8px 16px !important; border: 1px solid var(--crm-border) !important;
  border-radius: var(--crm-radius) !important; font-size: 14px !important;
  color: var(--crm-text-secondary) !important; background: var(--crm-card) !important;
  cursor: pointer !important; font-family: var(--crm-font) !important;
}
.act-btn-primary {
  padding: 8px 20px !important; border: none !important; border-radius: var(--crm-radius) !important;
  font-size: 14px !important; font-weight: 500 !important; color: #043240 !important;
  background: #20CBD4 !important; cursor: pointer !important; font-family: var(--crm-font) !important;
}
.act-btn-primary:hover { background: #1bb8c0 !important; }
@media (max-width: 768px) {
  .act-thead { display: none !important; }
  .act-row { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; padding: 12px 14px !important; }
  .act-td-chk { order: -1 !important; }
  .act-td-title { width: 100% !important; }
  .act-filters { flex-direction: column !important; align-items: stretch !important; }
}

/* ── To-do popup ─────────────────────────────────────────────── */
/* Amber badge for to-do overdue count */
#crm-sidebar .crm-todo-badge {
  background: #F59E0B !important; color: #fff !important;
  font-size: 10px !important; font-weight: 600 !important;
  padding: 1px 6px !important; border-radius: 999px !important;
}

/* Nav separator before to-do link */
#crm-sidebar .crm-todo-trigger {
  margin-top: auto !important;
  border-top: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 0 0 6px 6px !important;
}

/* Panel — fixed position, outside flex wrapper */
.crm-todo-panel {
  position: fixed !important;
  bottom: 60px !important;
  left: 64px !important;
  width: 380px !important;
  max-height: 520px !important;
  background: var(--crm-card) !important;
  border: 1px solid var(--crm-border) !important;
  border-radius: var(--crm-radius-lg) !important;
  box-shadow: 0 8px 30px rgba(0,0,0,.15) !important;
  z-index: 10001 !important;
  display: none;
  flex-direction: column !important;
  font-family: var(--crm-font) !important;
  overflow: hidden !important;
}
.crm-todo-panel.is-open {
  display: flex !important;
}
#agencycrm-app.crm-sidebar-expanded ~ .crm-todo-panel {
  left: 192px !important;
}

/* Header */
.crm-todo-panel-header {
  display: flex !important; align-items: center !important; justify-content: space-between !important;
  padding: 16px 18px 14px !important; border-bottom: 1px solid var(--crm-border) !important;
  flex-shrink: 0 !important;
}
.crm-todo-panel-title {
  font-size: 15px !important; font-weight: 600 !important; color: var(--crm-text-primary) !important;
  display: flex !important; align-items: center !important; gap: 8px !important;
}
.crm-todo-overdue-label {
  font-size: 10px !important; font-weight: 500 !important;
  padding: 2px 8px !important; border-radius: 999px !important;
  background: #FEF3C7 !important; color: #92400E !important;
}
.crm-todo-panel-close {
  background: none !important; border: none !important; font-size: 20px !important;
  color: var(--crm-text-muted) !important; cursor: pointer !important;
  padding: 0 !important; line-height: 1 !important; width: 24px !important; height: 24px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  border-radius: 4px !important;
}
.crm-todo-panel-close:hover { background: #F3F4F6 !important; color: var(--crm-text-primary) !important; }

/* Add trigger (resting state) */
.crm-todo-add-trigger {
  display: flex !important; align-items: center !important; gap: 8px !important;
  padding: 12px 18px !important; border-bottom: 1px solid var(--crm-border) !important;
  cursor: pointer !important; font-size: 13px !important; color: var(--crm-text-muted) !important;
  flex-shrink: 0 !important; transition: background .1s !important;
}
.crm-todo-add-trigger:hover { background: #FAFBFC !important; color: var(--crm-text-secondary) !important; }
.crm-todo-add-trigger svg { flex-shrink: 0 !important; stroke: var(--crm-text-muted) !important; }

/* Add form (expanded state) */
.crm-todo-add-form {
  padding: 14px 16px !important; border-bottom: 1px solid var(--crm-border) !important;
  background: #F9FAFB !important; flex-shrink: 0 !important;
}
.crm-todo-form-field { margin-bottom: 10px !important; }
.crm-todo-form-field:last-child { margin-bottom: 0 !important; }
.crm-todo-form-label {
  display: block !important; font-size: 11px !important; font-weight: 500 !important;
  color: var(--crm-text-secondary) !important; margin-bottom: 4px !important;
}
.crm-todo-form-input {
  width: 100% !important; height: 36px !important;
  border: 1px solid var(--crm-border) !important; border-radius: 6px !important;
  padding: 0 12px !important; font-size: 13px !important; font-weight: 500 !important;
  font-family: var(--crm-font) !important; color: var(--crm-text-primary) !important;
  outline: none !important; background: #fff !important;
}
.crm-todo-form-input:focus { border-color: #20CBD4 !important; box-shadow: 0 0 0 2px rgba(32,203,212,.12) !important; }
.crm-todo-form-input::placeholder { color: var(--crm-text-muted) !important; font-weight: 400 !important; }
.crm-todo-form-textarea {
  width: 100% !important; min-height: 52px !important;
  border: 1px solid var(--crm-border) !important; border-radius: 6px !important;
  padding: 8px 12px !important; font-size: 12px !important; line-height: 1.5 !important;
  font-family: var(--crm-font) !important; color: var(--crm-text-primary) !important;
  outline: none !important; background: #fff !important; resize: vertical !important;
}
.crm-todo-form-textarea:focus { border-color: #20CBD4 !important; box-shadow: 0 0 0 2px rgba(32,203,212,.12) !important; }
.crm-todo-form-textarea::placeholder { color: var(--crm-text-muted) !important; }
.crm-todo-form-date {
  width: 140px !important; height: 36px !important;
  border: 1px solid var(--crm-border) !important; border-radius: 6px !important;
  padding: 0 10px !important; font-size: 12px !important;
  font-family: var(--crm-font) !important; color: var(--crm-text-secondary) !important;
  outline: none !important; background: #fff !important;
}
.crm-todo-form-date:focus { border-color: #20CBD4 !important; }
.crm-todo-form-actions {
  display: flex !important; justify-content: flex-end !important; gap: 8px !important;
  margin-top: 12px !important;
}
.crm-todo-form-cancel {
  background: none !important; border: none !important;
  font-size: 12px !important; color: var(--crm-text-secondary) !important;
  cursor: pointer !important; padding: 6px 12px !important;
  font-family: var(--crm-font) !important;
}
.crm-todo-form-cancel:hover { color: var(--crm-text-primary) !important; }
.crm-todo-form-submit {
  font-size: 12px !important; font-weight: 500 !important;
  color: #043240 !important; background: #20CBD4 !important;
  border: none !important; border-radius: 6px !important;
  padding: 6px 18px !important; cursor: pointer !important;
  font-family: var(--crm-font) !important;
}
.crm-todo-form-submit:hover { background: #1bb8c0 !important; }
.crm-todo-form-submit:disabled { opacity: .5 !important; cursor: default !important; }

/* List */
.crm-todo-list {
  flex: 1 !important; overflow-y: auto !important; min-height: 0 !important;
}
.crm-todo-list::-webkit-scrollbar { width: 4px !important; }
.crm-todo-list::-webkit-scrollbar-thumb { background: #d1d5db !important; border-radius: 4px !important; }

/* Individual to-do row */
.crm-todo-row {
  display: flex !important; align-items: flex-start !important; gap: 12px !important;
  padding: 14px 18px !important; border-bottom: 1px solid #F3F4F6 !important;
  transition: background .1s !important; cursor: pointer !important;
}
.crm-todo-row:hover { background: #FAFBFC !important; }
.crm-todo-row:last-child { border-bottom: none !important; }

/* Checkbox — same hand-drawn approach as activities */
.crm-todo-chk {
  position: relative !important; display: flex !important;
  align-items: center !important; justify-content: center !important;
  flex-shrink: 0 !important; margin-top: 1px !important;
}
.crm-todo-chk input {
  -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important;
  width: 18px !important; height: 18px !important; border: 2px solid #CBD5E1 !important;
  border-radius: 4px !important; background: #fff !important; cursor: pointer !important;
  position: relative !important; margin: 0 !important; padding: 0 !important;
  opacity: 1 !important; outline: none !important;
  display: inline-block !important; vertical-align: middle !important; flex-shrink: 0 !important;
}
.crm-todo-chk input:hover { border-color: #20CBD4 !important; }
.crm-todo-chk input:checked {
  background: #20CBD4 !important; border-color: #20CBD4 !important;
}
.crm-todo-chk input:checked::after {
  content: '' !important; display: block !important;
  position: absolute !important; left: 5px !important; top: 1px !important;
  width: 5px !important; height: 10px !important;
  border: solid #fff !important; border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important; opacity: 1 !important;
}
.crm-todo-chk input::before { display: none !important; }
.crm-todo-chk input:not(:checked)::after { display: none !important; }

/* Row text */
.crm-todo-info {
  flex: 1 !important; min-width: 0 !important;
}
.crm-todo-title {
  font-size: 13px !important; font-weight: 500 !important;
  color: var(--crm-text-primary) !important; line-height: 1.4 !important;
}
.crm-todo-title-done {
  text-decoration: line-through !important; color: var(--crm-text-muted) !important;
  font-weight: 400 !important;
}
.crm-todo-desc {
  font-size: 12px !important; color: var(--crm-text-muted) !important;
  margin-top: 2px !important; line-height: 1.4 !important;
  overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important;
}
.crm-todo-desc-full {
  white-space: pre-wrap !important; overflow: visible !important;
  text-overflow: clip !important;
}
.crm-todo-due {
  font-size: 11px !important; color: var(--crm-text-muted) !important;
  margin-top: 3px !important;
}
.crm-todo-due-overdue { color: #E24B4A !important; font-weight: 500 !important; }
.crm-todo-due-today { color: #F59E0B !important; font-weight: 500 !important; }

/* Delete button — show on hover */
.crm-todo-del {
  background: none !important; border: none !important; padding: 2px !important;
  cursor: pointer !important; opacity: 0 !important; transition: opacity .12s !important;
  color: var(--crm-text-muted) !important; flex-shrink: 0 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  margin-top: 1px !important;
}
.crm-todo-row:hover .crm-todo-del { opacity: 1 !important; }
.crm-todo-del:hover { color: #E24B4A !important; }
.crm-todo-del svg { width: 14px !important; height: 14px !important; }

/* Completed section */
.crm-todo-completed-section {
  border-top: 1px solid var(--crm-border) !important;
  flex-shrink: 0 !important;
}
.crm-todo-completed-toggle {
  display: flex !important; align-items: center !important; gap: 6px !important;
  width: 100% !important; padding: 10px 18px !important;
  background: none !important; border: none !important;
  font-size: 12px !important; font-weight: 500 !important;
  color: var(--crm-text-muted) !important; cursor: pointer !important;
  font-family: var(--crm-font) !important;
}
.crm-todo-completed-toggle:hover { color: var(--crm-text-secondary) !important; }
.crm-todo-completed-toggle svg { flex-shrink: 0 !important; transition: transform .15s !important; }
.crm-todo-completed-toggle.is-open svg { transform: rotate(180deg) !important; }
.crm-todo-completed-count {
  background: #F3F4F6 !important; color: var(--crm-text-muted) !important;
  font-size: 10px !important; padding: 1px 6px !important;
  border-radius: 999px !important; font-weight: 600 !important;
}
.crm-todo-completed-list {
  max-height: 160px !important; overflow-y: auto !important;
}

/* Empty state */
.crm-todo-empty {
  text-align: center !important; color: var(--crm-text-muted) !important;
  font-size: 13px !important; padding: 32px 16px !important;
}
.crm-todo-empty svg { opacity: .3 !important; margin-bottom: 8px !important; }
