:root{--bg:#f0f2f5;--panel:#ffffff;--border:#e4e7eb;--accent:#0ea5e9;--accent-dark:#0284c7;--text:#111827;--muted:#6b7280;--bubble-in:#ffffff;--bubble-out:#d9fdd3;--bubble-human:#cfe9ff}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg)}.login-wrap{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px;width:100%;max-width:360px;box-shadow:0 8px 30px rgba(0,0,0,.06)}.login-card h1{margin:0 0 4px;font-size:22px}.login-card p{margin:0 0 20px;color:var(--muted);font-size:14px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}input,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:9px;font-size:16px;font-family:inherit;outline:none}input:focus,textarea:focus{border-color:var(--accent)}button{cursor:pointer;border:none;border-radius:9px;font-size:15px;font-weight:600;font-family:inherit}.btn-primary{background:var(--accent);color:#fff;padding:11px 16px;width:100%}.btn-primary:hover{background:var(--accent-dark)}.btn-primary:disabled{opacity:.6;cursor:default}.error{color:#dc2626;font-size:13px;margin-top:8px}.inbox{display:grid;grid-template-columns:340px 1fr;height:100vh;height:100dvh}.inbox,.list{overflow:hidden}.list{border-right:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0;min-width:0}.list-header,.thread-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.list-header h2{margin:0;font-size:17px}.filters{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--border)}.chip{background:#f3f4f6;color:var(--muted);padding:6px 12px;border-radius:999px;font-size:13px}.chip.active{background:var(--accent);color:#fff}.search-box{padding:10px 12px;border-bottom:1px solid var(--border)}.search-box input{background:#f3f4f6;border-color:transparent}.search-box input:focus{background:var(--panel);border-color:var(--accent)}.tick-read{color:#53bdeb;font-weight:700}.info-error{margin:10px 16px 0;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;font-size:13px}.tpl-open{margin-left:8px}.tpl-panel{padding:12px;border-top:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;gap:10px}.tpl-list{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.tpl-chip{background:#f3f4f6;color:var(--fg,#111827);padding:7px 12px;border-radius:999px;font-size:13px;border:1px solid var(--border)}.tpl-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.tpl-fill{display:flex;flex-direction:column;gap:8px}.tpl-preview{background:#f0f2f5;border-radius:9px;padding:10px 12px;font-size:14px;white-space:pre-wrap;color:var(--fg,#111827)}.push-banner{width:100%;text-align:center;padding:10px 12px;border:none;border-bottom:1px solid var(--border);background:#eff6ff;color:var(--accent-dark);font-size:13px;font-weight:600}.push-banner:hover{background:#dbeafe}.push-banner.denied{background:#fef2f2;color:#b91c1c;cursor:default;font-weight:500}.threads{overflow-y:auto;flex:1 1;min-height:0}.thread-item{padding:12px 16px;border-bottom:1px solid #f1f3f5;cursor:pointer;display:flex;gap:10px;align-items:center;min-width:0}.thread-item:hover{background:#f9fafb}.thread-item.sel{background:#e8f5fd}.thread-main{flex:1 1;min-width:0}.thread-name{font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px}.thread-preview{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-state{font-size:11px;padding:1px 7px;border-radius:999px}.st-bot{background:#e0f2fe;color:#0369a1}.st-human{background:#fef3c7;color:#b45309}.st-off{background:#f3f4f6;color:#6b7280}.unread{background:#22c55e;color:#fff;font-size:11px;min-width:20px;height:20px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 6px}.thread{display:flex;flex-direction:column;min-height:0;min-width:0;background:#efeae2}.thread-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted)}.messages{flex:1 1;min-width:0;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:6px}.bubble{max-width:70%;padding:8px 12px;border-radius:10px;font-size:14px;line-height:1.35;box-shadow:0 1px 1px rgba(0,0,0,.06);overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;min-width:0}.bubble .meta{display:block;font-size:10px;color:var(--muted);margin-top:3px}.b-in{align-self:flex-start;background:var(--bubble-in)}.b-bot{background:var(--bubble-out)}.b-bot,.b-human{align-self:flex-end}.b-human{background:var(--bubble-human)}.b-failed{border:1px solid #dc2626}.composer{display:flex;gap:8px;padding:12px 12px calc(12px + env(safe-area-inset-bottom, 0px));border-top:1px solid var(--border);background:var(--panel);align-items:flex-end}.composer,.window-warn{flex-shrink:0}.composer textarea{resize:none;max-height:120px}.btn-send{background:var(--accent);color:#fff;padding:10px 18px}.btn-ghost{background:#f3f4f6;color:var(--text);padding:8px 12px;font-size:13px}.window-warn{padding:10px 12px;background:#fef3c7;color:#92400e;font-size:13px;border-top:1px solid var(--border);text-align:center}.btn-back{display:none;align-items:center;justify-content:center;background:transparent;color:var(--accent);font-size:26px;line-height:1;padding:0 6px}@media (max-width:768px){.inbox{grid-template-columns:1fr}.list{border-right:none}.inbox .thread,.inbox.has-sel .list{display:none}.inbox.has-sel .thread{display:flex}.btn-back{display:inline-flex}.bubble{max-width:85%}.filters,.list-header,.thread-header{padding-left:12px;padding-right:12px}}@media (max-width:420px){.bubble{max-width:92%}}.thread-item.unread-row .thread-name{font-weight:800}.thread-item.unread-row .thread-preview{color:var(--text);font-weight:600}.unread-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;flex-shrink:0}.contact-name{background:transparent;border:none;padding:0;cursor:pointer;font-weight:700;font-size:15px;color:var(--text);max-width:100%;text-align:left;display:flex;align-items:center;gap:8px;min-width:0}.contact-name-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.contact-name:hover .contact-name-txt{color:var(--accent);text-decoration:underline}.avatar-sm{width:34px;height:34px;border-radius:50%;flex-shrink:0;background:var(--accent);color:#fff;font-weight:800;font-size:13px;justify-content:center}.avatar-sm,.info-name{display:flex;align-items:center}.info-name{gap:6px}.btn-edit{background:transparent;border:none;cursor:pointer;color:var(--muted);font-size:14px;padding:2px 4px;line-height:1;border-radius:4px}.btn-edit:hover{color:var(--accent);background:rgba(0,0,0,.05)}.name-edit{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.name-input{flex:1 1;min-width:120px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;font-size:16px}.btn-mini{font-size:12px;padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:#fff;cursor:pointer}.btn-mini.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-mini:disabled{opacity:.5;cursor:default}.info-overlay{position:fixed;inset:0;background:rgba(15,23,42,.35);display:flex;justify-content:flex-end;z-index:50}.info-panel{width:360px;max-width:90vw;height:100%;background:#fff;display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(0,0,0,.12);overflow-y:auto}.info-head{gap:12px;padding:18px 16px;border-bottom:1px solid var(--border)}.avatar,.info-head{display:flex;align-items:center}.avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0;background:var(--accent);color:#fff;font-weight:800;justify-content:center;font-size:18px}.info-name>span{font-weight:700;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.info-phone{font-size:13px;color:var(--muted);text-decoration:none}.info-phone:hover{text-decoration:underline}.info-section{padding:16px}.info-section h4{margin:0 0 10px;font-size:14px}.appt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.appt-item{border:1px solid var(--border);border-radius:10px;padding:10px 12px}.appt-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.appt-date{font-size:13px;font-weight:600}.appt-status{font-size:11px;padding:1px 8px;border-radius:999px;white-space:nowrap}.ap-scheduled{background:#e0f2fe;color:#0369a1}.ap-confirmed{background:#dcfce7;color:#15803d}.ap-attended{background:#ecfdf5;color:#047857}.ap-no_show{background:#fef3c7;color:#b45309}.ap-cancelled{background:#fee2e2;color:#b91c1c}.appt-reason{font-size:13px;color:var(--muted);margin-top:4px}@media (max-width:768px){.info-panel{width:100vw;max-width:100vw}}.wa-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:rgba(0,0,0,.06);padding:1px 4px;border-radius:4px;font-size:.92em}.appt-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.appt-act{font-size:12px;line-height:1;padding:6px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.14);background:#fff;color:#1f2937;cursor:pointer}.appt-act:hover{background:#f3f4f6}.appt-act:disabled{opacity:.5;cursor:default}.appt-act.act-attended{border-color:#16a34a;color:#16a34a}.appt-act.act-confirmed{border-color:#2563eb;color:#2563eb}.appt-act.act-no_show{border-color:#d97706;color:#d97706}.appt-act.act-cancelled{border-color:#dc2626;color:#dc2626}.appt-act.act-scheduled{border-color:#6b7280;color:#6b7280}