:root{--ink:#12263b;--muted:#8190a1;--border:#e5edf3;--surface:#fff;--bg:#f4f7fb;--accent:#0b827a;--accent2:#e3f5f1;--nav:#0c1b2a;--danger:#bb3545;--radius:15px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}input,textarea{outline-color:#0d9488}.hidden{display:none!important}.app{height:100dvh;display:grid;grid-template-columns:minmax(320px,380px) minmax(0,1fr);max-width:1600px;margin:auto;box-shadow:0 0 45px rgba(21,42,72,.08)}.sidebar{display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--border);min-height:0}.side-header{height:83px;padding:18px 22px;background:var(--nav);display:flex;align-items:center;justify-content:space-between;color:#fff}.identity{display:flex;gap:12px;align-items:center;min-width:0}.identity strong{font-size:15px;letter-spacing:.1px;display:block}.identity small{display:block;font-size:11px;color:#9baaba;margin-top:3px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#1cbdb0,#087b79);display:grid;place-items:center;color:#fff;font-size:26px;font-weight:800;flex-shrink:0;letter-spacing:-2px}.brand-mark span{color:#a2f5df}.side-header .iconbtn{color:#bccdd7}.iconbtn{display:grid;place-items:center;border:0;background:transparent;color:var(--muted);width:39px;height:39px;border-radius:12px;font-size:23px}.iconbtn:hover{background:#ecf2f6;color:var(--ink)}.side-header .iconbtn:hover{background:#20374b;color:#fff}.side-intro{padding:25px 23px 17px}.title-row{display:flex;align-items:center;gap:10px}.side-intro h1{margin:0;font-size:26px;letter-spacing:-.7px}.side-intro p{margin:5px 0 0;font-size:13px;color:var(--muted)}.counter{border-radius:50px;background:#e4f5ef;padding:3px 8px;color:#07756b;font-size:12px;font-weight:700}.search-box{margin:0 20px 17px;border:1px solid var(--border);background:#f7f9fb;border-radius:12px;display:flex;align-items:center;padding:0 13px;gap:8px}.search-box span{font-size:26px;color:#8596a7}.search-box input{border:none;background:transparent;outline:none;width:100%;height:43px;font-size:13px;color:var(--ink)}.tabs{display:flex;gap:16px;padding:0 22px;border-bottom:1px solid var(--border)}.tab{padding:0 0 13px;font-size:12px;background:none;color:var(--muted);border:0;border-bottom:2px solid transparent;font-weight:600}.tab.active{color:var(--accent);border-color:var(--accent)}.conversation-list{overflow-y:auto;flex:1}.conversation{width:100%;background:#fff;padding:17px 18px;display:flex;align-items:flex-start;gap:12px;text-align:left;border:0;border-bottom:1px solid #eef1f5}.conversation:hover,.conversation.active{background:#f0f8f7}.avatar{width:44px;height:44px;border-radius:15px;background:#e2ebf2;color:#45677a;display:grid;place-items:center;font-size:15px;font-weight:800;flex-shrink:0;text-transform:uppercase}.conversation .avatar{background:#dff1ed;color:#087e75}.conv-body{min-width:0;flex:1}.conv-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.conv-top strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-time{font-size:10px;color:#97a4b2;white-space:nowrap}.conv-phone{color:#8794a2;font-size:11px;margin-top:2px}.conv-last{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.conv-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#6f7f90;font-size:12px}.unread-pill{background:#0d9688;color:white;border-radius:50px;min-width:20px;height:20px;display:grid;place-items:center;font-size:11px;font-weight:700}.side-foot{height:49px;border-top:1px solid var(--border);display:flex;gap:9px;align-items:center;padding:0 24px;color:#8997a3;font-size:11px}.online-dot{background:#14a58b;height:7px;width:7px;border-radius:50%;box-shadow:0 0 0 3px #e0f8ed}.chat-panel{min-width:0;display:flex;flex-direction:column;background:#f7f9fc}.empty-view{margin:auto;padding:40px;text-align:center;max-width:350px}.empty-icon{margin:auto auto 20px;width:76px;height:76px;border-radius:25px;background:#e5f3ef;color:var(--accent);display:grid;place-items:center;font-size:35px}.empty-view h2{font-size:20px;line-height:1.4;letter-spacing:-.4px}.empty-view p{font-size:14px;line-height:1.7;color:var(--muted)}.chat-view{height:100%;display:flex;flex-direction:column;min-height:0}.chat-header{background:#fff;border-bottom:1px solid var(--border);min-height:82px;display:flex;gap:13px;align-items:center;padding:15px 24px}.chat-header .avatar{background:#e3f6f2;color:#087f75}.contact-heading{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.contact-heading strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-heading small{font-size:12px;color:var(--muted)}.back{display:none}.messages{flex:1;overflow-y:auto;padding:25px 30px;display:flex;flex-direction:column;gap:13px;overscroll-behavior:contain}.bubble{padding:12px 15px;border-radius:17px;font-size:14px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;max-width:min(77%,480px);box-shadow:0 2px 8px rgba(30,53,83,.035)}.bubble-in{align-self:flex-start;background:#fff;border:1px solid #e7edf4;border-bottom-left-radius:4px}.bubble-out{align-self:flex-end;background:#d9f4eb;border-bottom-right-radius:4px}.message-meta{text-align:right;color:#8190a0;font-size:10px;margin-top:7px;white-space:nowrap}.bubble-out .message-meta{color:#508e84}.chat-day{text-align:center;margin:12px 0;color:#9aa5b1;font-size:11px}.composer{margin:0 24px;display:flex;align-items:flex-end;gap:11px;background:#fff;border:1px solid #e4edf3;box-shadow:0 2px 15px rgba(21,42,72,.04);padding:10px;border-radius:16px}.composer textarea{resize:none;max-height:180px;min-height:27px;line-height:1.5;overflow-y:auto;border:0;outline:0;flex:1;padding:6px 8px;font-size:14px}.send-button,.primary{background:var(--accent);color:white;border:0;font-weight:700}.send-button{width:42px;height:42px;border-radius:12px;font-size:21px}.send-button:hover,.primary:hover{background:#08675f}.composer-hint{display:flex;justify-content:space-between;padding:8px 33px 18px;font-size:10px;color:#9aabb8;gap:10px}.send-notice{margin:0 24px 10px;font-size:12px;background:#fff7df;border:1px solid #f1e5c1;border-radius:10px;padding:10px 13px;color:#775d21}.login-wrap{height:100dvh;display:grid;place-items:center;background:radial-gradient(circle at 15% 10%,#194856 0%,#0c1b2a 55%)}.login-card{width:min(calc(100vw - 35px),410px);padding:38px;background:white;border-radius:25px;box-shadow:0 18px 70px rgba(0,0,0,.17)}.brand-large{margin-bottom:25px;width:60px;height:60px;font-size:34px}.login-card h1{font-size:25px;margin:0 0 6px}.muted{color:var(--muted);margin:0 0 28px;font-size:13px}.login-card label,.modal label{font-size:12px;font-weight:700;display:block;margin-bottom:8px}.login-card input,.modal input{width:100%;border:1px solid #dbe5ec;background:#f9fbfc;border-radius:11px;padding:12px 14px;font-size:14px;margin-bottom:17px}.primary,.secondary{padding:13px 18px;border-radius:11px}.full{width:100%;display:flex;justify-content:space-between}.error{font-size:12px;color:var(--danger);min-height:16px}.modal{position:fixed;inset:0;z-index:100;background:#08182798;display:grid;place-items:center;padding:20px}.modal-card{padding:26px;border-radius:20px;background:#fff;width:min(100%,420px);box-shadow:0 20px 50px #07192633}.modal h2{margin:0 0 24px;font-size:21px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:9px}.secondary{background:#edf2f5;color:#2b4b63;border:0}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#152e3f;color:white;border-radius:12px;padding:13px 20px;z-index:200;box-shadow:0 12px 28px #091b2333;max-width:calc(100vw - 30px);font-size:13px}.list-empty{text-align:center;color:#8d9dac;padding:40px 18px;font-size:13px}@media(max-width:700px){.app{display:block;overflow:hidden}.sidebar{width:100%;height:100dvh}.chat-panel{display:none}.app.chat-open .sidebar{display:none}.app.chat-open .chat-panel{display:flex;height:100dvh}.side-header{height:74px}.side-intro{padding-top:24px}.chat-header{min-height:74px;padding:11px 14px}.back{display:grid}.messages{padding:18px 13px}.bubble{max-width:89%;font-size:14px}.composer{margin:0 11px}.composer-hint{padding:8px 18px calc(14px + env(safe-area-inset-bottom))}.send-notice{margin:0 11px 8px}.conversation{padding:16px 18px}.side-foot{padding-bottom:env(safe-area-inset-bottom)}}

/* Google Contacts sync */
.google-sync{padding:12px 23px;border-top:1px solid var(--border);background:#fafbfc}
.google-btn{display:block;width:100%;padding:9px 14px;background:#fff;border:1.5px solid #dadce0;border-radius:10px;font-size:13px;color:#3c4043;cursor:pointer;text-align:left;transition:box-shadow .2s,background .2s}
.google-btn:hover{background:#f6f9fe;box-shadow:0 1px 5px rgba(60,64,67,.15);border-color:#1a73e8}
.google-status{display:flex;align-items:center;gap:8px;font-size:12px;color:#5f6368}
.google-status .google-icon{font-size:18px}
.unlink-btn{background:none;border:0;color:#9aa0a6;cursor:pointer;font-size:14px;margin-left:auto;padding:4px;border-radius:50%}
.unlink-btn:hover{background:#e8eaed;color:#ea4335}
