*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#05070d;--surface:#0d1220;--surface2:#141a2b;--border:#1c2438;
  --text:#e8ecf6;--muted:#9aa4bd;--faint:#5c6580;
  --cyan:#22d3ee;--violet:#7c5cff;--mint:#2dffb0;--magenta:#ff3ec8;--warn:#ff6b6b;
  --grad:linear-gradient(135deg,var(--cyan),var(--violet));
}
body{
  background:var(--bg);color:var(--text);font-family:'Inter',system-ui,sans-serif;
  min-height:100vh;overflow-x:hidden;
}

/* ---- light mode (Real Estate CRM only) ----
   Every component below already reads colors from these custom
   properties, so overriding them here re-skins the whole module without
   touching a single class or piece of markup — same buttons, same
   cards, same everything, just a light palette. --cyan/--violet/--grad
   are left untouched on purpose so gradient buttons (.btn-primary,
   .action-btn.primary) render pixel-identical to the dark theme. Only
   the handful of rules that use --cyan/--mint as flat TEXT on a light
   surface (unreadable otherwise) get a readable override below. */
body.re-light{
  --bg:#eef1f7;--surface:#ffffff;--surface2:#f3f5fb;--border:#dbe1ee;
  --text:#101a30;--muted:#4a5570;--faint:#838ea5;
}
body.re-light .grid-overlay,body.re-light .blob{display:none;}
body.re-light .link-btn{color:#0f6fb0;}
body.re-light .link-btn:hover{color:#5b3fc0;}
body.re-light .side-nav-item.active{color:#0f6fb0;}
body.re-light .status-Contacted{color:#0f6fb0;}
body.re-light .view-toggle-btn.active{color:#0f6fb0;}
body.re-light .metric-card .value.mint,
body.re-light .kanban-column-value,
body.re-light .kanban-card .lead-value,
body.re-light .status-Converted,
body.re-light .status-Closed,
body.re-light .status-Available,
body.re-light .status-Received,
body.re-light .status-Active{color:#0e8f5f;}
body.re-light .activity-item,
body.re-light .task-pill,
body.re-light .banner,
body.re-light .ina-bubble{color:#3a445e;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1100px;margin:0 auto;padding:28px 24px 60px;position:relative;z-index:1;}

/* ---- app shell: collapsible icon sidebar + main column ---- */
.shell{
  display:grid;grid-template-columns:230px 1fr;width:100%;margin:0;
  position:relative;z-index:1;align-items:start;
}
.shell.collapsed{grid-template-columns:68px 1fr;}
.side-nav{border-right:1px solid var(--border);padding:20px 14px;position:sticky;top:0;min-height:calc(100vh - 65px);}
.side-nav-toggle{display:flex;align-items:center;justify-content:space-between;padding:0 8px 18px;}
.side-nav-toggle .label{font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;overflow:hidden;font-weight:700;}
.side-nav-toggle button{
  background:none;border:1px solid var(--border);border-radius:6px;color:var(--faint);
  font-size:12px;padding:4px 8px;cursor:pointer;flex-shrink:0;
}
.side-nav-toggle button:hover{border-color:var(--cyan);color:var(--cyan);}
.side-nav-item{
  display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:9px;
  font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;margin-bottom:3px;
  transition:background .12s,color .12s;
}
.side-nav-item:hover{background:var(--surface2);color:var(--text);}
.side-nav-item.active{background:rgba(34,211,238,.1);color:var(--cyan);}
.side-nav-item .icon{width:19px;height:19px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.side-nav-item .icon svg{width:19px;height:19px;}
.side-nav-item .label{white-space:nowrap;overflow:hidden;}
.shell.collapsed .side-nav-item .label,
.shell.collapsed .side-nav-toggle .label{display:none;}
.shell.collapsed .side-nav-item{justify-content:center;}
.main-col{padding:26px 30px 60px;min-width:0;}
.view-section{display:none;}
.view-section.active{display:block;}

/* ---- loading states ---- */
.spinner{
  display:inline-block;width:13px;height:13px;flex-shrink:0;
  border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;
  border-radius:50%;animation:ina-spin .7s linear infinite;vertical-align:-2px;
}
@keyframes ina-spin{to{transform:rotate(360deg);}}
.page-loading{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:100px 20px;color:var(--muted);font-size:13px;position:relative;z-index:1;
}
.page-loading .spinner{width:18px;height:18px;border-width:2.5px;color:var(--cyan);}
.btn[disabled], .action-btn[disabled]{opacity:.65;cursor:wait;}

/* ---- ambient background (grid + glow blobs) ---- */
.grid-overlay{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(124,92,255,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(124,92,255,0.06) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 20%, black 40%, transparent 100%);
}
.blob{
  position:fixed;border-radius:50%;filter:blur(100px);opacity:.28;z-index:0;
  pointer-events:none;will-change:transform;animation:ina-float 20s ease-in-out infinite;
}
.blob1{width:480px;height:480px;background:var(--cyan);top:-150px;left:-150px;}
.blob2{width:420px;height:420px;background:var(--violet);top:15%;right:-160px;animation-delay:-4s;}
.blob3{width:420px;height:420px;background:var(--magenta);bottom:-150px;left:15%;animation-delay:-8s;}
.blob4{width:340px;height:340px;background:var(--mint);bottom:8%;right:8%;animation-delay:-12s;}
@keyframes ina-float{
  0%,100%{transform:translate3d(0,0,0) scale(1);}
  33%{transform:translate3d(40px,-50px,0) scale(1.08);}
  66%{transform:translate3d(-30px,30px,0) scale(0.94);}
}
.topbar, .login-shell{position:relative;z-index:1;}

/* ---- topbar ---- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 28px;border-bottom:1px solid var(--border);margin-bottom:28px;
}
.topbar .brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:19px;}
.topbar .brand .dot{width:9px;height:9px;border-radius:50%;background:var(--grad);}
.logo-mark{width:42px;height:42px;flex-shrink:0;filter:drop-shadow(0 0 8px rgba(124,92,255,.35));}
.accent{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.brand-sep{color:var(--faint);font-weight:400;margin:0 3px;}
.topbar .who{display:flex;align-items:center;gap:16px;font-size:13.5px;color:var(--muted);font-weight:600;}
.topbar .who .role-badge{
  font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.04em;
  color:var(--violet);border:1px solid rgba(124,92,255,.35);background:rgba(124,92,255,.08);
  border-radius:20px;padding:4px 11px;text-transform:uppercase;
}
.topbar button.logout{
  background:transparent;border:1px solid var(--border);color:var(--muted);
  padding:8px 16px;border-radius:8px;font-size:13px;cursor:pointer;font-family:inherit;font-weight:600;
}
.topbar button.logout:hover{border-color:var(--cyan);color:var(--cyan);}

/* ---- login page ---- */
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr 0.85fr;}
.login-pitch{
  padding:0 7vw;display:flex;flex-direction:column;justify-content:center;
  border-right:1px solid var(--border);position:relative;z-index:1;
}
.login-brand{display:flex;align-items:center;gap:14px;font-weight:700;font-size:26px;margin-bottom:48px;}
.login-brand .logo-mark{width:48px;height:48px;}
.login-pitch .kicker{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.1em;color:var(--cyan);margin-bottom:20px;text-transform:uppercase;}
.login-pitch h1{font-size:clamp(2.4rem,4vw,3.4rem);font-weight:700;line-height:1.15;margin-bottom:22px;max-width:640px;}
.login-pitch p{font-size:17px;color:var(--muted);line-height:1.7;margin-bottom:30px;max-width:520px;}
.login-pitch ul{list-style:none;font-size:15px;color:#c7cee0;line-height:2.4;}
.login-pitch li::before{content:"✓ ";color:var(--mint);}
.login-form-wrap{
  padding:0 6vw;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1;
}
.login-form{max-width:380px;width:100%;}
.login-form h2{font-size:26px;font-weight:700;margin-bottom:32px;}
.field{margin-bottom:22px;}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px;}
.field input{
  width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:10px;
  padding:15px 16px;color:var(--text);font-size:15px;font-family:inherit;
}
.field input:focus{outline:none;border-color:var(--cyan);}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:none;border-radius:10px;padding:16px 24px;font-weight:700;font-size:15px;
  cursor:pointer;font-family:inherit;
}
.btn-primary{background:var(--grad);color:#04050a;width:100%;box-shadow:0 0 40px rgba(34,211,238,.25);}
.btn-primary:hover{opacity:.92;}
.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text);}
.btn-secondary:hover{border-color:var(--cyan);color:var(--cyan);}
.hint{font-size:12.5px;color:var(--faint);margin-top:22px;line-height:1.8;}
.error-msg{
  background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.35);color:var(--warn);
  font-size:13px;border-radius:9px;padding:11px 14px;margin-bottom:18px;display:none;
}
.error-msg.show{display:block;}
@media (max-width:900px){
  .login-shell{grid-template-columns:1fr;}
  .login-pitch{border-right:none;border-bottom:1px solid var(--border);padding:60px 7vw;}
  .login-form-wrap{padding:60px 7vw;}
}

/* ---- metric cards ---- */
.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px;}
.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px;}
.metric-card .label{font-size:11.5px;color:var(--muted);margin-bottom:7px;font-weight:600;}
.metric-card .value{font-size:23px;font-weight:700;}
.metric-card .value.warn{color:var(--warn);}
.metric-card .value.mint{color:var(--mint);}

/* ---- table toolbar: search + filters + row selection ---- */
.table-toolbar{display:flex;flex-wrap:wrap;gap:9px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface);}
.tt-search{position:relative;flex:1;min-width:170px;}
.tt-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--faint);pointer-events:none;}
.tt-search input{width:100%;padding:8px 12px 8px 30px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:12.5px;font-family:inherit;}
.tt-search input:focus{outline:none;border-color:var(--cyan);}
.table-toolbar select,
.table-toolbar input[type=number],
.table-toolbar input[type=date]{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:12px;font-family:inherit;}
.table-toolbar select:focus,
.table-toolbar input:focus{outline:none;border-color:var(--cyan);}
.tt-range{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--faint);}
.tt-range input{width:92px;}
.tt-range-sep{color:var(--faint);}
.tt-reset{background:none;border:none;color:var(--cyan);font-size:11.5px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;padding:0;}
.tt-selection-bar{display:none;align-items:center;justify-content:space-between;gap:12px;padding:9px 18px;background:rgba(34,211,238,.09);border-bottom:1px solid var(--border);font-size:12px;font-weight:600;}
.tt-selection-bar.show{display:flex;}
.tt-checkbox{width:15px;height:15px;cursor:pointer;accent-color:var(--cyan);flex-shrink:0;}
th.tt-check-col, td.tt-check-col{width:34px;padding-left:18px;padding-right:0;}
.re-broker-card{position:relative;}
.re-broker-card .tt-checkbox{position:absolute;top:16px;left:16px;}
.re-broker-card.has-select{padding-left:38px;}
body.re-light .tt-selection-bar{background:rgba(15,111,176,.08);}

/* ---- panel / table ---- */
.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:24px;}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);}
.panel-head h3{font-size:15px;font-weight:700;}
.panel-head .sub{font-size:12px;color:var(--faint);}
table{width:100%;border-collapse:collapse;font-size:13.5px;}
th{
  text-align:left;font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.03em;
  padding:10px 18px;border-bottom:1px solid var(--border);font-weight:700;
}
td{padding:13px 18px;border-bottom:1px solid var(--surface2);vertical-align:middle;}
tr:last-child td{border-bottom:none;}
tbody tr{transition:background .12s;}
tbody tr:hover{background:var(--surface2);}
.status-pill{font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;display:inline-block;}
.status-New{background:rgba(154,164,189,.15);color:var(--muted);}
.status-Contacted{background:rgba(34,211,238,.12);color:var(--cyan);}
.status-Hot{background:rgba(255,107,107,.12);color:var(--warn);}
.status-Cold{background:rgba(124,92,255,.12);color:var(--violet);}
.status-Converted{background:rgba(45,255,176,.12);color:var(--mint);}
.status-active{background:rgba(45,255,176,.12);color:var(--mint);}
.status-suspended{background:rgba(255,107,107,.12);color:var(--warn);}

/* ---- Real Estate CRM statuses ---- */
.status-SiteVisit{background:rgba(255,107,107,.12);color:var(--warn);}
.status-Negotiation{background:rgba(124,92,255,.12);color:var(--violet);}
.status-Closed{background:rgba(45,255,176,.12);color:var(--mint);}
.status-Lost{background:rgba(154,164,189,.15);color:var(--muted);}
.status-Available{background:rgba(45,255,176,.12);color:var(--mint);}
.status-Reserved{background:rgba(255,107,107,.12);color:var(--warn);}
.status-Sold{background:rgba(154,164,189,.15);color:var(--muted);}
.status-Received{background:rgba(45,255,176,.12);color:var(--mint);}
.status-Pending{background:rgba(255,107,107,.12);color:var(--warn);}
.status-Active{background:rgba(45,255,176,.12);color:var(--mint);}
.status-Inactive{background:rgba(154,164,189,.15);color:var(--muted);}
.status-Scheduled{background:rgba(34,211,238,.12);color:var(--cyan);}
.status-Completed{background:rgba(45,255,176,.12);color:var(--mint);}
.status-Cancelled{background:rgba(154,164,189,.15);color:var(--muted);}
.status-No-show{background:rgba(255,107,107,.12);color:var(--warn);}

/* ---- lead source badges (channel: WhatsApp/Email/Ads/Portal/etc.) ---- */
.source-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:4px 9px 4px 6px;border-radius:20px;white-space:nowrap;}
.source-badge svg{width:12px;height:12px;flex-shrink:0;}
.source-badge.src-whatsapp{background:rgba(37,211,102,.14);color:#25d366;}
.source-badge.src-email{background:rgba(34,211,238,.12);color:var(--cyan);}
.source-badge.src-ads{background:rgba(124,92,255,.12);color:var(--violet);}
.source-badge.src-portal{background:rgba(255,180,60,.14);color:#ffb43c;}
.source-badge.src-referral{background:rgba(45,255,176,.12);color:var(--mint);}
.source-badge.src-walkin{background:rgba(154,164,189,.15);color:var(--muted);}
.source-badge.src-import{background:rgba(154,164,189,.15);color:var(--muted);}

/* ---- actions row ---- */
.actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px;}
.action-btn{
  display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;
  padding:11px 16px;border-radius:10px;border:1px solid var(--border);background:var(--surface);
  color:var(--text);cursor:pointer;font-family:inherit;transition:border-color .15s, transform .15s;
}
.action-btn:hover{border-color:var(--cyan);transform:translateY(-2px);}
.action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.action-btn.primary{background:var(--grad);color:#04050a;border:none;}

/* ---- activity feed ---- */
.activity-list{padding:6px 0;}
.activity-item{padding:11px 18px;border-bottom:1px solid var(--surface2);font-size:12px;color:#c7cee0;}
.activity-item:last-child{border-bottom:none;}
.activity-item .when{font-size:10.5px;color:var(--faint);margin-top:3px;}
.activity-item .acc-tag{font-size:10px;color:var(--cyan);font-family:'JetBrains Mono',monospace;margin-right:6px;}

/* ---- two column layout ---- */
.two-col{display:grid;grid-template-columns:2fr 1fr;gap:20px;align-items:start;}
.two-col > *{min-width:0;}
@media (max-width:860px){.two-col{grid-template-columns:1fr;} .login-card{grid-template-columns:1fr;}}

/* ---- team panel ---- */
.team-list{padding:6px 18px 14px;}
.team-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--surface2);font-size:12.5px;}
.team-row:last-child{border-bottom:none;}
.team-row .primary-tag{font-size:9.5px;color:var(--violet);font-family:'JetBrains Mono',monospace;margin-left:6px;}
.role-tag{
  font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  padding:2px 8px;border-radius:20px;margin-left:8px;display:inline-block;
}
.role-tag-admin{background:rgba(124,92,255,.12);color:var(--violet);}
.role-tag-user{background:rgba(154,164,189,.15);color:var(--muted);}
.team-form{padding:14px 18px;border-top:1px solid var(--border);}
.team-form input{
  width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:8px;
  padding:9px 10px;color:var(--text);font-size:12px;font-family:inherit;margin-bottom:8px;
}
.team-full-note{font-size:11px;color:var(--faint);padding:14px 18px;line-height:1.6;}
.team-row{align-items:flex-start;}
.team-actions{display:flex;gap:6px;flex-shrink:0;}
.team-task-btn{
  background:var(--surface2);border:1px solid var(--border);color:var(--muted);
  font-size:10px;font-weight:600;padding:5px 8px;border-radius:6px;cursor:pointer;font-family:inherit;white-space:nowrap;
}
.team-task-btn:hover{border-color:var(--cyan);color:var(--cyan);}
.member-tasks{margin-top:8px;display:flex;flex-direction:column;gap:5px;width:100%;}
.task-pill{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:var(--surface2);border:1px solid var(--border);border-radius:7px;
  padding:6px 9px;font-size:10.5px;color:#c7cee0;
}
.task-pill.done{opacity:.5;text-decoration:line-through;}
.task-pill .task-kind{font-size:9px;color:var(--violet);margin-right:5px;}
.task-pill .task-done-btn{
  background:none;border:1px solid var(--border);color:var(--faint);border-radius:5px;
  font-size:9px;padding:2px 6px;cursor:pointer;font-family:inherit;flex-shrink:0;
}
.task-pill .task-done-btn:hover{border-color:var(--mint);color:var(--mint);}

/* ---- my tasks panel (Home) ---- */
.my-task-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 18px;border-bottom:1px solid var(--surface2);font-size:12.5px;
}
.my-task-row:last-child{border-bottom:none;}
.my-task-row .meta{font-size:10.5px;color:var(--faint);margin-top:3px;}
.my-task-row .kind-tag{font-size:9.5px;color:var(--violet);font-family:'JetBrains Mono',monospace;margin-right:6px;text-transform:uppercase;}

/* ---- user detail modal ---- */
.ud-label{font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;}
.ud-label span:first-child{text-transform:none;letter-spacing:0;}
#udNewPassword{
  flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:8px;
  padding:10px 12px;color:var(--text);font-size:12.5px;font-family:inherit;
}
#udNewPassword:focus{outline:none;border-color:var(--cyan);}

/* ---- Real Estate CRM broker cards ---- */
.re-broker-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:12px;transition:border-color .12s,transform .12s,box-shadow .12s;}
.re-broker-card:hover{border-color:var(--cyan);transform:translateY(-2px);box-shadow:0 8px 22px rgba(16,26,48,.08);}
.re-broker-card .row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;flex-wrap:wrap;gap:6px;}
.re-broker-card .name{font-weight:700;font-size:15px;}
.re-broker-card .meta{font-size:12px;color:var(--faint);}
.re-broker-card .target{font-size:12.5px;color:var(--muted);margin:4px 0 8px;}

/* ---- redesigned edit/icon buttons ---- */
.icon-btn{
  width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--surface);
  color:var(--faint);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  transition:border-color .12s,color .12s,background .12s;flex-shrink:0;
}
.icon-btn:hover{border-color:var(--cyan);color:var(--cyan);background:var(--surface2);}
.icon-btn svg{width:14px;height:14px;}
.re-progress-track{background:var(--surface2);border-radius:5px;height:8px;overflow:hidden;}
.re-progress-fill{height:100%;background:var(--grad);}
.re-progress-fill.low{background:var(--warn);}
.re-progress-fill.zero{background:var(--faint);}
.re-progress-pct{font-size:10.5px;color:var(--faint);text-align:right;margin-top:4px;}

/* ---- avatar ---- */
.avatar-circle{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:#04050a;
}

/* ---- inline controls (super admin table) ---- */
.mini-input{
  width:80px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;
  padding:5px 7px;color:var(--text);font-size:11.5px;font-family:inherit;
}

/* ---- labeled form (e.g. "new account" panel) ---- */
.na-row{display:grid;gap:14px;margin-bottom:16px;}
.na-field label{
  display:block;font-size:10.5px;font-weight:700;color:var(--muted);margin-bottom:6px;
  text-transform:uppercase;letter-spacing:.03em;
}
.na-field input, .na-field select{
  width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:8px;
  padding:10px 12px;color:var(--text);font-size:12.5px;font-family:inherit;
}
.na-field input:focus, .na-field select:focus{outline:none;border-color:var(--cyan);}
.na-field .hint-line{font-size:10px;color:var(--faint);margin-top:5px;}
.link-btn{background:none;border:none;color:var(--cyan);font-size:11.5px;font-weight:600;cursor:pointer;font-family:inherit;padding:0;}
.link-btn:hover{color:var(--violet);}
.link-btn.danger{color:var(--warn);}
.banner{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:rgba(124,92,255,.1);border:1px solid rgba(124,92,255,.3);border-radius:10px;
  padding:11px 16px;font-size:12.5px;color:#c7cee0;margin-bottom:20px;
}
.toast{
  position:absolute;top:16px;right:16px;background:var(--surface2);border:1px solid var(--border);
  border-radius:9px;padding:10px 16px;font-size:12.5px;box-shadow:0 8px 24px rgba(0,0,0,.4);
  display:none;
}
.toast.show{display:block;}
.empty-note{padding:24px 18px;font-size:12.5px;color:var(--faint);text-align:center;}

/* ---- list/kanban view toggle ---- */
.view-toggle{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.view-toggle-btn{
  background:var(--surface);border:none;color:var(--faint);font-size:11px;font-weight:600;
  padding:7px 12px;cursor:pointer;font-family:inherit;
}
.view-toggle-btn.active{background:rgba(34,211,238,.12);color:var(--cyan);}
.view-toggle-btn:not(.active):hover{color:var(--text);}

/* ---- kanban board ---- */
.kanban-board{display:grid;grid-auto-flow:column;grid-auto-columns:230px;gap:12px;overflow-x:auto;padding:16px 18px;}
.kanban-column{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px;min-height:120px;display:flex;flex-direction:column;gap:8px;}
.kanban-column.drag-over{border-color:var(--cyan);}
.kanban-column-head{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 6px;}
.kanban-column-head .name{font-size:11.5px;font-weight:700;}
.kanban-column-head .count{font-size:10px;color:var(--faint);font-family:'JetBrains Mono',monospace;}
.kanban-column-value{font-size:10.5px;color:var(--mint);font-family:'JetBrains Mono',monospace;padding:0 4px 8px;}
.kanban-card{
  background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:10px 11px;
  cursor:grab;font-size:12px;
}
.kanban-card:active{cursor:grabbing;}
.kanban-card.dragging{opacity:.4;}
.kanban-card .lead-name{font-weight:700;margin-bottom:2px;}
.kanban-card .lead-company{color:var(--muted);font-size:11px;margin-bottom:6px;}
.kanban-card .lead-value{color:var(--mint);font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:700;}
.kanban-card .lead-meta{color:var(--faint);font-size:10px;margin-top:4px;}
.kanban-empty{font-size:10.5px;color:var(--faint);text-align:center;padding:14px 4px;}

/* ---- modal ---- */
.modal-overlay{
  display:none;position:fixed;inset:0;background:rgba(3,5,12,.7);z-index:50;
  align-items:center;justify-content:center;padding:20px;
}
.modal-overlay.show{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:440px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);}
.modal-head h3{font-size:14px;font-weight:700;}
.modal-close{background:none;border:none;color:var(--faint);font-size:14px;cursor:pointer;}
.modal-close:hover{color:var(--text);}
.modal-body{padding:20px;}
.modal-body input, .modal-body select{
  width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:8px;
  padding:10px 12px;color:var(--text);font-size:12.5px;font-family:inherit;
}
.modal-body input:focus, .modal-body select:focus{outline:none;border-color:var(--cyan);}

/* ---- Ina agent panel ---- */
.ina-panel .panel-head h3{display:flex;align-items:center;gap:7px;}
.ina-dot{width:8px;height:8px;border-radius:50%;background:var(--grad);box-shadow:0 0 10px rgba(124,92,255,.6);flex-shrink:0;}
.ina-feed{padding:6px 0;max-height:340px;overflow-y:auto;}
.ina-bubble{padding:11px 18px;border-bottom:1px solid var(--surface2);font-size:12px;color:#c7cee0;line-height:1.5;}
.ina-bubble:last-child{border-bottom:none;}
.ina-bubble .when{font-size:10px;color:var(--faint);margin-top:4px;}

/* ---- Ina agent: floating widget (Real Estate dashboard) ---- */
.ina-float{position:fixed;right:26px;bottom:26px;z-index:500;display:flex;flex-direction:column;align-items:flex-end;gap:14px;}
.ina-float-btn{width:58px;height:58px;border-radius:50%;border:none;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;gap:0;cursor:pointer;box-shadow:0 10px 28px rgba(124,92,255,.45);transition:transform .15s;position:relative;}
.ina-float-btn:hover{transform:translateY(-3px) scale(1.04);}
.ina-float-btn svg{width:24px;height:24px;}
.ina-float-btn .ina-dot{position:absolute;top:8px;right:8px;background:var(--mint);box-shadow:0 0 8px rgba(46,213,115,.8);}
.ina-float-window{width:340px;max-width:calc(100vw - 52px);background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.4);overflow:hidden;}
.ina-float-head{padding:14px 16px;border-bottom:1px solid var(--surface2);display:flex;align-items:center;gap:8px;position:relative;background:var(--surface2);}
.ina-float-head h3{font-size:13.5px;display:flex;align-items:center;gap:7px;margin:0;}
.ina-float-head .sub{font-size:11px;color:var(--faint);margin-left:auto;margin-right:22px;}
.ina-float-close{position:absolute;right:10px;top:10px;background:none;border:none;color:var(--faint);cursor:pointer;font-size:13px;width:24px;height:24px;border-radius:6px;}
.ina-float-close:hover{background:var(--surface2);color:var(--text);}
.ina-float-window .ina-feed{max-height:360px;}
body.re-light .ina-float-window{background:#fff;box-shadow:0 20px 50px rgba(20,30,60,.18);}
body.re-light .ina-float-head{background:#f4f6fb;}

/* ---- Real Estate CRM: lead/broker/inventory detail views ---- */
.detail-back{font-size:11.5px;color:var(--faint);margin-bottom:8px;display:inline-block;}
.detail-back:hover{color:var(--cyan);}
.detail-shell{display:grid;grid-template-columns:270px 1fr 260px;gap:14px;align-items:start;}
@media (max-width:1100px){.detail-shell{grid-template-columns:1fr;}}
.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px 18px;}
.profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--grad);color:#04050a;font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;}
.profile-card h2{font-size:16px;font-weight:700;}
.profile-card .stage{margin-top:6px;}
.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:16px 0;}
.quick-actions a, .quick-actions button{
  display:flex;align-items:center;justify-content:center;gap:5px;padding:9px 4px;border-radius:9px;
  border:1px solid var(--border);background:var(--surface2);color:var(--muted);font-size:11px;font-weight:600;font-family:inherit;
}
.quick-actions a:hover, .quick-actions button:hover{border-color:var(--cyan);color:var(--cyan);}
.contact-line{font-size:12px;color:var(--muted);margin-bottom:9px;}
.stat-boxes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0;}
.stat-box{background:var(--surface2);border-radius:9px;padding:10px;text-align:center;}
.stat-box .num{font-size:17px;font-weight:700;}
.stat-box .lbl{font-size:9.5px;color:var(--faint);margin-top:2px;}
.stat-box.clickable{border:1px solid transparent;cursor:pointer;font-family:inherit;transition:border-color .12s,background .12s;width:100%;}
.stat-box.clickable:hover{border-color:var(--cyan);}
.stat-box.clickable.active{border-color:var(--cyan);background:rgba(34,211,238,.1);}
.props-list{border-top:1px solid var(--border);padding-top:12px;margin-top:4px;}
.props-list h4{font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--faint);margin-bottom:10px;}
.prop-row{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:6px 0;border-bottom:1px solid var(--surface2);}
.prop-row:last-child{border-bottom:none;}
.prop-row .k{color:var(--faint);flex-shrink:0;}
.prop-row .v{font-weight:600;text-align:right;}
.timeline{padding:6px 0;}
.tl-item{display:flex;gap:12px;padding:12px 18px;border-bottom:1px solid var(--surface2);}
.tl-item:last-child{border-bottom:none;}
.tl-dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);flex-shrink:0;margin-top:5px;}
.tl-body{font-size:12.5px;flex:1;min-width:0;}
.tl-body .when{font-size:10.5px;color:var(--faint);margin-top:3px;}
.note-form{display:flex;gap:6px;padding:12px;border-bottom:1px solid var(--border);}
.note-form input{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);font-size:12px;font-family:inherit;}
.note-form button{background:var(--grad);color:#04050a;border:none;border-radius:8px;padding:0 14px;font-weight:700;font-size:11.5px;}
.note-card{background:var(--surface2);border-radius:9px;padding:10px 12px;margin:0 12px 8px;font-size:12px;color:var(--muted);}
.note-card:first-child{margin-top:12px;}
.note-card .when{font-size:10px;color:var(--faint);margin-top:6px;}
.mini-lead-row{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;border-bottom:1px solid var(--surface2);font-size:12.5px;}
.mini-lead-row:last-child{border-bottom:none;}
.mini-lead-row .meta{font-size:10.5px;color:var(--faint);margin-top:2px;}

.hint-line{font-size:11px;color:var(--faint);line-height:1.5;}

.wa-banner{margin:0 18px 14px;padding:10px 14px;border-radius:9px;font-size:12px;line-height:1.5;}
.wa-banner.ok{background:rgba(45,255,176,.1);color:var(--mint);}
.wa-banner.warn{background:rgba(255,180,60,.12);color:#ffb43c;}

.wa-bubble-row{display:flex;margin-bottom:8px;}
.wa-bubble-row.out{justify-content:flex-end;}
.wa-bubble{max-width:78%;padding:8px 12px;border-radius:12px;font-size:12px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word;}
.wa-bubble.in{background:var(--surface2);border:1px solid var(--border);border-bottom-left-radius:3px;}
.wa-bubble.out{background:var(--grad);color:#04050a;border-bottom-right-radius:3px;}
.wa-bubble .when{font-size:9.5px;opacity:.6;margin-top:3px;}

.wa-convo-row{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px solid var(--surface2);font-size:12.5px;cursor:pointer;}
.wa-convo-row:last-child{border-bottom:none;}
.wa-convo-row:hover{background:var(--surface2);}
.wa-convo-row .avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;color:#04050a;flex-shrink:0;}
.wa-convo-row .body{flex:1;min-width:0;}
.wa-convo-row .top{display:flex;justify-content:space-between;gap:8px;}
.wa-convo-row .preview{font-size:11px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.wa-convo-row .when{font-size:10px;color:var(--faint);flex-shrink:0;}

/* ---- WhatsApp outreach: leads side panel ---- */
.wa-leads-panel{
  width:270px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);
  border-radius:14px;padding:16px;position:sticky;top:20px;
  max-height:calc(100vh - 100px);display:flex;flex-direction:column;
}
.wa-leads-panel-head{margin-bottom:12px;}
.wa-leads-panel-head h3{font-size:14px;font-weight:700;}
.wa-leads-panel-head .sub{font-size:11px;color:var(--faint);}
.wa-leads-panel select{
  width:100%;padding:7px 9px;border-radius:8px;border:1px solid var(--border);
  background:var(--surface2);color:var(--text);font-size:11.5px;font-family:inherit;
}
.wa-leads-panel select:focus{outline:none;border-color:var(--cyan);}
#waLeadsSelectAllRow label{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--faint);font-weight:600;padding:6px 2px;border-bottom:1px solid var(--surface2);}
.wa-leads-list{overflow-y:auto;flex:1;margin-top:4px;}
.wa-lead-row{display:flex;align-items:flex-start;gap:8px;padding:9px 2px;border-bottom:1px solid var(--surface2);}
.wa-lead-row:last-child{border-bottom:none;}
.wa-lead-row .tt-checkbox{margin-top:2px;}
.wa-lead-row .body{flex:1;min-width:0;cursor:pointer;}
.wa-lead-row .top{display:flex;justify-content:space-between;align-items:baseline;gap:6px;}
.wa-lead-row .top strong{font-size:12px;color:var(--text);}
.wa-lead-row .phone{font-size:9.5px;color:var(--faint);font-family:'JetBrains Mono',monospace;flex-shrink:0;}
.wa-lead-row .interest{font-size:10.5px;color:var(--faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wa-lead-row .icon-btn{width:24px;height:24px;margin-top:1px;}
.wa-lead-row .icon-btn svg{width:12px;height:12px;}
.wa-leads-panel .tt-selection-bar{flex-direction:column;align-items:stretch;gap:8px;border-radius:9px;margin-bottom:8px;}
.wa-convo-row-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;color:#04050a;flex-shrink:0;}

/* ---- dashboard chart panels ---- */
.two-col-even{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px;}
@media (max-width:860px){.two-col-even{grid-template-columns:1fr;}}
.chart-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;font-size:11px;color:var(--muted);}
.chart-legend span{display:inline-flex;align-items:center;gap:5px;}
.chart-legend i{width:8px;height:8px;border-radius:2px;display:inline-block;}
