/* Broker CRM – Bootstrap 5.3 theme layer. Brand colour comes from --brand (set per install). */
:root{--sidebar-w:244px;--ink:#1f2a3c;--muted:#6b7686;--line:#e6eaf0;--bg:#f4f6fa;--radius:12px}
body{background:var(--bg);color:var(--ink);font-size:.93rem}
.btn-primary{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand-dark);--bs-btn-hover-border-color:var(--brand-dark);--bs-btn-active-bg:var(--brand-dark);--bs-btn-active-border-color:var(--brand-dark);--bs-btn-disabled-bg:var(--brand);--bs-btn-disabled-border-color:var(--brand)}
.btn-outline-primary{--bs-btn-color:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand);--bs-btn-active-bg:var(--brand);--bs-btn-active-border-color:var(--brand)}
.btn-check:checked+.btn-outline-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.nav-pills{--bs-nav-pills-link-active-bg:var(--brand)}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem var(--brand-soft)}
.form-check-input:checked{background-color:var(--brand);border-color:var(--brand)}
.progress-bar{background-color:var(--brand)}
.text-primary{color:var(--brand)!important}.text-bg-primary{background:var(--brand)!important;color:#fff!important}.bg-primary{background:var(--brand)!important}
.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgba(20,35,60,.04)}
.card-header{background:#fff;border-bottom:1px solid var(--line);font-weight:600;border-radius:var(--radius) var(--radius) 0 0!important}
.table>:not(caption)>*>*{border-bottom-color:var(--line)}
.table thead th{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;border-bottom-width:1px;white-space:nowrap}
.clickable{cursor:pointer}
.dl-tight dt{font-weight:500;color:var(--muted)}.dl-tight dd{margin-bottom:.35rem}

/* shell */
.app-shell{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);background:#14213a;color:#cdd5e3;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto}
/* Bootstrap's .offcanvas-lg makes the background transparent on desktop – force the dark sidebar */
.sidebar.offcanvas-lg{background-color:#14213a!important;color:#cdd5e3}
@media(min-width:992px){.sidebar.offcanvas-lg{width:var(--sidebar-w)!important;position:sticky!important;top:0;height:100vh!important;flex-grow:0}}
@media(max-width:991.98px){.sidebar{position:fixed;height:100%;--bs-offcanvas-width:var(--sidebar-w);background:#14213a}}
.sidebar-brand{display:flex;align-items:center;gap:.7rem;padding:1.1rem 1.1rem .9rem;min-height:68px}
.sidebar-brand img{max-height:40px;max-width:170px;background:#fff;border-radius:8px;padding:4px 8px}
.brand-mark{width:40px;height:40px;border-radius:10px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.brand-name{color:#fff;font-weight:600;line-height:1.15}
.sidebar-nav{padding:.4rem .7rem;flex:1}
.side-link{display:flex;align-items:center;gap:.75rem;padding:.55rem .75rem;border-radius:9px;color:#b9c3d6;text-decoration:none;margin-bottom:2px;font-size:.92rem}
.side-link i{font-size:1.05rem;width:1.2rem;text-align:center}
.side-link:hover{background:rgba(255,255,255,.07);color:#fff}
.side-link.active{background:var(--brand);color:#fff;font-weight:600}
.side-heading{font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:#7385a3;padding:1rem .75rem .3rem}
.sidebar-foot{padding:.9rem 1.1rem;font-size:.75rem;color:#7385a3;border-top:1px solid rgba(255,255,255,.07)}
.sidebar-foot strong{color:#cdd5e3}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:.75rem;padding:.7rem 1.4rem;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1020}
.search-wrap{max-width:520px}.search-wrap>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted)}
.search-wrap .form-control{padding-left:2.2rem;background:var(--bg);border-color:transparent;border-radius:10px}
.content{padding:1.4rem;flex:1}
@media(max-width:575.98px){.content{padding:.9rem}.topbar{padding:.6rem .8rem}}
.app-foot{padding:1rem 1.4rem;font-size:.78rem;color:var(--muted);text-align:center}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:.72rem;flex-shrink:0}
.avatar-sm{width:24px;height:24px;font-size:.62rem}.avatar-xl{width:60px;height:60px;font-size:1.2rem}

/* login */
body.bare{background:linear-gradient(135deg,#14213a 0%,#1d2f55 55%,var(--brand-dark) 140%);min-height:100vh}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}
.login-card{width:100%;max-width:410px;background:#fff;border-radius:16px;padding:2rem;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.login-logo{max-height:64px;max-width:240px}

/* KPI + bars */
.kpi{display:flex;align-items:center;gap:.8rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.85rem 1rem;color:var(--ink);height:100%;transition:.15s}
.kpi:hover{box-shadow:0 4px 14px rgba(20,35,60,.08);transform:translateY(-1px);color:var(--ink)}
.kpi-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0}
.kpi-val{font-size:1.3rem;font-weight:700;line-height:1.1}.kpi-label{font-size:.74rem;color:var(--muted)}
.hbar{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem;font-size:.85rem}
.hbar-label{width:34%;min-width:90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hbar-track{flex:1;background:#eef1f6;border-radius:6px;height:12px;overflow:hidden}.hbar-fill{height:100%;border-radius:6px;min-width:3px}
.hbar-val{width:30px;text-align:right;font-weight:600}.hbar-sub{width:58px;text-align:right;color:var(--muted);font-size:.78rem}

/* lead page */
.lead-head .head-fields label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.15rem;font-weight:600;display:block}
.head-actions .btn{white-space:nowrap}
.snap-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.7rem}
@media(max-width:1599.98px){.snap-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:575.98px){.snap-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
.snap-tile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .85rem;display:flex;gap:.7rem;align-items:center}
.snap-ic{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.snap-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}
.snap-val{font-size:1.2rem;font-weight:700;line-height:1.15}.snap-sub{font-size:.7rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.snap-empty .snap-val{color:#b5bdc9}
.lvr-bar{position:relative;height:8px;overflow:visible;border-radius:4px;background:#e9edf3;margin:.25rem 0}
.lvr-bar .progress-bar{border-radius:4px}.lvr-mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:#344;opacity:.5}
.lead-tabs .nav-link{color:var(--muted);font-weight:500}.lead-tabs .nav-link.active{color:var(--brand);font-weight:600;border-bottom-color:#fff}
.fact-pills .nav-link{background:#fff;border:1px solid var(--line);color:var(--ink);margin-right:.3rem;margin-bottom:.3rem;padding:.35rem .75rem}
.fact-pills .nav-link.active{color:#fff;border-color:var(--brand)}
.empty-state{text-align:center;color:var(--muted);padding:2.2rem 1rem;background:#fff;border:1px dashed var(--line);border-radius:var(--radius)}
.empty-state>i{font-size:2rem;display:block;margin-bottom:.4rem;opacity:.5}
.prop-stats .ps-label{font-size:.68rem;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}.prop-stats .ps-val{font-weight:700;font-size:1.05rem}
.prop-card{border-left:4px solid var(--brand)}
.loan-table th{font-size:.68rem}
.bs-bar-row{display:flex;align-items:center;gap:.7rem;margin-bottom:.55rem}.bs-label{width:90px}.bs-val{width:72px;text-align:right}
.bs-track{flex:1;height:14px;background:#eef1f6;border-radius:7px;overflow:hidden}.bs-fill{height:100%;border-radius:7px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}
.stack-bar{display:flex;height:16px;border-radius:8px;overflow:hidden;background:#eef1f6}
.opp-ic{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.donut-wrap{flex-shrink:0;color:var(--ink)}

/* timeline */
.timeline{position:relative}
.tl-item{display:flex;gap:.9rem;padding-bottom:1.1rem;position:relative}
.tl-item:not(:last-child)::before{content:"";position:absolute;left:17px;top:36px;bottom:0;width:2px;background:var(--line)}
.tl-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1}
.tl-body{flex:1;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.6rem .85rem;min-width:0}
.tl-sub .tl-body{background:transparent;border-style:dashed;padding:.35rem .75rem}.tl-sub .tl-icon{width:28px;height:28px;margin:4px;font-size:.8rem}
.tl-text{white-space:normal;margin:.3rem 0;color:#364152;overflow-wrap:anywhere}
.plan li{padding:.12rem 0}.plan-done{color:var(--muted)}.plan-next{font-weight:600}
.msg-preview{white-space:pre-wrap}

/* kanban */
.kanban{display:flex;gap:.8rem;overflow-x:auto;padding-bottom:1rem;align-items:flex-start;min-height:60vh}
.kb-col{flex:0 0 272px;background:#e9edf3;border-radius:12px;display:flex;flex-direction:column;max-height:calc(100vh - 190px);transition:.12s}
.kb-col.over{background:var(--brand-soft);outline:2px dashed var(--brand)}
.kb-head{padding:.7rem .8rem .55rem;border-top:4px solid #888;border-radius:12px 12px 0 0;background:#f8fafc}
.kb-body{padding:.6rem;overflow-y:auto;flex:1;min-height:70px}
.kb-card{background:#fff;border-radius:10px;padding:.65rem .7rem;margin-bottom:.55rem;box-shadow:0 1px 2px rgba(20,35,60,.08);cursor:grab;border-left:3px solid #ccd3de;font-size:.86rem}
.kb-card.temp-hot{border-left-color:#dc3545}.kb-card.temp-warm{border-left-color:#ffc107}.kb-card.temp-cold{border-left-color:#0dcaf0}
.kb-card.dragging{opacity:.4}.kb-card:hover{box-shadow:0 3px 10px rgba(20,35,60,.14)}
.kb-move{border:0;background:transparent;width:22px;color:var(--muted);cursor:pointer;appearance:none;text-align:center;font-size:1rem;padding:0}

/* templates / journeys */
.tag-chip{cursor:pointer;font-weight:500}
.sms-phone{background:#1c1f26;border-radius:28px;padding:14px;max-width:320px;margin:0 auto}
.sms-bubble{background:#2f80ed;color:#fff;border-radius:18px 18px 4px 18px;padding:.7rem .9rem;font-size:.86rem;white-space:pre-wrap;word-break:break-word;margin-left:auto;max-width:90%}
.email-frame{width:100%;height:520px;border:1px solid var(--line);border-radius:10px;background:#fff}
.step-row{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;margin-bottom:.6rem}
.chip-select{display:flex;flex-wrap:wrap;gap:.4rem}
.public-form{max-width:640px;margin:0 auto;padding:1rem}
.partner-wrap{max-width:900px;margin:0 auto;padding:1.5rem 1rem}
@media print{.sidebar,.topbar,.app-foot{display:none!important}}
