/* perf-3: extracted from public/index.html on 2026-06-12
   Three style blocks consolidated in source order:
   - Block A: app-wide tokens, layout, components (was lines 13-1285)
   - Block B: TRS print sheet (#trsSheet, was lines 1286-1340, id=trsStyles)
   - Block C: EFT panel + deal-modal helpers (was lines 2151-2323)
*/

:root{
  --ink:#0d1b2a; --ink-soft:#3d4f63; --muted:#7a8aa0; --faint:#aab6c6;
  --line:#e3e8ef; --line-soft:#eef2f7; --bg:#f6f8fb; --panel:#ffffff;
  --brand:#0a3d62; --brand-2:#1a6fb0; --accent:#e8772e;
  --green:#1c8c5a; --green-bg:#e6f5ee; --amber:#b6851a; --amber-bg:#fbf3df;
  --red:#c0392b; --red-bg:#fbeae7; --blue:#1a6fb0; --blue-bg:#e7f1fa; --slate-bg:#eef1f5;
  --radius:10px; --radius-sm:7px;
  --radius-lg:14px; --radius-pill:999px; --radius-card:12px;
  --shadow-sm:0 1px 3px rgba(13,27,42,.08);
  --space-1:4px; --space-2:8px; --space-3:12px;
  --space-4:16px; --space-5:20px; --space-6:24px;
  --btn-height:34px; --input-height:34px;
  --stage-bg:#8a8f98;
  --shadow:0 1px 2px rgba(13,27,42,.06),0 4px 16px rgba(13,27,42,.06);
  --shadow-lg:0 8px 40px rgba(13,27,42,.18);
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --mono:"SF Mono",ui-monospace,"Cascadia Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow:hidden}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#c8d2de;border-radius:6px;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:#b0bdce}

/* ---------- App shell ---------- */
.app{display:flex;flex-direction:column;height:100vh}

/* ---------- Top bar ---------- */
.topbar{display:flex;align-items:center;gap:14px;padding:0 22px 0 18px;height:56px;background:var(--brand);color:#fff;flex-shrink:0;box-shadow:0 1px 0 rgba(0,0,0,.1);overflow:visible}
.brand{display:flex;align-items:center;gap:11px;font-weight:700;letter-spacing:-.01em;font-size:15px}
.brand .logo{height:24px;width:auto;display:block;object-fit:contain}
.brand .logo-fallback{height:28px;width:28px;border-radius:6px;background:linear-gradient(135deg,var(--accent),#f0a060);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff}
.brand .sub{font-weight:500;opacity:.6;font-size:12px;border-left:1px solid rgba(255,255,255,.25);padding-left:11px;margin-left:1px}
.topbar .spacer{flex:1}
.sync-pill{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:20px;background:rgba(255,255,255,.12);transition:.2s}
.sync-pill .dot{width:7px;height:7px;border-radius:50%;background:#7fd8a8;box-shadow:0 0 0 0 rgba(127,216,168,.6);animation:pulse 2.4s infinite}
.sync-pill.off .dot{background:#f0b860;animation:none}
.sync-pill.syncing .dot{background:#8fd0ff;animation:pulse 1s infinite}
.sync-pill.error .dot{background:#ff8a7a;animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(127,216,168,.5)}70%{box-shadow:0 0 0 6px rgba(127,216,168,0)}100%{box-shadow:0 0 0 0 rgba(127,216,168,0)}}
.tb-btn{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:7px 13px;border-radius:7px;background:rgba(255,255,255,.1);color:#fff;transition:.15s;flex-shrink:0;white-space:nowrap}
.tb-btn:hover{background:rgba(255,255,255,.2)}
.tb-btn svg{width:15px;height:15px}

/* ---------- Topbar groups ---------- */
.topbar-group{display:flex;align-items:center;gap:8px}
.topbar-divider{width:1px;background:rgba(255,255,255,.18);height:28px;margin:0 6px;flex-shrink:0}
@media (min-width:1500px){
  .topbar{gap:22px;padding:0 28px 0 24px}
  .topbar-group{gap:10px}
  .topbar-divider{margin:0 8px}
}
@media (min-width:1700px){
  .topbar{gap:30px;padding:0 34px 0 30px}
  .topbar-group{gap:12px}
  .topbar-divider{margin:0 10px}
}
.topbar-utility .tb-btn span{display:none}
/* Progressive header collapse */
/* Below 1700px: drop the profile name so the chip stays compact (avatar + caret only).
   14" MacBook Pro at default scaling is 1512px CSS — it needs the compact chip. */
@media(max-width:1699px){
  .pt-name{display:none}
  .profile-trigger{padding:5px 8px 5px 5px;gap:6px}
}
/* Below 1600px: shrink button labels to icons only so profile chip fits.
   8 labeled buttons + dividers + presence + Live pill simply do not fit on a 1512px viewport;
   collapse to icons-only at this width so the profile chip is always visible. */
@media(max-width:1599px){
  .topbar{gap:8px;padding:0 14px 0 12px}
  .topbar-divider{margin:0 1px;height:24px}
  .tb-btn{padding:7px 8px;gap:0}
  .tb-btn span:not(.chat-badge){display:none}
  .brand .sub{display:none}
  .presence{display:none}
  .presence + .topbar-divider{display:none}
  .rt-pill{padding:5px 9px;font-size:11px}
  .rt-pill + .topbar-divider{display:none}
}
/* Below 1440px: tighten gaps further so action buttons + profile fit on smaller laptops */
@media(max-width:1439px){
  .topbar{gap:6px;padding:0 10px}
  .topbar-divider{margin:0;height:22px}
  .tb-btn{padding:6px 7px}
  .tb-btn svg{width:16px;height:16px}
}
/* Below 1280px: hide brand subtitle text, tighten further */
@media(max-width:1279px){
  .topbar{gap:4px;padding:0 8px}
  .brand span{font-size:13px}
  .topbar-divider{margin:0}
  .tb-btn{padding:6px}
}
/* Below 1024px: collapse all action buttons into hamburger menu; keep brand, Live pill, profile avatar, hamburger */
@media(max-width:1023px){
  #tasksBtn,#chatBtn,#draftsBtn,#dsBtn,#eftBtn,#acctBtn,.topbar [aria-label="Version history"],.topbar-divider,.topbar-group,.who,.presence{display:none!important}
  .hamburger-btn{display:flex!important}
}
/* Below 768px: also collapse profile menu and Live pill */
@media(max-width:767px){
  .profile-menu-wrap,#rtPill{display:none!important}
  .topbar{padding:0 10px}
  .brand span{font-size:14px}
}
.hamburger-menu{position:fixed;top:56px;right:8px;left:auto;width:min(280px,calc(100vw - 16px));background:var(--brand);z-index:45;box-shadow:0 8px 24px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.12);border-radius:10px;overflow:hidden;max-height:calc(100vh - 70px);overflow-y:auto}
.hmenu-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;font-size:13.5px;font-weight:600;color:#fff;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.08);cursor:pointer;text-align:left}
.hmenu-item:last-child{border-bottom:none}
.hmenu-item:hover{background:rgba(255,255,255,.1)}
.hmenu-item svg{flex-shrink:0;opacity:.9}


/* ---------- KPI strip ---------- */
.kpis{display:flex;gap:1px;background:var(--line);flex-shrink:0;overflow-x:auto}
.kpi{background:var(--panel);padding:11px 18px;min-width:130px;flex:1;display:flex;flex-direction:column;gap:2px;cursor:pointer;transition:.15s;border-bottom:2px solid transparent;position:relative}
.kpi:hover{background:#fafcfe}
.kpi.active{border-bottom-color:var(--accent);background:#fff}
.kpi .k-val{font-size:20px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.kpi .k-lbl{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.kpi .k-bar{height:3px;border-radius:2px;margin-top:3px;background:var(--line);overflow:hidden}
.kpi .k-bar i{display:block;height:100%;border-radius:2px}
.kpi-div{width:1px;background:var(--line);flex:0 0 1px;margin:0 2px}
.kpi.k-type{min-width:104px;background:#fbfcfe}
.kpi.k-type .k-val{font-size:18px;color:var(--ink-soft)}
.kpi.k-type.active{border-bottom-color:var(--brand-2);background:#fff}
.kpi.k-type.active .k-val{color:var(--brand)}
.kpi.k-type .k-lbl{color:var(--brand-2)}
.kpi.s-open .k-val{color:var(--blue)} .kpi.s-open .k-bar i{background:var(--blue)}
.kpi.s-disbursed .k-val{color:var(--green)} .kpi.s-disbursed .k-bar i{background:var(--green)}
.kpi.s-closed .k-val{color:var(--ink-soft)} .kpi.s-closed .k-bar i{background:var(--ink-soft)}
.kpi.s-fell .k-val{color:var(--red)} .kpi.s-fell .k-bar i{background:var(--red)}
.kpi.s-total .k-val{color:var(--brand)} .kpi.s-total .k-bar i{background:var(--brand)}

/* ---------- Controls ---------- */
.controls{display:flex;align-items:center;gap:10px;padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0;flex-wrap:wrap}
.search{position:relative;flex:1;min-width:240px;max-width:440px}
.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--faint)}
.search input{width:100%;padding:8px 12px 8px 33px;border:1px solid var(--line);border-radius:8px;background:var(--bg);transition:.15s;font-size:13px}
.search input:focus{outline:none;border-color:var(--brand-2);background:#fff;box-shadow:0 0 0 3px rgba(26,111,176,.1)}
.flt{display:flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12.5px;font-weight:600;color:var(--ink-soft);transition:.15s;white-space:nowrap}
.flt:hover{border-color:#c8d2de;background:#fafcfe}
.flt.has{border-color:var(--brand-2);color:var(--brand);background:var(--blue-bg)}
.flt svg{width:14px;height:14px;color:var(--muted)}
.flt.has svg{color:var(--brand-2)}
.flt select{border:none;background:none;font-weight:600;cursor:pointer;color:inherit;max-width:150px}
.flt select:focus{outline:none}
.ctrl-r{display:flex;align-items:center;gap:8px;margin-left:auto}
.btn{display:flex;align-items:center;gap:6px;padding:8px 13px;border-radius:8px;font-size:12.5px;font-weight:600;transition:.15s;border:1px solid transparent}
.btn svg{width:14px;height:14px}
.btn-ghost{border-color:var(--line);background:#fff;color:var(--ink-soft)}
.btn-ghost:hover{border-color:#c8d2de;background:#fafcfe}
.btn-pri{background:var(--accent);color:#fff;box-shadow:0 1px 2px rgba(232,119,46,.3)}
.btn-pri:hover{background:#d96a22}
.btn-brand{background:var(--brand);color:#fff}
.btn-brand:hover{background:#0c4a78}
.result-count{font-size:11.5px;color:var(--muted);font-weight:600;padding:0 2px}
.result-count b{color:var(--ink)}

/* ---------- Table ---------- */
.table-wrap{flex:1;overflow:auto;background:var(--panel);position:relative}
.pager{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;background:var(--panel);border-top:1px solid var(--line);min-height:46px}
.pager .pg-left,.pager .pg-right{display:flex;align-items:center;gap:6px}
.pg-size{border:1px solid var(--line);border-radius:7px;padding:6px 9px;font-size:12px;font-weight:600;color:var(--ink-soft);background:var(--panel);cursor:pointer}
.pg-size:focus{outline:none;border-color:var(--brand-2)}
.pg-btn{border:1px solid var(--line);border-radius:7px;padding:6px 11px;font-size:12px;font-weight:650;color:var(--ink-soft);background:var(--panel);transition:.12s}
.pg-btn:hover:not(:disabled){border-color:var(--brand-2);color:var(--brand-2);background:var(--blue-bg)}
.pg-btn:disabled{opacity:.4;cursor:not-allowed}
.pg-nums{display:flex;align-items:center;gap:3px;margin:0 4px}
.pg-num{min-width:30px;padding:6px 8px;border:1px solid transparent;border-radius:7px;font-size:12px;font-weight:650;color:var(--ink-soft);background:var(--panel);transition:.12s}
.pg-num:hover{background:var(--bg)}
.pg-num.on{background:var(--brand-2);color:#fff}
.pg-gap{color:var(--faint);font-size:12px;padding:0 2px}
@media(max-width:600px){.pg-nums .pg-num:not(.on){display:none}.pg-gap{display:none}}
table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px}
thead th{position:sticky;top:0;z-index:5;background:#f0f3f8;color:var(--ink-soft);font-weight:700;text-align:left;padding:9px 11px;white-space:nowrap;border-bottom:1.5px solid var(--line);border-right:1px solid var(--line-soft);font-size:11px;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;user-select:none}
thead th:hover{background:#e7ecf4}
thead th .th-in{display:flex;align-items:center;gap:5px}
thead th .sort{opacity:0;font-size:9px;transition:.15s}
thead th.sorted .sort{opacity:1;color:var(--brand-2)}
thead th:hover .sort{opacity:.4}
thead th.col-row{position:sticky;left:0;z-index:7;width:44px;min-width:44px;text-align:center;cursor:default}
thead th.col-trade{position:sticky;left:44px;z-index:7;box-shadow:2px 0 4px -2px rgba(0,0,0,.08)}

/* ---------- Per-column filter row ---------- */
thead tr.filter-row th{position:sticky;top:33px;z-index:6;background:#f7f9fc;padding:4px 6px;border-bottom:1.5px solid var(--line);border-right:1px solid var(--line-soft);cursor:default;text-transform:none;letter-spacing:0}
html[data-density="compact"] thead tr.filter-row th{top:29px}
html[data-density="spacious"] thead tr.filter-row th{top:37px}
thead tr.filter-row th.col-row{left:0;z-index:8;text-align:center}
thead tr.filter-row th.col-trade{left:44px;z-index:8;box-shadow:2px 0 4px -2px rgba(0,0,0,.08)}
.fcell{display:flex;align-items:center;gap:3px;position:relative}
.fcell input,.fcell select{width:100%;border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:11px;background:var(--panel);color:var(--ink);min-width:0;transition:.12s}
.fcell input::placeholder{color:var(--faint)}
.fcell input:focus,.fcell select:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 2px rgba(26,111,176,.12)}
.fcell input.act,.fcell select.act,.fcell .date-btn.act{border-color:var(--brand-2);background:var(--blue-bg)}
.fcell .mt{flex-shrink:0;width:22px;height:24px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:9px;font-weight:800;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.12s}
.fcell .mt:hover{border-color:var(--brand-2);color:var(--brand-2)}
.fcell .mt.act{background:var(--brand);color:#fff;border-color:var(--brand)}
.fcell .clr{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;background:var(--muted);color:#fff;font-size:10px;line-height:1;display:none;align-items:center;justify-content:center;cursor:pointer}
.fcell.has .clr{display:flex}
.fcell.has input,.fcell.has select{padding-right:20px;border-color:var(--brand-2);background:var(--blue-bg)}
.date-btn{width:100%;border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:11px;background:var(--panel);color:var(--muted);text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:.12s}
.date-btn:hover{border-color:var(--brand-2)}
.date-btn.has{border-color:var(--brand-2);background:var(--blue-bg);color:var(--brand);font-weight:600}

/* date filter popup */
.date-pop{position:fixed;z-index:55;background:var(--panel);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow-lg);width:280px;padding:13px;display:none}
.date-pop.open{display:block}
.date-pop h5{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}
.dp-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:11px}
.dp-modes button{padding:6px 4px;font-size:11px;font-weight:600;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink-soft);transition:.12s}
.dp-modes button:hover{border-color:var(--brand-2)}
.dp-modes button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.dp-body{display:flex;flex-direction:column;gap:8px}
.dp-body label{font-size:10.5px;font-weight:600;color:var(--muted)}
.dp-body input,.dp-body select{border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:12.5px;background:var(--panel);color:var(--ink);width:100%}
.dp-body input:focus,.dp-body select:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(26,111,176,.1)}
.dp-row{display:flex;gap:8px}
.dp-row>div{flex:1}
.dp-foot{display:flex;gap:8px;margin-top:12px}
.dp-foot button{flex:1;padding:8px;border-radius:8px;font-size:12px;font-weight:650;transition:.12s}
.dp-foot .clear{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft)}
.dp-foot .clear:hover{background:var(--bg)}
.dp-foot .apply{background:var(--brand);color:#fff}
.dp-foot .apply:hover{background:var(--brand-2)}

.filter-toggle{display:flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12.5px;font-weight:600;color:var(--ink-soft);transition:.15s}
.filter-toggle:hover{border-color:#c8d2de;background:#fafcfe}
.filter-toggle.on{border-color:var(--brand-2);color:var(--brand);background:var(--blue-bg)}
.filter-toggle svg{width:14px;height:14px}
.filter-toggle .cnt{background:var(--accent);color:#fff;font-size:10px;font-weight:800;padding:0 6px;border-radius:10px;min-width:16px;text-align:center}
.clear-all{display:flex;align-items:center;gap:5px;padding:7px 11px;border:1px solid var(--red-bg);border-radius:8px;background:var(--red-bg);color:var(--red);font-size:12px;font-weight:700;transition:.15s;white-space:nowrap}
.clear-all:hover{background:var(--red);color:#fff;border-color:var(--red)}
.clear-all svg{width:13px;height:13px}

/* ---------- Multi-select dropdown ---------- */
.ms{position:relative}
.ms-btn{display:flex;align-items:center;gap:6px;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:7px 10px;font-size:12.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.15s;white-space:nowrap;min-height:34px}
.ms-btn:hover{border-color:#c8d2de;background:#fafcfe}
.ms-btn.has{border-color:var(--brand-2);color:var(--brand);background:var(--blue-bg)}
.ms-btn .ms-ico{width:14px;height:14px;color:var(--muted);flex-shrink:0}
.ms-btn.has .ms-ico{color:var(--brand-2)}
.ms-btn .ms-lbl{flex:1;overflow:hidden;text-overflow:ellipsis;text-align:left}
.ms-btn .ms-cnt{background:var(--brand-2);color:#fff;font-size:10px;font-weight:800;padding:1px 6px;border-radius:10px;flex-shrink:0}
.ms-btn .ms-caret{width:13px;height:13px;color:var(--muted);flex-shrink:0;transition:transform .15s}
.ms.open .ms-caret{transform:rotate(180deg)}
/* compact variant for filter row */
.fcell .ms-btn{padding:4px 7px;font-size:11px;font-weight:500;min-height:0;border-radius:6px}
.fcell .ms-btn .ms-cnt{font-size:9px;padding:0 5px}
.ms-pop{position:fixed;z-index:56;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);width:240px;display:none;flex-direction:column;max-height:380px}
.ms-foot{display:flex;gap:6px;padding:7px 9px;border-top:1px solid var(--line-soft);flex-shrink:0;background:var(--panel)}
.ms-foot button{flex:1;font-size:11px;font-weight:700;padding:7px;border-radius:6px;cursor:pointer;transition:.12s}
.ms-foot .ms-cancel{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft)}
.ms-foot .ms-cancel:hover{border-color:var(--brand-2);color:var(--brand-2)}
.ms-foot .ms-apply{border:1px solid var(--brand);background:var(--brand);color:#fff}
.ms-foot .ms-apply:hover{filter:brightness(1.05)}
.ms-pop.open{display:flex}
.ms-search{padding:9px;border-bottom:1px solid var(--line-soft);position:relative;flex-shrink:0}
.ms-search input{width:100%;border:1px solid var(--line);border-radius:7px;padding:6px 9px 6px 28px;font-size:12px;background:var(--bg)}
.ms-search input:focus{outline:none;border-color:var(--brand-2);background:#fff}
.ms-search svg{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:13px;height:13px;color:var(--faint)}
.ms-bulk{display:flex;gap:6px;padding:7px 9px;border-bottom:1px solid var(--line-soft);flex-shrink:0}
.ms-bulk button{flex:1;font-size:10.5px;font-weight:700;padding:5px;border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);transition:.12s}
.ms-bulk button:hover{border-color:var(--brand-2);color:var(--brand-2)}
.ms-list{overflow-y:auto;padding:5px;flex:1}
.ms-opt{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:7px;font-size:12.5px;cursor:pointer;color:var(--ink-soft);transition:.1s;white-space:nowrap}
.ms-opt:hover{background:var(--bg)}
.ms-opt .box{width:16px;height:16px;border:1.5px solid var(--line);border-radius:5px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:.1s}
.ms-opt.on .box{background:var(--brand);border-color:var(--brand);color:#fff}
.ms-opt.on{color:var(--ink);font-weight:600}
.ms-opt .lbl{flex:1;overflow:hidden;text-overflow:ellipsis}
.ms-opt .n{font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.ms-empty{padding:18px;text-align:center;font-size:12px;color:var(--muted)}

/* type picker */
.type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
.type-card{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:11px;padding:15px;cursor:pointer;transition:.15s;background:var(--panel);text-align:left}
.type-card:hover{border-color:var(--brand-2);background:var(--blue-bg);transform:translateY(-1px)}
.type-card .ti{width:40px;height:40px;border-radius:10px;background:var(--blue-bg);color:var(--brand-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.type-card:hover .ti{background:var(--brand);color:#fff}
.type-card .ti svg{width:20px;height:20px}
.type-card .tt{font-size:14px;font-weight:700;color:var(--ink)}
.type-card .td{font-size:11.5px;color:var(--muted);margin-top:1px}
.cfg-link{display:flex;align-items:center;gap:7px;width:100%;justify-content:center;margin-top:16px;padding:10px;border:1px dashed var(--line);border-radius:9px;background:var(--bg);color:var(--ink-soft);font-size:12px;font-weight:600;transition:.15s}
.cfg-link:hover{border-color:var(--brand-2);color:var(--brand-2);background:var(--blue-bg)}
.cfg-link svg{width:14px;height:14px}
.cfg-tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.cfg-tab{padding:7px 13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:12.5px;font-weight:600;color:var(--ink-soft);transition:.12s}
.cfg-tab:hover{border-color:var(--brand-2)}
.cfg-tab.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.cfg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px 14px}
@media(max-width:600px){.cfg-grid{grid-template-columns:repeat(2,1fr)}}
.cfg-chk{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;font-size:12px;cursor:pointer;color:var(--ink-soft);transition:.1s}
.cfg-chk:hover{background:var(--bg)}
.cfg-chk input{width:15px;height:15px;accent-color:var(--brand);cursor:pointer;flex-shrink:0}
.cfg-chk.on{color:var(--ink);font-weight:600}
.cfg-chk.locked{opacity:.6;cursor:not-allowed}
.cfg-chk .grp{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--faint);margin-left:auto;letter-spacing:.04em}
.cfg-sec{grid-column:1/-1;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-2);padding:10px 0 3px;border-bottom:1px solid var(--line-soft);margin-bottom:3px}
.cfg-chk .cfg-rename{margin-left:auto;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--muted);cursor:pointer;opacity:0;transition:.12s;flex-shrink:0}
.cfg-chk:hover .cfg-rename{opacity:.7}
.cfg-chk .cfg-rename:hover{opacity:1;color:var(--brand);background:var(--bg);border-color:var(--line)}
.cfg-chk .cfg-rename svg{width:12px;height:12px;display:block}
.cfg-foot-extra{display:flex;justify-content:flex-start;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft)}
.cfg-add-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px dashed var(--brand-2);border-radius:8px;background:transparent;color:var(--brand);font-size:12.5px;font-weight:600;cursor:pointer;transition:.12s}
.cfg-add-btn:hover{background:var(--bg);border-style:solid}
.cfg-add-btn svg{width:13px;height:13px}
.lbl-edit{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;opacity:.5;vertical-align:middle;transition:.12s}
.lbl-edit:hover{opacity:1;color:var(--brand);background:var(--bg)}
.lbl-edit svg{display:block}
/* Drawer drag-and-drop affordances (leader edit mode) */
/* HOTFIX (Ritika smoothness): grip is now the sole drag handle and always visible.
   The row itself stays a normal label so the checkbox/input click works. */
.fld{position:relative}
.fld .fld-grip{position:absolute;top:6px;right:6px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;opacity:.45;transition:.12s;letter-spacing:-2px;line-height:1;user-select:none;cursor:grab;border-radius:5px;border:1px solid transparent;background:transparent}
.fld:hover .fld-grip{opacity:.85;background:var(--bg);border-color:var(--line-soft)}
.fld .fld-grip:hover{opacity:1;color:var(--brand);border-color:var(--line)}
.fld .fld-grip:active{cursor:grabbing}
.fld.drw-drag{opacity:.4}
.fld.drw-row-insert-before{box-shadow:inset 0 3px 0 0 var(--brand)}
.fld.drw-row-insert-after{box-shadow:inset 0 -3px 0 0 var(--brand)}
.dr-sec.drw-drop-target{outline:2px dashed var(--brand);outline-offset:-2px;border-radius:8px;background:rgba(20,107,75,.04)}
.dr-sec h4 .sec-hint{font-size:10px;font-weight:500;color:var(--muted);margin-left:8px;text-transform:none;letter-spacing:0}
/* Customize panel: search + select-all toolbar */
.cfg-tools{display:flex;align-items:center;gap:10px;margin:6px 0 10px;flex-wrap:wrap}
.cfg-search{flex:1;min-width:160px;position:relative}
.cfg-search input{width:100%;padding:7px 11px 7px 32px;border:1px solid var(--line);border-radius:8px;font-size:12.5px;background:var(--panel);color:var(--ink)}
.cfg-search input:focus{outline:none;border-color:var(--brand)}
.cfg-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:13px;height:13px;color:var(--muted)}
.cfg-bulk{display:inline-flex;gap:6px}
.cfg-bulk button{padding:6px 11px;border:1px solid var(--line);border-radius:7px;background:var(--panel);font-size:11.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.12s}
.cfg-bulk button:hover{border-color:var(--brand);color:var(--brand)}
/* Customize panel drag handle on each row */
/* HOTFIX (Ritika smoothness): the row label stays clickable for the checkbox;
   the grip is the sole drag handle and is clearly visible. */
.cfg-chk .cfg-grip{color:var(--muted);font-size:13px;opacity:.55;letter-spacing:-2px;line-height:1;flex-shrink:0;user-select:none;width:18px;height:22px;display:inline-flex;align-items:center;justify-content:center;text-align:center;cursor:grab;border-radius:4px;border:1px solid transparent}
.cfg-chk:hover .cfg-grip{opacity:.9;background:rgba(0,0,0,.04);border-color:var(--line-soft)}
.cfg-chk .cfg-grip:hover{opacity:1;color:var(--brand);border-color:var(--line)}
.cfg-chk .cfg-grip:active{cursor:grabbing}
.cfg-chk.cfg-drag{opacity:.4}
.cfg-sec.cfg-drop-target{background:rgba(20,107,75,.06);border-radius:6px}
.cfg-chk.cfg-hidden,.cfg-sec.cfg-hidden{display:none}
.cfg-sec{display:flex;align-items:center;gap:6px}
.cfg-sec .cfg-sec-name{flex:1;min-width:0}
/* Draggable section headers (leader-only): header itself can be reordered */
/* HOTFIX (Ritika smoothness): grip-only drag; section header is no longer draggable.
   Rename/delete buttons inside the header now reliably receive clicks. */
.cfg-sec{cursor:default}
.cfg-sec.cfg-sec-drag{opacity:.4}
.cfg-sec.cfg-sec-insert-before{box-shadow:inset 0 3px 0 0 var(--brand)}
.cfg-sec.cfg-sec-insert-after{box-shadow:inset 0 -3px 0 0 var(--brand)}
.cfg-sec .cfg-sec-grip{color:var(--muted);font-size:13px;opacity:.65;letter-spacing:-2px;line-height:1;flex-shrink:0;user-select:none;width:20px;height:22px;display:inline-flex;align-items:center;justify-content:center;text-align:center;margin-right:4px;cursor:grab;border-radius:4px;border:1px solid transparent}
.cfg-sec:hover .cfg-sec-grip{opacity:.9;background:rgba(0,0,0,.04);border-color:var(--line-soft)}
.cfg-sec .cfg-sec-grip:hover{opacity:1;color:var(--brand);border-color:var(--line)}
.cfg-sec .cfg-sec-grip:active{cursor:grabbing}
/* In-section row drop indicators */
.cfg-chk.cfg-row-insert-before{box-shadow:inset 0 2px 0 0 var(--brand)}
.cfg-chk.cfg-row-insert-after{box-shadow:inset 0 -2px 0 0 var(--brand)}
/* Move-to-section picker shown next to a search result */
.cfg-move-wrap{position:relative;margin-left:auto;flex-shrink:0;white-space:nowrap}
.cfg-move-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--line);border-radius:5px;background:var(--panel);font-size:10.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.12s;line-height:1.2}
.cfg-move-btn:hover{border-color:var(--brand);color:var(--brand)}
.cfg-move-btn svg{width:10px;height:10px}
.cfg-move-menu{position:fixed;z-index:9999;min-width:160px;max-height:240px;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:7px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:4px;display:none}
.cfg-move-menu.open{display:block}
.cfg-move-menu button{display:block;width:100%;text-align:left;padding:6px 9px;border:0;background:transparent;font-size:11.5px;color:var(--ink-soft);cursor:pointer;border-radius:5px;font-weight:500}
.cfg-move-menu button:hover{background:var(--bg);color:var(--brand)}
.cfg-move-menu button.current{color:var(--muted);cursor:default}
.cfg-move-menu button.current:hover{background:transparent;color:var(--muted)}
.cfg-sec-actions{display:inline-flex;gap:2px;opacity:0;transition:.12s}
.cfg-sec:hover .cfg-sec-actions{opacity:1}
.cfg-sec-btn{padding:3px 5px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:0;transition:.12s}
.cfg-sec-btn:hover{border-color:var(--line);color:var(--brand);background:var(--panel)}
.cfg-sec-btn.cfg-sec-del:hover{color:#b3261e;border-color:#f3c4c0;background:#fdecea}
.col-tools{display:flex;align-items:center;gap:10px;margin:0 0 10px;flex-wrap:wrap}
.col-tools .col-bulk{display:inline-flex;gap:6px;margin-left:auto}
.col-tools .col-bulk button{padding:6px 11px;border:1px solid var(--line);border-radius:7px;background:var(--panel);font-size:11.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.12s}
.col-tools .col-bulk button:hover{border-color:var(--brand);color:var(--brand)}
.col-tools .col-search{flex:1;min-width:160px;position:relative}
.col-tools .col-search input{width:100%;padding:7px 11px 7px 32px;border:1px solid var(--line);border-radius:8px;font-size:12.5px;background:var(--panel);color:var(--ink)}
.col-tools .col-search input:focus{outline:none;border-color:var(--brand)}
.col-tools .col-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:13px;height:13px;color:var(--muted)}
.col-chk.col-hidden{display:none}
tbody td{padding:7px 11px;border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis;color:var(--ink-soft);vertical-align:middle}
tbody tr{transition:background .1s}
tbody tr:hover td{background:#f0f6ff}
tbody tr.sel td{background:var(--blue-bg)}
td.col-row{position:sticky;left:0;z-index:3;background:var(--panel);text-align:center;color:var(--faint);font-variant-numeric:tabular-nums;font-size:11px;width:44px;min-width:44px}
tbody tr:hover td.col-row{background:#f0f6ff}
td.col-trade{position:sticky;left:44px;z-index:3;background:var(--panel);font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink);box-shadow:2px 0 4px -2px rgba(0,0,0,.08);cursor:pointer}
tbody tr:hover td.col-trade{background:#f0f6ff}
td.col-trade:hover{color:var(--brand-2);text-decoration:underline}
td.num{text-align:right;font-variant-numeric:tabular-nums}
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:20px;font-size:10.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap}
.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.b-open{background:var(--blue-bg);color:var(--blue)}
.b-disbursed{background:var(--green-bg);color:var(--green)}
.b-closed{background:var(--slate-bg);color:var(--ink-soft)}
.b-fell{background:var(--red-bg);color:var(--red)}
.b-na{background:var(--slate-bg);color:var(--muted)}
.tt-pill{font-size:10.5px;font-weight:600;color:var(--ink-soft);padding:1px 7px;border-radius:5px;background:var(--slate-bg)}

/* empty / loading */
.empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted)}
.empty>*{pointer-events:none}
.empty .empty-cta{pointer-events:auto}
.empty svg{width:46px;height:46px;opacity:.35}
.empty h3{font-size:15px;color:var(--ink-soft);font-weight:650}

/* ---------- Drawer (detail / edit) ---------- */
.drawer-scrim{position:fixed;inset:0;background:rgba(13,27,42,.35);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:.25s;z-index:40}
.drawer-scrim.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100vh;width:min(560px,94vw);background:var(--panel);box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);z-index:41;display:flex;flex-direction:column}
.drawer.open{transform:translateX(0)}
.dr-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:12px;flex-shrink:0;justify-content:flex-start;position:relative;padding-right:130px}
.dr-head .dr-back{order:0;flex-shrink:0;display:none;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink-soft);font-size:12px;font-weight:600;cursor:pointer;transition:.15s;align-self:flex-start}
.dr-head .dr-back:hover{border-color:var(--brand-2);color:var(--brand-2);background:var(--blue-bg)}
.dr-head .dr-back.show{display:inline-flex}
.dr-head .win-ctrls,.dr-head .x{order:99;flex-shrink:0}
.dr-head .dr-tcf{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:600}
.dr-head h2{font-size:18px;font-weight:750;letter-spacing:-.02em;margin-top:2px;line-height:1.25}
.dr-head .x{margin-left:auto;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted);background:var(--bg);flex-shrink:0;transition:.15s}
.dr-head .x:hover{background:var(--line);color:var(--ink)}
.dr-customize{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink-soft);font-size:12px;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap;flex-shrink:0}
.dr-customize:hover{border-color:var(--brand-2);color:var(--brand-2);background:var(--blue-bg)}
.dr-customize svg{flex-shrink:0}
.drawer.win.minimized .dr-customize{display:none !important}
#drCustomize + .win-ctrls,#drCustomize ~ .x{margin-left:0}
.dr-body{flex:1;overflow-y:auto;padding:6px 22px 22px}
.dr-sec{margin-top:18px}
.dr-sec h4{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-2);padding-bottom:7px;margin-bottom:4px;border-bottom:1px solid var(--line-soft)}
.fld{display:flex;flex-direction:column;gap:3px;padding:8px 0;border-bottom:1px solid var(--line-soft)}
.fld:last-child{border-bottom:none}
.fld label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.fld .val{font-size:13px;color:var(--ink);min-height:18px;font-weight:500}
.fld .val.locked-fld{background:var(--bg);border:1px dashed var(--line);border-radius:6px;padding:6px 8px;color:var(--muted);display:flex;align-items:center;gap:6px;cursor:not-allowed}
.fld .val.locked-fld .lock-ic{font-size:11px;opacity:.7}
.fld .val.empty-v{color:var(--faint);font-style:italic;font-weight:400}
.fld input,.fld select,.fld textarea{border:1px solid var(--line);border-radius:7px;padding:7px 10px;font-size:13px;background:#fff;transition:.15s;width:100%}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(26,111,176,.1)}
.fld textarea{resize:vertical;min-height:54px}
.fld.invalid input,.fld.invalid select{border-color:var(--red);box-shadow:0 0 0 3px rgba(192,57,43,.1)}
.fld .err{font-size:10.5px;color:var(--red);font-weight:600;display:none}
.fld.invalid .err{display:block}
.fld-req label::after{content:" *";color:var(--red)}
.dr-foot{padding:14px 22px;border-top:none;display:flex;align-items:center;gap:10px;flex-shrink:0;background:var(--bg);box-shadow:0 -1px 0 var(--line)}
.dr-foot .hint{font-size:11px;color:var(--muted);margin-right:auto}
.dr-foot .hint b{color:var(--green)}

/* ---------- Windowed dialog (new-deal full-screen / resizable / minimizable) ---------- */
.drawer.win{top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:min(1100px,94vw);height:min(88vh,900px);max-height:94vh;border-radius:14px;overflow:hidden;transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .2s;box-shadow:var(--shadow-lg);min-width:380px;min-height:200px}
.drawer.win.open{transform:translate(-50%,-50%)}
.drawer.win:not(.open){transform:translate(-50%,-50%) scale(.96);opacity:0;pointer-events:none}
.drawer.win.maximized{top:12px;left:12px;right:12px;bottom:12px;width:auto;height:auto;transform:none;max-height:none}
.drawer.win.maximized.open{transform:none}
.drawer.win.minimized{top:auto;bottom:0;left:50%;transform:translateX(-50%);width:min(440px,92vw);height:50px;min-height:50px;border-radius:12px 12px 0 0;cursor:pointer}
.drawer.win.minimized.open{transform:translateX(-50%)}
.drawer.win.minimized .dr-body,.drawer.win.minimized .dr-foot{display:none}
.drawer.win.minimized .dr-head{border-bottom:none;padding:0 110px 0 14px;height:50px;align-items:center}
.drawer.win.minimized .dr-head h2{font-size:14px;margin-top:0}
.drawer.win.minimized .dr-tcf{display:none}
/* when windowed, the form body uses a responsive 2-col grid for density */
.drawer.win .dr-body .dr-sec{margin-top:14px}
.drawer.win .dr-body .fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
@media(max-width:680px){.drawer.win .dr-body .fields-grid{grid-template-columns:1fr}}
.drawer.win.minimized + .drawer-scrim,.drawer-scrim.passthrough{background:transparent;backdrop-filter:none;pointer-events:none}
/* window control buttons - pinned to top-right of drawer header */
.win-ctrls{display:flex;align-items:center;gap:4px;flex-shrink:0;position:absolute;top:10px;right:14px;z-index:6}
.drawer.win.minimized .win-ctrls{top:10px;right:10px}
.win-ctrls button{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--muted);background:transparent;transition:.15s}
.win-ctrls button:hover{background:var(--bg);color:var(--ink)}
.win-ctrls button.close-b:hover{background:var(--red-bg);color:var(--red)}
.win-ctrls svg{width:15px;height:15px}
/* drag handle on header */
.drawer.win .dr-head{cursor:default}
.drawer.win .dr-head.draggable{cursor:move}
/* resize handle */
.win-resize{position:absolute;width:18px;height:18px;right:2px;bottom:2px;cursor:nwse-resize;z-index:5;color:var(--faint)}
.win-resize svg{width:100%;height:100%}
.drawer.win.maximized .win-resize,.drawer.win.minimized .win-resize{display:none}

/* ---------- Modal ---------- */
.modal-scrim{position:fixed;inset:0;background:rgba(13,27,42,.4);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:200;padding:24px}
.modal-scrim.open{display:flex}
.modal{background:var(--panel);border-radius:14px;box-shadow:var(--shadow-lg);width:min(620px,96vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;position:relative;resize:both;min-width:320px;min-height:200px;max-width:97vw}
/* Custom resize grip indicator (bottom-right corner) */
.modal::after{content:"";position:absolute;right:2px;bottom:2px;width:14px;height:14px;pointer-events:none;background:linear-gradient(135deg,transparent 0,transparent 45%,var(--line) 45%,var(--line) 55%,transparent 55%,transparent 70%,var(--line) 70%,var(--line) 80%,transparent 80%);opacity:.7;border-radius:0 0 12px 0}
.modal.maxed{resize:none}
.modal.maxed::after{display:none}
.modal.wide{width:min(760px,96vw)}
.modal.xl{width:min(1180px,97vw);max-height:92vh}
/* Maximized state: cover almost the full viewport. Toggled by .max-btn in header. */
.modal.maxed{width:97vw;height:94vh;max-height:94vh}
.modal-head .max-btn{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--muted);background:var(--bg);transition:.15s;border:none;cursor:pointer;margin-left:auto}
.modal-head .max-btn:hover{background:var(--line);color:var(--ink)}
.modal-head .max-btn + .x{margin-left:6px}
.modal-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.modal-head .modal-back{display:none;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink-soft);font-size:12px;font-weight:600;cursor:pointer;transition:.15s;flex-shrink:0;order:-1}
.modal-head .modal-back:hover{border-color:var(--brand-2);color:var(--brand-2);background:var(--blue-bg)}
.modal-head .modal-back.show{display:inline-flex}
.modal-head .modal-back svg{width:14px;height:14px}
.modal-head h3{font-size:16px;font-weight:750;letter-spacing:-.01em}
.modal-head .x{margin-left:auto;width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--muted);background:var(--bg);transition:.15s}
.modal-head .x:hover{background:var(--line)}
.modal-body{padding:18px 22px;overflow-y:auto}
.modal-foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;background:#fafcfe}

/* version timeline */
.ver-list{display:flex;flex-direction:column;gap:0}
.ver{display:flex;gap:13px;padding:13px 2px;border-bottom:1px solid var(--line-soft);position:relative}
.ver:last-child{border-bottom:none}
.ver .v-dot{width:11px;height:11px;border-radius:50%;background:var(--brand-2);margin-top:4px;flex-shrink:0;box-shadow:0 0 0 3px var(--blue-bg);position:relative;z-index:2}
.ver:not(:last-child)::before{content:"";position:absolute;left:5px;top:18px;bottom:-1px;width:1px;background:var(--line)}
.ver .v-body{flex:1;min-width:0}
.ver .v-act{font-size:13px;font-weight:650;color:var(--ink)}
.ver .v-meta{font-size:11px;color:var(--muted);margin-top:1px}
.ver .v-diff{font-size:11.5px;color:var(--ink-soft);margin-top:5px;background:var(--bg);border-radius:6px;padding:6px 9px;line-height:1.5}
.ver .v-diff .df{display:block}
.ver .v-diff .o{color:var(--red);text-decoration:line-through;opacity:.8}
.ver .v-diff .n{color:var(--green);font-weight:600}
.ver .v-restore{font-size:11px;font-weight:650;color:var(--green);padding:4px 10px;border-radius:6px;border:1px solid var(--green);background:#fff;align-self:flex-start;margin-top:6px;transition:.15s}
.ver .v-restore:hover{background:var(--green-bg);border-color:var(--green)}

/* columns toggle */
.col-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3px 18px}
.col-grid .col-sec{grid-column:1/-1;margin-top:10px}
.col-grid .col-sec:first-child{margin-top:0}
.col-grid .col-sec-h{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;padding:4px 8px 6px;border-bottom:1px solid var(--line);margin-bottom:6px}
.col-grid .col-sec .col-chk{display:inline-flex;width:calc(50% - 12px);margin-right:6px;vertical-align:top}
.col-grid .col-sec:has(.col-chk:not(.col-hidden) ~ .col-chk:not(.col-hidden)){}
.col-grid .col-sec.col-sec-empty{display:none}
.col-chk{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:7px;font-size:12.5px;cursor:pointer;transition:.12s;color:var(--ink-soft)}
.col-chk:hover{background:var(--bg)}
.col-chk input{width:15px;height:15px;accent-color:var(--brand);cursor:pointer}
.col-chk.on{color:var(--ink);font-weight:600}

/* setup steps */
#setupBody{display:block;width:100%}
.setup-step{display:block;position:relative;padding:14px 0 14px 38px;border-bottom:1px solid var(--line-soft);width:100%}
.setup-step:last-child{border-bottom:none}
.setup-step .n{position:absolute;left:0;top:14px;width:24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.setup-step .s-body{display:block;width:100%}
.setup-step h5{font-size:13.5px;font-weight:700;margin-bottom:4px}
.setup-step p{font-size:12.5px;color:var(--ink-soft);line-height:1.55}
.setup-step code{font-family:var(--mono);font-size:11px;background:var(--bg);padding:1px 5px;border-radius:4px;color:var(--brand)}
.code-box{position:relative;margin-top:8px;width:100%;max-width:100%}
.code-box pre{background:#0d1b2a;color:#d6e2f0;font-family:var(--mono);font-size:11px;line-height:1.55;padding:13px 14px;border-radius:9px;overflow-x:auto;max-height:200px;white-space:pre;max-width:100%}
.code-box .cp{position:absolute;top:8px;right:8px;font-size:10.5px;font-weight:650;padding:4px 9px;border-radius:6px;background:rgba(255,255,255,.12);color:#fff;transition:.15s}
.code-box .cp:hover{background:rgba(255,255,255,.24)}
.url-field{display:flex;gap:8px;margin-top:10px}
.url-field input{flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:12.5px;font-family:var(--mono)}
.url-field input:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(26,111,176,.1)}

/* toast */
.toast-wrap{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:2147483647;display:flex;flex-direction:column-reverse;gap:8px;align-items:center;pointer-events:none}
.toast-wrap .toast{pointer-events:auto}
.toast{display:flex;align-items:center;gap:9px;padding:11px 17px;border-radius:10px;background:var(--ink);color:#fff;font-size:13px;font-weight:600;box-shadow:var(--shadow-lg);animation:toastIn .3s cubic-bezier(.2,.8,.2,1);max-width:90vw}
.toast svg{width:16px;height:16px;flex-shrink:0}
.toast.ok{background:#0f5132} .toast.ok svg{color:#7fe6a8}
.toast.err{background:#7a1f17} .toast.err svg{color:#ffae9e}
.toast.warn{background:#7a5b12} .toast.warn svg{color:#ffd97a}
.toast .undo{margin-left:6px;font-weight:700;color:#ffdf9f;text-decoration:underline;cursor:pointer}
@keyframes toastIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* Skeleton rows */
.skel-row td{background:linear-gradient(90deg,var(--line-soft) 25%,var(--panel) 50%,var(--line-soft) 75%);background-size:200% 100%;animation:skelpulse 1.4s infinite}
@keyframes skelpulse{0%{background-position:200% 0}100%{background-position:-200% 0}}

@keyframes toastOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}
.toast.dying{animation:toastOut .25s cubic-bezier(.2,.8,.2,1) forwards}

.banner{background:var(--amber-bg);border-bottom:1px solid #f0dca8;padding:7px 18px;font-size:12px;color:var(--amber);display:flex;align-items:center;gap:8px;font-weight:600;flex-shrink:0}
.banner svg{width:15px;height:15px}
.banner .b-act{margin-left:auto;font-weight:700;text-decoration:underline;cursor:pointer}
.banner.hide{display:none}

/* ---------- Theme engine ---------- */
/* Themes override the :root tokens via [data-theme] on <html> */
html[data-theme="t_swiss"]{--bg:#ffffff;--panel:#ffffff;--ink:#111111;--ink-soft:#8a8a8a;--muted:#8a8a8a;--line:#e2e2e2;--line-soft:#e2e2e2;--brand:#111111;--brand-2:#FF5A1F;--accent:#FF5A1F;--blue-bg:#1f6feb1f;--green-bg:#127a3e1f;--red-bg:#d6202c1f;--amber-bg:#b06f001f;--slate-bg:#e2e2e2}
html[data-theme="t_editorial"]{--bg:#F4F1EA;--panel:#fffdf8;--ink:#1A1A17;--ink-soft:#7A746A;--muted:#7A746A;--line:#ded9cc;--line-soft:#ded9cc;--brand:#1A1A17;--brand-2:#2E7D5B;--accent:#C8893A;--blue-bg:#3a6b8a1f;--green-bg:#2E7D5B1f;--red-bg:#B0483F1f;--amber-bg:#C8893A1f;--slate-bg:#ded9cc}
html[data-theme="t_slate"]{--bg:#f1f5f9;--panel:#ffffff;--ink:#1e293b;--ink-soft:#64748b;--muted:#64748b;--line:#dce3ec;--line-soft:#dce3ec;--brand:#1e293b;--brand-2:#2563eb;--accent:#2563eb;--blue-bg:#2563eb1f;--green-bg:#16a34a1f;--red-bg:#dc26261f;--amber-bg:#d977061f;--slate-bg:#dce3ec}
html[data-theme="t_arctic"]{--bg:#fbfdff;--panel:#ffffff;--ink:#0f2235;--ink-soft:#5b7186;--muted:#5b7186;--line:#dde8f1;--line-soft:#dde8f1;--brand:#0f2235;--brand-2:#0ea5e9;--accent:#0284c7;--blue-bg:#0284c71f;--green-bg:#0d94881f;--red-bg:#e11d481f;--amber-bg:#ca8a041f;--slate-bg:#dde8f1}
html[data-theme="t_graphite"]{--bg:#fafafa;--panel:#ffffff;--ink:#222222;--ink-soft:#737373;--muted:#737373;--line:#e4e4e4;--line-soft:#e4e4e4;--brand:#222222;--brand-2:#404040;--accent:#525252;--blue-bg:#1d4ed81f;--green-bg:#15803d1f;--red-bg:#b91c1c1f;--amber-bg:#a162071f;--slate-bg:#e4e4e4}
html[data-theme="t_linen"]{--bg:#faf8f3;--panel:#ffffff;--ink:#33302a;--ink-soft:#8a8478;--muted:#8a8478;--line:#e7e2d6;--line-soft:#e7e2d6;--brand:#33302a;--brand-2:#9a6b3f;--accent:#5f7a6b;--blue-bg:#5a78911f;--green-bg:#5f7a6b1f;--red-bg:#a857511f;--amber-bg:#9a6b3f1f;--slate-bg:#e7e2d6}
html[data-theme="t_mint"]{--bg:#f4fbf8;--panel:#ffffff;--ink:#10302a;--ink-soft:#5d8077;--muted:#5d8077;--line:#d6ece3;--line-soft:#d6ece3;--brand:#10302a;--brand-2:#0f9d72;--accent:#0f9d72;--blue-bg:#0e74901f;--green-bg:#0f9d721f;--red-bg:#dc4d4d1f;--amber-bg:#c2890a1f;--slate-bg:#d6ece3}
html[data-theme="t_sand"]{--bg:#fcfaf6;--panel:#ffffff;--ink:#3a3228;--ink-soft:#8c7f6b;--muted:#8c7f6b;--line:#e8dfce;--line-soft:#e8dfce;--brand:#3a3228;--brand-2:#c2410c;--accent:#92400e;--blue-bg:#1d6a961f;--green-bg:#4d7c0f1f;--red-bg:#b91c1c1f;--amber-bg:#b453091f;--slate-bg:#e8dfce}
html[data-theme="t_royal"]{--bg:#f6f6fc;--panel:#ffffff;--ink:#1e1b4b;--ink-soft:#6b6b9a;--muted:#6b6b9a;--line:#e0e0f2;--line-soft:#e0e0f2;--brand:#1e1b4b;--brand-2:#4f46e5;--accent:#4f46e5;--blue-bg:#4f46e51f;--green-bg:#0596691f;--red-bg:#e11d481f;--amber-bg:#d977061f;--slate-bg:#e0e0f2}
html[data-theme="t_rose"]{--bg:#fdf8f8;--panel:#ffffff;--ink:#3a1f25;--ink-soft:#8a6b70;--muted:#8a6b70;--line:#eedede;--line-soft:#eedede;--brand:#3a1f25;--brand-2:#be123c;--accent:#9f1239;--blue-bg:#2563eb1f;--green-bg:#15803d1f;--red-bg:#be123c1f;--amber-bg:#b453091f;--slate-bg:#eedede}
html[data-theme="t_teal"]{--bg:#f3fafa;--panel:#ffffff;--ink:#0f2d2d;--ink-soft:#5a8080;--muted:#5a8080;--line:#d4ebeb;--line-soft:#d4ebeb;--brand:#0f2d2d;--brand-2:#0d9488;--accent:#0f766e;--blue-bg:#0e74901f;--green-bg:#0d94881f;--red-bg:#dc26261f;--amber-bg:#ca8a041f;--slate-bg:#d4ebeb}
html[data-theme="t_paper"]{--bg:#ffffff;--panel:#ffffff;--ink:#2b2b29;--ink-soft:#7d7d76;--muted:#7d7d76;--line:#ededea;--line-soft:#ededea;--brand:#2b2b29;--brand-2:#1a1a1a;--accent:#444;--blue-bg:#1565c01f;--green-bg:#2f7d321f;--red-bg:#c628281f;--amber-bg:#a171121f;--slate-bg:#ededea}
html[data-theme="t_sky"]{--bg:#f5f9ff;--panel:#ffffff;--ink:#13294a;--ink-soft:#5e7596;--muted:#5e7596;--line:#d8e7f7;--line-soft:#d8e7f7;--brand:#13294a;--brand-2:#1d6fe0;--accent:#1d6fe0;--blue-bg:#1d6fe01f;--green-bg:#1a8a4f1f;--red-bg:#d63a3a1f;--amber-bg:#c8860c1f;--slate-bg:#d8e7f7}
html[data-theme="t_forest"]{--bg:#f5f8f3;--panel:#ffffff;--ink:#1c2e18;--ink-soft:#5f7355;--muted:#5f7355;--line:#dae6d2;--line-soft:#dae6d2;--brand:#1c2e18;--brand-2:#3f7d20;--accent:#2f6314;--blue-bg:#2f6e8f1f;--green-bg:#3f7d201f;--red-bg:#b530301f;--amber-bg:#a8730a1f;--slate-bg:#dae6d2}
html[data-theme="t_mono"]{--bg:#f8f8f8;--panel:#ffffff;--ink:#161616;--ink-soft:#6f6f6f;--muted:#6f6f6f;--line:#e0e0e0;--line-soft:#e0e0e0;--brand:#161616;--brand-2:#000000;--accent:#000;--blue-bg:#1f5fd01f;--green-bg:#0f7a3a1f;--red-bg:#c116161f;--amber-bg:#8a6d001f;--slate-bg:#e0e0e0}
html[data-theme="t_neumorphic"]{--bg:#F0F3F8;--panel:#F0F3F8;--ink:#2B3A55;--ink-soft:#8492AC;--muted:#8492AC;--line:#dde3ec;--line-soft:#dde3ec;--brand:#2B3A55;--brand-2:#5B7CFA;--accent:#5B7CFA;--blue-bg:#5B7CFA1f;--green-bg:#2f9e7d1f;--red-bg:#e2607a1f;--amber-bg:#d99a2b1f;--slate-bg:#dde3ec}
html[data-theme="t_pastel"]{--bg:#FAFAFA;--panel:#ffffff;--ink:#3b3357;--ink-soft:#8b86a3;--muted:#8b86a3;--line:#e7e8ef;--line-soft:#e7e8ef;--brand:#3b3357;--brand-2:#7C5CFC;--accent:#0EA5E9;--blue-bg:#0284C71f;--green-bg:#0d94881f;--red-bg:#DB27771f;--amber-bg:#D977061f;--slate-bg:#e7e8ef}
html[data-theme="t_brutalist"]{--bg:#FFFDF7;--panel:#ffffff;--ink:#1c1c1c;--ink-soft:#555;--muted:#555;--line:#1c1c1c;--line-soft:#1c1c1c;--brand:#1c1c1c;--brand-2:#1c1c1c;--accent:#1c1c1c;--blue-bg:#1f5fd01f;--green-bg:#0f7a3a1f;--red-bg:#cc1f1f1f;--amber-bg:#9a7b001f;--slate-bg:#1c1c1c}
html[data-theme="t_blueprint"]{--bg:#eef3fb;--panel:#ffffff;--ink:#13345e;--ink-soft:#5a779a;--muted:#5a779a;--line:#cddff2;--line-soft:#cddff2;--brand:#13345e;--brand-2:#1b6fc4;--accent:#1b6fc4;--blue-bg:#1b6fc41f;--green-bg:#1a7d5a1f;--red-bg:#c93a3a1f;--amber-bg:#b67a0a1f;--slate-bg:#cddff2}
html[data-theme="t_midnight"]{--bg:#0B1020;--panel:#141B33;--ink:#e7edf7;--ink-soft:#7C89A8;--muted:#7C89A8;--line:#26304f;--line-soft:#26304f;--brand:#141B33;--brand-2:#5EE6C5;--accent:#5EE6C5;--blue-bg:#6aa6ff1f;--green-bg:#5EE6C51f;--red-bg:#FF6B811f;--amber-bg:#FFB4541f;--slate-bg:#26304f}
html[data-theme="t_midnight"] thead th{background:#141B33;color:#7C89A8}
html[data-theme="t_neonglass"]{--bg:#0E0E10;--panel:rgba(255,255,255,.04);--ink:#f3f0ff;--ink-soft:#9b93b8;--muted:#9b93b8;--line:rgba(177,76,255,.28);--line-soft:rgba(177,76,255,.28);--brand:rgba(255,255,255,.04);--brand-2:#B14CFF;--accent:#00E5FF;--blue-bg:#00E5FF1f;--green-bg:#00E5C71f;--red-bg:#FF4D8F1f;--amber-bg:#FFC53D1f;--slate-bg:rgba(177,76,255,.28)}
html[data-theme="t_neonglass"] thead th{background:rgba(255,255,255,.04);color:#9b93b8}
html[data-theme="t_aurora"]{--bg:#101826;--panel:#172033;--ink:#E7EDF5;--ink-soft:#8ea0bd;--muted:#8ea0bd;--line:#27324a;--line-soft:#27324a;--brand:#172033;--brand-2:#12D8B0;--accent:#1FA2FF;--blue-bg:#1FA2FF1f;--green-bg:#12D8B01f;--red-bg:#FF512F1f;--amber-bg:#FFD2001f;--slate-bg:#27324a}
html[data-theme="t_aurora"] thead th{background:#172033;color:#8ea0bd}
html[data-theme="t_emerald"]{--bg:#0A1F1C;--panel:#0F2D28;--ink:#F2E6C8;--ink-soft:#8FB5A9;--muted:#8FB5A9;--line:rgba(200,162,75,.28);--line-soft:rgba(200,162,75,.28);--brand:#0F2D28;--brand-2:#C8A24B;--accent:#C8A24B;--blue-bg:#6fb3c91f;--green-bg:#5fc99e1f;--red-bg:#e08a7a1f;--amber-bg:#C8A24B1f;--slate-bg:rgba(200,162,75,.28)}
html[data-theme="t_emerald"] thead th{background:#0F2D28;color:#8FB5A9}
html[data-theme="t_datadense"]{--bg:#0D1117;--panel:#161B22;--ink:#E6EDF3;--ink-soft:#8B949E;--muted:#8B949E;--line:#30363D;--line-soft:#30363D;--brand:#161B22;--brand-2:#58A6FF;--accent:#58A6FF;--blue-bg:#58A6FF1f;--green-bg:#3FB9501f;--red-bg:#F851491f;--amber-bg:#D299221f;--slate-bg:#30363D}
html[data-theme="t_datadense"] thead th{background:#161B22;color:#8B949E}
html[data-theme="t_carbon"]{--bg:#15171c;--panel:#1d2026;--ink:#e8eaed;--ink-soft:#9aa0a8;--muted:#9aa0a8;--line:#2d323a;--line-soft:#2d323a;--brand:#1d2026;--brand-2:#ff7a18;--accent:#ff7a18;--blue-bg:#5b9bd51f;--green-bg:#4caf721f;--red-bg:#e5604d1f;--amber-bg:#e0a13c1f;--slate-bg:#2d323a}
html[data-theme="t_carbon"] thead th{background:#1d2026;color:#9aa0a8}
html[data-theme="t_navygold"]{--bg:#0c1730;--panel:#13203f;--ink:#eaf0fb;--ink-soft:#8597bd;--muted:#8597bd;--line:#243760;--line-soft:#243760;--brand:#13203f;--brand-2:#e3b341;--accent:#e3b341;--blue-bg:#5b9bf01f;--green-bg:#52c79a1f;--red-bg:#ef6e7b1f;--amber-bg:#e3b3411f;--slate-bg:#243760}
html[data-theme="t_navygold"] thead th{background:#13203f;color:#8597bd}
html[data-theme="t_plum"]{--bg:#1a1126;--panel:#241634;--ink:#f0e9f7;--ink-soft:#a692bd;--muted:#a692bd;--line:#3a2752;--line-soft:#3a2752;--brand:#241634;--brand-2:#c084fc;--accent:#c084fc;--blue-bg:#8b9ef01f;--green-bg:#5dd6a01f;--red-bg:#f06a8f1f;--amber-bg:#f0b9551f;--slate-bg:#3a2752}
html[data-theme="t_plum"] thead th{background:#241634;color:#a692bd}
html[data-theme="t_ocean"]{--bg:#0a1a26;--panel:#102634;--ink:#e3f0f7;--ink-soft:#7fa3b8;--muted:#7fa3b8;--line:#1e3a4d;--line-soft:#1e3a4d;--brand:#102634;--brand-2:#2dd4bf;--accent:#38bdf8;--blue-bg:#38bdf81f;--green-bg:#2dd4bf1f;--red-bg:#fb71851f;--amber-bg:#fbbf241f;--slate-bg:#1e3a4d}
html[data-theme="t_ocean"] thead th{background:#102634;color:#7fa3b8}
html[data-theme="t_terminal"]{--bg:#0a0f0a;--panel:#0f160f;--ink:#c8f7c8;--ink-soft:#6e9a6e;--muted:#6e9a6e;--line:#1c2a1c;--line-soft:#1c2a1c;--brand:#0f160f;--brand-2:#39ff14;--accent:#39ff14;--blue-bg:#5bd6ff1f;--green-bg:#39ff141f;--red-bg:#ff5c5c1f;--amber-bg:#ffe14d1f;--slate-bg:#1c2a1c}
html[data-theme="t_terminal"] thead th{background:#0f160f;color:#6e9a6e}
html[data-theme="t_charcoal"]{--bg:#1f2023;--panel:#27282c;--ink:#e9eaec;--ink-soft:#9b9da3;--muted:#9b9da3;--line:#3a3b40;--line-soft:#3a3b40;--brand:#27282c;--brand-2:#7c9eff;--accent:#7c9eff;--blue-bg:#7c9eff1f;--green-bg:#5cc98a1f;--red-bg:#ec6a6a1f;--amber-bg:#e2b84c1f;--slate-bg:#3a3b40}
html[data-theme="t_charcoal"] thead th{background:#27282c;color:#9b9da3}
/* compact / spacious density */
html[data-density="compact"] tbody td{padding:4px 9px}
html[data-density="compact"]{font-size:12px}
html[data-density="spacious"] tbody td{padding:11px 14px}

/* ---------- Theme picker panel ---------- */
.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.theme-card{border:1.5px solid var(--line);border-radius:10px;padding:11px;cursor:pointer;transition:.15s;background:var(--panel);text-align:left}
.theme-card:hover{border-color:#c8d2de;transform:translateY(-1px)}
.theme-card.on{border-color:var(--accent);box-shadow:0 0 0 3px rgba(232,119,46,.12)}
.theme-card .sw{display:flex;gap:4px;margin-bottom:8px}
.theme-card .sw i{width:100%;height:22px;border-radius:5px;display:block}
.theme-card .t-name{font-size:12px;font-weight:700;color:var(--ink)}
.theme-card .t-desc{font-size:10.5px;color:var(--muted);margin-top:1px}
.opt-row{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.opt-group{flex:1;min-width:150px}
.opt-group h5{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}
.seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg button{flex:1;padding:7px 4px;font-size:11.5px;font-weight:600;color:var(--ink-soft);background:var(--panel);transition:.12s;border-right:1px solid var(--line)}
.seg button:last-child{border-right:none}
.seg button.on{background:var(--brand);color:#fff}

/* ---------- Upload / conflict ---------- */
.drop{border:2px dashed var(--line);border-radius:12px;padding:30px 20px;text-align:center;transition:.15s;cursor:pointer;background:var(--bg)}
.drop:hover,.drop.over{border-color:var(--brand-2);background:var(--blue-bg)}
.drop svg{width:38px;height:38px;color:var(--faint);margin-bottom:8px}
.drop h4{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:3px}
.drop p{font-size:12px;color:var(--muted)}
.drop .browse{color:var(--brand-2);font-weight:700;text-decoration:underline}
.up-summary{margin-top:14px;display:flex;flex-direction:column;gap:7px}
.up-stat{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:9px;background:var(--bg);font-size:12.5px}
.up-stat .ic{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.up-stat .ic svg{width:15px;height:15px}
.up-stat.new .ic{background:var(--green-bg);color:var(--green)}
.up-stat.upd .ic{background:var(--amber-bg);color:var(--amber)}
.up-stat.same .ic{background:var(--slate-bg);color:var(--muted)}
.up-stat b{color:var(--ink)}
.up-stat .gr{margin-left:auto;color:var(--muted);font-size:11.5px}

/* conflict review */
.cf-item{border:1px solid var(--line);border-radius:10px;padding:13px;margin-bottom:11px}
.cf-head{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.cf-head .tno{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--ink)}
.cf-head .who{font-size:12px;color:var(--ink-soft)}
.cf-cols{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.cf-side{border:1.5px solid var(--line);border-radius:9px;padding:10px;cursor:pointer;transition:.15s;position:relative}
.cf-side:hover{border-color:#c8d2de}
.cf-side.pick{border-color:var(--brand-2);background:var(--blue-bg)}
.cf-side .cf-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.cf-side .cf-lbl .tick{width:15px;height:15px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center}
.cf-side.pick .cf-lbl .tick{background:var(--brand-2);border-color:var(--brand-2);color:#fff}
.cf-side.pick .cf-lbl{color:var(--brand)}
.cf-field{font-size:11.5px;padding:2px 0;display:flex;gap:6px}
.cf-field .k{color:var(--muted);min-width:74px}
.cf-field .v{color:var(--ink);font-weight:500}
.cf-field.diff .v{color:var(--accent);font-weight:700}
.cf-allbar{display:flex;gap:8px;align-items:center;padding:10px 13px;background:var(--bg);border-radius:9px;margin-bottom:13px;font-size:12px;font-weight:600;color:var(--ink-soft)}
.cf-allbar .lk{color:var(--brand-2);font-weight:700;cursor:pointer;text-decoration:underline}

.banner.hide{display:none}

@media(max-width:720px){
  .kpi{min-width:108px;padding:9px 13px}
  .kpi .k-val{font-size:17px}
  .controls{gap:7px}
  .ctrl-r .btn span{display:none}
  .col-grid{grid-template-columns:1fr}
}

/* ===== auth / multi-user UI ===== */
.login-wrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0a3d62,#0c2a44);padding:20px;z-index:100}
.login-wrap::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.04) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}
.login-card{background:#fff;border-radius:16px;box-shadow:0 8px 40px rgba(13,27,42,.3);width:min(400px,94vw);padding:34px 30px}
.login-logo{margin-bottom:18px}.login-logo svg,.login-logo img{height:30px}
.login-card h1{font-size:20px;font-weight:750;letter-spacing:-.02em;color:var(--ink)}
.login-sub{font-size:13.5px;color:var(--ink-soft);margin:3px 0 20px}
.login-card label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);display:block;margin:13px 0 5px}
.login-card input{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px 13px;font-size:14px;background:var(--bg)}
.login-card input:focus{outline:none;border-color:var(--brand-2);background:#fff;box-shadow:0 0 0 3px rgba(26,111,176,.12)}
.login-go{width:100%;margin-top:20px;background:var(--accent);color:#fff;font-weight:700;font-size:14px;padding:12px;border-radius:9px;border:none}
.login-go:hover{background:#d96a22}.login-go:disabled{opacity:.6}
.login-err{background:var(--red-bg);color:var(--red);font-size:12.5px;font-weight:600;padding:10px 12px;border-radius:8px;margin-top:14px}
.rt-pill{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:20px;background:rgba(255,255,255,.12);color:#fff;transition:.3s}
.rt-pill.flash{background:rgba(127,216,168,.5)}
.rt-dot{width:7px;height:7px;border-radius:50%;background:#7fd8a8;box-shadow:0 0 0 0 rgba(127,216,168,.6);animation:rtp 2.4s infinite}
@keyframes rtp{0%{box-shadow:0 0 0 0 rgba(127,216,168,.5)}70%{box-shadow:0 0 0 6px rgba(127,216,168,0)}100%{box-shadow:0 0 0 0 rgba(127,216,168,0)}}
.who{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:#fff}
.role-badge{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:20px}
.role-leader{background:#f0a93a;color:#3a2400}.role-edit{background:#7fd8a8;color:#06351f}.role-view{background:rgba(255,255,255,.22);color:#fff}
.acct-row{display:grid;grid-template-columns:1.2fr 1.4fr .9fr .8fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:12.5px}
.acct-row .code{font-family:var(--mono);font-weight:700}
.acct-row.blocked{opacity:.5}
.acct-row select{border:1px solid var(--line);border-radius:6px;padding:5px 7px;font-size:12px}

/* ===== Accounts — redesigned (stats + filters + card grid + detail dialog) ===== */
.acct-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.acct-stat{background:var(--bg);border:1px solid var(--line-soft);border-radius:12px;padding:14px}
.acct-stat .lbl{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.acct-stat .val{font-size:22px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.acct-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.acct-search{flex:1;min-width:180px;position:relative}
.acct-search input{width:100%;padding:8px 12px 8px 32px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:var(--card)}
.acct-search svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--muted);width:14px;height:14px}
.acct-filters{display:flex;gap:6px;flex-wrap:wrap}
.acct-pill{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:12px;font-weight:600;cursor:pointer;color:var(--ink);transition:all .12s}
.acct-pill:hover{background:var(--bg)}
.acct-pill.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.acct-grid{display:block}
.acct-card{position:relative;border:1px solid var(--line-soft);background:var(--card);border-radius:var(--radius-card);padding:16px;cursor:pointer;transition:all .15s;overflow:hidden}
.acct-card:hover{border-color:var(--brand);box-shadow:0 4px 14px rgba(15,42,71,.08);transform:translateY(-1px)}
.acct-card.blocked{opacity:.62}
.acct-card.blocked::before{content:"BLOCKED";position:absolute;top:0;right:0;background:var(--red,#c0392b);color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:0 var(--radius-card) 0 var(--radius-sm);letter-spacing:.5px}
.acct-card-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.acct-card .avatar{width:42px;height:42px;font-size:15px;flex-shrink:0}
.acct-card .ac-name{font-weight:700;font-size:14px;color:var(--ink);line-height:1.2;margin-bottom:3px;word-break:break-word}
.acct-card .ac-role{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}
.acct-card .ac-role.leader{background:#fef3c7;color:#92400e}
.acct-card .ac-role.edit{background:#dbeafe;color:#1e40af}
.acct-card .ac-role.view{background:#e5e7eb;color:#4b5563}
.acct-card-meta{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:12px;word-break:break-word}
.acct-card-meta .code{font-family:var(--mono);font-weight:700;color:var(--ink);font-size:12px}
.acct-card-meta .mail{display:block;font-size:11.5px}
.acct-card-meta .mail.missing{color:var(--red,#c0392b);font-weight:600}
.acct-card-actions{display:flex;gap:6px;flex-wrap:wrap}
.acct-card-actions .mini-btn{flex:1;min-width:0;font-size:11px;padding:5px 8px;text-align:center}
/* User management table */
.acct-table-wrap{border:1px solid var(--line-soft);border-radius:var(--radius-card);background:var(--card);overflow-x:auto;max-width:100%}
.acct-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:auto}
@media (max-width:560px){ .acct-table{min-width:560px} }
.acct-table thead th{background:var(--bg);color:var(--muted);font-weight:600;font-size:11px;letter-spacing:.4px;text-transform:uppercase;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line-soft);white-space:nowrap;cursor:pointer;user-select:none;position:sticky;top:0;z-index:1}
.acct-table thead th:hover{background:var(--line-soft);color:var(--ink)}
.acct-table thead th .sort-ind{display:inline-block;margin-left:4px;opacity:.4;font-size:10px}
.acct-table thead th.sorted .sort-ind{opacity:1;color:var(--brand)}
.acct-table tbody td{padding:10px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.acct-table tbody tr:last-child td{border-bottom:none}
.acct-table tbody tr{cursor:pointer;transition:background .12s}
.acct-table tbody tr:hover{background:var(--bg)}
.acct-table tbody tr.blocked{opacity:.62}
.acct-table td.at-user{display:flex;align-items:center;gap:10px;min-width:0}
.acct-table td.at-user .avatar{width:34px;height:34px;font-size:13px;flex-shrink:0}
.acct-table td.at-user .at-name{font-weight:700;color:var(--ink);line-height:1.25}
.acct-table td.at-user .at-blocked{display:inline-block;margin-left:6px;background:#fee2e2;color:#991b1b;font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:999px;letter-spacing:.4px;vertical-align:middle}
.acct-table td.at-code{font-family:var(--mono);font-weight:700;color:var(--ink);font-size:12.5px;white-space:nowrap}
.acct-table td.at-mail{color:var(--muted);font-size:12px;word-break:break-all}
.acct-table td.at-mail.missing{color:var(--red,#c0392b);font-weight:600}
.acct-table .ac-role{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}
.acct-table .ac-role.leader{background:#fef3c7;color:#92400e}
.acct-table .ac-role.edit{background:#dbeafe;color:#1e40af}
.acct-table .ac-role.view{background:#e5e7eb;color:#4b5563}
.acct-table td.at-actions{text-align:right;white-space:nowrap}
.acct-table td.at-actions .mini-btn{font-size:11px;padding:5px 10px;margin-left:6px}
.acct-empty-msg{padding:24px;text-align:center;color:var(--muted)}
@media (max-width:720px){
  .acct-table thead{display:none}
  .acct-table tbody td{display:block;border-bottom:none;padding:4px 12px}
  .acct-table tbody tr{display:block;padding:10px 0;border-bottom:1px solid var(--line-soft)}
  .acct-table td.at-actions{text-align:left;padding-top:8px}
  .acct-table td.at-actions .mini-btn{margin-left:0;margin-right:6px}
}

/* DocuSign Hub */
.ds-tab{background:transparent;border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600;padding:5px 12px;border-radius:7px;cursor:pointer;transition:.12s}
.ds-tab:hover{background:var(--bg);color:var(--ink)}
.ds-tab.on{background:var(--brand-bg,var(--blue-bg,#eef4ff));color:var(--brand-2,#1e40af);border-color:var(--brand-2,#1e40af)}
.ds-table{width:100%;border-collapse:collapse;font-size:13px}
.ds-table thead th{background:var(--bg);color:var(--muted);font-weight:600;font-size:11px;letter-spacing:.4px;text-transform:uppercase;text-align:left;padding:10px 14px;border-bottom:1px solid var(--line-soft);white-space:nowrap;position:sticky;top:0;z-index:1;cursor:pointer;user-select:none}
.ds-table thead th:hover{background:var(--line-soft);color:var(--ink)}
.ds-table thead th .sort-ind{display:inline-block;margin-left:4px;opacity:.4;font-size:10px}
.ds-table thead th.sorted .sort-ind{opacity:1;color:var(--brand)}
.ds-table tbody td{padding:11px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.ds-table tbody tr{transition:background .12s}
.ds-table tbody tr:hover{background:var(--bg)}
.ds-table .ds-trade{font-family:var(--mono);font-weight:700;font-size:12px;color:var(--ink);white-space:nowrap}
.ds-table .ds-title{font-weight:600;color:var(--ink);max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-table .ds-sender{color:var(--muted);font-size:12px;white-space:nowrap}
.ds-table .ds-date{color:var(--muted);font-size:12px;white-space:nowrap}
.ds-table .ds-signers{color:var(--muted);font-size:12px}
.ds-table .ds-actions{text-align:right;white-space:nowrap}
.ds-table .ds-actions .mini-btn{margin-left:6px}
.ds-status{display:inline-block;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap}
.ds-sup-badge{display:inline-block;margin-top:3px;padding:1px 6px;border-radius:4px;font-size:9.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;line-height:1.4;cursor:help}
.ds-rec-badge{display:inline-block;margin-top:3px;margin-left:4px;padding:1px 6px;border-radius:4px;font-size:9.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;background:#e0f2fe;color:#075985;border:1px solid #7dd3fc;line-height:1.4;cursor:help}
.ds-row.ds-superseded td{opacity:.72}
.ds-status.sent,.ds-status.created{background:#fef3c7;color:#92400e}
.ds-status.delivered{background:#dbeafe;color:#1e40af}
.ds-status.completed{background:#d1fae5;color:#065f46}
.ds-status.declined,.ds-status.voided,.ds-status.autoresponded{background:#fee2e2;color:#991b1b}
.ds-status.partial{background:#e0e7ff;color:#3730a3}
.ds-status .ds-status-count{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:6px;font-size:9.5px;font-weight:700;letter-spacing:0;text-transform:none;background:rgba(0,0,0,.08);color:inherit;vertical-align:1px;cursor:help}
.ds-expand{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:1px solid var(--line);border-radius:5px;color:var(--muted);cursor:pointer;transition:transform .15s, background .12s, color .12s}
.ds-expand:hover{background:var(--bg);color:var(--ink);border-color:var(--ink-soft,#94a3b8)}
.ds-expand.on{transform:rotate(90deg);background:var(--brand-bg,#eef4ff);color:var(--brand-2,#1e40af);border-color:var(--brand-2,#1e40af)}
.ds-expand:disabled{opacity:.3;cursor:not-allowed}
.ds-trail-row td{border-bottom:1px solid var(--line)!important}
.ds-trail-row .mng-trail{margin:6px 0}
.ds-empty{padding:48px 24px;text-align:center;color:var(--muted)}
.ds-empty svg{width:48px;height:48px;color:var(--line);margin-bottom:12px}
@media (max-width:720px){
  .ds-table thead{display:none}
  .ds-table tbody td{display:block;border-bottom:none;padding:3px 14px}
  .ds-trail-row td{padding:0!important;background:var(--surface-2,#f7f9fc)!important}
  .ds-table tbody tr{display:block;padding:12px 0;border-bottom:1px solid var(--line-soft)}
  .ds-table .ds-actions{text-align:left;padding-top:8px}
  .ds-table .ds-actions .mini-btn{margin-left:0;margin-right:6px}
  .ds-table .ds-title{max-width:none;white-space:normal}
}

/* Detail dialog */
.acct-detail{display:flex;flex-direction:column;min-height:380px}
.acct-detail-head{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--line-soft);margin-bottom:14px}
.acct-detail-head .avatar{width:56px;height:56px;font-size:20px}
.acct-detail-head h4{margin:0;font-size:16px;color:var(--ink)}
.acct-detail-head .sub{font-size:12.5px;color:var(--muted);margin-top:3px;font-family:var(--mono)}
.acct-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line-soft);margin-bottom:14px}
.acct-tab{padding:9px 14px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .12s}
.acct-tab:hover{color:var(--ink)}
.acct-tab.on{color:var(--brand);border-bottom-color:var(--brand)}
.acct-tab-panel{display:none}
.acct-tab-panel.on{display:block}
.acct-empty-msg{color:var(--muted);font-size:12.5px;padding:18px 4px;text-align:center}
.mini-btn{font-size:11px;font-weight:700;padding:5px 9px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink-soft)}
.mini-btn:hover{border-color:var(--brand-2);color:var(--brand-2)}
.mini-btn.danger:hover{border-color:var(--red);color:var(--red);background:var(--red-bg)}
.tier{display:flex;gap:8px}.tier label{flex:1;border:1.5px solid var(--line);border-radius:9px;padding:9px;font-size:12px;font-weight:600;cursor:pointer;text-align:center;color:var(--ink-soft)}
.tier input{display:none}.tier label:has(input:checked){border-color:var(--brand-2);background:var(--blue-bg);color:var(--brand)}
.form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.form-row label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.form-row input{border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:13px}
.form-row input:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(26,111,176,.1)}

/* ===== row selection, drag, expand, export menu ===== */
.col-sel{width:34px;text-align:center;padding:0 4px!important}
.rowchk{width:15px;height:15px;cursor:pointer;accent-color:var(--brand-2)}
tr.row-sel td{background:var(--blue-bg)!important}
.col-row .rownum{display:inline-block}
.row-expand{display:none;border:none;background:none;cursor:pointer;color:var(--muted);font-size:13px;line-height:1}
tbody tr:hover .row-expand{display:inline-block} tbody tr:hover .rownum{display:none}
.th-grip{opacity:0;cursor:move;margin-right:4px;color:var(--faint);font-size:11px}
th:hover .th-grip{opacity:1}
th[draggable=true]{cursor:default}
.cell-txt{display:inline-block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
tr.expanded td{white-space:normal!important}
tr.expanded .cell-txt{max-width:none;white-space:normal;overflow:visible}
/* Inline cell editing (dashboard table) */
td.cell-edit{position:relative}
td.cell-edit.has-draft::before{content:'';position:absolute;top:4px;left:4px;width:7px;height:7px;border-radius:50%;background:#e4a000;box-shadow:0 0 0 2px var(--card);z-index:1;pointer-events:none}
td.cell-edit.has-draft{background:rgba(228,160,0,.06)}
td.cell-edit .cell-pencil{position:absolute;top:3px;right:4px;opacity:0;width:14px;height:14px;color:var(--muted);pointer-events:none;transition:opacity .12s ease}
tr:hover td.cell-edit .cell-pencil{opacity:.5}
td.cell-editing{outline:2px solid var(--accent);outline-offset:-2px;background:var(--panel);white-space:normal!important;padding:2px 6px!important}
td.cell-editing .cell-txt{max-width:none;white-space:normal;overflow:visible}
.cell-input{width:100%;box-sizing:border-box;border:none;outline:none;background:transparent;font:inherit;color:inherit;padding:4px 2px;min-height:24px}
.cell-input.cell-textarea{resize:vertical;min-height:48px}
td.cell-saving{opacity:.65}
td.cell-saving::after{content:'';position:absolute;top:50%;right:6px;width:10px;height:10px;margin-top:-5px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:cellspin .7s linear infinite}
@keyframes cellspin{to{transform:rotate(360deg)}}
.sel-bar{display:flex;align-items:center;gap:14px;padding:8px 18px;background:#eef5fb;border-bottom:1px solid var(--line);flex-shrink:0;font-size:12.5px}
.sel-bar #selCount{font-weight:700;color:var(--brand)}
.sel-bar button{font-size:12px;font-weight:600;color:var(--brand-2);background:#fff;border:1px solid var(--line);padding:5px 10px;border-radius:7px;cursor:pointer}
.sel-bar button:hover{border-color:var(--brand-2)}
.sel-bar .sel-hint{margin-left:auto;color:var(--muted);font-size:11.5px}
.export-wrap{position:relative}
.export-wrap .caret{margin-left:2px}
.export-menu{position:absolute;top:calc(100% + 6px);right:0;width:280px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);z-index:30;display:none;overflow:hidden}
.export-menu.open{display:block}
.exp-head{padding:11px 14px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line-soft)}
.exp-head b{color:var(--ink);font-weight:700}
.exp-formats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-soft);padding:1px}
.exp-formats button{background:#fff;border:none;padding:12px 10px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:2px}
.exp-formats button:hover{background:var(--blue-bg)}
.exp-formats .ef-i{font-size:16px}
.exp-formats .ef-s{font-size:10.5px;color:var(--muted);font-weight:500}
.exp-colhead{display:flex;align-items:center;justify-content:space-between;padding:9px 14px 5px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.exp-reset{font-size:11px;font-weight:600;color:var(--brand-2);background:none;border:none;cursor:pointer;text-transform:none;letter-spacing:0}
.exp-collist{max-height:200px;overflow-y:auto;padding:0 14px 12px}
.exp-col{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12.5px;color:var(--ink-soft);cursor:pointer}
.exp-col input{accent-color:var(--brand-2)}
.view-only-tag{font-size:12px;font-weight:600;color:var(--muted);background:var(--bg);padding:6px 12px;border-radius:7px;border:1px solid var(--line)}

/* ===== presence + avatars ===== */
.presence{display:flex;align-items:center;padding-left:6px}
.pavatar{position:relative;margin-left:-7px;transition:transform .15s}
.pavatar:hover{transform:translateY(-2px);z-index:5}
.pavatar.more{margin-left:-7px;background:rgba(255,255,255,.2);color:#fff;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border:2px solid var(--brand)}
.avatar{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;border-radius:50%;width:30px;height:30px;font-size:12px;letter-spacing:.02em}
.avatar.sm{width:26px;height:26px;font-size:10.5px;border:2px solid var(--brand)}
.pa-badge{position:absolute;bottom:-2px;right:-3px;background:var(--accent);color:#fff;width:13px;height:13px;border-radius:50%;font-size:9px;line-height:13px;text-align:center;font-weight:800;border:1.5px solid var(--brand)}

/* ===== multi-form tab bar ===== */
.form-tabs{position:fixed;bottom:0;left:0;right:0;display:flex;gap:2px;padding:0 10px;background:rgba(13,27,42,.96);z-index:39;height:38px;align-items:flex-end;overflow-x:auto}
.ftab{display:flex;align-items:center;gap:7px;background:#1c3550;color:#cdd8e6;border-radius:8px 8px 0 0;padding:7px 11px;font-size:12px;font-weight:600;cursor:pointer;max-width:200px;white-space:nowrap;border:1px solid transparent;border-bottom:none}
.ftab:hover{background:#26415f}
.ftab.active{background:#fff;color:var(--ink)}
.ft-dot{width:7px;height:7px;border-radius:50%;background:#7fd8a8;flex-shrink:0}
.ft-dot.new{background:var(--accent)}
.ft-label{overflow:hidden;text-overflow:ellipsis}
.ft-x{border:none;background:none;color:inherit;opacity:.55;cursor:pointer;font-size:12px;line-height:1;padding:2px}
.ft-x:hover{opacity:1}
/* drafts modal */
.draft-row{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line-soft)}
.draft-row .dr-main{flex:1;min-width:0}
.dr-trade{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--ink)}
.dr-trade .dr-type{font-family:var(--font);font-size:10.5px;font-weight:700;color:var(--brand-2);background:var(--blue-bg);padding:1px 7px;border-radius:10px;margin-left:6px}
.dr-sub{font-size:12.5px;color:var(--ink-soft);margin-top:2px}
.dr-meta{font-size:11px;color:var(--muted);margin-top:2px}
.dr-actions{display:flex;gap:6px;flex-shrink:0}

/* ===== appearance dropdowns ===== */
.appearance-rows{display:flex;flex-direction:column;gap:16px;padding:4px 2px}
.app-row{display:flex;align-items:center;justify-content:space-between;gap:18px}
.app-row>label{font-size:13px;font-weight:600;color:var(--ink-soft);flex-shrink:0}
.app-row select{flex:1;max-width:330px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font-size:13px;font-weight:500;cursor:pointer}
.theme-pick{display:flex;align-items:center;gap:10px;flex:1;max-width:380px;justify-content:flex-end}
.theme-sw{display:flex;gap:3px;flex-shrink:0}
.theme-sw i{width:16px;height:16px;border-radius:4px;display:block;border:1px solid rgba(0,0,0,.12)}

/* ===== profile photo ===== */
.avatar.xs{width:22px;height:22px;font-size:9px;border:none;margin-right:6px;vertical-align:middle}
.avatar.lg{width:96px;height:96px;font-size:34px;border:3px solid var(--line)}
.profile-photo-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;padding:10px 0}
/* Profile photo crop modal */
.crop-stage{position:relative;width:320px;height:320px;margin:0 auto;background:#f3f4f6;border-radius:10px;overflow:hidden;cursor:grab;user-select:none;touch-action:none}
.crop-stage:active{cursor:grabbing}
.crop-stage canvas{display:block;width:320px;height:320px}
.crop-mask{position:absolute;inset:0;pointer-events:none;box-shadow:0 0 0 9999px rgba(0,0,0,.5) inset;border-radius:10px}
.crop-mask::before{content:"";position:absolute;left:32px;top:32px;width:256px;height:256px;border-radius:50%;box-shadow:0 0 0 9999px rgba(0,0,0,.55);border:2px solid #fff}
.crop-controls{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.crop-controls label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:10px}
.crop-controls input[type=range]{flex:1}
.crop-controls .hint{font-size:11.5px;color:var(--muted);margin:0;text-align:center}
.profile-actions{display:flex;gap:8px}
#myAvatarBtn{display:inline-flex;vertical-align:middle}

/* ===== Profile dropdown card (header avatar menu) ===== */
.profile-menu-wrap{position:relative;display:flex;align-items:center;flex-shrink:0}
.profile-trigger{display:flex;align-items:center;gap:8px;padding:5px 11px 5px 5px;border-radius:24px;background:rgba(255,255,255,.10);transition:.15s;cursor:pointer;color:#fff;font-size:12.5px;font-weight:600;flex-shrink:0;white-space:nowrap}
.profile-trigger:hover{background:rgba(255,255,255,.18)}
.profile-trigger .pt-avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.35);flex-shrink:0}
/* Force the inner avatar to fill the circular frame, regardless of the size class (xs/sm/md) it was rendered with. */
.profile-trigger .pt-avatar .avatar,
.profile-trigger .pt-avatar .avatar.xs,
.profile-trigger .pt-avatar .avatar.sm,
.profile-trigger .pt-avatar .avatar.lg{width:100%;height:100%;border:none;font-size:11px;background-size:cover;background-position:center;margin:0}
.profile-trigger .pt-name{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-trigger .pt-caret{width:13px;height:13px;opacity:.85;transition:transform .15s}
.profile-menu-wrap.open .profile-trigger{background:rgba(255,255,255,.22)}
.profile-menu-wrap.open .pt-caret{transform:rotate(180deg)}

.profile-card{position:absolute;top:calc(100% + 10px);right:0;width:320px;background:#3a3f47;color:#fff;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.32),0 2px 8px rgba(0,0,0,.18);overflow:hidden;z-index:1200;opacity:0;pointer-events:none;transform:translateY(-6px) scale(.98);transition:opacity .15s,transform .15s}
.profile-menu-wrap.open .profile-card{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
.profile-card .pc-hero{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 18px 18px;background:linear-gradient(180deg,#3a3f47,#363a41)}
.profile-card .pc-photo{width:108px;height:108px;border-radius:50%;overflow:hidden;background:rgba(255,255,255,.10);border:3px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center}
.profile-card .pc-photo .avatar{width:100%;height:100%;border:none;font-size:36px}
.profile-card .pc-photo img{width:100%;height:100%;object-fit:cover;display:block}
.profile-card .pc-name{font-size:18px;font-weight:700;text-align:center;letter-spacing:-.01em}
.profile-card .pc-date{font-size:12.5px;color:rgba(255,255,255,.7);font-weight:500}
.profile-card .pc-role{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:20px;background:var(--accent);color:#fff;margin-top:2px}
.profile-card .pc-rows{padding:6px 8px;background:#2f3239}
.profile-card .pc-row{display:flex;align-items:center;gap:11px;width:100%;padding:11px 13px;border-radius:8px;background:transparent;color:#fff;font-size:13px;font-weight:600;text-align:left;transition:.12s;cursor:pointer;border:none}
.profile-card .pc-row:hover{background:rgba(255,255,255,.08)}
.profile-card .pc-row svg{width:17px;height:17px;flex-shrink:0;opacity:.85}
.profile-card .pc-foot{display:flex;gap:10px;padding:13px 16px;background:#2f3239;border-top:1px solid rgba(255,255,255,.08)}
.profile-card .pc-foot .pc-btn{flex:1;padding:10px 12px;border-radius:9px;font-size:13px;font-weight:700;cursor:pointer;transition:.12s;border:none;display:flex;align-items:center;justify-content:center;gap:7px}
.profile-card .pc-foot .pc-btn.dark{background:#1a1b1f;color:#fff}
.profile-card .pc-foot .pc-btn.dark:hover{background:#0f1013}
.profile-card .pc-foot .pc-btn.danger{background:#e8332e;color:#fff}
.profile-card .pc-foot .pc-btn.danger:hover{background:#d62a25}
@media (max-width:560px){.profile-card{width:280px;right:-6px}}

/* ===== team chat ===== */
.chat-badge{position:absolute;top:-5px;right:-5px;background:#e8332e;color:#fff;min-width:18px;height:18px;border-radius:9px;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 5px;border:2px solid var(--brand);box-shadow:0 0 0 0 rgba(232,51,46,.5);animation:chatPulse 2s infinite}
@keyframes chatPulse{0%{box-shadow:0 0 0 0 rgba(232,51,46,.5)}70%{box-shadow:0 0 0 6px rgba(232,51,46,0)}100%{box-shadow:0 0 0 0 rgba(232,51,46,0)}}
.chat-scrim{position:fixed;inset:0;background:rgba(13,27,42,.35);opacity:0;pointer-events:none;transition:opacity .2s;z-index:60}
.chat-scrim.open{opacity:1;pointer-events:auto}
.chat-panel{position:fixed;top:0;right:0;height:100%;width:min(420px,96vw);background:var(--panel);border-left:1px solid var(--line);box-shadow:-8px 0 30px rgba(0,0,0,.12);transform:translateX(100%);transition:transform .22s;z-index:61;display:flex;flex-direction:column}
.chat-panel.open{transform:none}
.chat-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.chat-head h3{margin:0;font-size:15px;color:var(--ink)}
.chat-sub{font-size:11.5px;color:var(--muted);margin-top:2px}
.chat-head .x{border:none;background:none;cursor:pointer;color:var(--muted)}
.chat-msgs{flex:1;overflow-y:auto;padding:14px 14px 8px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.chat-empty{text-align:center;color:var(--muted);font-size:13px;margin:auto}
.chat-day{align-self:center;font-size:11px;color:var(--muted);background:var(--panel);padding:2px 10px;border-radius:10px;margin:8px 0;border:1px solid var(--line-soft)}
.cmsg{display:flex;gap:8px;align-items:flex-end;max-width:86%}
.cmsg.mine{align-self:flex-end;flex-direction:row-reverse}
.cm-bubble{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:7px 11px;min-width:0}
.cmsg.mine .cm-bubble{background:var(--brand-2);border-color:var(--brand-2);color:#fff}
.cmsg.tagged .cm-bubble{box-shadow:0 0 0 2px var(--accent)}
.cm-name{font-size:11px;font-weight:700;color:var(--brand-2);margin-bottom:2px}
.cm-text{font-size:13.5px;color:var(--ink);word-wrap:break-word;line-height:1.4}
.cmsg.mine .cm-text{color:#fff}
.cm-time{font-size:10px;color:var(--muted);margin-top:3px}
.cmsg.mine .cm-time{color:rgba(255,255,255,.8)}
.cm-del{cursor:pointer;text-decoration:underline}
.cm-mention{background:var(--amber-bg);color:var(--accent);font-weight:700;padding:0 3px;border-radius:4px}
.cmsg.mine .cm-mention{background:rgba(255,255,255,.25);color:#fff}
.chat-input-wrap{position:relative;border-top:1px solid var(--line);padding:10px 12px;background:var(--panel)}
.chat-input-row{display:flex;align-items:flex-end;gap:8px}
#chatInput{flex:1;resize:none;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:13.5px;font-family:inherit;background:var(--bg);color:var(--ink);max-height:120px}
.chat-send{background:var(--brand-2);color:#fff;border:none;width:38px;height:38px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.chat-emoji-btn{background:none;border:1px solid var(--line);border-radius:10px;width:38px;height:38px;cursor:pointer;font-size:18px;flex-shrink:0}
.mention-pop{position:absolute;bottom:64px;left:12px;right:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);max-height:220px;overflow-y:auto;z-index:5}
.mention-item{display:flex;align-items:center;gap:8px;padding:8px 11px;cursor:pointer;font-size:13px}
.mention-item:hover{background:var(--blue-bg)}
.mention-item .mi-code{margin-left:auto;font-size:11px;color:var(--muted);font-family:var(--mono)}
.emoji-pop{position:absolute;bottom:64px;left:12px;width:280px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);padding:8px;display:grid;grid-template-columns:repeat(8,1fr);gap:2px;z-index:5}
.emoji-pop button{border:none;background:none;font-size:18px;cursor:pointer;padding:4px;border-radius:6px}
.emoji-pop button:hover{background:var(--blue-bg)}

.cm-seen{font-size:10px;color:var(--brand-2);margin-top:3px;font-weight:600}
.cmsg.mine .cm-seen{color:rgba(255,255,255,.9);text-align:right}
.name-edit{border:none;background:none;cursor:pointer;color:var(--muted);font-size:12px;padding:0 2px;opacity:.6}
.name-edit:hover{opacity:1;color:var(--brand-2)}

/* ===== task assignments ===== */
.assign-btn{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important;font-weight:700!important}
.task-tabs{display:flex;gap:2px;padding:0 18px;border-bottom:1px solid var(--line)}
.task-tabs button{border:none;background:none;padding:10px 14px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}
.task-tabs button.on{color:var(--brand-2);border-bottom-color:var(--brand-2)}
.task-row{display:flex;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line-soft);align-items:flex-start}
.task-row.st-completed{opacity:.72}
.t-pri{width:5px;border-radius:3px;align-self:stretch;flex-shrink:0}
.t-pri.p-high{background:#e8332e}.t-pri.p-normal{background:#e8a23a}.t-pri.p-low{background:#1c8c5a}
.t-main{flex:1;min-width:0}
.t-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.t-trade{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--brand-2);cursor:pointer}
.t-trade:hover{text-decoration:underline}
.t-status{font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:10px}
.t-status.s-open{background:var(--blue-bg);color:var(--brand-2)}
.t-status.s-in_progress{background:var(--amber-bg);color:#b06f00}
.t-status.s-completed{background:var(--green-bg);color:#1c8c5a}
.t-pri-lbl{font-size:10.5px;color:var(--muted);display:flex;align-items:center;gap:5px}
.t-pri-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}
.t-pri-dot.p-high{background:var(--red)}.t-pri-dot.p-normal{background:var(--amber)}.t-pri-dot.p-low{background:var(--green)}
.t-instr{font-size:13px;color:var(--ink);margin-top:4px}
.t-meta{font-size:11.5px;color:var(--muted);margin-top:3px}
.t-remark{font-size:12.5px;color:var(--ink-soft);margin-top:5px;background:var(--green-bg);padding:6px 9px;border-radius:8px}
.t-remark .t-when{color:var(--muted);font-size:10.5px}
.t-actions{display:flex;gap:5px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;max-width:220px}
.mini-btn.go{background:var(--green-bg);color:#1c8c5a;border-color:#1c8c5a}
.task-pri{font-size:11px;padding:4px 6px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink)}
/* Claim-flow pills + row states */
.task-pill{font-size:10px;font-weight:800;letter-spacing:.4px;padding:2px 8px;border-radius:9px;text-transform:uppercase;line-height:1.55;white-space:nowrap;border:1px solid transparent}
.task-pill.new{background:#eef6ff;color:#0a58ca;border-color:#bcd9fb}
.task-pill.mine{background:#e8f6ee;color:#1c8c5a;border-color:#b3e0c4}
.task-pill.taken{background:#f3f1ff;color:#5a48b3;border-color:#d4ccfb}
.task-row.is-auto{background:linear-gradient(180deg,rgba(13,110,253,.025) 0%,transparent 38px)}
.task-row.is-taken-other{opacity:.72}
.task-row.is-taken-other .t-actions{filter:saturate(.4)}
.as-deal-count{font-weight:700;font-size:13px;color:var(--ink);margin-bottom:6px}
.as-deal-list{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}
.as-chip{font-family:var(--mono);font-size:11px;background:var(--blue-bg);color:var(--brand-2);padding:3px 8px;border-radius:8px;font-weight:600}
.as-chip.more{background:var(--slate-bg);color:var(--muted)}
.as-people{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto;border:1px solid var(--line);border-radius:9px;padding:9px 11px}
.as-person{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);cursor:pointer}
.as-person input{accent-color:var(--brand-2)}
.as-person .mi-code{margin-left:auto;font-size:10.5px;color:var(--muted);font-family:var(--mono)}

.t-pending{color:#b06f00;font-weight:700}
.t-took{color:#1c8c5a;font-weight:700}

/* spinner used for async buttons (DocuSign send, etc.) */
@keyframes sy-spin{ to{ transform:rotate(360deg); } }
.sy-spin{ transform-origin:center; }

/* ===== TRS modal chrome ===== */
.trs-modal{width:min(1060px,98vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.trs-toolbar{display:flex;gap:0;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:3px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.01)}
/* Title pill sits inside the toolbar as the first section, divided from action sections. Same height + text size as buttons so the whole bar reads as ONE clean toolbar. */
.trs-toolbar .trs-title-pill{height:32px;display:inline-flex;align-items:center;padding:0 14px;font-size:12.5px;font-weight:700;letter-spacing:0;color:var(--ink);border-radius:7px;font-family:var(--mono,Menlo,Consolas,monospace)}
.trs-toolbar .trs-title-pill #trsTrade{margin-left:4px;font-weight:700;color:var(--ink)}
/* When toolbar holds the title, modal-head no longer needs its own H3 — toolbar is centered horizontally */
.trs-modal-head{justify-content:center}
.trs-modal-head .trs-toolbar{flex:0 1 auto;max-width:100%;flex-wrap:wrap;margin:0 auto}
.trs-toolbar .btn{min-width:108px;height:32px;padding:0 12px;font-size:12.5px;font-weight:600;border-radius:7px;white-space:nowrap;justify-content:center;border:none;box-shadow:none}
.trs-toolbar .btn-ghost{background:transparent;color:var(--ink)}
.trs-toolbar .btn-ghost:hover{background:var(--blue-bg);color:var(--brand-2)}
/* Letter PDF / Legal PDF download buttons now match Save/Send/Letter/Legal (ghost style) for visual consistency */
.trs-toolbar .btn-brand{background:transparent;color:var(--ink);border:none}
.trs-toolbar .btn-brand:hover{background:var(--blue-bg);color:var(--brand-2)}
.trs-toolbar .trs-divider{width:1px;align-self:stretch;background:var(--line);margin:4px 4px}
.trs-toolbar .x{width:32px;height:32px;border-radius:7px;margin-left:2px;background:transparent;border:none;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.trs-toolbar .x:hover{background:var(--red-bg);color:var(--red)}
.trs-hint{font-size:11.5px;color:var(--muted);padding:6px 20px;border-bottom:1px solid var(--line-soft)}
.trs-body{overflow:auto;min-height:0;background:var(--stage-bg);padding:22px;display:flex;justify-content:center;align-items:flex-start}

.trs-title-in{flex:1;border:1px solid var(--line);border-radius:7px;padding:6px 10px;font-size:13px;background:var(--panel);color:var(--ink);font-weight:600}
.trs-hint{display:flex;align-items:center;gap:10px}
.trs-hint-note{font-size:11px;color:var(--muted);white-space:nowrap}
.trs-page-pad{background:#fff;padding:34px 38px;box-shadow:0 6px 26px rgba(0,0,0,.3)}
.trs-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid var(--line-soft);cursor:pointer;transition:.1s;border-radius:6px}
.trs-item:hover{background:var(--bg)}
.trs-item b{font-size:13.5px;color:var(--ink)}
.trs-item-meta{font-size:11.5px;color:var(--muted);margin-top:2px}

.sg-pill{font-size:10px;font-weight:800;padding:2px 8px;border-radius:9px;margin-left:6px;vertical-align:middle}
.sg-sent{background:var(--blue-bg);color:var(--brand-2)}
.sg-partial{background:var(--amber-bg);color:#b06f00}
.sg-done{background:var(--green-bg);color:#1c8c5a}
.sg-bad{background:var(--red-bg);color:#c0392b}
.sign-note{font-size:12px;color:var(--muted);background:var(--blue-bg);padding:9px 12px;border-radius:8px;line-height:1.45}

.ss-row{display:flex;gap:7px;align-items:center;margin-bottom:7px}
.ss-row .ssn{flex:1.1}.ss-row .sse{flex:1.4}
.ss-row input{border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:13px;background:var(--panel);color:var(--ink)}
.ss-num{font-size:11px;font-weight:800;color:var(--muted);width:14px;text-align:center}
.trs-sig-ctl{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);white-space:nowrap}

.trs-pop{position:fixed;z-index:100000;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 34px rgba(0,0,0,.25);max-height:280px;overflow-y:auto;min-width:210px;padding:4px}
.trs-pop .opt{padding:7px 13px;font-size:12.5px;color:var(--ink);cursor:pointer;border-radius:7px}
.trs-pop .opt:hover{background:var(--blue-bg);color:var(--brand-2)}
.trs-pop .opt.cur{font-weight:800;color:var(--brand-2)}
.trs-pop .dpop{padding:9px}
.trs-pop .dpop input[type=date]{border:1px solid var(--line);border-radius:7px;padding:6px 9px;font-size:13px;background:var(--panel);color:var(--ink);width:100%}
.trs-pop .dpop-btns{display:flex;gap:6px;margin-top:8px;justify-content:flex-end}

.mng-sum{font-size:13px;color:var(--ink);padding:10px 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f7faff 0%,#fafcfe 100%);border-radius:8px;margin-bottom:14px;position:sticky;top:0;z-index:3;box-shadow:0 1px 2px rgba(0,0,0,.03)}
/* Recipient cards — grid layout that breathes at wider widths and stacks on narrow screens. */
.mng-recipients{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:10px;margin-bottom:6px}
.mng-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fdfefe;transition:.15s}
.mng-card:hover{border-color:var(--brand-2);box-shadow:0 1px 4px rgba(13,71,161,.06)}
.mng-card.is-signed{background:linear-gradient(180deg,#f4fbf6,#fdfefe);border-color:#cce7d6}
.mng-card.is-declined{background:linear-gradient(180deg,#fef4f4,#fdfefe);border-color:#f3c2c2}
.mng-card.is-pending{background:linear-gradient(180deg,#fffaf0,#fdfefe);border-color:#f1dba4}
/* Recipients TABLE (current layout) — matches audit trail styling */
.mng-recip{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:10px;table-layout:auto}
.mng-recip th{text-align:left;padding:7px 9px;background:#f7f9fc;color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-bottom:1.5px solid var(--line);white-space:nowrap}
.mng-recip td{padding:8px 9px;border-bottom:1px solid var(--line-soft);vertical-align:middle;color:var(--ink)}
.mng-recip tr:last-child td{border-bottom:none}
.mng-recip tr.is-signed{background:#f7fbf8}
.mng-recip tr.is-declined{background:#fdf6f6}
.mng-recip tr.is-pending{background:#fffcf4}
.mng-recip .signer{display:flex;align-items:center;gap:9px;min-width:0}
.mng-recip .signer .nm{font-weight:700;color:var(--ink);font-size:12.5px;line-height:1.25;word-break:break-word}
.mng-recip .mail{font-family:var(--mono);font-size:11.5px;color:var(--ink-soft);word-break:break-all}
.mng-recip .when{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:11.5px}
.mng-recip .reason{font-size:11px;color:#b91c1c;margin-top:2px;line-height:1.3;word-break:break-word}
.mng-recip col.c-signer{width:28%}
.mng-recip col.c-role{width:80px}
.mng-recip col.c-mail{width:24%}
.mng-recip col.c-stat{width:110px}
.mng-recip col.c-when{width:165px}
.mng-recip col.c-act{width:170px}
.mng-recip .role-pill{display:inline-block;padding:2px 7px;border-radius:10px;font-size:10.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.mng-recip .role-pill.signer{background:#e7eefc;color:#1e40af}
.mng-recip .role-pill.cc{background:#f1ece4;color:#7a5a18}
.mng-recip .row-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-start}
.mng-recip .row-actions .mini-btn{padding:3px 7px;font-size:11px;line-height:1.4}
.mng-recip .row-actions .mini-btn.danger{color:#b91c1c;border-color:#f3c2c2;background:#fef4f4}
.mng-recip .row-actions .mini-btn.danger:hover{background:#fdebeb}
.mng-av{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0;letter-spacing:.02em}
.mng-av.sm{width:28px;height:28px;font-size:11px}
.mng-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.mng-card-name{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.25;word-break:break-word}
.mng-card-mail{font-size:11.5px;color:var(--muted);font-family:var(--mono);word-break:break-all;line-height:1.3}
.mng-card-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;text-align:right;min-width:0}
.mng-card-when{font-size:10.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.mng-card-reason{font-size:11px;color:#b91c1c;max-width:200px;line-height:1.3}
.mng-card-actions{margin-top:6px;display:flex;justify-content:flex-end}
/* Legacy mng-row kept for backward compat with any other call sites. */
.mng-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 2px;border-bottom:1px solid var(--line-soft)}
.mng-mail{font-size:11.5px;color:var(--muted);font-family:var(--mono)}
.mng-st{font-size:12.5px;text-align:right;color:var(--ink)}
.mng-when{font-size:10.5px;color:var(--muted)}
/* Signing audit-trail table */
.mng-section-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-2);margin:14px 0 6px;padding-bottom:5px;border-bottom:1px solid var(--line-soft)}
.mng-trail{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:6px}
.mng-trail th{text-align:left;padding:7px 9px;background:#f7f9fc;color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-bottom:1.5px solid var(--line);white-space:nowrap}
.mng-trail td{padding:7px 9px;border-bottom:1px solid var(--line-soft);vertical-align:top;color:var(--ink)}
.mng-trail tr:last-child td{border-bottom:none}
.mng-trail .when{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:11.5px}
.mng-trail .who{font-weight:600;color:var(--ink);word-break:break-word}
.mng-trail .who-mail{font-size:10.5px;color:var(--muted);font-family:var(--mono);font-weight:400;margin-top:1px;word-break:break-all}
.mng-trail .detail{color:var(--ink-soft);font-size:11.5px;word-break:break-word;white-space:normal}
.mng-trail td.detail{color:var(--ink-soft);font-size:12px}
.mng-act{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}
.mng-act.sent{background:#eaf2ff;color:#1d4ed8}
.mng-act.opened{background:#fff4d6;color:#92670e}
.mng-act.signed{background:#e0f5e9;color:#166534}
.mng-act.declined{background:#fde2e2;color:#b91c1c}
.mng-act.bounced{background:#ffe2cc;color:#a04508}
.mng-act.voided{background:#ede2fb;color:#6b21a8}
.mng-act.completed{background:#d1fae5;color:#065f46;font-weight:700}
.mng-act.registered{background:#e0e7ff;color:#3730a3}
.mng-act.attached{background:#e0f2fe;color:#075985}
.mng-act.other{background:#eef0f4;color:#475569}
/* Make the audit-trail table sized to its container with sensible col widths so nothing clips. */
.mng-trail{table-layout:auto}
.mng-trail col.c-when{width:170px}
.mng-trail col.c-who{width:180px}
.mng-trail col.c-act{width:170px}
.mng-empty{padding:14px;text-align:center;color:var(--muted);font-size:12px;font-style:italic}
.sg-latest{background:transparent;border:1px solid var(--brand-2);color:var(--brand-2)}

.login-forgot{text-align:right;margin-top:10px}
.login-forgot a{font-size:12.5px;color:var(--brand-2,#1a6fb0);text-decoration:none;font-weight:600}
.login-forgot a:hover{text-decoration:underline}
.login-info{background:#e8f5ee !important;color:#1d7a4f !important}
.acct-mail{font-size:11px;color:var(--muted);cursor:pointer;margin-top:1px}
.acct-mail:hover{color:var(--brand-2)}

.pw-wrap{position:relative;display:flex;align-items:center}
.pw-wrap input{width:100%;padding-right:38px}
.pw-eye{position:absolute;right:7px;background:none;border:none;cursor:pointer;font-size:15px;opacity:.55;padding:2px}
.pw-eye:hover{opacity:1}

/* ===== 5-Tab Deal Modal ===== */
.deal-modal{border-radius:var(--radius-card);overflow:hidden}
.dm-head{padding:20px 24px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.dm-head-main{min-width:0;flex:1}
.dm-tcf{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--brand-2);letter-spacing:.04em;margin-bottom:4px}
.dm-title{font-size:23px;font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.2;margin-bottom:6px}
.dm-meta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.dm-status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:700}
.dm-status-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.dm-status-firm{background:var(--green-bg);color:var(--green)}
.dm-status-disbursed{background:var(--green-bg);color:var(--green)}
.dm-status-conditional{background:var(--amber-bg);color:var(--amber)}
.dm-status-fell{background:var(--red-bg);color:var(--red)}
.dm-status-closed{background:var(--slate-bg);color:var(--ink-soft)}
.dm-subtitle{font-size:12.5px;color:var(--muted)}
.dm-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:8px}
.dm-close-btn{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--muted);background:var(--bg);transition:.15s}
.dm-close-btn:hover{background:var(--line);color:var(--ink)}
.dm-tabs{display:flex;gap:0;padding:0 24px;border-bottom:1px solid var(--line);margin-top:12px}
.dm-tab{padding:10px 14px;font-size:13px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;transition:all .12s;background:none;border-top:none;border-left:none;border-right:none}
.dm-tab:hover{color:var(--ink);background:var(--bg)}
.dm-tab.on{color:var(--brand-2);border-bottom-color:var(--brand-2)}
.dm-panel{display:none}
.dm-panel.on{display:block}
.dm-body{height:calc(90vh - 160px);overflow-y:scroll;scrollbar-gutter:stable}

/* Overview definition list */
.dm-dlist{display:grid;grid-template-columns:1fr 1fr;gap:0}
.dm-dlist-section{margin-bottom:16px;grid-column:1/-1}
.dm-dlist-section h4{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-2);padding-bottom:6px;margin-bottom:4px;border-bottom:1px solid var(--line-soft);display:flex;align-items:baseline;gap:8px}
.dm-sec-ct{font-size:10px;font-weight:500;letter-spacing:.06em;color:var(--muted);text-transform:none}
.dm-dl-row{padding:7px 0;border-bottom:1px solid var(--line-soft);display:flex;flex-direction:column;gap:2px}
.dm-dl-row .dl-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.dm-dl-row .dl-value{font-size:13px;color:var(--ink);font-weight:500}
.dm-dl-row .dl-value.empty-v{color:var(--faint);font-style:italic;font-weight:400}

/* Deal task rows */
.dm-task-row{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line-soft)}
.dm-task-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand-2);cursor:pointer;flex-shrink:0}
.dm-task-main{flex:1;min-width:0}
.dm-task-title{font-size:13px;color:var(--ink);font-weight:500}
.dm-task-row.done .dm-task-title{text-decoration:line-through;color:var(--muted)}
.dm-task-row.is-taken-other{opacity:.72}
.dm-task-meta{font-size:11px;color:var(--muted);margin-top:2px;display:flex;align-items:center;gap:8px}
.dm-task-trade{font-family:var(--mono);font-weight:700;color:var(--brand-2);font-size:11px}
.dm-task-badge{font-size:10px;font-weight:800;padding:2px 8px;border-radius:9px}
.dm-task-badge.high{background:var(--red-bg);color:var(--red)}
.dm-task-badge.normal{background:var(--amber-bg);color:var(--amber)}
.dm-task-badge.low{background:var(--green-bg);color:var(--green)}

/* Activity feed */
.dm-act-row{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft);align-items:flex-start}
.dm-act-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12px;flex-shrink:0}
.dm-act-body{flex:1;min-width:0}
.dm-act-text{font-size:13px;color:var(--ink-soft);line-height:1.4}
.dm-act-text b{color:var(--ink);font-weight:700}
.dm-act-text .dm-act-ref{font-family:var(--mono);font-weight:700;color:var(--brand-2);font-size:11.5px}
.dm-act-time{font-size:11px;color:var(--muted);margin-top:2px}

/* Attachment rows */
.dm-att-row{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line-soft);border-radius:9px;margin-bottom:8px;transition:.12s}
.dm-att-row:hover{border-color:var(--brand-2);background:var(--blue-bg)}
.dm-att-icon{width:36px;height:36px;border-radius:8px;background:var(--blue-bg);color:var(--brand-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-att-icon svg{width:18px;height:18px}
.dm-att-main{flex:1;min-width:0}
.dm-att-name{font-size:13px;font-weight:600;color:var(--ink)}
.dm-att-meta{font-size:11px;color:var(--muted);margin-top:1px}
.dm-att-dl{width:32px;height:32px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--muted);background:var(--bg);border:1px solid var(--line);cursor:pointer;transition:.12s;flex-shrink:0}
.dm-att-dl:hover{background:var(--brand-2);color:#fff;border-color:var(--brand-2)}
.dm-att-dl svg{width:15px;height:15px}

/* Note rows */
.dm-note-row{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--line-soft);position:relative}
.dm-note-row:last-child{border-bottom:none}
.dm-note-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:11px;flex-shrink:0}
.dm-note-body{flex:1;min-width:0}
.dm-note-header{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.dm-note-name{font-size:12.5px;font-weight:700;color:var(--ink)}
.dm-note-time{font-size:11px;color:var(--muted)}
.dm-note-text{font-size:13px;color:var(--ink-soft);line-height:1.5}
.dm-note-del{position:absolute;top:10px;right:0;opacity:0;transition:.12s;width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--red);background:var(--red-bg);cursor:pointer;border:none}
.dm-note-row:hover .dm-note-del{opacity:1}


/* ---- TRS print sheet (was id=trsStyles, never referenced via ID) ---- */
#trsSheet{width:980px;flex-shrink:0;background:#fff;color:#000;font-family:Arial,Helvetica,sans-serif;font-size:11.5px;line-height:1.26;padding:0;box-sizing:border-box}
#trsSheet *{box-sizing:border-box}
#trsSheet, #trsSheet *{color:#000}
#trsSheet .ti{display:inline-block;border-bottom:1px solid #666;font-weight:600;color:#000;padding:0 3px;min-width:26px;outline:none;white-space:pre-wrap;word-break:break-word;vertical-align:bottom}
#trsSheet .ti.ti-locked{background:rgba(0,0,0,.04);cursor:not-allowed;color:#333}
#trsSheet .ti:focus{background:#f2f2f2}
#trsSheet .tsel,#trsSheet .tdate{cursor:pointer}
#trsSheet .tsel:hover,#trsSheet .tdate:hover{background:#f2f2f2}
#trsSheet .ta{display:block;width:100%;border:1px solid #555;border-radius:0;min-height:30px;padding:3px 6px;font-weight:600;white-space:pre-wrap}
#trsSheet .tc{display:block;width:100%;border-bottom:none;text-align:center;min-width:0;padding:0 2px}
#trsSheet .tck{cursor:pointer;font-size:13px;user-select:none;margin-right:3px}
#trsSheet .trs-hd{display:flex;align-items:center;gap:22px;margin-bottom:4px}
#trsSheet .sylogo{flex-shrink:0;display:flex;align-items:flex-start;gap:7px}
#trsSheet .sylogo .sq{width:15px;height:15px;background:#000;margin-top:5px}
#trsSheet .sylogo .wm{font-weight:800;font-size:27px;line-height:.92;letter-spacing:-.5px;color:#000}
#trsSheet .trs-titles{flex:1;text-align:center}
#trsSheet .trs-co{font-size:20px;font-weight:800;color:#000;letter-spacing:1.2px}
#trsSheet .trs-doc{font-size:13px;font-weight:800;color:#000;margin-top:1px;letter-spacing:2.5px}
#trsSheet .trs-rule{height:2px;border-top:3px solid #000;border-bottom:1px solid #000;margin:5px 0 8px}
#trsSheet .ln{display:flex;align-items:flex-end;gap:6px;margin:2.6px 0}
#trsSheet .ln b{font-weight:700;white-space:nowrap}
#trsSheet .grow{flex:1}
#trsSheet .boxes2{display:flex;gap:10px;margin:6px 0}
#trsSheet .pbox{flex:1;border:1.4px solid #000;padding:5px 9px}
#trsSheet .pbox h4{margin:0 0 4px;font-size:12px}
#trsSheet .obox{border:1.4px solid #000;padding:5px 9px;margin:6px 0}
#trsSheet table.fin{width:100%;border-collapse:collapse;margin:6px 0;table-layout:fixed}
#trsSheet table.fin th,#trsSheet table.fin td{border:1.2px solid #000;padding:4px 4px;font-size:12px;text-align:center;vertical-align:middle;background:#fff;color:#000;word-break:break-word;overflow-wrap:anywhere;min-height:22px;hyphens:auto}
#trsSheet table.fin td{height:auto}
#trsSheet table.fin .ti, #trsSheet table.fin .tc, #trsSheet table.fin .tdate{font-size:inherit;line-height:1.22;white-space:normal;word-break:break-word;overflow-wrap:anywhere}
/* Per-cell font shrink classes assigned by trsAutoFit() — bumped +1.5px across the board */
#trsSheet table.fin td.fit-s{font-size:11px}
#trsSheet table.fin td.fit-xs{font-size:10px}
#trsSheet table.fin td.fit-xxs{font-size:9.3px;letter-spacing:-0.1px}
#trsSheet table.fin th{font-weight:800;border-bottom-width:2px}
#trsSheet table.fin td:first-child{text-align:left;font-weight:700}
#trsSheet table.fin td:nth-child(2) .tc{text-align:left}
#trsSheet table.fin td.fin-num,#trsSheet table.fin td.fin-num .tc,#trsSheet table.fin td.fin-num .tdate{text-align:center}
#trsSheet table.fin td.fin-total .tc{font-weight:700;color:#0c4a78}
#trsSheet table.fin .tcm{text-align:center;font-variant-numeric:tabular-nums}
#trsSheet table.fin .tch{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap}
#trsSheet table.fin .tch .hst-ph{color:#bbb;font-weight:400}
#trsSheet table.fin .tch .hst-sep{white-space:pre}
#trsSheet table.fin .tch .hst-rt{color:#666;font-weight:600}
#trsSheet table.fin .tcc{text-align:center;font-family:var(--mono)}
#trsSheet table.fin .ti{display:block;width:100%;min-width:0;border:none}
#trsSheet table.fin .tdate{display:block;width:100%;min-width:0;border:none;cursor:pointer}
#trsSheet .sig-row{display:flex;gap:26px;margin-top:18px}
#trsSheet .sig{flex:1;text-align:center}
#trsSheet .sig .line{border-top:1.2px solid #000;padding-top:3px;font-size:11px}
#trsSheet .trs-foot{margin-top:10px;border-top:2px solid #000;padding-top:6px;display:flex;justify-content:space-between;gap:14px;font-size:10.5px}
#trsSheet .trs-foot b{font-size:11px}
#trsSheet.fillpage{display:flex;flex-direction:column;justify-content:space-between}

/* ---- EFT panel + deal modal ---- */
  #eftScrim .modal{ width:min(1180px,98vw); height:min(900px,94vh); display:flex; flex-direction:column; padding:0; overflow:hidden }
  #eftScrim .modal-head{ padding:14px 20px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:14px; flex-shrink:0 }
  #eftScrim .modal-head h3{ margin:0 }
  #eftScrim .eft-tabs{ display:flex; gap:4px; margin-left:auto }
  #eftScrim .eft-tab{ background:none; border:1px solid transparent; padding:7px 14px; font-size:13px; font-weight:600; color:var(--muted); cursor:pointer; border-radius:4px }
  #eftScrim .eft-tab.on{ background:var(--card); border-color:var(--line); color:var(--ink) }
  #eftScrim .eft-tab:hover:not(.on){ color:var(--ink) }
  #eftScrim .eft-body{ flex:1 1 auto; min-height:0; overflow-y:auto; padding:20px 24px 30px; background:var(--bg, #fafaf7) }
  #eftScrim .eft-card{ background:var(--card,#fff); border:1px solid var(--line); border-radius:6px; padding:18px 20px; margin-bottom:14px }
  #eftScrim .eft-card-head{ display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding-bottom:12px; margin-bottom:14px; border-bottom:1px solid var(--line) }
  #eftScrim .eft-card-head h4{ margin:0; font-size:15px; font-weight:700 }
  #eftScrim .eft-card-head .step{ font-family:monospace; font-size:10px; color:var(--muted); letter-spacing:.1em; text-transform:uppercase }
  #eftScrim .eft-card-head .desc{ font-size:12px; color:var(--muted); max-width:380px; text-align:right }
  /* Single-line responsive hint variant: lets the line use whatever horizontal room
     the card head has. Falls back to wrapping only when the viewport is truly cramped. */
  #eftScrim .eft-card-head .eft-desc-tight{ max-width:none; flex:1 1 auto; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
  @media (max-width: 720px){
    #eftScrim .eft-card-head .eft-desc-tight{ white-space:normal; text-overflow:clip; flex:1 1 100%; text-align:left }
    #eftScrim .eft-card-head{ flex-wrap:wrap }
  }
  #eftScrim .orig-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px }
  @media(max-width:720px){ #eftScrim .orig-grid{ grid-template-columns:1fr } }
  #eftScrim .eft-orig{ border:1.5px solid var(--line); background:var(--card,#fff); padding:14px 16px; cursor:pointer; transition:all .12s; position:relative; border-radius:4px }
  #eftScrim .eft-orig:hover{ border-color:var(--accent) }
  #eftScrim .eft-orig.on{ border-color:var(--accent); background:rgba(46,118,93,.06) }
  #eftScrim .eft-orig.on::after{ content:'✓'; position:absolute; top:8px; right:12px; color:var(--accent); font-weight:700 }
  #eftScrim .eft-orig .lbl{ font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-bottom:4px; font-weight:600 }
  #eftScrim .eft-orig .id{ font-family:monospace; font-size:16px; font-weight:600; color:var(--ink) }
  #eftScrim .eft-orig .meta{ font-size:11px; color:var(--muted); margin-top:6px; display:flex; gap:12px }
  #eftScrim .field-grid,
  #eftNocFormScrim .field-grid,
  #eftRetFormScrim .field-grid,
  #eftAdvFormScrim .field-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px 16px }
  #eftScrim .field-grid.two,
  #eftNocFormScrim .field-grid.two,
  #eftRetFormScrim .field-grid.two,
  #eftAdvFormScrim .field-grid.two{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  #eftScrim .field,
  #eftNocFormScrim .field,
  #eftRetFormScrim .field,
  #eftAdvFormScrim .field{ display:flex; flex-direction:column; gap:5px; min-width:0 }
  #eftScrim .field label,
  #eftNocFormScrim .field label,
  #eftRetFormScrim .field label,
  #eftAdvFormScrim .field label{ font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-weight:600 }
  #eftScrim .field input,  #eftScrim .field select,  #eftScrim .field textarea,
  #eftNocFormScrim .field input, #eftNocFormScrim .field select, #eftNocFormScrim .field textarea,
  #eftRetFormScrim .field input, #eftRetFormScrim .field select, #eftRetFormScrim .field textarea,
  #eftAdvFormScrim .field input, #eftAdvFormScrim .field select, #eftAdvFormScrim .field textarea{ font-family:inherit; font-size:13px; padding:8px 11px; border:1px solid var(--line); border-radius:6px; background:var(--card,#fff); color:var(--ink); width:100%; box-sizing:border-box; transition:border-color .12s, box-shadow .12s }
  #eftScrim .field input:focus, #eftScrim .field select:focus, #eftScrim .field textarea:focus,
  #eftNocFormScrim .field input:focus, #eftNocFormScrim .field select:focus, #eftNocFormScrim .field textarea:focus,
  #eftRetFormScrim .field input:focus, #eftRetFormScrim .field select:focus, #eftRetFormScrim .field textarea:focus,
  #eftAdvFormScrim .field input:focus, #eftAdvFormScrim .field select:focus, #eftAdvFormScrim .field textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(20,107,75,.12) }
  #eftScrim .field .hint{ font-size:11px; color:var(--muted) }
  /* ---- Section-card pattern used inside NOC + Returns + Advice modals ---- */
  #eftNocFormScrim .modal, #eftRetFormScrim .modal, #eftAdvFormScrim .modal{ background:#fafaf7 }
  #eftNocFormScrim .modal-head, #eftRetFormScrim .modal-head, #eftAdvFormScrim .modal-head{ background:#fff; padding:18px 24px; border-bottom:1px solid var(--line) }
  #eftNocFormScrim .modal-head h3, #eftRetFormScrim .modal-head h3, #eftAdvFormScrim .modal-head h3{ font-size:17px; font-weight:700; letter-spacing:-.01em }
  #eftNocFormScrim .modal-head .sub, #eftRetFormScrim .modal-head .sub, #eftAdvFormScrim .modal-head .sub{ margin:3px 0 0; font-size:12.5px; color:var(--muted); font-weight:400 }
  #eftNocFormScrim .modal-foot, #eftRetFormScrim .modal-foot, #eftAdvFormScrim .modal-foot{ background:#fff; padding:16px 24px }
  #eftAdvFormScrim .modal-foot{ display:flex; justify-content:space-between; align-items:center; gap:12px }
  #eftAdvFormScrim .modal-foot .foot-meta{ font-size:11.5px; color:var(--muted); line-height:1.4; flex:1 1 auto; min-width:0 }
  #eftAdvFormScrim .modal-foot .foot-btns{ display:flex; gap:8px; flex-shrink:0 }
  #eftNocFormScrim .eft-form-card, #eftRetFormScrim .eft-form-card, #eftAdvFormScrim .eft-form-card{ background:#fff; border:1px solid var(--line); border-radius:10px; padding:22px 24px; margin-bottom:16px; box-shadow:0 1px 2px rgba(0,0,0,.02) }
  #eftNocFormScrim .eft-form-card:last-child, #eftRetFormScrim .eft-form-card:last-child, #eftAdvFormScrim .eft-form-card:last-child{ margin-bottom:0 }
  #eftNocFormScrim .eft-form-card-head, #eftRetFormScrim .eft-form-card-head, #eftAdvFormScrim .eft-form-card-head{ display:flex; gap:14px; align-items:flex-start; margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--line) }
  #eftNocFormScrim .eft-form-step, #eftRetFormScrim .eft-form-step, #eftAdvFormScrim .eft-form-step{ flex-shrink:0; width:30px; height:30px; border-radius:8px; background:rgba(20,107,75,.08); color:var(--accent); font-family:'SFMono-Regular',Menlo,Consolas,monospace; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; letter-spacing:.02em }
  #eftNocFormScrim .eft-form-card-head h4, #eftRetFormScrim .eft-form-card-head h4, #eftAdvFormScrim .eft-form-card-head h4{ margin:0 0 3px; font-size:14px; font-weight:700; letter-spacing:-.005em; color:var(--ink) }
  #eftNocFormScrim .eft-form-card-head p, #eftRetFormScrim .eft-form-card-head p, #eftAdvFormScrim .eft-form-card-head p{ margin:0; font-size:12px; color:var(--muted); line-height:1.5 }
  #eftNocFormScrim .eft-acct-pair{ display:grid; grid-template-columns:1fr 1fr; gap:20px }
  @media(max-width:720px){ #eftNocFormScrim .eft-acct-pair{ grid-template-columns:1fr } }
  #eftNocFormScrim .eft-acct-col{ background:#fafaf7; border:1px solid var(--line); border-radius:8px; padding:16px 18px }
  #eftNocFormScrim .eft-acct-col-hd{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink); font-weight:700; margin-bottom:14px; padding-bottom:10px; border-bottom:1px dashed var(--line) }
  #eftRetFormScrim .eft-checkbox-row{ display:flex; align-items:center; gap:10px; padding:12px 14px; background:#fafaf7; border:1px solid var(--line); border-radius:8px; cursor:pointer; font-size:13px; font-weight:500; color:var(--ink); text-transform:none; letter-spacing:0 }
  #eftRetFormScrim .eft-checkbox-row input[type=checkbox]{ width:16px; height:16px; margin:0; accent-color:var(--accent); cursor:pointer }
  #eftRetFormScrim .eft-checkbox-row .eft-checkbox-hint{ font-size:11px; color:#c0392b; font-weight:600; margin-left:auto }
  /* ---- Advice-specific: info banner, invoice table, total row ---- */
  #eftAdvFormScrim .eft-banner{ display:flex; align-items:flex-start; gap:10px; padding:11px 14px; background:rgba(20,107,75,.08); border:1px solid rgba(20,107,75,.18); border-radius:8px; font-size:12.5px; color:#0f4f37; margin-bottom:16px; line-height:1.45 }
  #eftAdvFormScrim .eft-banner svg{ flex-shrink:0; margin-top:1px }
  #eftAdvFormScrim .eft-banner strong{ font-weight:600 }
  #eftAdvFormScrim .eft-context-chip{ display:flex; flex-wrap:wrap; gap:10px 14px; padding:11px 14px; background:#faf8f3; border:1px solid #e2ddd0; border-radius:8px; font-size:12px; color:#555; margin-bottom:14px; line-height:1.45 }
  #eftAdvFormScrim .eft-context-chip .ctx-label{ font-size:10.5px; text-transform:uppercase; letter-spacing:.1em; color:#1a1814; font-weight:600; width:100%; margin-bottom:-2px }
  #eftAdvFormScrim .eft-inv-tbl{ width:100%; border-collapse:separate; border-spacing:0; background:#fafaf7; border:1px solid var(--line); border-radius:8px; overflow:hidden; font-size:12.5px }
  #eftAdvFormScrim .eft-inv-tbl thead th{ text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-weight:600; padding:10px 12px; border-bottom:1px solid var(--line); background:#fff }
  #eftAdvFormScrim .eft-inv-tbl thead th.num{ text-align:right }
  #eftAdvFormScrim .eft-inv-tbl tbody td{ padding:7px 8px; border-bottom:1px solid var(--line); vertical-align:middle }
  #eftAdvFormScrim .eft-inv-tbl tbody tr:last-child td{ border-bottom:0 }
  #eftAdvFormScrim .eft-inv-tbl .col-num{ width:32px; text-align:center; color:var(--muted); font-family:'SFMono-Regular',Menlo,Consolas,monospace; font-size:12px; padding-left:12px }
  #eftAdvFormScrim .eft-inv-tbl .col-rm{ width:38px; text-align:center }
  #eftAdvFormScrim .eft-inv-tbl input{ width:100%; font-family:inherit; font-size:13px; background:#fff; border:1px solid #d4d4cf; border-radius:6px; padding:7px 10px; outline:none; box-sizing:border-box; transition:border-color .12s, box-shadow .12s }
  #eftAdvFormScrim .eft-inv-tbl input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(20,107,75,.12) }
  #eftAdvFormScrim .eft-inv-tbl input.amt{ font-family:'SFMono-Regular',Menlo,Consolas,monospace; text-align:right }
  #eftAdvFormScrim .eft-inv-tbl .rm-btn{ width:28px; height:28px; border-radius:6px; border:1px solid var(--line); background:#fff; color:var(--muted); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; padding:0 }
  #eftAdvFormScrim .eft-inv-tbl .rm-btn:hover{ color:#c0392b; border-color:#e8b9b3 }
  #eftAdvFormScrim .eft-inv-tbl tfoot td{ padding:12px; background:#fff; border-top:1px solid var(--line) }
  #eftAdvFormScrim .eft-inv-tbl .total-row{ display:flex; justify-content:space-between; align-items:center }
  #eftAdvFormScrim .eft-inv-tbl .total-label{ font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-weight:600 }
  #eftAdvFormScrim .eft-inv-tbl .total-val{ font-family:'SFMono-Regular',Menlo,Consolas,monospace; font-size:15px; font-weight:700; color:var(--ink) }
  #eftAdvFormScrim .add-row-btn{ margin-top:12px; display:inline-flex; align-items:center; gap:6px; font-family:inherit; font-size:12.5px; color:var(--accent); background:transparent; border:1px dashed var(--accent); padding:7px 14px; border-radius:7px; cursor:pointer; font-weight:600 }
  #eftAdvFormScrim .add-row-btn:hover{ background:rgba(20,107,75,.06) }
  #eftScrim .mono, #eftScrim input.mono,
  #eftNocFormScrim .mono, #eftNocFormScrim input.mono,
  #eftRetFormScrim .mono, #eftRetFormScrim input.mono,
  #eftAdvFormScrim .mono, #eftAdvFormScrim input.mono{ font-family:'SFMono-Regular',Menlo,Consolas,monospace; letter-spacing:.02em }
  #eftScrim .pmt-toggle{ display:inline-flex; border:1px solid var(--line); border-radius:3px; overflow:hidden }
  #eftScrim .pmt-toggle button{ background:var(--card,#fff); border:none; padding:7px 14px; font-family:inherit; font-size:12px; cursor:pointer; color:var(--muted); border-right:1px solid var(--line) }
  #eftScrim .pmt-toggle button:last-child{ border-right:none }
  #eftScrim .pmt-toggle button.on{ background:var(--ink); color:#fff }
  #eftScrim .eft-table{ width:100%; border-collapse:collapse; margin-top:8px; font-size:12.5px }
  #eftScrim .eft-table th{ text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-weight:600; padding:8px; border-bottom:1.5px solid var(--line); background:rgba(0,0,0,.02); white-space:nowrap }
  #eftScrim .eft-table th.num{ text-align:right }
  #eftScrim .eft-table td{ padding:3px 4px; border-bottom:1px solid var(--line) }
  #eftScrim .eft-table.compact td{ padding:7px 10px }
  #eftScrim .eft-table .num{ text-align:right }
  #eftScrim .eft-in{ width:100%; border:1px solid transparent; background:transparent; padding:6px 8px; font-family:inherit; font-size:12.5px; color:var(--ink); border-radius:2px; transition:all .12s }
  #eftScrim .eft-in:focus{ outline:none; border-color:var(--accent); background:var(--card,#fff) }
  #eftScrim .eft-del{ background:none; border:none; color:var(--muted); cursor:pointer; padding:4px 8px; font-size:14px; border-radius:2px }
  #eftScrim .eft-del:hover{ color:#c0392b; background:rgba(192,57,43,.08) }
  #eftScrim .eft-btn-row{ display:flex; gap:8px; margin-top:12px; flex-wrap:wrap }
  #eftScrim .eft-summary{ font-size:13px; color:var(--muted); margin-top:10px }
  #eftScrim .eft-preview{ background:#1a1814; color:#e8e5de; padding:14px 16px; border-radius:3px; font-family:'SFMono-Regular',Menlo,monospace; font-size:11.5px; line-height:1.6; overflow-x:auto; white-space:pre; border:1px solid #000 }
  #eftScrim .eft-preview .rul{ color:#6a6660; margin-bottom:6px }
  #eftScrim .eft-preview .l-h{ color:#b8d9c7 }
  #eftScrim .eft-preview .l-d{ color:#e8e5de }
  #eftScrim .eft-preview .l-t{ color:#d9cbb8 }
  #eftScrim .eft-valid{ list-style:none; padding:0; margin:8px 0 0; }
  #eftScrim .eft-valid li{ padding:4px 0; font-size:12px; display:flex; align-items:center; gap:8px }
  #eftScrim .eft-valid li::before{ font-family:monospace; font-weight:700; width:14px; flex-shrink:0 }
  #eftScrim .eft-valid li.ok::before{ content:'✓'; color:var(--accent,#2e765d) }
  #eftScrim .eft-valid li.bad::before{ content:'✕'; color:#c0392b }
  #eftScrim .eft-valid li.warn::before{ content:'!'; color:#b8860b }
  #eftScrim .eft-valid li.warn{ color:#7a5a00 }
  #eftScrim .pad-banner{ margin-top:8px; padding:8px 12px; border-radius:4px; font-size:12px; display:flex; align-items:center; gap:8px }
  #eftScrim .pad-banner.ok{ background:#e8f3ee; color:#1d6b50; border:1px solid #b5d9c6 }
  #eftScrim .pad-banner.mismatch{ background:#fdf1e0; color:#7a4a00; border:1px solid #e8c98b }
  #eftScrim .eft-gen{ background:var(--ink,#1a1814); color:#fff; padding:24px 28px; border-radius:4px; margin-top:14px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap }
  #eftScrim .eft-gen h4{ margin:0 0 4px; font-size:18px; font-weight:600; color:#fff }
  #eftScrim .eft-gen p{ color:#aaa; font-size:12px; margin:0 }
  #eftScrim #eftGenBtn{ background:#fff; color:#1a1814; padding:12px 24px; font-size:13px; font-weight:700; border:none; cursor:pointer; border-radius:3px; font-family:inherit }
  #eftScrim #eftGenBtn:disabled{ background:#555; color:#999; cursor:not-allowed }
  #eftScrim #eftGenBtn:hover:not(:disabled){ background:#eee }
  #eftScrim .eft-row{ cursor:pointer }
  #eftScrim .eft-row:hover td{ background:rgba(46,118,93,.04) }
  #eftScrim .eft-pill{ display:inline-block; padding:2px 8px; border-radius:99px; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; background:#eee; color:#555 }
  #eftScrim .eft-pill.generated{ background:#e9f3ed; color:#2e765d }
  #eftScrim .eft-pill.sent_to_bank{ background:#e6efe9; color:#1e4d3b }
  #eftScrim .eft-pill.rejected{ background:#fdeaea; color:#c0392b }
  #eftScrim .eft-pill.cancelled{ background:#eee; color:#777 }
  #eftScrim .eft-pill.draft{ background:#fff5e0; color:#8a6500 }
  #eftScrim .eft-pill.sent{ background:#e9f3ed; color:#2e765d }
  #eftScrim .eft-alert{ padding:12px 14px; border-left:3px solid var(--accent); background:rgba(46,118,93,.06); font-size:12.5px; line-height:1.5; margin-bottom:14px; color:var(--ink) }
  #eftScrim .eft-drawer{ position:absolute; top:0; right:0; bottom:0; width:min(640px,95%); background:var(--card,#fff); border-left:1px solid var(--line); box-shadow:-4px 0 24px rgba(0,0,0,.08); transform:translateX(100%); transition:transform .25s ease; display:flex; flex-direction:column; z-index:5 }
  #eftScrim .eft-drawer.on{ transform:translateX(0) }
  #eftScrim .eft-drawer-head{ padding:14px 20px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; flex-shrink:0 }
  #eftScrim .eft-drawer-body{ flex:1 1 auto; min-height:0; overflow-y:auto; padding:18px 20px }
  #eftScrim .eft-drawer-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px 18px; font-size:12px }
  #eftScrim .eft-drawer-grid strong{ display:block; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-weight:600; margin-bottom:2px }
  #eftScrim .eft-drawer-grid div > div{ font-size:13px; color:var(--ink) }
  #eftScrim .modal-foot{ padding:12px 20px; border-top:1px solid var(--line); display:flex; gap:8px; justify-content:flex-end; flex-shrink:0; background:var(--card,#fff) }
  /* ---- Date combo: text input + calendar icon (mockup-approved UX) ---- */
  .date-combo{ display:inline-flex; align-items:stretch; gap:0; width:100%; min-width:0 }
  .date-combo > input.date-combo-text{ flex:1 1 auto; min-width:0; border-top-right-radius:0; border-bottom-right-radius:0; margin:0 }
  .date-combo .date-combo-cal{ flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; padding:0 8px; border:1px solid var(--line); border-left:none; border-radius:0 7px 7px 0; background:var(--bg,#fafbfc); color:var(--muted); cursor:pointer; transition:background .12s, color .12s; min-width:30px }
  .date-combo .date-combo-cal:hover{ background:var(--panel,#f3f4f6); color:var(--ink) }
  .date-combo .date-combo-cal:focus{ outline:2px solid var(--brand,#3b82f6); outline-offset:-2px }
  .cell-date-combo{ display:inline-flex; width:100%; align-items:stretch }
  .cell-date-combo .cell-input.date-combo-text{ border-top-right-radius:0; border-bottom-right-radius:0 }
  .cell-date-combo .cell-date-cal{ border-radius:0; border:1px solid var(--line); border-left:none; background:transparent; color:var(--muted); padding:0 6px; min-width:24px; cursor:pointer }
  .cell-date-combo .cell-date-cal:hover{ color:var(--ink); background:rgba(0,0,0,.04) }
  /* Back button in deal modal head */
  .dm-back-btn{ display:inline-flex; align-items:center; gap:4px }

/* ============================================================================
 * TCF List + Preview Popover + Sync Banners (added 2026-06-13)
 * ========================================================================== */

/* --- Header toggle button "on" state --- */
.tb-btn.tcf-toggle.on{ background:var(--accent, #2563eb)!important; color:#fff!important; border-color:transparent }
.tb-btn.tcf-toggle.on svg{ stroke:#fff }

/* --- Sync banner --- */
.sync-banner-slot{ margin:0 0 8px 0 }
.sync-banner{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:6px 12px; border:1px solid var(--line); border-radius:6px;
  background:var(--surface, #fff); color:var(--muted, #666);
  font-size:12px; line-height:1.4;
}
.sync-dot{ width:8px; height:8px; border-radius:50%; flex:0 0 8px }
.sync-dot.ok{ background:#10b981 }
.sync-dot.warn{ background:#f59e0b }
.sync-dot.err{ background:#ef4444 }
.sync-title{ font-weight:600; color:var(--ink) }
.sync-sep{ opacity:.4 }
.sync-meta b{ font-weight:500; color:var(--ink); margin-right:3px }
.sync-count{ opacity:.7 }
.sync-cad{ opacity:.6; font-style:italic }
.sync-err{ color:#ef4444; margin-left:auto; font-size:11px; max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.sync-refresh{
  margin-left:auto; background:transparent; border:1px solid var(--line);
  color:var(--muted); cursor:pointer; padding:2px 8px; border-radius:4px; font-size:13px;
}
.sync-refresh:hover{ background:rgba(0,0,0,.04); color:var(--ink) }

/* --- TCF cell link in ledger --- */
.col-tcf .tcf-link{
  color:var(--accent, #2563eb); cursor:pointer; text-decoration:none;
  border-bottom:1px dashed transparent; padding:1px 0;
}
.col-tcf .tcf-link:hover{ border-bottom-color:var(--accent, #2563eb) }

/* --- TCF Preview popover --- */
.tcf-popover{
  position:absolute; z-index:9999;
  background:var(--surface, #fff); border:1px solid var(--line);
  border-radius:8px; box-shadow:0 8px 32px rgba(0,0,0,.16);
  padding:0; overflow:hidden;
  animation: tcfPopIn .12s ease-out;
}
@keyframes tcfPopIn{ from{ opacity:0; transform:translateY(-4px) } to{ opacity:1; transform:translateY(0) } }
.tcf-pop-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 14px; border-bottom:1px solid var(--line); background:rgba(0,0,0,.02);
}
.tcf-pop-title{ font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--muted) }
.tcf-pop-close{ background:transparent; border:none; cursor:pointer; font-size:18px; color:var(--muted); line-height:1; padding:2px 6px }
.tcf-pop-close:hover{ color:var(--ink) }
.tcf-pop-body{ padding:12px 14px }
.tcf-pop-loading{ color:var(--muted); font-size:13px; text-align:center; padding:20px 0 }
.tcf-pop-empty{ text-align:center; padding:10px 0 }
.tcf-pop-empty .tcf-pop-tcf{ font-size:15px; font-weight:600; margin-bottom:6px }
.tcf-pop-empty .tcf-pop-note{ font-size:12px; color:var(--muted); margin-bottom:12px }
.tcf-pop-id{ margin-bottom:8px }
.tcf-pop-tcf{ font-size:14px; font-weight:600; color:var(--ink) }
.tcf-pop-deal{ font-size:12px; color:var(--muted); margin-top:2px }
.tcf-pop-statline{ display:flex; gap:6px; align-items:center; margin-bottom:10px; flex-wrap:wrap }
.tcf-badge{
  display:inline-block; padding:2px 8px; border-radius:10px; font-size:11px; font-weight:600;
  background:rgba(0,0,0,.08); color:var(--ink); border:1px solid var(--line);
}
.tcf-stat-collected{ background:#dbeafe; color:#1e40af; border-color:#bfdbfe }
.tcf-stat-confirmed{ background:#d1fae5; color:#065f46; border-color:#a7f3d0 }
.tcf-stat-deleted{ background:#f3f4f6; color:#4b5563; border-color:#e5e7eb }
.tcf-stat-loggedin{ background:#fef3c7; color:#92400e; border-color:#fde68a }
.tcf-stat-cancelled{ background:#fee2e2; color:#991b1b; border-color:#fecaca }
.tcf-stat-resubmit{ background:#f3e8ff; color:#6b21a8; border-color:#e9d5ff }
.tcf-stat-preapproval{ background:#cffafe; color:#155e75; border-color:#a5f3fc }
.tcf-stat-unknown{ background:#f3f4f6; color:#9ca3af; border-color:#e5e7eb }
.tcf-bucket{ font-size:11px; color:var(--muted); padding:2px 8px; border:1px dashed var(--line); border-radius:10px }
.tcf-pop-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:6px 14px;
  font-size:12px; margin-bottom:12px;
}
.tcf-pop-grid > div{ display:flex; flex-direction:column }
.tcf-pop-grid .lbl{ font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.3px }
.tcf-pop-grid .val{ font-weight:500; color:var(--ink); margin-top:1px }
.tcf-pop-foot{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding-top:10px; border-top:1px solid var(--line);
}
.tcf-pop-synced{ font-size:11px; color:var(--muted) }
.tcf-pop-cta{
  display:inline-block; padding:5px 12px; border-radius:5px;
  background:var(--accent, #2563eb); color:#fff!important; text-decoration:none;
  font-size:12px; font-weight:500;
}
.tcf-pop-cta:hover{ filter:brightness(1.1) }

/* --- TCF List panel (full-screen view) --- */
.tcf-list-panel{
  position:fixed; left:0; right:0; top:64px; bottom:0;
  background:var(--bg, #f7f8fa); overflow-y:auto;
  z-index:100; padding:16px 20px 60px;
}
body.tcf-list-on .table-wrap,
body.tcf-list-on .kpis,
body.tcf-list-on .controls,
body.tcf-list-on .sel-bar,
body.tcf-list-on #syncBannerLedger,
body.tcf-list-on .banner{ display:none!important }

.tcf-list-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; margin-bottom:14px; flex-wrap:wrap;
}
.tcf-list-title{ display:flex; align-items:center; gap:10px }
.tcf-list-title h2{ margin:0; font-size:20px; font-weight:600 }
.tcf-list-sub{ color:var(--muted); font-size:12px }
.tcf-list-actions{ display:flex; gap:8px; flex-wrap:wrap }

.tcf-kpis{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:10px; margin-bottom:14px;
}
.tcf-kpi{
  background:var(--surface, #fff); border:1px solid var(--line);
  border-radius:8px; padding:10px 14px;
}
.tcf-kpi.wide{ grid-column:span 1 }
.tcf-kpi .kpi-lbl{ font-size:11px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); margin-bottom:4px }
.tcf-kpi .kpi-val{ font-size:18px; font-weight:600; color:var(--ink) }

.tcf-list-grid{
  display:grid; grid-template-columns:1fr 1.2fr; gap:14px; margin-bottom:14px;
}
@media (max-width:900px){ .tcf-list-grid{ grid-template-columns:1fr } }

.tcf-funnel-card, .tcf-controls-card{
  background:var(--surface, #fff); border:1px solid var(--line);
  border-radius:8px; padding:12px 14px;
}
.tcf-card-head{
  font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.5px;
  color:var(--muted); margin-bottom:8px;
}
.tcf-funnel{ display:flex; flex-direction:column; gap:5px }
.funnel-row{
  display:grid; grid-template-columns:90px 1fr 50px; align-items:center; gap:10px;
  font-size:11px; cursor:pointer; padding:3px 0;
}
.funnel-row:hover{ background:rgba(0,0,0,.03); border-radius:4px }
.funnel-lbl{ font-weight:500; color:var(--ink) }
.funnel-bar{ background:rgba(0,0,0,.06); border-radius:4px; height:10px; overflow:hidden }
.funnel-fill{ display:block; height:100%; transition:width .2s ease }
.funnel-cnt{ text-align:right; font-variant-numeric:tabular-nums; color:var(--muted) }

.tcf-controls{ display:flex; flex-direction:column; gap:8px }
.tcf-input{
  width:100%; padding:7px 10px; border:1px solid var(--line); border-radius:6px;
  background:var(--surface, #fff); color:var(--ink); font-size:13px;
}
.tcf-input:focus{ outline:none; border-color:var(--accent, #2563eb) }

.tcf-list-body{
  background:var(--surface, #fff); border:1px solid var(--line); border-radius:8px;
  overflow:hidden;
}
.tcf-empty{ padding:60px 20px; text-align:center; color:var(--muted); font-size:13px }
.tcf-empty small{ color:var(--muted); opacity:.7 }
.tcf-table-wrap{ overflow-x:auto; max-height:calc(100vh - 480px); overflow-y:auto }
.tcf-table{ width:100%; border-collapse:collapse; font-size:12px }
.tcf-table thead th{
  position:sticky; top:0; background:var(--surface, #fff); z-index:2;
  text-align:left; padding:8px 10px; border-bottom:1px solid var(--line);
  font-weight:600; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.3px;
  white-space:nowrap;
}
.tcf-table th.num, .tcf-table td.num{ text-align:right; font-variant-numeric:tabular-nums }
.tcf-table th.asc::after{ content:" ▲"; opacity:.5 }
.tcf-table th.desc::after{ content:" ▼"; opacity:.5 }
.tcf-table tbody td{ padding:7px 10px; border-bottom:1px solid var(--line); color:var(--ink); vertical-align:top }
.tcf-table tbody tr:hover{ background:rgba(0,0,0,.02) }
.tcf-cell-id{ font-weight:600; font-family:'SF Mono','Monaco','Menlo',monospace; font-size:11px }
.tcf-pill{ display:inline-block; padding:2px 8px; border-radius:10px; border:1px solid; font-size:10px; font-weight:600; letter-spacing:.3px }
.tcf-beats-link{ color:var(--accent, #2563eb); text-decoration:none; font-size:11px }
.tcf-beats-link:hover{ text-decoration:underline }
.tcf-pager{
  display:flex; align-items:center; justify-content:space-between;
  padding:8px 12px; border-top:1px solid var(--line); font-size:12px; color:var(--muted);
}
.tcf-pager .pg-ctrls{ display:flex; gap:6px; align-items:center }
.tcf-pager button{
  background:transparent; border:1px solid var(--line); color:var(--ink); cursor:pointer;
  padding:3px 10px; border-radius:4px; font-size:12px;
}
.tcf-pager button:disabled{ opacity:.4; cursor:not-allowed }
.tcf-pager button:hover:not(:disabled){ background:rgba(0,0,0,.04) }

/* Dark mode for the new bits relies on the existing CSS vars. */
