[hidden].pwa-notice,[hidden].pwa-install,[hidden].pwa-ios { display:none!important; }
.pwa-notice { position:fixed; z-index:1200; left:16px; right:16px; bottom:calc(92px + env(safe-area-inset-bottom)); max-width:560px; margin:auto; padding:12px 16px; border:1px solid #d9d5ed; border-radius:12px; background:#fff; color:#252137; box-shadow:0 4px 16px #211f3420; display:flex; gap:12px; align-items:center; justify-content:space-between; font:inherit; }
.pwa-notice button,.pwa-install { min-height:44px; border:0; border-radius:8px; padding:8px 14px; background:#533dea; color:#fff; font:inherit; cursor:pointer; }
.pwa-notice button:focus-visible,.pwa-install:focus-visible { outline:3px solid #b1a6ff; outline-offset:3px; }
.pwa-install { position:fixed; right:16px; bottom:calc(92px + env(safe-area-inset-bottom)); z-index:1100; box-shadow:0 3px 12px #211f3420; }
.pwa-ios { margin:12px 16px; padding:12px; background:#f4f2ff; color:#32285c; border-radius:8px; }
.pwa-offline-page { font-family:system-ui,sans-serif; background:#f7f7fb; color:#252137; margin:0; min-height:100vh; min-height:100dvh; display:flex; justify-content:center; }
.pwa-offline-card,.pwa-offline-card * { box-sizing:border-box; }
.pwa-offline-card { width:100%; max-width:440px; padding:calc(24px + env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)); display:flex; flex-direction:column; }
.pwa-offline-brand { display:flex; align-items:center; gap:10px; font-size:16px; font-weight:650; }
.pwa-offline-brand img { width:40px; height:40px; border-radius:12px; }
.pwa-offline-content { flex:1; display:flex; flex-direction:column; justify-content:center; padding:40px 0 28px; }
.pwa-offline-symbol { display:grid; place-items:center; width:88px; height:88px; margin:0 auto 24px; border-radius:28px; background:#ebe7ff; color:#533dea; }
.pwa-offline-symbol svg { width:48px; height:48px; }
.pwa-offline-card h1 { margin:0 0 12px; text-align:center; font-size:clamp(24px,6vw,28px); line-height:1.25; letter-spacing:-.5px; }
.pwa-offline-card p { margin:0; font-size:15px; line-height:1.6; color:#686377; }
.pwa-offline-content > p { text-align:center; }
.pwa-offline-card .pwa-offline-tip { margin:24px auto 0; max-width:290px; font-size:13px; text-align:center; }
.pwa-offline-tip strong { display:block; margin-bottom:6px; font-size:14px; }
.pwa-offline-tip p { font-size:14px; }
.pwa-offline-actions { display:grid; gap:10px; }
.pwa-offline-actions #connection-status:empty { display:none; }
.pwa-offline-actions #connection-status { text-align:center; color:#38644c; font-size:14px; }
.pwa-offline-actions button,.pwa-offline-actions a { display:flex; align-items:center; justify-content:center; width:100%; min-height:52px; padding:12px 16px; border-radius:14px; font:600 16px system-ui,sans-serif; text-decoration:none; touch-action:manipulation; }
.pwa-offline-actions button { background:#533dea; color:#fff; border:0; cursor:pointer; }
.pwa-offline-actions a { color:#686377; background:transparent; font-size:14px; font-weight:500; }
.pwa-offline-actions button:focus-visible,.pwa-offline-actions a:focus-visible { outline:3px solid #a99ced; outline-offset:3px; }
.pwa-offline-actions button:disabled { opacity:.7; cursor:wait; }
.pwa-offline-actions .pwa-offline-caption { margin-top:4px; text-align:center; font-size:12px; }
@media (min-width:600px) { .pwa-offline-card { padding:40px 24px 28px; } }
@media (display-mode:standalone) {
  html { min-height:100%; overscroll-behavior-y:contain; }
  body { min-height:100vh; min-height:100dvh; padding-top:env(safe-area-inset-top); }
  body.pwa-mobile { padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
  .pwa-mobile .bottom-navigation-bar { padding-bottom:env(safe-area-inset-bottom); }
  .pwa-mobile .header.is-fixed,.pwa-mobile .header-sidebar.is-fixed { top:env(safe-area-inset-top); }
  .pwa-mobile input,.pwa-mobile select,.pwa-mobile textarea { font-size:16px; }
  .pwa-mobile .tf-navigation-bar a { min-height:44px; touch-action:manipulation; }
  .pwa-install,.pwa-ios { display:none!important; }
}
@media (prefers-reduced-motion:reduce) { .pwa-notice,.pwa-install { transition:none; } }

.pwa-install-dialog { box-sizing:border-box; width:calc(100% - 32px); max-width:440px; max-height:85dvh; overflow:auto; margin:auto; padding:24px; border:1px solid #ded9ed; border-radius:16px; background:#fff; color:#252137; box-shadow:0 16px 60px #19112640; }
.pwa-install-dialog::backdrop { background:#17102580; }
.pwa-install-dialog h2 { font-size:22px; margin:0 0 12px; }
.pwa-install-dialog p { line-height:1.6; margin:0 0 14px; }
.pwa-install-dialog small { display:block; margin-top:16px; color:#595264; }
.pwa-install-actions { display:flex; flex-wrap:wrap; gap:8px; }
.pwa-install-actions button { min-height:44px; padding:10px 14px; border:1px solid #d6d0e6; border-radius:8px; background:#f5f3fa; color:#302642; font:inherit; cursor:pointer; }
.pwa-install-actions [data-install-now] { background:#533dea; color:#fff; border-color:#533dea; }
.pwa-install-actions button:focus-visible { outline:3px solid #a99ced; outline-offset:2px; }
.pwa-install-actions button:disabled { opacity:.6; cursor:wait; }
.pwa-install-actions [hidden] { display:none; }

@media (max-width:599px) and (max-height:700px) {
  .pwa-offline-card { padding-top:calc(16px + env(safe-area-inset-top)); padding-bottom:calc(12px + env(safe-area-inset-bottom)); }
  .pwa-offline-content { padding:20px 0; }
  .pwa-offline-symbol { width:64px; height:64px; border-radius:20px; margin-bottom:16px; }
  .pwa-offline-symbol svg { width:38px; height:38px; }
  .pwa-offline-card .pwa-offline-tip { margin-top:16px; }
}

.pwa-device-settings { margin:24px 16px calc(100px + env(safe-area-inset-bottom)); border-top:1px solid #e2deef; color:#252137; }
.pwa-device-settings summary { padding:18px 0; min-height:48px; font-weight:600; cursor:pointer; }
.pwa-device-settings summary span { display:block; margin:4px 0 0 18px; font-size:13px; color:#686377; font-weight:400; }
.pwa-device-content { padding:4px 0 16px; }
.pwa-device-content .card { margin:24px 0 0!important; border:0; border-top:1px solid #e2deef; border-radius:0; box-shadow:none; }
.pwa-device-content .card-body { padding:20px 0 0; }
.pwa-device-content button { min-height:48px; width:100%; white-space:normal; }
.pwa-device-content [hidden] { display:none!important; }
.pwa-device-content p { font-size:14px; line-height:1.6; }

.pwa-push-invitation { position:fixed; z-index:1100; top:calc(72px + env(safe-area-inset-top)); left:16px; right:16px; max-width:440px; margin:auto; padding:16px; border:1px solid #e2deef; border-radius:16px; background:#fff; color:#252137; box-shadow:0 4px 20px #211f3420; }
.pwa-push-invitation p { font-size:14px; line-height:1.5; margin:8px 0 12px; }
.pwa-push-invitation > div { display:flex; gap:8px; }
.pwa-push-invitation button { min-height:44px; padding:10px 14px; border:0; border-radius:8px; font:inherit; background:#533dea; color:#fff; cursor:pointer; }
.pwa-push-invitation [data-invitation-later] { background:#f0edf8; color:#393047; }
.pwa-push-invitation button:disabled { opacity:.6; }
