
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --teal:#1E7A6E;--teal-dark:#1f7a6e;--teal-light:#e8f5f3;--teal-xlight:#f4faf8;
  --amber:#E9C46A;--amber-dark:#d4a843;--amber-light:#fdf8e8;
  --red:#B03A2E;--red-light:#fdf0ee;
  --blue:#5A8FC2;--blue-light:#eef3fb;
  --purple:#5B4B9E;--purple-light:#f2effe;
  --slate:#4A5568;--slate-light:#eef0f3;
  --green:#2E7D52;--green-light:#e8f5ed;
  --bg:#F0F2F4;--bg-section:#DCE3E0;
  --surface:#ffffff;--surface2:#F6F8F7;
  --text:#2D2D2D;--text-mid:#4a5a58;--text-light:#6B7280;
  --border:rgba(42,157,143,0.12);--border-s:rgba(42,157,143,0.22);
  --sidebar:#2C4A47;
}
html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.app{display:flex;height:100vh;}

/* ── FORMS ── */
.field-hint{font-size:11px;line-height:1.35;margin-top:6px;color:var(--text-light);min-height:14px;}
.field-hint.error{color:var(--red);}
.input-invalid{border-color:var(--red) !important;}

/* ── LOGIN / AUTH ── */
.login-screen{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;align-items:center;justify-content:center;}
.login-inner{width:360px;display:flex;flex-direction:column;align-items:center;}
.login-wordmark{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:32px;font-weight:600;color:var(--text);letter-spacing:-0.5px;margin-bottom:6px;}
.login-wordmark-muted{color:var(--text-light);font-weight:300;}
.login-tagline{font-size:13px;color:var(--text-light);margin-bottom:40px;}
.login-card{width:100%;background:var(--surface);border-radius:12px;border:1px solid var(--border);box-shadow:0 4px 24px rgba(0,0,0,0.07);padding:32px;}
.login-card-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:24px;}
.login-stack{display:flex;flex-direction:column;gap:14px;}
#forgot-form,#forgot-sent,#reset-form{display:none;}
#login-form{display:flex;}
.login-field-label{font-size:12px;font-weight:500;color:var(--text-mid);margin-bottom:6px;}
.login-input{font-family:inherit;font-size:13px;width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid var(--border-s);border-radius:8px;outline:none;background:var(--surface2);color:var(--text);transition:border-color 0.15s;}
.login-input:focus{border-color:var(--teal);}
.login-link-forgot{font-family:inherit;font-size:12px;color:var(--teal);background:none;border:none;cursor:pointer;padding:0;align-self:flex-start;}
.login-link-forgot:hover{text-decoration:underline;}
#login-error,#login-info{display:none;font-size:12px;padding:8px 10px;border-radius:8px;}
#login-error{color:var(--red);background:var(--red-light);border:1px solid rgba(176,58,46,0.18);}
#login-info{color:var(--teal-dark);background:var(--teal-light);border:1px solid rgba(27,155,149,0.18);}
.login-btn-primary{font-family:inherit;font-size:13px;font-weight:600;background:var(--teal);color:white;border:none;border-radius:8px;padding:11px;cursor:pointer;transition:background 0.15s;width:100%;}
.login-btn-primary:hover{background:var(--teal-dark);}
.login-hint-text{font-size:12px;color:var(--text-light);line-height:1.4;margin-top:-6px;}
.login-hint-text.loose{line-height:1.45;}
.login-footer{font-size:12px;color:var(--text-light);margin-top:24px;}
.login-inline-link{font-family:inherit;font-size:12px;color:var(--teal);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px;}
.login-link-muted{font-family:inherit;font-size:12px;color:var(--text-light);background:none;border:none;cursor:pointer;padding:0;}
.login-link-muted:hover{color:var(--text-mid);}

/* ── DRAWER SHELL (panel chrome lives here; body uses existing .drawer-* ) ── */
.drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.18);z-index:800;display:none;}
.case-drawer{position:fixed;top:0;right:0;width:380px;height:100vh;background:var(--surface);border-left:1px solid rgba(0,0,0,0.08);box-shadow:-4px 0 24px rgba(0,0,0,0.1);z-index:801;flex-direction:column;transform:translateX(100%);transition:transform 0.25s ease;display:none;}
#drawer-case-sections{display:block;}
#drawer-invoice-sections,#drawer-customer-sections{display:none;}
.drawer-actions-row{margin-top:10px;display:flex;gap:8px;justify-content:flex-end;}
.drawer-link-stack{font-size:12px;}
.drawer-cust-add-row{display:flex;gap:8px;margin-top:10px;align-items:flex-start;}
.drawer-cust-add-row .settings-input{width:100%;}
.drawer-cust-empty{font-size:12px;color:var(--text-light);line-height:1.45;margin:4px 0 2px;}
.drawer-cust-empty strong{font-weight:600;color:var(--text-mid);}
.drawer-save-footer{margin-top:6px;display:flex;gap:8px;justify-content:flex-end;}
#drawer-inv-link{display:none;}
#drawer-inv-link-none{color:var(--text-light);}
#drawer-inv-save-msg,#drawer-cust-save-msg{display:none;margin-top:10px;font-size:12px;color:var(--text-light);}
/* Hidden until renderAuth() sets display:flex when session exists (avoids flash before JS). */
#app-shell{display:none;}

/* ── SIDEBAR ── */
.sidebar{width:224px;flex-shrink:0;background:var(--sidebar);border-right:none;display:flex;flex-direction:column;}
.sb-logo{padding:24px 20px 20px;border-bottom:1px solid rgba(255,255,255,0.08);}
.sb-wordmark{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:20px;font-weight:600;color:white;letter-spacing:-0.5px;}
.sb-wordmark span{color:rgba(255,255,255,0.6);font-weight:300;}
.sb-section{font-size:10px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.4);padding:20px 20px 7px;}
.sb-nav{flex:1;padding:6px 10px;display:flex;flex-direction:column;gap:2px;}
.sb-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:rgba(255,255,255,0.7);font-size:13px;font-weight:400;cursor:pointer;transition:all 0.15s;border:none;background:none;width:100%;text-align:left;}
.sb-item:hover{background:rgba(255,255,255,0.1);color:white;}
.sb-item.active{background:rgba(255,255,255,0.15);color:white;font-weight:500;}
.sb-item.active svg{opacity:1;}
.sb-item svg{width:15px;height:15px;flex-shrink:0;opacity:0.5;}
.sb-item:hover svg{opacity:1;}
.sb-item.sb-item-muted{opacity:0.6;cursor:default;}
.sb-user-text{flex:1;}
.sb-copy{font-size:10px;color:rgba(255,255,255,0.25);padding:8px 12px 0;letter-spacing:0.02em;}
.sb-badge{margin-left:auto;background:var(--amber);color:#2D2D2D;font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px;line-height:1.4;}
.sb-badge-dot{margin-left:auto;background:rgba(255,255,255,0.15);color:rgba(255,255,255,0.9);font-size:10px;font-weight:600;padding:2px 7px;border-radius:6px;line-height:1.4;}
.sb-item.active .sb-badge{background:rgba(255,255,255,0.25);color:white;}
.sb-bottom{padding:10px 10px 16px;border-top:1px solid rgba(255,255,255,0.08);}
.sb-icon-btn{position:relative;background:none;border:none;cursor:pointer;padding:4px;opacity:0.5;transition:opacity 0.15s;}
.sb-icon-btn:hover{opacity:1;}
.sb-icon-btn .sb-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:rgba(20,30,28,0.92);color:white;font-size:11px;font-weight:500;padding:4px 9px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity 0.12s;}
.sb-icon-btn:hover .sb-tooltip{opacity:1;}
.sb-user{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;cursor:pointer;transition:background 0.15s;}
.sb-user:hover{background:rgba(255,255,255,0.1);}
.sb-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--amber-dark));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:white;flex-shrink:0;}
.sb-uname{font-size:12px;font-weight:500;color:white;}
.sb-urole{font-size:10px;color:rgba(255,255,255,0.5);margin-top:1px;}

/* ── MAIN ── */
.main{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;}
.topbar{height:56px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;gap:14px;flex-shrink:0;}
.topbar-title{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;font-size:21px;color:var(--text);flex:1;letter-spacing:-0.3px;}
.biz-pill{display:flex;align-items:center;gap:7px;background:var(--teal-light);border:1px solid rgba(42,157,143,0.2);padding:6px 14px;border-radius:6px;font-size:12px;font-weight:500;color:var(--teal-dark);}
.ari-dot{width:6px;height:6px;border-radius:50%;background:var(--teal);animation:pulse 2s infinite;flex-shrink:0;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.5;transform:scale(0.72);}}
.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:500;cursor:pointer;border:1.5px solid var(--border-s);background:transparent;color:var(--text-light);transition:all 0.15s;}
.btn-ghost:hover{background:var(--teal-xlight);color:var(--teal);border-color:var(--teal);}
.btn-xs{padding:2px 7px;font-size:11px;border-radius:5px;}

/* ── PAGES ── */
.page{display:none;flex:1;overflow:hidden;padding:24px 28px;flex-direction:column;gap:0;min-width:0;}
.page.active{}


/* ── STAT CARDS ── */

/* ── DASH GRID ── */

/* ── CARDS ── */

.card-header{padding:12px 20px;border-bottom:1px solid var(--border);background:var(--surface2);display:flex;align-items:center;justify-content:space-between;gap:10px;}

/* ── FILTER CHIPS ── */
.filter-row{display:flex;align-items:center;gap:5px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--surface2);overflow-x:auto;}

/* ── BADGES ── */
.tbadge{font-size:10px;font-weight:600;padding:3px 9px;border-radius:6px;white-space:nowrap;display:inline-block;}
.tbadge.aged{background:#fdf3e8;color:#b05a10;}
.tbadge.held{background:var(--slate-light);color:var(--slate);}
.tbadge.followup{background:var(--teal-light);color:var(--teal-dark);}
.tbadge.overdue{background:var(--teal-light);color:var(--teal-dark);}
.tbadge.promise{background:var(--purple-light);color:var(--purple);}
.tbadge.current{background:var(--green-light);color:var(--green);}

/* ── QUEUE LEVEL 1 ── */

/* ── QUEUE LEVEL 2 ── */

/* ── QUEUE LEVEL 3 ── */

/* ── ACTIVITY FEED ── */

/* ── AR STATS (aligned with ar_cases.state) ── */
.ar-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;flex-shrink:0;}
@media (max-width:1100px){.ar-stats{grid-template-columns:repeat(2,1fr);}}
.ar-stat{background:var(--surface);border:1px solid rgba(0,0,0,0.12);border-radius:10px;padding:14px 16px;transition:box-shadow 0.15s;}
.ar-stat.waiting-on-payment,.ar-stat.needs-review{cursor:pointer;}
.ar-stat.waiting-on-payment:hover,.ar-stat.needs-review:hover{box-shadow:0 2px 8px rgba(0,0,0,0.09);}
.ar-stat-label{font-size:10px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:var(--text-light);margin-bottom:6px;line-height:1.3;}
.ar-stat-num{font-size:22px;font-weight:600;color:var(--text);letter-spacing:-0.5px;margin-bottom:2px;}
.ar-stat-sub{font-size:11px;color:var(--text-light);}
.ar-stat.current .ar-stat-num{color:var(--green);}
.ar-stat.overdue .ar-stat-num{color:var(--teal-dark);}
.ar-stat.waiting-on-payment .ar-stat-num{color:var(--purple);}
.ar-stat.needs-review .ar-stat-num{color:var(--slate);}
.ar-stat-sub-link{text-decoration:underline;text-underline-offset:2px;}

/* ── SYNC STATUS ── */
.sync-status{display:flex;align-items:center;gap:6px;}
.sync-dot{width:6px;height:6px;border-radius:50%;background:#22C55E;flex-shrink:0;}
.sync-text{font-size:11.5px;color:var(--text-light);}

/* ── SIDE DRAWER ── */
.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid rgba(0,0,0,0.08);flex-shrink:0;}
.drawer-name{font-size:16px;font-weight:600;color:var(--text);margin-bottom:2px;}
.drawer-contact{font-size:12px;color:var(--text-light);}
.drawer-body{flex:1;overflow-y:auto;padding:20px 24px;}
.drawer-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;}
.drawer-section{margin-bottom:24px;}
.drawer-section-title{font-size:10px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-light);margin-bottom:10px;}
.drawer-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(0,0,0,0.05);}
.drawer-row:last-child{border-bottom:none;}
.drawer-label{font-size:12px;color:var(--text-light);}
.drawer-val{font-size:12px;color:var(--text);font-weight:500;}
.drawer-val.red{color:var(--red);}
.drawer-inv-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(0,0,0,0.05);}
.drawer-inv-row:last-child{border-bottom:none;}
.drawer-inv-num{font-size:12px;font-weight:600;color:var(--text);}
.drawer-inv-meta{font-size:11px;color:var(--text-light);margin-top:1px;}
.drawer-inv-amt{font-size:12px;font-weight:600;color:var(--text);}

/* ── AR CASES ── */
.cases-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-shrink:0;}
.cases-filters{display:flex;align-items:center;gap:4px;}

/* List */
.cases-list{background:var(--surface);border:1px solid rgba(0,0,0,0.1);border-radius:10px;overflow:auto;flex:1;min-height:0;box-shadow:0 2px 8px rgba(0,0,0,0.08),0 1px 3px rgba(0,0,0,0.06);}
.cl-head{display:grid;grid-template-columns:36px 180px 1fr 220px;gap:12px;padding:10px 16px;background:var(--surface2);border-bottom:1px solid rgba(0,0,0,0.08);position:sticky;top:0;z-index:2;min-width:560px;}
.cl-head .cl-col{font-size:11px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:var(--text-light);}
.cl-row{display:grid;grid-template-columns:36px 180px 1fr 220px;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(0,0,0,0.05);cursor:pointer;transition:background 0.12s;align-items:center;min-width:560px;}
.cl-row:last-child{border-bottom:none;}
.cl-row:hover{background:var(--surface2);}
.cl-cust-name{font-size:13px;font-weight:600;color:var(--text);}
.cl-cust-contact{font-size:11px;color:var(--text-light);margin-top:1px;}
.cl-col{font-size:13px;color:var(--text);}
.cl-badges{display:flex;gap:4px;align-items:center;flex-wrap:wrap;}
.cl-last{font-size:12px;color:var(--text-light);}
.cases-filter{font-size:12px;font-weight:500;padding:6px 14px;border-radius:6px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-light);transition:all 0.15s;display:flex;align-items:center;gap:5px;}
.cases-filter:hover{border-color:rgba(0,0,0,0.22);color:var(--text);}
.cases-filter.active{background:var(--teal);color:white;border-color:var(--teal);box-shadow:0 1px 4px rgba(30,122,110,0.25);}
.cases-filter-count{font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;background:rgba(0,0,0,0.1);}
.cases-filter.active .cases-filter-count{background:rgba(255,255,255,0.25);}

/* ── INVOICES ── */
.inv-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-shrink:0;gap:12px;}
.inv-filters{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.inv-filter{font-size:12px;font-weight:500;padding:6px 12px;border-radius:6px;cursor:pointer;border:1.5px solid rgba(0,0,0,0.13);background:var(--surface);color:var(--text-mid);transition:all 0.15s;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.inv-filter:hover{border-color:rgba(0,0,0,0.22);color:var(--text);}
.inv-filter.active{background:var(--teal);color:white;border-color:var(--teal);box-shadow:0 1px 4px rgba(30,122,110,0.25);}
.inv-filter-count{font-size:10px;font-weight:700;padding:1px 5px;border-radius:10px;background:rgba(0,0,0,0.08);}
.inv-filter.active .inv-filter-count{background:rgba(255,255,255,0.25);}
.inv-search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border-s);border-radius:10px;padding:7px 12px;flex-shrink:0;}
.inv-search input{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;border:none;outline:none;background:transparent;color:var(--text);width:180px;}
.inv-search input::placeholder{color:var(--text-light);}
.inv-card{background:var(--surface);border-radius:10px;border:1px solid rgba(0,0,0,0.1);box-shadow:0 2px 8px rgba(0,0,0,0.08),0 1px 3px rgba(0,0,0,0.06);flex:1;display:flex;flex-direction:column;min-height:0;}.inv-bulk-bar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--surface2);border-bottom:1px solid var(--border);flex-shrink:0;}
.inv-bulk-count{font-size:12px;font-weight:500;color:var(--text-light);flex:1;}
.inv-bulk-actions{display:flex;gap:6px;}
.inv-bulk-btn{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:600;padding:6px 16px;border-radius:6px;border:1.5px solid var(--border-s);background:var(--surface);color:var(--text-light);cursor:default;display:inline-flex;align-items:center;gap:6px;transition:all 0.15s;opacity:0.35;pointer-events:none;}
.inv-bulk-btn.active{opacity:1;color:var(--slate);cursor:pointer;pointer-events:auto;border-color:var(--slate);}
.inv-bulk-btn.active:hover{background:var(--slate-light);}
.inv-bulk-btn.send.active{border-color:var(--teal);color:var(--teal-dark);}
.inv-bulk-btn.send.active:hover{background:var(--teal-light);}
.inv-bulk-btn.promise.active{border-color:var(--purple);color:var(--purple);}
.inv-bulk-btn.promise.active:hover{background:var(--purple-light);}
.inv-table-scroll{overflow:auto;flex:1;min-height:0;border-radius:0 0 10px 10px;}
.inv-head{display:grid;grid-template-columns:36px 70px 64px minmax(120px,1fr) minmax(96px,120px) 84px 84px 84px 40px 40px 76px minmax(168px,220px);gap:12px;padding:10px 20px;background:var(--surface2);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:2;min-width:fit-content;width:100%;}
.ih-col{font-size:11px;font-weight:600;color:var(--text-light);white-space:nowrap;min-width:0;}
.ih-check{display:flex;align-items:center;}
.inv-body{display:contents;}
.inv-row{display:grid;grid-template-columns:36px 70px 64px minmax(120px,1fr) minmax(96px,120px) 84px 84px 84px 40px 40px 76px minmax(168px,220px);gap:12px;padding:11px 20px;border-bottom:1px solid var(--border);align-items:center;transition:background 0.15s;min-width:fit-content;width:100%;}
.inv-row:last-child{border-bottom:none;}
.inv-row:hover{background:var(--teal-xlight);}
.inv-row.selected{background:var(--teal-light);}
.inv-num{font-size:12px;font-weight:600;color:var(--text);}
.inv-cust{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
.inv-cust-contact{font-weight:400;color:var(--text-light);font-size:12px;}
.inv-date{font-size:12px;color:var(--text-light);}
.inv-amt{font-size:13px;font-weight:500;color:var(--text);}
.inv-bal-red{font-size:13px;font-weight:500;color:var(--text);}
.inv-col-icon{font-size:14px;font-weight:700;display:inline-block;width:22px;text-align:center;}
.inv-col-icon.teal{color:var(--teal);}
.inv-col-icon.amber{color:#b05a10;}
.inv-col-icon.slate{color:var(--slate);}
.inv-col-icon.muted{color:var(--border-s);}
.inv-status-badge{font-size:10px;font-weight:600;padding:3px 9px;border-radius:6px;white-space:nowrap;display:inline-flex;align-items:center;line-height:1;}
.inv-status-badge.followup{background:var(--teal-light);color:var(--teal-dark);}
.inv-status-badge.promise{background:var(--purple-light);color:var(--purple);}
.inv-status-badge.held{background:var(--slate-light);color:var(--slate);}
.inv-status-badge.current{background:var(--green-light);color:var(--green);}
.inv-promise-by{font-size:11px;color:var(--text-light);font-weight:400;white-space:nowrap;line-height:1;display:inline-flex;align-items:center;}
.inv-status-cell{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0;}
.inv-action-btn{font-size:10px;font-weight:600;padding:3px 9px;border-radius:6px;border:1px solid var(--border-s);background:var(--surface);color:var(--text-light);cursor:pointer;transition:all 0.15s;white-space:nowrap;font-family:inherit;display:inline-flex;align-items:center;flex-shrink:0;}
.inv-action-btn:hover{border-color:var(--purple);color:var(--purple);background:var(--purple-light);}
input[type="checkbox"]{width:14px;height:14px;accent-color:var(--teal);cursor:pointer;}

/* ── COMMUNICATIONS ── */
.comm-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-shrink:0;gap:12px;}
.comm-count-pill{font-size:12px;font-weight:500;color:var(--text-light);}
.comm-feed-wrap{flex:1;overflow-y:auto;min-height:0;}
.comm-feed{display:flex;flex-direction:column;gap:2px;}
.comm-date-divider{font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-light);padding:18px 4px 8px;flex-shrink:0;}
.comm-date-divider:first-child{padding-top:0;}
.comm-item{display:flex;gap:12px;align-items:center;padding:11px 16px;background:var(--surface);border-radius:8px;border:1px solid var(--border);margin-bottom:6px;transition:box-shadow 0.15s;cursor:pointer;}
.comm-item:hover{box-shadow:0 2px 12px rgba(26,43,40,0.07);border-color:var(--teal-light);}
.comm-item.note{background:var(--surface2);}
.comm-av{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;}
.note-av{background:var(--bg);color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:0.05em;border:1px solid var(--border-s);}
.comm-body{flex:1;min-width:0;}
.comm-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap;}
.comm-to{font-size:12px;color:var(--text-light);flex:1;}
.comm-to strong{color:var(--text);font-weight:600;}
.comm-badge{font-size:10px;font-weight:600;padding:3px 9px;border-radius:6px;white-space:nowrap;flex-shrink:0;display:inline-block;}
.comm-badge.followup{background:var(--teal-light);color:var(--teal-dark);}
.comm-badge.promise{background:var(--purple-light);color:var(--purple);}
.comm-badge.sent{background:#fdf3e8;color:#b05a10;}
.comm-badge.needs-review{background:var(--red-light);color:var(--red);}

.comm-badge.unsure{background:#fdf8e8;color:#b07a10;}
.comm-badge.clarification{background:#f0eaff;color:#5B4B9E;}
.comm-badge.lowconfidence{background:#fde8e8;color:#b01010;}
.comm-badge.unsupported{background:#f0f0f0;color:#666666;}
.comm-badge.invoicerequest{background:#eaf0ff;color:#2952a3;}
.comm-badge.statementrequest{background:#e8f5ff;color:#0e6da8;}
.comm-badge.bankdetailsrequest{background:#e8fff5;color:#0e7a4a;}
.comm-badge.acknowledged{background:#e8f5ed;color:#1a6b3c;}
.comm-badge.paymentnotification{background:#e8f0ff;color:#3a2da8;}
.comm-text{font-size:12.5px;color:var(--text-mid);line-height:1.6;display:none;}
.comm-time{font-size:11px;color:var(--text-light);margin-top:3px;}
.comm-item.inbound .comm-av{border:2px solid var(--border-s);}
#comm-feed .comm-text{display:block;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.55;max-height:4.8em;}
.comm-item.outbound .comm-av{border:2px solid transparent;}

.comm-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.35);z-index:920;}
.comm-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:921;width:min(560px,calc(100vw - 32px));max-height:min(82vh,calc(100vh - 48px));background:var(--surface);border-radius:12px;box-shadow:0 16px 56px rgba(0,0,0,0.18);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;}
.comm-modal-inner{display:flex;flex-direction:column;max-height:min(82vh,calc(100vh - 48px));}
.comm-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid var(--border);flex-shrink:0;}
.comm-modal-head-main{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0;}
.comm-modal-av{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;}
.comm-modal-head-text{min-width:0;flex:1;}
.comm-modal-title{font-size:13px;font-weight:600;color:var(--text);}
.comm-modal-meta{font-size:11px;color:var(--text-light);margin-top:3px;word-break:break-word;}
.comm-modal-head-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.comm-modal-time{font-size:11px;color:var(--text-light);white-space:nowrap;}
.comm-modal-close{background:none;border:none;cursor:pointer;color:var(--text-light);font-size:18px;line-height:1;padding:2px 4px;font-family:inherit;}
.comm-modal-close:hover{color:var(--text);}
.comm-modal-body-wrap{padding:18px 20px 22px;overflow-y:auto;flex:1;background:var(--surface2);}
.comm-modal-subject{font-size:12px;font-weight:600;color:var(--text);margin-bottom:12px;padding:12px 14px;background:var(--surface);border-radius:8px;border:1px solid var(--border);}
.comm-modal-body{margin:0;font-size:12.5px;line-height:1.55;color:var(--text-mid);white-space:pre-wrap;word-break:break-word;font-family:inherit;padding:16px 18px;background:var(--surface);border-radius:8px;border:1px solid var(--border);}

/* ── CUSTOMERS ── */
.cust-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-shrink:0;gap:12px;}
.cust-toolbar-meta{display:flex;align-items:center;gap:10px;}
.cust-count-label{font-size:12px;color:var(--text-light);}
.cust-table-wrap{background:var(--surface);border-radius:10px;border:1px solid rgba(0,0,0,0.1);box-shadow:0 2px 8px rgba(0,0,0,0.08),0 1px 3px rgba(0,0,0,0.06);overflow:auto;flex:1;min-height:0;}
.cust-table{border-collapse:collapse;table-layout:auto;min-width:900px;width:100%;}
.cust-table thead tr{background:var(--surface2);border-bottom:1px solid var(--border);}
.cust-table th{padding:10px 16px;font-size:11px;font-weight:600;color:var(--text-light);text-align:left;white-space:nowrap;position:sticky;top:0;background:var(--surface2);z-index:1;}
.cust-table th:nth-child(1){width:52px;}
.cust-table th:nth-child(2){width:180px;}
.cust-table th:nth-child(3){width:130px;}
.cust-table th:nth-child(4){width:180px;}
.cust-table th:nth-child(5){width:170px;}
.cust-table th:nth-child(6){width:170px;}
.cust-table th:nth-child(7){width:110px;}
.cust-table th:nth-child(8){width:130px;}
.cust-table tbody tr{border-bottom:1px solid var(--border);transition:background 0.15s;}
.cust-table tbody tr:last-child{border-bottom:none;}
.cust-table tbody tr:hover{background:var(--teal-xlight);}
.cust-table td{padding:10px 16px;vertical-align:middle;overflow:hidden;}
.cust-last-action{font-size:12px;font-weight:500;color:var(--text-mid);white-space:nowrap;}
.cust-last-action.cust-muted{color:var(--text-light);font-weight:400;}
.cust-av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;}
.cc-av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;}
.cust-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;}
.cust-contact{font-size:12px;color:var(--text-mid);white-space:nowrap;}
.cust-link{font-size:12px;color:var(--teal);text-decoration:none;white-space:nowrap;}
.cust-link:hover{text-decoration:underline;}
.cust-email{font-size:12px;color:var(--text-light);white-space:nowrap;}
.cust-last-time{font-size:11px;color:var(--text-light);margin-top:2px;display:block;min-height:14px;white-space:nowrap;}
.cust-btn{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:11px;font-weight:600;padding:5px 11px;border-radius:6px;border:1.5px solid var(--border-s);background:var(--surface);color:var(--text-mid);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all 0.15s;white-space:nowrap;}
.cust-btn:hover{background:var(--teal-xlight);border-color:var(--teal);color:var(--teal-dark);}
.cust-btn.send{border-color:var(--teal);color:var(--teal-dark);}
.cust-btn.send:hover{background:var(--teal-light);}
.contacts-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--surface2);border-radius:8px;font-size:12px;color:var(--text-mid);}
.contacts-remove{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:13px;line-height:1;padding:0 2px;}
.contacts-remove:hover{color:var(--red);}

/* App/mock parity: App/index.html contacts-overlay + contacts-popup */
.contacts-cust-overlay{position:fixed;inset:0;z-index:900;background:transparent;display:none;}
.contacts-cust-popup{
  display:none;position:fixed;z-index:9999;box-sizing:border-box;
  background:var(--surface);border-radius:8px;padding:20px;
  box-shadow:0 4px 16px rgba(0,0,0,0.12);border:1px solid var(--border-s);
  width:320px;max-width:calc(100vw - 24px);
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;
}
.contacts-cust-popup-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.contacts-cust-popup-title{font-size:13px;font-weight:600;color:var(--text);}
.contacts-cust-popup-close{background:none;border:none;font-size:14px;color:var(--text-light);cursor:pointer;line-height:1;padding:0;}
.contacts-cust-popup-sub{font-size:11px;color:var(--text-light);margin-bottom:14px;}
.contacts-cust-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;min-height:32px;}
/* List rows use shared .contacts-item / .contacts-remove (same as App + customer drawer chips) */
#contacts-cust-list .contacts-item{flex-shrink:0;}
.contacts-cust-add-row{display:flex;gap:8px;border-top:1px solid var(--border);padding-top:12px;}
.contacts-cust-input{
  flex:1;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;
  font-size:12px;padding:7px 10px;border:1px solid var(--border-s);border-radius:8px;
  outline:none;color:var(--text);background:var(--surface);
}
.contacts-cust-add-btn{
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;
  font-size:12px;font-weight:600;background:var(--teal);color:white;border:none;border-radius:8px;padding:7px 14px;cursor:pointer;
}
.contacts-cust-add-btn:disabled{opacity:0.55;cursor:not-allowed;}
#contacts-cust-list .contacts-remove:disabled{opacity:0.45;cursor:not-allowed;}
.contacts-cust-hint:empty{display:none;}
.contacts-cust-hint{margin-top:10px;font-size:12px;}

/* ── EMPTY STATE ── */
@keyframes floatUp{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}

/* ── SETTINGS ── */
.settings-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:20px;flex-shrink:0;}
.settings-tab{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:13px;font-weight:500;padding:10px 18px;border:none;background:none;color:var(--text-light);cursor:pointer;transition:all 0.15s;white-space:nowrap;}
.settings-tab:hover{color:var(--text-mid);}
.settings-tab.active{color:var(--teal);font-weight:600;}
.settings-body{flex:1;overflow-y:scroll;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
.settings-panel{display:none;flex-direction:column;gap:24px;}
.settings-panel.active{display:flex;}
.settings-section{background:var(--surface);border-radius:8px;border:1px solid var(--border);overflow:visible;}
.settings-section > *:first-child{border-radius:8px 8px 0 0;}
.settings-section > *:last-child{border-radius:0 0 8px 8px;}
.settings-section-title{font-size:13px;font-weight:600;color:var(--text);padding:16px 20px 4px;}
.settings-section-desc{font-size:12px;color:var(--text-light);padding:0 20px 14px;border-bottom:1px solid var(--border);}
.settings-rows{display:flex;flex-direction:column;}
.settings-row{display:grid;grid-template-columns:1fr 200px;align-items:center;padding:13px 20px;border-bottom:1px solid var(--border);gap:16px;}
.settings-row-control{display:flex;align-items:center;justify-content:flex-end;}.settings-row:last-child{border-bottom:none;}
.settings-row-label{font-size:13px;color:var(--text-mid);flex:1;}

.settings-muted{font-size:13px;color:var(--text-light);}
.settings-select{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;color:var(--text-mid);background:var(--surface2);border:1px solid var(--border-s);border-radius:8px;padding:6px 10px;outline:none;cursor:pointer;}
/* Custom dropdown (replaces native select where scroll lock is an issue) */
.cdd-wrap{position:relative;display:inline-block;}
.cdd-btn{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;color:var(--text-mid);background:var(--surface2);border:1px solid var(--border-s);border-radius:8px;padding:6px 10px 6px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;user-select:none;}
.cdd-btn:hover{border-color:var(--teal);}
.cdd-btn svg{opacity:0.5;flex-shrink:0;}
.cdd-menu{position:fixed;background:var(--surface);border:1px solid var(--border-s);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.12);z-index:9999;overflow-y:auto;max-height:220px;min-width:100%;}
.cdd-opt{padding:8px 14px;font-size:12px;color:var(--text-mid);cursor:pointer;white-space:nowrap;}
.cdd-opt:hover{background:var(--teal-xlight);color:var(--teal-dark);}
.cdd-opt.selected{font-weight:600;color:var(--teal-dark);}
.settings-input{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;color:var(--text);background:var(--surface2);border:1px solid var(--border-s);border-radius:8px;padding:7px 10px;outline:none;width:260px;}
.settings-input:focus{border-color:var(--teal);}
.settings-textarea{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;color:var(--text);background:var(--surface2);border:1px solid var(--border-s);border-radius:8px;padding:7px 10px;outline:none;width:260px;height:70px;resize:vertical;}
.settings-textarea:focus{border-color:var(--teal);}
.settings-toggle{position:relative;display:inline-block;width:36px;height:20px;cursor:pointer;}
.settings-toggle input{opacity:0;width:0;height:0;}
.settings-toggle-track{position:absolute;inset:0;background:var(--border-s);border-radius:6px;transition:background 0.2s;}
.settings-toggle input:checked + .settings-toggle-track{background:var(--teal);}
.settings-toggle-track::after{content:'';position:absolute;width:14px;height:14px;border-radius:50%;background:white;top:3px;left:3px;transition:transform 0.2s;box-shadow:0 1px 3px rgba(0,0,0,0.2);}
.settings-toggle input:checked + .settings-toggle-track::after{transform:translateX(16px);}
.settings-status-badge{font-size:11px;font-weight:600;padding:3px 10px;border-radius:6px;background:var(--green-light);color:var(--green);}
.settings-role-badge{font-size:11px;font-weight:600;padding:3px 10px;border-radius:6px;background:var(--teal-light);color:var(--teal-dark);}
.settings-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;align-items:center;}
.settings-save-btn{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:600;padding:8px 20px;border-radius:8px;border:none;background:var(--teal);color:white;cursor:pointer;transition:background 0.15s;}
.settings-save-btn:hover{background:var(--teal-dark);}
.settings-danger-btn{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:600;padding:8px 20px;border-radius:8px;border:1.5px solid var(--red);background:transparent;color:var(--red);cursor:pointer;transition:all 0.15s;}
.settings-danger-btn:hover{background:var(--red-light);}

.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:10px;text-align:center;}
.placeholder-icon{width:48px;height:48px;border-radius:8px;background:var(--teal-light);display:flex;align-items:center;justify-content:center;margin-bottom:4px;}
.placeholder h3{font-size:16px;font-weight:600;color:var(--text-mid);}
.placeholder p{font-size:13px;color:var(--text-light);}

::-webkit-scrollbar{width:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(42,157,143,0.2);border-radius:10px;}
