*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#dbe7ef;color:#17212b}.app{height:100vh;display:flex;max-width:1200px;margin:auto;background:#fff;box-shadow:0 0 30px #0001}.sidebar{width:320px;border-right:1px solid #ddd;background:#fff}.brand{display:flex;align-items:center;gap:10px;font-size:25px;font-weight:800;padding:20px;color:#229ed9}.brand-mark{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#229ed9;color:#fff;font-size:18px}.search{padding:0 14px 14px}.search input{width:100%;padding:12px 15px;border:0;border-radius:20px;background:#f0f2f5;outline:none}.contact{display:flex;gap:12px;padding:13px 16px;cursor:pointer}.contact.active{background:#e8f5fc}.contact small,.person small{display:block;color:#35a66f;font-size:12px;margin-top:3px}.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#229ed9;color:#fff;font-weight:700;flex:none}.chat{display:flex;flex:1;min-width:0;flex-direction:column;background:#e9f1f5}.chat-header{height:70px;background:#fff;display:flex;align-items:center;padding:10px 18px;gap:12px;border-bottom:1px solid #ddd}.person{flex:1}.actions button,.composer button{border:0;background:transparent;cursor:pointer;font-size:20px;padding:9px;border-radius:50%}.actions button:hover,.composer button:hover{background:#eef5f8}.messages{flex:1;padding:25px 7%;overflow:auto;background:linear-gradient(#e9f1f5,#e4edf2);touch-action:pan-y}.day{text-align:center;color:#667781;font-size:12px;margin:5px 0 18px}.bubble{max-width:70%;padding:9px 12px;border-radius:14px;margin:7px 0;box-shadow:0 1px 1px #0001;position:relative;cursor:pointer;touch-action:pan-y;transition:transform .16s ease}.bubble.swiping{transition:none}.bubble span{display:block;text-align:right;font-size:10px;color:#71808a;margin-top:4px}.incoming{background:#fff;border-top-left-radius:4px}.outgoing{background:#d8fdd2;margin-left:auto;border-top-right-radius:4px}.composer{display:flex;align-items:center;gap:5px;padding:10px 14px;background:#fff}.composer input{flex:1;border:0;background:#f0f2f5;border-radius:22px;padding:13px 16px;outline:none}.composer .send{background:#229ed9;color:#fff;width:43px;height:43px}.composer #gifBtn{font-size:12px;font-weight:800;border:1px solid #d4dfe5;border-radius:14px}#loginBox{position:fixed;z-index:10;inset:0;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}#loginBox h2{margin:0 0 8px;color:#229ed9}#loginBox input{width:min(330px,90vw);padding:12px 14px;border:1px solid #d7e0e5;border-radius:12px;outline:none}#loginBox button{padding:11px 16px;border:0;border-radius:12px;background:#229ed9;color:#fff;cursor:pointer}#loginBox #forgotPasswordBtn{background:transparent;color:#229ed9}.reply-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;background:#fff;border-top:1px solid #e5e5e5}.reply-bar div{flex:1;border-left:3px solid #229ed9;padding-left:9px}.reply-bar span{display:block;color:#667781;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-bar button{border:0;background:transparent;cursor:pointer}.message-actions{display:none;position:absolute;right:8px;top:-36px;background:#fff;border-radius:14px;padding:2px;box-shadow:0 2px 10px #0002;z-index:5}.bubble.active .message-actions{display:flex}.message-actions button{border:0;background:transparent;cursor:pointer;padding:5px}.quoted{font-size:11px;color:#667781;border-left:3px solid #229ed9;padding-left:7px;margin-bottom:5px}.bubble-body{overflow-wrap:anywhere}.attachments{margin-bottom:5px}.attachment-preview{margin-bottom:7px}.chat-media-image{display:block;max-width:min(360px,65vw);max-height:320px;border-radius:10px;object-fit:cover}.chat-media-video{display:block;width:min(360px,65vw);max-height:320px;border-radius:10px;background:#000}.chat-media-audio{width:min(320px,60vw)}.file-card{display:block;padding:10px 12px;background:#f4f7f9;border-radius:10px;color:#1675a6;text-decoration:none;font-weight:600;overflow-wrap:anywhere}.media-error{font-size:12px;color:#b33}.system-message,.empty-users{padding:15px;color:#667781;text-align:center}@media(max-width:700px){.sidebar{display:none}.messages{padding:20px 4%}.bubble{max-width:82%}.chat-header{height:62px}.composer{padding:8px}.brand{padding:16px}.chat-media-image,.chat-media-video{max-width:78vw}.message-actions{right:4px;top:-38px}.message-actions button{padding:7px 6px}}