:root{--navy:#14284b;--navy2:#1f3a68;--ink:#1b2333;--muted:#5d6779;--line:#dfe3ea;--bg:#f4f6f9;--card:#fff;--accent:#2f6fde;--ok:#1e8a5a;--warn:#b7791f;--bad:#c0392b;
--s-closing:#1e8a5a;--s-uw:#2f6fde;--s-src:#8a5cd6;--s-setup:#b7791f;--radius:10px}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;padding:0}
body{font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}
a{color:var(--accent)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid #8fb4ff;outline-offset:2px}
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;padding-top:calc(10px + env(safe-area-inset-top));background:var(--navy);color:#fff;box-shadow:0 1px 0 rgba(0,0,0,.2)}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;min-width:0}
.mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#fff;color:var(--navy);font-weight:800;font-size:13px;letter-spacing:.5px;flex:none}
.brand-text{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-text span{opacity:.85}
.nav{display:flex;align-items:center;gap:4px}
.nav a,.linkbtn{color:#dce6f7;text-decoration:none;padding:7px 10px;border-radius:7px;background:none;border:0;cursor:pointer;font-size:14px}
.nav a:hover,.linkbtn:hover,.nav a.active{background:rgba(255,255,255,.12);color:#fff}
main{max-width:1200px;margin:0 auto;padding:20px}
.loading{padding:60px 0;text-align:center;color:var(--muted)}
h1{font-size:22px;margin:0 0 4px}
h2{font-size:17px;margin:0 0 12px}
.sub{color:var(--muted);margin:0 0 16px;font-size:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
/* login */
.login-wrap{min-height:70vh;display:grid;place-items:center}
.login{width:100%;max-width:380px}
.login h1{margin-bottom:2px}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.field label{font-size:13px;font-weight:600;color:var(--muted)}
input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=date],input:not([type]),select,textarea{width:100%;padding:10px 12px;border:1px solid #c9cfda;border-radius:8px;background:#fff;min-height:42px}
textarea{min-height:84px;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:8px;border:1px solid var(--navy);background:var(--navy);color:#fff;font-weight:600;cursor:pointer;min-height:42px;text-decoration:none}
.btn:hover{background:var(--navy2)}
.btn.secondary{background:#fff;color:var(--navy);border-color:#c9cfda}
.btn.secondary:hover{background:#f0f3f8}
.btn.small{padding:6px 10px;min-height:34px;font-size:13px}
.btn.danger{background:#fff;color:var(--bad);border-color:#e7b9b3}
.btn:disabled{opacity:.6;cursor:default}
.error{color:var(--bad);font-size:14px;margin:6px 0 0;min-height:1.2em}
/* stage counts */
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;text-align:left;cursor:pointer;border-top:4px solid var(--c,#94a0b4)}
.stat:hover{box-shadow:0 2px 8px rgba(20,40,75,.08)}
.stat.on{outline:2px solid var(--c,#94a0b4);outline-offset:-2px}
.stat .n{font-size:26px;font-weight:700;line-height:1.1}
.stat .l{font-size:13px;color:var(--muted)}
.stat .l .short{display:none}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.toolbar input[type=search]{flex:1 1 260px;width:auto;min-width:0}
.toolbar>select,.toolbar>div{flex:0 0 190px;width:190px;min-width:0}
.toolbar>div select{width:100%}
.toolbar .spacer{flex:1}
.count{font-size:13px;color:var(--muted)}
/* stage badges */
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;color:#fff;background:var(--c,#94a0b4)}
.st-closing{--c:var(--s-closing)}.st-uw{--c:var(--s-uw)}.st-src{--c:var(--s-src)}.st-setup{--c:var(--s-setup)}.st-all{--c:var(--navy)}
.pill{display:inline-block;min-width:24px;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:700;text-align:center;background:#eef1f6;color:var(--muted)}
.pill.has{background:#fdf0dc;color:#8a5a12}
.pill.zero{background:#e5f4ec;color:var(--ok)}
.muted{color:var(--muted)}
.overdue{color:var(--bad);font-weight:600}
/* table */
.table-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #edf0f4;vertical-align:top;font-size:14px}
th{background:#f8f9fb;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;cursor:pointer;user-select:none;white-space:nowrap}
tbody tr{cursor:pointer}
tbody tr:hover{background:#f6f9ff}
tbody tr:last-child td{border-bottom:0}
.dname{font-weight:600;color:var(--ink);text-decoration:none}
.dsub{font-size:13px;color:var(--muted)}
.cards{display:none}
.dcard{display:block;background:#fff;border:1px solid var(--line);border-left:4px solid var(--c,#94a0b4);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;color:inherit;text-decoration:none}
.dcard .row1{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.dcard .meta{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin-top:8px;font-size:13px}
.dcard .meta dt{color:var(--muted)}
.dcard .meta dd{margin:0;min-width:0;overflow-wrap:anywhere}
.empty{padding:30px;text-align:center;color:var(--muted)}
/* detail */
.back{display:inline-block;margin-bottom:10px;text-decoration:none;font-size:14px}
.dhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}
.dgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;align-items:start}
.form2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.form2 .wide{grid-column:1/-1}
.savebar{display:flex;gap:10px;align-items:center;margin-top:4px}
.checklist{list-style:none;margin:0 0 10px;padding:0}
.checklist li{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid #f0f2f5}
.checklist li:last-child{border-bottom:0}
.checklist input[type=checkbox]{width:20px;height:20px;margin-top:1px;flex:none;accent-color:var(--navy)}
.checklist .t{flex:1;min-width:0;overflow-wrap:anywhere}
.checklist li.done .t{text-decoration:line-through;color:var(--muted)}
.checklist .x{background:none;border:0;color:#9aa3b2;cursor:pointer;font-size:18px;line-height:1;padding:2px 6px;border-radius:6px}
.checklist .x:hover{color:var(--bad);background:#fbeceb}
.src{font-size:11px;color:#8c95a5;margin-left:4px}
.addrow{display:flex;gap:8px}
.addrow input{flex:1}
.notes{list-style:none;padding:0;margin:12px 0 0}
.notes li{padding:10px 0;border-top:1px solid #f0f2f5}
.notes .nh{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.notes .nt{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:3px}
.notes li.change .nt{color:#4a5568;font-size:13px}
.tag{font-size:11px;padding:1px 6px;border-radius:5px;background:#eef1f6;color:#4a5568}
.tag.asana{background:#fde8ec;color:#a3324b}.tag.email{background:#e6f0ff;color:#2457b3}.tag.tab{background:#efe8fb;color:#6a3fb8}
.asana-notes{white-space:pre-wrap;overflow-wrap:anywhere;background:#f8f9fb;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;margin:0}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:14px;margin:0}
.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}
.stack>*+*{margin-top:16px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-size:14px;z-index:50;box-shadow:0 4px 16px rgba(0,0,0,.2);max-width:90vw}
.users td,.users th{cursor:default}
.inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.check{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:12px}
.hint{font-size:12px;color:var(--muted)}
/* contacts */
.ch{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.ch h2{margin:0}
.bcard{border-left:4px solid var(--navy)}
.bname{font-size:18px;font-weight:700;margin-bottom:8px}
.bname a{color:var(--ink);text-decoration:none}
.bname a:hover{text-decoration:underline}
.clinks{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.clink{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid #c9d6ef;border-radius:999px;background:#f3f7ff;color:var(--accent);text-decoration:none;font-size:14px;font-weight:600;max-width:100%;overflow-wrap:anywhere;min-height:38px}
.clink:hover{background:#e6efff}
.clink.none{background:#f6f7f9;border-color:var(--line);color:var(--muted);font-weight:500}
.clink .ic{font-size:15px}
.ctype{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:600;background:#eef1f6;color:#46536b;white-space:nowrap}
.picker{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fafbfd}
.picker .ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.x{background:none;border:0;color:#9aa3b2;cursor:pointer;font-size:20px;line-height:1;padding:2px 8px;border-radius:6px}
.x:hover{color:var(--bad);background:#fbeceb}
.pk-list{list-style:none;margin:8px 0;padding:0;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}
.pk-list li+li{border-top:1px solid #f0f2f5}
.pk-list button{display:block;width:100%;text-align:left;background:none;border:0;padding:9px 12px;cursor:pointer}
.pk-list button:hover{background:#f3f7ff}
.pk-list .dsub{display:block}
#pk_form:not(:empty){margin-top:12px}
.olist,.dlist{list-style:none;margin:0;padding:0}
.olist li{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid #f0f2f5}
.olist li:first-child{border-top:0;padding-top:0}
.ol-main{min-width:0}
.olist a{color:var(--ink);text-decoration:none}
.dlist li{padding:10px 0;border-top:1px solid #f0f2f5}
.dlist li:first-child{border-top:0;padding-top:0}
.dlist a{color:var(--ink);text-decoration:none}
.blink{color:var(--ink);font-weight:600;text-decoration:none}
.blink:hover{text-decoration:underline}
.ctable td a{text-decoration:none}
.ccard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;cursor:pointer}
.ccard .row1{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.ccard .clink{padding:6px 10px;min-height:34px;font-size:13.5px}
@media (max-width:900px){
  .dgrid{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:700px){
  main{padding:14px}
  .topbar{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top))}
  .brand-text .sep,.brand-text span:last-child{display:none}
  .nav a,.linkbtn{padding:6px 6px;font-size:13px}
  .nav{gap:0}
  .stats{grid-template-columns:repeat(4,1fr);gap:6px}
  .stat.st-all{display:none}
  .stat{padding:8px 8px;border-top-width:3px}
  .stat .n{font-size:21px}
  .stat .l{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .stat .l .long{display:none}.stat .l .short{display:inline}
  #logout{white-space:nowrap}
  .toolbar input[type=search]{flex:1 1 100%}
  .toolbar>select,.toolbar>div{flex:1 1 40%;width:auto;min-width:0}
  .table-wrap{display:none}
  .cards{display:block}
  .form2{grid-template-columns:1fr}
  h1{font-size:20px}
}
@media (max-width:520px){body:not(.portal) .brand-text{display:none}}
@media (max-width:380px){.brand-text{display:none}.nav a,.linkbtn{padding:6px 4px;font-size:12.5px}}

/* ---- client portal (officer side) ---- */
.flag{flex:none;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;border:1px solid #c9cfda;background:#fff;color:var(--muted);cursor:pointer;white-space:nowrap}
.flag.on{background:#e6f0ff;border-color:#9dbcf2;color:#1d4fa8}
.flag.static{cursor:default;display:inline-block;padding:0 6px}
.checklist li.isclient{background:linear-gradient(90deg,#f3f7ff,transparent 60%)}
.cst{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;vertical-align:1px}
.cst.rec{background:#fdf0dc;color:#8a5a12}.cst.rej{background:#fbeceb;color:var(--bad)}.cst.ok{background:#e5f4ec;color:var(--ok)}
.addrow select{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:#fff;min-height:38px;max-width:150px}
.presets{margin-top:10px}.presets summary{cursor:pointer;color:var(--accent);font-size:14px;font-weight:600}
.presetrow{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.preset{border:1px dashed #9dbcf2;background:#f6f9ff;color:#1d4fa8;border-radius:999px;padding:6px 10px;font-size:13px;cursor:pointer}
.preset:disabled{opacity:.45;cursor:default;border-style:solid;background:#f0f2f5;color:var(--muted)}
.culist,.flist{list-style:none;margin:0;padding:0}
.culist li,.flist li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid #f0f2f5}
.culist li:last-child,.flist li:last-child{border-bottom:0}
.flist .fmain{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}.flist .fname{font-weight:600;text-decoration:none}
.flist li.pending{background:linear-gradient(90deg,#fff8ec,transparent 70%)}
.flist .x{background:none;border:0;color:#9aa3b2;cursor:pointer;font-size:18px;padding:2px 6px}
.rejnote{color:var(--bad)}
.inline{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pwbox{margin:10px 0;padding:12px;border:1px solid #9dbcf2;background:#f3f7ff;border-radius:8px}
.pwline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.pwline code{font-size:18px;font-weight:700;letter-spacing:.5px;background:#fff;border:1px solid var(--line);padding:4px 10px;border-radius:6px;user-select:all}
.upbanner{margin:0 0 14px;padding:12px 14px;border-radius:var(--radius);background:#fff8ec;border:1px solid #f1d39b}
.upbanner .uplinks{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.upbanner .uplinks a{background:#fff;border:1px solid #f1d39b;border-radius:999px;padding:4px 10px;text-decoration:none;font-size:13px;color:var(--ink)}
.uppill{display:inline-block;font-size:11px;font-weight:700;background:#fdf0dc;color:#8a5a12;padding:1px 6px;border-radius:999px;margin-left:4px;vertical-align:1px}
.cgroup{margin-bottom:20px}.ghead{font-size:16px;margin:8px 0 8px;color:var(--navy)}
.addrow{flex-wrap:wrap}.addrow input{min-width:0}
.addrow input{flex:1 1 200px}.addrow input[type=file]{flex:1 1 180px;font-size:13px}

/* e-sign + shared progress (v5) */
.es{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;vertical-align:1px;background:#eef1f6;color:#4a5568}
.es-viewed{background:#e8f0fd;color:#24539e}.es-signed{background:#e5f4ec;color:var(--ok)}.es-declined{background:#fbeceb;color:var(--bad)}.es-voided{background:#f1f1f1;color:#8a8f99;text-decoration:line-through}.es-new{background:#fdf0dc;color:#8a5a12}
.esrow .hash{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;overflow-wrap:anywhere}
.esform{margin-top:12px;padding-top:12px;border-top:1px dashed #dfe3ea}
.pdfbox{max-height:70vh;overflow:auto;background:#e9edf3;border:1px solid var(--line);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:8px;-webkit-overflow-scrolling:touch}
.pdfpage{position:relative;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);width:100%;cursor:crosshair;flex:none}
.pdfpage canvas{display:block;width:100%;height:100%}
.pdfpage .pgno{position:absolute;right:6px;bottom:6px;font-size:11px;background:rgba(20,40,75,.7);color:#fff;padding:1px 6px;border-radius:6px;pointer-events:none}
.sigmark{position:absolute;width:34%;height:0;border-bottom:2px solid #d97706;pointer-events:none}
.sigmark span{position:absolute;left:0;bottom:2px;background:#fde68a;color:#7c4a03;font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px 4px 4px 0;white-space:nowrap}
.linkish{background:none;border:0;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline;font-size:inherit}
.warnline{color:#8a5a12;font-weight:600}
.uppill.sig{background:#e5f4ec;color:var(--ok)}.uppill.wait{background:#eef1f6;color:#4a5568}
.sigbanner{background:#eefaf3;border-color:#a9dcc0}
.steps{list-style:none;margin:4px 0 14px;padding:0;display:flex;gap:0;counter-reset:s}
.steps li{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;font-size:11.5px;color:var(--muted)}
.steps li::before{content:"";position:absolute;top:12px;left:-50%;width:100%;height:3px;background:#dfe3ea;z-index:0}
.steps li:first-child::before{display:none}
.steps li.done::before,.steps li.cur::before{background:var(--ok)}
.steps .dot{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid #cfd5df;font-weight:700;font-size:12px;color:var(--muted)}
.steps li.done .dot{background:var(--ok);border-color:var(--ok);color:#fff}
.steps li.cur .dot{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 0 0 4px rgba(20,40,75,.15)}
.steps li.cur{color:var(--navy);font-weight:700}
.steps .lbl{margin-top:5px;line-height:1.2;overflow-wrap:normal;word-break:keep-all;padding:0 1px}
@media (max-width:480px){.steps li{font-size:10px;letter-spacing:-.1px}.steps .dot{width:24px;height:24px}.steps li::before{top:11px}}
.shsec{margin-top:12px;padding-top:12px;border-top:1px solid #f0f2f5}
.shh{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.tog{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--navy);cursor:pointer}
.tog input{width:18px;height:18px}

/* deal assignment (2026-10-25) */
.dsub.asg{font-size:12px;color:var(--muted);margin-top:2px}
.unasg{color:var(--warn);font-weight:600}
.bulkbar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#eef3fb;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin:0 0 12px}
.bulkbar .linkbtn{color:var(--navy);text-decoration:underline;background:none;border:0;padding:4px 2px;font:inherit;font-size:14px;cursor:pointer}
.bulkbar #selcount{font-weight:700;margin-right:4px}
.bulkbar select{min-height:36px;max-width:100%;width:auto;min-width:150px;flex:0 1 auto}
.bulkbar>div{flex:0 1 220px;width:220px;min-width:0}
.bulkbar>div select{width:100%;min-width:0}
th.selc,td.selc{width:34px;text-align:center}
td.selc input,.dcard .pick{width:20px;height:20px;accent-color:var(--navy)}
tr.picked td{background:#eef3fb}
.dcard.selmode{cursor:pointer}
.dcard.picked{outline:2px solid var(--navy);background:#f3f7fd}
.dcard .row1 .pick{flex:0 0 auto;margin:2px 8px 0 0}
.asglist{display:flex;flex-direction:column;gap:6px}
.asglist .check{display:flex;align-items:center;gap:8px}
.asglist .check input{width:18px;height:18px}
@media (max-width:520px){.bulkbar{gap:6px;padding:8px}.bulkbar #selcount{flex:1 1 100%}.bulkbar select{flex:1 1 40%;min-width:0}.bulkbar>div{flex:1 1 40%;width:auto}.toolbar #selbtn{width:100%}}

/* lenders (multi-lender sourcing) */
#lendcard h2{display:flex;align-items:center;gap:8px}
.llist{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:8px}
.lrow{border:1px solid var(--line);border-radius:8px;background:#fff}
.lrow.lsel{border-color:#9fd3b6;background:#f6fbf8}
.lrow.ldec .lname strong{color:var(--muted);text-decoration:line-through}
.lrow summary{list-style:none;cursor:pointer;padding:10px 12px;display:flex;align-items:center;gap:8px}
.lrow summary::-webkit-details-marker{display:none}
.lrow summary::after{content:"▸";margin-left:auto;color:var(--muted);transition:transform .15s}
.lrow details[open] summary::after{transform:rotate(90deg)}
.lsum{min-width:0;flex:1}
.lname{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.lbody{padding:0 12px 12px}
.lcontact{margin:0 0 6px;font-size:14px;word-break:break-word}
.lterms{margin:0 0 8px}
.lreq{margin:6px 0;font-size:14px}.lreq ul,.creq{margin:4px 0 0;padding-left:18px}.creq{font-size:13px}
.lnotes{white-space:pre-wrap;font-size:14px;margin:6px 0;color:#333}
.lacts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.lacts .x{margin-left:auto}
.lbar{display:flex;gap:8px;flex-wrap:wrap}
.lup{margin-top:8px}
.ls{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;background:#eef1f6;color:#4a5568;white-space:nowrap}
.ls-to_send{background:#f3f4f6;color:#6b7280;border:1px dashed #c3c8d0;padding:0 7px}.ls-submitted{background:#e2f3f7;color:#1d6a80}.ls-reviewing{background:#e8f0fd;color:#24539e}.ls-soft_quote{background:#fdf0dc;color:#8a5a12}.ls-term_sheet{background:#efe8fb;color:#6a3fb8}.ls-declined{background:#fbeceb;color:var(--bad)}.ls-selected{background:#e5f4ec;color:var(--ok)}
.larch{margin:4px 0 10px}.larch summary{cursor:pointer;padding:4px 0}.larch .lrow{background:#fafbfd}
.lwarn{background:#fff7e8;border:1px solid #f1d39b;border-radius:8px;padding:10px 12px;margin:0 0 10px;font-size:14px}
.lpick{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 6px}
.lsub{font-weight:700;font-size:13px;color:var(--muted);margin:4px 0 6px;text-transform:uppercase;letter-spacing:.3px}
.lterms3{grid-template-columns:1fr 1fr 1fr}
.lsumd{color:#2457b3}
.cmp-table{overflow-x:auto}
table.cmp{border-collapse:collapse;width:100%;font-size:14px;background:#fff}
table.cmp th,table.cmp td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
table.cmp thead th{background:#f4f6fa}table.cmp tbody th{background:#fafbfd;font-weight:600;color:var(--muted);white-space:nowrap}
.lbest{background:#e5f4ec;color:var(--ok);font-weight:700;padding:0 4px;border-radius:4px}
.cmp-cards{display:none}
.cmpcard{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 12px;margin-bottom:8px}
.cmpcard .kv{margin:6px 0 0}
.ovl{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.ovbox{background:#fff;border-radius:12px;max-width:440px;width:100%;padding:18px;max-height:90vh;overflow:auto;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.ovlist{display:flex;flex-direction:column;gap:8px}.ovlist .btn{justify-content:flex-start;text-align:left;height:auto;padding:10px 12px}
@media (max-width:700px){.cmp-table{display:none}.cmp-cards{display:block}.lterms3{grid-template-columns:1fr 1fr}}

/* ---- Closed → Refinance ---- */
.st-closed{--c:#4b5563}.st-refi{--c:#7c3aed}
.closebar{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 0}
.closecard{border-left:4px solid var(--c)}
.closecard h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cbtns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rchip{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:#eef1f6;color:#3b4557}
.rchip.rs-overdue{background:#fdecea;color:#b42318}.rchip.rs-this_month{background:#fff4e0;color:#9a5b00}.rchip.rs-next_30{background:#eaf1fd;color:#1f4fae}
.rchip.rs-needs_date{background:#fff;color:#6b4e00;border:1px dashed #c8a24a}.rchip.rs-closed{background:#f1f2f4;color:#4b5563}.rchip.rs-later{background:#f2eefe;color:#5b30b8}
.rs-txt.overdue{color:#b42318;font-weight:700}.rs-txt.this_month{color:#9a5b00;font-weight:700}.rs-txt.needs_date{color:#8a6100;font-weight:600}
.rs-row-overdue{background:#fff6f5}.rs-row-this_month{background:#fffaf0}
tr.rs-row-overdue td:first-child{box-shadow:inset 4px 0 0 #d92d20}tr.rs-row-this_month td:first-child{box-shadow:inset 4px 0 0 #e8a33d}
.rcard.rs-row-overdue{border-left:4px solid #d92d20}.rcard.rs-row-this_month{border-left:4px solid #e8a33d}.rcard.rs-row-needs_date{border-left:4px dashed #c8a24a}
.rtable tr{cursor:pointer}.rtable .rnote{max-width:320px;color:var(--muted);font-size:13px}
.rcard .row1{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.rcard .rmeta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;margin-top:6px;color:var(--ink)}
.rcard .rnote{font-size:13px;color:var(--muted);margin-top:6px}
.rfilters{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 12px}
.rf{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;font-size:13.5px;cursor:pointer;color:var(--ink);display:inline-flex;gap:6px;align-items:center}
.rf.on{background:var(--navy);color:#fff;border-color:var(--navy)}.rf.on .pill{background:rgba(255,255,255,.2);color:#fff}
.refibar{background:#f6f3ff;border:1px solid #ddd3fb;border-left:4px solid #7c3aed;border-radius:var(--radius);padding:10px 14px;margin-bottom:14px}
.refibar.hot{background:#fffaf0;border-color:#f3dcae;border-left-color:#e8a33d}
.refibar .rb-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}
.refibar .rb-all{font-size:14px;font-weight:600;color:var(--navy);text-decoration:none;white-space:nowrap}
.refibar .uplinks{margin-top:6px}.refibar .rb-sub{margin-top:6px;font-size:13.5px}.refibar .rb-sub a{color:inherit}
.qpicks{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.qp{border:1px solid #c9cfda;background:#fff;border-radius:8px;padding:8px 12px;font-size:14px;cursor:pointer;min-height:40px}
.qp.on{background:var(--navy);color:#fff;border-color:var(--navy)}
@media (max-width:700px){.refibar{padding:9px 11px}.refibar .rb-head strong{font-size:14px}}
.cbtns .linkbtn{color:var(--navy);text-decoration:underline;font-size:14px;padding:6px 4px}.cbtns .linkbtn:hover{background:none;color:var(--navy2)}

/* per-lender outstanding items (task 70e22cae) */
.lopen{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:#fdf0dc;color:#8a5a12;margin-left:4px;white-space:nowrap}
.litems{border:1px solid #eef1f6;background:#fff;border-radius:8px;padding:8px 10px;margin:0 0 10px}
.lih{display:flex;align-items:center;gap:8px;margin-bottom:2px;font-size:14px}
.ilist{margin:0 0 6px}
.ilist li{padding:7px 0}
.ilist .imain{flex:1;min-width:0;overflow-wrap:anywhere}
.ilist li.done .t{text-decoration:line-through;color:var(--muted)}
.imeta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:#4a5568;margin-top:2px}
.idue.late{color:var(--bad);font-weight:600}
.iby{font-size:11px;color:#8c95a5;margin-top:1px}
.iedit{background:none;border:0;color:#7a8597;cursor:pointer;font-size:16px;padding:2px 6px;border-radius:6px;line-height:1}
.iedit:hover{background:#eef1f6;color:var(--navy)}
.idone summary{cursor:pointer;font-size:13px;margin:2px 0 4px}
.iadd,.iedform{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}
.iadd .itxt,.iedform .e_t{flex:1 1 100%;min-width:0}
.iopt{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 auto;min-width:0}
.iopt .iwho,.iopt .e_w{flex:1 1 140px;min-width:0}
.ilab{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}
.ilab input[type=date]{min-height:36px;max-width:150px}
.ilist li.editing{display:block}
.iedform .inline{display:flex;gap:6px}
@media (max-width:520px){.iadd .btn{flex:1 1 100%}.ilist .x,.iedit{padding:6px 8px}}

/* portfolios (task 70e22cae) */
.pfcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;background:#f3f7ff;border:1px solid #d9e4f7;border-radius:8px;padding:7px 10px;margin:0 0 10px;font-size:14px}
.pfcrumb .linkbtn{margin-left:auto;font-size:13px}
.pfl{color:#2457b3;font-weight:600}
.tree{color:#9aa3b2;margin-right:6px;font-weight:400}
tr.childrow td{background:#fafcff}
tr.childrow td:first-child{padding-left:26px}
tr.pfrow td{border-bottom-color:transparent}
.dcard.childrow{margin-left:18px;border-left:3px solid #c9d8f2}
.dcard.pfrow{border-bottom-left-radius:4px}
.pflist{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.pflist li{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:#fafbfd}
.pflist .pfmain{flex:1;min-width:0;padding:9px 12px;text-decoration:none;color:inherit}
.pflist .pfname{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pfopen{color:#8a5a12;font-weight:600}
.pfacts{display:flex;flex-wrap:wrap;gap:8px}
#pf_panel:not(:empty){margin-top:10px}
.pfmini summary{cursor:pointer;font-weight:600;font-size:15px}
.lio{color:#8a5a12;font-size:12px}
.pfcrumb .linkbtn{color:var(--navy);text-decoration:underline;background:none}

/* client messages (task 93ef4011) */
.uppill.msg{background:#e8f0fd;color:#1f4fa8}
.upbanner.msgbanner{background:#eef4ff;border-color:#bcd0f5}.upbanner.msgbanner .uplinks a{border-color:#bcd0f5}
.msgcard summary{cursor:pointer;list-style:none}.msgcard summary::-webkit-details-marker{display:none}
.msgcard summary h2{margin:0}
.mthread{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow-y:auto;padding:10px;margin:10px 0 8px;background:#f6f8fb;border:1px solid var(--line);border-radius:10px;-webkit-overflow-scrolling:touch}
.mempty{margin:6px 2px;font-size:14px}
.mmsg{max-width:86%;padding:8px 11px;border-radius:12px;background:#fff;border:1px solid var(--line);align-self:flex-start;overflow-wrap:anywhere}
.mmsg.mine{align-self:flex-end;background:#e8f0fd;border-color:#c8d8f6}
.mmsg.unread{box-shadow:0 0 0 2px #f1b94a}
.mmeta{font-size:12px;color:var(--muted);margin-bottom:3px}.mmeta strong{color:var(--ink);font-weight:700}
.mtxt{font-size:15px;line-height:1.4;white-space:pre-wrap}
.mfile{display:inline-block;margin-top:5px;font-size:14px;font-weight:600;color:var(--navy);text-decoration:none;overflow-wrap:anywhere}
.mnewtag{display:inline-block;font-size:10.5px;font-weight:800;background:#fdf0dc;color:#8a5a12;padding:0 6px;border-radius:999px}
.mform textarea{width:100%;min-height:62px;font:inherit;font-size:16px;padding:10px;border:1px solid #c9cfda;border-radius:8px;box-sizing:border-box;resize:vertical}
.mrow{display:flex;align-items:center;gap:8px;margin-top:8px}.mrow .mfname{flex:1;min-width:0;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mattach{cursor:pointer}
.mnew{display:inline-block;font-size:12px;font-weight:800;background:#2f6fde;color:#fff;padding:2px 9px;border-radius:999px;white-space:nowrap}
.pmsg{margin:12px 0 4px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fbfcfe}
.pmsg summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;font-weight:700;color:var(--navy);min-height:28px}
.pmsg summary::-webkit-details-marker{display:none}
.pmhint{font-size:13px;font-weight:600;color:var(--accent)}
.pmsg[open] .pmhint{display:none}

/* multi-officer (2026-10-26) */
.asgchip{display:inline-block;font-size:12px;color:var(--muted);margin-left:6px;white-space:nowrap}
.asglist .check{margin-bottom:0;padding:8px 10px;border:1px solid #e3e6ea;border-radius:10px;min-height:44px;cursor:pointer}
.asglist .check:has(input:checked){background:#eef5ff;border-color:#9cc3f5}
@media (min-width:700px){.asglist{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
.asgsum{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;min-height:40px}
.asgsum::-webkit-details-marker{display:none}
.asgsum::marker{content:""}
details[open]>.asgsum .chg{display:none}

.lsent{flex:none;padding:5px 10px;font-size:12px;white-space:nowrap}

/* ---- Inactive stage + header stage picker (2026-11-02) ---- */
.st-inactive{--c:#8a94a6}
.stagepick{position:relative;display:inline-block;vertical-align:middle}
.stagepick select{-webkit-appearance:none;appearance:none;width:auto;min-height:0;height:auto;border:0;border-radius:999px;background:var(--c,#94a0b4);color:#fff;font-size:13px;font-weight:600;line-height:1.3;padding:4px 26px 4px 11px;cursor:pointer;flex:none}
.stagepick::after{content:"▾";position:absolute;right:10px;top:50%;transform:translateY(-52%);color:#fff;font-size:11px;pointer-events:none}
.stagepick select:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.inactbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:-6px 0 14px;font-size:14px;color:var(--muted)}
.inactbar .linkbtn{color:var(--navy);font-weight:600;padding:4px 0;font-size:14px}
.inactbar.on{background:#f3f4f7;border:1px solid var(--line);border-left:4px solid #8a94a6;border-radius:var(--radius);padding:9px 12px;margin-top:0;color:#3b4456}
.closebar .btn{white-space:nowrap}
.fuwrap{display:inline-block}
.fuwrap .btn[disabled]{opacity:.55;cursor:not-allowed;pointer-events:none}
.fumiss{color:#a15c00}

/* Send from my Outlook (task b9f90227) */
.ostate { margin: 4px 0 10px; padding: 8px 10px; border-radius: 8px; font-size: 14px; }
.ostate.ok { background: #eaf6ee; color: #1d5b33; }
.ostate.warn { background: #fff6e0; color: #6b4a00; }
#ecomp .eatt { margin: 6px 0 10px; }
#ecomp .eattg { display: flex; flex-direction: column; gap: 4px; margin: 4px 0 8px; }
.echk { display: flex; align-items: center; gap: 6px; font-size: 14px; margin: 2px 0; flex-wrap: wrap; }
.echk input { width: auto; margin: 0; }
#ecomp textarea { font-family: inherit; }
#e_attsz.error { color: #b42318; }
.esent { margin-top: 10px; }
.elog { list-style: none; padding: 0; margin: 6px 0 0; }
.elog > li { border-top: 1px solid #e6e9ef; padding: 8px 0; }
.elog pre { white-space: pre-wrap; font-family: inherit; font-size: 13px; margin: 6px 0 0; background: #f7f8fa; padding: 8px; border-radius: 6px; }
#outlookcard code { font-size: 12px; word-break: break-all; }
.echk { flex-wrap: nowrap; align-items: flex-start; }
.echk input { flex: none; margin-top: 3px; }
#ecomp .savebar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
#ecomp .savebar .btn { white-space: nowrap; }

/* ---- lender profiles + lender fit (task 4743e989) ---- */
.lplink{background:none;border:0;padding:2px 4px;color:var(--accent);text-decoration:underline;cursor:pointer;font-size:14px}
.lpchip{display:inline-block;font-size:12px;padding:2px 8px;margin:2px 4px 2px 0;border-radius:999px;background:#eef1f6;color:#38445a;white-space:normal}
.lpchip .x{margin-left:2px;padding:0 2px}
.lptool{flex-wrap:wrap}
.lpcard .row1{margin-bottom:4px}
.lpprog{display:block;color:var(--ink);text-decoration:none;padding:6px 0;border-top:1px solid #f0f2f5}
.lpprog:first-of-type{border-top:0}
.lpp{display:inline-block;font-size:12px;font-weight:700;padding:1px 8px;margin-right:6px;border-radius:6px;background:#e6f0ff;color:#2457b3}
.lpp.big{font-size:14px;vertical-align:middle}
.lpacts{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}
.lpsec{font-size:15px;margin:14px 0 6px;color:var(--navy)}
.lpcheck{border:0;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:4px 14px}
.lpcheck legend{font-size:13px;font-weight:600;color:var(--muted);padding:0;margin-bottom:6px;width:100%}
.lpcheck .check{margin-bottom:4px}
.lpcl{display:flex;flex-wrap:wrap;gap:4px}
.fitc{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;white-space:nowrap;vertical-align:middle}
.fit-fits{background:#dff3e8;color:#1e6b47}.fit-close{background:#fdf0dc;color:#8a5a12}.fit-unk{background:#eef1f6;color:#5d6779}.fit-no{background:#fbe4e1;color:#a5321f}
.tag.fit-no{background:#fbe4e1;color:#a5321f}
.lfsum{margin:0 0 6px}
.lflist{list-style:none;margin:0;padding:0}
.lfrow{padding:8px 0;border-top:1px solid #f0f2f5}
.lflist .lfrow:first-child{border-top:0}
.lfh{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.lfh a{font-weight:600;color:var(--ink);text-decoration:none}
.lfr{font-size:13px;color:#38445a;margin-top:2px;overflow-wrap:anywhere}
.lfmore{margin-top:8px}
.lfmore summary{cursor:pointer;color:var(--muted);font-size:14px;padding:4px 0}
#lfit h2 .fitc{margin-left:6px}
.lpol li{flex-direction:column;gap:2px}
.lpol .ol-main{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
@media (max-width:700px){.nav{flex-wrap:wrap;justify-content:flex-end;row-gap:2px;min-width:0;flex:1 1 auto}.topbar{gap:8px}}
.lfnote{margin:0 0 8px;padding:8px 10px;border-radius:8px;background:#f4f6f9;font-size:13px;color:#38445a}

/* outbox (task b0233549) */
.oblist{list-style:none;padding:0;margin:6px 0 0}
.obrow{border-top:1px solid var(--line);padding:10px 0}
.obh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.obs{font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px}
.obs-draft{background:#eef1f6;color:var(--muted)}.obs-sent{background:#eaf6ee;color:#1d5b33}.obs-failed{background:#fdecea;color:var(--bad)}.obs-sending{background:#e8f0fd;color:#24539e}
.obsubj{font-size:14px;margin:2px 0;overflow-wrap:anywhere}
.obrow .dsub{overflow-wrap:anywhere}
.obprev{margin-top:6px}.obprev summary{cursor:pointer}
.obbody{white-space:pre-wrap;font-family:inherit;font-size:13px;margin:6px 0 0;background:#fafbfd;border:1px solid var(--line);border-radius:8px;padding:8px}
.obform{margin-top:6px}.obform .field{margin-bottom:8px}.obform input,.obform textarea{width:100%;box-sizing:border-box}
.obact{display:flex;gap:8px;margin-top:8px}
#obsendall{width:100%}
.otab{margin:12px 0 0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fafbfd}.otab label{display:flex;gap:8px;align-items:flex-start;font-weight:600;font-size:14px}

/* Deal Contacts card (task bdaa64b6) */
.dccard .dcg{border-top:1px solid var(--line);padding:10px 0 4px}
.dccard .dcg:first-of-type{border-top:0;padding-top:4px}
.dccard .dcg-h{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.dccard .dcg-h .pill{font-size:11px;padding:0 6px}
.dccard .dcg-btns{display:flex;gap:10px;text-transform:none;letter-spacing:0;font-weight:400;font-size:14px}
.dccard .dcl{list-style:none;margin:0;padding:0}
.dccard .dce{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 10px;padding:6px 0}
.dccard .dce + .dce{border-top:1px dashed var(--line)}
.dccard .dce-main{flex:1 1 220px;min-width:0}
.dccard .dce-top{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;word-break:break-word}
.dccard .dce-acts{display:flex;align-items:center;gap:8px;flex:0 0 auto;font-size:13px}
.dccard .dcpanel{flex-basis:100%}
.dccard .dcpanel:empty{display:none}
.dccard .clinks{margin-top:3px}
.dccard .clink{word-break:break-all}
.dccard .dctext{white-space:pre-wrap;word-break:break-word}
.dccard .dcprim{background:#e8f0fd;color:var(--navy2)}
.dccard .dcnoc{margin:4px 0 0}
.dccard .dcnoc .linkish{font-size:inherit}
.dccard .dcempty{margin:0 0 4px}
.dccard .ctype.ls-declined{opacity:.6}
li.lrow.dcflash{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px;transition:outline-color .4s}
@media (max-width:700px){.dccard .dce-acts{width:100%;justify-content:flex-start}}
