/* Premium forecast (/forecast/premium/, src/assets/premium.js).
   Calmer than the free forecast: one column, top to bottom profile (with the alerts), search and
   filters, favourites as cards, then the spot; white surfaces, hairlines instead of shadows, and the site's blue rating scale
   (--fc-r0..5 in styles.css) as the only strong colour. */
.pf {
    --pf-line: var(--border);
    --pf-ink: var(--text);
    --pf-soft: var(--text-muted);
    --pf-panel: var(--surface);
    --pf-sel: var(--accent-2-soft);
    --pf-key: var(--accent-2);
    max-width: 1240px; margin: 0 auto;
    padding-block: 24px 64px;
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
}
.pf h2, .pf h3 { font-family: var(--font-ui); letter-spacing: -0.01em; margin: 0; }
.pf-muted { color: var(--pf-soft); margin: 0; font-size: 0.9rem; }
.pf-muted.small, .pf .small { font-size: 0.8rem; }
.pf-head { display: grid; gap: 6px; margin-bottom: 22px; }
.pf-title-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pf-title { font-family: var(--font-display); font-size: clamp(1.8rem, 4vw, 2.5rem); line-height: 1.1; margin: 0; }
.pf-title em { font-style: italic; color: var(--pf-key); }
.pf-beta { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 9px; border-radius: 999px; background: var(--pf-sel); color: var(--pf-key); }
.pf-sub { margin: 0; color: var(--pf-soft); max-width: 62ch; }

.pf-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.pf-find { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.pf-main { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; border-top: 1px solid var(--pf-line); padding-top: 20px; scroll-margin-top: calc(var(--header-h) + 12px); }
.pf [hidden] { display: none !important; }

/* search + filters */
.pf-search { position: relative; display: flex; align-items: center; gap: 6px; border: 1px solid var(--pf-line); border-radius: 12px; background: var(--pf-panel); padding: 4px 4px 4px 38px; }
.pf-search:focus-within { border-color: var(--pf-key); box-shadow: 0 0 0 3px var(--pf-sel); }
.pf-search-icon { position: absolute; left: 12px; color: var(--pf-soft); }
.pf-search input:focus-visible { outline: none; }
.pf-search input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--pf-ink); font: inherit; padding: 9px 0; outline: none; }
.pf-near { display: inline-flex; align-items: center; gap: 6px; border: 0; border-radius: 9px; background: var(--surface-2); color: var(--pf-ink); font: inherit; font-size: 0.85rem; padding: 8px 10px; cursor: pointer; white-space: nowrap; }
.pf-near:hover { background: var(--pf-sel); color: var(--pf-key); }
.pf-filters { display: grid; gap: 10px; }
.pf-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pf-chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--pf-line); border-radius: 999px; background: var(--pf-panel); color: var(--pf-ink); font: inherit; font-size: 0.83rem; padding: 5px 11px 5px 6px; cursor: pointer; }
.pf-chip:hover { border-color: var(--border-strong); }
.pf-chip[aria-pressed="true"] { background: var(--pf-sel); border-color: var(--pf-key); color: var(--pf-key); font-weight: 600; }
.pf-ticon { display: inline-flex; }
.pf-selects { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-width: 520px; }
.pf-select { display: grid; gap: 3px; font-size: 0.75rem; color: var(--pf-soft); }
.pf-select select { width: 100%; }
.pf-select select, .pf-sort select { font: inherit; font-size: 0.88rem; color: var(--pf-ink); background: var(--pf-panel); border: 1px solid var(--pf-line); border-radius: 9px; padding: 7px 8px; min-width: 0; }
.pf-clear { justify-self: start; border: 0; background: none; color: var(--pf-key); font: inherit; font-size: 0.85rem; padding: 0; cursor: pointer; text-decoration: underline; }
.pf-status:empty { display: none; }
.pf-status { margin: 0; font-size: 0.85rem; color: var(--pf-soft); }

.pf-sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.pf-sec-head h2 { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--pf-soft); font-weight: 700; }
.pf-list, .pf-favlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.pf-list { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); column-gap: 12px; max-height: 420px; overflow-y: auto; }
.pf-list li { display: flex; align-items: center; gap: 4px; }
.pf-item { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; border: 0; border-radius: 10px; background: transparent; color: var(--pf-ink); font: inherit; text-align: left; padding: 7px 8px; cursor: pointer; }
.pf-item:hover { background: var(--surface-2); }
.pf-item-txt { flex: 1; min-width: 0; display: grid; }
.pf-item-txt b { font-weight: 600; font-size: 0.92rem; }
.pf-item-txt small { color: var(--pf-soft); font-size: 0.78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-flag { font-size: 1rem; }
.pf-star { display: inline-flex; align-items: center; gap: 6px; border: 1px solid transparent; border-radius: 999px; background: none; color: var(--pf-soft); font: inherit; font-size: 0.85rem; padding: 6px; cursor: pointer; }
.pf-star:hover { color: var(--warn); }
.pf-star.on { color: var(--warn); }
.pf-star[data-label] { border-color: var(--pf-line); padding: 7px 13px; color: var(--pf-ink); }
.pf-star[data-label].on svg { color: var(--warn); }

/* favourites */
.pf-favs { margin-top: 10px; }
.pf-favs .pf-sec-head { justify-content: flex-end; }
.pf-results { border-top: 1px solid var(--pf-line); padding-top: 14px; }
/* favourites fill the row first, then wrap */
.pf-favlist { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; }
@media (max-width: 600px) {   /* phones: one swipeable row */
    .pf-favlist { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 82%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; }
    .pf-fav { scroll-snap-align: start; }
}
.pf-sort select { padding: 4px 6px; font-size: 0.8rem; }
.pf-fav { display: flex; align-items: center; gap: 2px; min-width: 0; border: 1px solid var(--pf-line); border-radius: 12px; background: var(--pf-panel); }
.pf-fav.active { background: var(--pf-sel); border-color: var(--pf-key); }
.pf-fav-open { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; border: 0; background: none; color: var(--pf-ink); font: inherit; text-align: left; padding: 9px 8px; cursor: pointer; border-radius: 12px; }
.pf-fav-open:hover { background: var(--surface-2); }
.pf-fav.active .pf-fav-open:hover { background: transparent; }
.pf-fav-txt { display: grid; gap: 2px; min-width: 0; }
.pf-fav-name { font-weight: 600; display: flex; align-items: center; gap: 6px; }
.pf-fav-name small { font-weight: 400; }
.pf-fav-line { font-size: 0.78rem; color: var(--pf-soft); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pf-fav-line b { color: var(--pf-ink); font-weight: 600; }
.pf-fav-tools { display: flex; opacity: 0.5; }
.pf-fav:hover .pf-fav-tools, .pf-fav:focus-within .pf-fav-tools { opacity: 1; }
.pf-icon-btn { border: 0; background: none; color: var(--pf-soft); font: inherit; font-size: 1.05rem; width: 30px; height: 30px; border-radius: 8px; cursor: pointer; }
.pf-icon-btn:hover { background: var(--surface-2); color: var(--pf-ink); }

/* rating chip: number + star, blue scale */
.pf-r { display: inline-flex; align-items: center; justify-content: center; gap: 2px; min-width: 34px; height: 24px; padding: 0 6px; border-radius: 7px; background: var(--fc-c, var(--fc-r0)); color: var(--fc-i, var(--pf-soft)); font-weight: 700; font-size: 0.8rem; font-variant-numeric: tabular-nums; flex: none; }
.pf-r svg { width: 10px; height: 10px; fill: currentColor; opacity: 0.85; }
.pf-r.big { min-width: 46px; height: 40px; border-radius: 10px; font-size: 1.1rem; }
.pf-r.big svg { width: 13px; height: 13px; }
.pf-r.none { background: var(--surface-2); color: var(--pf-soft); }

/* profile */
.pf-profile { position: relative; }
.pf-toggles { display: flex; flex-wrap: wrap; gap: 8px; }
.pf-favs-btn svg { color: var(--warn); }
.pf-count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--surface-2); color: var(--pf-ink) !important; font-size: 0.78rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.pf-favs-btn[aria-expanded="true"] .pf-count { background: var(--pf-sel); color: var(--pf-key) !important; }
.pf-profile-btn { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; border: 1px solid var(--pf-line); border-radius: 999px; background: var(--pf-panel); color: var(--pf-ink); font: inherit; font-size: 0.88rem; padding: 8px 14px; cursor: pointer; text-align: left; }
.pf-profile-btn span { color: var(--pf-soft); }
.pf-profile-btn b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.pf-profile-btn[aria-expanded="true"] { border-color: var(--pf-key); }
.pf-profile-box { margin-top: 10px; border: 1px solid var(--pf-line); border-radius: 16px; background: var(--pf-panel); padding: 18px; display: grid; gap: 16px; }
.pf-profile-panel { display: grid; gap: 12px; }
.pf-profile-panel h3 { font-size: 1rem; }
.pf-seg { display: flex; flex-wrap: wrap; gap: 4px; background: var(--surface-2); border-radius: 11px; padding: 3px; width: fit-content; max-width: 100%; }
.pf-seg button { border: 0; background: none; color: var(--pf-soft); font: inherit; font-size: 0.85rem; padding: 6px 12px; border-radius: 8px; cursor: pointer; }
.pf-seg button[aria-checked="true"] { background: var(--pf-panel); color: var(--pf-ink); font-weight: 600; box-shadow: var(--shadow-xs); }
.pf-prof-grid { display: grid; gap: 12px; }
.pf-lab { display: block; font-size: 0.75rem; color: var(--pf-soft); margin-bottom: 4px; }
.pf-custom { display: grid; gap: 14px; border-top: 1px solid var(--pf-line); padding-top: 14px; }
.pf-fields { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.pf-fields label { display: grid; gap: 4px; font-size: 0.78rem; color: var(--pf-soft); }
.pf-unit { display: flex; align-items: center; gap: 6px; color: var(--pf-soft); }
.pf-fields input, .pf-fields select { font: inherit; font-size: 0.92rem; color: var(--pf-ink); background: var(--bg); border: 1px solid var(--pf-line); border-radius: 8px; padding: 7px 8px; width: 100%; min-width: 0; }
.pf-fields .pf-unit input { width: 76px; }
.pf-check { display: flex; gap: 8px; align-items: center; font-size: 0.88rem; }
.pf-weights { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; }
.pf-weights legend { font-size: 0.78rem; color: var(--pf-soft); margin-bottom: 6px; padding: 0; }
.pf-weight { display: grid; grid-template-columns: minmax(110px, 1fr) minmax(100px, 2fr) 74px; gap: 10px; align-items: center; font-size: 0.88rem; }
.pf-weight input { accent-color: var(--pf-key); width: 100%; }
.pf-weight output { font-size: 0.8rem; color: var(--pf-soft); }
.pf-link-btn { justify-self: start; border: 0; background: none; color: var(--pf-key); font: inherit; font-size: 0.85rem; text-decoration: underline; padding: 0; cursor: pointer; }

/* spot */
.pf-empty { border: 1px dashed var(--border-strong); border-radius: 16px; padding: 40px 20px; text-align: center; color: var(--pf-soft); margin: 0; }
#pfSpot { display: grid; gap: 14px; min-width: 0; }
.pf-spot-head { display: flex; justify-content: space-between; gap: 12px 20px; align-items: flex-start; flex-wrap: wrap; }
.pf-spot-title { display: grid; gap: 4px; min-width: 0; }
.pf-kicker { margin: 0; font-size: 0.82rem; color: var(--pf-soft); display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.pf-spot-title h2 { font-family: var(--font-display); font-size: clamp(1.6rem, 3.4vw, 2.2rem); line-height: 1.1; }
.pf-ideal { margin: 0; font-size: 0.88rem; color: var(--pf-soft); }
.pf-ideal b { color: var(--pf-ink); }
.pf-warn { margin: 0; font-size: 0.85rem; color: var(--accent); }
.pf-spot-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pf-ghost { font-size: 0.85rem; color: var(--pf-key); text-decoration: none; padding: 7px 4px; }
.pf-ghost:hover { text-decoration: underline; }
.pf-h3 { font-size: 0.78rem !important; text-transform: uppercase; letter-spacing: 0.08em; color: var(--pf-soft); font-weight: 700; margin-top: 10px !important; }

.pf-now { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; border: 1px solid var(--pf-line); border-radius: 16px; background: var(--pf-panel); padding: 16px 18px; }
.pf-now-main { display: flex; align-items: center; gap: 12px; }
.pf-now-main > div { display: grid; }
.pf-eyebrow { font-size: 0.75rem; color: var(--pf-soft); text-transform: uppercase; letter-spacing: 0.06em; }
.pf-word { font-weight: 700; font-size: 1.1rem; }
.pf-facts { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 0; }
.pf-facts div { display: grid; gap: 1px; }
.pf-facts dt { font-size: 0.72rem; color: var(--pf-soft); text-transform: uppercase; letter-spacing: 0.05em; }
.pf-facts dd { margin: 0; font-variant-numeric: tabular-nums; display: flex; align-items: center; gap: 4px; }
.pf-facts dd b { font-size: 1.25rem; }
.pf-arrow { display: inline-block; width: 13px; height: 13px; flex: none; vertical-align: -2px; }
.pf-w { display: inline-flex; align-items: center; gap: 4px; }
.pf-w small { font-size: 0.75rem; }
.pf-w.offshore { color: var(--fc-off); } .pf-w.cross { color: var(--fc-cross); } .pf-w.onshore { color: var(--fc-on); }

.pf-days { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; scroll-snap-type: x proximity; }
.pf-day { flex: 0 0 78px; scroll-snap-align: start; display: grid; justify-items: center; gap: 5px; border: 1px solid var(--pf-line); border-radius: 12px; background: var(--pf-panel); color: var(--pf-ink); font: inherit; padding: 9px 4px 8px; cursor: pointer; }
.pf-day:hover { border-color: var(--border-strong); }
.pf-day.active { border-color: var(--pf-key); background: var(--pf-sel); }
.pf-day.trend { border-style: dashed; }
.pf-day-name { font-size: 0.78rem; font-weight: 600; text-transform: capitalize; white-space: nowrap; }
.pf-day-h { font-size: 0.72rem; color: var(--pf-soft); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pf-trend-tag { font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pf-soft); }

.pf-dayhead { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.pf-dayhead h3 { font-size: 1.1rem; text-transform: capitalize; }
.pf-dayhead > span { display: inline-flex; align-items: center; gap: 6px; font-size: 0.88rem; color: var(--pf-soft); }
.pf-dayhead b { color: var(--pf-ink); }
.pf-note { margin: 0; font-size: 0.84rem; color: var(--pf-soft); background: var(--surface-2); border-radius: 10px; padding: 8px 12px; }

/* hour table: one column per hour, earliest on the left; the labels stay put while it scrolls */
.pf-htable-wrap { overflow-x: auto; border: 1px solid var(--pf-line); border-radius: 14px; background: var(--pf-panel); padding-bottom: 6px; scrollbar-width: auto; scrollbar-color: var(--border-strong) transparent; }
/* an always-visible scroll bar inside the box (macOS and phones hide it otherwise) */
.pf-htable-wrap::-webkit-scrollbar { height: 10px; }
.pf-htable-wrap::-webkit-scrollbar-track { background: var(--surface-2); border-radius: 999px; margin: 0 14px; }
.pf-htable-wrap::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 999px; }
.pf-htable-wrap::-webkit-scrollbar-thumb:hover { background: var(--pf-soft); }
.pf-htable { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 0.86rem; font-variant-numeric: tabular-nums; }
.pf-htable th, .pf-htable td { padding: 9px 6px; min-width: 58px; text-align: center; white-space: nowrap; border-top: 1px solid var(--pf-line); }
.pf-htable thead th { border-top: 0; }
.pf-htable th[scope="row"] { position: sticky; left: 0; z-index: 1; background: var(--pf-panel); text-align: left; padding-inline: 14px 10px; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pf-soft); box-shadow: 1px 0 0 var(--pf-line); }
.pf-htable th[scope="row"] small { text-transform: none; letter-spacing: 0; font-weight: 400; }
.pf-htable .pf-hour { font-weight: 600; }
.pf-htable .night { color: var(--pf-soft); background: color-mix(in oklab, var(--surface-2) 45%, transparent); }
.pf-htable .past { opacity: 0.45; }
.pf-htable thead .best { box-shadow: inset 0 3px 0 var(--fc-r4); }
.pf-htable thead .now { color: var(--pf-key); font-weight: 700; }
.pf-htable .now { background: var(--pf-sel); }
.pf-htable .pf-r { min-width: 30px; }
.pf-stack { display: inline-grid; justify-items: center; gap: 2px; }
.pf-stack small { font-size: 0.72rem; color: var(--pf-soft); }

.pf-grid-wrap { overflow-x: auto; border: 1px solid var(--pf-line); border-radius: 14px; background: var(--pf-panel); padding: 10px; }
.pf-grid { display: grid; grid-template-columns: 70px repeat(24, minmax(11px, 1fr)); gap: 2px; min-width: 380px; }
.pf-gh { font-size: 0.65rem; color: var(--pf-soft); text-align: left; font-variant-numeric: tabular-nums; }
.pf-gd { border: 0; background: none; color: var(--pf-ink); font: inherit; font-size: 0.75rem; text-align: left; padding: 0 4px 0 0; cursor: pointer; white-space: nowrap; text-transform: capitalize; border-radius: 4px; }
.pf-gd.active { color: var(--pf-key); font-weight: 700; }
.pf-gd.trend { color: var(--pf-soft); }
.pf-gc { height: 18px; border-radius: 3px; background: var(--fc-c); }
.pf-gc.empty { background: transparent; }
.pf-gc.night { opacity: 0.4; }
.pf-gc.trend { opacity: 0.7; }
.pf-gc.night.trend { opacity: 0.3; }

.pf-readout { margin: 0; font-size: 0.84rem; color: var(--pf-ink); min-height: 1.3em; font-variant-numeric: tabular-nums; }
.pf-chart-wrap { overflow-x: auto; border: 1px solid var(--pf-line); border-radius: 14px; background: var(--pf-panel); padding: 8px 0 6px; scrollbar-color: var(--border-strong) transparent; }
.pf-chart-wrap::-webkit-scrollbar, .pf-htable-wrap::-webkit-scrollbar { height: 10px; }
.pf-chart-wrap::-webkit-scrollbar-track { background: var(--surface-2); border-radius: 999px; margin: 0 14px; }
.pf-chart-wrap::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 999px; }
.pf-chart-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; }
.pf-chart-head .pf-h3 { margin-top: 0 !important; }
.pf-zoom { display: inline-flex; border: 1px solid var(--pf-line); border-radius: 10px; background: var(--pf-panel); overflow: hidden; }
.pf-zoom .pf-icon-btn { border-radius: 0; width: 36px; height: 32px; font-size: 1.1rem; }
.pf-zoom .pf-icon-btn + .pf-icon-btn { border-left: 1px solid var(--pf-line); }
.pf-zoom .pf-icon-btn:disabled { opacity: 0.35; cursor: default; }
.pf-chart { display: block; max-width: none; height: auto; touch-action: pan-x; }
.pf-chart .pf-b { fill: var(--fc-c); }
.pf-chart .pf-b.dim { opacity: 0.55; }
.pf-chart .pf-b.trend { opacity: 0.45; }
.pf-chart .pf-b:hover { opacity: 1; stroke: var(--pf-ink); stroke-width: 1; }
.pf-chart .pf-gl { stroke: var(--pf-line); stroke-width: 1; stroke-dasharray: 2 3; }
.pf-chart .pf-dl { stroke: var(--pf-line); stroke-width: 1; }
.pf-chart .pf-nowl { stroke: var(--accent); stroke-width: 1.5; }
.pf-chart .pf-tl { fill: var(--pf-soft); font: 10px var(--font-ui); text-transform: capitalize; }

.pf-rank .pf-item { padding-block: 6px; }
.pf-foot { margin: 0; font-size: 0.78rem; color: var(--pf-soft); }
.pf-foot a { color: var(--pf-key); }
.pf :focus-visible { outline: 2px solid var(--pf-key); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .pf * { scroll-behavior: auto !important; } }

/* epic-day alerts */
.pf-alerts { display: grid; gap: 8px; padding-top: 16px; border-top: 1px solid var(--pf-line); }
.pf-switch { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 0.9rem; cursor: pointer; }
.pf-switch input { appearance: none; -webkit-appearance: none; flex: none; width: 38px; height: 22px; border-radius: 999px; background: var(--border-strong); position: relative; cursor: pointer; margin: 0; transition: background 0.15s; }
.pf-switch input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--surface); transition: transform 0.15s; }
.pf-switch input:checked { background: var(--pf-key); }
.pf-switch input:checked::after { transform: translateX(16px); }
.pf-switch input:disabled { opacity: 0.5; cursor: not-allowed; }
.pf-alerts select { font: inherit; font-size: 0.85rem; color: var(--pf-ink); background: var(--bg); border: 1px solid var(--pf-line); border-radius: 8px; padding: 6px 8px; justify-self: start; }

/* account */
.pf-account { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--pf-line); border-radius: 14px; background: var(--pf-panel); }
.pf-signin { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; }
.pf-login { display: flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid var(--pf-line); border-radius: 10px; padding: 9px 12px; font-weight: 600; font-size: 0.9rem; color: var(--pf-ink); background: var(--pf-panel); text-decoration: none; }
.pf-login:hover { border-color: var(--border-strong); background: var(--surface-2); color: var(--pf-ink); }
.pf-login.apple { background: var(--pf-ink); color: var(--bg); border-color: var(--pf-ink); }
.pf-login.apple:hover { color: var(--bg); background: var(--pf-ink); opacity: 0.9; }
.pf-acc-row { display: flex; align-items: center; gap: 10px; }
.pf-acc-row img { border-radius: 50%; flex: none; }
.pf-acc-who { flex: 1; min-width: 0; display: grid; }
.pf-acc-who b { font-size: 0.92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-acc-who small { color: var(--pf-soft); font-size: 0.78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-acc-status { margin: 0; font-weight: 600; font-size: 0.88rem; color: var(--pf-key); }
.pf-buy { display: grid; gap: 6px; }
.pf-buy-row { display: flex; gap: 8px; flex-wrap: wrap; }
.pf-buy-btn { flex: 1; text-align: center; border: 1px solid var(--pf-key); border-radius: 10px; padding: 8px 10px; font-weight: 600; font-size: 0.88rem; color: var(--pf-key); text-decoration: none; }
.pf-buy-btn.main { background: var(--pf-key); color: var(--surface); }
.pf-buy-btn:hover { opacity: 0.9; }
.pf-subs { display: grid; gap: 8px; padding-top: 10px; border-top: 1px solid var(--pf-line); }
.pf-subs .pf-lab { margin: 0; }
.pf-subs .pf-muted { margin: 0; }
.pf-subs button.pf-buy-btn { font: inherit; font-weight: 600; font-size: 0.88rem; cursor: pointer; background: none; }
.pf-subs button.pf-buy-btn.main { background: var(--pf-key); }
.pf-subs button.pf-buy-btn.danger { background: #b4442c; border-color: #b4442c; color: #fff; }
.pf-subs button:disabled { opacity: 0.5; cursor: wait; }
.pf-sub-confirm { display: grid; gap: 8px; }
.pf-sub-confirm[hidden], .pf-subs [hidden] { display: none; }

/* phones: an app-like screen, fewer words (tablet and desktop stay as they are) */
@media (max-width: 600px) {
    .pf-page .breadcrumbs, .pf-sub, .pf-days-title, .pf-foot + .pf-foot { display: none; }
    .pf-kicker { flex-wrap: nowrap; white-space: nowrap; overflow: hidden; font-size: 0.75rem; }
    .pf-kicker svg { flex: none; }
    .pf { padding-block: 12px 40px; }
    .pf-head { margin-bottom: 14px; }
    .pf-title { font-size: 1.7rem; }
    .pf-layout { gap: 14px; }
    /* the two buttons share the row; the profile shows only its name */
    .pf-toggles { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
    .pf-profile-btn { justify-content: center; padding: 10px 14px; }
    #pfProfileBtn > span { display: none; }
    .pf-profile-box { padding: 14px; border-radius: 14px; }
    /* search: "near me" as an icon; wave types in one swipeable row */
    .pf-near span { display: none; }
    .pf-near { padding: 9px; }
    .pf-find { gap: 10px; }
    .pf-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: -16px; padding-inline: 16px; }
    .pf-chips::-webkit-scrollbar { display: none; }
    .pf-chip { flex: none; }
    .pf-select { font-size: 0.7rem; }
    .pf-select select { padding: 6px 8px; font-size: 0.85rem; }
    /* the spot: name and actions on one line, the "now" card as four tiles */
    .pf-main { padding-top: 14px; gap: 12px; }
    .pf-spot-head { flex-wrap: nowrap; align-items: flex-start; }
    .pf-spot-title h2 { font-size: 1.6rem; }
    .pf-spot-actions { flex-direction: column; align-items: flex-end; gap: 2px; flex: none; }
    .pf-star[data-label] span { display: none; }
    .pf-star[data-label] { padding: 8px; }
    .pf-ghost { font-size: 0.8rem; padding: 2px 0; }
    .pf-now { display: grid; gap: 12px; padding: 14px; }
    .pf-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
    .pf-facts div { background: var(--surface-2); border-radius: 10px; padding: 8px 6px; justify-items: center; text-align: center; }
    .pf-facts dt { font-size: 0.62rem; }
    .pf-facts dd { justify-content: center; flex-wrap: wrap; font-size: 0.85rem; }
    .pf-facts dd b { font-size: 1.1rem; }
    .pf-facts .pf-w small, .pf-facts dd > small { display: none; }
    .pf-day { flex-basis: 66px; padding: 7px 2px 6px; }
    .pf-h3 { font-size: 0.7rem !important; }
    .pf-htable th, .pf-htable td { min-width: 50px; padding: 8px 4px; }
    .pf-htable th[scope="row"] { padding-inline: 10px 8px; font-size: 0.62rem; }
    .pf-htable th[scope="row"] small { display: none; }
    .pf-foot { font-size: 0.72rem; }
}
/* Guide of a Premium-only spot (no page of its own), under its name */
.pf-pro-guide { margin: 4px 0 14px; padding: 10px 14px; border-left: 3px solid #e0a526; background: rgba(224, 165, 38, 0.08); color: var(--pf-ink); border-radius: 0 8px 8px 0; font-size: 0.92rem; line-height: 1.5; }
.pf-pro-guide p { margin: 0 0 6px; }
.pf-pro-guide p:last-child { margin: 0; }
