/* ============================================================================
   Previously — shared sign-in sheet styles
   Production path: shared/auth/signin-sheet.css
   ONE auth UI for every page. Brand tokens: Deep Charcoal #101114,
   Warm Bone #EDE6D6, Rewind Red #E8321E (status accent only — never a
   button fill), graphite #2B2B30 primary buttons, pearl #F4F1EA secondary.
   Zero emerald. No per-page variants, ever.
   ============================================================================ */

.pv-scrim{position:fixed;inset:0;background:rgba(5,5,7,.66);backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);z-index:80;opacity:0;pointer-events:none;transition:opacity .25s ease}
.pv-scrim.on{opacity:1;pointer-events:auto}

.pv-sheet{position:fixed;z-index:90;left:0;right:0;bottom:0;background:#18191d;color:#EDE6D6;
  border-top:1px solid rgba(237,230,214,.14);border-radius:22px 22px 0 0;
  padding:14px 20px calc(22px + env(safe-area-inset-bottom));
  transform:translateY(105%);transition:transform .32s cubic-bezier(.32,.9,.35,1);
  max-height:92vh;max-height:92svh;overflow-y:auto;-webkit-overflow-scrolling:touch;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Roboto,sans-serif;
  box-sizing:border-box}
.pv-sheet.on{transform:translateY(0)}
/* Source fix (2026-09-27 second round): the closed sheet is injected without
   `hidden`; closed it sat at opacity:0 but pointer-events:auto — an invisible
   click-blocker over the center of the viewport. A closed sheet must never
   intercept pointer events or take focus on ANY page, so the fix lives here
   at the source (the account page's local mitigation is now redundant).
   visibility flips after the longest close transition (.32s) so the
   slide/fade-out still plays; opening shows instantly. .on and [hidden]
   behavior are untouched. */
.pv-sheet:not(.on){pointer-events:none;visibility:hidden;
  transition:transform .32s cubic-bezier(.32,.9,.35,1),opacity .25s ease,transform .25s ease,visibility 0s linear .35s}
.pv-sheet.on{visibility:visible;
  transition:transform .32s cubic-bezier(.32,.9,.35,1),opacity .25s ease,transform .25s ease,visibility 0s}
.pv-sheet[hidden]{display:none!important}
@media(min-width:1024px){
  .pv-sheet{left:50%;right:auto;bottom:auto;top:50%;width:430px;max-width:calc(100vw - 48px);
    border-radius:20px;border:1px solid rgba(237,230,214,.14);
    transform:translate(-50%,-46%);opacity:0;transition:opacity .25s ease,transform .25s ease;padding:26px}
  .pv-sheet.on{transform:translate(-50%,-50%);opacity:1}
  .pv-grabber{display:none}
}
.pv-grabber{width:44px;height:5px;border-radius:99px;background:rgba(237,230,214,.22);margin:2px auto 14px}
.pv-sheet h2{font-size:21px;font-weight:800;letter-spacing:-.01em;margin:0;color:#EDE6D6}
.pv-sheet .pv-sub{color:rgba(237,230,214,.62);font-size:14px;margin:6px 0 18px;line-height:1.5}
.pv-x{position:absolute;top:12px;right:14px;width:34px;height:34px;border-radius:50%;
  color:rgba(237,230,214,.62);font-size:18px;border:none;background:none;cursor:pointer;
  font-family:inherit;display:flex;align-items:center;justify-content:center}
.pv-x:hover{color:#EDE6D6}

.pv-savetitle{display:flex;gap:12px;align-items:center;background:#101114;
  border:1px solid rgba(237,230,214,.14);border-radius:12px;padding:10px;margin-bottom:18px}
.pv-savetitle .pv-thumb{width:46px;height:66px;border-radius:8px;flex:none;display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:20px;color:rgba(237,230,214,.55); /* a11y 2026-09-27: was .35 (2.81:1) */background-size:cover;background-position:center;overflow:hidden;
  position:relative;background:#101114}
/* CSP-safe art: the thumbnail image rides an <img> (attribute-set, never an
   inline style), so strict style-src pages never block it. */
.pv-savetitle .pv-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;border:0}
.pv-savetitle .pv-thumb img[hidden]{display:none!important}
.pv-savetitle .pv-thumb #pv-save-thumb-letter{position:relative;z-index:1}
.pv-savetitle .pv-thumb #pv-save-thumb-letter[hidden]{display:none!important}
.pv-savetitle .pv-st{font-weight:700;font-size:15px;color:#EDE6D6}
.pv-savetitle .pv-sy{color:rgba(237,230,214,.62);font-size:12.5px;margin-top:2px}
.pv-savetitle[hidden]{display:none!important}

.pv-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:15px;border-radius:13px;
  font-size:16px;font-weight:700;margin-bottom:10px;transition:transform .12s ease;cursor:pointer;
  font-family:inherit;box-sizing:border-box;text-decoration:none}
.pv-btn:active{transform:scale(.98)}
.pv-btn-primary{background:#2B2B30;color:#EDE6D6;border:1px solid rgba(237,230,214,.12)}
.pv-btn-primary:hover{background:#3a3a41}
.pv-btn-pearl{background:transparent;color:#F4F1EA;border:1px solid rgba(244,241,234,.35)}
.pv-btn-pearl:hover{border-color:rgba(244,241,234,.7)}
.pv-btn-text{color:rgba(237,230,214,.62);font-size:14.5px;font-weight:600;padding:10px;width:100%;
  border:none;background:none;cursor:pointer;font-family:inherit}
.pv-btn-text:hover{color:#EDE6D6}
.pv-btn-text:disabled{opacity:.55;cursor:default}
.pv-btn-text:disabled:hover{color:rgba(237,230,214,.62)}
.pv-btn[hidden]{display:none!important}

.pv-fineprint{text-align:center;color:rgba(237,230,214,.55); /* a11y 2026-09-27: was .38 (3.10:1) */font-size:12px;margin-top:8px;line-height:1.5}
.pv-errortext{text-align:center;color:#F2493A; /* a11y 2026-09-27: was #E8321E (4.41:1) */font-size:13.5px;font-weight:600;margin:10px 0 4px;line-height:1.5}
.pv-errortext[hidden]{display:none!important}

.pv-stepbar{display:flex;gap:6px;margin:0 0 16px}
.pv-stepbar i{flex:1;height:4px;border-radius:99px;background:rgba(237,230,214,.14)}
.pv-stepbar i.on{background:#EDE6D6}

.pv-emailfield{width:100%;background:#101114;border:1px solid rgba(237,230,214,.14);border-radius:12px;
  color:#EDE6D6;font-size:16px;padding:15px 14px;margin-bottom:12px;box-sizing:border-box;
  font-family:inherit}
.pv-emailfield:focus{outline:2px solid #EDE6D6;outline-offset:-1px}
.pv-emailfield::placeholder{color:rgba(237,230,214,.55)} /* a11y 2026-09-27: was .38 */

.pv-mailart{width:64px;height:64px;border-radius:18px;background:#2B2B30;display:flex;align-items:center;
  justify-content:center;margin:6px auto 14px}
.pv-count{color:#EDE6D6;font-weight:700}

.pv-center{text-align:center}
.pv-sentto{color:#EDE6D6}
.pv-busy{text-align:center;padding:20px 0}

.pv-spinner{width:22px;height:22px;border-radius:50%;border:3px solid rgba(237,230,214,.25);
  border-top-color:#EDE6D6;animation:pv-spin .8s linear infinite;margin:26px auto 12px}
@keyframes pv-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  .pv-sheet,.pv-scrim{transition:none}
  .pv-spinner{animation-duration:2s}
}

/* ---------- uniform header sign-in pill (nav contract) ----------
   Every page's header renders the guest trigger as:
     <button class="pv-navpill" data-pv-signin type="button">Sign in</button>
   The nav worker adopts this markup in chrome.js; per-page inline headers
   use it directly. Signed-in state rendering stays with the account lane. */
.pv-navpill{font-family:inherit;font-size:13.5px;font-weight:700;color:#EDE6D6;
  border:1px solid rgba(237,230,214,.16);border-radius:99px;padding:9px 18px;
  background:rgba(237,230,214,.05);cursor:pointer;white-space:nowrap}
.pv-navpill:hover{background:rgba(237,230,214,.12)}
.pv-navpill:active{transform:scale(.97)}

/* ---------- toast ---------- */
.pv-toast{position:fixed;z-index:130;left:16px;right:16px;bottom:calc(20px + env(safe-area-inset-bottom));
  background:#EDE6D6;color:#141518;border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:10px;
  font-weight:700;font-size:14.5px;transform:translateY(140%);transition:transform .35s cubic-bezier(.32,.9,.35,1);
  box-shadow:0 12px 40px rgba(0,0,0,.5);font-family:inherit;box-sizing:border-box;pointer-events:none}
@media(min-width:1024px){.pv-toast{left:auto;right:28px;width:360px}}
.pv-toast.on{transform:translateY(0)}
.pv-toast .pv-tk{width:26px;height:26px;border-radius:50%;background:#141518;color:#EDE6D6;flex:none;
  display:flex;align-items:center;justify-content:center;font-size:14px}
.pv-toast[hidden]{display:none!important}
