/* Nilasu Platform — features.css */

/* ── EMAIL PANEL / SPOC LIST ────────────────────────────────────── */
.spoc-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.spoc-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm)}
.spoc-item:hover,.spoc-item.selected{border-color:var(--accent-mid);background:var(--accent-soft)}
.spoc-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:13px;color:white;flex-shrink:0}
.spoc-name{font-size:14px;font-weight:500}
.spoc-desg{font-size:12px;color:var(--text-secondary)}
.email-compose{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}
.msg-area{width:100%;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;color:var(--text-primary);font-family:var(--font-body);font-size:14px;min-height:160px;outline:none;resize:vertical}
.msg-area:focus{border-color:var(--accent)}
.f-input{width:100%;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text-primary);font-family:var(--font-body);font-size:14px;outline:none;margin-bottom:10px}
.f-input:focus{border-color:var(--accent)}

/* ── PLACEHOLDER BUTTONS ────────────────────────────────────────── */
.ph-btn{padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);color:var(--text-secondary);font-size:12px;cursor:pointer;font-family:var(--font-body);transition:all .15s}
.ph-btn:hover{border-color:var(--accent-mid);background:var(--accent-soft);color:var(--accent)}

/* Rich mail editor */
.mail-quill-wrap .ql-toolbar{border-radius:8px 8px 0 0;border-color:var(--border);background:var(--bg-elevated)}
.mail-quill-wrap .ql-container{border-radius:0 0 8px 8px;border-color:var(--border);background:var(--bg-elevated);min-height:180px;font-size:14px;color:var(--text-primary)}
.mail-quill-wrap .ql-editor{min-height:180px;color:var(--text-primary)}
.mail-preview-box{background:white;border:1px solid var(--border);border-radius:8px;padding:20px 24px;font-family:Arial,sans-serif;font-size:14px;line-height:1.7;color:#1a1a1a;max-height:300px;overflow-y:auto}
.mail-preview-box hr{border:none;border-top:1px solid #e8e8e8;margin:16px 0}

/* ── SPOC CONNECT ACTIONS ───────────────────────────────────────── */
.spoc-actions{display:flex;gap:6px;flex-shrink:0;align-items:center}
.spoc-action-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:all .15s;flex-shrink:0}
.spoc-action-btn:hover{transform:scale(1.1)}
.spoc-action-btn.mail{color:var(--blue);border-color:rgba(56,189,248,.35)}
.spoc-action-btn.mail:hover{background:var(--blue-soft)}
.spoc-action-btn.wa{color:#25d366;border-color:rgba(37,211,102,.35)}
.spoc-action-btn.wa:hover{background:rgba(37,211,102,.1)}
.spoc-action-btn.del{color:var(--red);border-color:var(--red-mid)}
.spoc-action-btn.del:hover{background:var(--red-soft)}

/* ── QUILL RICH TEXT OVERRIDES ───────────────────────────────────── */
.ql-toolbar{background:var(--bg-elevated);border:1px solid var(--border)!important;border-bottom:none!important;border-radius:var(--radius-sm) var(--radius-sm) 0 0;flex-wrap:wrap}
.ql-container{background:var(--bg-elevated);border:1px solid var(--border)!important;border-radius:0 0 var(--radius-sm) var(--radius-sm);font-family:var(--font-body);font-size:14px;min-height:160px}
.ql-editor{min-height:160px;color:var(--text-primary)}
.ql-editor.ql-blank::before{color:var(--text-muted);font-style:normal}
.ql-toolbar .ql-stroke{stroke:var(--text-secondary)}
.ql-toolbar .ql-fill{fill:var(--text-secondary)}
.ql-toolbar .ql-picker{color:var(--text-secondary)}
.ql-toolbar button:hover .ql-stroke,.ql-toolbar button.ql-active .ql-stroke{stroke:var(--accent)}
.ql-toolbar button:hover .ql-fill,.ql-toolbar button.ql-active .ql-fill{fill:var(--accent)}
.signature-box{border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:12px;overflow:hidden}
.signature-label{font-size:11px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted);padding:8px 14px;background:var(--bg-elevated);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.signature-label span{cursor:pointer;color:var(--accent);font-size:11px;font-weight:500;text-transform:none;letter-spacing:0}
.sig-editor .ql-toolbar{border-radius:0!important}
.sig-editor .ql-container{min-height:70px;border-radius:0!important}
.sig-editor .ql-editor{min-height:70px}

/* Connect All panel */
/*.bulk-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:center}*/
/*.bulk-filter-btn{padding:5px 14px;border-radius:20px;border:1px solid var(--border);background:none;color:var(--text-secondary);font-size:13px;cursor:pointer;font-family:var(--font-body)}*/
.bulk-filter-btn.active{background:var(--accent-soft);border-color:var(--accent-mid);color:var(--accent)}
.spoc-checkbox-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;margin-bottom:6px}
.spoc-checkbox-item:hover{border-color:var(--accent-mid);background:var(--accent-soft)}
.spoc-checkbox-item.selected{border-color:var(--accent-mid);background:var(--accent-soft)}
.spoc-checkbox-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}
.bulk-count{font-size:13px;color:var(--text-secondary);padding:6px 0}


/* AI tone dropdown */
.ai-tone-wrap{position:relative;display:inline-block}
.ai-tone-menu{position:absolute;top:calc(100% + 6px);left:0;background:var(--bg-card);border:1px solid var(--border-active);border-radius:12px;padding:6px;z-index:300;min-width:220px;box-shadow:0 8px 32px rgba(0,0,0,.35);display:none}
.ai-tone-menu.open{display:block}
.ai-tone-option{padding:9px 12px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text-primary);display:flex;align-items:center;justify-content:space-between;gap:10px}
.ai-tone-option:hover{background:var(--bg-hover)}
.ai-tone-option .use-btn{opacity:0;font-size:11px;font-weight:600;padding:3px 10px;border-radius:6px;background:var(--accent);color:white;border:none;cursor:pointer;transition:opacity .15s}
.ai-tone-option:hover .use-btn{opacity:1}
.ai-tone-option .tone-label{display:flex;align-items:center;gap:7px}

/* Bulk preview */
.bulk-preview-box{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:16px 20px;font-family:var(--font-body);font-size:13px;line-height:1.7;color:var(--text-primary);min-height:80px;max-height:220px;overflow-y:auto;margin-top:10px}
.bulk-preview-box hr{border:none;border-top:1px solid var(--border);margin:12px 0}
[data-theme="light"] .bulk-preview-box{background:#f7f7f5}
.bulk-preview-box hr{border:none;border-top:1px solid #e8e8e8;margin:12px 0}


/* ── ADD CLIENT REDESIGN ─────────────────────────────────────────── */
.ac-full-page{max-width:860px;margin:0 auto}
.ac-company-hero{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px 32px;margin-bottom:20px}
.ac-company-hero h2{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:16px}
.ac-company-name-wrap{position:relative}
.ac-company-name-wrap input{width:100%;font-family:var(--font-display);font-size:28px;font-weight:700;background:transparent;border:none;border-bottom:2px solid var(--border);padding:8px 0;color:var(--text-primary);outline:none;letter-spacing:-.5px}
.ac-company-name-wrap input:focus{border-bottom-color:var(--accent)}
.ac-company-name-wrap input::placeholder{color:var(--text-muted)}

/* Collapsible section */
.collapse-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}
.collapse-header{display:flex;align-items:center;gap:14px;padding:18px 24px;cursor:pointer;user-select:none}
.collapse-header:hover{background:var(--bg-elevated)}
.collapse-icon-wrap{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}
.collapse-icon-perm{background:var(--accent-soft);color:var(--accent)}
.collapse-icon-contract{background:var(--blue-soft);color:var(--blue)}
.collapse-title{flex:1}
.collapse-title h3{font-family:var(--font-display);font-size:15px;font-weight:600;margin-bottom:2px}
.collapse-title p{font-size:12px;color:var(--text-secondary)}
.collapse-arrow{font-size:12px;color:var(--text-muted);transition:transform .25s ease}
.collapse-arrow.open{transform:rotate(180deg)}
.collapse-body{display:none;padding:0 24px 24px;border-top:1px solid var(--border)}
.collapse-body.open{display:block}

/* Sub-sections inside collapse */
.sub-section{margin-top:20px}
.sub-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.sub-title::after{content:'';flex:1;height:1px;background:var(--border)}

/* Dynamic rows */
.dynamic-row{display:grid;gap:10px;align-items:end;margin-bottom:8px}
.dynamic-row.band-row{grid-template-columns:1fr 1fr 36px}
.dynamic-row.band-row .fg:last-of-type .band-rate{min-width:0;width:100%}
.dynamic-row.band-row select.band-rate-type{width:80px;min-width:80px}
.dynamic-row.location-row{grid-template-columns:1fr 1fr 1fr 36px}
.dynamic-row.division-row{grid-template-columns:1fr 36px}
.dynamic-row.contact-row{grid-template-columns:1fr 1fr}
.add-row-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px dashed var(--border-active);border-radius:var(--radius-sm);background:none;color:var(--text-secondary);font-size:13px;cursor:pointer;font-family:var(--font-body);margin-top:4px}
.add-row-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.del-btn{width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--red-mid);background:var(--red-soft);color:var(--red);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.del-btn:hover{background:var(--red);color:white}

/* Toggle pills for Yes/No */
.yn-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;width:fit-content}
.yn-btn{padding:7px 20px;border:none;background:none;color:var(--text-secondary);font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer}
.yn-btn.yn-yes.active{background:var(--green);color:white}
.yn-btn.yn-no.active{background:var(--bg-elevated);color:var(--text-primary)}

/* Date range */
.date-range{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}
.date-range-sep{color:var(--text-muted);font-size:13px;padding-top:18px;text-align:center}

/* Contact person optional block */
.contact-optional{background:var(--bg-elevated);border-radius:var(--radius-sm);padding:14px;margin-top:12px}
.contact-optional-toggle{font-size:13px;color:var(--accent);cursor:pointer;display:flex;align-items:center;gap:6px;font-weight:500}

/* Bottom action bar */
.ac-action-bar{position:sticky;bottom:0;background:var(--bg-card);border-top:1px solid var(--border);padding:16px 32px;display:flex;gap:12px;align-items:center;z-index:10;border-radius:0 0 var(--radius) var(--radius)}


/* ══════════════════════════════════════════
   ALL SPOCs PAGE — old accordion styles
   (scoped to #panel-all-spocs so they don't
    leak into Dashboard or All Clients)
══════════════════════════════════════════ */

/* Toolbar */
#panel-all-spocs .as-toolbar{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:0 0 18px;border-bottom:1px solid var(--border);margin-bottom:24px;
}
#panel-all-spocs .as-search-wrap{
  position:relative;flex:1;min-width:180px;max-width:280px;
}
#panel-all-spocs .as-search-icon{
  position:absolute;left:11px;top:50%;transform:translateY(-50%);
  color:var(--text-muted);pointer-events:none;
}
#panel-all-spocs .as-search{
  width:100%;background:var(--bg-elevated);border:1px solid var(--border);
  border-radius:8px;padding:8px 12px 8px 34px;color:var(--text-primary);
  font-family:var(--font-body);font-size:13px;outline:none;
}
#panel-all-spocs .as-search:focus{border-color:var(--accent-mid);}
#panel-all-spocs .as-chips{display:flex;gap:6px;flex-wrap:wrap;}
#panel-all-spocs .as-chip{
  padding:6px 14px;border-radius:20px;border:1px solid var(--border);
  background:transparent;color:var(--text-secondary);font-size:12px;font-weight:600;
  font-family:var(--font-body);cursor:pointer;transition:all .15s ease;
  letter-spacing:.2px;
}
#panel-all-spocs .as-chip:hover{background:var(--bg-elevated);color:var(--text-primary);}
#panel-all-spocs .as-chip.active{
  background:var(--accent-soft);border-color:var(--accent-mid);color:var(--accent);
}
#panel-all-spocs .as-meta{
  margin-left:auto;font-size:12px;color:var(--text-muted);
  font-weight:500;white-space:nowrap;
}

/* Body */
#panel-all-spocs .as-body{display:flex;flex-direction:column;gap:20px;}

/* Client block */
#panel-all-spocs .as-client-block{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:14px;overflow:hidden;
}
#panel-all-spocs .as-client-header{
  display:flex;align-items:center;gap:14px;
  padding:16px 20px;cursor:pointer;user-select:none;
  transition:background .15s ease;
}
#panel-all-spocs .as-client-header:hover{background:var(--bg-elevated);}
#panel-all-spocs .as-client-avatar{
  width:40px;height:40px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:800;font-size:14px;
  color:white;flex-shrink:0;letter-spacing:-.5px;
}
#panel-all-spocs .as-client-info{flex:1;min-width:0;}
#panel-all-spocs .as-client-name{
  font-size:14px;font-weight:700;font-family:var(--font-display);
  color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
#panel-all-spocs .as-client-sub{
  font-size:11px;color:var(--text-muted);margin-top:2px;
  display:flex;align-items:center;gap:6px;
}
#panel-all-spocs .as-client-badges{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0;}
#panel-all-spocs .as-client-badge{
  font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:2px 8px;border-radius:6px;
}
#panel-all-spocs .as-badge-contract{background:rgba(90,159,212,.14);color:var(--blue);}
#panel-all-spocs .as-badge-permanent{background:var(--accent-soft);color:var(--accent);}
#panel-all-spocs .as-spoc-count{
  font-size:11px;font-weight:600;color:var(--text-muted);
  background:var(--bg-elevated);border:1px solid var(--border);
  border-radius:12px;padding:2px 10px;flex-shrink:0;
}
#panel-all-spocs .as-chevron{
  color:var(--text-muted);font-size:12px;transition:transform .2s ease;flex-shrink:0;
}
#panel-all-spocs .as-client-block.collapsed .as-chevron{transform:rotate(-90deg);}

/* SPOC grid */
#panel-all-spocs .as-spoc-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:1px;background:var(--border);
  border-top:1px solid var(--border);
}
#panel-all-spocs .as-client-block.collapsed .as-spoc-grid{display:none;}

/* SPOC card */
#panel-all-spocs .as-spoc-card{
  background:var(--bg-card);padding:14px 16px;
  display:flex;align-items:center;gap:12px;
  cursor:pointer;transition:background .12s ease;position:relative;
}
#panel-all-spocs .as-spoc-card:hover{background:var(--bg-elevated);}
#panel-all-spocs .as-spoc-card:hover .as-spoc-actions{opacity:1;}
#panel-all-spocs .as-spoc-avatar{
  width:36px;height:36px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:700;font-size:12px;color:white;
}
#panel-all-spocs .as-spoc-info{flex:1;min-width:0;}
#panel-all-spocs .as-spoc-name{
  font-size:13px;font-weight:600;color:var(--text-primary);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
#panel-all-spocs .as-spoc-desg{
  font-size:11px;color:var(--text-muted);margin-top:1px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
#panel-all-spocs .as-spoc-wa{
  font-size:10px;color:#25d366;margin-top:2px;display:flex;align-items:center;gap:3px;
}
#panel-all-spocs .as-spoc-actions{
  display:flex;gap:4px;opacity:0;transition:opacity .15s ease;flex-shrink:0;
}
#panel-all-spocs .as-spoc-action-btn{
  width:28px;height:28px;border-radius:7px;border:1px solid var(--border);
  background:var(--bg-elevated);cursor:pointer;font-size:13px;
  display:flex;align-items:center;justify-content:center;
  color:var(--text-secondary);transition:all .12s ease;
}
#panel-all-spocs .as-spoc-action-btn:hover{border-color:var(--accent-mid);color:var(--accent);}
#panel-all-spocs .as-spoc-action-btn.wa:hover{border-color:rgba(37,211,102,.4);color:#25d366;}

/* Empty state inside block */
#panel-all-spocs .as-no-spocs{
  padding:24px;text-align:center;font-size:12px;
  color:var(--text-muted);background:var(--bg-card);
}

/* Global empty */
#panel-all-spocs .as-empty{
  text-align:center;padding:80px 20px;
}
#panel-all-spocs .as-empty-icon{font-size:48px;margin-bottom:16px;opacity:.35;}
#panel-all-spocs .as-empty-text{font-size:16px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;}
#panel-all-spocs .as-empty-sub{font-size:13px;color:var(--text-muted);}


/* ══════════════════════════════════════════
   ALL SPOCs — SPLIT PANE (new design)
══════════════════════════════════════════ */

.as-splitpane-panel {
  display: flex;
  flex-direction: row;
  height: 100%;
  overflow: hidden;
  padding: 0 !important;
}

/* LEFT PANE */
.as-sp-left {
  width: 340px;
  min-width: 280px;
  flex-shrink: 0;
  border-right: 1px solid rgba(255,255,255,0.07);
  background: #141414;
  display: flex;
  flex-direction: column;
  height: 100%;
  box-shadow: 4px 0 24px rgba(0,0,0,0.2);
  z-index: 2;
}

.as-sp-left-header {
  padding: 24px 16px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  flex-shrink: 0;
}

.as-sp-title {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px 0;
}
.as-sp-title-dot {
  width: 8px; height: 8px;
  border-radius: 2px;
  background: var(--accent);
  opacity: 0.9;
  display: inline-block;
  flex-shrink: 0;
}

.as-sp-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  background: var(--bg-main, #191919);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 8px;
  padding: 8px 12px;
  margin-bottom: 12px;
  transition: border-color 0.2s;
}
.as-sp-search-wrap:focus-within {
  border-color: rgba(124,113,255,0.5);
  box-shadow: 0 0 0 2px rgba(124,113,255,0.15);
}
.as-sp-search-icon {
  width: 14px; height: 14px;
  color: var(--text-muted);
  flex-shrink: 0;
  margin-right: 8px;
}
.as-sp-search {
  background: transparent;
  border: none;
  outline: none;
  font-size: 13px;
  color: var(--text-primary);
  width: 100%;
  font-family: var(--font-body);
}
.as-sp-search::placeholder { color: var(--text-muted); }

.as-sp-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.as-sp-chip {
  padding: 5px 12px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  transition: all 0.15s;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text-secondary);
}
.as-sp-chip:hover {
  background: rgba(255,255,255,0.05);
  color: var(--text-primary);
}
.as-sp-chip.active {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.07);
  color: var(--text-primary);
}

/* Client list */
.as-sp-client-list {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.08) transparent;
}
.as-sp-client-list::-webkit-scrollbar { width: 4px; }
.as-sp-client-list::-webkit-scrollbar-track { background: transparent; }
.as-sp-client-list::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.08);
  border-radius: 10px;
}
.as-sp-client-list::-webkit-scrollbar-thumb:hover {
  background: rgba(255,255,255,0.15);
}

.as-sp-client-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  border-left: 2px solid transparent;
  transition: all 0.15s;
  margin-bottom: 2px;
}
.as-sp-client-item:hover {
  background: rgba(255,255,255,0.04);
}
.as-sp-client-item.active {
  background: rgba(255,255,255,0.06);
  border-left-color: var(--accent);
}
.as-sp-client-avatar {
  width: 32px; height: 32px;
  border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  color: white;
  flex-shrink: 0;
}
.as-sp-client-info { flex: 1; min-width: 0; }
.as-sp-client-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
  transition: color 0.15s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.as-sp-client-item.active .as-sp-client-name,
.as-sp-client-item:hover .as-sp-client-name {
  color: var(--text-primary);
}
.as-sp-client-email {
  font-size: 11px;
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.as-sp-client-count {
  font-size: 11px;
  font-weight: 500;
  color: var(--text-muted);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 20px;
  padding: 2px 8px;
  flex-shrink: 0;
  transition: all 0.15s;
}
.as-sp-client-item.active .as-sp-client-count {
  background: rgba(255,255,255,0.07);
  border-color: rgba(255,255,255,0.07);
  color: var(--text-secondary);
}

/* RIGHT PANE */
.as-sp-right {
  flex: 1;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--bg-main, #191919);
  position: relative;
}

.as-sp-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.as-sp-placeholder-icon { font-size: 40px; opacity: 0.25; }
.as-sp-placeholder-text {
  font-size: 13px;
  color: var(--text-muted);
}

/* Detail header */
.as-sp-detail-header {
  padding: 36px 44px 28px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
.as-sp-detail-glow {
  position: absolute;
  top: -150px; right: -100px;
  width: 400px; height: 400px;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  opacity: 0.35;
}
.as-sp-detail-top {
  position: relative; z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.as-sp-detail-left {
  display: flex;
  align-items: flex-end;
  gap: 20px;
}
.as-sp-detail-bigavatar {
  width: 72px; height: 72px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.2);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
  color: white;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  box-shadow:
    0 8px 32px rgba(0,0,0,0.4),
    0 2px 8px rgba(0,0,0,0.3),
    inset 0 1px 0 rgba(255,255,255,0.3);
  transform: perspective(200px) rotateX(2deg);
}
.as-sp-detail-bigavatar-glow {
  position: absolute; inset: 0;
  background: linear-gradient(
    135deg,
    rgba(0,0,0,0.0) 0%,
    rgba(0,0,0,0.45) 100%
  );
  z-index: 0;
}
.as-sp-detail-bigavatar span {
  position: relative;
  z-index: 1;
  color: white;
  font-family: var(--font-display);
  font-weight: 700;
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.as-sp-detail-company {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.5px;
  margin: 0 0 6px 0;
  text-shadow: 0 1px 8px rgba(0,0,0,0.4);
}
.as-sp-detail-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--text-primary);
  opacity: 0.85;
  flex-wrap: wrap;
}
.as-sp-detail-meta svg {
  width: 13px; height: 13px;
  color: rgba(255,255,255,0.6);
  flex-shrink: 0;
}
.as-sp-detail-meta svg {
  width: 13px; height: 13px;
  color: var(--text-muted);
  flex-shrink: 0;
}
.as-sp-detail-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.as-sp-btn-primary {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: var(--accent);
  color: white;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font-body);
  transition: opacity 0.15s;
}
.as-sp-btn-primary:hover { opacity: 0.85; }
.as-sp-btn-secondary {
  padding: 8px 16px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.07);
  color: var(--text-primary);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  font-family: var(--font-body);
  transition: background 0.15s;
}
.as-sp-btn-secondary:hover { background: rgba(255,255,255,0.09); }

.as-sp-detail-badges {
  position: relative; z-index: 1;
  display: flex;
  gap: 8px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.as-sp-badge {
  padding: 3px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 500;
}
.as-sp-badge-contract {
  background: rgba(90,159,212,0.08);
  border: 1px solid rgba(90,159,212,0.2);
  color: #5A9FD4;
}
.as-sp-badge-permanent {
  background: rgba(124,113,255,0.08);
  border: 1px solid rgba(124,113,255,0.2);
  color: var(--accent);
}

/* SPOC grid inside detail */
.as-sp-detail-body {
  padding: 28px 44px;
  flex: 1;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.08) transparent;
}
.as-sp-detail-body::-webkit-scrollbar { width: 4px; }
.as-sp-detail-body::-webkit-scrollbar-track { background: transparent; }
.as-sp-detail-body::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.08);
  border-radius: 10px;
}

.as-sp-section-title {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 18px 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.as-sp-section-title span {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 400;
  color: var(--text-muted);
}

.as-sp-spoc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 14px;
}

/* New-style SPOC card */
.as-sp-spoc-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  cursor: pointer;
  transition: all 0.2s;
}
.as-sp-spoc-card:hover {
  background: rgba(255,255,255,0.055);
  border-color: rgba(255,255,255,0.13);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.2);
}
.as-sp-spoc-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.as-sp-spoc-card-left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.as-sp-spoc-card-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  color: white;
  flex-shrink: 0;
}
.as-sp-spoc-card-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}
.as-sp-spoc-card-desg {
  font-size: 11px;
  color: var(--text-secondary);
  margin-top: 2px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.as-sp-spoc-card-desg svg { width: 10px; height: 10px; color: var(--text-muted); }
.as-sp-spoc-more-btn {
  background: none; border: none;
  color: var(--text-muted);
  cursor: pointer; padding: 2px;
  font-size: 16px;
  line-height: 1;
  transition: color 0.15s;
  flex-shrink: 0;
}
.as-sp-spoc-more-btn:hover { color: var(--text-primary); }

.as-sp-spoc-card-footer {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding-top: 10px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}
.as-sp-spoc-action {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 7px 6px;
  border-radius: 7px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  transition: all 0.15s;
}
.as-sp-spoc-action svg { width: 13px; height: 13px; flex-shrink: 0; }
.as-sp-spoc-action:hover {
  background: rgba(77,147,117,0.1);
  border-color: rgba(77,147,117,0.3);
  color: #4D9375;
}
.as-sp-spoc-action.mail:hover {
  background: rgba(124,113,255,0.1);
  border-color: rgba(124,113,255,0.3);
  color: var(--accent);
}
.as-sp-spoc-action:disabled {
  cursor: default;
  opacity: 0.3;
}
.as-sp-spoc-action:disabled:hover {
  background: rgba(255,255,255,0.03);
  border-color: rgba(255,255,255,0.07);
  color: var(--text-secondary);
}

/* Empty SPOC state inside detail */
.as-sp-spoc-empty {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 48px 24px;
  gap: 10px;
  text-align: center;
}
.as-sp-spoc-empty-icon {
  width: 56px; height: 56px;
  border-radius: 14px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
  margin-bottom: 6px;
}
.as-sp-spoc-empty-title {
  font-family: var(--font-display);
  font-size: 15px; font-weight: 700;
  color: var(--text-primary);
}
.as-sp-spoc-empty-sub {
  font-size: 12px; color: var(--text-secondary);
  max-width: 280px; line-height: 1.5;
}

/* Detail fade-in */
@keyframes asDetailFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.as-sp-detail-anim {
  animation: asDetailFadeIn 0.22s ease-out forwards;
}

/* Loading state */
.as-sp-list-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 16px;
  gap: 10px;
  color: var(--text-muted);
  font-size: 13px;
}

@media (max-width: 768px) {
  .as-splitpane-panel { flex-direction: column; }
  .as-sp-left {
    width: 100%; min-width: unset;
    height: 45%;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.07);
  }
  .as-sp-right { height: 55%; }
  .as-sp-detail-header { padding: 20px 20px 16px; }
  .as-sp-detail-body { padding: 20px; }
}

/* ── ADD SPOC PAGE ───────────────────────────────────────────────── */
.add-spoc-page {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 40px 24px;
  min-height: 100%;
}
.add-spoc-card {
  width: 100%;
  max-width: 600px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.add-spoc-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
}
.add-spoc-icon {
  width: 42px; height: 42px;
  border-radius: 12px;
  background: var(--accent-soft);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.add-spoc-title {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  color: var(--text-primary);
}
.add-spoc-sub {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 2px;
}
.add-spoc-client-wrap {
  position: relative;
}
.add-spoc-search-icon {
  position: absolute;
  left: 10px; top: 50%;
  transform: translateY(-50%);
  width: 14px; height: 14px;
  color: var(--text-muted);
  pointer-events: none;
  z-index: 1;
}
.add-spoc-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: var(--bg-card);
  border: 1px solid var(--border-active);
  border-radius: var(--radius-sm);
  z-index: 100;
  max-height: 200px;
  overflow-y: auto;
  display: none;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.1) transparent;
}
.add-spoc-dropdown::-webkit-scrollbar { width: 4px; }
.add-spoc-dropdown::-webkit-scrollbar-track { background: transparent; }
.add-spoc-dropdown::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 10px; }
.add-spoc-dropdown.open { display: block; }
.add-spoc-dropdown-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  cursor: pointer;
  font-size: 13px;
  color: var(--text-primary);
  transition: background 0.12s;
}
.add-spoc-dropdown-item:hover { background: var(--bg-hover); }
.add-spoc-dropdown-item .item-avatar {
  width: 28px; height: 28px;
  border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 700;
  color: white; flex-shrink: 0;
}
.add-spoc-dropdown-empty {
  padding: 16px;
  font-size: 13px;
  color: var(--text-muted);
  text-align: center;
}
.add-spoc-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}

/* ── SPOC CARD 3-DOT MENU ───────────────────────────────────────── */
.as-sp-card-menu-wrap {
  position: relative;
  flex-shrink: 0;
}
.as-sp-card-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  background: var(--bg-card);
  border: 1px solid var(--border-active);
  border-radius: 10px;
  padding: 5px;
  z-index: 200;
  min-width: 130px;
  box-shadow: 0 8px 28px rgba(0,0,0,0.35);
  display: none;
}
.as-sp-card-menu.open { display: block; }
.as-sp-card-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 12px;
  border: none;
  background: none;
  border-radius: 7px;
  font-size: 13px;
  font-family: var(--font-body);
  cursor: pointer;
  transition: background 0.12s;
  color: var(--text-primary);
  text-align: left;
}
.as-sp-card-menu-item:hover { background: var(--bg-hover); }
.as-sp-card-menu-item.edit svg { color: var(--accent); }
.as-sp-card-menu-item.delete { color: #ef4444; }
.as-sp-card-menu-item.delete svg { color: #ef4444; }
.as-sp-card-menu-item.delete:hover { background: rgba(239,68,68,0.08); }

/* ── SPOC DELETE CONFIRM OVERLAY ────────────────────────────────── */
.as-sp-delete-confirm {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.as-sp-dc-inner {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px 28px;
  max-width: 360px;
  width: 90%;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}
.as-sp-dc-icon { font-size: 36px; margin-bottom: 12px; }
.as-sp-dc-title {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 8px;
}
.as-sp-dc-sub {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.5;
  margin-bottom: 24px;
}
.as-sp-dc-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
}
.as-sp-dc-cancel {
  padding: 9px 22px;
  border-radius: 9px;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
  color: var(--text-primary);
  font-size: 13px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  transition: background 0.15s;
}
.as-sp-dc-cancel:hover { background: var(--bg-hover); }
.as-sp-dc-confirm {
  padding: 9px 22px;
  border-radius: 9px;
  border: none;
  background: #ef4444;
  color: white;
  font-size: 13px;
  font-weight: 600;
  font-family: var(--font-body);
  cursor: pointer;
  transition: opacity 0.15s;
}
.as-sp-dc-confirm:hover { opacity: 0.85; }

.as-sp-save-confirm {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  z-index: 1001;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ── LIGHT THEME — ALL SPOCs SPLIT PANE ─────────────────────────── */
[data-theme="light"] .as-sp-left {
  background: #f1f1ef;
  border-right: 1px solid rgba(0,0,0,0.08);
}
[data-theme="light"] .as-sp-left-header {
  border-bottom: 1px solid rgba(0,0,0,0.08);
}
[data-theme="light"] .as-sp-title { color: var(--text-primary); }
[data-theme="light"] .as-sp-search-wrap {
  background: #ffffff;
  border-color: rgba(0,0,0,0.1);
}
[data-theme="light"] .as-sp-search-wrap:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(90,84,232,0.12);
}
[data-theme="light"] .as-sp-search { color: var(--text-primary); }
[data-theme="light"] .as-sp-chip {
  color: var(--text-secondary);
}
[data-theme="light"] .as-sp-chip:hover {
  background: rgba(0,0,0,0.05);
  color: var(--text-primary);
}
[data-theme="light"] .as-sp-chip.active {
  background: rgba(90,84,232,0.1);
  border-color: rgba(90,84,232,0.2);
  color: var(--accent);
}
[data-theme="light"] .as-sp-client-item:hover {
  background: rgba(0,0,0,0.04);
}
[data-theme="light"] .as-sp-client-item.active {
  background: rgba(90,84,232,0.07);
  border-left-color: var(--accent);
}
[data-theme="light"] .as-sp-client-name { color: var(--text-secondary); }
[data-theme="light"] .as-sp-client-item.active .as-sp-client-name,
[data-theme="light"] .as-sp-client-item:hover .as-sp-client-name {
  color: var(--text-primary);
}
[data-theme="light"] .as-sp-client-count { color: var(--text-muted); }
[data-theme="light"] .as-sp-client-item.active .as-sp-client-count {
  background: rgba(0,0,0,0.06);
  border-color: rgba(0,0,0,0.08);
  color: var(--text-secondary);
}
[data-theme="light"] .as-sp-right {
  background: var(--bg);
}
[data-theme="light"] .as-sp-detail-header {
  border-bottom: 1px solid rgba(0,0,0,0.08);
}
[data-theme="light"] .as-sp-detail-glow {
  opacity: 0.25;
}
[data-theme="light"] .as-sp-detail-bigavatar {
  border-color: rgba(255,255,255,0.6);
  box-shadow:
    0 8px 24px rgba(0,0,0,0.15),
    0 2px 6px rgba(0,0,0,0.1),
    inset 0 1px 0 rgba(255,255,255,0.7);
}
[data-theme="light"] .as-sp-detail-bigavatar-glow {
  background: linear-gradient(
    135deg,
    rgba(255,255,255,0.6) 0%,
    rgba(255,255,255,0.0) 100%
  );
}
[data-theme="light"] .as-sp-detail-company { color: var(--text-primary); }
[data-theme="light"] .as-sp-detail-meta { color: var(--text-secondary); opacity: 1; }
[data-theme="light"] .as-sp-detail-meta svg { color: var(--text-muted); }
[data-theme="light"] .as-sp-badge-contract {
  background: rgba(43,127,192,0.08);
  border-color: rgba(43,127,192,0.2);
  color: var(--blue);
}
[data-theme="light"] .as-sp-badge-permanent {
  background: rgba(90,84,232,0.08);
  border-color: rgba(90,84,232,0.2);
  color: var(--accent);
}
[data-theme="light"] .as-sp-section-title { color: var(--text-primary); }
[data-theme="light"] .as-sp-spoc-card {
  background: #ffffff;
  border-color: rgba(0,0,0,0.08);
}
[data-theme="light"] .as-sp-spoc-card:hover {
  background: #f7f7f5;
  border-color: rgba(0,0,0,0.14);
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}
[data-theme="light"] .as-sp-spoc-card-name { color: var(--text-primary); }
[data-theme="light"] .as-sp-spoc-card-desg { color: var(--text-secondary); }
[data-theme="light"] .as-sp-spoc-card-footer {
  border-top-color: rgba(0,0,0,0.07);
}
[data-theme="light"] .as-sp-spoc-action {
  background: #f1f1ef;
  border-color: rgba(0,0,0,0.08);
  color: var(--text-secondary);
}
[data-theme="light"] .as-sp-spoc-action:hover {
  background: rgba(68,131,97,0.08);
  border-color: rgba(68,131,97,0.25);
  color: var(--green);
}
[data-theme="light"] .as-sp-spoc-action.mail:hover {
  background: rgba(90,84,232,0.08);
  border-color: rgba(90,84,232,0.25);
  color: var(--accent);
}
[data-theme="light"] .as-sp-placeholder-text { color: var(--text-muted); }
[data-theme="light"] .as-sp-card-menu {
  background: #ffffff;
  border-color: rgba(0,0,0,0.12);
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}
[data-theme="light"] .as-sp-card-menu-item { color: var(--text-primary); }
[data-theme="light"] .as-sp-card-menu-item:hover { background: var(--bg-hover); }
[data-theme="light"] .as-sp-dc-inner {
  background: #ffffff;
  border-color: rgba(0,0,0,0.1);
}
[data-theme="light"] .as-sp-dc-title { color: var(--text-primary); }
[data-theme="light"] .as-sp-dc-sub { color: var(--text-secondary); }
[data-theme="light"] .as-sp-dc-cancel {
  background: var(--bg-elevated);
  border-color: rgba(0,0,0,0.1);
  color: var(--text-primary);
}
/* ══════════════════════════════════════════
   OUTREACH (CONNECT ALL) REDESIGN
══════════════════════════════════════════ */

#panel-connect-all {
  padding: 0 !important;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

.oa-layout {
  display: grid;
  grid-template-columns: 320px 1fr;
  height: 100%;
  overflow: hidden;
}

/* ── LEFT PANE ── */
.oa-left {
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--border);
  background: var(--bg-card);
  overflow: hidden;
}

.oa-left-top {
  padding: 20px 16px 12px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.oa-left-title {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  color: var(--text-primary);
}

.oa-filter-row {
  display: flex;
  gap: 5px;
}

.oa-filter-btn {
  padding: 5px 12px;
  border-radius: 6px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  transition: all 0.15s;
}
.oa-filter-btn:hover {
  background: var(--bg-elevated);
  color: var(--text-primary);
}
.oa-filter-btn.active {
  background: var(--accent-soft);
  border-color: var(--accent-mid);
  color: var(--accent);
}

.oa-search-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 12px;
  transition: border-color 0.2s;
}
.oa-search-wrap:focus-within {
  border-color: var(--accent-mid);
}
.oa-search-wrap svg {
  width: 13px; height: 13px;
  color: var(--text-muted);
  flex-shrink: 0;
}
.oa-search {
  background: transparent;
  border: none;
  outline: none;
  font-size: 13px;
  color: var(--text-primary);
  font-family: var(--font-body);
  width: 100%;
}
.oa-search::placeholder { color: var(--text-muted); }

.oa-select-all-row {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
  padding: 4px 2px;
}
.oa-select-all-row:hover { color: var(--text-primary); }
.oa-select-all-row input[type=checkbox] {
  width: 14px; height: 14px;
  accent-color: var(--accent);
  cursor: pointer;
  flex-shrink: 0;
}

.oa-count-badge {
  margin-left: auto;
  font-size: 11px;
  font-weight: 600;
  color: var(--accent);
  background: var(--accent-soft);
  border: 1px solid var(--accent-mid);
  border-radius: 20px;
  padding: 2px 9px;
}

.oa-spoc-list {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.08) transparent;
}
.oa-spoc-list::-webkit-scrollbar { width: 4px; }
.oa-spoc-list::-webkit-scrollbar-track { background: transparent; }
.oa-spoc-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 10px; }

/* ── RIGHT PANE ── */
.oa-right {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--bg);
}

/* Tabs */
.oa-tabs {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 14px 20px 0;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  position: relative;
}
.oa-tab {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 9px 18px;
  border: none;
  background: transparent;
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  border-radius: 8px 8px 0 0;
  transition: all 0.15s;
  position: relative;
  bottom: -1px;
}
.oa-tab:hover { color: var(--text-primary); }
.oa-tab.active {
  color: var(--text-primary);
  background: var(--bg);
  border: 1px solid var(--border);
  border-bottom-color: var(--bg);
  font-weight: 600;
}

/* Compose area */
.oa-compose-area {
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow: hidden;
}

.oa-compose-scroll {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.08) transparent;
  min-height: 0;
}
.oa-compose-scroll::-webkit-scrollbar { width: 4px; }
.oa-compose-scroll::-webkit-scrollbar-track { background: transparent; }
.oa-compose-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 10px; }

/* From strip */
.oa-from-strip {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 13px;
}
.oa-from-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-muted);
  flex-shrink: 0;
}
.oa-from-value {
  color: var(--text-primary);
  font-weight: 500;
}

/* Field groups */
.oa-field-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.oa-field-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--text-secondary);
}
.oa-field-input {
  width: 100%;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 14px;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 14px;
  outline: none;
  transition: border-color 0.15s;
}
.oa-field-input:focus { border-color: var(--accent-mid); }
.oa-field-input::placeholder { color: var(--text-muted); }

/* Toolbar row */
.oa-toolbar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.oa-ph-group {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}
.oa-ph-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-muted);
  margin-right: 2px;
}
.oa-ph-btn {
  padding: 4px 10px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg-elevated);
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  transition: all 0.12s;
}
.oa-ph-btn:hover {
  border-color: var(--accent-mid);
  background: var(--accent-soft);
  color: var(--accent);
}

/* AI button */
.oa-ai-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  transition: all 0.15s;
  flex-shrink: 0;
}
.oa-ai-btn:hover {
  border-color: var(--accent-mid);
  background: var(--accent-soft);
  color: var(--accent);
}

.oa-tone-header {
  font-size: 10px;
  font-weight: 600;
  color: var(--text-muted);
  letter-spacing: .8px;
  text-transform: uppercase;
  padding: 4px 10px 6px;
}

/* Signature */
.oa-sig-block {
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
}
.oa-sig-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 14px;
  background: var(--bg-elevated);
  border-bottom: 1px solid var(--border);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--text-muted);
}
.oa-sig-reset {
  background: none;
  border: none;
  color: var(--accent);
  font-size: 11px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  text-transform: none;
  letter-spacing: 0;
}
/* Preview */
.oa-preview-block { display: flex; flex-direction: column; gap: 6px; }
.oa-preview-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--text-muted);
}
.oa-preview-note { font-size: 10px; text-transform: none; letter-spacing: 0; font-weight: 400; }

/* WA specific */
.oa-wa-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  background: rgba(37,211,102,0.06);
  border: 1px solid rgba(37,211,102,0.15);
  border-radius: 8px;
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.5;
}
.oa-wa-note svg { flex-shrink: 0; margin-top: 1px; }

.oa-wa-textarea {
  width: 100%;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 14px;
  outline: none;
  resize: vertical;
  min-height: 160px;
  transition: border-color 0.15s;
}
.oa-wa-textarea:focus { border-color: var(--accent-mid); }
.oa-wa-textarea::placeholder { color: var(--text-muted); }

.oa-wa-preview-wrap { display: flex; flex-direction: column; gap: 6px; }
.oa-wa-preview-bubble {
  background: rgba(37,211,102,0.06);
  border: 1px solid rgba(37,211,102,0.15);
  border-radius: 12px 12px 12px 3px;
  padding: 14px 16px;
  font-size: 13px;
  color: var(--text-primary);
  line-height: 1.6;
  min-height: 60px;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Footer */
.oa-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 24px;
  border-top: 1px solid var(--border);
  background: var(--bg-card);
  flex-shrink: 0;
}

.oa-send-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  background: var(--accent);
  color: white;
  border: none;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 600;
  font-family: var(--font-body);
  cursor: pointer;
  transition: opacity 0.15s;
}
.oa-send-btn:hover:not(:disabled) { opacity: 0.85; }
.oa-send-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.oa-send-btn.oa-send-wa { background: #25d366; }

.oa-clear-btn {
  padding: 10px 18px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-secondary);
  border-radius: 9px;
  font-size: 13px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  transition: all 0.15s;
}
.oa-clear-btn:hover {
  background: var(--bg-elevated);
  color: var(--text-primary);
}

/* Light theme */
[data-theme="light"] .oa-left { background: #f7f7f5; }
[data-theme="light"] .oa-search-wrap { background: #ffffff; }
[data-theme="light"] .oa-right { background: #ffffff; }
[data-theme="light"] .oa-tab.active { background: #ffffff; border-bottom-color: #ffffff; }
[data-theme="light"] .oa-footer { background: #f7f7f5; }
[data-theme="light"] .oa-from-strip { background: #f1f1ef; }
[data-theme="light"] .oa-compose-scroll::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.12); }
[data-theme="light"] .oa-spoc-list::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.12); }
/* ── OUTREACH TREE LIST (SPOC selector) ─────────────────────────── */
.oa-spoc-list .tree-select-all {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}
.oa-spoc-list .tree-client-node {
  margin-bottom: 5px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.oa-spoc-list .tree-client-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  background: var(--bg-elevated);
  cursor: pointer;
  user-select: none;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}
.oa-spoc-list .tree-client-row:hover { background: var(--bg-hover); }
.oa-spoc-list .tree-client-row input[type=checkbox] {
  width: 14px; height: 14px;
  accent-color: var(--accent);
  cursor: pointer;
  flex-shrink: 0;
}
.oa-spoc-list .tree-client-name {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.oa-spoc-list .tree-chevron {
  font-size: 10px;
  color: var(--text-muted);
  transition: transform .2s ease;
  flex-shrink: 0;
}
.oa-spoc-list .tree-chevron.open { transform: rotate(90deg); }
.oa-spoc-list .tree-spoc-list { border-top: 1px solid var(--border); display: none; }
.oa-spoc-list .tree-spoc-list.open { display: block; }
.oa-spoc-list .tree-spoc-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px 9px 32px;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  transition: background .15s;
}
.oa-spoc-list .tree-spoc-item:last-child { border-bottom: none; }
.oa-spoc-list .tree-spoc-item:hover,
.oa-spoc-list .tree-spoc-item.selected { background: var(--accent-soft); }
.oa-spoc-list .tree-spoc-item input[type=checkbox] {
  width: 14px; height: 14px;
  accent-color: var(--accent);
  cursor: pointer;
  flex-shrink: 0;
}
.oa-spoc-list .tree-spoc-avatar {
  width: 28px; height: 28px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 10px;
  font-weight: 700;
  color: white;
  flex-shrink: 0;
}
.oa-spoc-list .tree-spoc-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-primary);
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.oa-spoc-list .tree-spoc-desg {
  font-size: 11px;
  color: var(--text-secondary);
  flex-shrink: 0;
  max-width: 100px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#oa-sig-block .ql-toolbar {
  border: none !important;
  border-bottom: 1px solid var(--border) !important;
  border-radius: 0 !important;
  background: var(--bg-card);
}
#oa-sig-block .ql-container {
  border: none !important;
  min-height: 90px !important;
  max-height: 200px;
  overflow-y: auto !important;
  background: var(--bg-elevated);
  border-radius: 0 0 8px 8px !important;
}
#oa-sig-block .ql-editor {
  min-height: 90px !important;
  color: var(--text-primary);
}
#oa-sig-block .ql-editor.ql-blank::before {
  color: var(--text-muted);
  font-style: normal;
}
/* Onboarding sub-nav indent */
#esf-nav-section .nav-item[style*="padding-left:22px"] {
  font-size: 12.5px;
  color: var(--text-muted);
  position: relative;
}

/* ══════════════════════════════════════════
   FINANCE / PAYMENT DASHBOARD
══════════════════════════════════════════ */
.fin-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 24px;
  flex-wrap: wrap;
  gap: 12px;
}
.fin-header-sub {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--text-muted);
  margin-bottom: 4px;
}
.fin-header-title {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.4px;
}
.fin-filter-select {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 7px 12px;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 13px;
  outline: none;
  cursor: pointer;
}
.fin-export-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  transition: all 0.15s;
}
.fin-export-btn:hover {
  border-color: var(--accent-mid);
  color: var(--accent);
  background: var(--accent-soft);
}

/* KPI Cards */
.fin-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
  margin-bottom: 28px;
}
.fin-kpi-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: border-color 0.15s;
}
.fin-kpi-card:hover { border-color: var(--border-active); }
.fin-kpi-accent { border-color: var(--accent-mid); background: var(--accent-soft); }
.fin-kpi-alert  { border-color: rgba(251,191,36,0.4) !important; background: rgba(251,191,36,0.06); }
.fin-kpi-icon {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: var(--accent-soft);
  border: 1px solid var(--accent-mid);
  display: flex; align-items: center; justify-content: center;
  color: var(--accent);
  margin-bottom: 4px;
  flex-shrink: 0;
}
.fin-kpi-icon-green { background: rgba(77,147,117,0.12); border-color: rgba(77,147,117,0.25); color: var(--green); }
.fin-kpi-icon-blue  { background: var(--blue-soft); border-color: rgba(56,189,248,0.25); color: var(--blue); }
.fin-kpi-icon-amber { background: rgba(251,191,36,0.12); border-color: rgba(251,191,36,0.25); color: var(--amber); }
.fin-kpi-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--text-secondary);
}
.fin-kpi-val {
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.5px;
  line-height: 1.1;
}
.fin-kpi-sub {
  font-size: 11px;
  color: var(--text-muted);
}

/* Table */
.fin-table-wrap {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
}
.fin-table-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
  gap: 10px;
}
.fin-table-title {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
}
.fin-search-input {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 7px 12px;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 13px;
  outline: none;
  width: 220px;
  transition: border-color 0.15s;
}
.fin-search-input:focus { border-color: var(--accent-mid); }
.fin-search-input::placeholder { color: var(--text-muted); }
.fin-table-footer {
  padding: 12px 20px;
  font-size: 12px;
  color: var(--text-muted);
  border-top: 1px solid var(--border);
}

/* Light theme */
[data-theme="light"] .fin-kpi-card { background: #ffffff; }
[data-theme="light"] .fin-kpi-accent { background: rgba(90,84,232,0.06); }
[data-theme="light"] .fin-table-wrap { background: #ffffff; }

/* ── Team Management Panel ── */
.pending-banner {
  display: none;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: rgba(245,158,11,.1);
  border: 1px solid rgba(245,158,11,.3);
  border-radius: var(--radius);
  margin-bottom: 16px;
  color: var(--amber);
  font-size: 13px;
  font-weight: 500;
}

.pending-banner .review-btn {
  margin-left: auto;
  padding: 5px 14px;
  border-radius: 6px;
  border: 1px solid var(--amber);
  background: transparent;
  color: var(--amber);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font-body);
}

.users-stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}

.users-stat-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.users-stat-card .stat-label {
  font-size: 11px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: .6px;
  font-weight: 600;
}

.users-stat-card .stat-val {
  font-size: 24px;
  font-weight: 700;
  font-family: var(--font-display);
  color: var(--text-primary);
}

.users-filter-row {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.users-filter-row input,
.users-filter-row select {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 7px 12px;
  color: var(--text-primary);
  font-size: 13px;
  outline: none;
  font-family: var(--font-body);
}

.users-filter-row input {
  flex: 1;
  min-width: 180px;
}

/* ── Pending Approvals — Detail Slide-Over ── */
.detail-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.35);
  z-index: 400;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}

.detail-overlay.open {
  opacity: 1;
  pointer-events: all;
}

.detail-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: 380px;
  max-width: 95vw;
  height: 100%;
  background: var(--bg-elevated);
  border-left: 1px solid var(--border);
  z-index: 401;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .25s ease;
  box-shadow: -8px 0 32px rgba(0,0,0,.15);
}

.detail-drawer.open {
  transform: translateX(0);
}

.detail-drawer-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}

.detail-close-btn {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 16px;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background .15s;
}

.detail-close-btn:hover { background: var(--bg-card); }

.detail-drawer-content {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}

.detail-avatar-wrap {
  margin-bottom: 24px;
}

.detail-section-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .7px;
  color: var(--text-muted);
  margin: 20px 0 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
}

.detail-fields-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.detail-field {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-size: 13px;
}

.detail-field-label {
  color: var(--text-muted);
  font-size: 12px;
  flex-shrink: 0;
}

.detail-field-value {
  color: var(--text-primary);
  font-weight: 500;
  text-align: right;
}

/* ── Bulk Invite ── */
.bulk-upload-zone {
  border: 2px dashed var(--border);
  border-radius: var(--radius);
  padding: 32px 20px;
  text-align: center;
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 14px;
  transition: border-color .15s, background .15s;
}

.bulk-upload-zone:hover {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.bulk-upload-icon {
  font-size: 28px;
  margin-bottom: 8px;
}

.bulk-row-ok td { background: rgba(34,197,94,.04); }
.bulk-row-duplicate td { background: rgba(245,158,11,.06); }
.bulk-row-error td { background: rgba(239,68,68,.06); }

/* ══════════════════════════════════════════
   ESF FORM — Full-page two-column layout
══════════════════════════════════════════ */

/* Step bar — stretch across full panel width */
.esf-steps.esf-steps-fullw {
  border-radius: 0;
  border-left: none;
  border-right: none;
  border-top: none;
  margin-bottom: 0;
}

/* Two-column grid */
.esf-two-col {
  display: grid;
  grid-template-columns: 1fr 300px;
  align-items: start;
}

.esf-main-col {
  padding: 20px 20px 20px 0;
  min-width: 0;
}

.esf-side-col {
  padding: 20px 0 20px 16px;
  position: sticky;
  top: 0;
  align-self: start;
}

/* Side column: 2-col calc grid fits 300 px better */
.esf-side-col .calc-grid {
  grid-template-columns: 1fr 1fr;
}

.esf-side-col .calc-card {
  margin-top: 0;
}

/* Section cards */
.esf-section-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 14px;
  overflow: hidden;
}

.esf-section-head {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.9px;
  padding: 11px 18px;
  background: var(--bg-elevated);
  border-bottom: 1px solid var(--border);
}

.esf-section-body {
  padding: 18px 18px 4px;
}

/* Client-locked fields */
.esf-locked-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding-top: 4px;
  margin-bottom: 8px;
}

.locked-field input {
  background: var(--bg) !important;
  color: var(--text-muted) !important;
  cursor: default;
  border-style: dashed !important;
}

.locked-note {
  font-size: 10px;
  color: var(--text-muted);
  margin-top: 3px;
  font-style: italic;
}

/* City autocomplete */
.city-autocomplete { position: relative; }

.city-dropdown {
  position: absolute;
  top: calc(100% + 3px);
  left: 0; right: 0;
  background: var(--bg-card);
  border: 1px solid var(--border-active);
  border-radius: var(--radius-sm);
  z-index: 300;
  max-height: 220px;
  overflow-y: auto;
  display: none;
  box-shadow: 0 8px 24px rgba(0,0,0,.3);
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.1) transparent;
}
.city-dropdown.open { display: block; }
.city-dropdown::-webkit-scrollbar { width: 4px; }
.city-dropdown::-webkit-scrollbar-track { background: transparent; }
.city-dropdown::-webkit-scrollbar-thumb { background: rgba(255,255,255,.1); border-radius: 10px; }

.city-option {
  padding: 9px 14px;
  cursor: pointer;
  font-size: 13px;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  transition: background .1s;
}
.city-option:hover, .city-option.highlighted { background: var(--bg-hover); }
.city-option .city-state { font-size: 11px; color: var(--text-muted); flex-shrink: 0; }
.city-option-empty { padding: 14px; font-size: 13px; color: var(--text-muted); text-align: center; }

/* Sub-fee mode toggle */
.esf-sub-mode-wrap {
  display: flex;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  width: fit-content;
}

.esf-mode-pill {
  padding: 5px 16px;
  border: none;
  background: none;
  color: var(--text-secondary);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
}
.esf-mode-pill.active { background: var(--accent); color: white; }
.esf-mode-pill:not(.active):hover { background: var(--bg-elevated); color: var(--text-primary); }

/* Bonus card */
.esf-bonus-card {
  background: var(--accent-soft);
  border: 1px solid var(--accent-mid);
  border-radius: var(--radius);
  padding: 16px 18px;
}

.esf-bonus-card-head {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .8px;
  color: var(--accent);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--accent-mid);
}

.esf-payout-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 4px;
}

/* Calc hint placeholder */
.esf-calc-hint {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.esf-calc-hint-icon { font-size: 32px; opacity: .3; }
.esf-calc-hint-text { font-size: 12px; color: var(--text-muted); line-height: 1.6; }

/* Responsive: stack columns on narrow screens */
@media (max-width: 960px) {
  .esf-two-col { grid-template-columns: 1fr; }
  .esf-side-col { padding: 0 0 16px; position: static; }
  .esf-main-col { padding: 16px 0; }
  .esf-locked-row { grid-template-columns: 1fr 1fr; }
  .esf-side-col .calc-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 600px) {
  .esf-locked-row { grid-template-columns: 1fr; }
  .esf-payout-row { grid-template-columns: 1fr; }
}
/* ── ESF Summary Review Page ─────────────────────────────────────── */
@keyframes esfSumFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.sum-fadein { animation: esfSumFadeIn 0.25s ease forwards; }
.esf-summary { max-width: 860px; margin: 0 auto; padding: 0 0 40px; }
.sum-approval-row {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 20px; padding: 16px 20px;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px;
}
.sum-approval-label {
  font-size: 12px; font-weight: 600; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: 0.5px; white-space: nowrap;
}
.sum-section {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: 12px; padding: 20px 24px; margin-bottom: 16px;
  border-left: 3px solid var(--accent);
}
.sum-section-head {
  font-size: 13px; font-weight: 700; color: var(--text-primary);
  text-transform: uppercase; letter-spacing: 0.5px;
  margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid var(--border);
}
.sum-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; }
.sum-field { display: flex; flex-direction: column; gap: 2px; }
.sum-label {
  font-size: 11px; text-transform: uppercase; color: var(--text-muted);
  letter-spacing: 0.5px; display: block; margin-bottom: 2px;
}
.sum-val { font-size: 14px; color: var(--text-primary); font-weight: 500; }
.sum-calc-row {
  display: flex; flex-wrap: wrap; gap: 16px;
  margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border);
}
.sum-calc-item { display: flex; flex-direction: column; gap: 2px; min-width: 120px; }
.sum-actions { display: flex; gap: 12px; margin-top: 4px; padding-top: 8px; }
@media (max-width: 600px) {
  .sum-grid { grid-template-columns: 1fr; }
  .sum-calc-row { flex-direction: column; }
}
