/* =========================================================
   iOS 26 communication surfaces — Phone + Messages
   Both apps consume the canonical Vie variables directly.
   No app-local theme/layout alias layer is allowed here.
   ========================================================= */
.ios26-communication-app {
  color: var(--vie-text-primary);
  font-family: var(--vie-font-family);
  background: transparent;
}

/* Font Awesome Classic fill is the only icon system used in both apps,
   except the canonical Lucide search glyph below. */
.ios26-communication-app .fa-solid,
.ios26-communication-app .fas,
.ios26-fa-app-icon {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 900;
  font-synthesis: none;
}
.ios26-fa-app-icon {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  color: currentColor;
  font-size: 27px;
  line-height: 1;
  transform: scale(var(--app-glyph-scale));
  transform-origin: center;
}
.app-icon[data-icon="dock-phone"] { --app-glyph-scale: 1.01; }
.app-icon[data-icon="dock-message"] { --app-glyph-scale: 1.02; }

.ios26-lucide-search {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ios26-communication-shell {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: var(--vie-text-primary);
  background-color: var(--vie-page-background-color);
  background-image: var(--vie-page-wallpaper-image);
  background-position: var(--vie-page-wallpaper-position);
  background-size: var(--vie-page-wallpaper-size);
  background-repeat: var(--vie-page-wallpaper-repeat);
}
.ios26-communication-app button,
.ios26-communication-app input,
.ios26-communication-app textarea {
  font: inherit;
}
.ios26-communication-app button {
  color: inherit;
  touch-action: manipulation;
}
.ios26-communication-app input,
.ios26-communication-app textarea {
  color: var(--vie-text-primary);
  user-select: text;
  -webkit-user-select: text;
}
.ios26-communication-app input::placeholder,
.ios26-communication-app textarea::placeholder { color: var(--vie-text-muted); }
.ios26-communication-app button:focus-visible,
.ios26-communication-app input:focus-visible,
.ios26-communication-app textarea:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--vie-action-color) 15%, transparent);
  outline-offset: 2px;
}

.ios26-communication-topbar {
  position: relative;
  z-index: 10;
  flex: 0 0 var(--app-navbar-height);
  height: var(--app-navbar-height);
  min-height: var(--app-navbar-height);
  padding: var(--app-page-top-inset) var(--app-inline-inset) 0;
  display: grid;
  grid-template-columns: minmax(72px, 1fr) auto minmax(72px, 1fr);
  align-items: center;
  gap: 8px;
}
.ios26-communication-topbar > h1 {
  margin: 0;
  font-size: calc(17px * var(--vie-font-scale));
  line-height: 1.2;
  font-weight: 690;
  letter-spacing: -.02em;
  text-align: center;
}
.ios26-topbar-side {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 2px;
}
.ios26-topbar-side:last-child { justify-content: flex-end; }
.ios26-nav-icon,
.ios26-list-icon-button,
.ios26-fab,
.ios26-chip,
.ios26-key,
.ios26-message-add,
.ios26-message-send {
  border: 0;
}
.ios26-nav-text,
.ios26-circle-action,
.ios26-dock-button,
.ios26-call-control {
  border: 0;
  background: transparent;
}
.ios26-nav-icon {
  width: 38px;
  height: 38px;
  padding: 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--vie-nav-icon-color);
  background: color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong));
  font-size: calc(16px * var(--vie-font-scale));
}
.ios26-nav-text {
  min-height: 38px;
  padding: 0 5px;
  font-size: calc(16px * var(--vie-font-scale));
  line-height: 1;
  font-weight: 520;
  color: var(--vie-action-color);
}
.ios26-nav-icon.is-plain { background: transparent; }

.ios26-communication-content {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}
.ios26-root-view,
.ios26-stack-view {
  position: absolute;
  inset: 0;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}
.ios26-root-view.is-active,
.ios26-stack-view.is-active { z-index: 2; }
.ios26-scroll {
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.ios26-scroll::-webkit-scrollbar { display: none; }
.ios26-scroll.with-bottom-dock { padding-bottom: calc(86px + calc(var(--vie-safe-bottom) + 8px)); }
.ios26-section-pad { padding-inline: var(--app-inline-inset); }
.ios26-large-title {
  margin: 4px 0 18px;
  font-size: calc(34px * var(--vie-font-scale));
  line-height: 1.02;
  font-weight: 760;
  letter-spacing: -.055em;
}
.ios26-section-title-row {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 6px;
}
.ios26-section-title-row h2 {
  margin: 0;
  font-size: calc(22px * var(--vie-font-scale));
  line-height: 1.15;
  font-weight: 730;
  letter-spacing: -.035em;
}
.ios26-section-title-row button,
.ios26-section-title-row span {
  border: 0;
  background: transparent;
  color: var(--vie-action-color);
  font-size: calc(14px * var(--vie-font-scale));
}

.ios26-search-field {
  min-height: 39px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border-radius: 13px;
  color: var(--vie-text-muted);
  background: color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong));
}
.ios26-search-field input {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: calc(16px * var(--vie-font-scale));
}

.ios26-avatar {
  --ios26-avatar-size: 48px;
  width: var(--ios26-avatar-size);
  height: var(--ios26-avatar-size);
  flex: 0 0 var(--ios26-avatar-size);
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  color: var(--vie-text-secondary);
  background: color-mix(in srgb, var(--vie-action-color) 25%, var(--vie-page-soft-surface));
  font-size: calc(17px * var(--vie-font-scale));
  font-weight: 720;
  letter-spacing: -.02em;
}
.ios26-avatar.tone-2 { background: color-mix(in srgb, var(--vie-text-primary) 12%, var(--vie-page-surface-strong)); }
.ios26-avatar.tone-3 { color: var(--vie-page-background-color); background: color-mix(in srgb, var(--vie-action-color) 11%, var(--vie-text-primary)); }
.ios26-avatar.has-icon { font-size: calc(19px * var(--vie-font-scale)); }

.ios26-list {
  overflow: hidden;
  border-radius: 17px;
  background: var(--vie-page-surface-strong);
}
.ios26-list-row {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 64px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 8px 12px;
  border: 0;
  background: transparent;
  text-align: left;
}
.ios26-list-row + .ios26-list-row::before {
  content: "";
  position: absolute;
  top: 0;
  right: 12px;
  left: 71px;
  height: .5px;
  background: var(--vie-page-divider-soft);
}
.ios26-row-copy { min-width: 0; }
.ios26-row-copy strong,
.ios26-row-copy small,
.ios26-row-copy p {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ios26-row-copy strong {
  font-size: calc(16px * var(--vie-font-scale));
  line-height: 1.25;
  font-weight: 650;
  letter-spacing: -.015em;
}
.ios26-row-copy small,
.ios26-row-copy p {
  margin-top: 2px;
  color: var(--vie-text-muted);
  font-size: calc(13px * var(--vie-font-scale));
  line-height: 1.25;
}
.ios26-row-meta {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  color: var(--vie-text-muted);
  font-size: calc(12px * var(--vie-font-scale));
  white-space: nowrap;
}
.ios26-row-meta i { color: var(--vie-text-faint); font-size: calc(11px * var(--vie-font-scale)); }
.ios26-list-icon-button {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--vie-action-color);
  background: color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong));
  font-size: calc(14px * var(--vie-font-scale));
}

/* Phone --------------------------------------------------- */
.ios26-phone-favorites {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 76px;
  gap: 12px;
  overflow-x: auto;
  margin: 7px calc(var(--app-inline-inset) * -1) 17px;
  padding: 0 var(--app-inline-inset) 4px;
  scrollbar-width: none;
}
.ios26-phone-favorites::-webkit-scrollbar { display: none; }
.ios26-favorite {
  width: 76px;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: center;
}
.ios26-favorite .ios26-avatar {
  --ios26-avatar-size: 68px;
  margin: 0 auto 7px;
}
.ios26-favorite strong,
.ios26-favorite small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ios26-favorite strong { font-size: calc(12px * var(--vie-font-scale)); font-weight: 600; }
.ios26-favorite small { margin-top: 2px; color: var(--vie-text-muted); font-size: calc(10px * var(--vie-font-scale)); }
.ios26-phone-unified-list { margin-bottom: 18px; }
.ios26-call-type {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.ios26-call-type i { color: var(--vie-text-muted); font-size: calc(10px * var(--vie-font-scale)); }
.ios26-missed .ios26-row-copy strong,
.ios26-missed .ios26-call-type { color: var(--vie-danger, var(--vie-action-color)); }
.ios26-voicemail-preview { white-space: normal; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }

.ios26-screening-view,
.ios26-voicemail-detail { padding: 8px var(--app-inline-inset) calc(28px + var(--vie-safe-bottom)); }
.ios26-call-feature-hero { display:flex; flex-direction:column; align-items:center; padding:18px 0 20px; text-align:center; }
.ios26-call-feature-hero .ios26-avatar { --ios26-avatar-size:82px; margin-bottom:12px; font-size:calc(27px * var(--vie-font-scale)); }
.ios26-call-feature-hero small { color:var(--vie-text-muted); font-size:calc(12px * var(--vie-font-scale)); }
.ios26-call-feature-hero h2 { margin:4px 0 0; font-size:calc(24px * var(--vie-font-scale)); font-weight:690; letter-spacing:-.025em; }
.ios26-call-feature-hero p { max-width:280px; margin:8px auto 0; color:var(--vie-text-muted); font-size:calc(13px * var(--vie-font-scale)); line-height:1.5; }
.ios26-call-feature-card,
.ios26-voicemail-player,
.ios26-voicemail-transcript { padding:14px 15px; border-radius:17px; background:var(--vie-page-surface-strong); }
.ios26-call-feature-card small,
.ios26-voicemail-transcript small { display:block; margin-bottom:5px; color:var(--vie-text-muted); font-size:calc(11px * var(--vie-font-scale)); }
.ios26-call-feature-card strong { font-size:calc(16px * var(--vie-font-scale)); font-weight:660; }
.ios26-call-feature-card p,
.ios26-voicemail-transcript p { margin:7px 0 0; color:var(--vie-text-secondary); font-size:calc(14px * var(--vie-font-scale)); line-height:1.55; }
.ios26-screening-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:18px; }
.ios26-screening-actions button { display:flex; flex-direction:column; align-items:center; gap:8px; min-height:92px; padding:12px; border:0; border-radius:18px; background:var(--vie-page-surface-strong); }
.ios26-screening-actions button > span { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; color:var(--vie-page-background-color); background:var(--vie-action-color); font-size:calc(18px * var(--vie-font-scale)); }
.ios26-screening-actions button:first-child > span { color:var(--vie-danger, var(--vie-action-color)); background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); }
.ios26-screening-actions strong { font-size:calc(13px * var(--vie-font-scale)); font-weight:620; }
.ios26-voicemail-player { margin-top:8px; display:grid; grid-template-columns:minmax(0,1fr) 46px; align-items:center; gap:12px; }
.ios26-voicemail-player > div { min-width:0; display:flex; flex-direction:column; gap:4px; }
.ios26-voicemail-player strong { font-size:calc(15px * var(--vie-font-scale)); font-weight:650; }
.ios26-voicemail-player small { color:var(--vie-text-muted); font-size:calc(11px * var(--vie-font-scale)); }
.ios26-voicemail-player button { width:46px; height:46px; display:grid; place-items:center; border:0; border-radius:50%; color:var(--vie-page-background-color); background:var(--vie-action-color); font-size:calc(16px * var(--vie-font-scale)); }
.ios26-voicemail-transcript { margin-top:10px; }
.ios26-voicemail-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
.ios26-voicemail-actions button { min-height:44px; display:flex; align-items:center; justify-content:center; gap:8px; border:0; border-radius:14px; color:var(--vie-action-color); background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); font-size:calc(13px * var(--vie-font-scale)); }
.ios26-voicemail-actions button:last-child { color:var(--vie-danger, var(--vie-action-color)); }

.ios26-phone-app.has-stack .ios26-phone-dock { display:none; }

.ios26-phone-dock {
  position: absolute;
  z-index: 12;
  right: 12px;
  bottom: calc(var(--vie-safe-bottom) + 8px);
  left: 12px;
  height: 62px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: center;
  padding: 5px;
  border: .5px solid var(--vie-page-divider-soft);
  border-radius: 24px;
  background: var(--vie-page-surface-strong);
}
.ios26-dock-button {
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-radius: 19px;
  color: var(--vie-text-muted);
  font-size: calc(12px * var(--vie-font-scale));
  font-weight: 590;
}
.ios26-dock-button i { font-size: calc(18px * var(--vie-font-scale)); }
.ios26-dock-button .ios26-lucide-search { width: 20px; height: 20px; stroke-width: 2.6; }
.ios26-dock-button.is-active {
  color: var(--vie-action-color);
  background: color-mix(in srgb, var(--vie-action-color) 15%, transparent);
}

.ios26-contact-card {
  margin-bottom: 16px;
  padding: 16px;
  border-radius: 17px;
  background: var(--vie-page-surface-strong);
}
.ios26-contact-card > button {
  width: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}
.ios26-contact-card .ios26-avatar { --ios26-avatar-size: 58px; }
.ios26-contact-card strong { display: block; font-size: calc(18px * var(--vie-font-scale)); font-weight: 700; }
.ios26-contact-card small { display: block; margin-top: 3px; color: var(--vie-text-muted); font-size: calc(13px * var(--vie-font-scale)); }
.ios26-contact-index-title {
  margin: 18px 0 6px 2px;
  color: var(--vie-text-muted);
  font-size: calc(12px * var(--vie-font-scale));
  font-weight: 700;
}
.ios26-contact-list .ios26-list-row { min-height: 54px; }
.ios26-contact-list .ios26-list-row + .ios26-list-row::before { left: 57px; }
.ios26-contact-list .ios26-avatar { --ios26-avatar-size: 38px; font-size: calc(13px * var(--vie-font-scale)); }

.ios26-phone-search-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 18px;
}
.ios26-chip {
  min-height: 32px;
  padding: 0 12px;
  border-radius: 16px;
  color: var(--vie-text-secondary);
  background: color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong));
  font-size: calc(13px * var(--vie-font-scale));
}

.ios26-sheet-mask {
  position: absolute;
  inset: 0;
  z-index: 40;
  display: flex;
  align-items: flex-end;
  justify-content: stretch;
  background: var(--modal-backdrop-color);
}
.ios26-sheet {
  width: 100%;
  max-height: min(78%, 620px);
  overflow-y: auto;
  padding: 8px var(--app-inline-inset) calc(16px + var(--vie-safe-bottom));
  border-radius: 28px 28px 0 0;
  color: var(--vie-text-primary);
  background: var(--vie-page-surface-strong);
  scrollbar-width: none;
}
.ios26-sheet::-webkit-scrollbar { display: none; }
.ios26-sheet-handle { width: 36px; height: 5px; margin: 2px auto 14px; border-radius: 5px; background: color-mix(in srgb, var(--vie-text-primary) 13%, var(--vie-page-surface-strong)); }
.ios26-sheet header { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; }
.ios26-sheet header h2 { margin: 0; font-size: calc(20px * var(--vie-font-scale)); font-weight: 730; }
.ios26-sheet-list { overflow: hidden; border-radius: 16px; background: color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); }
.ios26-sheet-list button {
  position: relative;
  width: 100%;
  min-height: 48px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: calc(15px * var(--vie-font-scale));
}
.ios26-sheet-list button + button::before { content:""; position:absolute; top:0; right:14px; left:48px; height:.5px; background:var(--vie-page-divider-soft); }
.ios26-sheet-list button > i:first-child { color: var(--vie-nav-icon-color); text-align:center; }
.ios26-sheet-list button > i:last-child { color: var(--vie-action-color); }

.ios26-dialer {
  padding-inline: clamp(26px, 10vw, 50px);
  text-align: center;
}
.ios26-dialer-number {
  min-height: 62px;
  margin: 2px 0 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-size: calc(29px * var(--vie-font-scale));
  line-height: 1.1;
  font-weight: 480;
  letter-spacing: .01em;
}
.ios26-keypad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(12px, 3.2vw, 18px) clamp(20px, 6vw, 30px);
  justify-items: center;
}
.ios26-key {
  width: clamp(62px, 18vw, 76px);
  aspect-ratio: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--vie-text-primary) 13%, var(--vie-page-surface-strong));
  font-size: calc(26px * var(--vie-font-scale));
  line-height: 1;
  font-weight: 480;
}
.ios26-key small { margin-top: 4px; font-size: calc(8px * var(--vie-font-scale)); font-weight: 700; letter-spacing: .18em; }
.ios26-dialer-actions { min-height: 82px; display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; justify-items: center; }
.ios26-dialer-call {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: var(--vie-page-background-color);
  background: var(--vie-action-color);
  font-size: calc(24px * var(--vie-font-scale));
}
.ios26-dialer-delete { width: 48px; height:48px; display:grid; place-items:center; border:0; border-radius:50%; color:var(--vie-nav-icon-color); background:transparent; }

.ios26-contact-detail-scroll,
.ios26-call-screen-scroll { padding: 8px var(--app-inline-inset) calc(20px + var(--vie-safe-bottom)); }
.ios26-contact-hero { text-align:center; }
.ios26-contact-hero .ios26-avatar { --ios26-avatar-size: 94px; margin: 4px auto 12px; font-size: calc(30px * var(--vie-font-scale)); }
.ios26-contact-hero h2 { margin:0; font-size:calc(26px * var(--vie-font-scale)); font-weight:700; letter-spacing:-.035em; }
.ios26-contact-hero p { margin:4px 0 0; color:var(--vie-text-muted); font-size:calc(13px * var(--vie-font-scale)); }
.ios26-contact-actions { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:18px 0; }
.ios26-circle-action { min-width:0; display:flex; flex-direction:column; align-items:center; gap:6px; font-size:calc(11px * var(--vie-font-scale)); color:var(--vie-text-secondary); }
.ios26-circle-action > span { width:50px; height:50px; display:grid; place-items:center; border-radius:50%; color:var(--vie-action-color); background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); font-size:calc(17px * var(--vie-font-scale)); }
.ios26-contact-info-list { overflow:hidden; border-radius:17px; background:var(--vie-page-surface-strong); }
.ios26-contact-info-row { position:relative; min-height:58px; padding:10px 14px; }
.ios26-contact-info-row + .ios26-contact-info-row::before { content:""; position:absolute; top:0; right:14px; left:14px; height:.5px; background:var(--vie-page-divider-soft); }
.ios26-contact-info-row small { display:block; color:var(--vie-text-muted); font-size:calc(12px * var(--vie-font-scale)); }
.ios26-contact-info-row strong { display:block; margin-top:3px; color:var(--vie-action-color); font-size:calc(15px * var(--vie-font-scale)); font-weight:520; }

.ios26-call-screen-scroll { display:flex; flex-direction:column; min-height:100%; }
.ios26-active-call-identity { margin-top:7vh; text-align:center; }
.ios26-active-call-identity h2 { margin:0; font-size:calc(31px * var(--vie-font-scale)); font-weight:610; letter-spacing:-.04em; }
.ios26-active-call-identity p { margin:7px 0 0; color:var(--vie-text-muted); font-size:calc(14px * var(--vie-font-scale)); }
.ios26-hold-assistant { margin:24px auto 0; max-width:320px; padding:12px 14px; border-radius:16px; background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); text-align:left; }
.ios26-hold-assistant strong { display:block; font-size:calc(13px * var(--vie-font-scale)); }
.ios26-hold-assistant p { margin:3px 0 0; color:var(--vie-text-muted); font-size:calc(12px * var(--vie-font-scale)); line-height:1.4; }
.ios26-call-controls { margin:auto 0 22px; display:grid; grid-template-columns:repeat(3,1fr); gap:18px 12px; justify-items:center; }
.ios26-call-control { display:flex; flex-direction:column; align-items:center; gap:7px; color:var(--vie-text-secondary); font-size:calc(11px * var(--vie-font-scale)); }
.ios26-call-control > span { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; background:color-mix(in srgb, var(--vie-text-primary) 13%, var(--vie-page-surface-strong)); font-size:calc(20px * var(--vie-font-scale)); }
.ios26-end-call { width:68px; height:68px; margin:0 auto; display:grid; place-items:center; border:0; border-radius:50%; color:var(--vie-page-background-color); background:var(--vie-danger, var(--vie-action-color)); font-size:calc(23px * var(--vie-font-scale)); transform:rotate(135deg); }

/* Messages ------------------------------------------------ */
.ios26-messages-app .ios26-communication-topbar { grid-template-columns:minmax(94px,1fr) auto minmax(94px,1fr); }
.ios26-message-list-scroll { padding: 2px var(--app-inline-inset) calc(72px + var(--vie-safe-bottom)); }
.ios26-message-pins {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px 8px;
  margin: 10px 0 18px;
}
.ios26-message-pin { min-width:0; padding:0; border:0; background:transparent; text-align:center; }
.ios26-message-pin .ios26-avatar { --ios26-avatar-size: min(17vw, 62px); margin:0 auto 7px; }
.ios26-message-pin strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:calc(11px * var(--vie-font-scale)); font-weight:600; }
.ios26-message-list { margin-top: 5px; }
.ios26-message-row {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 72px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 8px 0;
  border: 0;
  background: transparent;
  text-align: left;
}
.ios26-message-row + .ios26-message-row::before { content:""; position:absolute; top:0; right:0; left:61px; height:.5px; background:var(--vie-page-divider-soft); }
.ios26-message-row .ios26-avatar { --ios26-avatar-size: 50px; }
.ios26-message-row .ios26-row-copy p { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.ios26-message-row.is-unread::after { content:""; position:absolute; left:-11px; width:7px; height:7px; border-radius:50%; background:var(--vie-action-color); }
.ios26-message-row.is-unread .ios26-row-copy strong { font-weight:760; }

.ios26-message-bottom-search {
  position: absolute;
  z-index: 13;
  right: 68px;
  bottom: calc(var(--vie-safe-bottom) + 8px);
  left: 12px;
  min-height: 49px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  border: .5px solid var(--vie-page-divider-soft);
  border-radius: 22px;
  color: var(--vie-text-muted);
  background: var(--vie-page-surface-strong);
}
.ios26-message-bottom-search input { width:100%; min-width:0; height:44px; border:0; outline:0; background:transparent; font-size:calc(15px * var(--vie-font-scale)); }
.ios26-message-bottom-search .ios26-lucide-search { width:20px; height:20px; stroke-width:2.6; }
.ios26-fab {
  position: absolute;
  z-index: 13;
  right: 12px;
  bottom: calc(var(--vie-safe-bottom) + 8px);
  width: 49px;
  height: 49px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--vie-page-background-color);
  background: var(--vie-action-color);
  font-size: calc(17px * var(--vie-font-scale));
}

.ios26-message-conversation {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}
.ios26-conversation-contact {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 2px 6px;
  border: 0;
  background: transparent;
}
.ios26-conversation-contact .ios26-avatar { --ios26-avatar-size: 32px; font-size:calc(11px * var(--vie-font-scale)); }
.ios26-conversation-contact strong { max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:calc(11px * var(--vie-font-scale)); font-weight:650; }
.ios26-chat-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 14px var(--app-inline-inset) 92px;
  overscroll-behavior: contain;
  scrollbar-width: none;
}
.ios26-chat-scroll::-webkit-scrollbar { display:none; }
.ios26-chat-date { margin:6px 0 15px; color:var(--vie-text-muted); text-align:center; font-size:calc(10px * var(--vie-font-scale)); }
.ios26-bubble-row { display:flex; align-items:flex-end; gap:8px; margin:8px 0; }
.ios26-bubble-row.is-outgoing { justify-content:flex-end; }
.ios26-bubble-row .ios26-avatar { --ios26-avatar-size:30px; font-size:calc(10px * var(--vie-font-scale)); }
.ios26-bubble {
  max-width: 76%;
  padding: 8px 12px;
  border-radius: 18px;
  color: var(--vie-text-primary);
  background: color-mix(in srgb, var(--vie-text-primary) 13%, var(--vie-page-surface-strong));
  font-size: calc(15px * var(--vie-font-scale));
  line-height: 1.34;
  white-space: pre-wrap;
  word-break: break-word;
}
.ios26-bubble-row.is-outgoing .ios26-bubble { color:var(--vie-page-background-color); background:var(--vie-action-color); }
.ios26-chat-poll { max-width:86%; padding:13px; border-radius:19px; background:var(--vie-page-surface-strong); }
.ios26-chat-poll h3 { margin:0 0 9px; font-size:calc(15px * var(--vie-font-scale)); }
.ios26-chat-poll button { width:100%; min-height:36px; display:flex; align-items:center; justify-content:space-between; margin-top:6px; padding:0 10px; border:0; border-radius:11px; background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); text-align:left; }
.ios26-chat-poll button span { color:var(--vie-action-color); font-size:calc(12px * var(--vie-font-scale)); }

.ios26-message-composer {
  position: absolute;
  z-index: 12;
  right: 10px;
  bottom: calc(var(--vie-safe-bottom) + 8px);
  left: 10px;
  min-height: 48px;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 40px;
  align-items: end;
  gap: 7px;
}
.ios26-message-add,
.ios26-message-send { width:40px; height:40px; display:grid; place-items:center; border-radius:50%; }
.ios26-message-add { color:var(--vie-text-secondary); background:color-mix(in srgb, var(--vie-text-primary) 13%, var(--vie-page-surface-strong)); font-size:calc(16px * var(--vie-font-scale)); }
.ios26-message-send { color:var(--vie-page-background-color); background:var(--vie-action-color); font-size:calc(14px * var(--vie-font-scale)); }
.ios26-message-input {
  min-height: 40px;
  max-height: 104px;
  display: flex;
  align-items: flex-end;
  border: .5px solid var(--vie-page-divider);
  border-radius: 20px;
  background: var(--vie-page-surface-strong);
}
.ios26-message-input textarea { width:100%; min-height:38px; max-height:102px; resize:none; overflow-y:auto; padding:9px 12px; border:0; outline:0; background:transparent; font-size:calc(15px * var(--vie-font-scale)); line-height:20px; }

.ios26-compose-scroll { padding:10px var(--app-inline-inset) 84px; }
.ios26-compose-to { min-height:48px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; border-bottom:.5px solid var(--vie-page-divider-soft); }
.ios26-compose-to > span { color:var(--vie-text-muted); font-size:calc(15px * var(--vie-font-scale)); }
.ios26-compose-to input { min-width:0; height:44px; border:0; outline:0; background:transparent; font-size:calc(15px * var(--vie-font-scale)); }
.ios26-compose-body { min-height:220px; padding-top:12px; }
.ios26-compose-body textarea { width:100%; min-height:180px; resize:none; border:0; outline:0; background:transparent; font-size:calc(16px * var(--vie-font-scale)); line-height:1.45; }

.ios26-details-scroll { padding:8px var(--app-inline-inset) calc(24px + var(--vie-safe-bottom)); }
.ios26-details-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; margin:18px 0 14px; padding:3px; border-radius:13px; background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); }
.ios26-details-tabs button { min-height:34px; border:0; border-radius:10px; background:transparent; color:var(--vie-text-muted); font-size:calc(13px * var(--vie-font-scale)); }
.ios26-details-tabs button.is-active { color:var(--vie-text-primary); background:var(--vie-page-surface-strong); }
.ios26-details-panel { min-height:210px; }
.ios26-photo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; overflow:hidden; border-radius:16px; }
.ios26-photo-grid span { aspect-ratio:1; display:grid; place-items:center; background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); color:var(--vie-text-muted); font-size:calc(18px * var(--vie-font-scale)); }
.ios26-background-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.ios26-background-option { position:relative; min-height:108px; overflow:hidden; padding:0; border:0; border-radius:18px; background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); }
.ios26-background-option > span { position:absolute; right:8px; bottom:8px; left:8px; min-height:28px; display:flex; align-items:center; justify-content:center; border-radius:11px; color:var(--vie-text-primary); background:color-mix(in srgb,var(--vie-page-surface-strong) 86%,transparent); font-size:calc(12px * var(--vie-font-scale)); }
.ios26-background-option[data-bg="color"] { background:color-mix(in srgb, var(--vie-action-color) 28%, var(--vie-page-surface-strong)); }
.ios26-background-option[data-bg="sky"] { background:color-mix(in srgb,var(--vie-action-color) 22%,var(--vie-page-surface-strong)); }
.ios26-background-option[data-bg="water"] { background:color-mix(in srgb,var(--vie-action-color) 14%,color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong))); }
.ios26-background-option[data-bg="aurora"] { background:color-mix(in srgb,var(--vie-action-color) 26%,color-mix(in srgb, var(--vie-text-primary) 13%, var(--vie-page-surface-strong))); }
.ios26-message-conversation[data-chat-background="color"] .ios26-chat-scroll { background:color-mix(in srgb,var(--vie-action-color) 8%,transparent); }
.ios26-message-conversation[data-chat-background="sky"] .ios26-chat-scroll { background:color-mix(in srgb,var(--vie-action-color) 7%,var(--vie-page-background-color)); }
.ios26-message-conversation[data-chat-background="water"] .ios26-chat-scroll { background:color-mix(in srgb,var(--vie-action-color) 5%,color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong))); }
.ios26-message-conversation[data-chat-background="aurora"] .ios26-chat-scroll { background:color-mix(in srgb,var(--vie-action-color) 9%,color-mix(in srgb, var(--vie-text-primary) 13%, var(--vie-page-surface-strong))); }

.ios26-sheet-note { margin:2px 12px 10px; color:var(--vie-text-muted); font-size:calc(12px * var(--vie-font-scale)); line-height:1.45; }
.ios26-message-filter-empty { padding:42px 20px; text-align:center; color:var(--vie-text-muted); }
.ios26-message-filter-empty > i { display:block; margin-bottom:12px; color:var(--vie-text-faint); font-size:calc(30px * var(--vie-font-scale)); }
.ios26-message-filter-empty strong { display:block; color:var(--vie-text-secondary); font-size:calc(15px * var(--vie-font-scale)); font-weight:640; }
.ios26-message-filter-empty p { margin:6px 0 0; font-size:calc(12px * var(--vie-font-scale)); line-height:1.45; }

.ios26-tools-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px 8px; padding:8px 0 12px; }
.ios26-tool-button { min-width:0; display:flex; flex-direction:column; align-items:center; gap:7px; padding:0; border:0; background:transparent; color:var(--vie-text-secondary); font-size:calc(11px * var(--vie-font-scale)); }
.ios26-tool-button > span { width:50px; height:50px; display:grid; place-items:center; border-radius:17px; background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); color:var(--vie-nav-icon-color); font-size:calc(17px * var(--vie-font-scale)); }
.ios26-poll-editor { padding-bottom:12px; }
.ios26-poll-editor input { width:100%; min-height:46px; margin-top:8px; padding:0 12px; border:0; outline:0; border-radius:13px; background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); font-size:calc(15px * var(--vie-font-scale)); }
.ios26-poll-send { width:100%; min-height:44px; margin-top:12px; border:0; border-radius:14px; color:var(--vie-page-background-color); background:var(--vie-action-color); font-size:calc(15px * var(--vie-font-scale)); font-weight:650; }

.ios26-deleted-help { margin:4px 0 12px; color:var(--vie-text-muted); font-size:calc(13px * var(--vie-font-scale)); line-height:1.45; }
.ios26-deleted-list { margin-top:10px; overflow:hidden; border-radius:17px; background:var(--vie-page-surface-strong); }
.ios26-deleted-row { position:relative; min-height:66px; display:grid; grid-template-columns:28px auto minmax(0,1fr); align-items:center; gap:10px; padding:8px 12px; }
.ios26-deleted-row + .ios26-deleted-row::before { content:""; position:absolute; top:0; right:12px; left:82px; height:.5px; background:var(--vie-page-divider-soft); }
.ios26-deleted-row input { width:20px; height:20px; accent-color:var(--vie-action-color); }
.ios26-deleted-actions { position:absolute; right:var(--app-inline-inset); bottom:calc(10px + var(--vie-safe-bottom)); left:var(--app-inline-inset); display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ios26-deleted-actions button { min-height:44px; border:0; border-radius:14px; color:var(--vie-action-color); background:color-mix(in srgb, var(--vie-text-primary) 8%, var(--vie-page-surface-strong)); font-size:calc(14px * var(--vie-font-scale)); font-weight:620; }
.ios26-deleted-actions button:last-child { color:var(--vie-danger, var(--vie-action-color)); }

@media (max-width: 360px) {
  .ios26-message-pins { gap-inline:5px; }
  .ios26-phone-favorites { grid-auto-columns:70px; }
  .ios26-favorite { width:70px; }
  .ios26-favorite .ios26-avatar { --ios26-avatar-size:62px; }
  .ios26-contact-actions { gap:4px; }
}
@media (prefers-reduced-motion: reduce) {
  .ios26-communication-app *,
  .ios26-communication-app *::before,
  .ios26-communication-app *::after { scroll-behavior:auto; transition:none; animation:none; }
}
