*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0f0f0f;--surface:#1a1a1a;--surface-2:#222;--surface-3:#2a2a2a;
  --border:rgba(255,255,255,0.07);--border-md:rgba(255,255,255,0.11);--border-hi:rgba(255,255,255,0.17);
  --text-1:#efefef;--text-2:#999;--text-3:#555;
  --accent:#1a56db;--accent-hi:#2563eb;--accent-bg:rgba(26,86,219,0.1);--accent-border:rgba(26,86,219,0.3);
  --green:#16a34a;--green-bg:rgba(22,163,74,0.1);--green-border:rgba(22,163,74,0.25);
  --amber:#d97706;--amber-bg:rgba(217,119,6,0.1);--amber-border:rgba(217,119,6,0.25);
  --red:#dc2626;--red-bg:rgba(220,38,38,0.1);--red-border:rgba(220,38,38,0.25);
  --piq:#0e7490;--piq-bg:rgba(14,116,144,0.12);--piq-border:rgba(14,116,144,0.3);
  --sidebar:224px;--font:'Inter',system-ui,sans-serif;--mono:'JetBrains Mono',monospace;
  --radius:8px;--radius-lg:12px;
}
[data-theme="light"]{
  --bg:#f4f4f5;--surface:#fff;--surface-2:#f0f0f0;--surface-3:#e5e5e5;
  --border:rgba(0,0,0,0.07);--border-md:rgba(0,0,0,0.11);--border-hi:rgba(0,0,0,0.17);
  --text-1:#111;--text-2:#555;--text-3:#999;
}
html,body{height:100%;background:var(--bg);color:var(--text-1);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
body{display:flex}

/* SIDEBAR */
.sidebar{width:var(--sidebar);height:100vh;position:fixed;left:0;top:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between;z-index:20;transition:transform .25s ease,width .25s ease}
.sidebar-top{padding:18px 14px;flex:1;overflow-y:auto}
.logo{display:flex;align-items:center;gap:9px;margin-bottom:24px}
.logo-mark{width:28px;height:28px;background:none;border-radius:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.logo-mark img{width:28px;height:28px;object-fit:contain;display:block;flex-shrink:0}
.logo-text{font-size:14.5px;font-weight:400;color:var(--text-1);letter-spacing:-.2px}
.logo-text strong{font-weight:600}
.nav{display:flex;flex-direction:column;gap:2px}
.nav-divider{height:1px;background:var(--border);margin:8px 0}
.nav-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--radius);color:var(--text-2);text-decoration:none;font-size:13px;transition:all .12s;cursor:pointer;border:1px solid transparent;user-select:none}
.nav-item:hover{background:var(--surface-2);color:var(--text-1)}
.nav-item.active{background:var(--accent-bg);color:#60a5fa;border-color:var(--accent-border)}
.nav-parceliq{color:var(--piq)!important}
.nav-parceliq:hover{background:var(--piq-bg)!important}
.nav-parceliq.active{background:var(--piq-bg)!important;border-color:var(--piq-border)!important;color:#22d3ee!important}
.nav-pill{margin-left:auto;font-size:10px;padding:1px 6px;border-radius:10px;background:var(--piq-bg);color:#22d3ee;border:1px solid var(--piq-border)}
.nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px}
.sidebar-bottom{padding:10px 14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}
.theme-toggle{display:flex;align-items:center;gap:7px;padding:6px 9px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-3);font-family:var(--font);font-size:12px;cursor:pointer;width:100%;transition:all .12s}
.theme-toggle:hover{border-color:var(--border-md);color:var(--text-2)}
.agent-block{display:flex;align-items:center;gap:9px}
.agent-avatar{width:28px;height:28px;border-radius:50%;background:var(--surface-3);border:1px solid var(--border-md);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--text-2);flex-shrink:0}
.agent-name{font-size:12.5px;font-weight:500;color:var(--text-1)}
.agent-label{font-size:11px;color:var(--text-3)}

/* MAIN */
.main{margin-left:var(--sidebar);flex:1;min-height:100vh;display:flex;flex-direction:column;padding-top:40px}
.page{display:none;flex-direction:column;flex:1}
.page.active{display:flex}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}
.page-title{font-size:15px;font-weight:600;color:var(--text-1)}
.page-sub{font-size:12px;color:var(--text-3);margin-left:10px}
.page-body{flex:1;padding:20px 24px;overflow-y:auto}

/* TABS */
.tab-bar{display:flex;border-bottom:1px solid var(--border);background:var(--surface);padding:0 24px;flex-shrink:0}
.tab{padding:10px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-3);font-family:var(--font);font-size:13px;cursor:pointer;transition:all .12s;margin-bottom:-1px}
.tab:hover{color:var(--text-2)}
.tab.active{color:var(--text-1);border-bottom-color:var(--accent)}
.tab-content{display:none}
.tab-content.active{display:block}
.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--surface-3);border-radius:10px;font-size:10px;color:var(--text-2);margin-left:5px}

/* STATS */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px}
.stat-clickable{cursor:pointer;transition:border-color .12s,background .12s}
.stat-clickable:hover{border-color:var(--border-md);background:var(--surface-2)}
.stat-clickable .stat-sub{color:var(--accent);font-size:11.5px;margin-top:4px}
.stat-label{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px}
.stat-value{font-size:26px;font-weight:600;color:var(--text-1);line-height:1}
.stat-sub{font-size:11.5px;color:var(--text-3);margin-top:4px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* PANELS */
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.panel-header{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;font-size:11.5px;font-weight:500;color:var(--text-2);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.06em}
.panel-sub{font-size:11px;color:var(--text-3);text-transform:none;letter-spacing:0;font-weight:400}

/* TOOLBAR */
.toolbar{display:flex;gap:10px;margin-bottom:14px}
.search-wrap{flex:1;position:relative}
.search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none}
.search-wrap input{width:100%;padding:8px 12px 8px 32px;background:var(--surface);border:1px solid var(--border-md);border-radius:var(--radius);color:var(--text-1);font-family:var(--font);font-size:13.5px;outline:none}
.search-wrap input:focus{border-color:var(--accent)}
.search-wrap input::placeholder{color:var(--text-3)}
.filter-select{padding:8px 12px;background:var(--surface);border:1px solid var(--border-md);border-radius:var(--radius);color:var(--text-2);font-family:var(--font);font-size:13px;outline:none;cursor:pointer}

/* TABLE */
.table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.data-table{width:100%;border-collapse:collapse}
.data-table thead tr{background:var(--surface-2)}
.data-table th{padding:9px 14px;text-align:left;font-size:11px;font-weight:500;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--border);white-space:nowrap}
.data-table td{padding:11px 14px;font-size:13px;color:var(--text-1);border-bottom:1px solid var(--border);vertical-align:middle}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table tbody tr{cursor:pointer;transition:background .1s}
.data-table tbody tr:hover{background:var(--surface-2)}
.client-name{font-weight:500}
.client-biz{font-size:11.5px;color:var(--text-3);margin-top:1px}
.mono{font-family:var(--mono);font-size:12px}

/* BADGES */
.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:500}
.badge-active{background:var(--green-bg);color:#4ade80;border:1px solid var(--green-border)}
.badge-at-risk{background:var(--red-bg);color:#f87171;border:1px solid var(--red-border)}
.badge-expiring{background:var(--amber-bg);color:#fbbf24;border:1px solid var(--amber-border)}
.badge-inactive{background:var(--surface-3);color:var(--text-3);border:1px solid var(--border)}
.days-chip{display:inline-flex;padding:2px 8px;border-radius:20px;font-size:11.5px;font-family:var(--mono);font-weight:500}
.days-urgent{background:var(--red-bg);color:#f87171;border:1px solid var(--red-border)}
.days-soon{background:var(--amber-bg);color:#fbbf24;border:1px solid var(--amber-border)}
.days-ok{background:var(--green-bg);color:#4ade80;border:1px solid var(--green-border)}

/* BUTTONS */
.btn-primary{padding:7px 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-family:var(--font);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s;white-space:nowrap}
.btn-primary:hover{background:var(--accent-hi)}
.btn-outline{padding:6px 14px;background:transparent;color:var(--text-2);border:1px solid var(--border-md);border-radius:var(--radius);font-family:var(--font);font-size:13px;cursor:pointer;transition:all .12s;text-decoration:none;display:inline-flex;align-items:center}
.btn-outline:hover{border-color:var(--border-hi);color:var(--text-1)}
.btn-back{display:flex;align-items:center;gap:5px;padding:5px 10px;background:transparent;color:var(--text-3);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font);font-size:12.5px;cursor:pointer;transition:all .12s}
.btn-back:hover{color:var(--text-1);border-color:var(--border-md)}
.btn-sm{padding:4px 10px;background:transparent;color:var(--text-2);border:1px solid var(--border);border-radius:6px;font-family:var(--font);font-size:12px;cursor:pointer;white-space:nowrap}
.btn-sm:hover{border-color:var(--border-md);color:var(--text-1)}
.btn-xs{padding:4px 10px;border-radius:6px;font-family:var(--font);font-size:12px;cursor:pointer}
.btn-save-prop{padding:4px 10px;background:var(--piq-bg);color:#22d3ee;border:1px solid var(--piq-border);border-radius:6px;font-family:var(--font);font-size:12px;cursor:pointer;white-space:nowrap}
.btn-save-prop:hover{background:rgba(14,116,144,.2)}
.btn-danger{padding:3px 8px;background:transparent;color:var(--text-3);border:1px solid transparent;border-radius:6px;font-family:var(--font);font-size:12px;cursor:pointer}
.btn-danger:hover{color:#f87171;border-color:var(--red-border)}

/* DETAIL */
.detail-grid{display:grid;grid-template-columns:1fr 300px;gap:16px}

/* POLICIES */
.policy-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}
.policy-row:last-child{border-bottom:none}
.policy-type{font-size:13px;font-weight:500;color:var(--text-1)}
.policy-carrier{font-size:11.5px;color:var(--text-3);margin-top:2px}
.policy-num{font-family:var(--mono);font-size:11px;color:var(--text-3)}
.policy-premium{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--text-1);text-align:right}
.policy-exp{font-size:11.5px;color:var(--text-3);text-align:right;margin-top:2px}

/* ACTIVITY */
.activity-item{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}
.activity-item:last-child{border-bottom:none}
.activity-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;margin-top:1px}
.icon-call{background:var(--accent-bg);color:#60a5fa}
.icon-email{background:var(--green-bg);color:#4ade80}
.icon-meeting{background:rgba(124,58,237,.12);color:#a78bfa}
.icon-note{background:var(--amber-bg);color:#fbbf24}
.activity-notes{font-size:13px;color:var(--text-1);line-height:1.5}
.activity-meta{font-size:11px;color:var(--text-3);margin-top:3px}

/* NOTES */
.note-item{display:flex;gap:10px;padding:11px 16px;border-bottom:1px solid var(--border);align-items:flex-start}
.note-item:last-child{border-bottom:none}
.note-avatar{width:24px;height:24px;border-radius:50%;background:var(--accent-bg);border:1px solid var(--accent-border);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:#60a5fa;flex-shrink:0;margin-top:1px}
.note-body{flex:1}
.note-text{font-size:13px;color:var(--text-1);line-height:1.5}
.note-meta{font-size:11px;color:var(--text-3);margin-top:3px}
.note-input-wrap{padding:12px 16px;border-bottom:1px solid var(--border)}
.note-input{width:100%;padding:8px 11px;background:var(--surface-2);border:1px solid var(--border-md);border-radius:var(--radius);color:var(--text-1);font-family:var(--font);font-size:13px;outline:none;resize:vertical;min-height:72px}
.note-input:focus{border-color:var(--accent)}
.note-input-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}

/* CONTACT */
.contact-field{padding:10px 16px;border-bottom:1px solid var(--border)}
.contact-field:last-child{border-bottom:none}
.contact-label{font-size:11px;color:var(--text-3);margin-bottom:2px}
.contact-value{font-size:13px;color:var(--text-1)}

/* TOGGLE SWITCH */
.auto-search-toggle { margin-bottom: 12px; }
.toggle-label { display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--text-2); cursor: pointer; user-select: none; }
.toggle-label input[type="checkbox"] { display: none; }
.toggle-track { width: 32px; height: 18px; background: var(--surface-3); border-radius: 9px; position: relative; flex-shrink: 0; border: 1px solid var(--border-md); transition: background .2s; }
.toggle-label input:checked + .toggle-track { background: var(--accent); border-color: var(--accent); }
.toggle-thumb { position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; background: #fff; border-radius: 50%; transition: left .2s; }
.toggle-label input:checked + .toggle-track .toggle-thumb { left: 16px; }

/* PARCELIQ */
.parceliq-search-bar{display:flex;gap:10px;margin-bottom:20px}
.prop-search-section{margin-bottom:20px}
.prop-search-bar{display:flex;gap:10px;margin-bottom:12px}
.prop-result-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:6px;background:var(--surface)}
.prop-result-row:hover{border-color:var(--border-md)}
.prop-addr{font-size:13px;font-weight:500;color:var(--text-1)}
.prop-owner{font-size:11.5px;color:var(--text-3);margin-top:2px}
.prop-meta{display:flex;gap:12px;margin-top:4px;flex-wrap:wrap}
.prop-meta-item{font-size:11.5px;color:var(--text-2)}
.prop-meta-item strong{color:var(--text-1)}
.prop-actions{display:flex;gap:6px;flex-shrink:0}

/* SAVED PROPS */
.saved-prop-card{padding:14px 16px;border-bottom:1px solid var(--border)}
.saved-prop-card:last-child{border-bottom:none}
.saved-prop-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.saved-prop-addr{font-size:13.5px;font-weight:500;color:var(--text-1)}
.saved-prop-owner{font-size:12px;color:var(--text-3);margin-top:2px}
.saved-prop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}
.spg-field .spg-label{font-size:11px;color:var(--text-3)}
.spg-field .spg-value{font-size:12.5px;color:var(--text-1);font-weight:500;font-family:var(--mono)}
.prop-note{font-size:12px;color:var(--text-2);margin-top:6px;font-style:italic}
.ptc-link-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#22d3ee;text-decoration:none;padding:4px 10px;border:1px solid var(--piq-border);border-radius:6px;background:var(--piq-bg);transition:all .12s}
.ptc-link-btn:hover{background:rgba(14,116,144,.2)}

/* DASHBOARD ITEMS */
.renewal-item{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}
.renewal-item:last-child{border-bottom:none}
.renewal-item:hover{background:var(--surface-2)}
.renewal-client{font-size:13px;font-weight:500;color:var(--text-1)}
.renewal-type{font-size:11.5px;color:var(--text-3)}

/* ATTACHMENTS */
.attach-dropzone{display:flex;align-items:center;justify-content:center;gap:8px;padding:18px 16px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text-3);transition:background .12s,border-color .12s;flex-wrap:wrap}
.attach-dropzone.drag-over{background:var(--accent-bg);color:var(--text-2)}
.attach-dropzone svg{flex-shrink:0;color:var(--text-3)}
.attach-browse{color:#60a5fa;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.attach-browse:hover{color:var(--accent-hi)}
.attach-item{display:flex;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--border);transition:background .1s}
.attach-item:last-child{border-bottom:none}
.attach-item:hover{background:var(--surface-2)}
.attach-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.attach-icon-pdf{background:rgba(220,38,38,.12);color:#f87171}
.attach-icon-img{background:rgba(14,116,144,.12);color:#22d3ee}
.attach-icon-doc{background:var(--accent-bg);color:#60a5fa}
.attach-icon-xls{background:var(--green-bg);color:#4ade80}
.attach-icon-gen{background:var(--surface-3);color:var(--text-2)}
.attach-info{flex:1;min-width:0}
.attach-name{font-size:13px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.attach-meta{font-size:11px;color:var(--text-3);margin-top:1px}
.attach-actions{display:flex;gap:4px;flex-shrink:0}
.attach-uploading{padding:10px 16px;font-size:12.5px;color:var(--text-3);display:flex;align-items:center;gap:8px}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{width:14px;height:14px;border:2px solid var(--border-md);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}

/* EMPTY */
.empty-state{padding:60px 0;text-align:center}
.empty-icon{color:var(--text-3);margin-bottom:16px}
.empty-title{font-size:15px;font-weight:500;color:var(--text-2);margin-bottom:6px}
.empty-sub{font-size:13px;color:var(--text-3)}
.empty-row{padding:24px 16px;text-align:center;color:var(--text-3);font-size:13px}

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:40}
.modal-overlay.open{display:block}
.modal{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:500px;max-height:88vh;background:var(--surface);border:1px solid var(--border-md);border-radius:var(--radius-lg);z-index:50;flex-direction:column;overflow:hidden}
.modal.open{display:flex}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);font-size:14px;font-weight:500;color:var(--text-1);flex-shrink:0}
.modal-close{background:none;border:none;color:var(--text-3);cursor:pointer;font-size:16px;padding:2px 6px}
.modal-body{padding:20px;overflow-y:auto}
.form-group{margin-bottom:14px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-label{font-size:11.5px;color:var(--text-3);margin-bottom:5px;display:block}
.form-input,.form-select,.form-textarea{width:100%;padding:8px 11px;background:var(--surface-2);border:1px solid var(--border-md);border-radius:var(--radius);color:var(--text-1);font-family:var(--font);font-size:13px;outline:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent)}
.form-textarea{resize:vertical;min-height:72px}
.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.template-hint{font-size:11.5px;color:var(--text-3);margin-top:4px}

::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:2px}

/* ── MOBILE TOGGLE BUTTON ── */
.sidebar-toggle{display:none;position:fixed;top:12px;left:12px;z-index:30;width:36px;height:36px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border-md);align-items:center;justify-content:center;cursor:pointer;color:var(--text-2)}
.sidebar-toggle:hover{border-color:var(--border-hi);color:var(--text-1)}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:19}

/* ── MOBILE TOPBAR ── */
.mobile-topbar{display:none;position:fixed;top:0;left:0;right:0;height:52px;background:var(--surface);border-bottom:1px solid var(--border);z-index:18;align-items:center;padding:0 16px 0 56px}
.mobile-title{font-size:14px;font-weight:600;color:var(--text-1)}

/* ── RESPONSIVE ── */
@media (max-width: 768px) {
  /* Show toggle and mobile topbar */
  .sidebar-toggle{display:flex}
  .mobile-topbar{display:flex}

  /* Sidebar slides off screen by default */
  .sidebar{transform:translateX(-100%);width:240px;z-index:25}
  .sidebar.open{transform:translateX(0)}
  .sidebar-overlay.open{display:block}

  /* Main takes full width, pushed down for mobile topbar */
  .main{margin-left:0;padding-top:92px}

  /* Stack stat grid */
  .stat-grid{grid-template-columns:1fr 1fr;gap:10px}

  /* Stack two-col */
  .two-col{grid-template-columns:1fr}

  /* Stack detail grid */
  .detail-grid{grid-template-columns:1fr}

  /* Saved props grid smaller */
  .saved-prop-grid{grid-template-columns:1fr 1fr}

  /* Table horizontal scroll */
  .table-wrap{overflow-x:auto}
  .data-table{min-width:600px}

  /* Tabs scrollable */
  .tab-bar{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tab{white-space:nowrap}

  /* Search bar stack */
  .parceliq-search-bar{flex-direction:column}
  .prop-search-bar{flex-direction:column}

  /* Page body padding tighter */
  .page-body{padding:16px}
  .topbar{padding:0 16px;height:52px}

  /* Hide topbar on mobile since we have mobile-topbar */
  .topbar{display:none}

  /* Modal full width on mobile */
  .modal{width:95vw;max-height:90vh}
}

@media (max-width: 480px) {
  .stat-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .saved-prop-grid{grid-template-columns:1fr}
}

/* ── COMMUNICATIONS ── */
.comm-entry-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:16px;overflow:hidden}
.comm-entry-header{padding:11px 16px;font-size:11.5px;font-weight:500;color:var(--text-2);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.06em}
.comm-entry-body{padding:14px 16px}
.comm-entry-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.comm-type-btns{display:flex;gap:6px;flex-wrap:wrap}
.comm-type-btn{padding:5px 12px;background:transparent;border:1px solid var(--border-md);border-radius:20px;color:var(--text-2);font-family:var(--font);font-size:12.5px;cursor:pointer;transition:all .12s}
.comm-type-btn:hover{border-color:var(--border-hi);color:var(--text-1)}
.comm-type-btn.active{background:var(--accent-bg);border-color:var(--accent-border);color:#60a5fa}
.comm-date-input{padding:6px 10px;background:var(--surface-2);border:1px solid var(--border-md);border-radius:var(--radius);color:var(--text-1);font-family:var(--font);font-size:13px;outline:none}
.comm-date-input:focus{border-color:var(--accent)}
.comm-textarea{width:100%;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border-md);border-radius:var(--radius);color:var(--text-1);font-family:var(--font);font-size:13px;outline:none;resize:vertical;min-height:80px;line-height:1.5}
.comm-textarea:focus{border-color:var(--accent)}
.comm-followup-row{display:flex;align-items:center;gap:14px;margin-top:10px;flex-wrap:wrap}

/* comm log items */
.comm-item{display:flex;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border);transition:background .1s}
.comm-item:last-child{border-bottom:none}
.comm-item:hover{background:var(--surface-2)}
.comm-icon{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;margin-top:1px}
.icon-note{background:var(--amber-bg);color:#fbbf24}
.icon-call{background:var(--accent-bg);color:#60a5fa}
.icon-email{background:var(--green-bg);color:#4ade80}
.icon-meeting{background:rgba(124,58,237,.12);color:#a78bfa}
.comm-body{flex:1;min-width:0}
.comm-content{font-size:13px;color:var(--text-1);line-height:1.5}
.comm-meta{font-size:11.5px;color:var(--text-3);margin-top:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.comm-followup-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:500;background:var(--amber-bg);color:#fbbf24;border:1px solid var(--amber-border)}
.comm-followup-tag.complete{background:var(--green-bg);color:#4ade80;border-color:var(--green-border)}
.comm-followup-tag.overdue{background:var(--red-bg);color:#f87171;border-color:var(--red-border)}
.comm-actions{display:flex;gap:4px;flex-shrink:0;margin-top:2px}

/* ── FOLLOW-UP CALENDAR ── */
.followup-week{display:flex;flex-direction:column;gap:8px}
.followup-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.followup-day-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border)}
.followup-day-name{font-size:13px;font-weight:500;color:var(--text-1)}
.followup-day-date{font-size:12px;color:var(--text-3);font-family:var(--mono)}
.followup-day-count{font-size:11px;padding:2px 8px;border-radius:20px;background:var(--surface-3);color:var(--text-2)}
.followup-day.today .followup-day-header{background:var(--accent-bg)}
.followup-day.today .followup-day-name{color:#60a5fa}
.followup-item{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}
.followup-item:last-child{border-bottom:none}
.followup-item:hover{background:var(--surface-2)}
.followup-check{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border-hi);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:all .15s}
.followup-check:hover{border-color:var(--green);background:var(--green-bg)}
.followup-check.done{border-color:var(--green);background:var(--green);color:#fff}
.followup-client-name{font-size:13px;font-weight:500;color:var(--text-1)}
.followup-client-comm{font-size:11.5px;color:var(--text-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.followup-day-empty{padding:12px 16px;font-size:12.5px;color:var(--text-3)}
.overdue-section{background:var(--red-bg);border:1px solid var(--red-border);border-radius:var(--radius-lg);padding:14px 16px;margin-bottom:16px;display:flex;align-items:center;gap:12px}
.overdue-icon{font-size:18px}
.overdue-text{font-size:13px;color:#f87171;font-weight:500}
.overdue-sub{font-size:12px;color:var(--red);margin-top:2px}

/* ── FOLLOW-UP OVERLAY PANEL ── */
.followup-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40}
.followup-overlay.open{display:block}
.followup-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:420px;max-height:80vh;background:var(--surface);border:1px solid var(--border-md);border-radius:var(--radius-lg);z-index:50;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:all .18s}
.followup-panel.open{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1)}
.followup-panel-header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}
.followup-panel-name{font-size:15px;font-weight:600;color:var(--text-1)}
.followup-panel-comm{font-size:12.5px;color:var(--text-3);margin-top:4px}
.followup-panel-body{padding:16px 20px;overflow-y:auto}
.fup-field{margin-bottom:12px}
.fup-label{font-size:11px;color:var(--text-3);margin-bottom:3px}
.fup-value{font-size:13.5px;color:var(--text-1)}
.fup-actions{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}

/* ── SITE BANNER ── */
.site-banner{background:var(--surface);border-bottom:1px solid var(--border);height:40px;display:flex;align-items:center;position:fixed;top:0;left:var(--sidebar);right:0;z-index:15;transition:left .25s ease}
.site-banner-inner{display:flex;align-items:center;gap:8px;padding:0 20px}
.site-banner-logo{width:22px;height:22px;object-fit:contain;border-radius:4px;flex-shrink:0;display:block}
.site-banner-name{font-size:13px;font-weight:500;color:var(--text-1)}
.site-banner-name strong{font-weight:700}
.site-banner-tag{font-size:11px;color:var(--text-3);margin-left:4px}

/* ── SITE FOOTER ── */
.site-footer{background:var(--surface);border-top:1px solid var(--border);padding:14px 20px;margin-top:auto}
.site-footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.site-footer-left{display:flex;align-items:center;gap:8px}
.site-footer-logo{width:20px;height:20px;object-fit:contain;border-radius:3px;flex-shrink:0;display:block}
.site-footer-brand{font-size:12px;font-weight:500;color:var(--text-1)}
.site-footer-brand strong{font-weight:700}
.site-footer-copy{font-size:11px;color:var(--text-3);margin-left:6px}
.site-footer-links{display:flex;gap:16px}
.site-footer-links a{font-size:11px;color:var(--text-3);text-decoration:none}
.site-footer-links a:hover{color:var(--text-2)}

/* ── BANNER + FOOTER MOBILE ── */
@media(max-width:768px){
  .site-banner{left:0;top:0;z-index:22}
  .site-banner-inner{padding-left:56px}
  .mobile-topbar{top:40px}
  .sidebar-toggle{top:8px;left:8px;z-index:30}
  .sidebar.open .logo{padding-left:44px;margin-top:4px}
  .site-footer{margin-left:0}
}
