.desktop-update-notice {
  position: fixed; right: 14px; bottom: 14px; z-index: 10050;
  display: flex; align-items: center; gap: 9px;
  width: max-content; max-width: min(360px, calc(100vw - 28px));
  padding: 9px 11px; min-height: 52px; border-radius: 14px; -webkit-app-region: no-drag;
  background: var(--theme-surface-elevated, #12151c);
  color: var(--custom-panel-text, var(--theme-text-primary, #f4f5f8));
  border: 1px solid var(--custom-panel-border, var(--theme-border-subtle, #363941));
  box-shadow: 0 12px 36px #0003; font: 12px/1.4 system-ui;
  animation: desktop-update-in .2s ease-out;
}
.desktop-update-notice[hidden], .desktop-update-notice [hidden] { display: none; }
.desktop-update-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--custom-panel-success, var(--theme-success, #24c88a)); }
.desktop-update-notice[data-phase="error"] .desktop-update-dot { background: var(--theme-warning, #e0a740); }
.desktop-update-copy { min-width: 0; display: grid; gap: 2px; }
.desktop-update-copy strong { font-size: 12px; }
.desktop-update-copy strong,.desktop-update-copy span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.desktop-update-copy span { font-size:11px; }
.desktop-update-copy span { color: var(--custom-panel-secondary, var(--theme-text-secondary, #bac2d0)); }
.desktop-update-action {
  display:inline-flex; align-items:center; justify-content:center; gap:6px; flex-shrink: 0; padding: 7px 10px; border: 0; border-radius: 10px;
  background: var(--desktop-update-accent); color: var(--desktop-update-on-accent);
  font: 600 12px/1.4 system-ui; cursor: pointer;
  transition: transform .15s ease, filter .15s ease;
}
.desktop-update-action:hover { filter: brightness(1.08); transform: translateY(-1px); }
.desktop-update-action:active { transform: scale(.97); }
.desktop-update-action:disabled { opacity: .6; cursor: wait; transform: none; }
.desktop-update-dismiss { display: grid; place-items: center; width: 20px; height: 24px; flex:none; padding: 3px; border: 0; border-radius: 7px; background: transparent; color: inherit; cursor: pointer; opacity: .65; }
.desktop-update-dismiss svg { width: 14px; height: 14px; }
.desktop-update-dismiss:hover { opacity: 1; background: var(--theme-surface-hover, #ffffff14); }
.desktop-update-notice button:focus-visible { outline: 2px solid var(--desktop-update-accent); outline-offset: 3px; }
@keyframes desktop-update-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (max-width: 340px) { .desktop-update-notice { gap:6px; padding:8px; } .desktop-update-action { padding:7px; } }
@media (prefers-reduced-motion: reduce) { .desktop-update-notice { animation: none; } .desktop-update-action { transition: none; } }

/* Update actions use the active theme; dark keeps the same blue as its switches. */
:root { --desktop-update-accent:var(--custom-panel-accent,var(--theme-primary,#8060ef)); --desktop-update-on-accent:var(--theme-on-primary,#fff); }
:root[data-theme="dark"] { --desktop-update-accent:#3498ff; --desktop-update-on-accent:#fff; }
.desktop-update-check {
  display:flex; align-items:center; justify-content:center; gap:9px; width:100%; min-height:38px;
  padding:9px 12px; border-radius:10px; border:1px solid color-mix(in srgb,var(--desktop-update-accent) 45%,var(--theme-border-subtle,#363941));
  background:color-mix(in srgb,var(--desktop-update-accent) 10%,var(--theme-surface-interactive,#15151b));
  color:var(--custom-panel-text,var(--theme-text-primary,#f4f5f8)); font:inherit; font-size:13px; font-weight:600; line-height:1.4; cursor:pointer;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.desktop-update-check svg { width:18px; height:18px; flex:none; color:var(--desktop-update-accent); }
.desktop-update-check:hover { background:color-mix(in srgb,var(--desktop-update-accent) 17%,var(--theme-surface-interactive,#15151b)); border-color:var(--desktop-update-accent); }
.desktop-update-check:active { transform:scale(.985); }
.desktop-update-check:focus-visible { outline:2px solid var(--desktop-update-accent); outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { .desktop-update-check { transition:none; } }

.desktop-update-action-icon { display:flex; align-items:center; }
.desktop-update-action-icon svg { width:13px; height:13px; }
.desktop-update-notice[data-phase="ready"] .desktop-update-dot { background:#14ca86; animation:desktop-update-breathe 2.6s ease-in-out infinite; }
@keyframes desktop-update-breathe { 0%,100% { opacity:.65; box-shadow:0 0 0 0 #14ca8600; } 50% { opacity:1; box-shadow:0 0 0 3px #14ca8620; } }
@media(prefers-reduced-motion:reduce) { .desktop-update-dot { animation:none!important; } }

/* Presentation controls remain clickable below the persistent notice. */
body:has(#detached-stream-host,.remote-control-surface) .desktop-update-notice { bottom:78px; }
@media(max-width:1000px) { body:has(#app > .call-shell) .desktop-update-notice { bottom:108px; } }