/* Shared installation and mobile shell. Business components keep their own styles. */
:root{--pwa-touch:44px;--pwa-gutter:14px;--pwa-nav-space:104px}
.pwa-skip-link{position:absolute;inset-inline-start:12px;top:-100px;z-index:150;padding:12px 18px;border-radius:12px;background:var(--surface);color:var(--ink-strong);border:2px solid var(--accent)}
.pwa-skip-link:focus{top:12px}
.pwa-entry-banner.pwa-install-v251{position:relative;inset:auto;width:100%;max-width:none;margin:18px 0 8px;display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:18px;box-shadow:none}
.pwa-entry-banner .install-chip-v251{min-width:0;flex:1;text-decoration:none;min-height:var(--pwa-touch);color:var(--ink-strong)}
.pwa-entry-banner .install-copy-v251{min-width:0;display:grid;gap:4px;overflow-wrap:anywhere}
.pwa-entry-banner .install-copy-v251 small{font-size:.8rem;line-height:1.4;color:var(--muted)}
.pwa-entry-banner .install-dismiss-v260{position:static;flex:none;min-width:var(--pwa-touch);min-height:var(--pwa-touch)}
.pwa-entry-banner[hidden],.pwa-entry-banner [hidden],.pwa-page-v261 [hidden],[data-pwa-install][hidden],.site-header [hidden],.mobile-menu-head [hidden]{display:none!important}
.pwa-install-actions-v261{flex-wrap:wrap}
.pwa-install-actions-v261 a{white-space:normal;text-align:center;min-height:var(--pwa-touch)}
.pwa-guides-v261{scroll-margin-block:1rem;gap:16px}
.pwa-guide-v261{min-width:0;overflow-wrap:anywhere}
.pwa-guide-v261[data-recommended="true"]{border-color:var(--accent)}
.pwa-guide-v261:focus-visible,.pwa-diagnostics summary:focus-visible,.mobile-menu-native-summary:focus-visible,[data-pwa-install]:focus-visible,.app-shell-back:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.pwa-diagnostics{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.pwa-diagnostics summary{min-height:var(--pwa-touch);display:flex;align-items:center;cursor:pointer;font-weight:750;color:var(--ink-strong)}
.pwa-diagnostics p{max-width:70ch;overflow-wrap:anywhere}
.pwa-feedback{position:fixed;z-index:120;inset-inline:16px;bottom:calc(16px + env(safe-area-inset-bottom));margin-inline:auto;width:fit-content;max-width:min(620px,calc(100% - 32px));padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink-strong);box-shadow:var(--shadow-sm);pointer-events:none;font-size:.9rem;line-height:1.5}
.pwa-feedback:empty{display:none}
.app-shell-back{display:none}
/* One menu DOM. Native details works when the enhancing module fails or is disabled. */
html:not(.menu-ready) .mobile-menu{position:relative;inset:auto;display:block!important;opacity:1;transform:none;backdrop-filter:none;transition:none;width:min(1180px,calc(100% - 28px));margin:8px auto;padding:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);max-height:none}
html:not(.menu-ready) .mobile-menu[open]{padding:0 14px 14px}
.mobile-menu-native-summary{padding:12px 16px;min-height:var(--pwa-touch);cursor:pointer;color:var(--ink-strong);font-weight:750}
html.menu-ready .mobile-menu-native-summary{display:none}
html.menu-ready .mobile-menu[hidden]{display:none!important}
html.menu-ready .mobile-menu[open]{display:block!important;padding-top:calc(16px + env(safe-area-inset-top));padding-inline:max(16px,env(safe-area-inset-left)) max(16px,env(safe-area-inset-right))}
html.menu-ready .mobile-menu:not(.is-open){pointer-events:none}
html.menu-ready .mobile-menu.is-open{pointer-events:auto}
@media (max-width:640px){
  html.menu-ready body.is-app-shell{height:100vh;height:100svh;height:var(--app-viewport-height,100svh);min-height:0;overflow:hidden}
  html.menu-ready .is-app-shell .app-shell-frame{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
  .is-app-shell .site-header.header-app-v230{position:relative;top:auto;min-height:60px;height:auto;width:calc(100% - 28px);margin-inline:auto;padding-block:calc(8px + env(safe-area-inset-top)) 8px;gap:8px;flex-wrap:nowrap}
  .is-app-shell .site-header .brand{min-width:0;gap:6px}
  .is-app-shell .site-header .brand img{width:34px;height:34px}
  .is-app-shell .site-header .brand strong{font-size:1rem;white-space:nowrap}
  .is-app-shell .site-header .brand-baseline{display:none}
  .is-app-shell .site-header .header-actions{gap:6px;margin-inline-start:auto;flex:none}
  .is-app-shell .site-header .theme-label{display:none}
  .app-shell-back{display:inline-flex;flex:none;align-items:center;justify-content:center;min-width:var(--pwa-touch);min-height:var(--pwa-touch);color:var(--ink-strong);text-decoration:none;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
  [dir="rtl"] .app-shell-back span{transform:scaleX(-1)}
  html.menu-ready .is-app-shell .site-main{min-height:0;width:100%;max-width:none;padding:0 var(--pwa-gutter);overflow-y:auto;overscroll-behavior-y:contain;scroll-padding-block:12px calc(var(--pwa-nav-space) + env(safe-area-inset-bottom));margin:0}
  .is-app-shell .user-space{display:block;min-height:0;padding:16px 0 0}
  .is-app-shell .app-content,.is-app-shell .app-content.narrow{min-width:0;max-width:none;width:100%;padding:0 0 calc(var(--pwa-nav-space) + env(safe-area-inset-bottom));margin:0;align-content:start}
  .is-app-shell [data-mobile-bottom-nav][hidden]{display:none!important}
  .keyboard-open .is-app-shell .app-content{padding-bottom:24px}
  .keyboard-open .is-app-shell .site-main{scroll-padding-bottom:24px}
  .is-app-shell .pwa-entry-banner{margin-top:12px}
  .pwa-entry-banner .install-copy-v251 small{display:none}
  .pwa-entry-banner{padding:8px}
  .pwa-guide-v261{grid-template-columns:minmax(0,1fr);gap:10px;padding:16px}
  .pwa-guide-number-v261{justify-self:start}
  .pwa-launch-page .hero-actions{display:flex;flex-wrap:wrap;gap:12px}
  .pwa-launch-page .hero-actions>a{min-height:var(--pwa-touch)}
}
/* A tablet keeps the complete page and shared menu; no phone bar covers the content. */
@media (min-width:641px){
  .is-app-shell .app-mobile-nav{display:none!important}
  .is-app-shell .site-main{padding-bottom:0}
  .is-app-shell .user-space{padding-bottom:24px;min-height:0}
  .is-app-shell .app-content{padding-bottom:24px}
}
@media (prefers-reduced-motion:reduce){.mobile-menu,.pwa-entry-banner{transition:none!important;scroll-behavior:auto}}
