/* SNOW Daily on the home screen (PWA-20261102-v1, assets/js/install.js) */

/* the help link in the footer and the menu: shown by install.js on phones and tablets only, never once installed */
[data-hs-help][hidden] { display: none !important; }
.site-nav .hs-nav { font-size: var(--text-sm); }

/* A4: the suggestion bar. Slim, at the foot of the screen; the page gets the same space at its end, so the last rows
   of any table can always be scrolled clear of it */
.hs-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-3); padding: var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom, 0px)); background: var(--color-surface); color: var(--color-text); border-top: 1px solid var(--color-border); box-shadow: 0 -4px 16px oklch(0.15 0.03 250 / 0.12); }
.hs-bar__text { margin: 0; flex: 1 1 16rem; font-size: var(--text-sm); line-height: 1.4; }
.hs-bar__btns { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.hs-bar .btn { min-height: 2.25rem; padding-block: 0.4rem; }
.hs-link { background: none; border: 0; padding: 0.4rem 0.2rem; color: var(--color-text-muted); font: inherit; font-size: var(--text-sm); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.hs-link:hover { color: var(--color-text); }
html.hs-bar-on body { padding-bottom: 7.5rem; }
@media print { .hs-bar { display: none; } }

/* A2: the help sheet (reuses the pass dialog frame) */
.hs-sheet h2 { margin: 0 0 var(--space-3); padding-right: 2.5rem; font-size: 1.25rem; line-height: 1.25; }
.hs-sheet p { margin: 0 0 var(--space-4); font-size: var(--text-sm); color: var(--color-text-muted); }
.hs-steps h3 { margin: var(--space-4) 0 var(--space-2); font-size: var(--text-sm); text-transform: none; letter-spacing: 0; color: var(--color-text); }
.hs-steps ol { margin: 0; padding-left: 1.4rem; list-style: decimal; font-size: var(--text-sm); line-height: 1.5; }
.hs-steps li { display: list-item; }
.hs-steps li + li { margin-top: var(--space-2); }
.hs-sheet .hs-note { margin-top: var(--space-4); padding: var(--space-3); border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-text); }
.hs-others { margin-top: var(--space-4); font-size: var(--text-sm); }
.hs-others summary { cursor: pointer; color: var(--color-primary); }

/* A5: opened from the home screen */
.hs-navbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; display: flex; justify-content: space-around; align-items: stretch; padding: 0.15rem max(1rem, env(safe-area-inset-left, 0px)) max(0.9rem, env(safe-area-inset-bottom, 0px)); background: var(--color-surface); border-top: 1px solid var(--color-border); }   /* side and bottom room so the rounded screen corners and the home line never clip a label (owner, 3 Nov 2026) */
.hs-navbar__btn { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 3.8rem; padding: 0.45rem 0 0.35rem; background: none; border: 0; color: var(--color-text); font: inherit; font-size: 0.72rem; letter-spacing: 0.04em; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.hs-navbar__btn span { display: block; line-height: 1.3; padding-bottom: 1px; overflow: visible; }   /* room for descenders (the g of page; owner, 3 Nov 2026) */
.hs-navbar__btn svg { width: 23px; height: 23px; color: var(--color-primary); }   /* a little larger (owner, 3 Nov 2026) */   /* coral on the night theme, as the headline figures */
[data-theme='light'] .hs-navbar__btn svg { color: var(--ab-ink, #14120f); }   /* ink by day (owner, 3 Nov 2026); coral stays for the night theme */
.hs-navbar__btn:disabled { opacity: 0.3; cursor: default; }
.hs-navbar__btn:not(:disabled):active { opacity: 0.6; }
/* OFF-20261103-v1: Saved (pass holders, html.sd-offline-ok from offline.js) */
.hs-navbar [data-nav="saved"] { display: none; }
html.sd-offline-ok .hs-navbar [data-nav="saved"] { display: flex; }
html.hs-navbar-on body { padding-bottom: calc(5.2rem + env(safe-area-inset-bottom, 0px)); }
/* the three-hour pop-up on a phone opens above the bar, not behind it, and scrolls on its own (owner, 3 Nov 2026) */

@media print { .hs-navbar { display: none; } }
html.is-standalone .site-header__inner { padding-top: env(safe-area-inset-top, 0px); }

/* A6: older figures in the installed app */
.hs-stale { color: var(--color-text); text-align: center; padding: var(--space-2) var(--space-4); margin-block: var(--space-3); line-height: 1.35; border: 1px solid var(--color-primary); border-radius: var(--radius-md); background: var(--color-primary-highlight); }
.hs-stale__age { margin: 0; }
[data-theme='light'] .hs-stale { border-color: var(--ab-ink, #14120f); }   /* ink border by day (owner, 3 Nov 2026) */
/* owner, 3 Nov 2026: one Refresh page link, centred under the age line; coral by night, ink by day, as the bar */
.hs-stale__refresh { background: none; border: 0; padding: 0 0.25rem; font: inherit; font-weight: 500; line-height: 1.35; color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; cursor: pointer; }
[data-theme='light'] .hs-stale__refresh { color: var(--ab-ink, #14120f); }

/* A9: the six-digit code box under the sign-in forms */
.pass__code { margin-top: var(--space-3); }
.pass__code label { display: block; margin-bottom: var(--space-2); font-size: var(--text-sm); }
.pass__code input { letter-spacing: 0.2em; }

/* PUSH-20261102-v1 N5: snow alerts on this phone (pass page) */
.alerts__phone { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--color-divider, var(--color-border)); }
.alerts__phone-h { margin: 0 0 var(--space-2); font-size: var(--text-sm); }

/* DEV-20261103-v1: signed-in devices (pass page) */
.devices__list { list-style: none; margin: 0 0 var(--space-3); padding: 0; }
.devices__item { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) 0; border-bottom: 1px solid var(--color-divider, var(--color-border)); }
.devices__item small { color: var(--color-text-muted); font-size: var(--text-xs); }
.devices__this { margin-left: var(--space-2); }
.devices__item .btn { flex: none; min-height: 2.25rem; padding-block: 0.35rem; }

/* OFF-20261103-v1: saved resort pages for offline reading */
html.off-viewing .ticker { display: none; }   /* nothing live-looking above an offline copy */
.off-strip { position: sticky; top: 0; z-index: 75; display: grid; gap: 0.15rem; padding: calc(0.5rem + env(safe-area-inset-top, 0px)) var(--space-4) 0.5rem; background: var(--ab-ink, #14120f); color: #f4f3ef; text-align: center; font-family: var(--ab-sans, inherit); }   /* the site's sans, as the eyebrows (owner, 3 Nov 2026) */
.off-strip__main { font-size: var(--text-xs); font-weight: 400; letter-spacing: 0.02em; line-height: 1.4; }
.off-strip__label { font-weight: 500; letter-spacing: 0.18em; }   /* only OFFLINE COPY in capitals (owner, 3 Nov 2026) */
[data-theme='dark'] .off-strip { background: #f4efe6; color: #0d0c0b; }
.off-strip.is-old, [data-theme='dark'] .off-strip.is-old { background: #ff6a55; color: #0d0c0b; }   /* more than 24 hours old */
.off-save { margin-top: var(--space-3); }
.off-save .pass__actions { align-items: center; }
.off-chip { display: inline-flex; align-items: stretch; border: 1px solid var(--color-border); border-radius: var(--radius-sm); overflow: hidden; }   /* one chip: offline copy | 3D map (owner, 3 Nov 2026) */
.off-chip__seg { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 2.5rem; padding: 0.45rem 0.85rem; background: none; border: 0; color: var(--color-text); font-family: var(--ab-sans, inherit); font-weight: 500; font-size: var(--text-sm); letter-spacing: 0.04em; cursor: pointer; }
.off-chip__seg + .off-chip__seg { border-left: 1px solid var(--color-border); }
.off-chip__seg:disabled { opacity: 0.5; cursor: default; }
.off-chip__seg.off-3d svg { color: var(--color-text-muted); }
.off-chip__seg.off-3d[aria-pressed="true"] svg { color: var(--color-primary); }
[data-theme='light'] .off-chip__seg.off-3d[aria-pressed="true"] svg { color: var(--ab-ink, #14120f); }
.off-mark { flex: none; color: var(--color-primary); }   /* saved for offline: coral by night */
[data-theme='light'] .off-mark { color: var(--ab-ink, #14120f); }   /* ink by day, as the bar */
.off-update { font-size: var(--text-sm); }
.off-list { list-style: none; margin: 0 0 var(--space-4); padding: 0; }
#view-saved .page-head { margin-bottom: var(--space-3); padding-bottom: 0; }   /* less space above the first saved resort (owner, 3 Nov 2026) */
#view-saved .page-head .page-lede { margin-bottom: 0; }
.off-item { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) 0; border-bottom: 1px solid var(--color-divider, var(--color-border)); }
.off-item small { color: var(--color-text-muted); font-size: var(--text-xs); }
.off-item__btns { display: flex; gap: var(--space-2); flex: none; }
.off-item__btns .btn { min-height: 2.25rem; padding-block: 0.35rem; }
.off-note { text-align: left; }
.off-page a.is-offline { pointer-events: none; opacity: 0.55; }
.off-map { margin: var(--space-4) 0; }
.off-map__box { height: min(70vh, 30rem); }

/* OFF-20261103-v1 O10: piste maps kept on the phone */
/* Keep the offline action and map choices in one box without wrapped-row border fragments. */
.off-save .off-chip { display: inline-grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; max-width: 34rem; }
.off-save .off-chip__seg { min-width: 0; min-height: 2.75rem; }
.off-save .off-chip__seg svg { flex: none; }
.off-save .off-chip__seg:focus-visible { outline-offset: -3px; }
.off-save .off-chip__seg span { min-width: 0; overflow-wrap: anywhere; }
.off-save .off-chip__seg:first-child { grid-column: 1 / -1; }
.off-save .off-chip__seg + .off-chip__seg { border-top: 1px solid var(--color-border); border-left: 0; }
.off-save .off-chip__seg:nth-child(3) { border-left: 1px solid var(--color-border); }
.off-save .off-chip__seg:nth-child(2):last-child { grid-column: 1 / -1; }
.off-save--live:has([data-off-live][hidden]) { display: none; }
.off-chip__seg.off-piste svg { color: var(--color-text-muted); }
.off-chip__seg.off-piste[aria-pressed="true"] svg { color: var(--color-primary); }
[data-theme='light'] .off-chip__seg.off-piste[aria-pressed="true"] svg { color: var(--ab-ink, #14120f); }
.off-piste-note { margin: var(--space-2) 0 0; }   /* the piste map's credit, under the row of buttons */
.off-viewer { position: fixed; inset: 0; z-index: 90; display: flex; flex-direction: column; background: var(--color-bg); }
.off-viewer__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: calc(0.5rem + env(safe-area-inset-top, 0px)) var(--space-4) 0.5rem; border-bottom: 1px solid var(--color-border); font-family: var(--ab-sans, inherit); font-size: var(--text-sm); }
.off-viewer__body { flex: 1; overflow: auto; -webkit-overflow-scrolling: touch; touch-action: pan-x pan-y pinch-zoom; }
.off-viewer__body img { display: block; width: 100%; height: auto; }
.off-viewer__body iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.off-viewer__foot { margin: 0; padding: 0.6rem var(--space-4) calc(0.6rem + env(safe-area-inset-bottom, 0px)); font-size: var(--text-sm); border-top: 1px solid var(--color-border); }
html.off-viewer-open, html.off-viewer-open body { overflow: hidden; }

/* the bar stays put: no bounce in the home-screen app (owner, 3 Nov 2026: it moved with a downward scroll) */
html.is-standalone, html.is-standalone body { overscroll-behavior-y: none; }
.off-chip__seg[hidden] { display: none; }
.notice.off-note--offline { margin: calc(var(--space-4) + var(--space-3)) 0 var(--space-4);   /* the same gap above as below (owner, 3 Nov 2026) */ padding: 0; color: var(--color-text); }
/* the message line under the offline chip takes no space until there is a message (owner, 3 Nov 2026): the gap from
   the chip to the double rule is then the same 24px as for visitors */
.off-save .off-msg:empty { display: none; }
.off-save .pass__actions { margin-bottom: 0; }
/* the bar's Search (7 Nov 2026): the menu opens with Find Resort first, so the suggestions are not under the bar */
.site-nav.is-open.is-find .nav-find { order: -1; margin: 0 0 var(--space-2, 0.5rem); }
