.mppwa-modal-open { overflow: hidden; }
.mppwa-launcher { position: fixed; right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); z-index: 2147483646; display: flex; align-items: center; gap: 10px; max-width: calc(100vw - 32px); padding: 9px 15px 9px 9px; border: 0; border-radius: 18px; background: var(--mppwa-color, #063b65); color: #fff; box-shadow: 0 10px 30px rgba(0, 0, 0, .25); text-align: left; cursor: pointer;  }
.mppwa-launcher img { width: 42px; height: 42px; border-radius: 10px; background: #fff; }
.mppwa-launcher span { display: grid; gap: 1px; }
.mppwa-launcher strong { font-size: 15px; line-height: 1.25; }
.mppwa-launcher small { font-size: 11px; line-height: 1.25; opacity: .88; }
.mppwa-shell, .mppwa-backdrop { position: fixed; inset: 0; }
.mppwa-shell { z-index: 2147483647; display: grid; place-items: center; padding: 20px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; }
.mppwa-backdrop { background: rgba(15, 23, 42, .62); backdrop-filter: blur(3px); }
.mppwa-dialog { position: relative; width: min(430px, 100%); max-height: calc(100vh - 40px); overflow: auto; box-sizing: border-box; padding: 28px; border-radius: 20px; background: #fff; color: #172033; box-shadow: 0 24px 80px rgba(0, 0, 0, .28); animation: mppwa-in .24s ease-out; }
.mppwa-close { position: absolute; top: 12px; right: 14px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #f1f5f9; color: #475569; font-size: 25px; line-height: 1; cursor: pointer; }
.mppwa-icon { display: block; width: 76px; height: 76px; margin: 0 auto 16px; border-radius: 17px; box-shadow: 0 8px 24px rgba(0, 0, 0, .14); }
.mppwa-dialog h2 { margin: 0 34px 8px; color: #172033; font-size: 24px; line-height: 1.25; text-align: center; }
.mppwa-lead { margin: 0 0 18px; color: #526071; font-size: 15px; line-height: 1.55; text-align: center; }
.mppwa-steps { margin: 0 0 22px; padding: 16px 16px 16px 38px; border-radius: 14px; background: #f8fafc; color: #334155; font-size: 14px; line-height: 1.55; }
.mppwa-steps li + li { margin-top: 6px; }
.mppwa-actions { display: flex; gap: 10px; }
.mppwa-actions button { flex: 1; min-height: 44px; padding: 10px 14px; border-radius: 11px; font-size: 15px; font-weight: 650; cursor: pointer; }
.mppwa-later { border: 1px solid #cbd5e1; background: #fff; color: #475569; }
.mppwa-install { border: 1px solid var(--mppwa-color, #063b65); background: var(--mppwa-color, #063b65); color: #fff; }
@keyframes mppwa-in { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes mppwa-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.045); } }
@media (max-width: 520px) {
  .mppwa-launcher { left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); justify-content: center; border-radius: 16px; }
  .mppwa-shell { align-items: end; padding: 0; }
  .mppwa-dialog { width: 100%; max-height: 92vh; padding: 26px 20px max(22px, env(safe-area-inset-bottom)); border-radius: 22px 22px 0 0; animation-name: mppwa-up; }
}

@keyframes mppwa-up { from { opacity: 0; transform: translateY(100%); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .mppwa-dialog, .mppwa-launcher { animation: none; } }

/* Shared clinical icon system; scoped to avoid changing the host website. */
.mppwa-ui-icon { display:inline-block; width:22px; height:22px; flex:0 0 auto; vertical-align:middle; }
.mppwa-steps .mppwa-ui-icon { width:20px; height:20px; color:#063b65; margin-inline:3px; }
.mppwa-close { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; }
.mppwa-dialog { border:1px solid #dce9eb; border-radius:16px; }
.mppwa-steps { background:#f0f8f8; border:1px solid #dceced; border-radius:10px; }
.mppwa-icon { border-radius:16px; box-shadow:0 5px 16px rgba(8,127,140,.15); }
@media (max-width:520px) { .mppwa-dialog { border-radius:18px 18px 0 0; } }

.mppwa-install { display:flex; align-items:center; justify-content:center; gap:8px; }
.mppwa-launcher { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; }
.mppwa-shell button:focus-visible, .mppwa-launcher:focus-visible { outline:3px solid #087f8c; outline-offset:4px; box-shadow:0 0 0 3px #fff; }
.mppwa-dialog h2 { margin:0 0 8px; font-size:23px; overflow-wrap:anywhere; }
.mppwa-domain { margin:0 0 16px; color:#075b80; font-size:13px; text-align:center; overflow-wrap:anywhere; }
.mppwa-icon { width:92px; height:92px; }
.mppwa-launcher img { width:48px; height:48px; flex-shrink:0; }
.mppwa-install:disabled { opacity:.6; cursor:wait; }
.mppwa-shell *, .mppwa-launcher * { box-sizing:border-box; }
@supports (height:100dvh) { .mppwa-dialog { max-height:calc(100dvh - 40px); } }
@media (max-width:520px) { .mppwa-dialog { max-height:92dvh; } }

.mppwa-offline-tools { position:fixed; left:16px; bottom:max(16px,env(safe-area-inset-bottom)); z-index:2147483645; width:min(290px,calc(100vw - 32px)); padding:12px 14px; background:#fff; color:#183449; border:1px solid #c9dbe8; border-radius:12px; box-shadow:0 4px 20px #063b6515; font:13px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.mppwa-offline-tools:not([open]) { width:auto; }
.mppwa-offline-tools summary { cursor:pointer; min-height:24px; font-weight:600; }
.mppwa-offline-tools button { min-height:44px; padding:8px 12px; border:1px solid #b8ccd9; border-radius:8px; background:#f5f9fc; color:#063b65; cursor:pointer; font:inherit; }
.mppwa-offline-tools button:focus-visible, .mppwa-offline-tools summary:focus-visible { outline:3px solid #087f8c; outline-offset:3px; }
.mppwa-offline-tools button:disabled { opacity:.6; cursor:wait; }
.mppwa-record-list { padding-left:20px; max-height:180px; overflow:auto; overflow-wrap:anywhere; }
.mppwa-record-list a { display:block; padding:7px 0; color:#075b80; text-decoration:underline; }
@media(max-width:700px) { .mppwa-offline-tools { bottom:calc(max(16px,env(safe-area-inset-bottom)) + 80px); } .mppwa-offline-standalone { bottom:max(16px,env(safe-area-inset-bottom)); } }
