:root{--bg:#f4f6f8;--surface:#fff;--surface2:#f8fafb;--text:#17202a;--muted:#677483;--line:#dfe5ea;--line2:#edf1f4;--accent:#244a72;--accent2:#eaf1f7;--danger:#a23b3b;--warn:#8a6420;--success:#2f6b4e;--shadow:0 10px 32px rgba(18,31,43,.08);--radius:14px;--sidebar:226px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:var(--bg);font-size:14px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#182431;color:#e9eef3;padding:18px 12px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;gap:10px;align-items:center;padding:2px 8px 22px}.brand-mark{width:36px;height:36px;border-radius:10px;background:#eef3f7;color:#182431;display:grid;place-items:center;font-weight:800}.brand strong{display:block;font-size:15px}.brand span{display:block;color:#9fb0bf;font-size:12px;margin-top:1px}.nav{display:flex;flex-direction:column;gap:4px}.nav-item{border:0;background:transparent;color:#b9c5d0;text-align:left;border-radius:9px;padding:10px 11px;display:flex;justify-content:space-between;align-items:center;min-height:40px}.nav-item:hover,.nav-item.active{background:#253546;color:#fff}.nav-item kbd{font:11px inherit;background:#34495e;color:#dce6ee;padding:2px 6px;border-radius:10px}.sidebar-footer{margin-top:auto;padding:12px 10px;color:#9fb0bf;display:flex;align-items:center;gap:8px;font-size:12px}.dot{width:8px;height:8px;border-radius:50%;background:#9aa5af}.dot.ok{background:#71a888}.dot.bad{background:#c87878}.main{min-width:0}.topbar{min-height:76px;background:rgba(244,246,248,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:14px 24px;position:sticky;top:0;z-index:20}.topbar-title{display:flex;gap:10px;align-items:center}.topbar h1{font-size:22px;line-height:1.15;margin:0;font-weight:700;letter-spacing:-.02em}.topbar p{margin:4px 0 0;color:var(--muted);font-size:12px}.topbar-actions{display:flex;gap:9px;align-items:center}.sync{font-size:12px;color:var(--muted)}.view{display:none;padding:22px 24px 36px;max-width:1700px;margin:0 auto}.view.active{display:block}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgba(18,31,43,.02)}.metrics{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-bottom:14px}.metric{padding:14px 15px}.metric b{display:block;font-size:23px;letter-spacing:-.03em}.metric span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.toolbar{padding:10px;display:flex;gap:8px;align-items:center;margin-bottom:12px}.search-wrap{flex:1;min-width:250px}.toolbar input,.toolbar select,.ai-form textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 10px;outline:none}.toolbar input:focus,.toolbar select:focus,.ai-form textarea:focus{border-color:#7e9db8;box-shadow:0 0 0 3px rgba(68,111,150,.12)}.toolbar select{width:auto;min-width:145px}.btn,.icon-btn{border:1px solid transparent;border-radius:9px;padding:9px 12px;background:#fff}.btn.primary{background:var(--accent);color:#fff}.btn.secondary{border-color:var(--line);background:#fff}.btn.ghost{background:transparent;border-color:var(--line)}.btn:hover,.icon-btn:hover{filter:brightness(.98)}.icon-btn{padding:6px 9px;font-size:20px;line-height:1}.table-card{overflow:hidden}.table-scroll{overflow:auto;max-width:100%}.data-table{border-collapse:separate;border-spacing:0;width:100%;min-width:980px}.data-table th{position:sticky;top:0;background:#fbfcfd;color:#63717e;font-size:11px;text-transform:uppercase;letter-spacing:.045em;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);z-index:2}.data-table td{padding:11px 12px;border-bottom:1px solid var(--line2);vertical-align:middle}.data-table tbody tr{background:#fff}.data-table tbody tr:hover{background:#f8fafc}.company-cell{display:flex;flex-direction:column;gap:3px;min-width:210px}.company-cell strong{font-size:13px}.company-cell span,.muted{color:var(--muted);font-size:11px}.badge-row{display:flex;gap:5px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 7px;background:#eef2f5;color:#354451;font-size:10px;font-weight:700;letter-spacing:.02em;border:1px solid transparent}.badge.hot{background:#f7e9e8;color:#873d3b}.badge.warm{background:#f7f0df;color:#795c1b}.badge.cold{background:#edf1f4;color:#586774}.badge.status{background:var(--accent2);color:#345a7d}.score{font-weight:750;font-variant-numeric:tabular-nums}.contact-line{display:flex;flex-direction:column;max-width:260px}.contact-line span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pagination{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;color:var(--muted);font-size:12px}.pagination>div{display:flex;gap:6px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}.section-head h2{margin:0 0 4px}.section-head p{margin:0;color:var(--muted)}.stack{display:flex;flex-direction:column;gap:8px}.review-item,.log-item{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 14px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,2fr) auto;gap:12px;align-items:center}.review-actions{display:flex;gap:5px}.review-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 9px}.log-item{grid-template-columns:150px 160px 1fr;align-items:start}.log-item code{white-space:pre-wrap;word-break:break-word;color:#465563;font-size:11px}.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(270px,320px);gap:10px;overflow:auto;padding-bottom:12px}.kanban-col{background:#e9edf0;border:1px solid var(--line);border-radius:13px;min-height:420px}.kanban-head{padding:12px;display:flex;justify-content:space-between;color:#4b5966;font-size:12px;font-weight:700}.kanban-list{padding:0 7px 8px;display:flex;flex-direction:column;gap:7px}.kanban-card{background:#fff;border:1px solid #dbe2e7;border-radius:10px;padding:11px;box-shadow:0 1px 1px rgba(20,30,40,.03)}.kanban-card strong{display:block;margin-bottom:7px}.kanban-card .meta{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel{padding:15px;min-height:260px}.panel h3{margin:0 0 13px}.stat-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(80px,3fr) 54px;gap:8px;align-items:center;margin:8px 0;font-size:12px}.bar{height:7px;border-radius:999px;background:#edf1f4;overflow:hidden}.bar i{display:block;height:100%;background:#6d8eab;border-radius:999px}.ai-layout{max-width:920px;margin:0 auto}.ai-chat{min-height:560px;display:flex;flex-direction:column}.ai-messages{flex:1;padding:18px;display:flex;flex-direction:column;gap:10px;overflow:auto}.ai-bubble{max-width:80%;padding:11px 13px;border-radius:12px;line-height:1.5;white-space:pre-wrap}.ai-bubble.system,.ai-bubble.assistant{background:#eef2f5;align-self:flex-start}.ai-bubble.user{background:#244a72;color:#fff;align-self:flex-end}.ai-form{border-top:1px solid var(--line);padding:12px;display:flex;gap:9px;align-items:flex-end}.ai-form textarea{resize:vertical;min-height:65px}.drawer-backdrop,.modal-backdrop{position:fixed;inset:0;background:rgba(17,29,40,.28);opacity:0;pointer-events:none;transition:.18s;z-index:60}.drawer-backdrop.open,.modal-backdrop.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;width:min(760px,92vw);height:100vh;background:#fff;transform:translateX(102%);transition:.2s ease;z-index:70;display:flex;flex-direction:column;box-shadow:-18px 0 50px rgba(15,25,35,.12)}.drawer.open{transform:translateX(0)}.drawer-head{padding:18px 20px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}.drawer-head h2{margin:3px 0 7px;font-size:22px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:var(--muted);font-weight:700}.drawer-tabs{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid var(--line);overflow:auto}.drawer-tabs button{border:0;background:transparent;padding:8px 10px;border-radius:8px;color:var(--muted);white-space:nowrap}.drawer-tabs button.active{background:#eef3f7;color:#284e70}.drawer-body{overflow:auto;padding:16px 20px 34px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.detail-block{border:1px solid var(--line);border-radius:11px;padding:12px;min-width:0}.detail-block h4{margin:0 0 9px;font-size:12px}.kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:7px;margin:6px 0;font-size:12px}.kv span:first-child{color:var(--muted)}.kv span:last-child{word-break:break-word}.contact-card,.signal-card,.history-card{border:1px solid var(--line);border-radius:10px;padding:11px;margin:8px 0}.contact-card-head{display:flex;justify-content:space-between;gap:10px}.contact-values{margin-top:7px;display:flex;gap:6px;flex-wrap:wrap}.chip{background:#f0f3f5;border-radius:7px;padding:5px 7px;font-size:11px;word-break:break-all}.timeline{position:relative;padding-left:16px}.timeline:before{content:"";position:absolute;left:5px;top:5px;bottom:5px;width:1px;background:var(--line)}.message{position:relative;padding:0 0 14px 12px}.message:before{content:"";position:absolute;left:-15px;top:5px;width:7px;height:7px;border-radius:50%;background:#8ca4b8;border:2px solid #fff}.message .msg-meta{font-size:10px;color:var(--muted);margin-bottom:4px}.message .msg-subject{font-weight:700;font-size:12px;margin-bottom:4px}.message .msg-body{white-space:pre-wrap;line-height:1.45;font-size:12px}.modal{position:fixed;z-index:80;left:50%;top:50%;width:min(480px,90vw);transform:translate(-50%,-47%) scale(.98);opacity:0;pointer-events:none;background:#fff;border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow);padding:18px;transition:.16s}.modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal h3{margin:0}.modal p{color:var(--muted)}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.export-grid button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:13px;text-align:left}.mobile-only{display:none}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}.toolbar{flex-wrap:wrap}.search-wrap{flex-basis:100%}.analytics-grid{grid-template-columns:1fr}}
@media(max-width:760px){:root{--sidebar:0px}.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:230px;transform:translateX(-102%);transition:.2s;box-shadow:12px 0 35px rgba(0,0,0,.18)}.sidebar.open{transform:translateX(0)}.mobile-only{display:inline-flex}.topbar{padding:12px 14px;min-height:68px}.topbar h1{font-size:18px}.sync{display:none}.view{padding:14px}.metrics{grid-template-columns:repeat(2,1fr)}.toolbar select{flex:1;min-width:130px}.table-scroll{overflow-x:hidden}.data-table{min-width:100%;table-layout:fixed}.data-table th:nth-child(n+5),.data-table td:nth-child(n+5){display:none}.data-table th:first-child,.data-table td:first-child{width:30px;padding-left:8px;padding-right:4px}.data-table th:nth-child(2),.data-table td:nth-child(2){width:auto}.data-table th:nth-child(3),.data-table td:nth-child(3){width:108px}.data-table th:nth-child(4),.data-table td:nth-child(4){width:70px}.company-cell{min-width:0}.company-cell strong,.company-cell span{white-space:normal;overflow-wrap:anywhere}.drawer{width:100vw}.drawer-body{padding:14px}.detail-grid{grid-template-columns:1fr}.review-item{grid-template-columns:1fr}.log-item{grid-template-columns:1fr}.ai-chat{min-height:calc(100vh - 110px)}.ai-bubble{max-width:92%}.ai-form{flex-direction:column;align-items:stretch}.export-grid{grid-template-columns:1fr}}
@media(max-width:390px){.metrics{grid-template-columns:1fr 1fr}.metric{padding:11px}.metric b{font-size:19px}.topbar-actions .btn{padding:8px}.toolbar{padding:8px}.view{padding:10px}.drawer-tabs{padding-left:8px}.drawer-head{padding:14px}.kv{grid-template-columns:100px 1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Production v2: auth/admin additions. Existing CRM layout intentionally preserved. */
.auth-hidden{display:none!important}.login-screen{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:20px}.login-screen.hidden{display:none}.login-card{width:min(420px,100%);padding:28px}.login-brand{margin-bottom:24px}.login-card h1{margin:0 0 8px}.login-card>p{color:var(--muted);margin:0 0 20px}.login-card label,.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:650;color:#475563}.login-card input,.form-grid input{border:1px solid var(--line);border-radius:9px;padding:10px 11px;background:#fff;outline:none}.login-card input:focus,.form-grid input:focus{border-color:#7e9db8;box-shadow:0 0 0 3px rgba(68,111,150,.12)}.login-card .btn{width:100%;margin-top:16px}.login-error,.form-message{min-height:20px;color:#8a3e3e;font-size:12px;margin-top:10px}.user-chip{font-size:12px;color:#53616d;background:#eef2f5;border-radius:999px;padding:7px 10px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.admin-panel{min-height:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid .full{grid-column:1/-1}.checks{display:flex;gap:8px;flex-wrap:wrap}.check{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:6px!important;font-size:11px!important;font-weight:500!important;color:#465563!important;background:#f4f6f8;border:1px solid var(--line);border-radius:8px;padding:6px 8px}.check input{margin:0}.checks.compact{gap:5px}.checks.permissions{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:7px}.checks.permissions .check{align-items:flex-start}.checks.permissions span{display:flex;flex-direction:column;gap:2px}.checks.permissions small{color:var(--muted);font-weight:400}.admin-table-wrap{margin-bottom:20px}.admin-table{min-width:820px}.roles-list{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:12px}.role-card{padding:14px}.role-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.admin-role-head{margin-top:6px}
@media(max-width:900px){.admin-grid,.roles-list{grid-template-columns:1fr}.checks.permissions{grid-template-columns:1fr}}
@media(max-width:760px){.user-chip{display:none}.topbar-actions #logoutBtn{display:inline-flex}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.login-card{padding:22px}}
/* v2.2: real communication + sales pipelines; base-company table remains separate. */
.pipeline-card{cursor:pointer}.pipeline-last{display:flex;flex-direction:column;gap:4px;margin:7px 0 9px;padding:8px;background:#f6f8fa;border-radius:8px;font-size:11px;line-height:1.35}.pipeline-last>b{font-size:11px}.pipeline-last>span{color:var(--muted);font-size:10px}.pipeline-control{margin-top:9px}.pipeline-stage{width:100%;border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 8px;font-size:11px;color:#3f4e5a}.kanban-empty{padding:10px;color:var(--muted);font-size:12px}.analytics-grid>.panel{min-width:0}
