/* =========================================================================
   wnp-app-shell.css  --  My WNP's own header, sidebar and bottom bar.

   File location in the WNP Site repo: /wnp-app-shell.css. Paired with
   wnp-app-shell.js, which adds html.wnp-app when somebody is signed in
   and inside the app, and draws everything styled here.

   Navigation is calmer than content. The red is for the one thing on a
   screen that books or pays; the menus are green and grey, and "you are
   here" is a pale fill and a bolder label, not a slab of colour.

   Version it in the link tag (?v=...) and bump it on every change.
   ========================================================================= */

html.wnp-app{
  --wapp-head-h:60px;
  --wapp-side-w:244px;
  --wapp-bar-h:62px;
  --wapp-green:#0F6939;
  --wapp-deep:#0A4A28;
  --wapp-ink:#232620;
  --wapp-muted:#5B6259;
  --wapp-line:rgba(35,38,32,.10);
  --wapp-on:#EAF2EC;
}

/* ---------- THE WEBSITE GOES ----------
   Inside the app the public header, breadcrumbs, footer, notice bar and
   the floating Ask Pickle button are all replaced by the shell. Hidden
   rather than removed, so the page underneath is the same page whichever
   way it is opened. */
html.wnp-app nav.site-nav,
html.wnp-app nav.crumbs,
html.wnp-app body > footer,
html.wnp-app #wnpFabWrap,
html.wnp-app #wnpNotice,
html.wnp-app .switchover,
html.wnp-app #wnpMobileNav{display:none !important;}

html.wnp-app body{padding-top:calc(var(--wapp-head-h) + env(safe-area-inset-top,0px));}

/* A page that joins the app (Book, Partner Finder, the calendar) keeps
   its own heading but not its marketing band: inside the app the
   heading is the screen's title, sized like every other section's, and
   the first thing to choose is on screen without scrolling. */
html.wnp-app .hero{background:none;color:var(--wapp-deep);padding:22px 16px 6px;overflow:visible;}
html.wnp-app .hero::before,html.wnp-app .hero::after{display:none;}
html.wnp-app .hero .eyebrow,html.wnp-app .hero .hero-sub,html.wnp-app .hero .hero-ctas{display:none;}
html.wnp-app .hero h1.hero-title,html.wnp-app .hero-sm h1.hero-title{font-size:26px;line-height:1.2;
  letter-spacing:-.02em;color:var(--wapp-deep);margin:0;}
@media (min-width:1000px){html.wnp-app .hero{padding:26px 32px 8px;}}
/* "Signed in as ..." says what the header already says. */
html.wnp-app .wnp-authbar.in{display:none !important;}
html.wnp-app.wapp-has-for body{padding-top:calc(var(--wapp-head-h) + 36px + env(safe-area-inset-top,0px));}

/* ---------- NOT THE WEBSITE'S <nav> ----------
   wnp-nav.css styles every <nav> as the site's sticky white header bar
   (position:sticky; top:0; a shadow). The app's own menus are <nav>s
   too, for the screen readers, and inherited all of it: the bottom bar
   took top:0 as well as bottom:0 and stretched over the whole page. */
.wapp-strip,.wapp-side-nav,.wapp-more-list,.wapp-prof-links{position:static;top:auto;z-index:auto;box-shadow:none;background:transparent;}
.wapp-bar{top:auto;}

/* ---------- HEADER ---------- */
.wapp-head{position:fixed;top:0;left:0;right:0;z-index:120;background:#fff;
  border-bottom:1px solid var(--wapp-line);padding-top:env(safe-area-inset-top,0px);
  font-family:'Poppins',system-ui,sans-serif;}
.wapp-head-in{display:flex;align-items:center;gap:8px;height:var(--wapp-head-h);
  padding:0 calc(16px + env(safe-area-inset-right,0px)) 0 calc(16px + env(safe-area-inset-left,0px));}
.wapp-brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:0 0 auto;min-height:44px;}
.wapp-brand img{height:32px;width:auto;display:block;}
.wapp-brand-name{font-size:16px;font-weight:700;color:var(--wapp-deep);letter-spacing:-.01em;
  padding-left:10px;border-left:1px solid var(--wapp-line);line-height:1.2;}
.wapp-site{display:none;align-items:center;gap:4px;margin-left:14px;font-size:13px;font-weight:600;
  color:var(--wapp-muted);text-decoration:none;min-height:44px;}
.wapp-site:hover{color:var(--wapp-deep);text-decoration:underline;}
.wapp-head-gap{flex:1 1 auto;}
.wapp-ico{width:22px;height:22px;flex:0 0 auto;}
.wapp-ico-sm{width:16px;height:16px;flex:0 0 auto;}

.wapp-hbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-width:44px;min-height:44px;padding:0 10px;border-radius:999px;border:none;background:none;
  color:var(--wapp-deep);font:inherit;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;}
.wapp-hbtn:hover{background:var(--wapp-on);}
/* A class that sets display beats the hidden attribute, so say it. */
.wapp-hbtn[hidden],.wapp-avatar[hidden],.wapp-site[hidden]{display:none !important;}
.wapp-ask{border:1.5px solid var(--wapp-green);padding:0;width:44px;}
@media (min-width:1000px){.wapp-ask{width:auto;padding:0 14px 0 12px;}}
.wapp-hbtn-label{display:none;}
.wapp-bell-n{position:absolute;top:6px;right:5px;min-width:17px;height:17px;padding:0 4px;
  border-radius:9px;background:#931B24;color:#fff;font-size:10.5px;font-weight:700;line-height:17px;text-align:center;}

.wapp-avatar{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border:none;background:none;padding:0;cursor:pointer;border-radius:50%;}
.wapp-avatar-i{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:50%;background:var(--wapp-deep);color:#fff;font-size:13px;font-weight:700;letter-spacing:.02em;}
.wapp-avatar-i .wapp-ico{width:18px;height:18px;}

/* Who Book is for, when it is not you. */
.wapp-for{display:flex;align-items:center;justify-content:space-between;gap:12px;height:36px;
  padding:0 16px;background:#F4EFE2;border-top:1px solid #E3DAC6;font-size:13px;color:var(--wapp-ink);}
.wapp-for[hidden]{display:none;}
.wapp-for b{color:var(--wapp-deep);}
.wapp-for button{border:none;background:none;font:inherit;font-weight:700;color:var(--wapp-deep);
  text-decoration:underline;cursor:pointer;min-height:36px;padding:0 4px;}

/* ---------- A SECTION'S STRIP, on a page of its own ----------
   The same look as account.html's strip, with "you are here" a pale
   fill rather than a slab of colour. */
.wapp-strip{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
  max-width:1180px;margin:4px auto 6px;padding:0 16px 2px;font-family:'Poppins',system-ui,sans-serif;}
.wapp-strip::-webkit-scrollbar{display:none;}
@media (min-width:1000px){.wapp-strip{padding:0 32px;flex-wrap:wrap;}}
.wapp-strip .acct-subtab{flex:0 0 auto;display:inline-flex;align-items:center;min-height:40px;padding:7px 14px;
  border-radius:99px;border:1.5px solid rgba(35,38,32,.14);background:#fff;font-size:13px;font-weight:700;
  color:var(--wapp-muted);text-decoration:none;white-space:nowrap;}
.wapp-strip .acct-subtab.active{background:var(--wapp-on);border-color:var(--wapp-green);color:var(--wapp-deep);}

/* ---------- SIDEBAR (wide screens) ---------- */
.wapp-side{display:none;}
@media (min-width:1000px){
  html.wnp-app body{padding-left:var(--wapp-side-w);}
  .wapp-site{display:inline-flex;}
  .wapp-hbtn-label{display:inline;}
  .wapp-side{display:flex;flex-direction:column;justify-content:space-between;position:fixed;z-index:110;
    left:0;bottom:0;top:calc(var(--wapp-head-h) + env(safe-area-inset-top,0px));width:var(--wapp-side-w);
    background:#fff;border-right:1px solid var(--wapp-line);padding:18px 12px 20px;overflow-y:auto;
    font-family:'Poppins',system-ui,sans-serif;}
  html.wapp-has-for .wapp-side{top:calc(var(--wapp-head-h) + 36px + env(safe-area-inset-top,0px));}
  .wapp-bar,.wapp-layer:not(.wapp-layer-prof){display:none !important;}
}
.wapp-side-nav,.wapp-side-foot{display:flex;flex-direction:column;gap:2px;}
.wapp-side-foot{padding-top:14px;border-top:1px solid var(--wapp-line);margin-top:14px;}
.wapp-item{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;
  border-radius:10px;color:var(--wapp-ink);font-size:14.5px;font-weight:500;text-decoration:none;}
.wapp-item .wapp-ico{width:20px;height:20px;color:var(--wapp-muted);}
.wapp-item:hover{background:#F5F7F4;}
.wapp-item.is-active{background:var(--wapp-on);color:var(--wapp-deep);font-weight:700;}
.wapp-item.is-active .wapp-ico{color:var(--wapp-green);}
.wapp-item.is-active::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;
  border-radius:3px;background:var(--wapp-green);}
.wapp-item-quiet{font-size:14px;color:var(--wapp-muted);}

/* Club Management: a different place, so it looks like a door, set
   apart under its own small heading, never in among the member's own
   sections. */
.wapp-mgmt{margin-top:14px;padding:12px;border:1px dashed rgba(10,74,40,.28);border-radius:12px;}
.wapp-mgmt[hidden]{display:none;}
.wapp-mgmt-h{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--wapp-muted);}
.wapp-mgmt-link{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;
  font-size:14px;font-weight:700;color:var(--wapp-deep);text-decoration:none;}
.wapp-mgmt-link:hover{text-decoration:underline;}

/* ---------- BOTTOM BAR (phones and tablets) ---------- */
@media (max-width:999px){
  html.wnp-app body{padding-bottom:calc(var(--wapp-bar-h) + env(safe-area-inset-bottom,0px));}
}
.wapp-bar{position:fixed;left:0;right:0;bottom:0;z-index:115;display:flex;background:#fff;
  border-top:1px solid var(--wapp-line);box-shadow:0 -4px 16px rgba(35,38,32,.05);
  padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);
  font-family:'Poppins',system-ui,sans-serif;}
.wapp-tab{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  min-height:var(--wapp-bar-h);border:none;background:none;padding:6px 2px;cursor:pointer;
  color:var(--wapp-muted);font:inherit;font-size:11.5px;font-weight:600;text-decoration:none;}
.wapp-tab .wapp-ico{width:23px;height:23px;}
.wapp-tab.is-active{color:var(--wapp-deep);}
.wapp-tab.is-active .wapp-ico{color:var(--wapp-green);}
.wapp-tab.is-active span{border-bottom:2px solid var(--wapp-green);}

/* Things that already sat on the bottom edge sit on top of the bar. */
@media (max-width:999px){
  html.wnp-app .wnp-basket-bar,
  html.wnp-app .mem-bar,
  html.wnp-app .xp-summary{bottom:calc(var(--wapp-bar-h) + env(safe-area-inset-bottom,0px)) !important;}
}

/* ---------- SHEETS: More, and the person menu ---------- */
.wapp-layer{position:fixed;inset:0;z-index:300;font-family:'Poppins',system-ui,sans-serif;}
.wapp-layer[hidden]{display:none;}
.wapp-sheet-scrim{position:absolute;inset:0;background:rgba(35,38,32,.42);}
.wapp-sheet{position:absolute;left:0;right:0;bottom:0;max-height:88vh;overflow-y:auto;
  background:#fff;border-radius:18px 18px 0 0;box-shadow:0 -10px 30px rgba(35,38,32,.18);
  padding:6px 18px calc(18px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;
  animation:wappUp .18s ease-out;}
@keyframes wappUp{from{transform:translateY(16px);opacity:.6}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.wapp-sheet{animation:none;}}
.wapp-sheet-top{display:flex;align-items:center;justify-content:space-between;min-height:52px;}
.wapp-sheet-title{margin:0;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--wapp-muted);}
.wapp-sheet-x{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  margin-right:-10px;border:none;background:none;cursor:pointer;color:var(--wapp-deep);}
.wapp-sheet-x svg{width:22px;height:22px;}
.wapp-more-list{display:flex;flex-direction:column;}
.wapp-more-item{display:flex;align-items:center;gap:14px;min-height:54px;padding:0 4px;
  border-top:1px solid var(--wapp-line);color:var(--wapp-ink);font-size:16px;font-weight:600;text-decoration:none;}
.wapp-more-item:first-child{border-top:none;}
.wapp-more-item .wapp-ico{color:var(--wapp-muted);}
.wapp-more-item.is-active{color:var(--wapp-deep);}
.wapp-more-item.is-active .wapp-ico{color:var(--wapp-green);}
.wapp-mgmt-sheet{margin-top:10px;}
.wapp-more-site{display:flex;align-items:center;gap:8px;min-height:48px;margin-top:8px;
  font-size:14px;font-weight:600;color:var(--wapp-muted);text-decoration:none;}

.wapp-prof-head{display:flex;align-items:center;gap:12px;padding:12px 0 14px;border-bottom:1px solid var(--wapp-line);}
.wapp-prof-av{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 auto;
  border-radius:50%;background:var(--wapp-deep);color:#fff;font-weight:700;font-size:15px;}
.wapp-prof-av svg{width:20px;height:20px;}
.wapp-prof-id{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;}
.wapp-prof-id b{font-size:15.5px;color:var(--wapp-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wapp-prof-id span{font-size:12.5px;color:var(--wapp-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wapp-prof-for{padding:12px 0;border-bottom:1px solid var(--wapp-line);}
.wapp-prof-h{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--wapp-muted);}
.wapp-prof-person{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 6px;
  border:none;background:none;border-radius:10px;font:inherit;font-size:15px;color:var(--wapp-ink);cursor:pointer;text-align:left;}
.wapp-prof-person:hover{background:#F5F7F4;}
.wapp-prof-person.is-on{background:var(--wapp-on);font-weight:700;color:var(--wapp-deep);}
.wapp-prof-dot{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;
  border:1.5px solid var(--wapp-green);color:#fff;flex:0 0 auto;}
.wapp-prof-person.is-on .wapp-prof-dot{background:var(--wapp-green);}
.wapp-prof-note{margin:6px 0 0;font-size:12px;line-height:1.5;color:var(--wapp-muted);}
.wapp-prof-links{display:flex;flex-direction:column;padding-top:6px;}
.wapp-prof-links a,.wapp-prof-out{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 4px;
  border:none;background:none;font:inherit;font-size:15px;font-weight:500;color:var(--wapp-ink);
  text-decoration:none;cursor:pointer;text-align:left;}
.wapp-prof-links a .wapp-ico-sm{color:var(--wapp-muted);}
.wapp-prof-links a:hover{color:var(--wapp-deep);}
.wapp-prof-out{color:#931B24;font-weight:600;border-top:1px solid var(--wapp-line);margin-top:6px;}

/* On a wide screen the person menu drops from the avatar instead of
   rising from the bottom edge. */
@media (min-width:1000px){
  .wapp-layer-prof .wapp-sheet-scrim{background:transparent;}
  .wapp-layer-prof .wapp-sheet{left:auto;right:16px;bottom:auto;top:calc(var(--wapp-head-h) - 4px + env(safe-area-inset-top,0px));
    width:330px;border-radius:14px;box-shadow:0 14px 34px rgba(35,38,32,.18);border:1px solid var(--wapp-line);
    padding:4px 16px 12px;animation:none;}
}

html.wapp-locked,html.wapp-locked body{overflow:hidden;}

/* Focus rings that can be seen on white and on pale green. */
.wapp-head a:focus-visible,.wapp-head button:focus-visible,
.wapp-side a:focus-visible,.wapp-bar a:focus-visible,.wapp-bar button:focus-visible,
.wapp-layer a:focus-visible,.wapp-layer button:focus-visible,.wapp-for button:focus-visible{
  outline:3px solid #E8D9A8;outline-offset:2px;border-radius:10px;}

/* Paper: nothing of the app's chrome. */
@media print{
  .wapp-head,.wapp-side,.wapp-bar,.wapp-layer{display:none !important;}
  html.wnp-app body{padding:0 !important;}
}
