/* Public website shell. Loaded after base-shell.css on every page.
   body.public-site = a public marketing/documentation page, for any visitor (anonymous,
   demo or signed in). body.app-shell = the signed-in app with its sidebar. */

/* Only the app shell reserves the sidebar rail. base-shell.css pads EVERY desktop body by
   the 64px rail (264px once a pinned-sidebar preference is in localStorage), which left
   public pages with an empty band on the left and pushed content right. */
@media(min-width:980px){
  body:not(.app-shell),body:not(.app-shell).dsb-pinned{--app-sidebar-offset:0px;padding-left:0}
}

/* One outer container for the logo, nav, banners, hero, content and footer. */
body.public-site{--pub-max:1440px;--pub-gutter:clamp(16px,3.2vw,40px)}
body.public-site .nav .container,
body.public-site main.container,
body.public-site footer .container{width:100%;max-width:var(--pub-max);margin-left:auto;margin-right:auto;
  padding-left:var(--pub-gutter);padding-right:var(--pub-gutter)}
/* The landing page is full-bleed bands; its inner wrappers take the same edges. */
body.public-site .landing-shell{--lp-max:var(--pub-max)}
body.public-site .lp-wrap,body.public-site .lp-hero-inner,body.public-site .lp-status-bar{
  padding-left:var(--pub-gutter);padding-right:var(--pub-gutter)}
body.public-site .marketing-page{max-width:none}
body.public-site .welcome-offer{max-width:none;margin-left:0;margin-right:0}
body.public-site .landing-shell>.welcome-offer{width:calc(100% - 2 * var(--pub-gutter));
  max-width:calc(var(--pub-max) - 2 * var(--pub-gutter));margin-left:auto;margin-right:auto}
/* Wider pages, readable lines: running text keeps a 65-75 character measure. */
body.public-site main:not(.landing-shell) :is(p,li,dd,blockquote,figcaption){max-width:75ch}
body.public-site main .center>p,body.public-site main p.center{margin-left:auto;margin-right:auto}

/* Public nav: inline at 1200px and wider, folded into the menu button below that. Measured
   with fallback fonts (Manrope is a web font and may not load), the full bar for the longest
   case (United Kingdom + Exit demo + Start free) needs ~1,100px including gutters, so 901-1199px
   could not hold it without overlap. The breakpoint matches the script in base.html. */
@media(min-width:1200px){
  .nav.pubnav .container{gap:14px}
}
@media(min-width:1200px) and (max-width:1365px){
  .nav.pubnav .brand .wordmark{display:none}
  .nav.pubnav .container{gap:12px}
  .nav.pubnav a.navlink,.nav.pubnav .public-region-menu summary{font-size:14px}
}
@media(max-width:1199px){
  .nav.pubnav{position:relative}
  .nav.pubnav .container{flex-wrap:wrap;height:auto;min-height:56px;row-gap:4px;padding-top:6px;padding-bottom:6px}
  html.aq-navjs .nav.pubnav .container{flex-wrap:nowrap;height:56px;row-gap:0;padding-top:0;padding-bottom:0}
  html.aq-navjs .nav.pubnav .nav-burger{display:inline-flex}
  html.aq-navjs .nav.pubnav .nav-extra{display:none}
  html.aq-navjs .nav.pubnav .nav-extra.open{display:flex;flex-direction:column;position:absolute;
    top:calc(100% - 1px);right:8px;background:var(--card);border:1px solid var(--line);
    border-radius:12px;box-shadow:var(--shadow);padding:8px;width:240px;max-width:calc(100vw - 16px);
    max-height:calc(100vh - 72px);overflow-y:auto;z-index:50;gap:2px}
  html.aq-navjs .nav.pubnav .nav-extra.open a.navlink{padding:10px 12px;border-radius:8px;font-size:15px}
  html.aq-navjs .nav.pubnav .nav-extra.open a.navlink:hover{background:var(--bg);text-decoration:none}
}
.nav.pubnav a[data-public-dashboard]{white-space:nowrap}

/* Official store badges (templates/_store_badges.html). Gap and padding are a quarter of
   the 48px App Store badge height; both official assets fill their canvas, so spacing is external. */
.store-download{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 32px;align-items:center;
  padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.store-download h2{font-size:18px;line-height:1.3;margin:0 0 4px;color:var(--ink)}
.store-download p{margin:0;max-width:65ch}
.store-badge-list{display:flex;flex-wrap:wrap;align-items:center;gap:12px;list-style:none;margin:0;padding:12px 0}
.store-badge-list li{margin:0;padding:0}
.store-badge{display:block;line-height:0;border-radius:8px}
.store-badge:focus-visible{outline:2px solid var(--teal);outline-offset:4px}
.store-badge img{display:block;width:auto;max-width:none}
.store-download .store-trademarks{grid-column:1/-1;font-size:12px;max-width:none}
@media(max-width:720px){.store-download{grid-template-columns:minmax(0,1fr)}}
