#programUpdateModal { padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
#programUpdateModal .modal { width: min(520px, 100%); max-height: calc(100dvh - 32px); margin: 2vh auto; display: flex; flex-direction: column; }
#programUpdateModal .modal-head, #programUpdateModal .modal-foot { flex: 0 0 auto; }
#programUpdateModal .modal-body { overflow: auto; min-width: 0; }
#programUpdateModal .modal-head h2 { line-height: 1.5; }
#programUpdateModal .close { flex: 0 0 36px; }
#programUpdateModal p { line-height: 1.7; overflow-wrap: anywhere; }
#programUpdateModal [hidden] { display: none !important; }
#programUpdateModal .program-update-version { margin-top: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; }
#programUpdateModal .program-update-version strong { font-size: 17px; }
#programUpdateModal .program-update-filename { font-size: 12px; color: var(--muted); }
#programUpdateModal progress { width: 100%; height: 12px; margin-top: 14px; accent-color: var(--navy); }
#programUpdateModal .program-update-ready { border: 1px solid var(--line); border-radius: 12px; margin-top: 16px; padding: 16px; }
#programUpdateModal .program-update-ready > div { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
#programUpdateModal .program-update-ready > div .btn { margin-left: auto; }
#programUpdateModal .program-update-ready label { display: block; font-size: 12px; font-weight: 600; margin: 12px 0 7px; }
#programUpdateModal input[type="password"] { width: 100%; min-width: 0; box-sizing: border-box; font-size: 16px; min-height: 42px; border: 1px solid var(--line); border-radius: 8px; padding: 9px 10px; }
#programUpdateMessage { margin: 16px 0 0; font-size: 13px; color: var(--navy); }
#programUpdateMessage[data-error="true"] { color: #a33424; }
#programUpdateModal .program-update-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; min-width: 0; }
#programUpdateModal .btn { min-height: 40px; white-space: normal; }
@media (max-width: 420px) {
  #programUpdateModal .modal-head, #programUpdateModal .modal-body, #programUpdateModal .modal-foot { padding: 16px; }
  #programUpdateModal .modal-head h2 { font-size: 17px; }
  #programUpdateModal .program-update-ready { padding: 12px; }
  #programUpdateModal .modal-foot { gap: 8px; }
}
