:root {
  --rail:#0b1020;--rail-2:#151b31;--workspace:#f4f6fb;--panel:#fff;--panel-2:#f8f9fd;
  --purple:#7c3aed;--blue:#2563eb;--gradient:linear-gradient(135deg,#7c3aed,#2563eb);
  --text:#111827;--muted:#6b7280;--soft:#9299aa;--border:#e7e9f1;--online:#21c77a;--danger:#ef4444;
  --shadow:0 18px 55px rgba(15,23,42,.12);--small-shadow:0 10px 30px rgba(15,23,42,.09);
  --radius:18px;--transition:180ms ease;
}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--workspace);overflow:hidden}button,input,textarea{font:inherit}button{border:0;cursor:pointer}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.hidden{display:none!important}.mobile-only{display:none}.eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#7b8395}.brand-lockup{display:flex;align-items:center;gap:12px}.brand-mark,.mobile-brand-mark,.empty-logo{display:grid;place-items:center;background:var(--gradient);color:#fff;font-weight:900;box-shadow:0 16px 38px rgba(85,67,220,.32)}.brand-mark{width:48px;height:48px;border-radius:16px;font-size:24px}.brand-lockup div{display:flex;flex-direction:column}.brand-lockup strong{font-size:22px}.brand-lockup span:last-child{color:#aab1c6}.full-width{width:100%}.text-button{background:transparent;color:var(--purple);font-weight:750;padding:12px}.primary-button,.secondary-button{height:48px;border-radius:14px;font-weight:800;transition:transform var(--transition),box-shadow var(--transition)}.primary-button{background:var(--gradient);color:#fff;box-shadow:0 10px 24px rgba(91,69,225,.25)}.secondary-button{background:#f1f3f9;color:#22283a}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}

/* Auth */
.auth-view{height:100vh;display:grid;grid-template-columns:minmax(420px,1.15fr) minmax(420px,.85fr);background:#fff}.auth-brand-panel{position:relative;padding:58px 7vw;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:radial-gradient(circle at 18% 20%,rgba(124,58,237,.75),transparent 34%),radial-gradient(circle at 85% 76%,rgba(37,99,235,.62),transparent 34%),#0b1020;overflow:hidden}.auth-brand-panel:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent)}.auth-brand-panel>*{position:relative;z-index:1}.auth-copy{max-width:700px}.auth-copy .eyebrow{color:#c7cbea}.auth-copy h1{font-size:clamp(42px,5.1vw,76px);line-height:1.01;letter-spacing:-.055em;margin:18px 0}.auth-copy p{font-size:17px;line-height:1.7;color:#c3c9db;max-width:610px}.auth-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.auth-feature-grid article{padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.055);backdrop-filter:blur(12px)}.auth-feature-grid article>span{font-size:11px;color:#b8c0dc}.auth-feature-grid strong{display:block;margin:12px 0 6px}.auth-feature-grid p{font-size:12px;color:#aeb5c9;margin:0;line-height:1.5}.auth-form-panel{display:grid;place-items:center;padding:38px;background:linear-gradient(145deg,#fff,#f7f8fc)}.auth-card{width:min(420px,100%)}.auth-card-heading{margin-bottom:28px}.mobile-brand-mark{display:none;width:44px;height:44px;border-radius:14px;margin-bottom:22px}.auth-card h2{font-size:34px;margin:0 0 8px;letter-spacing:-.035em}.auth-card p{color:var(--muted)}.auth-card form{display:grid;gap:16px}.auth-card label{display:grid;gap:8px;font-size:13px;font-weight:750;color:#353b4c}.auth-card input,.modal-input,.modal textarea{width:100%;height:48px;border:1px solid var(--border);border-radius:13px;padding:0 14px;background:#fff;outline:0;transition:border var(--transition),box-shadow var(--transition)}.auth-card input:focus,.modal-input:focus,.modal textarea:focus{border-color:#8068eb;box-shadow:0 0 0 4px rgba(124,58,237,.09)}.password-field{position:relative}.password-field input{padding-right:64px}.password-field button{position:absolute;right:8px;top:8px;height:32px;border-radius:9px;background:#f3f4f8;color:#596075;font-size:12px;font-weight:750}.form-error{min-height:18px;color:var(--danger);font-size:12px}.auth-divider{display:flex;align-items:center;gap:12px;margin:10px 0;color:#a0a6b5;font-size:12px}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--border);flex:1}.local-note{text-align:center;font-size:11px!important;line-height:1.5;margin-top:18px}

/* Main app */
.app-view{height:100vh;display:grid;grid-template-columns:76px 330px minmax(420px,1fr) 0;background:var(--workspace);transition:grid-template-columns var(--transition)}.app-view.details-open{grid-template-columns:76px 330px minmax(420px,1fr) 310px}.rail{background:linear-gradient(180deg,#0b1020,#11172a);display:flex;flex-direction:column;align-items:center;padding:16px 10px;z-index:15}.rail-brand{width:48px;height:48px;border-radius:16px;background:transparent;margin-bottom:30px}.rail-brand span{display:grid;place-items:center;width:100%;height:100%;border-radius:15px;background:var(--gradient);color:#fff;font-size:23px;font-weight:900}.rail-nav,.rail-bottom{display:flex;flex-direction:column;gap:10px}.rail-nav{flex:1}.rail-button{width:48px;height:48px;border-radius:15px;background:transparent;color:#8991aa;display:grid;place-items:center;position:relative;transition:background var(--transition),color var(--transition),transform var(--transition)}.rail-button:hover{color:#fff;background:rgba(255,255,255,.07);transform:translateY(-1px)}.rail-button.active{color:#fff;background:var(--gradient);box-shadow:0 12px 24px rgba(80,62,207,.28)}.rail-button b{position:absolute;top:4px;right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#ff4f75;color:#fff;font-size:9px;display:none;place-items:center;border:2px solid #0b1020}.profile-avatar{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#f3b56a,#e95c8f);color:#fff;font-weight:850;position:relative}.profile-avatar i{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--online);right:-1px;bottom:1px;border:2px solid var(--rail)}

.list-panel{background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;min-width:0;position:relative;z-index:8}.list-header{height:86px;padding:20px 20px 12px;display:flex;align-items:center;justify-content:space-between}.list-header h2{margin:3px 0 0;font-size:24px;letter-spacing:-.03em}.icon-button{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#667085;background:transparent;transition:background var(--transition),color var(--transition),transform var(--transition)}.icon-button:hover{background:#f0f2f8;color:#2f3650}.gradient-button,.send-button{background:var(--gradient);color:#fff;box-shadow:0 9px 20px rgba(94,69,219,.22)}.gradient-button:hover,.send-button:hover{color:#fff;transform:translateY(-1px);background:var(--gradient)}#chatControls{padding:0 16px}.search-field{height:42px;border-radius:13px;background:#f4f5f9;display:flex;align-items:center;padding:0 11px;gap:8px;color:#9097a8}.search-field input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text)}.search-field kbd{font-size:10px;background:#fff;border:1px solid #e1e4ec;border-radius:6px;padding:3px 5px;color:#9aa1b0}.filter-tabs{display:flex;gap:5px;margin:13px 0 10px;overflow:auto;scrollbar-width:none}.filter-tabs button{padding:7px 12px;border-radius:10px;background:transparent;color:#747b8e;font-size:12px;font-weight:750;white-space:nowrap}.filter-tabs button.active{background:#ede9fe;color:#6d37d6}.list-content{flex:1;overflow:auto;padding:0 9px 86px}.list-label{padding:14px 11px 8px;display:flex;justify-content:space-between;align-items:center;color:#9aa1b0;font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.list-label button{background:transparent;color:#8174d8;font-size:11px;font-weight:750}.chat-item{width:100%;display:grid;grid-template-columns:46px 1fr auto;gap:11px;align-items:center;padding:10px;border-radius:14px;background:transparent;text-align:left;color:inherit;position:relative;transition:background var(--transition)}.chat-item:hover{background:#f7f8fc}.chat-item.active{background:linear-gradient(90deg,#f1efff,#f6f8ff)}.chat-item.active:before{content:"";position:absolute;left:0;top:13px;bottom:13px;width:3px;border-radius:4px;background:var(--gradient)}.chat-copy{min-width:0}.chat-name-line,.chat-preview-line{display:flex;align-items:center;gap:6px}.chat-name-line strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-preview-line span{font-size:12px;color:#8990a1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item.unread .chat-name-line strong,.chat-item.unread .chat-preview-line span{color:#252b3e;font-weight:800}.chat-item .meta{align-self:stretch;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:7px}.chat-item time{font-size:10px;color:#9ca2b0}.unread-badge{min-width:19px;height:19px;padding:0 6px;border-radius:10px;background:var(--gradient);color:#fff;display:grid;place-items:center;font-size:9px;font-weight:850}.tiny-state{width:13px;height:13px;color:#969dae}.avatar{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;color:#fff;font-weight:850;font-size:13px;position:relative;flex:none;background:linear-gradient(135deg,#7d6bea,#496fe8)}.avatar.c2{background:linear-gradient(135deg,#f59e76,#ef5c8b)}.avatar.c3{background:linear-gradient(135deg,#3ac9a1,#1395c6)}.avatar.c4{background:linear-gradient(135deg,#e4a83d,#db6b3b)}.avatar.c5{background:linear-gradient(135deg,#9364df,#df62b8)}.avatar.lg{width:72px;height:72px;border-radius:23px;font-size:20px}.presence{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--online);right:-2px;bottom:1px;border:3px solid #fff}.empty-list{padding:28px 18px;text-align:center;color:#9299a9;font-size:13px}.mobile-bottom-nav{display:none}

.workspace{position:relative;min-width:0;background:radial-gradient(circle at 50% -20%,#fff 0,#f4f6fb 42%,#eef1f8 100%);overflow:hidden}.chat-workspace{height:100%;display:flex;flex-direction:column}.chat-header{height:72px;background:rgba(255,255,255,.91);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 18px;z-index:5}.chat-user-area{display:flex;align-items:center;gap:11px;min-width:0}.chat-user-copy{display:flex;flex-direction:column;min-width:0}.chat-user-copy strong{font-size:14px}.chat-user-copy span{font-size:11px;color:#7d8496;margin-top:3px}.chat-actions{display:flex;gap:3px}.message-search-bar{height:54px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 18px;gap:10px;color:#9399a8}.message-search-bar input{flex:1;border:0;outline:0}.message-stage{flex:1;overflow:auto;position:relative}.message-list{min-height:100%;padding:22px clamp(18px,4vw,66px) 18px;display:flex;flex-direction:column;justify-content:flex-end}.date-divider{display:flex;align-items:center;justify-content:center;margin:12px 0 18px}.date-divider span{font-size:10px;font-weight:800;color:#8f96a6;background:#e9ecf4;padding:6px 10px;border-radius:10px}.message-row{display:flex;margin:3px 0;gap:7px;align-items:flex-end}.message-row.outgoing{justify-content:flex-end}.message-bubble{position:relative;max-width:min(66%,620px);padding:10px 12px 7px;border-radius:18px 18px 18px 6px;background:#fff;border:1px solid #e7e9f0;box-shadow:0 5px 14px rgba(15,23,42,.035);line-height:1.45;font-size:13px;overflow-wrap:anywhere}.outgoing .message-bubble{border:0;color:#fff;background:var(--gradient);border-radius:18px 18px 6px 18px;box-shadow:0 8px 18px rgba(82,67,207,.14)}.message-bubble p{margin:0;white-space:pre-wrap}.message-meta{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:5px;font-size:9px;color:#9ca2af}.outgoing .message-meta{color:rgba(255,255,255,.75)}.message-meta .checks{width:13px;height:13px}.message-sender{font-size:10px;font-weight:850;color:#7357dc;margin-bottom:4px}.reply-quote{border-left:3px solid #7d65df;background:#f2f0fb;color:#596074;padding:7px 9px;border-radius:7px;margin-bottom:8px;font-size:11px}.outgoing .reply-quote{border-color:rgba(255,255,255,.82);background:rgba(255,255,255,.13);color:#fff}.reply-quote strong{display:block;margin-bottom:2px}.reaction-row{display:flex;gap:4px;margin-top:6px}.reaction-chip{font-size:10px;padding:3px 6px;border-radius:9px;background:#fff;border:1px solid #e5e8ef;color:#4c5365}.message-image{display:block;width:min(330px,100%);max-height:260px;object-fit:cover;border-radius:13px;margin-bottom:5px}.file-card{min-width:min(330px,62vw);display:flex;align-items:center;gap:10px}.file-icon{width:40px;height:44px;border-radius:11px;background:rgba(255,255,255,.18);display:grid;place-items:center}.incoming .file-icon{background:#edf0f8;color:#6155d9}.file-copy{min-width:0;flex:1}.file-copy strong,.file-copy span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-copy span{font-size:10px;opacity:.72;margin-top:3px}.file-download{color:inherit;background:transparent;width:32px;height:32px}.voice-card{display:flex;align-items:center;gap:9px;min-width:230px}.voice-play{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18);color:inherit}.incoming .voice-play{background:#eceafc;color:#6650d8}.waveform{display:flex;align-items:center;gap:2px;flex:1;height:28px}.waveform i{width:2px;border-radius:3px;background:currentColor;opacity:.45}.meet-card{min-width:260px}.meet-card h4{margin:0 0 5px}.meet-card p{font-size:11px;opacity:.78}.meet-card button{margin-top:9px;border-radius:9px;padding:7px 10px;background:rgba(255,255,255,.16);color:inherit;font-weight:750}.incoming .meet-card button{background:#eceafb;color:#604ad0}.message-more{opacity:0;width:26px;height:26px;border-radius:9px;background:#fff;color:#747b8d;display:grid;place-items:center;box-shadow:var(--small-shadow);transition:opacity var(--transition)}.message-row:hover .message-more{opacity:1}.message-more svg{width:15px}.typing-indicator{height:28px;display:flex;align-items:center;gap:7px;padding:0 clamp(18px,4vw,66px);font-size:10px;color:#7f8798}.typing-indicator>span{display:flex;gap:3px}.typing-indicator i{width:4px;height:4px;background:#7462da;border-radius:50%;animation:typing 1s infinite ease-in-out}.typing-indicator i:nth-child(2){animation-delay:.15s}.typing-indicator i:nth-child(3){animation-delay:.3s}@keyframes typing{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-3px);opacity:1}}.composer-area{position:relative;padding:9px 18px 14px}.composer{display:flex;align-items:flex-end;gap:3px;padding:7px;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--small-shadow)}.composer textarea{min-height:34px;max-height:120px;resize:none;flex:1;border:0;outline:0;padding:8px 7px;background:transparent;line-height:1.45}.send-button{width:39px;height:39px;border-radius:13px;display:grid;place-items:center}.reply-bar{margin:0 10px 7px;padding:9px 10px 9px 13px;background:#fff;border:1px solid var(--border);border-left:3px solid #7359dc;border-radius:12px;display:flex;justify-content:space-between;align-items:center}.reply-bar>div{display:flex;flex-direction:column;min-width:0}.reply-bar strong{font-size:11px;color:#684fd2}.reply-bar span{font-size:10px;color:#838a9b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}.edit-bar{border-left-color:#ec8c39}.popover{position:absolute;bottom:74px;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);z-index:20}.emoji-panel{left:18px;width:286px;display:grid;grid-template-columns:repeat(8,1fr);padding:10px}.emoji-panel button{background:transparent;border-radius:8px;padding:6px;font-size:19px}.emoji-panel button:hover{background:#f1f2f7}.attachment-menu{left:60px;width:230px;padding:9px}.attachment-menu button{display:flex;align-items:center;gap:11px;width:100%;padding:8px;border-radius:11px;background:transparent;color:#41485b}.attachment-menu button:hover{background:#f5f6fa}.attachment-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff}.attachment-icon.pink{background:#ec4899}.attachment-icon.blue{background:#3b82f6}.attachment-icon.green{background:#22c55e}.attachment-icon.purple{background:#8b5cf6}.scroll-bottom-button{position:absolute;right:22px;bottom:18px;width:38px;height:38px;border-radius:50%;background:#fff;color:#656c80;box-shadow:var(--small-shadow);display:grid;place-items:center}.empty-workspace{height:100%;display:grid;place-content:center;text-align:center;color:#8d94a5}.empty-logo{width:70px;height:70px;border-radius:23px;margin:0 auto 18px;font-size:32px}.empty-workspace h2{margin:0;color:#3b4254}.empty-workspace p{max-width:340px;line-height:1.5}

.details-panel{background:#fff;border-left:1px solid var(--border);overflow:hidden;min-width:0}.details-panel>header{height:72px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);white-space:nowrap}.details-content{height:calc(100% - 72px);overflow:auto;padding:18px}.detail-profile{text-align:center;padding:12px}.detail-profile .avatar{margin:auto}.detail-profile h3{margin:13px 0 4px}.detail-profile p{margin:0;color:#878e9f;font-size:12px}.detail-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:17px}.detail-actions button{padding:9px 5px;border-radius:11px;background:#f3f4f8;color:#575f73;font-size:10px;font-weight:750}.detail-actions svg{display:block;margin:auto auto 5px;width:18px}.detail-section{border-top:1px solid var(--border);padding:16px 0}.detail-section h4{margin:0 0 13px;font-size:12px}.detail-row{display:flex;gap:10px;margin:12px 0;color:#626a7e}.detail-row>span{width:31px;height:31px;border-radius:9px;background:#f0f2f8;display:grid;place-items:center;flex:none}.detail-row div{display:flex;flex-direction:column;min-width:0}.detail-row strong{font-size:11px}.detail-row small{font-size:10px;color:#9299a8;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.setting-row div{display:flex;flex-direction:column}.setting-row strong{font-size:11px}.setting-row small{color:#959baa;font-size:10px;margin-top:3px}.switch{width:36px;height:20px;border-radius:11px;background:#d8dce6;position:relative;flex:none}.switch:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;left:3px;top:3px;background:#fff;transition:transform var(--transition)}.switch.on{background:var(--gradient)}.switch.on:after{transform:translateX(16px)}.danger-button{width:100%;padding:11px;border-radius:11px;background:#fff1f2;color:#e33c4e;font-weight:800}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.media-grid img,.media-placeholder{aspect-ratio:1;border-radius:9px;object-fit:cover;width:100%;background:linear-gradient(135deg,#dcd8fa,#c8dbff);display:grid;place-items:center;color:#6e5dd4;font-size:10px}

/* Sections and modal */
.section-page{padding:4px 10px 20px}.section-hero{padding:18px 12px 14px}.section-hero h3{margin:10px 0 6px;font-size:19px}.section-hero p{margin:0;color:#8b92a2;font-size:12px;line-height:1.5}.section-hero-icon{width:44px;height:44px;border-radius:14px;background:#ede9fe;color:#684bd4;display:grid;place-items:center}.section-card{width:100%;display:flex;align-items:center;gap:11px;padding:11px 8px;border-radius:13px;background:transparent;text-align:left;color:inherit}.section-card:hover{background:#f5f6fa}.section-card-copy{min-width:0;flex:1}.section-card strong,.section-card small{display:block}.section-card strong{font-size:12px}.section-card small{color:#9198a8;font-size:10px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-state{font-size:10px;color:#777f92}.settings-group{margin:0 6px 12px;border:1px solid var(--border);border-radius:14px;overflow:hidden}.settings-group .section-card{border-radius:0;border-bottom:1px solid var(--border)}.settings-group .section-card:last-child{border-bottom:0}.modal-backdrop{position:fixed;inset:0;background:rgba(8,13,28,.48);display:grid;place-items:center;padding:20px;z-index:100;backdrop-filter:blur(5px)}.modal{position:relative;width:min(470px,100%);max-height:min(700px,92vh);overflow:auto;background:#fff;border-radius:22px;padding:24px;box-shadow:0 28px 90px rgba(10,15,30,.3)}.modal-close{position:absolute;right:14px;top:14px}.modal-heading{text-align:center;padding:6px 20px 18px}.modal-heading .section-hero-icon{margin:auto}.modal-heading h2{font-size:23px;margin:14px 0 6px}.modal-heading p{font-size:12px;color:#878e9f;line-height:1.5}.modal-form{display:grid;gap:13px}.modal-form label{display:grid;gap:7px;font-size:11px;font-weight:750;color:#4d5568}.modal textarea{height:90px;resize:vertical;padding-top:12px}.modal-list{display:grid;gap:5px;max-height:360px;overflow:auto;margin-top:12px}.modal-user{display:flex;align-items:center;gap:10px;padding:9px;border-radius:12px;background:transparent;text-align:left;color:inherit}.modal-user:hover{background:#f5f6fa}.modal-user div:not(.avatar){display:flex;flex-direction:column;min-width:0}.modal-user strong{font-size:12px}.modal-user small{font-size:10px;color:#9299a9;margin-top:3px}.checkbox-user{position:relative}.checkbox-user input{position:absolute;right:13px;width:17px;height:17px;accent-color:#7456da}.call-modal{text-align:center;padding:18px 5px}.call-rings{width:122px;height:122px;border-radius:42px;margin:auto;display:grid;place-items:center;background:radial-gradient(circle,#fff 35%,#e8e4fd 36%,#e8e4fd 49%,#f4f2ff 50%)}.call-modal h2{margin:17px 0 6px}.call-modal p{color:#8c93a3;font-size:12px}.call-timer{font-size:12px;font-weight:750;color:#6d59d5;margin-top:7px}.call-controls{display:flex;justify-content:center;gap:12px;margin-top:28px}.call-controls button{width:48px;height:48px;border-radius:16px;background:#f0f2f7;color:#586074;display:grid;place-items:center}.call-controls button.active{background:#2d3448;color:#fff}.call-controls button.end{background:#ef4d5e;color:#fff}.context-menu{position:fixed;width:190px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:7px;box-shadow:var(--shadow);z-index:120}.context-menu button{width:100%;display:flex;align-items:center;gap:9px;padding:9px;border-radius:9px;background:transparent;color:#4f5669;font-size:11px;text-align:left}.context-menu button:hover{background:#f3f4f8}.context-menu button.danger{color:#e34253}.context-menu svg{width:16px}.toast-stack{position:fixed;right:18px;bottom:18px;display:grid;gap:9px;z-index:200}.toast{width:min(340px,calc(100vw - 36px));background:#11172a;color:#fff;border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);display:flex;gap:10px;animation:toastIn .22s ease}.toast svg{color:#9a8cff}.toast div{display:flex;flex-direction:column}.toast strong{font-size:12px}.toast span{font-size:10px;color:#b7bfd3;margin-top:3px;line-height:1.4}@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

body.compact .chat-item{padding-top:7px;padding-bottom:7px}body.compact .avatar{width:41px;height:41px;border-radius:13px}body.dark{--workspace:#171b27;--panel:#222737;--panel-2:#292f40;--text:#f3f4f8;--muted:#b6bdcc;--soft:#949cad;--border:#343a4b;background:#171b27}body.dark .list-panel,body.dark .chat-header,body.dark .composer,body.dark .details-panel,body.dark .modal,body.dark .message-search-bar,body.dark .reply-bar,body.dark .popover,body.dark .context-menu{background:#222737}body.dark .workspace{background:radial-gradient(circle at 50% -20%,#2a3042,#181c28 58%,#151923)}body.dark .incoming .message-bubble{background:#282e3f;border-color:#343b4e}body.dark .search-field,body.dark .section-card:hover,body.dark .chat-item:hover,body.dark .icon-button:hover,body.dark .detail-actions button{background:#2b3142}body.dark .chat-item.active{background:#302c49}body.dark input,body.dark textarea{color:#f1f2f6}body.dark .modal input,body.dark .modal textarea{background:#282e3d;border-color:#3a4153;color:#fff}body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{animation:none!important;transition:none!important}

@media(max-width:1180px){.app-view,.app-view.details-open{grid-template-columns:68px 310px minmax(390px,1fr)}.details-panel{position:absolute;right:0;top:0;bottom:0;width:310px;z-index:30;transform:translateX(102%);transition:transform var(--transition);box-shadow:-18px 0 50px rgba(15,23,42,.12)}.app-view.details-open .details-panel{transform:none}.rail{padding-left:7px;padding-right:7px}.rail-button{width:46px}}
@media(max-width:820px){.app-view,.app-view.details-open{grid-template-columns:64px 285px 1fr}.message-bubble{max-width:78%}.chat-actions .icon-button:nth-child(2){display:none}}
@media(max-width:700px){body{overflow:hidden}.auth-view{display:block;overflow:auto}.auth-brand-panel{display:none}.auth-form-panel{min-height:100vh;padding:24px}.mobile-brand-mark{display:grid}.app-view,.app-view.details-open{display:block;height:100vh}.rail{display:none}.list-panel{position:absolute;inset:0;z-index:10}.list-header{height:76px}.list-content{padding-bottom:82px}.mobile-bottom-nav{display:flex;position:absolute;left:0;right:0;bottom:0;height:68px;background:rgba(255,255,255,.96);border-top:1px solid var(--border);backdrop-filter:blur(14px);justify-content:space-around;padding:7px 10px;z-index:20}.mobile-bottom-nav button{background:transparent;color:#8a91a1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9px;min-width:58px}.mobile-bottom-nav button.active{color:#6a4fd2}.mobile-bottom-nav svg{width:19px}.workspace{position:absolute;inset:0;z-index:25;transform:translateX(101%);transition:transform var(--transition)}.workspace.mobile-open{transform:none}.mobile-only{display:grid}.chat-header{height:68px;padding:0 10px}.chat-actions{gap:0}.chat-actions .icon-button:nth-child(1),.chat-actions .icon-button:nth-child(4){display:none}.message-list{padding:18px 12px}.message-bubble{max-width:84%}.composer-area{padding:8px}.composer .icon-button{width:34px}.composer #voiceRecordButton{display:none}.emoji-panel{left:8px;right:8px;width:auto}.attachment-menu{left:45px}.details-panel{position:fixed;width:100%;z-index:50}.toast-stack{right:10px;bottom:78px}.modal{padding:20px}.auth-card h2{font-size:30px}}
@media(max-width:430px){.chat-actions #voiceCallButton{display:none}.message-bubble{max-width:90%}.auth-form-panel{padding:20px}.filter-tabs button{padding-left:10px;padding-right:10px}}

/* ==========================================================================\n   Responsive hardening layer\n   Keeps every panel inside the visual viewport at any supported width/height.\n   ========================================================================== */

:root{
  --app-height:100dvh;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
}

html{
  width:100%;
  height:100%;
  overflow:hidden;
  -webkit-text-size-adjust:100%;
}

body{
  width:100%;
  max-width:100vw;
  min-width:0;
  height:100%;
  min-height:100%;
  overflow:hidden;
  overscroll-behavior:none;
}

button,input,textarea,select{max-width:100%}
img,video,canvas,svg{max-width:100%}

.auth-view,
.app-view{
  width:100%;
  max-width:100vw;
  height:var(--app-height,100vh);
  min-height:0;
  overflow:hidden;
}

.app-view{
  grid-template-rows:minmax(0,1fr);
  grid-template-columns:clamp(68px,5vw,76px) clamp(280px,24vw,350px) minmax(0,1fr) 0;
}

.app-view.details-open{
  grid-template-columns:clamp(68px,5vw,76px) clamp(280px,24vw,350px) minmax(0,1fr) clamp(285px,22vw,340px);
}

.rail,
.list-panel,
.workspace,
.chat-workspace,
.details-panel{
  min-width:0;
  min-height:0;
  max-height:100%;
}

.rail{
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-width:none;
}
.rail::-webkit-scrollbar{display:none}

.list-panel{
  height:100%;
  overflow:hidden;
}

.list-header,
#chatControls,
.mobile-bottom-nav{
  flex:0 0 auto;
}

.list-header>div,
.chat-user-area,
.chat-user-copy,
.chat-copy,
.section-card-copy,
.file-copy,
.reply-bar>div{
  min-width:0;
}

.list-header h2,
.chat-user-copy strong,
.chat-user-copy span,
.detail-profile h3{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.list-content{
  min-height:0;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

.workspace{
  height:100%;
  isolation:isolate;
}

.chat-workspace{
  min-height:0;
  overflow:hidden;
}

.chat-header,
.message-search-bar,
.typing-indicator,
.composer-area{
  flex:0 0 auto;
}

.chat-header{
  min-width:0;
}

.chat-user-area{
  flex:1 1 auto;
  overflow:hidden;
}

.chat-user-copy{
  max-width:min(42vw,360px);
}

.chat-actions{
  flex:0 0 auto;
  min-width:0;
}

.message-stage{
  min-width:0;
  min-height:0;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

.message-list{
  min-width:0;
  min-height:min-content;
}

.message-row{
  min-width:0;
}

.message-bubble{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.file-card,
.voice-card,
.meet-card{
  width:min(100%,330px);
  min-width:0;
}

.file-card{max-width:72vw}
.voice-card{max-width:72vw}
.meet-card{max-width:72vw}

.composer-area{
  min-width:0;
}

.composer{
  min-width:0;
}

.composer textarea{
  width:0;
  min-width:0;
}

.popover,
.context-menu{
  max-width:calc(100vw - 16px);
  max-height:min(420px,calc(var(--app-height,100vh) - 90px));
  overflow:auto;
  overscroll-behavior:contain;
}

.modal-backdrop{
  width:100vw;
  height:var(--app-height,100vh);
  overflow:hidden;
  padding:
    max(12px,var(--safe-top))
    max(12px,var(--safe-right))
    max(12px,var(--safe-bottom))
    max(12px,var(--safe-left));
}

.modal{
  width:min(470px,100%);
  max-width:100%;
  max-height:calc(var(--app-height,100vh) - max(24px,var(--safe-top)) - max(24px,var(--safe-bottom)));
  overscroll-behavior:contain;
}

.details-panel{
  height:100%;
}

.details-content{
  min-height:0;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

.details-scrim{
  display:none;
  position:absolute;
  inset:0;
  z-index:24;
  padding:0;
  background:rgba(8,13,28,.24);
  opacity:0;
  pointer-events:none;
  transition:opacity var(--transition);
  backdrop-filter:blur(1.5px);
}

/* Details becomes a safe overlay before the main workspace gets cramped. */
@media (max-width:1280px){
  .app-view,
  .app-view.details-open{
    grid-template-columns:68px clamp(280px,29vw,330px) minmax(0,1fr);
  }

  .details-panel{
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    width:clamp(290px,34vw,350px);
    max-width:calc(100vw - 68px);
    z-index:30;
    transform:translate3d(102%,0,0);
    visibility:hidden;
    transition:transform var(--transition),visibility 0s linear var(--transition);
    box-shadow:-18px 0 50px rgba(15,23,42,.16);
  }

  .app-view.details-open .details-panel{
    transform:translate3d(0,0,0);
    visibility:visible;
    transition-delay:0s;
  }

  .details-scrim{display:block}
  .app-view.details-open .details-scrim{
    opacity:1;
    pointer-events:auto;
  }
}

@media (max-width:1080px){
  .app-view,
  .app-view.details-open{
    grid-template-columns:64px clamp(270px,31vw,310px) minmax(0,1fr);
  }

  .rail{padding-inline:7px}
  .rail-button{width:46px;height:46px}
  .chat-header{padding-inline:12px}
  .chat-actions{gap:0}
  .chat-actions #searchMessagesButton{display:none}
  .message-list{padding-inline:clamp(14px,3vw,32px)}
  .typing-indicator{padding-inline:clamp(14px,3vw,32px)}
}

/* Tablet and mobile: one full-width page at a time. */
@media (max-width:900px){
  body{touch-action:manipulation}

  .auth-view{
    display:block;
    overflow:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:linear-gradient(145deg,#fff,#f7f8fc);
  }

  .auth-brand-panel{display:none}

  .auth-form-panel{
    width:100%;
    min-height:var(--app-height,100vh);
    height:auto;
    padding:
      max(24px,var(--safe-top))
      max(20px,var(--safe-right))
      max(24px,var(--safe-bottom))
      max(20px,var(--safe-left));
  }

  .auth-card{width:min(440px,100%)}
  .mobile-brand-mark{display:grid}

  .app-view,
  .app-view.details-open{
    display:block;
    position:relative;
    height:var(--app-height,100vh);
    overflow:hidden;
  }

  .rail{display:none}

  .list-panel{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:10;
  }

  .list-header{
    height:auto;
    min-height:76px;
    padding:
      calc(14px + var(--safe-top))
      max(16px,var(--safe-right))
      12px
      max(16px,var(--safe-left));
  }

  #chatControls{
    padding-inline:max(14px,var(--safe-left));
  }

  .list-content{
    padding-bottom:calc(78px + var(--safe-bottom));
  }

  .mobile-bottom-nav{
    display:flex;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:calc(68px + var(--safe-bottom));
    padding:
      7px max(8px,var(--safe-right))
      calc(7px + var(--safe-bottom))
      max(8px,var(--safe-left));
    background:rgba(255,255,255,.96);
    border-top:1px solid var(--border);
    backdrop-filter:blur(14px);
    justify-content:space-around;
    z-index:20;
  }

  .mobile-bottom-nav button{
    min-width:0;
    flex:1 1 25%;
    background:transparent;
    color:#8a91a1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    font-size:9px;
  }

  .mobile-bottom-nav button.active{color:#6a4fd2}
  .mobile-bottom-nav svg{width:19px}

  .workspace{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:25;
    transform:translate3d(100%,0,0);
    visibility:hidden;
    pointer-events:none;
    transition:transform var(--transition),visibility 0s linear var(--transition);
  }

  .workspace.mobile-open{
    transform:translate3d(0,0,0);
    visibility:visible;
    pointer-events:auto;
    transition-delay:0s;
  }

  .mobile-only{display:grid}

  .chat-header{
    height:auto;
    min-height:68px;
    padding:
      var(--safe-top)
      max(8px,var(--safe-right))
      0
      max(8px,var(--safe-left));
  }

  .chat-user-copy{
    max-width:none;
    flex:1 1 auto;
  }

  .chat-actions .icon-button{width:36px;height:36px}
  .chat-actions #searchMessagesButton{display:none}

  .message-search-bar{
    height:50px;
    padding-inline:max(12px,var(--safe-left));
  }

  .message-list{
    padding:16px max(10px,var(--safe-right)) 14px max(10px,var(--safe-left));
  }

  .message-bubble{max-width:min(86%,560px)}

  .composer-area{
    padding:
      8px max(8px,var(--safe-right))
      calc(8px + var(--safe-bottom))
      max(8px,var(--safe-left));
    background:linear-gradient(to top,var(--workspace) 72%,transparent);
  }

  .composer{padding:6px;border-radius:17px}
  .composer .icon-button{width:34px;height:36px;flex:0 0 34px}
  .composer #voiceRecordButton{display:none}
  .send-button{width:38px;height:38px;flex:0 0 38px}

  .emoji-panel{
    left:max(8px,var(--safe-left));
    right:max(8px,var(--safe-right));
    width:auto;
  }

  .attachment-menu{
    left:max(8px,var(--safe-left));
    right:max(8px,var(--safe-right));
    width:auto;
  }

  .details-scrim{display:none!important}

  .details-panel{
    position:fixed;
    inset:0;
    width:100%;
    max-width:none;
    height:var(--app-height,100vh);
    z-index:50;
    transform:translate3d(100%,0,0);
    visibility:hidden;
    transition:transform var(--transition),visibility 0s linear var(--transition);
    box-shadow:none;
  }

  .app-view.details-open .details-panel{
    transform:translate3d(0,0,0);
    visibility:visible;
    transition-delay:0s;
  }

  .details-panel>header{
    height:auto;
    min-height:68px;
    padding:
      var(--safe-top)
      max(12px,var(--safe-right))
      0
      max(16px,var(--safe-left));
  }

  .details-content{
    height:calc(100% - 68px - var(--safe-top));
    padding:18px max(16px,var(--safe-right)) calc(18px + var(--safe-bottom)) max(16px,var(--safe-left));
  }

  .toast-stack{
    right:max(10px,var(--safe-right));
    bottom:calc(78px + var(--safe-bottom));
  }

  .modal{padding:20px}
}

@media (max-width:540px){
  .list-header h2{font-size:22px}
  .list-header .eyebrow{font-size:9px}
  #chatControls{padding-inline:12px}
  .filter-tabs{padding-bottom:2px}
  .chat-item{grid-template-columns:44px minmax(0,1fr) auto;padding:9px 8px}
  .avatar{width:44px;height:44px;border-radius:14px}

  .chat-header{padding-inline:6px}
  .chat-header .avatar{width:40px;height:40px;border-radius:13px}
  .chat-user-area{gap:8px}
  .chat-user-copy strong{font-size:13px}
  .chat-user-copy span{font-size:10px}
  .chat-actions #voiceCallButton{display:none}
  .chat-actions .icon-button{width:34px;height:34px}

  .message-row{gap:4px}
  .message-bubble{max-width:90%;font-size:12.5px}
  .message-more{display:none}
  .file-card,.voice-card,.meet-card{max-width:78vw}
  .message-image{max-height:220px}

  .composer-area{padding-inline:6px}
  .composer{gap:1px}
  .composer .icon-button{width:32px;flex-basis:32px}
  .composer textarea{padding-inline:5px;font-size:13px}

  .reply-bar{margin-inline:4px}
  .reply-bar span{max-width:72vw}

  .auth-form-panel{align-items:start;padding-top:max(28px,var(--safe-top))}
  .auth-card h2{font-size:30px}
  .modal-backdrop{place-items:end center;padding:0}
  .modal{
    width:100%;
    max-height:calc(var(--app-height,100vh) - max(10px,var(--safe-top)));
    border-radius:22px 22px 0 0;
    padding:20px 18px calc(20px + var(--safe-bottom));
  }
}

@media (max-width:380px){
  .search-field kbd{display:none}
  .filter-tabs button{padding-inline:9px}
  .chat-actions #videoCallButton{display:none}
  .message-bubble{max-width:94%;padding-inline:10px}
  .composer #emojiButton{display:none}
  .file-card,.voice-card,.meet-card{max-width:84vw}
  .detail-actions{gap:5px}
}

/* Short landscape windows and browser zoom need denser vertical chrome. */
@media (max-height:620px){
  .rail{padding-block:8px}
  .rail-brand{margin-bottom:12px}
  .rail-nav,.rail-bottom{gap:5px}
  .rail-button{height:42px}
  .list-header{height:68px;padding-top:12px}
  .chat-header{min-height:60px;height:60px}
  .message-list{padding-top:12px;padding-bottom:10px}
  .composer-area{padding-top:5px;padding-bottom:7px}
  .details-panel>header{min-height:60px;height:60px}
  .details-content{height:calc(100% - 60px)}
}

@media (max-width:900px) and (max-height:620px){
  .list-header{min-height:64px;padding-top:calc(8px + var(--safe-top));padding-bottom:7px}
  .mobile-bottom-nav{height:calc(58px + var(--safe-bottom));padding-top:4px}
  .mobile-bottom-nav small{display:none}
  .list-content{padding-bottom:calc(64px + var(--safe-bottom))}
  .chat-header{min-height:58px;height:auto}
  .composer-area{padding-top:4px}
  .toast-stack{bottom:calc(64px + var(--safe-bottom))}
}

body.dark .mobile-bottom-nav{background:rgba(34,39,55,.96)}
body.dark .composer-area{background:linear-gradient(to top,var(--workspace) 72%,transparent)}
body.dark .details-scrim{background:rgba(0,0,0,.34)}

/* Mobile controls remain functional even where legacy compact rules hid them. */
@media (max-width:900px){
  .workspace{
    transform:none!important;
    clip-path:inset(0 0 0 100%);
    transition:clip-path var(--transition),visibility 0s linear var(--transition);
  }
  .workspace.mobile-open{
    transform:none!important;
    clip-path:inset(0);
  }
  .details-panel{
    transform:none!important;
    clip-path:inset(0 0 0 100%);
    transition:clip-path var(--transition),visibility 0s linear var(--transition);
  }
  .app-view.details-open .details-panel{
    transform:none!important;
    clip-path:inset(0);
  }
  .chat-actions #detailsButton,
  .chat-actions #videoCallButton,
  .chat-actions #chatMenuButton{display:grid}
}

@media (max-width:540px){
  .message-more{
    display:grid;
    opacity:.78;
    width:24px;
    height:24px;
    flex:0 0 24px;
  }
}

@media (min-width:1281px){
  .app-view:not(.details-open) .details-panel{border-left-color:transparent}
}

/* Firebase authentication and live-data additions */
.auth-method-tabs{display:grid;grid-template-columns:1fr 1fr;padding:4px;margin:0 0 18px;border-radius:14px;background:#f0f2f7}.auth-method-tabs button{height:38px;border-radius:10px;background:transparent;color:#7b8292;font-size:12px;font-weight:800;transition:all var(--transition)}.auth-method-tabs button.active{background:#fff;color:#5e46ce;box-shadow:0 4px 14px rgba(18,25,45,.08)}
.auth-card label small{font-weight:500;color:#9299a9;line-height:1.45}.username-field{position:relative;display:flex;align-items:center}.username-field>b{position:absolute;left:14px;color:#7b61df;z-index:2}.username-field input{padding-left:32px!important}.inline-link{justify-self:end;margin-top:-8px;background:transparent;color:#7056d8;font-size:11px;font-weight:800}.google-button{height:48px;border:1px solid var(--border);border-radius:14px;background:#fff;color:#252b3d;font-weight:800;display:flex;align-items:center;justify-content:center;gap:10px}.google-button:hover{background:#f8f9fc}.google-g{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#4285f4;font-size:17px;font-weight:900;background:#fff;border:1px solid #e7e9f0}.recaptcha-container{min-height:0;display:flex;justify-content:center;overflow:hidden}.recaptcha-container:empty{display:none}
button:disabled{cursor:not-allowed;opacity:.62;transform:none!important}.loading-state{height:100%;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--muted);font-size:12px}.loading-state span{width:28px;height:28px;border:3px solid #e3e5ef;border-top-color:#7056d8;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.section-empty{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px}.section-empty h3{margin:14px 0 7px}.section-empty p{max-width:280px;margin:0 0 18px;color:var(--muted);font-size:12px;line-height:1.6}.empty-workspace .primary-button{width:auto;padding:0 20px;margin-top:10px}
.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.message-image-button{display:block;background:transparent;padding:0;width:100%;border-radius:14px;overflow:hidden}.message-image-button img{width:100%;max-height:360px;object-fit:cover;display:block}.deleted-copy{font-style:italic;color:var(--muted)!important}.contact-message-card{width:min(310px,100%);display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:rgba(255,255,255,.17);color:inherit;text-align:left}.incoming .contact-message-card{background:#f2f3f7}.contact-message-card>div:nth-child(2){display:flex;flex-direction:column;min-width:0;flex:1}.contact-message-card strong,.contact-message-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-message-card small{opacity:.72;margin-top:3px}.contact-message-card svg{width:18px;flex:0 0 auto}
.upload-bar{display:grid;grid-template-columns:auto minmax(80px,1fr);align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel);font-size:10px;font-weight:750;color:var(--muted)}.upload-bar progress{width:100%;height:7px;accent-color:#7056d8}.icon-button.recording{background:#ef4d5e!important;color:#fff!important;animation:recordPulse 1.1s infinite}@keyframes recordPulse{50%{box-shadow:0 0 0 8px rgba(239,77,94,.12)}}
.reaction-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.reaction-picker button{height:54px;border-radius:14px;background:#f4f5f9;font-size:25px;transition:transform var(--transition),background var(--transition)}.reaction-picker button:hover{transform:translateY(-2px);background:#ece9ff}.incoming-call-actions{display:flex;justify-content:center;gap:18px;margin-top:28px}.incoming-call-actions button{min-width:112px;height:48px;border-radius:15px;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px}.call-decline{background:#ef4d5e}.call-accept{background:#25b36a}.real-call-modal{padding-top:0}.call-video-stage{position:relative;width:100%;height:min(44vh,360px);margin-bottom:18px;border-radius:22px;overflow:hidden;background:#101522}.call-video-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#101522}.call-video-stage #localVideo{inset:auto 12px 12px auto;width:112px;height:82px;border-radius:14px;border:2px solid rgba(255,255,255,.8);z-index:3}.call-video-stage .call-placeholder{position:absolute;inset:0;display:grid;place-items:center;z-index:1}.call-video-stage.audio-only video{display:none}.call-video-stage:not(.audio-only) .call-placeholder{opacity:.16}.call-controls button:not(.active){opacity:.5;background:#e2e4ea;color:#606778}
body.dark .auth-method-tabs{background:#292f40}body.dark .auth-method-tabs button.active,body.dark .google-button{background:#222737;color:#fff;border-color:#343a4b}body.dark .incoming .contact-message-card,body.dark .reaction-picker button{background:#2c3243}body.dark .upload-bar{background:#222737}
@media(max-width:700px){.auth-card{padding-bottom:max(30px,var(--safe-bottom))}.auth-method-tabs{margin-bottom:14px}.recaptcha-container{transform-origin:top center}.composer #voiceRecordButton{display:grid}.call-video-stage{height:36vh}.call-video-stage #localVideo{width:86px;height:64px}.incoming-call-actions button{min-width:104px}}
@media(max-width:360px){.recaptcha-container{transform:scale(.86);margin-bottom:-11px}.auth-form-panel{padding-left:14px;padding-right:14px}.incoming-call-actions{gap:10px}.incoming-call-actions button{min-width:96px}}

/* Guest/local mode */
.guest-button{min-height:56px;border:1px solid #dedaf8;border-radius:15px;background:linear-gradient(135deg,#f7f4ff,#eef4ff);color:#272c3d;font-weight:800;display:flex;align-items:center;justify-content:center;gap:11px;padding:9px 14px;text-align:left;transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition)}
.guest-button:hover{transform:translateY(-1px);border-color:#a998ef;box-shadow:0 10px 24px rgba(91,69,225,.12)}
.guest-button>span:last-child{display:flex;flex-direction:column;gap:2px}.guest-button small{font-size:10px;color:#7e8597;font-weight:600}.guest-icon{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;background:var(--gradient);color:#fff;font-weight:900;box-shadow:0 7px 18px rgba(91,69,225,.22)}
.section-title-row{display:flex;align-items:center;gap:9px;min-width:0}.section-title-row h2{min-width:0}.mode-badge{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#eeeafe;color:#674fd1;font-size:9px;font-weight:850;letter-spacing:.03em;text-transform:uppercase}
body.guest-mode .profile-avatar i{background:#f59e0b}.guest-mode-card{border:1px solid #e5defe!important;background:linear-gradient(135deg,#fbf9ff,#f3f7ff)!important}.guest-warning{padding:12px 13px;border-radius:13px;background:#fff8e8;border:1px solid #f8dda1;color:#795a17;font-size:11px;line-height:1.55}.local-contact-note{font-size:10px;color:var(--muted);line-height:1.5;margin:0}.upgrade-button{background:var(--gradient)!important;color:#fff!important}.guest-contact-chip{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:12px;background:var(--panel);cursor:pointer}.guest-contact-chip input{width:16px;height:16px;accent-color:#7456da}.guest-contact-grid{display:grid;gap:7px;max-height:250px;overflow:auto}.guest-local-label{font-size:9px;color:#ad7410;background:#fff1c9;border-radius:999px;padding:3px 6px;font-weight:800}
body.dark .guest-button{background:linear-gradient(135deg,#2b2942,#263149);border-color:#494061;color:#fff}body.dark .guest-button small{color:#aeb5c8}body.dark .mode-badge{background:#393253;color:#c7bafc}body.dark .guest-mode-card{background:linear-gradient(135deg,#29273e,#252d40)!important;border-color:#47405f!important}body.dark .guest-warning{background:#3a321f;border-color:#5a4b27;color:#f3d38b}
@media(max-width:430px){.mode-badge{display:none!important}.guest-button{min-height:52px}}

/* Secure build: paginated message history */
.message-history-control{display:flex;justify-content:center;padding:8px 0 16px}
.message-history-control button{min-height:34px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--muted);font-size:10px;font-weight:800;transition:background var(--transition),border-color var(--transition),color var(--transition)}
.message-history-control button:hover:not(:disabled){background:#f1efff;border-color:#c9bdf4;color:#654bcf}
body.dark .message-history-control button:hover:not(:disabled){background:#343047;border-color:#5b4f85;color:#d4c9ff}

/* Connected identity, discovery and notification controls */
.privacy-note{display:block;margin:-4px 0 4px;color:var(--muted);font-size:10px;line-height:1.5}
.notification-permission-card{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid #ddd8fa;border-radius:15px;background:linear-gradient(135deg,#f8f6ff,#f0f6ff);margin-bottom:18px}
.notification-permission-card strong{font-size:12px}.notification-permission-card small{font-size:10px;line-height:1.55;color:var(--muted)}
.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}.modal-actions .primary-button,.modal-actions .text-button{width:auto;padding:0 17px}
.account-security-list{display:grid;gap:8px;margin-bottom:14px}.account-security-list .section-card{width:100%}
.compact-security-options{padding:4px 0 0}.compact-security-options .setting-row{padding:12px 4px;border-top:1px solid var(--border)}
body.dark .notification-permission-card{background:linear-gradient(135deg,#2d2945,#243149);border-color:#4d4569}
@media(max-width:540px){.modal-actions{display:grid;grid-template-columns:1fr 1fr}.modal-actions .primary-button,.modal-actions .text-button{width:100%}.account-security-list .section-card{padding:11px}}

/* Auth accessibility: keep every sign-in/sign-up option reachable on short screens. */
.auth-form-panel{
  height:100vh;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:#7c63e7 #edf0f6;
  align-items:flex-start;
  justify-items:center;
}
.auth-form-panel .auth-card{
  margin-block:auto;
  padding-block:8px;
}
.auth-form-panel::-webkit-scrollbar{width:10px}
.auth-form-panel::-webkit-scrollbar-track{
  background:#edf0f6;
  border-left:1px solid #e3e6ee;
}
.auth-form-panel::-webkit-scrollbar-thumb{
  min-height:48px;
  border:2px solid #edf0f6;
  border-radius:999px;
  background:linear-gradient(180deg,#8b5cf6,#3567ed);
}
.auth-form-panel::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#7447e8,#2558df);
}
.auth-form-panel::-webkit-scrollbar-corner{background:#edf0f6}

body.dark .auth-form-panel{
  scrollbar-color:#8b78ed #202535;
}
body.dark .auth-form-panel::-webkit-scrollbar-track{
  background:#202535;
  border-left-color:#303648;
}
body.dark .auth-form-panel::-webkit-scrollbar-thumb{
  border-color:#202535;
}
body.dark .auth-form-panel::-webkit-scrollbar-corner{background:#202535}

@media (max-width:900px){
  .auth-form-panel{
    height:auto;
    min-height:var(--app-height,100vh);
    overflow:visible;
    scrollbar-gutter:auto;
  }
  .auth-form-panel .auth-card{
    margin-block:auto;
    padding-block:0;
  }
}

@media (max-height:760px) and (min-width:901px){
  .auth-form-panel{padding-top:24px;padding-bottom:24px}
  .auth-form-panel .auth-card{margin-block:0}
  .auth-card-heading{margin-bottom:20px}
}

/* Akaora Messenger unified branding */
.brand-logo{width:58px;height:58px;border-radius:17px;object-fit:cover;box-shadow:0 12px 30px rgba(8,18,48,.18)}
.mobile-brand-logo{width:58px;height:58px;border-radius:17px;object-fit:cover;margin:0 auto 14px;box-shadow:0 10px 24px rgba(8,18,48,.16)}
.guest-brand-logo{width:34px;height:34px;border-radius:10px;object-fit:cover;flex:none}
.rail-brand img{width:38px;height:38px;border-radius:12px;object-fit:cover;display:block}
.call-device-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.call-device-row select{width:100%;min-width:0;padding:9px 10px;border:1px solid #e1e5ee;border-radius:11px;background:#fff;color:#394155;font-size:10px}
.call-quality{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:5px 9px;border-radius:999px;background:#eef2ff;color:#5060b8;font-size:10px;font-weight:800}
.call-quality i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.13)}
.call-quality.poor i{background:#ef4444}.call-quality.fair i{background:#f59e0b}
.call-extra-controls{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.call-extra-controls button{height:34px;padding:0 11px;border-radius:10px;background:#eef1f7;color:#4f586d;font-size:10px;font-weight:750;display:flex;align-items:center;gap:6px}
.call-extra-controls button.active{background:#e4e9ff;color:#3454d1}
.call-video-stage.screen-sharing #localVideo{border-color:#33c98f}
@media(max-width:700px){.call-device-row{grid-template-columns:1fr}.call-extra-controls button{padding:0 9px}}
