/* ================================================================
   BuzzChat Design System
   Mobile-first, accessible, animated, framework-free.
   ================================================================ */
:root {
  color-scheme: light;
  --primary: #0088cc;
  --primary-dark: #006b9f;
  --primary-deep: #005f9f;
  --primary-light: #33aaee;
  --primary-lighter: #e3f4fc;
  --secondary: #ffffff;
  --background: #f0f2f5;
  --surface: #ffffff;
  --surface-raised: #ffffff;
  --surface-hover: #f6f8f9;
  --chat-bg: #e5ddd5;
  --sent-bubble: #0088cc;
  --sent-text: #ffffff;
  --received-bubble: #ffffff;
  --received-text: #17212b;
  --online: #25d366;
  --danger: #ff3b30;
  --warning: #ff9500;
  --success: #24a85a;
  --info: #5856d6;
  --text-primary: #17212b;
  --text-secondary: #667781;
  --text-muted: #8b9ba5;
  --link: #0088cc;
  --divider: #e5eaed;
  --input-bg: #f0f2f5;
  --badge-bg: #0088cc;
  --badge-text: #ffffff;
  --header-bg: #0088cc;
  --overlay: rgba(9, 20, 28, .48);
  --shadow-color: rgba(0, 0, 0, .10);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);
  --shadow-md: 0 3px 12px rgba(16, 31, 40, .10);
  --shadow-lg: 0 8px 24px rgba(16, 31, 40, .16);
  --shadow-xl: 0 18px 50px rgba(16, 31, 40, .22);
  --shadow-fab: 0 7px 22px rgba(0, 136, 204, .38);
  --font-family: "Segoe UI", Roboto, "Helvetica Neue", -apple-system, BlinkMacSystemFont, Arial, sans-serif;
  --message-font-size: 16px;
  --bubble-radius: 13px;
  --header-height: 56px;
  --status-height: 0px;
  --bottom-nav-height: 66px;
  --tap-target: 44px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-top: env(safe-area-inset-top, 0px);
  --transition-fast: .15s ease;
  --transition-normal: .28s cubic-bezier(.2, .8, .2, 1);
  --transition-spring: .42s cubic-bezier(.2, 1.4, .4, 1);
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --primary: #0088cc;
  --primary-dark: #0074ad;
  --primary-light: #39a9df;
  --primary-lighter: #143b4c;
  --background: #111b21;
  --surface: #1f2c34;
  --surface-raised: #26343c;
  --surface-hover: #2a3942;
  --chat-bg: #0b141a;
  --sent-bubble: #005c4b;
  --sent-text: #e9edef;
  --received-bubble: #202c33;
  --received-text: #e9edef;
  --text-primary: #e9edef;
  --text-secondary: #a2afb7;
  --text-muted: #71818b;
  --divider: #2a3942;
  --input-bg: #2a3942;
  --header-bg: #202c33;
  --overlay: rgba(0, 0, 0, .68);
  --shadow-color: rgba(0, 0, 0, .34);
  --shadow-md: 0 4px 14px rgba(0, 0, 0, .3);
  --shadow-lg: 0 10px 28px rgba(0, 0, 0, .4);
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { width: 100%; min-height: 100%; margin: 0; overflow: hidden; }
html { background: #dfe8ed; }
body {
  min-height: 100vh;
  min-height: 100dvh;
  color: var(--text-primary);
  background: linear-gradient(135deg, #dbe5ea, #edf2f5);
  font-family: var(--font-family);
  font-size: 16px;
  line-height: 1.4;
  overscroll-behavior: none;
}
button, input, select, textarea { font: inherit; color: inherit; }
button { border: 0; cursor: pointer; }
a { color: var(--link); text-decoration: none; }
img { max-width: 100%; display: block; }
textarea { resize: none; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--primary) 35%, transparent);
  outline-offset: 2px;
}
::selection { background: rgba(0, 136, 204, .25); }
::-webkit-scrollbar { width: 0; height: 0; }
* { scrollbar-width: none; }

.app-shell {
  position: relative;
  width: 100%;
  max-width: 480px;
  height: 100vh;
  height: 100dvh;
  margin: 0 auto;
  overflow: hidden;
  background: var(--background);
  isolation: isolate;
  transition: background .3s ease, color .3s ease;
}
@media (min-width: 600px) {
  .app-shell { box-shadow: 0 0 0 1px rgba(0,0,0,.06), 0 24px 70px rgba(38,60,72,.25); }
}
.noscript { max-width: 480px; margin: 30px auto; padding: 20px; background: white; border-radius: 16px; text-align: center; }
.boot-screen {
  height: 100%; display: grid; place-content: center; gap: 14px; text-align: center;
  color: white; font-size: 30px; letter-spacing: .5px;
  background: linear-gradient(160deg, #0099dc, #005f9f);
}
.boot-logo { font-size: 62px; animation: float 2.2s ease-in-out infinite; }

/* App chrome */
.status-bar {
  display:none!important;
  position: absolute; inset: 0 0 auto; z-index: 210; height: calc(var(--status-height) + var(--safe-top));
  padding: var(--safe-top) 12px 0; display: flex; align-items: center; justify-content: space-between;
  color: #fff; background: color-mix(in srgb, var(--header-bg) 86%, #001b2a); font-size: 11px; font-weight: 700;
  letter-spacing: .1px; user-select: none;
}
.status-icons { display: flex; align-items: center; gap: 6px; }
.status-signal { display: flex; align-items: end; gap: 1.5px; height: 10px; }
.status-signal i { width: 2px; display: block; border-radius: 1px; background: currentColor; }
.status-signal i:nth-child(1){height:3px}.status-signal i:nth-child(2){height:5px}.status-signal i:nth-child(3){height:7px}.status-signal i:nth-child(4){height:9px}
.status-battery { width: 19px; height: 9px; border: 1px solid currentColor; border-radius: 2px; position: relative; padding: 1px; }
.status-battery::after { content:""; position:absolute; right:-3px; top:2px; width:2px; height:4px; border-radius:0 1px 1px 0; background:currentColor; }
.status-battery span { display:block; height:100%; width:78%; border-radius:1px; background:currentColor; }

.page {
  position: absolute; inset: 0; overflow: hidden; background: var(--background);
  animation: pageIn .28s cubic-bezier(.2,.8,.2,1) both;
}
.page.back-enter { animation-name: pageBackIn; }
.page.no-chrome { padding-top: 0; }
.page-scroll {
  position: absolute;
  inset: calc(var(--status-height) + var(--safe-top) + var(--header-height)) 0 0;
  overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
}
.page-scroll.with-nav { bottom: calc(var(--bottom-nav-height) + var(--safe-bottom)); }
.page-scroll.auth-scroll { inset: 0; padding: max(24px, calc(var(--safe-top) + 20px)) 22px calc(28px + var(--safe-bottom)); }
.app-header {
  position: absolute; z-index: 200; top: calc(var(--status-height) + var(--safe-top)); left: 0; right: 0;
  height: var(--header-height); display: flex; align-items: center; gap: 8px; padding: 0 8px 0 14px;
  color: #fff; background: var(--header-bg); box-shadow: 0 2px 7px rgba(0,0,0,.12);
}
.app-header.surface-header { color: var(--text-primary); background: var(--surface); border-bottom: 1px solid var(--divider); box-shadow: none; }
.header-title { min-width: 0; flex: 1; font-size: 20px; font-weight: 750; letter-spacing: -.25px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.header-title small { display:block; margin-top:-1px; font-size:11px; font-weight:500; opacity:.82; letter-spacing:0; }
.header-title-stack { flex:1; min-width:0; line-height:1.15; cursor:pointer; }
.header-title-stack strong { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:16px; }
.header-title-stack span { display:block; margin-top:3px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:11px; opacity:.82; }
.header-actions { display:flex; align-items:center; margin-left:auto; }
.icon-btn {
  position: relative; display: inline-grid; place-items: center; flex: 0 0 var(--tap-target); width: var(--tap-target); height: var(--tap-target);
  border-radius: 50%; color: inherit; background: transparent; overflow: hidden; transition: transform var(--transition-fast), background var(--transition-fast);
}
.icon-btn:active { transform: scale(.88); background: rgba(255,255,255,.14); }
.surface-header .icon-btn:active { background: var(--surface-hover); }
.icon-btn.primary-soft { color:var(--primary); background:var(--primary-lighter); }
.icon-btn.danger-soft { color:var(--danger); background:color-mix(in srgb,var(--danger) 12%,transparent); }
.back-btn { margin-left:-7px; }
.avatar {
  position:relative; display:inline-grid; place-items:center; flex:0 0 auto; overflow:hidden;
  width:50px; height:50px; border-radius:50%; color:#fff; background:#7c8b95; font-weight:750; letter-spacing:.2px; user-select:none;
}
.avatar img { width:100%; height:100%; object-fit:cover; }
.avatar.xs { width:28px; height:28px; font-size:10px; }
.avatar.sm { width:36px; height:36px; font-size:12px; }
.avatar.lg { width:82px; height:82px; font-size:25px; }
.avatar.xl { width:120px; height:120px; font-size:36px; }
.avatar .presence, .avatar-wrap .presence {
  position:absolute; right:1px; bottom:1px; width:11px; height:11px; border:2px solid var(--surface); border-radius:50%; background:var(--online);
}
.avatar-wrap { position:relative; flex:0 0 auto; }
.avatar-badge { position:absolute; right:-2px; bottom:-1px; width:20px; height:20px; display:grid; place-items:center; border:2px solid var(--surface); border-radius:50%; color:#fff; background:var(--primary); font-size:9px; }

/* Buttons and forms */
.btn {
  min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:0 20px;
  border-radius:24px; font-weight:700; letter-spacing:.05px; color:#fff; background:var(--primary);
  box-shadow:0 5px 14px rgba(0,136,204,.2); transition:transform var(--transition-fast), filter var(--transition-fast), box-shadow var(--transition-fast); overflow:hidden; position:relative;
}
.btn:active { transform:scale(.975); filter:brightness(.96); }
.btn:hover { filter:brightness(1.035); }
.btn.block { width:100%; }
.btn.small { min-height:38px; padding:0 15px; border-radius:20px; font-size:14px; }
.btn.ghost { color:var(--primary); background:transparent; box-shadow:none; }
.btn.soft { color:var(--primary); background:var(--primary-lighter); box-shadow:none; }
.btn.outline { color:var(--primary); background:var(--surface); border:1px solid color-mix(in srgb,var(--primary) 38%,var(--divider)); box-shadow:none; }
.btn.danger { color:#fff; background:var(--danger); box-shadow:0 5px 14px rgba(255,59,48,.18); }
.btn.danger-ghost { color:var(--danger); background:transparent; box-shadow:none; }
.btn.black { background:#111; }
.btn:disabled { cursor:not-allowed; opacity:.45; filter:grayscale(.15); box-shadow:none; transform:none; }
.btn-spinner { width:18px; height:18px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:spin .8s linear infinite; }
.text-btn { min-height:44px; padding:0 8px; color:var(--primary); background:transparent; font-weight:650; border-radius:10px; }
.text-btn:active { background:var(--primary-lighter); }
.text-btn.danger { color:var(--danger); }
.form-stack { display:grid; gap:16px; }
.field { position:relative; }
.field-control {
  width:100%; min-height:56px; padding:19px 45px 8px 45px; border:1.5px solid var(--divider); border-radius:14px;
  color:var(--text-primary); background:var(--surface); outline:none; transition:border-color .2s, box-shadow .2s, background .2s;
}
textarea.field-control { min-height:100px; padding-top:23px; line-height:1.45; }
.field-control:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(0,136,204,.10); }
.field-icon { position:absolute; z-index:2; left:16px; top:19px; width:18px; text-align:center; color:var(--text-muted); transition:color .2s; pointer-events:none; }
.field:focus-within .field-icon { color:var(--primary); }
.field-label {
  position:absolute; z-index:2; left:45px; top:17px; color:var(--text-secondary); pointer-events:none;
  transform-origin:left top; transition:transform .18s, color .18s;
}
.field-control:focus ~ .field-label,
.field-control:not(:placeholder-shown) ~ .field-label,
.field-control.has-value ~ .field-label,
select.field-control ~ .field-label { transform:translateY(-10px) scale(.73); color:var(--primary); }
.field-action { position:absolute; z-index:3; right:6px; top:6px; }
.field-error { display:none; margin:5px 4px 0; color:var(--danger); font-size:12px; }
.field.invalid .field-control { border-color:var(--danger); animation:shake .28s ease; }
.field.invalid .field-error { display:block; }
.field.valid .field-control { border-color:var(--success); }
.field-hint { margin:5px 4px 0; color:var(--text-secondary); font-size:12px; }
.input-row { display:grid; grid-template-columns:140px minmax(0,1fr); gap:8px; }
.country-select { padding:8px 10px; font-size:14px; }
.country-combo { position:relative; }
.country-button { width:100%; min-height:56px; padding:0 10px; display:flex; align-items:center; justify-content:space-between; gap:6px; border:1.5px solid var(--divider); border-radius:14px; background:var(--surface); font-size:13px; }
.country-button span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.country-menu { max-height:320px; overflow:auto; }
.search-input-wrap { position:relative; }
.search-input-wrap i { position:absolute; left:15px; top:50%; transform:translateY(-50%); color:var(--text-muted); }
.search-input { width:100%; min-height:44px; padding:10px 42px; border:0; border-radius:22px; outline:0; background:var(--input-bg); }
.search-input:focus { box-shadow:0 0 0 2px rgba(0,136,204,.18); }
.checkbox-row, .radio-row { display:flex; align-items:flex-start; gap:10px; min-height:36px; color:var(--text-secondary); font-size:14px; }
.checkbox-row input, .radio-row input { width:19px; height:19px; margin:1px 0 0; accent-color:var(--primary); }
.switch { position:relative; width:48px; height:28px; flex:0 0 auto; }
.switch input { opacity:0; width:0; height:0; }
.switch-track { position:absolute; inset:0; border-radius:14px; background:#aeb8be; transition:.25s; }
.switch-track::after { content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:#fff; box-shadow:0 2px 5px rgba(0,0,0,.22); transition:.25s cubic-bezier(.2,.9,.3,1.2); }
.switch input:checked + .switch-track { background:var(--primary); }
.switch input:checked + .switch-track::after { transform:translateX(20px); }
.char-counter { margin-top:4px; text-align:right; color:var(--text-muted); font-size:11px; }
.divider-or { display:flex; align-items:center; gap:12px; color:var(--text-muted); font-size:12px; font-weight:650; }
.divider-or::before,.divider-or::after { content:""; height:1px; flex:1; background:var(--divider); }

/* Splash */
.splash-page {
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden;
  color:#fff; background:linear-gradient(155deg,#009ce3 0%,#0088cc 40%,#005b99 100%); background-size:200% 200%; animation:gradientShift 7s ease infinite;
}
.splash-page::before,.splash-page::after { content:""; position:absolute; border-radius:50%; border:1px solid rgba(255,255,255,.10); }
.splash-page::before { width:340px;height:340px;top:-130px;right:-170px;box-shadow:0 0 0 48px rgba(255,255,255,.025),0 0 0 96px rgba(255,255,255,.018); }
.splash-page::after { width:270px;height:270px;bottom:-130px;left:-140px;box-shadow:0 0 0 40px rgba(255,255,255,.02); }
.splash-page.leaving { animation:splashOut .48s ease forwards; }
.splash-content { position:relative; z-index:1; text-align:center; }
.splash-icon { width:98px;height:98px;display:grid;place-items:center;margin:0 auto 22px;border-radius:30px;color:var(--primary);background:#fff;font-size:49px;box-shadow:0 18px 45px rgba(0,34,68,.25);animation:float 2s ease-in-out infinite,pulseSoft 2.4s ease-in-out infinite; }
.splash-name { margin:0; font-size:40px; line-height:1; letter-spacing:1.2px; font-weight:800; text-shadow:0 3px 14px rgba(0,0,0,.16); }
.splash-tagline { margin:16px 0 0; font-size:15px; letter-spacing:2px; opacity:0; animation:fadeUp .7s .55s forwards; }
.loading-dots { height:24px; display:flex; justify-content:center; align-items:center; gap:7px; margin-top:24px; }
.loading-dots i { width:7px;height:7px;border-radius:50%;background:#fff;animation:bounceDot 1.2s infinite; }
.loading-dots i:nth-child(2){animation-delay:.15s}.loading-dots i:nth-child(3){animation-delay:.3s}
.splash-version { position:absolute; z-index:1; bottom:calc(20px + var(--safe-bottom)); font-size:11px; letter-spacing:1px; opacity:.75; }

/* Authentication */
.auth-page { background:var(--surface); }
.auth-scroll { background:var(--surface); }
.auth-brand { display:flex; align-items:center; justify-content:center; gap:10px; margin:10px 0 30px; color:var(--primary); font-size:24px; font-weight:800; }
.auth-brand .mini-logo { width:46px;height:46px;display:grid;place-items:center;border-radius:15px;color:#fff;background:linear-gradient(145deg,var(--primary-light),var(--primary));box-shadow:0 7px 20px rgba(0,136,204,.25); }
.auth-heading { margin:0; font-size:28px; line-height:1.2; letter-spacing:-.5px; }
.auth-subtitle { margin:8px 0 26px; color:var(--text-secondary); font-size:14px; }
.auth-method-tabs { display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:18px;padding:4px;border-radius:24px;background:var(--input-bg); }
.auth-method-tabs button { min-width:0;min-height:40px;display:flex;align-items:center;justify-content:center;gap:5px;border-radius:20px;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:650;white-space:nowrap }
.auth-method-tabs button.active { color:var(--primary);background:var(--surface);box-shadow:var(--shadow-sm); }
.auth-links { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.social-title { margin:0;text-align:center;color:var(--text-muted);font-size:13px; }
.social-buttons { display:grid;grid-template-columns:repeat(3,1fr);gap:10px; }
.social-btn { min-height:48px;border:1px solid var(--divider);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm);font-size:18px; }
.social-btn.google { color:#4285f4; }
.auth-footer { margin:24px 0 6px;text-align:center;color:var(--text-secondary);font-size:14px; }
.recaptcha-shell { min-height:108px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:9px;border:1px solid var(--divider);border-radius:14px;background:var(--surface-hover);overflow:hidden }
.recaptcha-shell > div { max-width:100%;min-height:58px }.recaptcha-shell iframe{max-width:100%}.recaptcha-shell small{color:var(--text-secondary);font-size:10.5px;text-align:center;line-height:1.35}.appwrite-phone-ready{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--primary);font-size:27px}.appwrite-phone-ready i:last-child{font-size:18px;color:var(--success)}
.otp-help-list { margin-top:15px;padding:11px 13px;border-radius:12px;background:var(--input-bg);font-size:12px;line-height:1.45 }.otp-help-list p{margin:7px 0;color:var(--text-secondary)}.otp-help-list code{padding:2px 4px;border-radius:4px;background:var(--surface);word-break:break-all}
.auth-back { position:absolute;z-index:220;left:10px;top:calc(var(--status-height) + var(--safe-top) + 4px);color:var(--text-primary); }
.otp-hero { width:92px;height:92px;display:grid;place-items:center;margin:34px auto 24px;border-radius:50%;color:var(--primary);background:var(--primary-lighter);font-size:38px; }
.otp-number { margin:4px 0;text-align:center;font-weight:750; }
.otp-boxes { display:flex;justify-content:center;gap:7px;margin:25px 0 18px; }
.otp-box { width:46px;height:52px;padding:0;border:1.5px solid var(--divider);border-radius:12px;text-align:center;font-size:23px;font-weight:750;background:var(--surface);outline:0; }
.otp-box:focus { border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,136,204,.11);transform:translateY(-2px); }
.otp-resend { min-height:44px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--text-secondary);font-size:13px; }
.otp-inline-card{padding:16px;border:1px solid var(--divider);border-radius:17px;background:var(--surface);box-shadow:var(--shadow-sm);animation:fadeUp .25s}
.success-orb { width:100px;height:100px;display:grid;place-items:center;margin:36px auto;border-radius:50%;color:#fff;background:var(--success);font-size:43px;box-shadow:0 12px 30px color-mix(in srgb,var(--success) 35%,transparent);animation:successPop .55s cubic-bezier(.2,1.4,.3,1); }
.profile-photo-editor { position:relative;width:max-content;margin:4px auto 25px; }
.photo-edit { position:absolute;right:1px;bottom:1px;width:34px;height:34px;display:grid;place-items:center;border:3px solid var(--surface);border-radius:50%;color:#fff;background:var(--primary);box-shadow:var(--shadow-sm); }
.strength { height:5px;margin:7px 4px 0;border-radius:4px;background:var(--divider);overflow:hidden; }
.strength span { display:block;height:100%;width:0;border-radius:inherit;transition:width .3s,background .3s; }
.strength-label { display:flex;justify-content:space-between;margin:4px 4px 0;font-size:11px;color:var(--text-muted); }
.requirements { display:grid;grid-template-columns:1fr 1fr;gap:5px 9px;margin:8px 4px 0;font-size:11px;color:var(--text-secondary); }
.requirements span.ok { color:var(--success); }
.gender-grid { display:flex;flex-wrap:wrap;gap:8px; }
.choice-chip { min-height:38px;padding:0 13px;display:flex;align-items:center;gap:6px;border:1px solid var(--divider);border-radius:20px;background:var(--surface);font-size:13px; }
.choice-chip:has(input:checked) { color:var(--primary);border-color:var(--primary);background:var(--primary-lighter); }
.choice-chip input { accent-color:var(--primary); }
.setup-progress { display:flex;align-items:center;gap:10px;margin:3px 0 22px;color:var(--text-secondary);font-size:12px; }
.setup-progress span { height:5px;flex:1;border-radius:5px;background:var(--divider);overflow:hidden; }
.setup-progress span::after { content:"";display:block;width:100%;height:100%;background:var(--primary); }
.color-palette { display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:13px 0 22px; }
.color-dot { width:36px;height:36px;display:grid;place-items:center;margin:auto;border-radius:50%;color:#fff;box-shadow:0 0 0 2px var(--surface),0 0 0 3px transparent;transition:.2s; }
.color-dot.active { box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--primary);transform:scale(.94); }
.interest-grid { display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 24px; }
.interest-chip { min-height:38px;padding:0 13px;border:1px solid var(--divider);border-radius:20px;background:var(--surface);font-size:13px;transition:.2s; }
.interest-chip.active { color:#fff;border-color:var(--primary);background:var(--primary);transform:translateY(-1px); }

/* Shared lists and cards */
.section { padding:16px; }
.section-title { margin:0 0 10px;color:var(--text-secondary);font-size:12px;font-weight:750;letter-spacing:.75px;text-transform:uppercase; }
.card { background:var(--surface);border:1px solid color-mix(in srgb,var(--divider) 75%,transparent);border-radius:16px;box-shadow:var(--shadow-sm);overflow:hidden; }
.list-card { margin:0 12px 14px; }
.list-row { min-height:58px;display:flex;align-items:center;gap:13px;padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--divider);transition:background .15s; }
.list-row:last-child { border-bottom:0; }
.list-row:active { background:var(--surface-hover); }
.list-row-icon { width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;color:var(--primary);background:var(--primary-lighter); }
.list-row-icon.green {color:#16a061;background:rgba(22,160,97,.12)}.list-row-icon.orange{color:#e47d00;background:rgba(228,125,0,.12)}.list-row-icon.purple{color:#8055c8;background:rgba(128,85,200,.12)}.list-row-icon.red{color:var(--danger);background:rgba(255,59,48,.1)}
.list-row-main { flex:1;min-width:0; }
.list-row-main strong { display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.list-row-main small { display:block;margin-top:2px;color:var(--text-secondary);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.list-row-meta { color:var(--text-muted);font-size:12px; }
.empty-state { min-height:calc(100% - 10px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 28px;text-align:center;animation:fadeUp .38s ease both; }
.empty-illustration { position:relative;width:118px;height:118px;display:grid;place-items:center;margin-bottom:22px;border-radius:38px;color:var(--primary);background:linear-gradient(145deg,var(--primary-lighter),color-mix(in srgb,var(--surface) 85%,var(--primary)));font-size:48px;box-shadow:0 14px 32px rgba(0,136,204,.10); }
.empty-illustration::before { content:"";position:absolute;inset:10px;border:1px dashed color-mix(in srgb,var(--primary) 25%,transparent);border-radius:30px; }
.empty-state h2 { margin:0 0 7px;font-size:20px;letter-spacing:-.2px; }
.empty-state p { max-width:290px;margin:0 0 20px;color:var(--text-secondary);font-size:14px; }
.inline-empty { padding:25px;text-align:center;color:var(--text-secondary); }
.inline-empty i { display:block;margin-bottom:8px;color:var(--text-muted);font-size:30px; }

/* Home, search, tabs, chat list */
.logo-word { display:flex;align-items:center;gap:8px; }
.logo-word i { font-size:22px; }
.home-content { background:var(--background); }
.category-tabs { position:sticky;z-index:20;top:0;height:51px;display:flex;align-items:center;gap:8px;padding:7px 11px;overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--divider);scroll-snap-type:x proximity; }
.category-tab { min-height:35px;padding:0 15px;display:flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid transparent;border-radius:18px;color:var(--text-secondary);background:transparent;font-size:13px;font-weight:650;scroll-snap-align:start;transition:.23s; }
.category-tab.active { color:#fff;background:var(--primary);box-shadow:0 4px 10px rgba(0,136,204,.2); }
.tab-count { min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:9px;color:#fff;background:var(--danger);font-size:10px; }
.archived-bar { min-height:52px;display:flex;align-items:center;gap:14px;padding:0 18px;background:var(--surface);border-bottom:1px solid var(--divider);font-size:14px;font-weight:650; }
.archived-bar i { color:var(--primary); }
.chat-list { background:var(--surface); }
.list-label { padding:9px 18px 5px;color:var(--primary);background:var(--background);font-size:10px;font-weight:800;letter-spacing:1px; }
.chat-item-shell { position:relative;overflow:hidden;background:var(--surface);touch-action:pan-y; }
.swipe-actions { position:absolute;inset:0;display:flex;justify-content:space-between;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease; }
.chat-item-shell.is-swiping .swipe-actions { opacity:1;visibility:visible; }
.swipe-side { display:flex;height:100%; }
.swipe-action { width:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#fff;font-size:11px;font-weight:650; }
.swipe-action.archive { background:var(--primary); }.swipe-action.mute{background:#f09324}.swipe-action.delete{background:var(--danger)}
.chat-item { position:relative;z-index:2;height:76px;display:flex;align-items:center;gap:12px;padding:0 12px;background:var(--surface);transform:translateX(0);transition:transform .3s cubic-bezier(.2,.9,.25,1); }
.chat-item.unread .chat-name,.chat-item.unread .chat-preview { font-weight:700;color:var(--text-primary); }
.chat-item::after { content:"";position:absolute;right:0;bottom:0;left:74px;height:1px;background:var(--divider); }
.chat-main { min-width:0;flex:1; }
.chat-top,.chat-bottom { display:flex;align-items:center;gap:5px;min-width:0; }
.chat-top { margin-bottom:4px; }
.chat-name { min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15.5px;font-weight:680; }
.verified { color:var(--primary);font-size:12px; }.pin-mark,.mute-mark { color:var(--text-muted);font-size:10px; }
.chat-time { flex:0 0 auto;color:var(--text-muted);font-size:11px; }
.chat-time.unread { color:var(--primary);font-weight:700; }
.chat-preview { min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:13.5px; }
.chat-preview.typing { color:var(--primary);font-style:italic; }
.unread-badge { min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:10px;color:#fff;background:var(--primary);font-size:10px;font-weight:750; }
.delivery { margin-left:1px;font-size:11px;color:var(--text-muted);letter-spacing:-2px; }.delivery.read{color:#37b7f3}
.pull-indicator { height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--primary);font-size:18px;transition:height .2s; }
.search-header { padding:0 7px;gap:3px; }
.header-search-input { min-width:0;flex:1;height:40px;padding:0 14px;border:0;border-radius:20px;color:#17212b;background:#fff;outline:0;font-size:14px; }
.search-section-title { padding:13px 16px 6px;color:var(--text-muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.7px; }
.search-result { min-height:62px;display:flex;align-items:center;gap:11px;padding:7px 14px;background:var(--surface);border-bottom:1px solid var(--divider); }
.search-result-main { min-width:0;flex:1; }
.search-result-main strong,.search-result-main span { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.search-result-main span { margin-top:2px;color:var(--text-secondary);font-size:12px; }
.search-highlight { color:inherit;background:rgba(255,211,57,.55);border-radius:2px; }
.recent-search { min-height:48px;display:flex;align-items:center;gap:12px;padding:0 14px;border-bottom:1px solid var(--divider);background:var(--surface); }
.recent-search span { flex:1; }
.fab { position:absolute;z-index:120;right:18px;bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + 16px);width:56px;height:56px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--primary);box-shadow:var(--shadow-fab);font-size:20px;transition:transform var(--transition-spring); }
.fab:active { transform:scale(.9); }.fab.open { transform:rotate(45deg); }
.fab-menu { position:absolute;z-index:510;right:18px;bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + 83px);display:grid;gap:10px; }
.fab-option { display:flex;align-items:center;justify-content:flex-end;gap:10px;opacity:0;transform:translateY(18px) scale(.9);animation:fabItem .28s forwards; }
.fab-option span { padding:7px 11px;border-radius:9px;background:var(--surface);box-shadow:var(--shadow-md);font-size:13px;font-weight:650; }
.fab-option i { width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--primary);box-shadow:var(--shadow-md); }
.fab-option:nth-child(2){animation-delay:.05s}.fab-option:nth-child(3){animation-delay:.10s}.fab-option:nth-child(4){animation-delay:.15s}
.bottom-nav { position:absolute;z-index:190;right:0;bottom:0;left:0;height:calc(var(--bottom-nav-height) + var(--safe-bottom));padding:4px 4px var(--safe-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--divider);box-shadow:0 -3px 12px rgba(0,0,0,.05); }
.nav-tab { position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:12px;color:var(--text-muted);background:transparent;font-size:10px; }
.nav-tab i { font-size:19px;transition:transform .25s; }.nav-tab.active{color:var(--primary);font-weight:700}.nav-tab.active i{transform:scale(1.1)}
.nav-tab.active::before { content:"";position:absolute;top:-4px;width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--primary); }
.nav-badge { position:absolute;top:4px;left:54%;min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center;border:2px solid var(--surface);border-radius:9px;color:#fff;background:var(--danger);font-size:8px; }

/* Contacts */
.contact-sync-hero { padding:27px 24px 20px;text-align:center;background:linear-gradient(180deg,var(--primary-lighter),var(--surface));border-bottom:1px solid var(--divider) }
.contact-sync-hero h1 { margin:15px 0 6px;font-size:23px;letter-spacing:-.35px }
.contact-sync-hero p { max-width:350px;margin:0 auto;color:var(--text-secondary);font-size:13px;line-height:1.5 }
.contact-sync-orb { position:relative;width:92px;height:92px;display:grid;place-items:center;margin:auto;border-radius:29px;color:#fff;background:linear-gradient(145deg,var(--primary-light),var(--primary-dark));box-shadow:0 14px 30px rgba(0,136,204,.24);font-size:39px }
.contact-sync-orb > span { position:absolute;right:-7px;bottom:-7px;width:34px;height:34px;display:grid;place-items:center;border:3px solid var(--surface);border-radius:50%;color:#fff;background:var(--success);font-size:13px;box-shadow:var(--shadow-sm) }
.sync-stats { display:grid;grid-template-columns:repeat(3,1fr);margin:12px;padding:13px 0;border:1px solid var(--divider);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm) }
.sync-stats > div { text-align:center;border-right:1px solid var(--divider) }.sync-stats > div:last-child{border:0}
.sync-stats strong,.sync-stats span { display:block }.sync-stats strong{font-size:19px;color:var(--primary)}.sync-stats span{margin-top:2px;color:var(--text-secondary);font-size:9px;text-transform:uppercase;letter-spacing:.45px}
.sync-last-run { margin:2px 16px 14px;color:var(--success);font-size:11px;text-align:center }
.verification-banner { display:flex;align-items:center;gap:11px;margin:0 12px 12px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--warning) 32%,var(--divider));border-radius:15px;background:color-mix(in srgb,var(--warning) 9%,var(--surface));box-shadow:var(--shadow-sm) }
.verification-banner > i { color:var(--warning);font-size:21px }.verification-banner > div{min-width:0;flex:1}.verification-banner strong,.verification-banner span{display:block}.verification-banner strong{font-size:12px}.verification-banner span{margin-top:2px;color:var(--text-secondary);font-size:9.5px;line-height:1.35}.verification-banner .btn{min-height:34px;padding:0 12px;font-size:11px}
.sync-result { display:flex;align-items:center;gap:11px;margin:0 12px 14px;padding:12px 14px;border:1px solid var(--divider);border-radius:14px;color:var(--text-secondary);background:var(--surface);box-shadow:var(--shadow-sm);animation:fadeUp .28s }
.sync-result.success { color:var(--success);border-color:color-mix(in srgb,var(--success) 30%,var(--divider));background:color-mix(in srgb,var(--success) 7%,var(--surface)) }
.sync-result > i { font-size:25px }.sync-result div{min-width:0;flex:1}.sync-result strong,.sync-result span{display:block}.sync-result strong{color:var(--text-primary);font-size:13px}.sync-result span{margin-top:3px;font-size:10px}
.privacy-card { display:flex;align-items:flex-start;gap:12px;margin:0 12px 17px;padding:14px;border:1px solid color-mix(in srgb,var(--primary) 20%,var(--divider));border-radius:15px;background:var(--primary-lighter) }
.privacy-card > i { margin-top:2px;color:var(--primary);font-size:20px }.privacy-card div{min-width:0}.privacy-card strong{font-size:13px}.privacy-card p{margin:4px 0 0;color:var(--text-secondary);font-size:10.5px;line-height:1.5}
.sync-badge { padding:4px 7px;border-radius:9px;color:var(--primary);background:var(--primary-lighter);font-size:9px;font-weight:700;white-space:nowrap }
.quick-actions { background:var(--surface); }
.quick-action { min-height:58px;display:flex;align-items:center;gap:13px;padding:6px 16px;border-bottom:1px solid var(--divider); }
.quick-action .round-icon { width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--primary); }
.quick-action strong { flex:1;font-size:14px; }
.alpha-header { position:sticky;z-index:5;top:0;padding:5px 16px;color:var(--primary);background:var(--background);font-size:11px;font-weight:800; }
.contact-row { min-height:67px;display:flex;align-items:center;gap:12px;padding:7px 16px;background:var(--surface);border-bottom:1px solid var(--divider); }
.contact-main { min-width:0;flex:1; }.contact-main strong,.contact-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-main small{margin-top:2px;color:var(--text-secondary);font-size:12px}
.alpha-rail { position:absolute;z-index:10;right:2px;top:50%;transform:translateY(-50%);display:grid;color:var(--primary);font-size:8px;font-weight:750;text-align:center; }
.custom-field-row { display:grid;grid-template-columns:1fr 1fr 40px;gap:7px; }
.profile-hero { padding:25px 18px 19px;text-align:center;background:var(--surface);border-bottom:1px solid var(--divider); }
.profile-hero h1 { margin:12px 0 2px;font-size:23px; }.profile-hero p{margin:3px 0;color:var(--text-secondary);font-size:13px}.profile-hero .username{color:var(--primary)}
.action-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:13px 10px;background:var(--surface);border-bottom:1px solid var(--divider); }
.profile-action { min-height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:12px;color:var(--primary);background:transparent;font-size:10px; }.profile-action i{font-size:21px}.profile-action:active{background:var(--primary-lighter)}
.danger-zone { margin:18px 12px;border:1px solid color-mix(in srgb,var(--danger) 24%,var(--divider));border-radius:16px;overflow:hidden; }
.danger-row { min-height:54px;width:100%;display:flex;align-items:center;gap:12px;padding:0 15px;color:var(--danger);background:var(--surface);border-bottom:1px solid var(--divider);text-align:left; }.danger-row:last-child{border:0}

/* Chat conversation */
.chat-page { background:var(--chat-bg); }
.chat-header .avatar { margin-left:-3px; }
.chat-scroll { top:calc(var(--status-height) + var(--safe-top) + var(--header-height));bottom:calc(58px + var(--safe-bottom));padding:9px 7px 12px;overflow-y:auto;overflow-x:hidden;background-color:var(--chat-bg);background-image:var(--chat-wallpaper,none);background-size:cover;background-attachment:local;scroll-behavior:smooth; }
.encryption-chip { max-width:330px;margin:5px auto 12px;padding:7px 10px;border-radius:9px;color:#6f5b16;background:#fff5c8;box-shadow:var(--shadow-sm);font-size:10.5px;text-align:center;line-height:1.35; }
:root[data-theme="dark"] .encryption-chip { color:#d8c36f;background:#27343a; }
.date-separator { position:sticky;z-index:4;top:4px;width:max-content;max-width:90%;margin:10px auto;padding:5px 10px;border-radius:9px;color:#50626c;background:rgba(240,248,250,.9);box-shadow:var(--shadow-sm);font-size:10px;font-weight:700;text-transform:uppercase;backdrop-filter:blur(7px); }
:root[data-theme="dark"] .date-separator { color:#aebdc5;background:rgba(30,45,53,.9); }
.system-message { width:max-content;max-width:88%;margin:9px auto;padding:5px 9px;border-radius:8px;color:#5f7078;background:rgba(243,247,248,.88);font-size:11px;text-align:center;box-shadow:var(--shadow-sm); }
:root[data-theme="dark"] .system-message { color:#a9b6bd;background:rgba(31,44,52,.9); }
.message-row { position:relative;display:flex;align-items:flex-end;gap:5px;margin:2px 1px;transition:background .2s,transform .2s;touch-action:pan-y; }
.message-row.sent { justify-content:flex-end; }.message-row.received{justify-content:flex-start}.message-row.selected{margin-left:-7px;margin-right:-7px;padding-left:7px;padding-right:7px;background:rgba(0,136,204,.16)}.message-row.target-flash{animation:targetFlash 1s ease}.message-row.context-active{filter:brightness(.9);transform:scale(.99)}
.message-checkbox { width:28px;display:grid;place-items:center;align-self:center; }.message-checkbox input{width:19px;height:19px;accent-color:var(--primary)}
.message-sender-avatar { width:24px;height:24px;margin-bottom:1px; }
.message-bubble { position:relative;min-width:72px;max-width:78%;padding:7px 10px 5px;border-radius:var(--bubble-radius);box-shadow:0 1px 1px rgba(0,0,0,.12);font-size:var(--message-font-size);line-height:1.34;overflow-wrap:anywhere;transition:border-radius .2s; }
.sent .message-bubble { color:var(--sent-text);background:var(--sent-bubble);border-bottom-right-radius:3px; }
.received .message-bubble { color:var(--received-text);background:var(--received-bubble);border-bottom-left-radius:3px; }
.message-bubble::after { content:"";position:absolute;bottom:0;width:8px;height:10px;clip-path:polygon(0 0,100% 100%,0 100%); }
.sent .message-bubble::after { right:-6px;background:var(--sent-bubble);transform:scaleX(-1); }.received .message-bubble::after{left:-6px;background:var(--received-bubble)}
.message-row.compact .message-bubble::after{display:none}.message-row.compact .message-bubble{border-radius:var(--bubble-radius)}
.message-sender { margin-bottom:3px;font-size:12px;font-weight:750; }
.forwarded-label { display:flex;align-items:center;gap:4px;margin-bottom:3px;opacity:.74;font-size:10px;font-style:italic; }
.message-text { white-space:pre-wrap;word-break:break-word; }.message-text a{color:inherit;text-decoration:underline;font-weight:600}.received .message-text a{color:var(--primary)}
.message-meta { min-width:max-content;float:right;margin:5px -2px -1px 8px;display:inline-flex;align-items:center;gap:3px;opacity:.72;font-size:9.5px;line-height:1; }
.message-meta .delivery { color:inherit; }.message-meta .delivery.read{color:#62d4ff;opacity:1}.edited-label{font-style:italic}.star-icon{font-size:9px;color:#ffd24a;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.reply-preview { min-width:0;margin:-1px -3px 6px;padding:6px 8px;border-left:3px solid #63d1ff;border-radius:5px;color:inherit;background:rgba(255,255,255,.17);font-size:11px;cursor:pointer; }.received .reply-preview{background:rgba(0,0,0,.045)}.reply-preview strong{display:block;margin-bottom:1px;color:#63d1ff}.received .reply-preview strong{color:var(--primary)}.reply-preview span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.82}
.reaction-row { position:absolute;z-index:2;right:4px;bottom:-15px;min-height:22px;padding:1px 6px;display:flex;align-items:center;gap:3px;border:1px solid var(--divider);border-radius:11px;background:var(--surface);box-shadow:var(--shadow-sm);font-size:12px; }.received .reaction-row{right:auto;left:4px}.message-row:has(.reaction-row){margin-bottom:16px}
.emoji-only .message-bubble { min-width:0;padding:3px;background:transparent!important;box-shadow:none;font-size:42px;line-height:1.1; }.emoji-only .message-bubble::after{display:none}.emoji-only .message-meta{padding:2px 4px;border-radius:8px;background:rgba(0,0,0,.28);color:#fff}
.deleted-message { font-style:italic;opacity:.72; }
.message-image { position:relative;width:min(270px,72vw);margin:-3px -6px 3px;border-radius:9px;overflow:hidden;background:rgba(120,140,150,.2); }.message-image img{width:100%;max-height:360px;object-fit:cover}.image-caption{margin-top:5px}.media-badge{position:absolute;left:8px;top:8px;padding:3px 6px;border-radius:6px;color:#fff;background:rgba(0,0,0,.55);font-size:9px;font-weight:700}
.document-message { width:min(270px,68vw);display:flex;align-items:center;gap:10px;padding:8px;border-radius:9px;background:rgba(255,255,255,.15); }.received .document-message{background:var(--input-bg)}.file-icon{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;color:#fff;background:#71818a;font-size:20px}.file-icon.pdf{background:#e74b45}.file-icon.doc{background:#3b78d8}.file-icon.xls{background:#2aa365}.file-icon.ppt{background:#e47d32}.file-info{min-width:0;flex:1}.file-info strong,.file-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-info strong{font-size:12px}.file-info small{margin-top:3px;opacity:.7;font-size:9px}
.voice-message { width:min(270px,68vw);display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:8px; }.voice-play{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;color:var(--primary);background:#fff}.sent .voice-play{color:var(--sent-bubble)}.wave-wrap{min-width:0}.waveform{height:27px;display:flex;align-items:center;gap:2px;overflow:hidden}.waveform i{width:2px;border-radius:2px;background:currentColor;opacity:.55}.waveform i.played{opacity:1}.voice-sub{display:flex;align-items:center;justify-content:space-between;font-size:9px;opacity:.7}.speed-btn{padding:1px 4px;border-radius:5px;color:inherit;background:rgba(255,255,255,.15);font-size:9px}
.location-card { width:min(270px,68vw);overflow:hidden;border-radius:9px;background:rgba(255,255,255,.12); }.map-preview{height:120px;display:grid;place-items:center;color:#e83f47;background-color:#c9e2d3;background-image:linear-gradient(30deg,transparent 49%,rgba(255,255,255,.6) 50%,transparent 52%),linear-gradient(120deg,transparent 49%,rgba(255,255,255,.6) 50%,transparent 52%);background-size:52px 52px;font-size:29px}.location-info{padding:7px}.location-info strong,.location-info span{display:block}.location-info span{margin-top:2px;opacity:.72;font-size:10px}
.contact-card-message { width:min(270px,68vw); }.contact-card-head{display:flex;align-items:center;gap:9px}.contact-card-head div:last-child{min-width:0}.contact-card-head strong,.contact-card-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-card-head small{opacity:.72;font-size:10px}.contact-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:8px}.contact-card-actions button{min-height:32px;border-radius:8px;color:var(--primary);background:#fff;font-size:10px;font-weight:700}.received .contact-card-actions button{background:var(--primary-lighter)}
.poll-message { width:min(280px,70vw); }.poll-question{margin:0 0 9px;font-weight:750}.poll-badge{display:inline-block;margin-bottom:6px;padding:2px 6px;border-radius:6px;background:rgba(255,255,255,.17);font-size:9px}.poll-option{position:relative;overflow:hidden;margin:5px 0;border:1px solid rgba(128,145,155,.35);border-radius:9px;cursor:pointer}.poll-option-fill{position:absolute;inset:0 auto 0 0;width:0;background:rgba(70,185,240,.20);transition:width .7s}.poll-option-line{position:relative;min-height:35px;display:flex;align-items:center;gap:7px;padding:6px 8px;font-size:11px}.poll-option-line i{font-size:10px}.poll-option-line span:first-of-type{flex:1}.poll-total{margin-top:7px;opacity:.72;font-size:9px}
.typing-bubble { width:57px;height:34px;display:flex;align-items:center;justify-content:center;gap:4px;border-radius:13px 13px 13px 3px;background:var(--received-bubble);box-shadow:var(--shadow-sm); }.typing-bubble i{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:bounceDot 1.1s infinite}.typing-bubble i:nth-child(2){animation-delay:.14s}.typing-bubble i:nth-child(3){animation-delay:.28s}
.pinned-bar { position:absolute;z-index:160;top:calc(var(--status-height) + var(--safe-top) + var(--header-height));right:8px;left:8px;height:44px;display:flex;align-items:center;gap:9px;padding:0 8px 0 11px;border-radius:0 0 10px 10px;background:var(--surface);box-shadow:var(--shadow-md);animation:slideDown .25s}.pinned-bar i{color:var(--primary)}.pinned-bar div{min-width:0;flex:1}.pinned-bar strong,.pinned-bar span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pinned-bar strong{color:var(--primary);font-size:10px}.pinned-bar span{font-size:11px}
.scroll-bottom { position:absolute;z-index:150;right:15px;bottom:calc(69px + var(--safe-bottom));width:39px;height:39px;display:grid;place-items:center;border-radius:50%;color:var(--text-secondary);background:var(--surface);box-shadow:var(--shadow-md);animation:popIn .2s; }
.chat-input-area { position:absolute;z-index:180;right:0;bottom:0;left:0;padding:5px 7px calc(5px + var(--safe-bottom));background:color-mix(in srgb,var(--background) 92%,transparent);box-shadow:0 -1px 7px rgba(0,0,0,.05);backdrop-filter:blur(9px); }
.composer-banner { min-height:43px;margin:-1px 43px 5px 43px;padding:5px 34px 5px 10px;position:relative;border-left:3px solid var(--primary);border-radius:7px;background:var(--surface);box-shadow:var(--shadow-sm);font-size:10px; }.composer-banner strong,.composer-banner span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-banner strong{color:var(--primary)}.composer-banner span{margin-top:1px;color:var(--text-secondary)}.composer-banner button{position:absolute;right:1px;top:0}
.composer { display:flex;align-items:flex-end;gap:5px; }
.composer-box { min-height:44px;flex:1;display:flex;align-items:flex-end;border-radius:23px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.10); }
.composer-box .icon-btn { flex:0 0 40px;width:40px;height:44px;color:var(--text-muted); }
.message-input { min-width:0;max-height:116px;min-height:44px;flex:1;padding:11px 3px 9px;border:0;outline:0;overflow-y:auto;color:var(--text-primary);background:transparent;font-size:16px;line-height:22px; }
.message-input:empty::before { content:attr(data-placeholder);color:var(--text-muted);pointer-events:none; }
.send-button { flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--primary);box-shadow:0 3px 9px rgba(0,136,204,.22);font-size:17px;animation:popIn .2s; }
.recording-bar { height:48px;display:flex;align-items:center;gap:9px;padding:0 4px; }.recording-timer{min-width:46px;font-variant-numeric:tabular-nums}.recording-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);animation:pulseSoft 1s infinite}.recording-wave{height:26px;flex:1;display:flex;align-items:center;justify-content:center;gap:3px;overflow:hidden}.recording-wave i{width:3px;border-radius:2px;background:var(--danger);animation:wave .7s ease-in-out infinite alternate}.recording-wave i:nth-child(2n){animation-delay:.2s}.recording-wave i:nth-child(3n){animation-delay:.35s}
.multi-select-bar { position:absolute;z-index:240;right:0;bottom:0;left:0;height:calc(58px + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border-top:1px solid var(--divider);box-shadow:0 -3px 12px rgba(0,0,0,.08); }.multi-select-bar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-secondary);background:transparent;font-size:9px}.multi-select-bar button i{font-size:18px}.multi-select-bar button.danger{color:var(--danger)}

/* Emoji, attachments, media */
.bottom-sheet-backdrop,.modal-backdrop,.menu-backdrop { position:fixed;z-index:1000;inset:0;background:var(--overlay);animation:fadeIn .2s both; }
@media (min-width:600px){.bottom-sheet-backdrop,.modal-backdrop,.menu-backdrop{left:50%;width:480px;transform:translateX(-50%)}}
.bottom-sheet { position:absolute;right:0;bottom:0;left:0;max-height:88%;overflow:hidden;border-radius:22px 22px 0 0;background:var(--surface);box-shadow:var(--shadow-xl);animation:sheetUp .3s cubic-bezier(.2,.9,.2,1) both; }
.sheet-handle { width:38px;height:4px;margin:9px auto 5px;border-radius:4px;background:var(--divider); }
.sheet-header { min-height:51px;display:flex;align-items:center;gap:8px;padding:0 10px 0 17px;border-bottom:1px solid var(--divider); }.sheet-header h3{min-width:0;flex:1;margin:0;font-size:17px}.sheet-body{max-height:calc(88vh - 60px);overflow-y:auto;padding:14px}
.attachment-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:18px 7px;padding:14px 7px 25px; }.attachment-option{display:flex;flex-direction:column;align-items:center;gap:7px;background:transparent;color:var(--text-secondary);font-size:10px;opacity:0;animation:popIn .3s forwards}.attachment-option:nth-child(2){animation-delay:.03s}.attachment-option:nth-child(3){animation-delay:.06s}.attachment-option:nth-child(4){animation-delay:.09s}.attachment-option:nth-child(5){animation-delay:.12s}.attachment-option:nth-child(6){animation-delay:.15s}.attachment-option:nth-child(7){animation-delay:.18s}.attachment-option:nth-child(8){animation-delay:.21s}.attachment-circle{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--primary);font-size:21px}.attachment-circle.red{background:#ef5563}.attachment-circle.purple{background:#8658cf}.attachment-circle.orange{background:#f19a38}.attachment-circle.green{background:#35aa69}.attachment-circle.teal{background:#24a7a7}.attachment-circle.money{background:#1c9b61}
.emoji-sheet { height:54vh; }.emoji-search{padding:8px 12px}.emoji-categories{height:43px;display:flex;align-items:center;gap:5px;padding:0 8px;overflow-x:auto;border-bottom:1px solid var(--divider)}.emoji-category{flex:0 0 40px;height:38px;border-radius:10px;background:transparent;font-size:18px}.emoji-category.active{background:var(--primary-lighter)}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:8px 6px 20px}.emoji-grid button{height:40px;background:transparent;border-radius:8px;font-size:24px}.emoji-grid button:active{background:var(--surface-hover);transform:scale(1.25)}
.reaction-picker { position:absolute;z-index:4;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);height:48px;display:flex;align-items:center;padding:3px 6px;border-radius:24px;background:var(--surface);box-shadow:var(--shadow-lg);animation:reactionIn .25s cubic-bezier(.2,1.4,.3,1); }.reaction-picker button{width:38px;height:38px;border-radius:50%;background:transparent;font-size:22px;transition:transform .15s}.reaction-picker button:active{transform:scale(1.35)}
.image-viewer { position:absolute;z-index:1300;inset:0;display:flex;flex-direction:column;color:#fff;background:#050505;animation:fadeIn .2s }.viewer-top{height:64px;display:flex;align-items:center;justify-content:flex-end;padding:8px}.viewer-media{min-height:0;flex:1;display:grid;place-items:center;overflow:hidden;touch-action:none}.viewer-media img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .15s}.viewer-actions{height:68px;display:flex;align-items:center;justify-content:space-around;background:rgba(20,20,20,.9)}.viewer-actions button{color:#fff;background:transparent;font-size:18px}

/* Menus, dialogs, toasts */
.popover-menu { position:absolute;z-index:3;min-width:218px;max-height:min(70vh,520px);overflow-y:auto;padding:6px;border-radius:13px;background:var(--surface);box-shadow:var(--shadow-xl);transform-origin:top right;animation:menuIn .18s ease both; }.popover-menu.top-right{right:8px;top:calc(var(--status-height) + var(--safe-top) + var(--header-height) - 6px)}
.menu-item { min-height:43px;width:100%;display:flex;align-items:center;gap:12px;padding:0 11px;border-radius:8px;color:var(--text-primary);background:transparent;text-align:left;font-size:13px; }.menu-item i{width:20px;color:var(--text-secondary);text-align:center}.menu-item:active{background:var(--surface-hover)}.menu-item.danger,.menu-item.danger i{color:var(--danger)}.menu-item.disabled{opacity:.38;pointer-events:none}.menu-divider{height:1px;margin:5px;background:var(--divider)}
.context-menu { min-width:225px;max-width:270px;transform-origin:center; }.context-menu .menu-item{min-height:42px}
.modal-backdrop { display:grid;place-items:center;padding:18px;backdrop-filter:blur(2px); }.modal { width:min(100%,390px);max-height:88vh;overflow-y:auto;border-radius:20px;background:var(--surface);box-shadow:var(--shadow-xl);animation:modalIn .22s cubic-bezier(.2,.9,.3,1.1) both; }.modal-content{padding:22px}.modal-icon{width:54px;height:54px;display:grid;place-items:center;margin-bottom:13px;border-radius:17px;color:var(--primary);background:var(--primary-lighter);font-size:23px}.modal-icon.danger{color:var(--danger);background:rgba(255,59,48,.1)}.modal h2{margin:0 0 7px;font-size:20px}.modal p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:11px 14px;border-top:1px solid var(--divider)}
.toast-root { position:fixed;z-index:2200;left:50%;bottom:calc(18px + var(--safe-bottom));width:min(calc(100% - 30px),440px);transform:translateX(-50%);display:grid;justify-items:center;gap:8px;pointer-events:none; }.toast { min-height:44px;max-width:100%;display:flex;align-items:center;gap:9px;padding:10px 15px;border-radius:22px;color:#fff;background:#24343d;box-shadow:var(--shadow-lg);font-size:13px;animation:toastIn .28s cubic-bezier(.2,1.2,.3,1) both;pointer-events:auto}.toast.success i{color:#68df98}.toast.error i{color:#ff7169}.toast.info i{color:#62c9ff}.toast.leaving{animation:toastOut .2s forwards}
.notification-banner { position:fixed;z-index:2100;top:10px;left:50%;width:min(calc(100% - 20px),460px);min-height:70px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:10px;border-radius:16px;color:var(--text-primary);background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--shadow-xl);backdrop-filter:blur(16px);animation:notificationIn .3s both}.notification-banner-main{min-width:0;flex:1}.notification-banner strong,.notification-banner span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-banner span{color:var(--text-secondary);font-size:12px}.notification-banner-actions{display:flex;gap:3px}.notification-banner-actions button{min-height:36px;padding:0 8px;border-radius:10px;color:var(--primary);background:transparent;font-size:11px;font-weight:700}
.ripple { position:absolute;border-radius:50%;background:currentColor;opacity:.18;transform:scale(0);animation:ripple .45s ease-out;pointer-events:none; }

/* Groups, channels, status, calls, communities */
.selected-people { min-height:0;display:flex;gap:10px;padding:0 12px;overflow-x:auto;background:var(--surface);transition:.2s}.selected-people:not(:empty){padding-top:10px;padding-bottom:10px;border-bottom:1px solid var(--divider)}.selected-person{position:relative;width:50px;flex:0 0 50px;text-align:center;animation:popIn .2s}.selected-person .avatar{margin:auto}.selected-person span{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.selected-person button{position:absolute;right:0;top:-2px;width:18px;height:18px;border:2px solid var(--surface);border-radius:50%;color:#fff;background:var(--text-secondary);font-size:8px}
.member-check { width:22px;height:22px;border:2px solid var(--divider);border-radius:50%;display:grid;place-items:center;color:transparent;transition:.2s}.contact-row.selected .member-check{color:#fff;border-color:var(--primary);background:var(--primary)}
.cover-gradient { padding:27px 18px;color:#fff;background:linear-gradient(145deg,var(--primary-light),var(--primary-dark));text-align:center}.cover-gradient h1{margin:12px 0 3px;font-size:22px}.cover-gradient p{margin:0;opacity:.82;font-size:12px}
.channel-post { margin:10px 12px;padding:13px;border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm);animation:fadeUp .25s}.post-head{display:flex;align-items:center;gap:9px;margin-bottom:10px}.post-head div{min-width:0;flex:1}.post-head strong,.post-head small{display:block}.post-head small{color:var(--text-secondary);font-size:10px}.post-content{white-space:pre-wrap;font-size:14px}.post-media{margin:10px -4px 5px;border-radius:10px;overflow:hidden}.post-actions{display:grid;grid-template-columns:repeat(4,1fr);margin:12px -8px -8px;padding-top:7px;border-top:1px solid var(--divider)}.post-actions button{min-height:36px;color:var(--text-secondary);background:transparent;font-size:11px}.post-actions button.liked{color:var(--danger)}
.status-my { min-height:82px;display:flex;align-items:center;gap:13px;padding:11px 16px;background:var(--surface);border-bottom:1px solid var(--divider)}.status-avatar{position:relative}.status-avatar.has-status{padding:3px;border:2px solid var(--primary);border-radius:50%}.status-plus{position:absolute;right:-1px;bottom:-1px;width:22px;height:22px;display:grid;place-items:center;border:2px solid var(--surface);border-radius:50%;color:#fff;background:var(--primary);font-size:9px}.status-list-row{min-height:72px;display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--divider)}
.status-composer { position:absolute;inset:0;z-index:900;display:flex;flex-direction:column;color:#fff;background:#0088cc}.status-composer-top{height:62px;display:flex;align-items:center;justify-content:space-between;padding:7px}.status-text-input{min-height:0;flex:1;display:grid;place-items:center;padding:20px;text-align:center;outline:0;font-size:29px;font-weight:650}.status-text-input:empty::before{content:attr(data-placeholder);opacity:.58}.status-tools{display:flex;align-items:center;gap:9px;padding:10px;overflow-x:auto;background:rgba(0,0,0,.15)}.status-color{width:32px;height:32px;flex:0 0 32px;border:2px solid rgba(255,255,255,.45);border-radius:50%}.status-color.active{border-color:#fff;transform:scale(1.13)}
.status-viewer { position:absolute;z-index:1300;inset:0;display:flex;flex-direction:column;color:#fff;background:#07090a}.story-bars{position:absolute;z-index:2;top:10px;left:8px;right:8px;display:flex;gap:3px}.story-bar{height:3px;flex:1;border-radius:2px;background:rgba(255,255,255,.35);overflow:hidden}.story-bar span{display:block;height:100%;width:0;background:#fff}.story-bar.active span{animation:storyProgress 5s linear forwards}.story-bar.seen span{width:100%}.story-head{position:absolute;z-index:2;top:18px;left:8px;right:8px;height:56px;display:flex;align-items:center;gap:9px;padding:8px}.story-head div:nth-child(2){flex:1}.story-head strong,.story-head small{display:block;text-shadow:0 1px 4px #000}.story-head small{opacity:.8;font-size:10px}.story-content{min-height:0;flex:1;display:grid;place-items:center;padding:80px 20px;font-size:31px;text-align:center}.story-reply{min-height:61px;display:flex;align-items:center;gap:8px;padding:7px 12px calc(7px + var(--safe-bottom));background:linear-gradient(transparent,rgba(0,0,0,.65))}.story-reply input{min-width:0;flex:1;height:43px;padding:0 15px;border:1px solid rgba(255,255,255,.55);border-radius:22px;color:#fff;background:rgba(0,0,0,.25);outline:0}.story-reply input::placeholder{color:rgba(255,255,255,.75)}
.call-tabs { height:48px;display:flex;padding:6px 12px;background:var(--surface);border-bottom:1px solid var(--divider)}.call-tabs button{flex:1;border-radius:18px;color:var(--text-secondary);background:transparent;font-size:13px;font-weight:650}.call-tabs button.active{color:#fff;background:var(--primary)}.call-row{min-height:72px;display:flex;align-items:center;gap:12px;padding:9px 15px;background:var(--surface);border-bottom:1px solid var(--divider)}.call-row-main{min-width:0;flex:1}.call-row-main strong,.call-row-main span{display:block}.call-row-main span{margin-top:3px;color:var(--text-secondary);font-size:11px}.call-row.missed .call-row-main strong,.call-row.missed .call-direction{color:var(--danger)}.call-direction{color:var(--success);margin-right:4px}
.call-screen { position:absolute;z-index:1000;inset:0;display:flex;flex-direction:column;align-items:center;color:#fff;background:radial-gradient(circle at 50% 26%,#189edc,#00699f 56%,#004a78);animation:fadeIn .25s}.call-top{width:100%;height:62px;display:flex;justify-content:space-between;padding:8px}.call-person{margin-top:8vh;text-align:center}.call-avatar{margin:auto;box-shadow:0 0 0 12px rgba(255,255,255,.06),0 0 0 25px rgba(255,255,255,.035);animation:callPulse 2s infinite}.call-person h1{margin:28px 0 5px;font-size:27px}.call-person p{margin:0;opacity:.85}.call-controls{width:100%;margin-top:auto;padding:20px 25px calc(28px + var(--safe-bottom));display:grid;grid-template-columns:repeat(3,1fr);gap:20px 16px;background:linear-gradient(transparent,rgba(0,31,52,.55))}.call-control{display:flex;flex-direction:column;align-items:center;gap:7px;color:#fff;background:transparent;font-size:10px}.call-control i{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.18);font-size:18px;backdrop-filter:blur(8px)}.call-control.active i{color:#18252c;background:#fff}.call-end{grid-column:2}.call-end i{width:62px;height:62px;background:#ef3f45;font-size:23px}.video-call{background:linear-gradient(145deg,#172630,#071016)}.video-feed{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at center,#2e4654,#111c23)}.self-view{position:absolute;z-index:3;top:75px;right:14px;width:108px;height:148px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:15px;background:linear-gradient(145deg,#34596c,#18303d);box-shadow:var(--shadow-lg)}.video-controls{position:absolute;z-index:4;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-around;padding:18px 8px calc(22px + var(--safe-bottom));background:linear-gradient(transparent,rgba(0,0,0,.75))}.video-controls button{width:48px;height:48px;border-radius:50%;color:#fff;background:rgba(255,255,255,.2)}.video-controls .end{background:var(--danger)}video.video-feed{width:100%;height:100%;object-fit:cover}.video-placeholder{position:absolute;z-index:1;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(circle at center,#2e4654,#111c23)}.video-placeholder strong{font-size:22px}.video-call-status{position:absolute;z-index:5;top:20px;left:50%;transform:translateX(-50%);padding:6px 11px;border-radius:12px;background:rgba(0,0,0,.35);font-size:12px}.incoming-call-modal{overflow:visible}.incoming-call-rings{width:max-content;margin:10px auto 25px;border-radius:50%;box-shadow:0 0 0 12px rgba(0,136,204,.10),0 0 0 26px rgba(0,136,204,.05);animation:callPulse 1.8s infinite}.incoming-call-actions{display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:18px 30px 26px}.incoming-call-actions button{display:flex;flex-direction:column;align-items:center;gap:7px;background:transparent;font-size:11px}.incoming-call-actions i{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;color:#fff;font-size:20px}.incoming-decline i{background:var(--danger)}.incoming-accept i{background:var(--success)}
.community-card { margin:11px 12px;border-radius:17px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.community-head{display:flex;align-items:center;gap:12px;padding:13px;border-bottom:1px solid var(--divider)}.community-head .avatar{border-radius:15px}.community-head div:last-child{min-width:0;flex:1}.community-head strong,.community-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.community-head small{color:var(--text-secondary);font-size:11px}.announcement-row{min-height:60px;display:flex;align-items:center;gap:11px;padding:8px 13px}.announcement-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;color:#fff;background:#f0a126}

/* Profile and settings */
.login-security-hero { padding:28px 24px 22px;text-align:center;background:linear-gradient(180deg,var(--primary-lighter),var(--surface));border-bottom:1px solid var(--divider) }.login-security-hero h1{margin:13px 0 6px;font-size:22px}.login-security-hero p{max-width:360px;margin:auto;color:var(--text-secondary);font-size:12px;line-height:1.5}
.login-security-icon { width:78px;height:78px;display:grid;place-items:center;margin:auto;border-radius:25px;color:#fff;background:linear-gradient(145deg,var(--primary-light),var(--primary-dark));box-shadow:0 12px 26px rgba(0,136,204,.23);font-size:31px }
.login-method-status { margin:12px;border:1px solid var(--divider);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden }
.username-hero { padding:28px 24px 22px;text-align:center;background:linear-gradient(180deg,var(--primary-lighter),var(--surface));border-bottom:1px solid var(--divider) }.username-hero h1{margin:13px 0 6px;font-size:23px}.username-hero p{max-width:350px;margin:auto;color:var(--text-secondary);font-size:12px;line-height:1.5}
.username-at { width:78px;height:78px;display:grid;place-items:center;margin:auto;border-radius:25px;color:#fff;background:linear-gradient(145deg,var(--primary-light),var(--primary-dark));box-shadow:0 12px 26px rgba(0,136,204,.23);font-size:38px }
.cooldown-card { display:flex;align-items:center;gap:12px;margin:12px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--warning) 28%,var(--divider));border-radius:15px;background:color-mix(in srgb,var(--warning) 8%,var(--surface)) }.cooldown-card>i{color:var(--warning);font-size:22px}.cooldown-card div{min-width:0}.cooldown-card strong,.cooldown-card span{display:block}.cooldown-card strong{font-size:13px}.cooldown-card span{margin-top:3px;color:var(--text-secondary);font-size:10px;line-height:1.4}
.username-rules { display:grid;gap:8px;padding:12px 14px;border:1px solid var(--divider);border-radius:14px;color:var(--text-secondary);background:var(--surface-hover);font-size:11px }.username-rules i{width:18px;color:var(--success)}
.username-search-top { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:16px;background:var(--surface);border-bottom:1px solid var(--divider) }.username-search-top .btn{min-height:44px}
.username-result-card { margin:18px 14px;padding:18px;border:1px solid var(--divider);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-md);animation:fadeUp .28s }.username-result-head{display:flex;align-items:center;gap:14px}.username-result-head>div{min-width:0;flex:1}.username-result-head h2,.username-result-head p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.username-result-head h2{font-size:20px}.username-result-head p{margin-top:3px;color:var(--primary);font-size:13px}.username-result-bio{margin:14px 0;color:var(--text-secondary);font-size:13px}.verified-phone-chip{display:inline-flex!important;align-items:center;gap:5px;margin-top:7px;padding:4px 7px;border-radius:9px;color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--surface));font-size:9px;font-weight:700}
.profile-page-hero { padding:25px 18px 21px;background:linear-gradient(180deg,var(--primary-lighter),var(--surface));text-align:center}.profile-page-hero h1{margin:12px 0 2px;font-size:23px}.profile-page-hero p{margin:2px 0;color:var(--text-secondary);font-size:12px}.profile-page-hero .username{color:var(--primary)}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:0 12px 14px;padding:13px 0;background:var(--surface);border-radius:15px;box-shadow:var(--shadow-sm)}.profile-stat{text-align:center;border-right:1px solid var(--divider)}.profile-stat:last-child{border:0}.profile-stat strong,.profile-stat span{display:block}.profile-stat strong{font-size:17px}.profile-stat span{margin-top:2px;color:var(--text-secondary);font-size:9px}
.settings-profile { min-height:90px;display:flex;align-items:center;gap:13px;padding:13px 16px;background:var(--surface);border-bottom:8px solid var(--background)}.settings-profile-main{min-width:0;flex:1}.settings-profile-main strong,.settings-profile-main span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-profile-main strong{font-size:17px}.settings-profile-main span{margin-top:3px;color:var(--text-secondary);font-size:12px}.settings-group{margin-bottom:9px;background:var(--surface);border-top:1px solid var(--divider);border-bottom:1px solid var(--divider)}.settings-group-title{padding:13px 16px 5px;color:var(--primary);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.65px}.setting-row{min-height:58px;display:flex;align-items:center;gap:13px;padding:8px 15px;background:var(--surface);border-bottom:1px solid var(--divider)}.setting-row:last-child{border-bottom:0}.setting-icon{width:32px;text-align:center;color:var(--text-secondary);font-size:18px}.setting-main{min-width:0;flex:1}.setting-main strong,.setting-main small{display:block}.setting-main strong{font-size:14px;font-weight:600}.setting-main small{margin-top:2px;color:var(--text-secondary);font-size:11px}.setting-value{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:12px}.setting-row.danger,.setting-row.danger .setting-icon{color:var(--danger)}
.theme-options { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:8px 16px 18px}.theme-card{padding:6px;border:2px solid var(--divider);border-radius:14px;background:var(--surface);text-align:center;font-size:11px}.theme-card.active{color:var(--primary);border-color:var(--primary)}.theme-preview{height:70px;margin-bottom:6px;border-radius:9px;background:#f5f5f5;box-shadow:inset 0 0 0 1px #ddd;overflow:hidden}.theme-preview.dark{background:#142028;box-shadow:inset 0 0 0 1px #293942}.theme-preview.system{background:linear-gradient(90deg,#f5f5f5 50%,#142028 50%)}.theme-preview::before{content:"";display:block;height:17px;background:#0088cc}.theme-preview.dark::before{background:#202c33}.theme-preview::after{content:"";display:block;width:55%;height:9px;margin:12px 8px;border-radius:5px;background:#0088cc;box-shadow:10px 15px 0 #fff}.theme-preview.dark::after{background:#005c4b;box-shadow:10px 15px 0 #293942}
.wallpaper-grid { display:grid;grid-template-columns:repeat(6,1fr);gap:12px;padding:8px 14px 18px}.wallpaper-swatch{aspect-ratio:1;border:2px solid var(--surface);border-radius:50%;box-shadow:0 0 0 1px var(--divider);transition:.2s}.wallpaper-swatch.active{box-shadow:0 0 0 3px var(--primary);transform:scale(.9)}.gradient-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:8px 14px 18px}.gradient-swatch{height:70px;border:2px solid transparent;border-radius:13px}.gradient-swatch.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--primary)}.wallpaper-preview{height:190px;margin:10px 14px;border-radius:16px;background:var(--chat-bg);box-shadow:inset 0 0 0 1px rgba(0,0,0,.07);overflow:hidden;padding:20px}.preview-bubble{width:65%;margin:15px 0;padding:8px;border-radius:10px;background:var(--received-bubble);box-shadow:var(--shadow-sm);font-size:11px}.preview-bubble.sent{margin-left:auto;color:var(--sent-text);background:var(--sent-bubble)}
.range-wrap{padding:10px 18px 20px}.range-wrap input{width:100%;accent-color:var(--primary)}.range-labels{display:flex;justify-content:space-between;color:var(--text-secondary);font-size:10px}.bubble-options{display:grid;gap:10px;padding:8px 16px 18px}.bubble-option{display:flex;align-items:center;gap:12px;padding:12px;border:2px solid var(--divider);border-radius:14px;background:var(--surface)}.bubble-option.active{border-color:var(--primary)}.bubble-demo{width:80px;padding:7px;color:#fff;background:var(--primary);font-size:10px}.bubble-demo.rounded{border-radius:12px 12px 2px 12px}.bubble-demo.sharp{border-radius:4px}.bubble-demo.minimal{color:var(--text-primary);background:transparent;border-bottom:2px solid var(--primary)}
.storage-ring { --used: 5; width:140px;height:140px;display:grid;place-items:center;margin:22px auto;border-radius:50%;background:conic-gradient(var(--primary) calc(var(--used)*1%),var(--divider) 0);animation:ringIn 1s ease}.storage-ring::before{content:"";width:108px;height:108px;border-radius:50%;background:var(--surface)}.storage-ring div{position:absolute;text-align:center}.storage-ring strong,.storage-ring span{display:block}.storage-ring span{color:var(--text-secondary);font-size:10px}.storage-bar-row{display:grid;grid-template-columns:92px 1fr 54px;align-items:center;gap:8px;padding:6px 16px;font-size:11px}.storage-bar{height:7px;border-radius:5px;background:var(--divider);overflow:hidden}.storage-bar span{display:block;height:100%;width:var(--width,0);border-radius:inherit;background:var(--bar,var(--primary));transition:width 1s}.storage-size{text-align:right;color:var(--text-secondary)}
.qr-box { width:210px;height:210px;display:grid;grid-template-columns:repeat(var(--qr-size,21),1fr);grid-template-rows:repeat(var(--qr-size,21),1fr);gap:0;margin:15px auto;padding:12px;border-radius:12px;background:#fff;box-shadow:var(--shadow-md);image-rendering:pixelated}.qr-cell{background:transparent}.qr-cell.on{background:#07151d}.qr-note{text-align:center;color:var(--text-secondary);font-size:11px}
.faq-item{border-bottom:1px solid var(--divider);background:var(--surface)}.faq-question{min-height:54px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:transparent;text-align:left;font-weight:650;font-size:14px}.faq-answer{display:none;padding:0 16px 16px;color:var(--text-secondary);font-size:12px;line-height:1.55}.faq-item.open .faq-answer{display:block;animation:fadeUp .2s}.faq-item.open .faq-question i{transform:rotate(180deg)}
.legal-copy{padding:20px;color:var(--text-secondary);font-size:13px;line-height:1.65}.legal-copy h2,.legal-copy h3{color:var(--text-primary)}
.about-logo { width:100px;height:100px;display:grid;place-items:center;margin:24px auto 14px;border-radius:30px;color:#fff;background:linear-gradient(145deg,var(--primary-light),var(--primary-dark));box-shadow:0 15px 32px rgba(0,136,204,.24);font-size:48px;animation:float 3s ease-in-out infinite}.about-center{text-align:center}.about-center h1{margin:0;font-size:23px}.about-center p{margin:4px;color:var(--text-secondary);font-size:12px}.stars{display:flex;justify-content:center;gap:8px;margin:18px}.stars button{color:#ccd3d7;background:transparent;font-size:27px}.stars button.active{color:#ffc52f;animation:starPop .25s}

/* Utilities */
.hidden { display:none!important; }
.sr-only { position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important; }
.muted { color:var(--text-secondary)!important; }.danger-text{color:var(--danger)!important}.success-text{color:var(--success)!important}.primary-text{color:var(--primary)!important}
.text-center{text-align:center}.mt-0{margin-top:0}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.pad-16{padding:16px}.gap-8{gap:8px}.flex{display:flex}.items-center{align-items:center}.space-between{justify-content:space-between}.grow{flex:1;min-width:0}.nowrap{white-space:nowrap}.full-width{width:100%}
.skeleton { position:relative;overflow:hidden;color:transparent!important;background:var(--divider)!important;border-radius:8px!important}.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:shimmer 1.2s infinite}
.confetti { position:fixed;z-index:3000;top:-20px;width:9px;height:15px;pointer-events:none;animation:confettiFall 3s linear forwards; }
.emoji-rain { position:fixed;z-index:3000;top:-40px;pointer-events:none;font-size:25px;animation:emojiFall 2.8s linear forwards; }

/* Bubble style settings */
:root[data-bubble="sharp"] { --bubble-radius:4px; }
:root[data-bubble="minimal"] .message-bubble { color:var(--text-primary);background:color-mix(in srgb,var(--surface) 72%,transparent);border-left:2px solid var(--primary);box-shadow:none; }
:root[data-bubble="minimal"] .message-bubble::after { display:none; }

/* Animations */
@keyframes pageIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
@keyframes pageBackIn{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:none}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes pulseSoft{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes gradientShift{0%,100%{background-position:0 0}50%{background-position:100% 100%}}
@keyframes bounceDot{0%,60%,100%{transform:translateY(0);opacity:.55}30%{transform:translateY(-7px);opacity:1}}
@keyframes splashOut{to{opacity:0;transform:scale(.92)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shake{25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
@keyframes successPop{0%{opacity:0;transform:scale(.3) rotate(-30deg)}100%{opacity:1;transform:none}}
@keyframes popIn{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}
@keyframes fabItem{to{opacity:1;transform:none}}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}
@keyframes menuIn{from{opacity:0;transform:scale(.9) translateY(-5px)}to{opacity:1;transform:none}}
@keyframes modalIn{from{opacity:0;transform:scale(.9) translateY(8px)}to{opacity:1;transform:none}}
@keyframes toastIn{from{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateY(8px) scale(.96)}}
@keyframes notificationIn{from{opacity:0;transform:translate(-50%,-110%)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes ripple{to{transform:scale(3);opacity:0}}
@keyframes reactionIn{from{opacity:0;transform:translateX(-50%) scale(.5)}to{opacity:1;transform:translateX(-50%) scale(1)}}
@keyframes slideDown{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}
@keyframes targetFlash{0%,100%{background:transparent}35%{background:rgba(255,213,55,.42)}}
@keyframes wave{from{height:6px}to{height:25px}}
@keyframes storyProgress{from{width:0}to{width:100%}}
@keyframes callPulse{0%,100%{box-shadow:0 0 0 12px rgba(255,255,255,.06),0 0 0 25px rgba(255,255,255,.035)}50%{box-shadow:0 0 0 18px rgba(255,255,255,.08),0 0 0 35px rgba(255,255,255,.025)}}
@keyframes ringIn{from{background:conic-gradient(var(--primary) 0,var(--divider) 0)}}
@keyframes starPop{50%{transform:scale(1.35) rotate(10deg)}}
@keyframes shimmer{to{transform:translateX(100%)}}
@keyframes confettiFall{to{transform:translate3d(var(--drift),110vh,0) rotate(760deg);opacity:.7}}
@keyframes emojiFall{to{transform:translate3d(var(--drift),110vh,0) rotate(360deg);opacity:.8}}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important; }
}
@media (max-width:370px){
  .input-row{grid-template-columns:122px minmax(0,1fr)}.otp-boxes{gap:4px}.otp-box{width:43px}.header-actions .icon-btn{width:40px;flex-basis:40px}.message-bubble{max-width:82%}.attachment-grid{gap:15px 4px}.requirements{grid-template-columns:1fr}.action-grid{gap:1px}.profile-action{font-size:9px}
}
