:root{--ink:#e5eef8;--muted:#91a0b5;--panel:#111827;--panel2:#172033;--panel3:#0b1220;--line:rgba(255,255,255,.08);--mint:#6ee7b7;--mint2:#34d399;--bubble:#1d2a40;--customer:#1f7a62;--danger:#fecaca;--danger-bg:rgba(127,29,29,.35);font-family:Inter,system-ui,-apple-system,"Segoe UI",Tahoma,Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--panel3);color:var(--ink)}body{font-size:16px}.login-page{background:radial-gradient(circle at 80% 10%,rgba(52,211,153,.14),transparent 32%),radial-gradient(circle at 10% 90%,rgba(59,130,246,.1),transparent 35%),#080d17}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,430px);background:rgba(17,24,39,.86);border:1px solid var(--line);border-radius:28px;padding:36px;box-shadow:0 30px 80px rgba(0,0,0,.4);backdrop-filter:blur(16px)}.brand-mark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--mint),#38bdf8);color:#07110e;font-weight:900;font-size:24px;margin-bottom:28px}.eyebrow{color:var(--mint);font-size:12px;font-weight:800;letter-spacing:.16em;margin:0 0 6px}.login-card h1,.panel-header h1{margin:0;font-size:30px;line-height:1.25}.login-copy{margin:10px 0 26px;color:var(--muted);line-height:1.7}.login-form{display:grid;gap:12px}.login-form label{font-size:14px;font-weight:700}.login-form input,.filters input,.filters select{width:100%;border:1px solid var(--line);background:#0c1423;color:var(--ink);border-radius:13px;padding:14px 15px;font-size:16px;outline:none}.login-form input:focus,.filters input:focus,.filters select:focus{border-color:var(--mint);box-shadow:0 0 0 3px rgba(110,231,183,.12)}.password-wrap{position:relative}.password-wrap input{padding-left:65px}.show-password{position:absolute;left:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--mint);padding:8px;cursor:pointer}.primary-button{border:0;border-radius:13px;background:linear-gradient(135deg,var(--mint),var(--mint2));color:#06271d;font-weight:900;font-size:16px;padding:14px 18px;cursor:pointer;margin-top:7px}.primary-button:hover{filter:brightness(1.05)}.primary-button:disabled{opacity:.45;cursor:not-allowed}.secure-note{display:flex;justify-content:center;align-items:center;gap:8px;color:var(--muted);font-size:13px;margin:22px 0 0}.secure-note span{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 14px var(--mint)}.error,.notice{padding:12px 14px;border-radius:12px;margin:0 0 16px;line-height:1.6;font-size:14px}.error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(248,113,113,.2)}.notice{background:rgba(59,130,246,.12);color:#bfdbfe;border:1px solid rgba(96,165,250,.18)}.password-hint{font-size:13px;color:var(--muted);margin:0 0 6px}.app-shell{height:100dvh;display:grid;grid-template-columns:minmax(310px,390px) 1fr;direction:ltr;overflow:hidden}.conversation-panel,.chat-panel{direction:rtl}.conversation-panel{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:24px 22px 18px}.panel-header h1{font-size:26px}.icon-button,.refresh-button,.back-button{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--ink);border-radius:11px;cursor:pointer}.icon-button{width:42px;height:42px;font-size:20px}.filters{padding:0 18px 12px;display:grid;grid-template-columns:1fr 130px;gap:9px}.search-box{position:relative}.search-box span{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:22px}.filters input{padding-right:40px}.filters input,.filters select{padding-top:11px;padding-bottom:11px;font-size:14px}.summary-row{padding:0 20px 10px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}.refresh-button{padding:7px 11px;color:var(--mint)}.conversation-list{overflow:auto;min-height:0;padding:0 9px 15px}.conversation-item{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;text-align:right;display:grid;grid-template-columns:46px 1fr auto;gap:12px;padding:15px 11px;cursor:pointer;border-radius:14px}.conversation-item:hover,.conversation-item.active{background:rgba(110,231,183,.08)}.avatar{width:46px;height:46px;border-radius:15px;background:linear-gradient(135deg,#263650,#172033);display:grid;place-items:center;color:var(--mint);font-weight:900}.conversation-main{min-width:0}.conversation-top{display:flex;align-items:center;gap:8px}.conversation-name{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-pill{font-size:11px;padding:3px 7px;border-radius:999px;background:rgba(110,231,183,.1);color:var(--mint);white-space:nowrap}.last-message{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:6px}.conversation-time{font-size:11px;color:var(--muted);direction:ltr}.list-loading,.empty-list{display:grid;place-items:center;text-align:center;color:var(--muted);min-height:220px}.spinner{width:28px;height:28px;border:3px solid rgba(255,255,255,.09);border-top-color:var(--mint);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.chat-panel{background:linear-gradient(rgba(8,13,23,.94),rgba(8,13,23,.94)),radial-gradient(circle at 10% 10%,rgba(110,231,183,.12),transparent 30%);display:flex;flex-direction:column;min-width:0}.empty-state{margin:auto;text-align:center;color:var(--muted);padding:30px}.empty-icon{width:64px;height:64px;border-radius:22px;background:rgba(110,231,183,.08);color:var(--mint);display:grid;place-items:center;font-size:26px;margin:0 auto 18px}.empty-state h2{color:var(--ink);margin:0 0 8px}.empty-state p{margin:0}.chat-header{height:86px;flex:none;border-bottom:1px solid var(--line);background:rgba(17,24,39,.72);backdrop-filter:blur(12px);display:flex;align-items:center;gap:14px;padding:0 24px}.chat-header .avatar{flex:none}.chat-identity{min-width:0}.chat-identity h2{font-size:18px;margin:0 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-identity p{font-size:13px;color:var(--muted);margin:0;direction:ltr;text-align:right}.back-button{display:none;width:40px;height:40px}.message-area{flex:1;overflow:auto;padding:28px clamp(18px,5vw,72px)}.message-row{display:flex;direction:ltr;margin:0 0 14px}.message-row.customer{justify-content:flex-start}.message-row.agent{justify-content:flex-end}.message-bubble{max-width:min(74%,680px);direction:rtl;text-align:start;unicode-bidi:plaintext;border-radius:18px;padding:12px 15px;box-shadow:0 10px 24px rgba(0,0,0,.12)}.customer .message-bubble{background:var(--customer);border-bottom-left-radius:5px}.agent .message-bubble{background:var(--bubble);border:1px solid var(--line);border-bottom-right-radius:5px}.message-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}.message-meta{display:block;margin-top:7px;font-size:11px;opacity:.67;direction:ltr;text-align:right}.chat-footer{height:45px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}.fatal-error{margin:auto;max-width:460px;text-align:center;padding:28px}.fatal-error button{margin-top:12px}.mobile-only{display:none}@media(max-width:760px){.app-shell{display:block;position:relative}.conversation-panel,.chat-panel{position:absolute;inset:0}.chat-panel{transform:translateX(-105%);transition:transform .25s ease;z-index:5}.app-shell.chat-open .chat-panel{transform:translateX(0)}.filters{grid-template-columns:1fr 115px}.back-button{display:block}.message-bubble{max-width:86%}.message-area{padding:20px 14px}.chat-header{height:76px;padding:0 13px}.login-card{padding:28px 22px;border-radius:22px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important}}

/* ===== v2: dashboard UX ===== */
[hidden]{display:none!important}
.quick-filters{display:flex;gap:6px;padding:0 18px 12px;overflow-x:auto;scrollbar-width:none}
.quick-filters::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);border-radius:999px;padding:6px 11px;font-size:12.5px;cursor:pointer;font-family:inherit}
.chip:hover{color:var(--ink)}
.chip.active{background:rgba(110,231,183,.12);border-color:rgba(110,231,183,.35);color:var(--mint)}
.chip-count{font-size:11px;background:rgba(255,255,255,.07);border-radius:999px;padding:1px 7px;color:inherit}
.updated-at{opacity:.8}
.refresh-button{font-family:inherit}
.refresh-button:disabled{opacity:.6;cursor:wait}
.crm-warning{margin:0 18px 10px;padding:9px 12px;border-radius:11px;font-size:12px;line-height:1.6;background:rgba(245,158,11,.1);color:#fcd34d;border:1px solid rgba(245,158,11,.22);overflow-wrap:anywhere}

.conversation-item{align-items:start}
.conversation-top{min-width:0}
.conversation-meta{display:block;font-size:12px;color:#a7b6c9;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.last-message{display:block}
.preview-by{color:var(--mint);margin-inline-end:4px}
.preview-tag{display:inline-block;font-size:10.5px;color:#c4b5fd;background:rgba(139,92,246,.14);border-radius:6px;padding:1px 6px;margin-inline-end:6px}
.conversation-side{display:flex;flex-direction:column;align-items:flex-end;gap:9px;padding-top:2px}
.unanswered-dot{width:9px;height:9px;border-radius:50%;background:#f59e0b;box-shadow:0 0 10px rgba(245,158,11,.7)}

.status-pill{border:1px solid transparent;flex:none}
.st-new{background:rgba(96,165,250,.13);color:#93c5fd}
.st-qualified{background:rgba(45,212,191,.13);color:#5eead4}
.st-hot{background:rgba(249,115,22,.16);color:#fdba74}
.st-quote{background:rgba(168,85,247,.15);color:#d8b4fe}
.st-human{background:rgba(245,158,11,.16);color:#fcd34d}
.st-won{background:rgba(34,197,94,.17);color:#86efac}
.st-lost{background:rgba(148,163,184,.13);color:#cbd5e1}
.st-other{background:rgba(255,255,255,.07);color:var(--muted)}

.chat-header{gap:12px}
.chat-identity{flex:1}
.chat-identity h2{display:flex;align-items:center;gap:8px}
.chat-identity h2 .status-pill{font-size:11px;font-weight:600}
.copy-phone{background:none;border:0;padding:0;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;direction:ltr}
.copy-phone:hover{color:var(--mint)}
.details-toggle{flex:none;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--ink);border-radius:11px;padding:8px 12px;font-size:13px;cursor:pointer;font-family:inherit}
.details-toggle[aria-expanded="true"]{border-color:rgba(110,231,183,.35);color:var(--mint);background:rgba(110,231,183,.08)}
.customer-details{flex:none;max-height:42vh;overflow:auto;padding:16px 24px;border-bottom:1px solid var(--line);background:rgba(17,24,39,.6)}
.details-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.detail{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}
.detail-label{display:block;font-size:11.5px;color:var(--muted);margin-bottom:5px}
.detail-value{font-size:14px;overflow-wrap:anywhere}
.detail-summary{margin-top:10px;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.detail-summary p{margin:0;line-height:1.75;font-size:14px;white-space:pre-wrap;unicode-bidi:plaintext}
.detail-empty{margin:10px 0 0;color:var(--muted);font-size:13px}

.message-area{min-height:0}
.day-separator{display:flex;justify-content:center;margin:18px 0 14px}
.day-separator span{font-size:12px;color:var(--muted);background:rgba(17,24,39,.9);border:1px solid var(--line);border-radius:999px;padding:4px 12px}
.message-text{unicode-bidi:plaintext;text-align:start}
.message-text a{color:#7dd3fc;text-decoration:underline;overflow-wrap:anywhere}
.customer .message-text a{color:#d1fae5}
.message-row.followup .message-bubble{background:rgba(139,92,246,.1);border:1px dashed rgba(167,139,250,.45)}
.followup-tag{display:inline-block;font-size:11px;color:#c4b5fd;margin-bottom:6px}
.message-meta{text-align:start}

.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:#1f2937;color:var(--ink);border:1px solid var(--line);padding:10px 16px;border-radius:12px;font-size:13px;box-shadow:0 12px 30px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:50;direction:rtl}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:760px){
  .customer-details{padding:12px 14px}
  .details-grid{grid-template-columns:1fr 1fr}
  .details-toggle{padding:7px 9px;font-size:12px}
  .chat-identity h2{font-size:16px}
  .quick-filters{padding:0 14px 10px}
}
.chat-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-panel{background-color:#080d17}
/* Desktop scroll fix: keep the grid row at viewport height so the message area (not the page) scrolls */
.app-shell{grid-template-rows:minmax(0,1fr)}
.conversation-panel,.chat-panel{min-height:0;overflow:hidden}

/* ===== v3: Face ID + human takeover ===== */
.login-form select{width:100%;border:1px solid var(--line);background:#0c1423;color:var(--ink);border-radius:13px;padding:14px 15px;font-size:16px;outline:none;font-family:inherit}
.login-form select:focus{border-color:var(--mint);box-shadow:0 0 0 3px rgba(110,231,183,.12)}
.passkey-login{margin:0 0 6px}
.face-button{width:100%;margin-top:0}
.passkey-error{margin:10px 0 0;font-size:13px;line-height:1.6;color:var(--danger)}
.login-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12.5px;margin:18px 0 6px}
.login-divider::before,.login-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.header-actions{display:flex;align-items:center;gap:8px}
.header-actions form{margin:0}
.face-setup{border:1px solid rgba(110,231,183,.3);background:rgba(110,231,183,.08);color:var(--mint);border-radius:11px;height:42px;padding:0 12px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
.face-setup:disabled{opacity:.6}

.st-live{background:rgba(110,231,183,.16);color:var(--mint);border-color:rgba(110,231,183,.3)}
.preview-by.human{color:#fcd34d}
.message-row.human{justify-content:flex-end}
.human .message-bubble{background:rgba(245,158,11,.11);border:1px solid rgba(245,158,11,.38);border-bottom-right-radius:5px}
.human-tag{display:inline-block;font-size:11px;color:#fcd34d;margin-bottom:6px;font-weight:700}

.chat-footer.takeover-bar{height:auto;min-height:58px;padding:10px 16px;gap:14px;justify-content:space-between;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.takeover-button{border:0;border-radius:12px;background:linear-gradient(135deg,var(--mint),var(--mint2));color:#06271d;font-weight:800;font-size:14px;padding:10px 16px;cursor:pointer;font-family:inherit}
.takeover-button:disabled,.send-button:disabled{opacity:.45;cursor:not-allowed}
.composer{flex:none;border-top:1px solid var(--line);background:rgba(17,24,39,.9);padding:8px 14px calc(10px + env(safe-area-inset-bottom))}
.human-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:#fcd34d;padding:2px 2px 8px}
.release-button{flex:none;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--ink);border-radius:10px;padding:6px 10px;font-size:12px;cursor:pointer;font-family:inherit}
.composer-form{display:flex;align-items:flex-end;gap:8px}
.composer-form textarea{flex:1;min-width:0;resize:none;border:1px solid var(--line);background:#0c1423;color:var(--ink);border-radius:14px;padding:11px 13px;font-size:16px;line-height:1.5;font-family:inherit;outline:none;max-height:160px;unicode-bidi:plaintext}
.composer-form textarea:focus{border-color:var(--mint);box-shadow:0 0 0 3px rgba(110,231,183,.12)}
.composer-form textarea:disabled{opacity:.55}
.send-button{flex:none;border:0;border-radius:14px;background:linear-gradient(135deg,var(--mint),var(--mint2));color:#06271d;font-weight:800;font-size:15px;height:46px;padding:0 18px;cursor:pointer;font-family:inherit}
@media(max-width:760px){
  .takeover-bar span{font-size:12px}
  .face-setup{height:40px;padding:0 9px;font-size:12px}
  .human-banner{flex-wrap:wrap}
}
