.pwa-notice-stack{right:max(18px, env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));z-index:90;width:min(390px, calc(100vw - 28px - env(safe-area-inset-left) - env(safe-area-inset-right)));gap:10px;font-family:Noto Sans JP,sans-serif;display:grid;position:fixed}body:has(.course-app) .pwa-notice-stack{bottom:calc(84px + env(safe-area-inset-bottom))}.pwa-install-card,.pwa-status-card{color:#fff;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0c1836f7;border:1px solid #e8d4aa52;border-radius:19px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:74px;padding:12px 15px;display:grid;position:relative;box-shadow:0 18px 42px #0c183647}.pwa-install-card img,.pwa-install-dialog img{border-radius:14px;box-shadow:0 5px 15px #00000038}.pwa-install-card strong,.pwa-status-card strong{margin-bottom:3px;font-size:12px;line-height:1.45;display:block}.pwa-install-card small,.pwa-status-card small{color:#d8ddea;font-size:11px;line-height:1.55;display:block}.pwa-install-card>button:not(.pwa-dismiss),.pwa-status-card>button{color:#172548;white-space:nowrap;cursor:pointer;background:#d6b678;border:0;border-radius:12px;min-height:44px;padding:0 13px;font:800 11px Noto Sans JP,sans-serif}.pwa-install-card{color:#13234a;background:linear-gradient(135deg,#fffcf4fc,#f0e2befc);border-color:#b89455e6;box-shadow:0 18px 42px #0c18363d}.pwa-install-card small{color:#5f687d}.pwa-install-card>button:not(.pwa-dismiss){color:#f0d590;background:#13234a}.pwa-install-card .pwa-dismiss{color:#13234a;background:#fffdf8;border-color:#c9ad77}.pwa-install-card>button:disabled,.pwa-status-card>button:disabled{opacity:.7;cursor:wait}.pwa-dismiss{color:#596078;cursor:pointer;background:#fff;border:1px solid #e1dbcf;border-radius:50%;place-items:center;width:44px;height:44px;font:700 18px/1 sans-serif;display:grid;position:absolute;top:-13px;right:-11px;box-shadow:0 5px 14px #0c183626}.pwa-status-card>span{color:#e8d4aa;background:#ffffff1a;border-radius:12px;place-items:center;width:38px;height:38px;font-size:21px;display:grid}.pwa-offline-card{background:#52302af7;border-color:#e8b98c75}.pwa-dialog-backdrop{z-index:110;padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#070d1db3;place-items:center;display:grid;position:fixed;inset:0}.pwa-install-dialog{color:#13234a;background:#fcfaf5;border-radius:27px;width:min(430px,100%);max-height:min(720px,100vh - 40px);padding:32px;font-family:Noto Sans JP,sans-serif;position:relative;overflow:auto;box-shadow:0 28px 90px #00000057}.pwa-dialog-close{color:#596078;cursor:pointer;background:#eee9df;border:0;border-radius:50%;width:44px;height:44px;font-size:22px;position:absolute;top:15px;right:15px}.pwa-install-dialog>p{color:#765326;letter-spacing:.13em;margin:18px 0 7px;font:700 11px DM Mono,monospace}.pwa-install-dialog h2{margin:0;font:700 28px/1.35 Noto Serif JP,serif}.pwa-install-dialog ol{gap:9px;margin:24px 0;padding:0;list-style:none;display:grid}.pwa-install-dialog li{background:#fff;border:1px solid #e5ddd0;border-radius:15px;grid-template-columns:34px 1fr;align-items:start;gap:12px;padding:14px;display:grid}.pwa-install-dialog li>span{color:#e8d4aa;background:#13234a;border-radius:50%;place-items:center;width:30px;height:30px;font:700 11px DM Mono,monospace;display:grid}.pwa-install-dialog li strong,.pwa-install-dialog li small{display:block}.pwa-install-dialog li strong{margin-bottom:4px;font-size:13px}.pwa-install-dialog li small{color:#5f687d;font-size:11px;line-height:1.65}.pwa-dialog-done{color:#fff;cursor:pointer;background:#13234a;border:0;border-radius:13px;width:100%;min-height:48px;font:800 13px Noto Sans JP,sans-serif}@media (width<=560px){.pwa-notice-stack{right:max(14px, env(safe-area-inset-right))}.pwa-install-card,.pwa-status-card{gap:9px;padding:11px 12px}.pwa-install-card img{width:42px;height:42px}.pwa-install-dialog{padding:28px 20px 22px}}@media (prefers-reduced-motion:reduce){.pwa-dialog-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}
