*{margin:0;padding:0;box-sizing:border-box}
:root,[data-theme="dark"]{
--bg0:#050810;--bg1:#0a0e1a;--bg2:#111827;--bg3:#1a2235;--bg4:#222d42;--bgH:#283350;
--bd:#1e293b;--bdL:#334155;--bdA:rgba(99,102,241,.15);
--t1:#f8fafc;--t2:#e2e8f0;--t3:#a8b5c7;--t4:#64748b;
--gn:#22c55e;--gnD:#16a34a;--gnB:rgba(34,197,94,.08);--gnB2:rgba(34,197,94,.14);
--bl:#6366f1;--blD:#4f46e5;--blB:rgba(99,102,241,.08);--blB2:rgba(99,102,241,.15);
--am:#f59e0b;--amB:rgba(245,158,11,.08);--amB2:rgba(245,158,11,.14);
--rd:#ef4444;--rdD:#dc2626;--rdB:rgba(239,68,68,.08);
--pr:#a78bfa;--prD:#8b5cf6;--prB:rgba(167,139,250,.08);
--cy:#06b6d4;--cyB:rgba(6,182,212,.08);
--or:#f97316;--orB:rgba(249,115,22,.08);
--yw:#eab308;--ywB:rgba(234,179,8,.08);
--br:#d97706;--brB:rgba(217,119,6,.08);
--lm:#4ade80;--lmB:rgba(74,222,128,.1);
--pk:#ec4899;--pkB:rgba(236,72,153,.08);
--tl:#38bdf8;--tlB:rgba(56,189,248,.08);
--acc:#6366f1;--accB:rgba(99,102,241,.06);
--sh:0 4px 24px rgba(0,0,0,.35),0 1px 3px rgba(0,0,0,.2);
--shS:0 1px 8px rgba(0,0,0,.2);
--ov:rgba(0,0,0,.7);--mf:brightness(.6) invert(1) contrast(3) hue-rotate(200deg) saturate(.3) brightness(.7);
--rad:6px;--radL:10px;--radS:4px;
--trans:all .12s cubic-bezier(.4,0,.2,1)
}
[data-theme="light"]{
--bg0:#f8fafc;--bg1:#ffffff;--bg2:#ffffff;--bg3:#f1f5f9;--bg4:#e2e8f0;--bgH:#e2e8f0;
--bd:#e2e8f0;--bdL:#cbd5e1;--bdA:rgba(99,102,241,.12);
--t1:#0f172a;--t2:#334155;--t3:#64748b;--t4:#94a3b8;
--gn:#16a34a;--gnD:#22c55e;--gnB:rgba(22,163,74,.06);--gnB2:rgba(22,163,74,.1);
--bl:#4f46e5;--blD:#6366f1;--blB:rgba(79,70,229,.06);--blB2:rgba(79,70,229,.1);
--am:#d97706;--amB:rgba(217,119,6,.06);--amB2:rgba(217,119,6,.1);
--rd:#dc2626;--rdD:#ef4444;--rdB:rgba(220,38,38,.06);
--pr:#7c3aed;--prD:#a78bfa;--prB:rgba(124,58,237,.06);
--cy:#0891b2;--cyB:rgba(8,145,178,.06);
--or:#ea580c;--orB:rgba(234,88,12,.06);
--yw:#ca8a04;--ywB:rgba(202,138,4,.06);
--br:#b45309;--brB:rgba(180,83,9,.06);
--lm:#16a34a;--lmB:rgba(22,163,74,.08);
--pk:#db2777;--pkB:rgba(219,39,119,.06);
--tl:#0284c7;--tlB:rgba(2,132,199,.06);
--acc:#4f46e5;--accB:rgba(79,70,229,.04);
--sh:0 1px 8px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
--shS:0 1px 3px rgba(0,0,0,.05);
--ov:rgba(0,0,0,.35);--mf:none
}
body{font-family:'Outfit',sans-serif;background:var(--bg0);color:var(--t1);min-height:100vh;font-size:13px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.mono{font-family:'JetBrains Mono',monospace}a{color:var(--bl);text-decoration:none}a:hover{opacity:.85}
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bd);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--bdL)}
input,select,textarea,button{font-family:inherit}
::selection{background:var(--blB2);color:var(--t1)}

/* === SHELL === */
.shell{display:flex;height:100vh;overflow:hidden}
.sb{width:220px;background:var(--bg1);border-right:1px solid var(--bd);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}
.sb-h{padding:14px 14px 12px;border-bottom:1px solid var(--bd)}
.sb-logo{display:flex;align-items:center;gap:8px}
.logo-i{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--bl),var(--cy));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:10px;color:#fff;box-shadow:0 2px 8px rgba(99,102,241,.3)}
.logo-t{font-size:13px;font-weight:700;letter-spacing:-.3px}.logo-s{font-size:8px;color:var(--t4);padding-left:36px;margin-top:2px;letter-spacing:.5px;text-transform:uppercase}
.sb-n{padding:6px;flex:1;overflow-y:auto}.ns{margin-bottom:4px}
.nl{font-size:7.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--t4);padding:6px 8px 3px}
.ni{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--radS);cursor:pointer;font-size:11px;font-weight:500;color:var(--t3);transition:var(--trans);border:1px solid transparent;white-space:nowrap;overflow:hidden}
.ni:hover{background:var(--bg3);color:var(--t2)}.ni.on{background:var(--blB2);color:var(--bl);border-color:var(--bdA)}
.ni .ic{width:13px;text-align:center;font-size:10px;flex-shrink:0;opacity:.7}.ni.on .ic{opacity:1}
.ni .ct{margin-left:auto;font-size:8px;background:var(--bg4);padding:1px 5px;border-radius:8px;color:var(--t4);font-weight:600;flex-shrink:0;min-width:16px;text-align:center}
.ni.on .ct{background:var(--blB2);color:var(--bl)}
.svi{display:flex;align-items:center;gap:4px;padding:3px 8px 3px 24px;border-radius:var(--radS);cursor:pointer;font-size:9.5px;color:var(--t4);transition:var(--trans)}
.svi:hover{background:var(--bg3);color:var(--t3)}.svi .sx{margin-left:auto;opacity:0;font-size:7px;cursor:pointer;color:var(--rd);transition:opacity .1s}.svi:hover .sx{opacity:.5}.sx:hover{opacity:1!important}
.svi .se{opacity:0;font-size:7px;cursor:pointer;color:var(--bl);margin-right:3px;transition:opacity .1s}.svi:hover .se{opacity:.5}

.cnt{flex:1;overflow-y:auto;display:flex;flex-direction:column;background:var(--bg0)}
.tp{padding:10px 20px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;background:var(--bg1);position:sticky;top:0;z-index:50;backdrop-filter:blur(12px)}
.tp-t{font-size:14px;font-weight:700;letter-spacing:-.3px}.tp-r{display:flex;gap:5px;align-items:center}
.pg-w{padding:16px 20px;flex:1}

/* === BUTTONS === */
.btn{padding:4px 10px;border:1px solid var(--bd);border-radius:var(--radS);background:var(--bg2);color:var(--t2);font-size:9.5px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:var(--trans);white-space:nowrap;letter-spacing:-.1px}
.btn:hover{background:var(--bg4);transform:translateY(-1px);box-shadow:var(--shS)}
.btn-g{background:var(--gnB);color:var(--gn);border-color:rgba(34,197,94,.2)}.btn-g:hover{background:var(--gnB2)}
.btn-b{background:var(--blB);color:var(--bl);border-color:var(--bdA)}.btn-b:hover{background:var(--blB2)}
.btn-r{background:var(--rdB);color:var(--rd);border-color:rgba(239,68,68,.2)}
.btn-a{background:var(--amB);color:var(--am);border-color:rgba(245,158,11,.2)}
.btn-p{background:var(--prB);color:var(--pr);border-color:rgba(167,139,250,.2)}

/* === STATUS === */
.sd{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:2px;box-shadow:0 0 3px currentColor}
.st{display:inline-flex;align-items:center;padding:2px 6px;border-radius:10px;font-size:8px;font-weight:600;white-space:nowrap;letter-spacing:.2px}
.st-win{background:var(--lmB);color:var(--lm)}.st-accepted{background:var(--ywB);color:var(--yw)}.st-offer-sent{background:var(--gnB);color:var(--gn)}.st-make-offer{background:var(--orB);color:var(--or)}.st-active{background:var(--blB);color:var(--bl)}.st-bom{background:var(--tlB);color:var(--tl)}.st-reactive{background:var(--prB);color:var(--pr)}.st-lost{background:var(--rdB);color:var(--rd)}.st-ucb{background:rgba(74,222,128,.08);color:#4ade80}.st-pending{background:var(--prB);color:var(--pr)}.st-sold{background:var(--rdB);color:var(--rd)}.st-temp-off{background:var(--brB);color:var(--br)}.st-expired{background:var(--cyB);color:var(--cy)}.st-direct-seller{background:var(--pkB);color:var(--pk)}.st-off-market{background:var(--amB);color:var(--am)}
.ss{padding:3px 4px;border-radius:var(--radS);border:1px solid var(--bd);background:var(--bg2);color:var(--t2);font-size:8.5px;font-weight:600;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;min-width:90px;padding-right:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='4'%3E%3Cpath d='M0 0l3 4 3-4z' fill='%2364748b'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;transition:var(--trans)}
.ss:hover{border-color:var(--bdL)}

/* === KPIs === */
.kr{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px;margin-bottom:14px}
.kp{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rad);padding:12px;position:relative;overflow:hidden;transition:var(--trans)}
.kp:hover{border-color:var(--bdL);transform:translateY(-1px);box-shadow:var(--shS)}
.kp::after{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.kp.g::after{background:var(--gn)}.kp.b::after{background:var(--bl)}.kp.a::after{background:var(--am)}.kp.r::after{background:var(--rd)}.kp.p::after{background:var(--pr)}.kp.c::after{background:var(--cy)}.kp.o::after{background:var(--or)}.kp.pk::after{background:var(--pk)}
.kl{font-size:8px;color:var(--t4);text-transform:uppercase;letter-spacing:.7px;font-weight:700}.kv{font-size:18px;font-weight:700;margin:2px 0;letter-spacing:-.5px}.ks{font-size:9px;color:var(--t3)}

/* === MAPS === */
.mw{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rad);overflow:hidden;margin-bottom:14px;position:relative}
.mc{height:250px;width:100%;z-index:1}[data-theme="dark"] .mc .leaflet-tile-pane{filter:var(--mf)}[data-theme="dark"] .leaflet-container{background:var(--bg0)}
.map-hd{position:absolute;top:8px;left:8px;z-index:1000;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--radS);padding:3px 8px;font-size:9px;font-weight:600;color:var(--t2);backdrop-filter:blur(4px)}
.map-sw{position:absolute;top:8px;right:8px;z-index:1000;display:flex;border-radius:var(--radS);overflow:hidden;border:1px solid var(--bd);backdrop-filter:blur(4px)}
.map-sw button{padding:3px 8px;border:none;background:var(--bg2);color:var(--t3);font-size:8.5px;font-weight:600;cursor:pointer;border-right:1px solid var(--bd);transition:var(--trans)}.map-sw button:last-child{border-right:none}.map-sw button.on{background:var(--blB2);color:var(--bl)}.map-sw button:hover{background:var(--bg4)}
.dm{height:155px;width:100%;border-radius:var(--rad);overflow:hidden;margin-bottom:8px}[data-theme="dark"] .dm .leaflet-tile-pane{filter:var(--mf)}
.leaflet-popup-content-wrapper{background:var(--bg2)!important;color:var(--t1)!important;border:1px solid var(--bd)!important;border-radius:var(--rad)!important;box-shadow:var(--sh)!important}
.leaflet-popup-tip{background:var(--bg2)!important}.leaflet-popup-content{margin:6px 9px!important;font-size:9.5px!important}

/* === FILTERS === */
.fb{display:flex;gap:5px;margin-bottom:10px;flex-wrap:wrap;align-items:center}
.si{flex:1;min-width:100px;padding:5px 9px;border:1px solid var(--bd);border-radius:var(--radS);background:var(--bg2);color:var(--t1);font-size:11px;outline:none;transition:var(--trans)}.si:focus{border-color:var(--bl);box-shadow:0 0 0 2px var(--blB)}.si::placeholder{color:var(--t4)}
.fs{padding:5px 7px;border:1px solid var(--bd);border-radius:var(--radS);background:var(--bg2);color:var(--t2);font-size:9.5px;cursor:pointer;outline:none;transition:var(--trans)}.fs:hover{border-color:var(--bdL)}
.ft{padding:3px 8px;border-radius:12px;font-size:9px;font-weight:600;cursor:pointer;border:1px solid var(--bd);background:var(--bg2);color:var(--t3);transition:var(--trans)}.ft:hover{background:var(--bg4)}.ft.on{background:var(--blB2);border-color:var(--bdA);color:var(--bl)}

/* === TABLES === */
.tw{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rad);overflow:hidden}.ts{overflow-x:auto;max-height:470px}
table{width:100%;border-collapse:collapse;font-size:11px}
thead th{background:var(--bg3);padding:6px 8px;text-align:left;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--t4);border-bottom:1px solid var(--bd);white-space:nowrap;cursor:pointer;user-select:none;position:sticky;top:0;z-index:5;transition:color .1s}
thead th:hover{color:var(--t2)}.srt{color:var(--bl)!important}
tbody tr{border-bottom:1px solid var(--bd);cursor:pointer;transition:var(--trans)}tbody tr:hover{background:var(--bgH)}tbody tr.lk{border-left:2px solid var(--pr)}tbody tr.sel{background:var(--blB)!important}
tbody td{padding:5px 8px;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.ac{font-weight:500;color:var(--t1);min-width:140px}.mn{font-family:'JetBrains Mono',monospace;font-size:9px}.mn.pos{color:var(--gn)}
.tg{display:inline-block;padding:2px 5px;border-radius:3px;font-size:8px;font-weight:700;letter-spacing:.3px}.tg-buy{background:var(--gnB2);color:var(--gn)}.tg-pass{background:var(--rdB);color:var(--rd)}
.ch{color:var(--gn)}.cm{color:var(--am)}.cl{color:var(--rd)}
.lb{display:inline-flex;align-items:center;gap:2px;padding:2px 4px;border-radius:3px;font-size:7.5px;font-weight:700;background:var(--prB);color:var(--pr)}
.pn{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-top:1px solid var(--bd)}.pi{font-size:9px;color:var(--t4)}.pbs{display:flex;gap:2px}
.ppb{padding:3px 7px;border:1px solid var(--bd);background:var(--bg2);color:var(--t3);font-size:9px;border-radius:var(--radS);cursor:pointer;transition:var(--trans)}.ppb:hover{background:var(--bg4)}.ppb.on{background:var(--bl);color:#fff;border-color:var(--bl)}.ppb:disabled{opacity:.3;cursor:default}
.bulk-bar{display:flex;align-items:center;gap:6px;padding:7px 10px;background:var(--blB);border:1px solid var(--bdA);border-radius:var(--rad);margin-bottom:8px;font-size:10px;color:var(--bl)}

/* === MODALS === */
.ov{position:fixed;inset:0;background:var(--ov);z-index:200;display:flex;align-items:flex-start;justify-content:center;padding:20px 12px;overflow-y:auto;backdrop-filter:blur(4px);animation:fadeIn .15s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.mdl{background:var(--bg1);border:1px solid var(--bd);border-radius:var(--radL);width:100%;max-width:880px;box-shadow:var(--sh);animation:slideUp .2s ease}
.mdl-h{padding:14px 18px 10px;border-bottom:1px solid var(--bd);display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.mdl-h h2{font-size:13px;font-weight:700;line-height:1.3;letter-spacing:-.2px}.mtg{display:flex;gap:3px;margin-top:4px;flex-wrap:wrap}
.xb{background:var(--bg3);border:1px solid var(--bd);color:var(--t3);width:22px;height:22px;border-radius:var(--rad);cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--trans)}.xb:hover{background:var(--rdB);color:var(--rd);border-color:rgba(239,68,68,.2)}
.mdl-b{padding:14px 18px}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bd);margin-bottom:10px;overflow-x:auto}
.tab{padding:6px 12px;font-size:10px;font-weight:600;color:var(--t3);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:var(--trans)}.tab:hover{color:var(--t2)}.tab.on{color:var(--bl);border-bottom-color:var(--bl)}
.dg{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.ds{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rad);padding:10px;transition:var(--trans)}.ds.full{grid-column:1/-1}
.ds h3{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--t4);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--bd)}
.dr{display:flex;justify-content:space-between;align-items:center;padding:3px 0;gap:8px}.dr:not(:last-child){border-bottom:1px solid var(--bd)}.dll{font-size:9.5px;color:var(--t3);white-space:nowrap}.dvv{font-size:10px;font-weight:500;text-align:right}
.ef{background:transparent;border:1px solid transparent;border-radius:3px;padding:2px 4px;font-size:10px;font-weight:500;color:var(--t1);outline:none;text-align:right;max-width:145px;width:100%;transition:var(--trans)}
.ef:hover{border-color:var(--bd);background:var(--bg3)}.ef:focus{border-color:var(--bl);background:var(--bg3);box-shadow:0 0 0 2px var(--blB)}.ef.mono{font-family:'JetBrains Mono',monospace;font-size:9px}

/* === FORMS === */
.fg{margin-bottom:3px}.fg label{display:block;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--t4);margin-bottom:2px}
.fg input,.fg select,.fg textarea{width:100%;padding:5px 8px;border:1px solid var(--bd);border-radius:var(--radS);background:var(--bg2);color:var(--t1);font-size:11px;outline:none;transition:var(--trans)}.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--bl);box-shadow:0 0 0 2px var(--blB)}.fg textarea{resize:vertical;min-height:42px}.fg.full{grid-column:1/-1}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.form-act{display:flex;gap:6px;justify-content:flex-end;margin-top:10px;padding-top:10px;border-top:1px solid var(--bd)}

/* === NOTES & FILES === */
.note-item{padding:5px 7px;background:var(--bg3);border-radius:var(--radS);margin-bottom:3px;font-size:10px;color:var(--t2);line-height:1.35;border-left:2px solid var(--bl);transition:var(--trans)}
.note-item:hover{background:var(--bg4)}
.note-date{font-size:8px;color:var(--t4);margin-bottom:1px;font-weight:600;display:flex;justify-content:space-between}
.note-add{display:flex;gap:4px;margin-top:5px}
.file-item{display:flex;align-items:center;gap:5px;padding:4px 6px;background:var(--bg3);border-radius:var(--radS);margin-bottom:3px;font-size:9.5px;transition:var(--trans)}.file-item:hover{background:var(--bg4)}
.file-item a{color:var(--bl);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.f-rm{cursor:pointer;color:var(--t4);font-size:8px;padding:2px;transition:color .1s}.f-rm:hover{color:var(--rd)}

/* === CONTACTS === */
.ct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:8px}
.ct-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rad);padding:12px;cursor:pointer;transition:var(--trans)}.ct-card:hover{border-color:var(--bdA);transform:translateY(-1px);box-shadow:var(--shS)}
.ct-name{font-weight:600;font-size:12px;margin-bottom:3px;letter-spacing:-.2px}.ct-type{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 5px;border-radius:6px;display:inline-block;margin-bottom:4px}
.ct-type.agent{background:var(--blB);color:var(--bl)}.ct-type.buyer{background:var(--gnB);color:var(--gn)}.ct-type.seller{background:var(--orB);color:var(--or)}
.ct-info{font-size:10px;color:var(--t3);line-height:1.5}
.ct-field{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:10px;border-bottom:1px solid var(--bd)}.ct-field:last-child{border:none}
.ct-field-label{color:var(--t4);font-size:8.5px;font-weight:600;text-transform:uppercase}.ct-field-val{color:var(--t2);font-weight:500}
.ct-field-default{display:inline-flex;padding:1px 4px;border-radius:3px;font-size:7px;font-weight:700;background:var(--gnB2);color:var(--gn);margin-left:4px}
.ci{padding:3px 0;font-size:9.5px;color:var(--t3);line-height:1.3}.ci:not(:last-child){border-bottom:1px solid var(--bd)}
.csv-drop{border:2px dashed var(--bd);border-radius:var(--rad);padding:18px;text-align:center;cursor:pointer;transition:var(--trans)}
.csv-drop:hover{border-color:var(--bl);background:var(--blB)}.csv-drop p{color:var(--t3);font-size:10px;margin-top:3px}

/* === ALERTS === */
.alert-bar{margin-bottom:12px}
.alert-item{display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:var(--rad);margin-bottom:4px;font-size:11px;cursor:pointer;transition:var(--trans);backdrop-filter:blur(4px)}
.alert-item:hover{transform:translateX(2px)}
.alert-item.urgent{background:var(--rdB);border:1px solid rgba(239,68,68,.15);color:var(--rd)}
.alert-item.warning{background:var(--amB);border:1px solid rgba(245,158,11,.15);color:var(--am)}
.alert-item.info{background:var(--blB);border:1px solid var(--bdA);color:var(--bl)}
.alert-item.success{background:var(--gnB);border:1px solid rgba(34,197,94,.15);color:var(--gn)}
.alert-ic{font-size:13px;flex-shrink:0}.alert-text{flex:1;font-weight:500}.alert-time{font-size:8px;opacity:.6}.alert-dismiss{cursor:pointer;opacity:.4;font-size:9px;transition:opacity .1s}.alert-dismiss:hover{opacity:1}

/* === CONFIDENCE METER === */
.conf-meter{display:flex;align-items:center;gap:5px}
.conf-bar{height:5px;border-radius:3px;flex:1;background:var(--bg4);overflow:hidden}
.conf-fill{height:100%;border-radius:3px;transition:width .4s ease}.conf-fill.high{background:var(--gn);width:100%}.conf-fill.medium{background:var(--am);width:60%}.conf-fill.low{background:var(--rd);width:30%}
.conf-label{font-size:8.5px;font-weight:700;min-width:32px}
.spread-alert{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border-radius:3px;font-size:8px;font-weight:700;background:var(--gnB2);color:var(--gn);border:1px solid rgba(34,197,94,.2);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.65}}

/* === COMMUNICATION === */
.comm-panel{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rad);padding:12px;margin-bottom:9px}
.comm-tabs{display:flex;gap:0;border-bottom:1px solid var(--bd);margin-bottom:9px}
.comm-tab{padding:5px 11px;font-size:9.5px;font-weight:600;color:var(--t3);cursor:pointer;border-bottom:2px solid transparent;transition:var(--trans)}.comm-tab:hover{color:var(--t2)}.comm-tab.on{color:var(--bl);border-bottom-color:var(--bl)}
.tpl-card{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--radS);padding:9px;margin-bottom:5px;cursor:pointer;transition:var(--trans)}
.tpl-card:hover{border-color:var(--bdA);background:var(--bg4)}.tpl-name{font-size:11px;font-weight:600;margin-bottom:2px}.tpl-preview{font-size:9px;color:var(--t4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-compose{display:flex;flex-direction:column;gap:6px}
.msg-compose textarea{min-height:85px;resize:vertical}
.call-log{display:flex;align-items:center;gap:7px;padding:6px 8px;background:var(--bg3);border-radius:var(--radS);margin-bottom:3px;font-size:10px;transition:var(--trans)}.call-log:hover{background:var(--bg4)}
.call-log .cl-icon{font-size:12px}.call-log .cl-info{flex:1}.call-log .cl-dur{font-size:9px;color:var(--t4);font-family:'JetBrains Mono',monospace}.call-log .cl-out{font-size:8px;font-weight:700;padding:2px 5px;border-radius:3px}
.cl-out.answered{background:var(--gnB);color:var(--gn)}.cl-out.missed{background:var(--rdB);color:var(--rd)}.cl-out.voicemail{background:var(--amB);color:var(--am)}

/* === FINANCIALS === */
.fin-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.fin-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:11px}.fin-row:not(:last-child){border-bottom:1px solid var(--bd)}
.fin-label{color:var(--t3)}.fin-val{font-weight:600;font-family:'JetBrains Mono',monospace;font-size:10px}
.fin-val.pos{color:var(--gn)}.fin-val.neg{color:var(--rd)}
.fin-total{border-top:2px solid var(--bdL);padding-top:5px;margin-top:4px;font-weight:700}
.expense-item{display:flex;align-items:center;gap:6px;padding:5px 7px;background:var(--bg3);border-radius:var(--radS);margin-bottom:3px;font-size:10px;transition:var(--trans)}.expense-item:hover{background:var(--bg4)}
.expense-cat{font-size:8px;font-weight:700;padding:2px 5px;border-radius:3px;background:var(--bg4);color:var(--t4);text-transform:uppercase;letter-spacing:.3px}

/* === TASKS === */
.task-item{display:flex;align-items:flex-start;gap:7px;padding:7px 9px;background:var(--bg3);border-radius:var(--radS);margin-bottom:4px;font-size:11px;border-left:3px solid var(--bd);transition:var(--trans)}
.task-item:hover{background:var(--bg4);transform:translateX(2px)}
.task-item.overdue{border-left-color:var(--rd);background:var(--rdB)}
.task-item.due-soon{border-left-color:var(--am);background:var(--amB)}
.task-item.done{opacity:.4}
.task-check{width:15px;height:15px;border:2px solid var(--bdL);border-radius:4px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:8px;margin-top:1px;transition:var(--trans)}
.task-check:hover{border-color:var(--gn);background:var(--gnB)}
.task-check.checked{background:var(--gn);border-color:var(--gn);color:#fff}
.task-info{flex:1}.task-title{font-weight:500}.task-meta{font-size:8.5px;color:var(--t4);margin-top:2px;display:flex;gap:6px;align-items:center}
.task-type{font-size:7.5px;font-weight:700;padding:1px 5px;border-radius:3px;display:inline-block;letter-spacing:.3px}
.task-type.follow-up{background:var(--blB);color:var(--bl)}.task-type.inspection{background:var(--orB);color:var(--or)}.task-type.closing{background:var(--gnB);color:var(--gn)}.task-type.general{background:var(--bg4);color:var(--t4)}
.task-due{font-size:8px;color:var(--t4);font-family:'JetBrains Mono',monospace}

/* === CALENDAR === */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-title{font-size:14px;font-weight:700;letter-spacing:-.3px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--bd);border-radius:var(--rad);overflow:hidden}
.cal-hd{background:var(--bg3);padding:6px;text-align:center;font-size:8px;font-weight:700;color:var(--t4);letter-spacing:.5px;text-transform:uppercase}
.cal-day{background:var(--bg2);padding:5px;min-height:70px;font-size:9px;cursor:pointer;transition:var(--trans);position:relative}
.cal-day:hover{background:var(--bg3)}.cal-day.today{background:var(--blB);border:1px solid var(--bdA)}
.cal-day.other{opacity:.25}
.cal-num{font-weight:700;font-size:10px;margin-bottom:3px;color:var(--t2)}
.cal-day.today .cal-num{color:var(--bl)}
.cal-evt{padding:2px 4px;border-radius:3px;font-size:7.5px;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:var(--trans)}
.cal-evt:hover{filter:brightness(1.2)}
.cal-evt.closing{background:var(--gnB2);color:var(--gn)}.cal-evt.inspection{background:var(--orB);color:var(--or)}.cal-evt.follow-up{background:var(--blB2);color:var(--bl)}.cal-evt.deadline{background:var(--rdB);color:var(--rd)}.cal-evt.task{background:var(--prB);color:var(--pr)}
.cal-add{position:absolute;top:3px;right:3px;width:14px;height:14px;border-radius:50%;background:var(--blB);color:var(--bl);border:1px solid var(--bdA);font-size:9px;cursor:pointer;display:none;align-items:center;justify-content:center;transition:var(--trans)}
.cal-day:hover .cal-add{display:flex}
.cal-add:hover{background:var(--blB2)}

/* === TIMELINE === */
.tl-item{display:flex;gap:10px;padding:7px 0;position:relative}
.tl-item:not(:last-child){border-bottom:1px solid var(--bd)}
.tl-item:not(:last-child)::before{content:'';position:absolute;left:5px;top:18px;bottom:-1px;width:1px;background:var(--bd)}
.tl-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:2px;border:2px solid var(--bg1);box-shadow:0 0 0 1px var(--bd)}
.tl-content{flex:1}.tl-title{font-size:11px;font-weight:500}.tl-time{font-size:8.5px;color:var(--t4)}
.tl-detail{font-size:9.5px;color:var(--t3);margin-top:2px}

/* === SETTINGS === */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.settings-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rad);padding:12px}
.settings-card h3{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--t4);margin-bottom:7px}

/* === MOBILE HAMBURGER === */
.mob-toggle{display:none;background:none;border:none;color:var(--t2);font-size:18px;cursor:pointer;padding:4px 6px;margin-right:6px;border-radius:var(--radS);transition:var(--trans)}
.mob-toggle:hover{background:var(--bg3)}
.sb-close{display:none;position:absolute;top:10px;right:10px;background:var(--bg3);border:1px solid var(--bd);color:var(--t3);width:24px;height:24px;border-radius:var(--rad);cursor:pointer;font-size:12px;align-items:center;justify-content:center;z-index:10}
.sb-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99;backdrop-filter:blur(2px)}

@media(max-width:900px){
  .mob-toggle{display:block}
  .sb{position:fixed;left:-230px;top:0;bottom:0;z-index:100;width:220px;transition:left .2s ease;box-shadow:none}
  .sb.open{left:0;box-shadow:4px 0 24px rgba(0,0,0,.4)}
  .sb-close{display:flex}
  .sb-ov.open{display:block}
  .cnt{width:100%}
  .tp{padding:8px 12px}
  .tp-t{font-size:12px}
  .pg-w{padding:10px 12px}
  .kr{grid-template-columns:repeat(2,1fr);gap:6px}
  .kp{padding:9px}
  .kv{font-size:16px}
  .mc{height:180px}
  .dg{grid-template-columns:1fr}
  .fin-grid{grid-template-columns:1fr}
  .settings-grid{grid-template-columns:1fr}
  .mdl{max-width:100%;margin:0;border-radius:var(--rad) var(--rad) 0 0}
  .ov{padding:0;align-items:flex-end}
  .mdl-b{padding:10px 12px}
  .tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tab{padding:5px 9px;font-size:9.5px}
  .fb{gap:4px}
  .si{min-width:70px;font-size:10px;padding:4px 6px}
  .fs{font-size:9px;padding:4px 5px}
  .tw{border-radius:var(--radS)}
  table{font-size:10px}
  thead th{padding:4px 5px;font-size:7.5px}
  tbody td{padding:3px 5px}
  .ac{min-width:110px;font-size:10px}
  .ss{min-width:75px;font-size:8px}
  .ct-grid{grid-template-columns:1fr}
  .cal-grid{gap:0}
  .cal-day{min-height:50px;padding:3px}
  .cal-num{font-size:9px}
  .cal-evt{font-size:6.5px;padding:1px 2px}
  .cal-add{width:12px;height:12px;font-size:7px}
  .form-grid{grid-template-columns:1fr}
  .qa-bar{gap:3px}
  .qa-btn{padding:3px 6px;font-size:8.5px}
  .rehab-row{flex-wrap:wrap;gap:4px}
  .rehab-row label{min-width:100%;font-size:9.5px}
  .rehab-row input{width:100%}
  .bulk-bar{flex-wrap:wrap;font-size:9px}
  .alert-item{padding:6px 8px;font-size:10px}
  .dm{height:120px}
  .ds{padding:8px}
  .dr{gap:4px}
  .dll{font-size:9px}
  .dvv{font-size:9.5px}
  .ef{max-width:110px;font-size:9.5px}
  .comm-tabs{overflow-x:auto}
  .comm-tab{font-size:9px;padding:4px 8px;white-space:nowrap}
  .task-item{padding:5px 7px;font-size:10px}
  .note-item{padding:4px 6px;font-size:9.5px}
}
@media(max-width:400px){
  .kr{grid-template-columns:1fr 1fr}
  .kp{padding:7px}
  .kl{font-size:7px}
  .kv{font-size:14px}
  .tp-r .btn{padding:2px 6px;font-size:8px}
  .mc{height:150px}
}

/* === REHAB CALCULATOR === */
.rehab-calc{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rad);overflow:hidden}
.rehab-section{padding:10px 12px;border-bottom:1px solid var(--bd)}
.rehab-section:last-child{border-bottom:none}
.rehab-step{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--bl);margin-bottom:6px;display:flex;align-items:center;gap:4px}
.rehab-step .step-num{background:var(--blB2);color:var(--bl);width:16px;height:16px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:800}
.rehab-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;gap:8px;font-size:10.5px}
.rehab-row:not(:last-child){border-bottom:1px solid var(--bd)}
.rehab-row label{color:var(--t3);flex:1;font-size:10px}
.rehab-row input{width:90px;padding:3px 6px;border:1px solid var(--bd);border-radius:var(--radS);background:var(--bg3);color:var(--t1);font-size:10px;font-family:'JetBrains Mono',monospace;text-align:right;outline:none;transition:var(--trans)}
.rehab-row input:focus{border-color:var(--bl);box-shadow:0 0 0 2px var(--blB)}
.rehab-row select{padding:3px 4px;border:1px solid var(--bd);border-radius:var(--radS);background:var(--bg3);color:var(--t1);font-size:9px;outline:none}
.rehab-row .pct{font-size:9px;color:var(--t4);margin-left:1px}
.rehab-toggle{display:flex;border-radius:var(--radS);overflow:hidden;border:1px solid var(--bd)}
.rehab-toggle button{padding:3px 8px;border:none;background:var(--bg3);color:var(--t3);font-size:8.5px;font-weight:600;cursor:pointer;transition:var(--trans)}
.rehab-toggle button.on{background:var(--blB2);color:var(--bl)}
.rehab-results{background:var(--bg3);border-radius:var(--radS);padding:8px;margin-top:6px}
.rehab-results .rr{display:flex;justify-content:space-between;padding:3px 0;font-size:10.5px}.rr:not(:last-child){border-bottom:1px solid var(--bd)}
.rr-label{color:var(--t3)}.rr-val{font-weight:600;font-family:'JetBrains Mono',monospace;font-size:10px}
.rr-val.pos{color:var(--gn)}.rr-val.neg{color:var(--rd)}.rr-val.hl{color:var(--bl);font-weight:700}
.rehab-total{border-top:2px solid var(--bdL);margin-top:4px;padding-top:4px}
.flip-brr-tabs{display:flex;gap:0;margin-bottom:6px}
.fb-tab{padding:4px 10px;font-size:9px;font-weight:700;cursor:pointer;border:1px solid var(--bd);background:var(--bg3);color:var(--t3);transition:var(--trans)}
.fb-tab:first-child{border-radius:var(--radS) 0 0 var(--radS)}.fb-tab:last-child{border-radius:0 var(--radS) var(--radS) 0}
.fb-tab.on{background:var(--blB2);color:var(--bl);border-color:var(--bdA)}

/* Quick action buttons */
.qa-bar{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px;padding:8px 0;border-bottom:1px solid var(--bd)}
.qa-btn{padding:4px 9px;border-radius:var(--radS);border:1px solid var(--bd);background:var(--bg3);color:var(--t2);font-size:9.5px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:var(--trans)}
.qa-btn:hover{background:var(--bg4);transform:translateY(-1px);box-shadow:var(--shS)}
.qa-btn .qa-ic{font-size:11px}
