/* Add-to-Home-Screen bottom sheet. Navy surface + amber action, safe-area aware, never covers the whole screen. */
.a2hs-sheet {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; margin: 0 auto; max-width: 560px;
  padding: 18px 18px calc(16px + env(safe-area-inset-bottom, 0px));
  background: var(--brand-2, #243556); color: var(--brand-ink, #f6f1e8);
  border-radius: 22px 22px 0 0; box-shadow: 0 -10px 40px rgba(10,16,32,.35);
  transform: translateY(105%); transition: transform .28s var(--ease, cubic-bezier(.2,.7,.2,1));
  outline: none;
}
.a2hs-sheet.open { transform: none; }
.a2hs-sheet::before { content: ''; display: block; width: 40px; height: 4px; border-radius: 4px; background: rgba(246,241,232,.28); margin: -6px auto 12px; }
.a2hs-main { display: flex; gap: 16px; align-items: flex-start; }
.a2hs-art { width: 64px; height: 80px; flex: none; }
.a2hs-phone { fill: #17233a; stroke: #f6f1e8; stroke-width: 2.4; }
.a2hs-screen { fill: #2b3f66; }
.a2hs-bar { fill: #f6f1e8; opacity: .18; }
.a2hs-hl { fill: none; stroke: #f6f1e8; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.a2hs-ring { fill: none; stroke: #e3a03a; stroke-width: 2.2; stroke-dasharray: 3 3; }
.a2hs-text { flex: 1; min-width: 0; }
.a2hs-sheet h2 { margin: 0 0 4px; font-size: 1.15rem; line-height: 1.25; color: inherit; border: 0; padding: 0; }
.a2hs-sheet p { margin: 0 0 10px; color: rgba(246,241,232,.85); font-size: .95rem; }
.a2hs-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; counter-reset: s; }
.a2hs-steps li { display: flex; align-items: center; gap: 12px; font-size: .98rem; line-height: 1.35; }
.a2hs-step-ico { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 12px; background: rgba(246,241,232,.12); color: #e3a03a; }
.a2hs-ico { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.a2hs-actions { margin-top: 12px; display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.a2hs-actions .btn { min-height: 48px; }
.a2hs-actions .btn:not(.primary) { background: transparent; color: inherit; border: 2px solid rgba(246,241,232,.35); }
.a2hs-actions .btn.primary { background: linear-gradient(180deg, #efb04a, #e3a03a); color: #1b1305; border: 2px solid transparent; font-weight: 720; }
.a2hs-msg { min-height: 0; margin: 8px 0 0; }
.a2hs-msg:empty { display: none; }
@media (prefers-reduced-motion: reduce) { .a2hs-sheet { transition: none; } }
@media print { .a2hs-sheet { display: none; } }
/* in-app onboarding dialog */
.onboarding .ob-plans { border: 1px solid var(--line-2); border-radius: var(--radius-md, 14px); padding: 8px 12px 12px; margin: 4px 0 0; display: grid; gap: 8px; }
.onboarding .ob-plans legend { font-weight: 700; padding: 0 6px; }
.onboarding .ob-plan { display: flex; gap: 10px; align-items: center; min-height: 44px; cursor: pointer; }
.onboarding .ob-plan input { width: 22px; height: 22px; accent-color: var(--accent); flex: none; }
.cloud-login .gate-google { display: flex; align-items: center; justify-content: center; gap: .6rem; background: #fff !important; color: #1f2937 !important; font-size: 1.15rem !important; min-height: 60px !important; }
.cloud-login .gate-google svg { width: 22px; height: 22px; }
.cloud-login .gate-or { color: #9aa5b1; font-size: .95rem; margin: .25rem 0 0; }
