/* ============================================
   RE Seller CRM v5.3 — High Contrast + Mobile
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  --bg:#f2f2f5;
  --surface:#fff;
  --surface-2:#f7f7f9;
  --surface-3:#ececef;
  --sidebar-bg:#1c2845;
  --sidebar-w:212px;
  --accent:#0066cc;
  --accent-dark:#004fa3;
  --accent-soft:rgba(0,102,204,.10);
  --text:#0d0d0f;
  --text-2:#2a2a2c;
  --muted:#6e6e73;
  --muted-2:#8e8e93;
  --border:#c9c9cf;
  --border-soft:#d8d8de;
  --radius:10px;
  --radius-sm:8px;
  --radius-xs:6px;
  --shadow-xs:0 1px 2px rgba(0,0,0,.06);
  --shadow-sm:0 1px 3px rgba(0,0,0,.08);
  --shadow:0 4px 14px rgba(0,0,0,.08);
  --font:'Inter',-apple-system,BlinkMacSystemFont,'SF Pro Text',sans-serif;
  --p-highest:#ff3b30;
  --p-high:#ff9500;
  --p-medium:#0a84ff;
  --p-low:#8e8e93;
  --green:#1f9d3c;
  --red:#d62b1f;
  --pin:#ffb340;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:13.5px}
body{font-family:var(--font);background:var(--bg);color:var(--text);display:flex;min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

svg{max-width:24px;max-height:24px;flex-shrink:0;display:inline-block;vertical-align:middle}
#property-map svg, .leaflet-container svg, .overview-map svg{max-width:none!important;max-height:none!important}

::selection{background:rgba(0,102,204,.18)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* SIDEBAR */
.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto;transition:transform .25s ease}
.sidebar-logo{padding:14px 14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar-logo img{width:22px!important;height:22px!important;object-fit:contain;flex-shrink:0;display:block}
.sidebar-logo .logo-text{font-size:13px;font-weight:600;color:#fff;letter-spacing:-.01em;white-space:nowrap}
.sidebar-logo .logo-text span{font-weight:400;color:rgba(255,255,255,.55)}

.sidebar-nav{display:flex;flex-direction:column;padding:6px 8px;flex:1}
.nav-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;color:rgba(255,255,255,.4);padding:10px 10px 4px}
.sidebar-nav a{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:var(--radius-xs);color:rgba(255,255,255,.75);font-size:12.5px;font-weight:500;letter-spacing:-.01em;transition:background .12s;margin-bottom:1px}
.sidebar-nav a svg{width:14px!important;height:14px!important;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sidebar-nav a:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
.sidebar-nav a.active{background:var(--accent);color:#fff;font-weight:600}
.sidebar-nav a.nav-add{background:rgba(0,102,204,.18);color:#9bc3ff;margin-top:4px}
.sidebar-nav a.nav-add:hover{background:var(--accent);color:#fff}

.sidebar-footer{padding:6px 8px 12px;border-top:1px solid rgba(255,255,255,.08)}
.sidebar-footer a{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:var(--radius-xs);color:rgba(255,255,255,.6);font-size:12.5px;font-weight:500}
.sidebar-footer a svg{width:14px!important;height:14px!important;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sidebar-footer a:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
.sidebar-footer a.logout:hover{color:#ff7770}

.user-chip{display:flex;align-items:center;gap:8px;padding:10px 8px 2px}
.user-avatar{width:26px;height:26px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:11px;flex-shrink:0}
.user-name{font-size:12px;color:rgba(255,255,255,.95);font-weight:600;line-height:1.2}
.user-role{font-size:10px;color:rgba(255,255,255,.5)}

/* MOBILE MENU BUTTON */
.mobile-menu-btn{display:none;background:none;border:none;padding:6px 8px;cursor:pointer;color:var(--text);margin-right:4px;border-radius:6px}
.mobile-menu-btn:hover{background:var(--surface-3)}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99}

/* MAIN */
.main-content{margin-left:var(--sidebar-w);flex:1;display:flex;flex-direction:column;min-height:100vh}
.topbar{display:flex;align-items:center;gap:8px;padding:18px 24px 8px}
.page-title{font-size:22px;font-weight:700;color:var(--text);letter-spacing:-.025em;margin-right:auto}
.topbar-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.content{padding:10px 24px 40px}

/* FLASH */
.flash{margin:8px 24px 0;padding:10px 14px;border-radius:var(--radius-sm);display:flex;justify-content:space-between;align-items:center;font-size:12.5px;font-weight:500}
.flash button{background:none;border:none;font-size:18px;cursor:pointer;opacity:.5;line-height:1}
.flash-success{background:#e0f4e7;color:#155a28;border:1.5px solid #76d990}
.flash-error{background:#fde6e3;color:#a01a10;border:1.5px solid #ff8c83}
.flash-info{background:#dfeefe;color:#1a4a7e;border:1.5px solid #6fb4ff}

/* CARDS */
.grid{display:grid;gap:10px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-2-3{grid-template-columns:2fr 1fr}
.grid-3-2{grid-template-columns:3fr 2fr}

.card{background:var(--surface);border-radius:var(--radius);border:1.5px solid var(--border-soft);box-shadow:var(--shadow-xs);overflow:hidden}
.card-body{padding:14px 16px}
.card-header{padding:10px 16px;border-bottom:1.5px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between;background:var(--surface-2)}
.card-title{font-weight:700;font-size:12px;color:var(--text);text-transform:uppercase;letter-spacing:.06em}

/* DASHBOARD QUICK NAV (mobile-first nav tiles) */
.quick-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.quick-nav-card{background:#fff;border:1.5px solid var(--border-soft);border-radius:var(--radius);padding:14px;text-align:center;text-decoration:none;color:var(--text);transition:all .15s;display:flex;flex-direction:column;align-items:center;gap:8px}
.quick-nav-card:hover{border-color:var(--accent);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}
.quick-nav-card .qn-icon{width:40px;height:40px;background:var(--accent-soft);border-radius:10px;display:flex;align-items:center;justify-content:center}
.quick-nav-card .qn-icon svg{width:20px!important;height:20px!important;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.quick-nav-card .qn-label{font-size:12.5px;font-weight:700;letter-spacing:-.01em}
.quick-nav-card .qn-count{font-size:11px;color:var(--muted);font-weight:500}

/* STATS */
.stat-card{padding:14px 16px;position:relative}
.stat-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px}
.stat-value{font-size:30px;font-weight:700;line-height:1;letter-spacing:-.03em;color:var(--text)}
.stat-sub{font-size:11.5px;color:var(--muted);margin-top:4px}
.stat-icon{position:absolute;top:14px;right:14px;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center}
.stat-icon svg{width:14px!important;height:14px!important;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.stat-card.s-active .stat-icon{background:rgba(0,102,204,.12)} .stat-card.s-active .stat-icon svg{stroke:var(--accent)}
.stat-card.s-hot    .stat-icon{background:rgba(255,59,48,.12)} .stat-card.s-hot svg{stroke:#ff3b30}
.stat-card.s-new    .stat-icon{background:rgba(191,90,242,.12)} .stat-card.s-new svg{stroke:#b333e5}
.stat-card.s-closed .stat-icon{background:rgba(48,209,88,.12)} .stat-card.s-closed svg{stroke:#1a7a35}
.stat-card.s-hot .stat-value{color:#d62b1f}
.stat-card.s-new .stat-value{color:#9a2bcc}
.stat-card.s-closed .stat-value{color:#137028}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:980px;font-family:var(--font);font-size:12.5px;font-weight:600;cursor:pointer;border:none;text-decoration:none;transition:all .12s;letter-spacing:-.01em;white-space:nowrap}
.btn:hover{filter:brightness(.96);text-decoration:none}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px rgba(0,102,204,.3)}
.btn-primary:hover{background:var(--accent-dark)}
.btn-secondary{background:#e5e5ea;color:var(--text-2);border:1px solid var(--border-soft)}
.btn-secondary:hover{background:#d8d8de}
.btn-danger{background:#d62b1f;color:#fff}
.btn-danger:hover{background:#b1241a}
.btn-green{background:#1f9d3c;color:#fff}
.btn-warning{background:#ff9500;color:#fff}
.btn-sm{padding:5px 11px;font-size:11.5px}
.btn-xs{padding:4px 9px;font-size:11px}
.btn svg{width:12px!important;height:12px!important;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.btn-pin{background:transparent;border:1.5px solid var(--border);color:var(--muted);padding:5px 10px}
.btn-pin:hover{background:#fff4dc;border-color:var(--pin);color:#b87100}
.btn-pin.pinned{background:#fff4dc;border-color:var(--pin);color:#b87100}
.btn-pin svg{stroke:currentColor}

/* TABLES */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{text-align:left;padding:10px 14px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--text-2);border-bottom:2px solid var(--border-soft);white-space:nowrap;background:var(--surface-2)}
td{padding:11px 14px;border-bottom:1px solid var(--border-soft);font-size:12.5px;vertical-align:middle;color:var(--text)}
tr:last-child td{border-bottom:none}
tbody tr:hover td{background:#fafafa}
tr.selected td{background:#e6f0fb}
tr.pinned-row td{background:#fffaeb}
tr.pinned-row:hover td{background:#fff4d6}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.02em;border:1px solid transparent}
.badge.land{background:rgba(48,209,88,.14);color:#137028;border-color:rgba(48,209,88,.28)}
.badge.house{background:rgba(0,102,204,.12);color:#1a4a7e;border-color:rgba(0,102,204,.25)}

.prio{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:20px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border:1.5px solid transparent}
.prio.Highest{background:#ffe0de;color:#a01a10;border-color:#ff8c83}
.prio.High{background:#ffeed1;color:#b15800;border-color:#ffc372}
.prio.Medium{background:#dfeefe;color:#1a4a7e;border-color:#6fb4ff}
.prio.Low{background:#ececef;color:#5e5e63;border-color:#c9c9cf}

.temp{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.02em;border:1px solid transparent}
.temp.Hot{background:#ffe0de;color:#a01a10;border-color:#ff8c83}
.temp.Warm{background:#ffeed1;color:#b15800;border-color:#ffc372}
.temp.Cold{background:#dfeefe;color:#1a4a7e;border-color:#6fb4ff}

.status-pill{display:inline-block;padding:2px 10px;border-radius:20px;font-size:10px;font-weight:700;color:#fff;letter-spacing:.02em;white-space:nowrap}

.phone-type{display:inline-block;font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:4px;letter-spacing:.04em;text-transform:uppercase;margin-left:4px;vertical-align:middle}
.phone-type.mobile{background:#dfeefe;color:#1a4a7e}
.phone-type.landline{background:#ececef;color:#5e5e63}

.pin-icon{display:inline-block;color:var(--pin);font-size:14px;vertical-align:middle;line-height:1}

/* FORMS */
.form-group{display:flex;flex-direction:column;gap:5px}
.form-label{font-size:10.5px;font-weight:800;color:var(--text-2);text-transform:uppercase;letter-spacing:.5px}
.form-control{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--radius-xs);font-family:var(--font);font-size:13px;color:var(--text);background:#fff;outline:none;font-weight:500;transition:border-color .12s,box-shadow .12s}
.form-control:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,102,204,.15)}
.form-control::placeholder{color:#a0a0a5;font-weight:400}
select.form-control{appearance:none;cursor:pointer;padding-right:32px;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236e6e73' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 10px center;background-size:14px}
textarea.form-control{resize:vertical;min-height:72px;line-height:1.5}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.form-row4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:10px}

.form-row-phone{display:grid;grid-template-columns:2fr 1fr;gap:6px}

.form-section{background:var(--surface);border:1.5px solid var(--border-soft);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}
.form-section-header{padding:10px 14px;background:var(--surface-2);border-bottom:1.5px solid var(--border-soft)}
.form-section-header h3{font-size:11px;font-weight:800;color:var(--text);letter-spacing:.08em;text-transform:uppercase}
.form-section-body{padding:14px;display:flex;flex-direction:column;gap:10px}

/* TOGGLE */
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;gap:10px}
.toggle-row .toggle-label{font-size:12.5px;font-weight:600;color:var(--text)}
.toggle-row .toggle-hint{font-size:11px;color:var(--muted)}
.toggle{position:relative;display:inline-block;width:40px;height:24px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#c1c1c8;border-radius:24px;transition:.2s}
.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle input:checked + .toggle-slider{background:#1f9d3c}
.toggle input:checked + .toggle-slider:before{transform:translateX(16px)}

/* SEGMENTED */
.segmented{display:inline-flex;padding:2px;background:#dadade;border-radius:8px;width:100%}
.segmented input[type=radio]{display:none}
.segmented label{flex:1;text-align:center;padding:7px 14px;font-size:12.5px;font-weight:600;cursor:pointer;border-radius:6px;color:var(--muted);transition:.18s}
.segmented input:checked+label{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.12)}

.house-only,.land-only{display:none}
form.showing-land .land-only{display:block}
form.showing-house .house-only{display:block}

/* PIPELINE */
.pipeline-board{display:flex;gap:9px;overflow-x:auto;padding-bottom:16px;align-items:flex-start}
.pipeline-col{min-width:198px;max-width:198px;background:var(--surface-2);border-radius:var(--radius-sm);border:1.5px solid var(--border-soft)}
.pipeline-col-header{padding:10px 11px;border-bottom:1.5px solid var(--border-soft);display:flex;align-items:center;gap:7px}
.col-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.col-title{font-size:11px;font-weight:800;flex:1;color:var(--text)}
.col-count{background:#dadade;border-radius:20px;padding:1px 7px;font-size:10px;font-weight:700;color:var(--text-2)}
.pipeline-cards{padding:7px;display:flex;flex-direction:column;gap:5px;min-height:50px}
.pipeline-cards.drag-over{background:var(--accent-soft);border-radius:8px}
.p-card{background:#fff;border-radius:var(--radius-xs);padding:9px 11px;box-shadow:var(--shadow-xs);border:1.5px solid var(--border-soft);cursor:grab;transition:transform .12s,box-shadow .12s;border-left:3px solid var(--accent);user-select:none}
.p-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.p-card.dragging{opacity:.4;cursor:grabbing}
.p-card-name{font-weight:700;font-size:12px;margin-bottom:2px;letter-spacing:-.01em}
.p-card-addr{font-size:10.5px;color:var(--muted);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p-card-meta{display:flex;align-items:center;justify-content:space-between;gap:4px;flex-wrap:wrap}
.p-card-price{font-size:11.5px;font-weight:700}
.p-card-days{font-size:9.5px;color:var(--muted)}
.p-card-fu{font-size:9.5px;font-weight:600;color:#b15800}
.p-card-fu.overdue{color:#d62b1f}

/* LEAD DETAIL — property-focused header */
.lead-header{background:#fff;border:1.5px solid var(--border-soft);border-radius:var(--radius);padding:16px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.lead-header-main{flex:1;min-width:280px}
.prop-address-big{font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--text);line-height:1.15;margin-bottom:2px}
.prop-sub{font-size:14px;color:var(--muted);font-weight:600;margin-bottom:8px}
.prop-sub .pipe{margin:0 6px;color:var(--border)}
.owner-line{font-size:12.5px;color:var(--text-2);font-weight:500;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.owner-line strong{font-weight:700}
.owner-line .meta-tag{color:var(--muted);font-size:11.5px}
.lead-header-actions{display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap}

.fin-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border-soft);border:1.5px solid var(--border-soft);border-radius:var(--radius);overflow:hidden}
.fin-cell{background:#fff;padding:11px 14px;text-align:center}
.fin-cell label{display:block;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:3px}
.fin-cell .fin-val{font-size:18px;font-weight:700;letter-spacing:-.02em;color:var(--text)}
.fin-cell.accent .fin-val{color:var(--accent)}
.fin-cell.green  .fin-val{color:var(--green)}

.info-list{display:flex;flex-direction:column}
.info-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0;border-bottom:1px solid var(--border-soft);font-size:12.5px}
.info-row:last-child{border-bottom:none}
.info-row .label{color:var(--muted);font-size:11.5px;font-weight:600}
.info-row .value{color:var(--text);font-weight:600;text-align:right;max-width:65%}
.info-row .value a{color:var(--accent)}

.tag-list{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.tag{background:var(--accent-soft);color:var(--accent);border:1px solid rgba(0,102,204,.25);border-radius:20px;padding:1px 8px;font-size:11px;font-weight:600}

.notes-block{background:#fff9e0;border:1.5px solid #ffd97a;padding:12px 14px;border-radius:10px;font-size:13px;line-height:1.55;margin-top:8px;color:#4a3a00;font-weight:500}
.notes-block-empty{background:var(--surface-2);border:1.5px dashed var(--border);color:var(--muted);text-align:center;padding:12px;border-radius:10px;font-size:12px;margin-top:8px}

/* Quick note composer */
.quick-note-form{display:flex;flex-direction:column;gap:8px}
.quick-note-form textarea{resize:vertical;min-height:60px;border:1.5px solid var(--border);border-radius:var(--radius-xs);padding:10px 12px;font-family:var(--font);font-size:13px;line-height:1.5;outline:none}
.quick-note-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,102,204,.15)}
.quick-note-form .qn-actions{display:flex;justify-content:flex-end;gap:6px}

.quick-links{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.quick-link{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;background:#e5e5ea;color:var(--text-2);border:1px solid var(--border-soft);border-radius:6px;font-size:11.5px;font-weight:600;text-decoration:none;transition:all .12s}
.quick-link:hover{background:var(--accent);color:#fff;text-decoration:none;border-color:var(--accent)}
.quick-link svg{width:11px!important;height:11px!important;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

#property-map{height:280px;border-radius:var(--radius-sm);overflow:hidden;border:1.5px solid var(--border-soft);z-index:1;background:#e8eaef}
#property-map.expanded{height:480px}
.map-empty{height:140px;border-radius:var(--radius-sm);background:var(--surface-2);border:2px dashed var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);font-size:11.5px;text-align:center;padding:12px;gap:4px}

.overview-map{height:280px;width:100%;border-radius:var(--radius);overflow:hidden;border:1.5px solid var(--border-soft);z-index:1;cursor:pointer;transition:height .3s;background:#e8eaef}
.overview-map.expanded{height:520px;cursor:default}
.overview-map-hint{font-size:11px;color:var(--muted);margin-top:6px;text-align:center}

.geocode-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;background:var(--accent-soft);color:var(--accent);border:1.5px solid rgba(0,102,204,.3);border-radius:6px;font-family:var(--font);font-size:11.5px;font-weight:600;cursor:pointer}
.geocode-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.geocode-btn:disabled{opacity:.6;cursor:wait}
.geocode-btn svg{width:11px!important;height:11px!important;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* TIMELINE */
.timeline{display:flex;flex-direction:column}
.tl-item{display:flex;gap:10px;padding-bottom:12px;position:relative}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{content:'';position:absolute;left:11px;top:24px;bottom:0;width:1.5px;background:var(--border-soft)}
.tl-item:last-child::before{display:none}
.tl-dot{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1;border:1px solid rgba(0,102,204,.2)}
.tl-dot svg{width:11px!important;height:11px!important;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tl-body{flex:1;background:var(--surface-2);border-radius:var(--radius-xs);padding:8px 11px;border:1px solid var(--border-soft)}
.tl-content{font-size:12.5px;font-weight:500;line-height:1.45;color:var(--text)}
.tl-meta{font-size:10.5px;color:var(--muted);margin-top:2px}

/* TASKS */
.task-item{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--border-soft)}
.task-item:last-child{border-bottom:none}
.task-check{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}
.task-title{flex:1;font-size:12.5px;font-weight:500;color:var(--text)}
.task-title.done{text-decoration:line-through;color:var(--muted)}
.task-due{font-size:10.5px;font-weight:700;white-space:nowrap;color:var(--muted)}
.task-due.overdue{color:#d62b1f}
.task-due.today{color:#b15800}

/* ATTACHMENTS */
.attach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.attach-card{background:var(--surface-2);border:1.5px solid var(--border-soft);border-radius:var(--radius-sm);padding:7px}
.attach-thumb{width:100%;height:72px;background:#fff;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:5px;overflow:hidden;border:1px solid var(--border-soft)}
.attach-thumb img{width:100%;height:100%;object-fit:cover}
.attach-name{font-size:10.5px;font-weight:600;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all;line-height:1.25;margin-bottom:1px}
.attach-size{font-size:9.5px;color:var(--muted)}
.attach-actions{display:flex;gap:3px;margin-top:5px}
.attach-actions a,.attach-actions button{flex:1;padding:3px 4px;font-size:10px;font-weight:600;border-radius:4px;text-align:center;cursor:pointer;text-decoration:none;border:none;font-family:var(--font)}
.attach-actions a{background:rgba(0,102,204,.12);color:var(--accent)}
.attach-actions button{background:rgba(214,43,31,.1);color:#d62b1f}

.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-sm);padding:16px 12px;text-align:center;background:var(--surface-2);cursor:pointer;transition:all .12s;display:block}
.upload-zone:hover,.upload-zone.dragover{border-color:var(--accent);background:var(--accent-soft)}
.upload-zone-icon svg{width:22px!important;height:22px!important;fill:none;stroke:var(--muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.upload-zone-text{font-size:11.5px;font-weight:600;color:var(--text-2);margin-top:4px}
.upload-zone-hint{font-size:10.5px;color:var(--muted);margin-top:1px}
.upload-zone input[type=file]{display:none}

/* FILTERS / BULK */
.filter-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.search-wrap{position:relative;display:flex;align-items:center}
.search-wrap svg{position:absolute;left:10px;color:var(--muted);width:13px!important;height:13px!important;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.search-wrap input{padding-left:32px}
.filter-bar select,.filter-bar input{padding:6px 12px;border:1.5px solid var(--border);border-radius:980px;font-family:var(--font);font-size:12px;background:#fff;outline:none;color:var(--text);font-weight:500;width:auto !important}
.filter-bar select:focus,.filter-bar input:focus{border-color:var(--accent)}

.bulk-bar{display:none;align-items:center;gap:8px;padding:9px 14px;background:#1a4a7e;color:#fff;border-radius:var(--radius);margin-bottom:8px;font-size:12.5px}
.bulk-bar.show{display:flex}
.bulk-bar .count{font-weight:700}
.bulk-bar .btn{margin-left:auto}

/* PIPE MINI */
.pipe-mini{display:flex;gap:6px;flex-wrap:wrap}
.pipe-mini-item{flex:1;min-width:82px;background:var(--surface-2);border:1.5px solid var(--border-soft);border-radius:var(--radius-xs);padding:9px 10px;text-align:center}
.pipe-mini-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:3px}
.pipe-mini-count{font-size:20px;font-weight:700;letter-spacing:-.025em}

/* LOGIN */
.login-page{min-height:100vh;background:var(--sidebar-bg);display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:#fff;border-radius:18px;padding:38px 36px;width:100%;max-width:340px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.login-logo{text-align:center;margin-bottom:18px}
.login-logo img{width:48px!important;height:48px!important;object-fit:contain}
.login-title{font-size:22px;font-weight:700;text-align:center;letter-spacing:-.02em;margin-bottom:3px}
.login-sub{text-align:center;color:var(--muted);font-size:12px;margin-bottom:22px}

.section-heading{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}

/* MAPPING UI */
.mapping-table{width:100%;border-collapse:collapse;border:1.5px solid var(--border-soft);border-radius:8px;overflow:hidden}
.mapping-table th{background:var(--surface-2);font-size:10.5px}
.mapping-table td{padding:8px 10px;font-size:12.5px;border-bottom:1px solid var(--border-soft);vertical-align:middle}
.mapping-table .csv-col{font-weight:700;color:var(--text);background:var(--surface-2)}
.mapping-table .sample{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,monospace;background:#f0f0f3;padding:2px 6px;border-radius:4px;display:inline-block}
.mapping-table select{width:100%;padding:6px 10px;border:1.5px solid var(--border);border-radius:6px;font-family:var(--font);font-size:12px;background:#fff;font-weight:500}
.mapping-table select:focus{border-color:var(--accent);outline:none}

/* Confirm modal */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;display:none;align-items:center;justify-content:center}
.modal-bg.show{display:flex}
.modal{background:#fff;border-radius:14px;padding:24px;max-width:380px;width:90%;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.modal h3{font-size:16px;font-weight:700;margin-bottom:8px;color:var(--text)}
.modal p{font-size:13px;color:var(--text-2);margin-bottom:18px;line-height:1.5}
.modal-actions{display:flex;gap:8px;justify-content:flex-end}

/* UTILITIES */
.mt-1{margin-top:6px}.mt-2{margin-top:10px}.mt-3{margin-top:16px}
.mb-1{margin-bottom:6px}.mb-2{margin-bottom:10px}.mb-3{margin-bottom:16px}
.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}
.gap-1{gap:6px}.gap-2{gap:10px}
.text-muted{color:var(--muted)}.text-sm{font-size:11.5px}.fw-600{font-weight:600}.fw-700{font-weight:700}
.w-full{width:100%}.text-right{text-align:right}

@media(max-width:1200px){.grid-4{grid-template-columns:repeat(2,1fr)}.fin-row{grid-template-columns:repeat(2,1fr)}.quick-nav{grid-template-columns:repeat(2,1fr)}}
@media(max-width:980px){.grid-2-3,.grid-3-2{grid-template-columns:1fr}}
@media(max-width:768px){
  :root{--sidebar-w:0px}
  .sidebar{display:flex;transform:translateX(-100%);width:240px;z-index:200}
  body.sidebar-open .sidebar{transform:translateX(0)}
  body.sidebar-open .sidebar-overlay{display:block}
  .mobile-menu-btn{display:inline-flex}
  .main-content{margin-left:0}
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr}
  .form-row,.form-row3,.form-row4{grid-template-columns:1fr}
  .topbar{padding:14px 14px 6px}
  .content{padding:8px 14px 30px}
  .page-title{font-size:18px}
  .prop-address-big{font-size:19px}
  .quick-nav{grid-template-columns:repeat(2,1fr)}
  .lead-header{padding:14px}
}

/* ============================================
   v5.4 ADDITIONS
   ============================================ */

/* SEARCH FIELD FIX — icon was overlapping text */
.filter-bar .search-wrap input { padding: 6px 12px 6px 34px !important; }
.search-wrap svg { pointer-events: none; z-index: 2; }

/* COPY BUTTONS — small icon button next to copyable values */
.copy-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:#ececef;border:1.5px solid var(--border-soft);border-radius:5px;cursor:pointer;margin-left:6px;padding:0;color:var(--muted);transition:all .12s;vertical-align:middle}
.copy-btn:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.copy-btn.copied{background:#e0f4e7;color:#137028;border-color:#76d990}
.copy-btn svg{width:11px!important;height:11px!important;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* PHONE MENU — small popover with Call/Text */
.phone-link-wrap{position:relative;display:inline-block}
.phone-link{color:var(--accent);font-weight:600;text-decoration:none;cursor:pointer}
.phone-link:hover{text-decoration:underline}
.phone-menu{display:none;position:absolute;top:100%;left:0;margin-top:4px;background:#fff;border:1.5px solid var(--border);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.12);padding:4px;z-index:50;min-width:120px}
.phone-menu.show{display:block}
.phone-menu a{display:flex;align-items:center;gap:6px;padding:7px 10px;font-size:12px;color:var(--text);border-radius:5px;text-decoration:none;font-weight:500}
.phone-menu a:hover{background:var(--accent-soft);color:var(--accent);text-decoration:none}
.phone-menu a svg{width:13px!important;height:13px!important;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* WANTS-TO-SELL BADGE */
.wants{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border:1.5px solid transparent;line-height:1.4}
.wants-yes{background:#e0f4e7;color:#137028;border-color:#76d990}
.wants-no{background:#ffe0de;color:#a01a10;border-color:#ff8c83}
.wants-maybe{background:#ffeed1;color:#b15800;border-color:#ffc372}

/* MLS BADGE */
.mls{display:inline-flex;align-items:center;padding:2px 9px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent;line-height:1.4}
.mls-listed{background:#dfeefe;color:#1a4a7e;border-color:#6fb4ff}
.mls-off{background:#ececef;color:#5e5e63;border-color:#c9c9cf}

/* PROPERTY TOP DETAILS — prominent acres + flood at top */
.prop-top-details{background:var(--surface-2);border:1.5px solid var(--border-soft);border-radius:var(--radius-sm);padding:11px 14px;margin-bottom:10px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.prop-top-cell{display:flex;flex-direction:column;gap:2px}
.prop-top-label{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.prop-top-value{font-size:14px;font-weight:700;color:var(--text);letter-spacing:-.01em}
@media(max-width:768px){.prop-top-details{grid-template-columns:repeat(2,1fr)}}

/* LAYER CONTROL on map (Map/Satellite) */
.leaflet-control-layers{border-radius:8px!important;font-family:var(--font)!important;font-size:11px!important}

/* REGRID LINK CHIP on detail page */
.regrid-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;background:#10b981;color:#fff;border-radius:6px;font-size:11.5px;font-weight:700;text-decoration:none}
.regrid-chip:hover{background:#0a8a64;color:#fff;text-decoration:none}

/* Allow header to be sticky for top save button */
.topbar-sticky{position:sticky;top:0;background:var(--bg);z-index:50;padding-bottom:8px}

/* ── INLINE EDITING (lead detail page) ── */
.inline-input,.inline-select,.inline-textarea {
    background:transparent;border:1px dashed transparent;border-radius:5px;
    padding:3px 7px;font-family:var(--font);font-size:12.5px;font-weight:600;
    color:var(--text);width:100%;box-sizing:border-box;transition:all .12s;
}
.inline-input:hover,.inline-select:hover,.inline-textarea:hover {
    border-color:var(--border);background:var(--surface-2);cursor:text;
}
.inline-input:focus,.inline-select:focus,.inline-textarea:focus {
    border-color:var(--accent);background:#fff;outline:none;
    box-shadow:0 0 0 2.5px rgba(10,132,255,.13);
}
.inline-textarea { resize:vertical; min-height:60px; font-weight:400; }
.inline-label { font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);display:block;margin-bottom:2px; }
.inline-field { margin-bottom:9px; }
.inline-edit-hint { font-size:10.5px;color:var(--muted);background:var(--surface-2);border-radius:6px;padding:5px 10px;margin-bottom:10px;display:inline-flex;align-items:center;gap:5px; }
.inline-save-bar { position:sticky;bottom:0;background:var(--bg);border-top:1.5px solid var(--border);padding:10px 0;display:flex;justify-content:flex-end;gap:8px;z-index:30;margin-top:14px; }

/* ── BULK EDIT BAR (leads page) ── */
.bulk-bar { display:none;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background:#fff;border:1.5px solid var(--accent);border-radius:8px;margin-bottom:10px; }
.bulk-bar.show { display:flex; }
.bulk-bar-label { font-size:12px;font-weight:700;color:var(--accent);white-space:nowrap; }
.bulk-bar select { font-size:11.5px;padding:5px 8px;border-radius:6px;border:1.5px solid var(--border);background:#fff;font-family:var(--font);min-width:130px; }
.bulk-bar .bulk-divider { width:1px;height:22px;background:var(--border);flex-shrink:0; }

/* ── v5.4b ADDITIONS ── */



/* Mobile: stack Property+Seller side-by-side only on phones */

  .detail-grid{grid-template-columns:1fr !important}
  .detail-sidebar{display:none}
  .inline-field[class*="col-span"],.inline-field[style*="grid-column:span 2"]{grid-column:span 1 !important}
  .filter-bar{flex-wrap:wrap;gap:6px}
  .filter-bar input[type=text]{width:100% !important}
  .content{padding:10px 10px 60px !important}
  .card-body{padding:10px !important}
}
/* Tablet: side-by-side stays, just tighten top strip */
@media(max-width:1024px) and (min-width:768px){
  .prop-top-details{grid-template-columns:repeat(3,1fr) !important}
}

/* Auto-grow textareas */
.auto-grow{overflow:hidden;resize:none;min-height:32px;height:auto}

/* Next Contact Date — highlight */
.next-contact-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:6px;font-size:11px;font-weight:700;background:#dfeefe;color:#1a4a7e;border:1px solid #6fb4ff}

/* Property header — inline editable top fields */
.prop-header-fields{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:flex-end}
.prop-header-field{display:flex;flex-direction:column;gap:2px}
.prop-header-field .inline-label{font-size:9px;text-transform:uppercase;letter-spacing:.5px;font-weight:800;color:rgba(255,255,255,.7)}
.prop-header-field .inline-input,.prop-header-field .inline-select{font-size:11.5px;padding:3px 7px;border-color:rgba(255,255,255,.2);color:var(--text)}

/* Attachment upload button — mobile friendly */
.attach-upload-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--accent);color:#fff;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;border:none;font-family:var(--font)}
.attach-upload-btn:hover{background:#0071e3}

/* Stage/priority row in inline form */
.status-row{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0;border-bottom:1px solid var(--border-soft);margin-bottom:10px}
.status-row .inline-field{flex:1;min-width:120px}

/* Expandable input — shows full content on focus */
.inline-input:focus{height:auto;white-space:normal;word-break:break-word}

/* v5.5 — map quick links in card header */
.map-quicklink{font-size:10.5px;font-weight:700;color:var(--accent);text-decoration:none;padding:3px 7px;border-radius:5px;background:var(--accent-soft);border:1px solid rgba(10,132,255,.2);white-space:nowrap}
.map-quicklink:hover{background:var(--accent);color:#fff;text-decoration:none}

/* ── PROPERTY HEADER CARD — v5.8 (desktop + mobile) ─────────────── */

/* Desktop layout */
.prop-header-top   { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.prop-header-left  { flex:1; min-width:0; }
.prop-header-stage { flex-shrink:0; }

/* Address row: h2 + copy btn inline, no wrapping */
.prop-addr-row     { display:flex; align-items:center; gap:8px; margin-bottom:3px; flex-wrap:nowrap; }
.prop-addr-h2      { font-size:19px; font-weight:800; color:var(--text); margin:0; letter-spacing:-.03em; line-height:1.25; word-break:break-word; }
.prop-city-line    { font-size:12.5px; color:var(--muted); margin-bottom:4px; }

/* Owner row */
.prop-owner-row    { display:flex; align-items:center; gap:6px; margin-bottom:8px; flex-wrap:nowrap; }
.prop-owner-name   { font-size:13px; font-weight:600; color:var(--text); min-width:0; }

/* Badges row */
.prop-badges       { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.prop-stage-badge  { display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:20px; font-size:11px; font-weight:800; color:#fff; }
.followup-chip     { font-size:10.5px; color:#b87100; background:#fff4dc; padding:2px 7px; border-radius:6px; font-weight:700; }

/* Stage dropdown (desktop) */
.prop-stage-form   { display:flex; gap:6px; align-items:center; }
.prop-stage-select { font-size:11.5px; padding:5px 9px; border:1.5px solid var(--border); border-radius:8px; background:#fff; font-family:var(--font); }
.prop-stage-btn    { font-size:11px !important; }

/* ── MOBILE overrides (<768px) ─────────────────────────────────────── */
@media(max-width:767px) {

  /* Stack: full-width address, stage goes below */
  .prop-header-top   { flex-direction:column; gap:12px; }
  .prop-header-stage { width:100%; }

  /* Address: allow h2 to flow but copy stays inline */
  .prop-addr-h2      { font-size:17px !important; }

  /* Stage control spans full width */
  .prop-stage-form   { width:100%; }
  .prop-stage-select { flex:1; min-width:0; font-size:13px; padding:8px 10px; border-radius:10px; }
  .prop-stage-btn    { font-size:13px !important; padding:8px 16px !important; border-radius:10px !important; }

  /* Badges: full width container, let them wrap naturally */
  .prop-badges { gap:7px; width:100%; }
  .prop-stage-badge { font-size:12px; padding:4px 11px; }

  /* Owner name: full row */
  .prop-owner-row  { width:100%; }
  .prop-owner-name { flex:1; font-size:13.5px; }

  /* Top strip: 2 columns on mobile instead of 5 */
  .prop-top-details { grid-template-columns:repeat(2,1fr) !important; }

  /* Inline edit quick-row: wrap to 2-per-row */
  .inline-edit-hint + div { flex-wrap:wrap; }
}

/* ══════════════════════════════════════════════
   v6.0 SMS INBOX — iMessage-style layout
   ══════════════════════════════════════════════ */

/* Make SMS page use full height without scroll */
body.sms-page .content { padding:0!important; height:calc(100vh - 56px); overflow:hidden; display:flex; flex-direction:column; }

/* Two-panel layout */
.sms-layout { display:flex; height:100%; overflow:hidden; }

/* ── LEFT PANEL ─────────────────────────────── */
.sms-list-panel { width:300px; min-width:300px; display:flex; flex-direction:column; border-right:1.5px solid var(--border-soft); background:#fff; overflow:hidden; }
.sms-list-header { display:flex; align-items:center; justify-content:space-between; padding:14px 16px 10px; border-bottom:1px solid var(--border-soft); flex-shrink:0; }
.sms-list-title { font-size:15px; font-weight:800; color:var(--text); letter-spacing:-.02em; }
.sms-filters { display:flex; gap:2px; padding:8px 10px 6px; border-bottom:1px solid var(--border-soft); flex-shrink:0; flex-wrap:wrap; }
.sms-filter-tab { font-size:11px; font-weight:600; padding:4px 9px; border-radius:20px; color:var(--muted); text-decoration:none; transition:all .12s; white-space:nowrap; }
.sms-filter-tab:hover { background:var(--surface-2); color:var(--text); text-decoration:none; }
.sms-filter-tab.active { background:var(--accent); color:#fff; }
.sms-search-wrap { display:flex; align-items:center; gap:8px; padding:8px 12px; border-bottom:1px solid var(--border-soft); flex-shrink:0; }
.sms-search-input { border:none; outline:none; font-size:12.5px; color:var(--text); background:transparent; flex:1; font-family:var(--font); }
.sms-conv-list { flex:1; overflow-y:auto; }
.sms-empty-list { padding:32px 20px; text-align:center; color:var(--muted); font-size:12.5px; line-height:1.6; }

/* Conversation item */
.sms-conv-item { display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid var(--border-soft); text-decoration:none; color:var(--text); transition:background .1s; position:relative; }
.sms-conv-item:hover { background:var(--surface-2); text-decoration:none; }
.sms-conv-item.active { background:var(--accent-soft); }
.sms-conv-item.needs-response { border-left:3px solid #d62b1f; }
.sms-conv-item.opted-out { opacity:.55; }
.sms-conv-avatar { width:38px; height:38px; border-radius:50%; background:var(--accent); color:#fff; font-size:15px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.sms-conv-info { flex:1; min-width:0; }
.sms-conv-name { font-size:13px; font-weight:700; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sms-conv-preview { font-size:11.5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px; }
.sms-conv-meta { display:flex; flex-direction:column; align-items:flex-end; gap:4px; flex-shrink:0; }
.sms-conv-time { font-size:10.5px; color:var(--muted); }
.sms-unread-badge { background:var(--accent); color:#fff; font-size:10px; font-weight:800; min-width:18px; height:18px; border-radius:9px; display:flex; align-items:center; justify-content:center; padding:0 4px; }
.sms-needs-reply-dot { width:8px; height:8px; border-radius:50%; background:#d62b1f; }
.sms-optout-badge { font-size:9px; background:#ffe0de; color:#a01a10; padding:1px 5px; border-radius:4px; font-weight:700; }

/* ── RIGHT PANEL ─────────────────────────────── */
.sms-thread-panel { flex:1; display:flex; flex-direction:column; overflow:hidden; background:#f5f5f7; }

.sms-thread-empty { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:var(--muted); text-align:center; padding:40px; }
.sms-thread-empty h3 { font-size:17px; font-weight:700; color:var(--text); margin:0; }
.sms-thread-empty p { font-size:13px; margin:0; }
.sms-thread-empty svg { opacity:.3; }

.sms-thread-header { display:flex; align-items:center; gap:12px; padding:12px 18px; background:#fff; border-bottom:1.5px solid var(--border-soft); flex-shrink:0; }
.sms-back-btn { font-size:20px; color:var(--accent); text-decoration:none; font-weight:300; display:none; }
.sms-thread-avatar { width:40px; height:40px; border-radius:50%; background:var(--accent); color:#fff; font-size:16px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.sms-thread-contact { flex:1; min-width:0; }
.sms-thread-name { font-size:14px; font-weight:800; color:var(--text); }
.sms-thread-sub { font-size:11.5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sms-thread-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.sms-optout-banner { font-size:11px; color:#a01a10; background:#ffe0de; padding:4px 10px; border-radius:6px; font-weight:700; }

/* Message thread */
.sms-messages { flex:1; overflow-y:auto; padding:20px 24px; display:flex; flex-direction:column; gap:4px; }
.sms-no-messages { text-align:center; color:var(--muted); font-size:12.5px; padding:40px 0; }
.sms-date-divider { text-align:center; font-size:11px; color:var(--muted); font-weight:600; padding:12px 0 6px; }

.sms-msg-row { display:flex; margin-bottom:2px; }
.sms-msg-row.out { justify-content:flex-end; }
.sms-msg-row.in  { justify-content:flex-start; }

.sms-bubble { max-width:72%; border-radius:18px; padding:9px 14px; }
.sms-bubble.out { background:var(--accent); color:#fff; border-bottom-right-radius:4px; }
.sms-bubble.in  { background:#fff; color:var(--text); border-bottom-left-radius:4px; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.sms-bubble-body { font-size:14px; line-height:1.45; word-break:break-word; }
.sms-bubble-meta { font-size:10px; margin-top:4px; opacity:.7; display:flex; align-items:center; gap:5px; }
.sms-bubble.out .sms-bubble-meta { justify-content:flex-end; }
.sms-ai-badge { background:rgba(255,255,255,.25); padding:1px 5px; border-radius:4px; font-size:9px; font-weight:700; }
.sms-status-icon { font-size:11px; }

/* Reply box */
.sms-reply-box { background:#fff; border-top:1.5px solid var(--border-soft); padding:12px 18px; flex-shrink:0; }
.sms-reply-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; gap:10px; }
.sms-template-sel { font-size:11.5px; padding:4px 8px; border-radius:8px; border:1.5px solid var(--border); font-family:var(--font); flex:1; }
.sms-char-count { font-size:10.5px; color:var(--muted); white-space:nowrap; }
.sms-reply-input-wrap { margin-bottom:8px; }
.sms-reply-textarea { width:100%; resize:none; border:1.5px solid var(--border-soft); border-radius:12px; padding:10px 14px; font-size:14px; font-family:var(--font); color:var(--text); outline:none; box-sizing:border-box; }
.sms-reply-textarea:focus { border-color:var(--accent); }
.sms-reply-footer { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.sms-send-btn { display:flex; align-items:center; gap:5px; }
.sms-reply-optout { padding:16px; text-align:center; font-size:12.5px; color:#a01a10; background:#ffe0de; border-top:1.5px solid #ffb3ae; }

/* Compose modal */
.sms-modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:200; align-items:center; justify-content:center; }
.sms-modal { background:#fff; border-radius:18px; width:min(520px,92vw); max-height:90vh; overflow-y:auto; box-shadow:0 24px 64px rgba(0,0,0,.25); }
.sms-modal-header { display:flex; justify-content:space-between; align-items:center; padding:18px 22px 14px; border-bottom:1px solid var(--border-soft); }
.sms-modal-header h3 { margin:0; font-size:16px; font-weight:800; }
.sms-modal-close { background:none; border:none; font-size:24px; cursor:pointer; color:var(--muted); line-height:1; }
.sms-modal-body { padding:18px 22px; }
.sms-modal-footer { padding:14px 22px; border-top:1px solid var(--border-soft); display:flex; justify-content:flex-end; gap:8px; background:var(--surface-2); }
.sms-form-group { margin-bottom:14px; }
.sms-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); display:block; margin-bottom:5px; }
.compose-lead-dropdown { position:absolute; background:#fff; border:1.5px solid var(--border); border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.14); z-index:50; max-height:200px; overflow-y:auto; width:100%; }
.compose-lead-option { padding:10px 14px; cursor:pointer; font-size:12.5px; border-bottom:1px solid var(--border-soft); }
.compose-lead-option:hover { background:var(--accent-soft); }
.compose-lead-option:last-child { border-bottom:none; }
.compose-lead-selected { font-size:12.5px; color:var(--accent); padding:5px 0; display:flex; align-items:center; gap:6px; }

/* Mobile SMS */
@media(max-width:767px) {
  .sms-layout { flex-direction:column; }
  .sms-list-panel { width:100%; min-width:0; border-right:none; border-bottom:1.5px solid var(--border-soft); max-height:45vh; }
  .sms-thread-panel { flex:1; min-height:0; }
  .sms-back-btn { display:block; }
  .sms-bubble { max-width:88%; }
}

/* ── v6.1 LEAD GROUPS ─────────────────────────────────────── */
.group-badge { display:inline-flex; align-items:center; gap:4px; padding:2px 9px; border-radius:12px; font-size:10.5px; font-weight:700; color:#fff; white-space:nowrap; }
.group-dot   { width:8px; height:8px; border-radius:50%; flex-shrink:0; }

/* ── v6.4 GEOCODE STRIP (below map) ─────────────────────── */
.geocode-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--surface-2);border-top:1.5px solid var(--border-soft);flex-wrap:wrap}
.geocode-status{font-size:11.5px;font-weight:600;display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.geocode-status.found{color:#137028}
.geocode-status.searching{color:#b87100}
.geocode-status.failed{color:#d62b1f}
.geocode-btn-map{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;font-family:var(--font);transition:background .12s;flex-shrink:0}
.geocode-btn-map:hover{background:#0071e3}
.geocode-btn-map:disabled{opacity:.6;cursor:wait}
.geocode-btn-map svg{flex-shrink:0}

/* ── v6.5 PROP-SELLER FLEX: mobile stacks vertically ────── */
@media(max-width:768px){
  .prop-seller-flex{
    flex-direction:column !important;
  }
  .prop-seller-flex > .card{
    flex:none !important;
    width:100% !important;
  }
}

/* ── v6.6 NOTES RICH TEXT EDITOR ──────────────────────────── */
.notes-rte-wrap {
  border: 1.5px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  transition: border-color .15s;
}
.notes-rte-wrap:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(10,132,255,.1); }

/* Toolbar */
.notes-toolbar {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 5px 8px;
  background: var(--surface-2);
  border-bottom: 1px solid var(--border-soft);
  flex-wrap: wrap;
}
.notes-fs-sel {
  font-size: 11.5px;
  font-family: var(--font);
  padding: 3px 7px;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  cursor: pointer;
  height: 26px;
}
.notes-tb-sep {
  width: 1px; height: 18px;
  background: var(--border-soft);
  margin: 0 5px;
  flex-shrink: 0;
}
.notes-tb-btn {
  width: 28px; height: 28px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1.5px solid transparent;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  font-size: 13px;
  color: var(--text);
  font-family: var(--font);
  transition: background .1s, border-color .1s;
  padding: 0;
}
.notes-tb-btn:hover { background: var(--border-soft); border-color: var(--border); }
.notes-tb-btn.active {
  background: #dfeefe;
  border-color: #0a84ff;
  color: #0a84ff;
}
.notes-tb-btn b { font-size: 14px; font-weight: 900; }
.notes-tb-btn i { font-size: 13px; font-style: italic; font-weight: 600; }
.notes-tb-btn u { font-size: 13px; font-weight: 600; text-decoration: underline; }
.notes-tb-btn s { font-size: 13px; font-weight: 600; text-decoration: line-through; }

/* Editor body */
.notes-rte-body {
  min-height: 120px;
  /* No max-height — auto-expands to fit all content */
  padding: 12px 14px;
  outline: none;
  font-size: 13px;
  line-height: 1.65;
  color: var(--text);
  font-family: var(--font);
  word-break: break-word;
  white-space: pre-wrap;
}
.notes-rte-body:empty::before {
  content: 'Add notes about this lead…';
  color: var(--muted);
  pointer-events: none;
}

/* Read-only display of saved notes HTML */
.notes-rte-display {
  font-size: 12.5px;
  line-height: 1.65;
  word-break: break-word;
}
.notes-rte-display b, .notes-rte-display strong { font-weight: 700; }
.notes-rte-display i, .notes-rte-display em { font-style: italic; }
.notes-rte-display u { text-decoration: underline; }
.notes-rte-display s, .notes-rte-display strike { text-decoration: line-through; }

/* ── v6.7 NOTES FLOATING PANEL ────────────────────────────── */

/* Open button inside Seller Details card */
.notes-open-btn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 14px;
  background: var(--surface-2);
  border: 1.5px solid var(--border);
  border-radius: 8px;
  font-size: 12.5px; font-weight: 600; font-family: var(--font);
  color: var(--text); cursor: pointer;
  transition: background .12s, border-color .12s;
  width: 100%;
}
.notes-open-btn:hover { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.notes-btn-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent); flex-shrink: 0;
}

/* Floating panel */
.notes-float {
  position: fixed;
  top: 68px;
  right: 18px;
  width: 400px;
  min-width: 260px;
  min-height: 200px;
  height: 420px;          /* default height — user can drag-resize from bottom-right corner */
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(0,0,0,.20), 0 2px 8px rgba(0,0,0,.10);
  border: 1.5px solid var(--border-soft);
  z-index: 300;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  resize: both;           /* native browser resize handle — bottom-right corner */
}

/* Drag handle header */
.notes-float-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px;
  background: var(--accent);
  color: #fff;
  cursor: grab;
  user-select: none;
  flex-shrink: 0;
  border-radius: 12px 12px 0 0;
}
.notes-float-header:active { cursor: grabbing; }

/* Close button in header */
.notes-float-ctrl {
  width: 24px; height: 24px;
  border-radius: 50%;
  background: rgba(255,255,255,.25);
  border: none; color: #fff;
  font-size: 16px; line-height: 1;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  font-family: var(--font);
  transition: background .1s;
}
.notes-float-ctrl:hover { background: rgba(255,255,255,.45); }

/* Done button in toolbar */
.notes-float-save-btn {
  font-size: 11.5px; font-weight: 700; font-family: var(--font);
  padding: 4px 12px; border-radius: 7px;
  background: #30d158; color: #fff; border: none; cursor: pointer;
  transition: background .12s;
}
.notes-float-save-btn:hover { background: #25a244; }

/* Editor area scrolls when panel is smaller than content */
.notes-float .notes-rte-body {
  flex: 1;
  overflow-y: auto;
  min-height: 80px;
  border-radius: 0 0 12px 12px;
}

/* Toolbar inside floating panel */
.notes-float .notes-toolbar {
  flex-shrink: 0;
  border-top: none;
}

/* ── v6.7b NOTES BUTTON IN PROPERTY HEADER ─────────────────── */
.prop-header-stage { display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.notes-header-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 12px;
  background: var(--surface-2);
  border: 1.5px solid var(--border);
  border-radius: 20px;
  font-size: 11.5px; font-weight: 600; font-family: var(--font);
  color: var(--text); cursor: pointer;
  transition: background .12s, border-color .12s, color .12s;
  white-space: nowrap;
}
.notes-header-btn:hover { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.notes-header-btn .notes-btn-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent); flex-shrink: 0;
}

/* ── v6.8 PROPERTY + SELLER CARD TITLE STYLING ─────────────── */
.prop-seller-flex > .card > .card-header .card-title {
  font-size: 15px !important;
  font-weight: 900 !important;
  color: #1a3a6b !important;   /* navy blue */
  letter-spacing: -.01em;
  gap: 7px;
}
.prop-seller-flex > .card > .card-header .card-title svg {
  stroke: #1a3a6b;
  width: 16px !important;
  height: 16px !important;
}

/* ── v6.8 CUSTOM LEAD SOURCE INPUT ─────────────────────────── */
.custom-source-wrap {
  display: none;
  margin-top: 5px;
  gap: 5px;
  align-items: center;
}
.custom-source-wrap.show { display: flex; }
.custom-source-input {
  flex: 1;
  font-size: 11.5px;
  padding: 5px 9px;
  border: 1.5px solid var(--accent);
  border-radius: 7px;
  font-family: var(--font);
  color: var(--text);
  outline: none;
}
.custom-source-input:focus { box-shadow: 0 0 0 3px rgba(10,132,255,.12); }

/* ── v7.0 ACTIVITY QUICK-LOG BUTTONS ───────────────────────── */
.activity-quick-btn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px 11px;
  background: var(--surface-2);
  border: 1.5px solid var(--border);
  border-radius: 20px;
  font-size: 11.5px; font-weight: 600; font-family: var(--font);
  color: var(--text); cursor: pointer;
  transition: background .12s, border-color .12s;
  white-space: nowrap;
}
.activity-quick-btn:hover { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }

/* Notes button — bigger, blue */
.notes-header-btn-primary {
  background: var(--accent) !important;
  color: #fff !important;
  border-color: var(--accent) !important;
  padding: 6px 14px !important;
  font-size: 12.5px !important;
}
.notes-header-btn-primary:hover { background: #0071e3 !important; border-color: #0071e3 !important; }

/* ── v7.1 POTENTIAL BUYERS BIG TEXTAREA ────────────────────── */
.potential-buyers-area {
  width: 100%;
  min-height: 100px;
  max-height: 320px;
  font-size: 13px;
  line-height: 1.6;
  padding: 10px 12px;
  border: 1.5px solid var(--border);
  border-radius: 9px;
  font-family: var(--font);
  color: var(--text);
  resize: vertical;
  box-sizing: border-box;
  transition: border-color .15s;
  background: #fff;
}
.potential-buyers-area:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(10,132,255,.1);
}
.potential-buyers-area::placeholder { color: var(--muted); }
