/* Shared phone navigation; route content keeps its own layout. */
.pv-mobile-dock,
.pv-mobile-pack-nav,
.pv-mobile-pack-caption,
.pv-home-action-mobile { display:none; }
.pv-nav-rip-mobile { display:none; }

@media (max-width:979px) {
  html .shell .pv-nav-rip-desktop { display:none; }
  html .shell .pv-nav-rip-mobile { display:block; }
  /* Free practice is a separate destination in More, not a second offer
     under a paid pack or a permanent first-screen tab. */
  html .shell .pv-pack-practice,
  html .shell > .site-footer a[href^="/rip-simulator"] { display:none; }
  html .shell .phone-experimental-tool,
  html .shell .machine-tool-link { display:none !important; }
  html { scroll-padding-bottom:calc(84px + env(safe-area-inset-bottom,0px) + var(--pv-home-review-space,0px)); }
  html .shell {
    --top:56px;
    --mobile-dock-height:calc(66px + env(safe-area-inset-bottom,0px));
  }
  html .shell > .topbar {
    height:calc(56px + env(safe-area-inset-top,0px));
    padding:env(safe-area-inset-top,0px) max(14px,env(safe-area-inset-right,0px)) 0 max(14px,env(safe-area-inset-left,0px));
    gap:6px; background:#0d0e0d; box-shadow:none; border-bottom:1px solid #e2c17d0c;
  }
  html .shell > .topbar > .mobile-menu,
  html .shell > .topbar .topnav { display:none; }
  html .shell > .topbar > .brand { gap:8px; min-width:44px; min-height:44px; flex-shrink:0; }
  html .shell > .topbar .brand-mark { width:30px; height:34px; min-width:30px; }
  html .shell > .topbar .brand-name { display:block; font-size:11px; letter-spacing:.055em; }
  html .shell > .topbar :is(.top-chat-button,.avatar-button,.top-wallet-button) { width:44px; min-width:44px; height:44px; padding:0; border:0; background:none; }
  html .shell > .topbar .top-chat-button > span,
  html .shell > .topbar .top-wallet-button > b { display:none; }
  html .shell > .topbar .top-signin { min-width:72px; min-height:44px; padding:8px 11px; border:1px solid #dfbd755e; border-radius:11px; background:#dfbd7512; color:#f1d69d; font-size:13px; font-weight:650; line-height:1.2; white-space:nowrap; }
  html .shell > .topbar .top-signin:hover { background:#dfbd7520; border-color:#dfbd7580; }
  html .shell > .topbar .top-signin:active { background:#dfbd752b; }
  html .shell > .topbar .top-signin:focus-visible { outline:2px solid #ecd39a; outline-offset:2px; }
  html .shell > .topbar .balance-pill { max-width:112px; min-width:0; min-height:44px; padding:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
  html .shell > .topbar:has(.avatar-button) .brand-name { display:none; }
  html .shell > .content { padding-top:calc(56px + env(safe-area-inset-top,0px)); padding-bottom:calc(28px + var(--mobile-dock-height)); }
  html .shell > .site-footer { padding-bottom:calc(24px + var(--mobile-dock-height)); }
  html .shell > .site-footer .site-footer-inner { padding-block:24px; gap:22px; }
  html .shell > .site-footer .site-footer-brand { margin:0; }
  html .shell > .site-footer .site-footer-brand > :is(p,.site-footer-handle),
  html .shell > .site-footer .site-footer-col { display:none; }
  html .shell > .site-footer .site-footer-legal { margin-top:0; padding-top:16px; gap:10px; }
  html .shell > .site-footer .site-footer-links a { display:inline-flex; align-items:center; min-height:44px; }
  html .shell .content > .provider-commerce-banner,
  html .shell .content > .pv-site-status {
    margin:0; padding:6px 14px; border-radius:0; border:0;
    background:#171910; color:#c9c6b6; font-size:11px; line-height:1.45;
    text-align:center; letter-spacing:0; text-transform:none;
  }
  html .shell .content > .pv-site-status { display:block; width:100%; text-align:center; }
  html .shell .content > .pv-site-status > :is(strong,span,a) { display:inline; font-size:inherit; line-height:inherit; }
  html .shell .content > .pv-site-status > strong { margin-right:.4em; }
  html .shell .content > .pv-site-status > a { margin-left:.4em; white-space:nowrap; text-underline-offset:2px; }
  html .shell > .pv-mobile-dock {
    position:fixed; z-index:46; inset:auto 0 0; display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px;
    height:var(--mobile-dock-height); box-sizing:border-box;
    padding:6px max(12px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));
    border-top:1px solid #d6b46b1a; background:#10120f; box-shadow:0 -6px 24px #0002;
  }
  html .shell .pv-mobile-dock__item {
    display:flex; flex-direction:column; justify-content:center; align-items:center; gap:4px;
    min-width:0; min-height:44px; padding:4px; border:0; border-radius:10px;
    background:transparent; color:#a8aaa5; font:500 11px/1.2 var(--pf-sans,system-ui,sans-serif);
    text-decoration:none; cursor:pointer; -webkit-tap-highlight-color:transparent;
  }
  html .shell .pv-mobile-dock__item svg { display:block; width:21px; height:21px; flex:none; }
  html .shell .pv-mobile-dock__item[aria-current="page"] { color:#f1d59a; background:#e4c77f0d; font-weight:650; }
  html .shell .pv-mobile-dock__item[aria-current="page"] svg { filter:drop-shadow(0 0 5px #e4c77f20); }
  html .shell .pv-mobile-dock__item:focus-visible { outline:2px solid #e4c77f; outline-offset:-2px; }
  html .shell.menu-open > .pv-mobile-dock,
  #app[inert] .pv-mobile-dock,
  .pv-mobile-dock[inert],
  body.machine-reveal-active .pv-mobile-dock,
  html[data-mobile-keyboard="open"] .pv-mobile-dock,
  body:has(#modal-root > *) .pv-mobile-dock,
  body:has(dialog[open]) .pv-mobile-dock,
  body:has(#pv-chat[data-open="1"]) .pv-mobile-dock,
  .shell:has([data-practice-room][data-phase="revealing"]) .pv-mobile-dock { visibility:hidden; pointer-events:none; }
  html:has(.pv-mobile-dock) #pv-chat[data-open="0"] .pv-chat-tab { bottom:calc(76px + env(safe-area-inset-bottom,0px) + var(--pv-home-review-space,0px)); }
  /* Chat already has a persistent header control on phones. Its duplicate
     floating tab must not cover sign-in, pack actions or card details. */
  html:has(.shell > .topbar .top-chat-button) #pv-chat[data-open="0"] .pv-chat-tab { display:none; }
  html:has(.pv-mobile-dock) .toast-stack { bottom:calc(80px + env(safe-area-inset-bottom,0px) + var(--pv-home-review-space,0px)); }
  html .pv-home-review-bar {
    position:fixed; z-index:45; inset:auto 0 calc(66px + env(safe-area-inset-bottom,0px)); display:grid;
    grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px;
    box-sizing:border-box; width:100%; min-height:72px; padding:10px 16px;
    border-top:1px solid #ffffff14; background:#111310; color:#eeeade;
  }
  .pv-home-review-bar__copy { display:grid; gap:3px; min-width:0; }
  .pv-home-review-bar__name { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:13px; line-height:1.35; overflow-wrap:anywhere; }
  .pv-home-review-bar__price { font-size:12px; color:#e7cb8c; }
  .pv-home-review-bar__button { min-width:110px; min-height:44px; padding:10px 14px; border:0; border-radius:9px; background:#e2c17d; color:#161812; font:600 14px/1.3 var(--pf-sans,system-ui,sans-serif); cursor:pointer; }
  .pv-home-review-bar__button:disabled { background:#252a25; color:#b9beb3; opacity:1; }
  html[data-mobile-keyboard="open"] .pv-home-review-bar { visibility:hidden; pointer-events:none; }
}

@media (max-width:359px) {
  html .shell > .topbar { padding-inline:10px; gap:3px; }
  html .shell > .topbar .brand-name { font-size:9px; }
  html .shell > .topbar .balance-pill { max-width:100px; padding-inline:4px; }
}
