/* LoanDesk UI v2 */
:root{
  --bg:#f3f5fb;--surface:#fff;--ink:#0f172a;--muted:#64748b;--line:#e6e9f2;
  --brand:#4f46e5;--brand-d:#4338ca;--brand-l:#eef0ff;--accent:#0ea5a4;--green:#16a34a;--amber:#f59e0b;--red:#e11d48;
  --side:#0b1220;--side2:#111a2e;--radius:14px;--shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.06);
  --bs-primary:#4f46e5;--bs-body-font-family:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--bs-body-color:#0f172a;--bs-border-color:#e6e9f2;
}
*{-webkit-font-smoothing:antialiased}
body{background:var(--bg);color:var(--ink);font-family:var(--bs-body-font-family);font-size:.925rem}
h1,h2,h3,h4,h5,h6{font-weight:650;letter-spacing:-.015em;color:var(--ink)}
a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-d)}
.text-muted{color:var(--muted)!important}

/* ---------- Sidebar (light, dark text) ---------- */
.sidebar,.sidebar.offcanvas-lg{width:268px;min-height:100vh;flex-shrink:0;color:#334155;display:flex;flex-direction:column;
  background-color:#fff!important;background-image:none!important;border-right:1px solid var(--line)!important}
@media(min-width:992px){.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto}}
.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:#d6dbe8;border-radius:3px}
.sb-head{display:flex;align-items:center;gap:.8rem;padding:1.25rem 1.25rem 1rem}
.sb-logo{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:1.1rem;flex-shrink:0;
  background:linear-gradient(135deg,#6366f1,#0ea5a4);box-shadow:0 6px 16px rgba(99,102,241,.35)}
.sb-name{color:#0f172a;font-weight:700;font-size:1.02rem;line-height:1.15;word-break:break-word}
.sb-sub{font-size:.72rem;color:#64748b}
.sb-user{margin:0 1rem 1rem;padding:.65rem .8rem;border-radius:12px;background:#f5f6fc;border:1px solid var(--line);display:flex;align-items:center;gap:.7rem}
.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:650;font-size:.85rem;color:#fff;background:linear-gradient(135deg,#f59e0b,#e11d48);flex-shrink:0}
.sb-user .n{color:#0f172a;font-size:.85rem;font-weight:600;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-user .r{font-size:.7rem;color:#64748b}
.sb-nav{padding:0 .75rem 1rem;flex:1}
.sb-group{margin-top:1.1rem}
.sb-group:first-child{margin-top:.25rem}
.nav-label{display:flex;align-items:center;gap:.6rem;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#8792a8;padding:.2rem .85rem .45rem}
.nav-label::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#e3e7f2,transparent)}
.sidebar .nav-link{display:flex;align-items:center;gap:.75rem;padding:.55rem .85rem;margin:2px 0;border-radius:10px;color:#334155!important;font-weight:500;font-size:.9rem;transition:background .15s,color .15s}
.sidebar .nav-link i{width:1.25rem;text-align:center;font-size:1.05rem;color:#64748b}
.sidebar .nav-link:hover,.sidebar .nav-link:focus{background:#eceefe;color:#1e1b4b!important}
.sidebar .nav-link:hover i{color:var(--brand)}
.sidebar .nav-link.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff!important;box-shadow:0 8px 18px rgba(79,70,229,.28)}
.sidebar .nav-link.active i{color:#fff}
.sidebar .nav-link.logout{color:#be123c!important}.sidebar .nav-link.logout i{color:#be123c}
.sidebar .nav-link.logout:hover{background:#ffe9ee;color:#9f1239!important}
.sb-foot{padding:.75rem;border-top:1px solid var(--line)}

/* ---------- Top bar ---------- */
.content{min-width:0;display:flex;flex-direction:column;min-height:100vh}
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line);padding:.7rem 1.25rem;min-height:60px}
.topbar h5{font-size:1.1rem;font-weight:650;margin:0}
.chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;padding:.3rem .7rem}
.topbar .dropdown-toggle::after{display:none}
.userbtn{display:flex;align-items:center;gap:.55rem;background:none;border:0;padding:.15rem .3rem;border-radius:999px}
.userbtn:hover{background:#f1f3fa}
.dropdown-menu{border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:.4rem}
.dropdown-item{border-radius:8px;font-size:.9rem;padding:.45rem .7rem}
main{flex:1}

/* ---------- Cards, stats ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-header{background:transparent;border-bottom:1px solid var(--line);font-weight:650;padding:.85rem 1.1rem}
.card-body{padding:1.1rem}
.stat{position:relative;overflow:hidden;padding:1.05rem 1.15rem}
.stat::before{content:"";position:absolute;right:-26px;top:-26px;width:96px;height:96px;border-radius:50%;background:var(--tint,#eef0ff);opacity:.9}
.stat::after{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 4px 4px 0;background:var(--tone,var(--brand))}
.stat .lbl{position:relative;font-size:.7rem;font-weight:650;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.stat .val{position:relative;font-size:1.55rem;font-weight:700;line-height:1.25;letter-spacing:-.02em;margin-top:.15rem}
.stat.accent{--tone:#16a34a;--tint:#e8f8ee}.stat.warn{--tone:#f59e0b;--tint:#fff4de}.stat.bad{--tone:#e11d48;--tint:#ffe9ee}
.stat.info{--tone:#0ea5a4;--tint:#e2f7f6}

/* ---------- Tables ---------- */
.table{--bs-table-bg:transparent;--bs-table-hover-bg:#f7f8fd;margin-bottom:0}
.table>:not(caption)>*>*{padding:.75rem 1rem;border-bottom-color:var(--line)}
.table thead th{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:650;background:#f8f9fd;border-bottom:1px solid var(--line)}
.table tbody tr:hover{background:#f7f8fd}
.table-responsive{border-radius:0 0 var(--radius) var(--radius)}
.card>.table-responsive:first-child thead th:first-child{border-top-left-radius:var(--radius)}
.card>.table-responsive:first-child thead th:last-child{border-top-right-radius:var(--radius)}

/* ---------- Forms & buttons ---------- */
.form-label{font-size:.8rem;font-weight:600;color:#334155;margin-bottom:.3rem}
.form-control,.form-select{background:#fff;border:1px solid #d9deea;border-radius:10px;padding:.55rem .8rem}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .22rem rgba(79,70,229,.15)}
.form-control-sm,.form-select-sm{border-radius:8px;padding:.3rem .6rem}
.btn{border-radius:10px;font-weight:550;padding:.5rem .95rem}
.btn-sm{border-radius:8px;padding:.28rem .6rem}
.btn-lg{border-radius:12px}
.btn-primary{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand-d);--bs-btn-hover-border-color:var(--brand-d);--bs-btn-active-bg:var(--brand-d);--bs-btn-active-border-color:var(--brand-d);box-shadow:0 4px 12px rgba(79,70,229,.25)}
.btn-outline-primary{--bs-btn-color:var(--brand);--bs-btn-border-color:#c7cbf5;--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand);--bs-btn-active-bg:var(--brand)}
.btn-outline-dark{--bs-btn-color:#1e293b;--bs-btn-border-color:#d3d9e6;--bs-btn-hover-bg:#1e293b;--bs-btn-hover-border-color:#1e293b}
.btn-outline-secondary{--bs-btn-border-color:#d3d9e6;--bs-btn-color:#475569}
.badge{font-weight:600;border-radius:999px;padding:.38em .7em;letter-spacing:.01em}
.badge.text-bg-success{background:#dcfce7!important;color:#166534!important}
.badge.text-bg-danger{background:#ffe4e9!important;color:#9f1239!important}
.badge.text-bg-warning{background:#fef3c7!important;color:#92400e!important}
.badge.text-bg-info{background:#dbeafe!important;color:#1e40af!important}
.badge.text-bg-secondary{background:#e8ebf3!important;color:#475569!important}
.badge.text-bg-primary{background:#e0e3ff!important;color:#3730a3!important}
.badge.text-bg-dark{background:#1e293b!important;color:#fff!important}
.badge.text-bg-light{background:#f1f3f9!important;color:#475569!important}
.alert{border:0;border-radius:12px;box-shadow:var(--shadow)}
.alert-success{background:#e8f8ee;color:#14532d}.alert-danger{background:#ffe9ee;color:#881337}.alert-warning{background:#fff4de;color:#78350f}.alert-info{background:#e5f0ff;color:#1e3a8a}
.alert-light{background:#fff;border:1px solid var(--line)!important}
.nav-tabs{border-bottom:1px solid var(--line)}.nav-tabs .nav-link{border:0;border-bottom:2px solid transparent;color:var(--muted);font-weight:600}
.nav-tabs .nav-link.active{background:none;color:var(--brand);border-bottom-color:var(--brand)}
ul.pagination{display:flex;gap:4px;list-style:none;padding:0;margin:1rem 0 0}
ul.pagination a{display:block;padding:.3rem .7rem;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff}
ul.pagination li.active a{background:var(--brand);color:#fff;border-color:var(--brand)}

/* ---------- Sign-in ---------- */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;
  background:radial-gradient(60% 50% at 15% 10%,rgba(99,102,241,.55),transparent 60%),radial-gradient(50% 45% at 90% 90%,rgba(14,165,164,.45),transparent 60%),#0b1220}
.auth-card{width:100%;max-width:420px;background:#fff;border-radius:20px;padding:2.1rem 2rem;box-shadow:0 30px 70px rgba(2,6,23,.55)}
.auth-card .auth-logo{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;font-size:1.3rem;background:linear-gradient(135deg,#6366f1,#0ea5a4);box-shadow:0 8px 20px rgba(99,102,241,.4);margin-bottom:1rem}
.auth-card .brand{font-size:1.45rem;font-weight:700;letter-spacing:-.02em}

/* ---------- Agent / member (mobile) ---------- */
.member-card{display:block;color:inherit;padding:.9rem 1.1rem;border-bottom:1px solid var(--line);transition:background .12s}
.member-card:last-child{border-bottom:0}.member-card:hover{background:#f7f8fd;color:inherit}
.pwa-top{background:linear-gradient(135deg,#1e1b4b,#4f46e5);color:#fff;padding:.8rem 1rem;position:sticky;top:0;z-index:5}
.btn-check:checked+.btn-outline-dark{background:#1e293b;color:#fff}

@media(max-width:991.98px){.sidebar{min-height:auto;height:100%;width:280px}}
@media print{.sidebar,.topbar,.no-print,.btn,.alert,.pagination{display:none!important}.content{width:100%}main{padding:0!important}.card{border:0!important;box-shadow:none!important}body{background:#fff!important}}
