/*
  FASE 1 – UX Prototype styling (mobile-first)
  Scoped under .sccwp-proto to avoid theme collisions inside WordPress.
*/

/*
  IMPORTANT:
  - Keep CSS variables scoped to the prototype container to avoid bleeding into WP themes.
*/

.sccwp-proto{
  --bg:#f4efe6;
  --card:#f8f3ea;
  --ink:#1d1d1d;
  --muted:rgba(29,29,29,.65);
  --stroke:rgba(29,29,29,.10);
  --shadow:0 8px 20px rgba(0,0,0,.045);
  /* palette (Callantsoog UX v2) */
  /* 6 stappen: slecht / matig / redelijk / prima / goed / epic */
  --poor:#e07c7c;
  --matig:#f0b56e;
  --redelijk:#f4dd91;
  --prima:#b9e7a5;
  --good:#47d0b2;
  --epic:#25a8ff;

  /* backwards compatible vars (used in some ramps/legacy code) */
  --moderate:var(--matig);
  --excellent:var(--epic);

  --swell1:#015ca9;
  --swell2:#0aadd1;
  --swell3:#0ed1c2;
  --rwsWave:#2b2b2b;
  --rwsSwell:#8b8b8b;
  --wind:#e53195;
  --windScoreLight:#fdebf4;
  --windScoreStrong:#c50b63;

  /* legacy vars still used in some svg */
  --turq1:var(--swell1);
  --turq2:var(--swell2);
  --turq3:var(--swell3);
  --pink:var(--wind);
  --ring:rgba(29,29,29,.22);
}

.sccwp-proto *{box-sizing:border-box}

body.sccwp-proto{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background:var(--bg);
  color:var(--ink);
}

/* Default sticky offset fallback (desktop). JS loader will override with an exact value. */
.sccwp-proto{ --sccwp-sticky-offset: 0px; }
@media (min-width: 768px){
  .sccwp-proto{ --sccwp-sticky-offset: 110px; }
}

@media (prefers-reduced-motion: reduce){
  .sccwp-proto *{ scroll-behavior:auto !important; }
  .sccwp-proto .iconbtn:active{ transform:none; }
}

.sccwp-proto button,
.sccwp-proto input{
  font:inherit;
}

.sccwp-proto .app{
  max-width:420px;
  margin:0 auto;
  padding:8px 10px 16px;
}

.sccwp-proto .topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:4px 2px 8px;
}
.sccwp-proto .topbar__spot{font-weight:680; font-size:20px; letter-spacing:.1px}
.sccwp-proto .topbar__sub{display:none}
.sccwp-proto .iconbtn{
  width:42px; height:42px;
  border-radius:999px;
  border:0;
  background:rgba(255,255,255,.55);
  box-shadow:0 6px 14px rgba(0,0,0,.04);
  font-size:22px;
  line-height:1;
  color:var(--ink);
  cursor:pointer;
}

.sccwp-proto .iconbtn--small{
  width:34px; height:34px;
  font-size:18px;
  background:rgba(255,255,255,.45);
}

.sccwp-proto .iconbtn:active{transform:scale(.98)}

.sccwp-proto .card{
  background:var(--card);
  border:0;
  border-radius:16px;
  box-shadow:var(--shadow);
  overflow:hidden;
  margin:0 0 6px;
}

.sccwp-proto .stickybar{
  position:sticky;
  /*
    Keep the UX sticky bar BELOW the WP theme sticky header.
    The JS loader auto-detects header/adminbar height and sets:
      --sccwp-sticky-offset: <px>
  */
  /*
    On first load the JS offset can briefly be unset while the theme header is still laying out.
    Provide a safe desktop fallback so the sticky selector never overlays the WP header.
    Mobile headers are typically non-sticky for this theme, so keep fallback at 0 there.
  */
  top:var(--sccwp-sticky-offset, 0px);
  /* Keep SCCWP sticky BELOW theme nav/dropdowns.
     (Theme will set nav/dropdowns even higher.) */
  z-index:500;
  background:linear-gradient(180deg, rgba(244,239,230,.92), rgba(244,239,230,.72));
  backdrop-filter: blur(6px);
  border-radius:16px;
  overflow:hidden;
  padding:0 0 4px;
  margin:-2px 0 6px;
}

/* Prevent iPhone clipping without breaking rounded corners:
   keep cards clipped, but allow inner grids to shrink correctly. */
.sccwp-proto .conditions,
.sccwp-proto .readout{
  min-width:0;
}

.sccwp-proto .factors{
  padding-right:10px;
}

@media (min-width: 521px){
  .sccwp-proto .stickybar{
    top:var(--sccwp-sticky-offset, 96px);
  }
}

.sccwp-proto .mapcard{position:relative; margin-bottom:12px}
.sccwp-proto .map{
  height:200px;
  background:linear-gradient(180deg, rgba(0,188,212,.06), rgba(0,0,0,0));
}

@media (max-width: 520px){
  .sccwp-proto .map{ height:185px; }
}
.sccwp-proto .map img{width:100%; height:100%; object-fit:cover; object-position:center; display:block}
.sccwp-proto .map__overlay{
  position:absolute; inset:0;
  padding:14px;
  pointer-events:none;
}


.sccwp-proto .map__currentchip{
  position:absolute;
  left:6px;
  top:6px;
  width:45px;
  height:45px;
  border-radius:12px;
  border:1px solid rgba(71, 63, 41, .10);
  background:rgba(248, 245, 234, .78);
  box-shadow:0 4px 16px rgba(22, 25, 31, .10);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  overflow:hidden;
  z-index:2;
}

.sccwp-proto .map__currentchip[hidden]{ display:none !important; }

.sccwp-proto .map__currentchip-svgwrap,
.sccwp-proto .map__currentchip-svg{
  width:100%;
  height:100%;
  display:block;
}

.sccwp-proto .map__currentchip-arrow,
.sccwp-proto .map__currentchip-head{
  stroke:rgba(12, 13, 12, .88);
  fill:none;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.sccwp-proto .map__currentchip-dot{
  fill:rgba(12, 13, 12, .62);
}

.sccwp-proto .map__tidechip{
  position:absolute;
  left:6px;
  bottom:6px;
  width:45px;
  height:45px;
  border-radius:12px;
  border:1px solid rgba(71, 63, 41, .10);
  background:rgba(248, 245, 234, .78);
  box-shadow:0 4px 16px rgba(22, 25, 31, .10);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  overflow:hidden;
  z-index:2;
}

.sccwp-proto .map__tidechip[hidden]{ display:none !important; }

.sccwp-proto .map__tidechip-svgwrap,
.sccwp-proto .map__tidechip-svg{
  width:100%;
  height:100%;
  display:block;
}

.sccwp-proto .map__tidechip-path{
  fill:none;
  stroke:rgba(118, 115, 104, .82);
  stroke-width:2.15;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.sccwp-proto .map__tidechip-dot{
  fill:rgba(42, 45, 41, .92);
}

.sccwp-proto .map__tidechip-text{
  fill:rgba(28, 30, 27, .92);
  font-size:7.4px;
  font-weight:700;
  letter-spacing:.01em;
}

.sccwp-proto .sr-only{
  position:absolute !important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.sccwp-proto .rose{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:238px;
  height:232px;
  border-radius:999px;
  background:transparent;
}


.sccwp-proto .readoutcard{
  margin-bottom:10px;
  padding:6px 8px;
}

.sccwp-proto .readout__line{ padding:7px 10px; }

.sccwp-proto .readout{
  display:grid;
  gap:0;
}

.sccwp-proto .readout__line{
  display:grid;
  /* icon | label | value (tab stops) */
  /* make label flexible so right-side compass never clips on iPhone widths */
  grid-template-columns: 20px minmax(0, 1fr) minmax(0, 1fr);
  align-items:center;
  column-gap:10px;
  font-size:11px;
  /* extra right padding prevents last column (compass) from touching card edge */
  padding:4px 14px 4px 6px;
  border-radius:10px;
}

/* Hide degrees on smaller screens; keep compass direction visible */
@media (max-width: 520px){
  .sccwp-proto .readout__cols .is-deg{ display:none; }
}

/* Extra narrow screens: prevent readout values from overflowing the card */
@media (max-width: 380px){
  .sccwp-proto .readout__line{
    grid-template-columns: 20px minmax(70px, 1fr) minmax(0, 1fr);
    column-gap:8px;
    padding-right:10px;
  }
  .sccwp-proto .readout__cols{
    grid-template-columns: 32px 32px 36px;
  }
}
/* Tiny screens: tighten factors layout so right values never clip */
@media (max-width: 360px){
  .sccwp-proto .factor{ grid-template-columns: 130px 1fr; column-gap:16px; }
  .sccwp-proto .factor__cols{ grid-template-columns: 40px 28px 1fr; }
}

.sccwp-proto .readout__icon{
  width:20px;height:20px;border-radius:7px;
  display:grid;place-items:center;
  flex:0 0 20px;
  color:#fff;
  box-shadow: 0 1px 0 rgba(0,0,0,.10) inset;
}
.readout__icon svg{ display:block; }

.sccwp-proto .readout__icon--swell1{ background:var(--swell1); }
.sccwp-proto .readout__icon--swell2{ background:var(--swell2); }
.sccwp-proto .readout__icon--swell3{ background:var(--swell3); }
.sccwp-proto .readout__icon--wind{ background:var(--wind); }

.sccwp-proto .readout__k{color:rgba(29,29,29,.55); font-weight:500}
.sccwp-proto .readout__v{font-weight:500; text-align:left; white-space:nowrap}

/* tabbed columns in the value part: 0.6 m | 7.1 s | NW | 320° */
.sccwp-proto .readout__cols{
  display:grid;
  grid-template-columns: 36px 36px 40px 46px;
  gap:0;
  align-items:center;
  justify-items:start;
  border-left:none;
}
.readout__cols > span{ white-space:nowrap; }
.readout__cols > span.is-empty{ opacity:0; }
.sccwp-proto .readout__cols > span.is-deg{ display:none; }

/* show degrees only on wide screens (keep mobile compact) */
@media (min-width: 900px){
  .sccwp-proto .readout__cols > span.is-deg{ display:inline; }
}


.sccwp-proto .scorecard{padding:8px 8px 10px; margin-bottom:8px}

.sccwp-proto .dayrow{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:22px;
  font-weight:700;
  font-size:16px;
  padding:0 6px;
}
.sccwp-proto .dayrow__date,
.sccwp-proto .dayrow__day,
.sccwp-proto .dayrow__time{
  white-space:nowrap;
}
.sccwp-proto .dayrow__day{ color:rgba(29,29,29,.75); }


.sccwp-proto .scorehead{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:25px;
  background:transparent;
  position:relative;
  padding-bottom:18px;
}

.sccwp-proto .label{
  font-size:18px;
  font-weight:700;
  color:#1d1d1d;
  opacity:.85;
  margin-bottom:18px;
}

.sccwp-proto .rating{

  position:absolute;
  left:0;
  bottom:-12px;
  font-size:18px;
  font-weight:400;
  letter-spacing:.01em;
  transform:translateX(-50%);
  pointer-events:none;
  color:var(--ink);
  opacity:.92;
  white-space:nowrap;
}

/* Rating label now includes a score badge (e.g. "82/100") */
.sccwp-proto .rating{ display:flex; align-items:center; gap:10px; }
.sccwp-proto .rating__text{ display:inline-block; }
.sccwp-proto .rating__badge{
  display:inline-block;
  padding:3px 8px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(255,255,255,.75);
  backdrop-filter:blur(4px);
  color:rgba(29,29,29,.85);
}

/* Step 3: compact disclaimer labels (e.g. "clean · flat").
   Keep it short to avoid layout issues on mobile. */
.sccwp-proto .rating__disc{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0;
  flex-wrap:nowrap;
  max-width:min(320px,100%);
  font-size:12px;
  line-height:1;
  letter-spacing:.01em;
  padding:4px 9px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.10);
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(4px);
  color:rgba(29,29,29,.70);
  overflow:visible;
  text-overflow:clip;
  white-space:nowrap;
}
.sccwp-proto .rating__disc-one,
.sccwp-proto .rating__disc-q,
.sccwp-proto .rating__disc-s,
.sccwp-proto .rating__disc-sep{
  display:inline-block;
  white-space:nowrap;
}
.sccwp-proto .rating__disc-s{font-weight:600;}
.sccwp-proto .hour{font-size:13px; font-weight:500; color:rgba(29,29,29,.55)}

.sccwp-proto .scorebar{
  /* Always fit 24 hours in view (no overflow outside the card) */
  display:grid;
  grid-template-columns:repeat(var(--cols, 24), minmax(0, 1fr));
  gap:2px;
  align-items:stretch;
  position:relative;
  /* extra vertical breathing room so active ticks never look clipped */
  padding:10px 2px 12px;
  border-radius:18px;
  background:transparent;
  width:100%;
  overflow: visible;
  /* (keep a single padding definition; avoids accidental overrides) */
  padding:10px 2px 12px;

}
.sccwp-proto .scorecell{
  width:auto;
  height:38px;
  border-radius:10px;
  background:rgba(0,0,0,.08);
  border:3px solid rgba(0,0,0,.12);
  box-sizing:border-box;
  position:relative; /* required for now/active pseudo-elements */
}

/* current-time marker (light outline + dot) */
.sccwp-proto .scorecell--now{
  outline:2px solid rgba(29,29,29,.25);
  outline-offset:2px;
}
.sccwp-proto .scorecell--now::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:6px;
  height:6px;
  border-radius:999px;
  background:rgba(29,29,29,.55);
  transform:translate(-50%,-50%);
}

/* selected marker (black outline + small ticks) */
.sccwp-proto .scorecell{ transition: transform 120ms ease, outline-color 120ms ease; }
.sccwp-proto .scorecell--active{
  outline:3px solid rgba(0,0,0,.85);
  outline-offset:2px;
  transform: scale(1.08);
  z-index:3;
}
.sccwp-proto .scorecell--active::before,
.sccwp-proto .scorecell--active::after{
  content:"";
  position:absolute;
  left:50%;
  width:6px;
  height:10px;
  background:rgba(0,0,0,.85);
  transform:translateX(-50%);
  border-radius:2px;
}
.sccwp-proto .scorecell--active::before{ top:-10px; }
.sccwp-proto .scorecell--active::after{ bottom:-10px; }

.sccwp-proto .scorehandle{ display:none; }

.sccwp-proto .scorebar.is-dense{
  gap:2px;
}
.sccwp-proto .scorebar.is-dense .scorecell{
  height:28px;
  border-width:2px;
  border-radius:8px;
}


.sccwp-proto .scorelabel{
  display:none;
}

.sccwp-proto .factors{margin-top:12px; display:grid; grid-template-columns:1fr; gap:2px}
.sccwp-proto .factor{
  display:grid;
  /* fixed key column so pills + values align perfectly across rows */
  grid-template-columns: 150px 1fr;
  align-items:center;
  column-gap:30px;
  padding:2px 2px;
  background:transparent;
  border:0;
  border-radius:0;
  font-size:12px;
}

@media (min-width: 768px){
  .sccwp-proto .factor{ column-gap: 24px; }
}

.sccwp-proto .factor__k{color:rgba(29,29,29,.58); font-weight:500}
/* pill + columns as grid so spacing is consistent */
.sccwp-proto .factor__v{
  font-weight:500;
  display:grid;
  grid-template-columns: 12px 1fr;
  align-items:center;
  column-gap:6px;
  min-width:0;
}

.sccwp-proto .factor__cols{
  display:grid;
  /* iPhone-safe: last column (compass) always visible, middle can shrink/ellipsis */
  grid-template-columns: max-content minmax(0,1fr) max-content;
  gap:4px;
  align-items:center;
  min-width:0;
}
.factor__cols > span{ white-space:nowrap; }
.factor__cols > span:nth-child(2){
  overflow:visible;
  text-overflow:clip;
}
.factor__cols > span.is-empty{ opacity:0; }
/* last value (direction) hugs the right to create clear separation */
.factor__cols > span:last-child{ justify-self:end; text-align:right; }


.sccwp-proto .pill{
  width:12px; height:12px;
  border-radius:4px;
  background:rgba(0,0,0,.12);
}





.sccwp-proto .charthead{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:0; padding:4px 10px 0}
.sccwp-proto .chart{padding:0 10px 8px}
.sccwp-proto .chartmeta{ display:none; }
.sccwp-proto .svgwrap{width:100%; height:180px; background:rgba(255,255,255,.18); border:0; border-radius:16px; overflow:hidden; margin-bottom:8px}

@media (max-width: 520px){
  .sccwp-proto .svgwrap{height:150px;}
}

/* Wind scorebar label (matches the Conditions label behaviour) */
.sccwp-proto .windbarlabel{ position:relative; height:0; }
.sccwp-proto .windbarlabel__text{
  position:absolute;
  left:0;
  top:-10px;
  transform:translateX(-50%);
  font-size:14px;
  font-weight:500;
  color:rgba(29,29,29,.78);
  white-space:nowrap;
  pointer-events:none;
}

.sccwp-proto .chart{touch-action:none}


/* Defensive: prevent WP themes from styling SVG text weirdly */
.sccwp-proto svg text{font-family:inherit}



/* Wind scorebar under chart (match Conditions scorebar sizing) */
.windscorebar{margin-top:16px; margin-bottom:6px;}


/* Readout value/unit styling for scanability */
.sccwp-proto .readout__cols .val{ font-weight:650; color:rgba(29,29,29,.90); }
.sccwp-proto .readout__cols .unit{ font-size:0.90em; opacity:0.70; }


/* Rating label caret to visually link it to the active score cell */
/* (note: caret removed in this prototype; keep section header but no stray selectors) */

/* Mode toggle + nav (Bondi-style) */
.sccwp-proto .modebar{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  padding:10px 6px 2px;
  flex-wrap:nowrap; /* never drop nav arrows to a new line */
}
.sccwp-proto .seg{
  display:flex;
  border:2px solid rgba(29,29,29,.40);
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.35);
  flex:1 1 auto;   /* allow the segment to shrink on small screens */
  min-width:0;
}
.sccwp-proto .segbtn{
  appearance:none;
  border:0;
  background:transparent;
  padding:10px 14px;
  font-weight:700;
  font-size:15px;
  color:rgba(29,29,29,.80);
  min-width:0;
  flex:1 1 0;
  /* Keep labels on one line ("3 dagen" should not wrap) */
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
}
.sccwp-proto .segbtn + .segbtn{
  border-left:2px solid rgba(29,29,29,.25);
}
.sccwp-proto .segbtn--active{
  background:rgba(190,196,120,.55);
}
.sccwp-proto .navbtns{
  display:flex;
  gap:10px;
  flex:0 0 auto;
  flex-shrink:0;
}

/* Extra-tight on small mobile so the mode toggle + arrows always fit */
/* Ensure the toggle + arrows always fit on one row */
@media (max-width: 420px){
  .sccwp-proto .modebar{ gap:10px; }
  .sccwp-proto .segbtn{ padding:9px 10px; font-size:14px; }
  .sccwp-proto .modebar .iconbtn{ width:48px; height:48px; font-size:24px; }
}

@media (max-width: 360px){
  .sccwp-proto .modebar{ gap:10px; }
  .sccwp-proto .segbtn{ padding:9px 10px; font-size:14px; }
  .sccwp-proto .modebar .iconbtn{ width:44px; height:44px; font-size:22px; }
}

/* Modebar nav buttons (scoped so it doesn't override other iconbtn uses) */
.sccwp-proto .modebar .iconbtn{
  width:52px;
  height:52px;
  border-radius:999px;
  border:0;
  background:rgba(190,196,120,.55);
  font-size:26px;
  line-height:1;
  display:grid;
  place-items:center;
  color:rgba(29,29,29,.80);
}

/* Wind scorebar cells (match Conditions bar layout to keep pointer/label aligned) */
.sccwp-proto .windscorebar{
  display:grid;
  grid-template-columns: repeat(var(--cols, 72), minmax(0, 1fr));
  gap:2px;
  padding:0 2px;
  align-items:stretch;
}
.sccwp-proto .windscorecell{
  height:26px;
  border-radius:9px;
  opacity:0.95;
  border:2px solid rgba(29,29,29,.08);
  box-sizing:border-box;
  position:relative; /* required for now/active pseudo-elements */
}

/* current-time marker (wind bar) */

.sccwp-proto .windscorecell--now{
  outline:2px solid rgba(29,29,29,.25);
  outline-offset:2px;
}
.sccwp-proto .windscorecell--now::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:6px;
  height:6px;
  border-radius:999px;
  background:rgba(29,29,29,.55);
  transform:translate(-50%,-50%);
}

/* selected marker (wind bar) – match Conditions UX */
.sccwp-proto .windscorecell{ transition: transform 120ms ease, outline-color 120ms ease; }
.sccwp-proto .windscorecell--active{
  outline:3px solid rgba(0,0,0,.85);
  outline-offset:2px;
  transform: none;
  z-index:3;
}
.sccwp-proto .windscorecell--active::before,
.sccwp-proto .windscorecell--active::after{
  content:"";
  position:absolute;
  left:50%;
  width:6px;
  height:10px;
  background:rgba(0,0,0,.85);
  transform:translateX(-50%);
  border-radius:2px;
}
.sccwp-proto .windscorecell--active::before{ top:-10px; }
.sccwp-proto .windscorecell--active::after{ bottom:-10px; }

.sccwp-proto .windscore__label{
  position:absolute;
  left:0;
  top:4px;
  transform:translateX(-50%);
  font-size:16px;
  font-weight:400;
  color:var(--ink);
  display:block;
  text-align:left;
  margin:0;
  white-space:nowrap;
  pointer-events:none;
  opacity:.92;
  letter-spacing:.01em;
}

/* Footer zone under charts (used for wind scorebar + label)
   Adds safe padding so rounded card corners never clip content. */
.sccwp-proto .chartfoot{
  position:relative;
  /* add room above/below so windscore active ticks and label never clip */
  padding:30px 10px 18px;
  overflow:visible;
}

.sccwp-proto .windscorebar.is-dense{ gap:2px; padding:8px 2px 4px; }
.sccwp-proto .windscorebar.is-dense .windscorecell{ height:22px; border-radius:7px; }


/* Prevent text selection while scrubbing (mobile + desktop) */
.sccwp-proto .scorebar,
.sccwp-proto .windscorebar,
.sccwp-proto .svgwrap,
.sccwp-proto #rose{
  -webkit-user-select:none;
  user-select:none;
  touch-action:none;
}

/* UX: prevent accidental text selection while scrubbing */
#app, .chart, .scorebar, .scorebar__cells, .scorecell { 
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}


/* Build 0.0.16.9.166 (Build 1 hotfix1): fix syntax error in scorebar render */
.sccwp-proto .scorebar,
.sccwp-proto .windscorebar{
  overflow:visible;
  border-radius:0;
}

/* keep corners rounded via first/last cells, but allow active ticks to overflow */
.sccwp-proto .windscorebar{ overflow:visible; border-radius:0; }

.sccwp-proto .scorecell:first-child{ border-top-left-radius:10px; border-bottom-left-radius:10px; }
.sccwp-proto .scorecell:last-child{ border-top-right-radius:10px; border-bottom-right-radius:10px; }

.sccwp-proto .windscorecell:first-child{ border-top-left-radius:10px; border-bottom-left-radius:10px; }
.sccwp-proto .windscorecell:last-child{ border-top-right-radius:10px; border-bottom-right-radius:10px; }

/* Make scrub feel consistent on touch */
.sccwp-proto .scorebar,
.sccwp-proto #windScorebar{
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
}



/* Prevent right-side clipping on narrow screens */
.sccwp-proto .factor__cols span:last-child{
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-right: 6px;
}

@media (max-width: 380px){
  .sccwp-proto .factor{
    column-gap: 12px;
  }
  .sccwp-proto .factor__cols{
    grid-template-columns: 42px 26px 1fr;
  }
}


/* Ensure site menus/submenus stay above the forecast sticky bar.
   Futurio uses #site-navigation + .dropdown-menu. */
body .main-navigation,
body #site-navigation,
body header#masthead,
body .site-header{
  position: relative;
  z-index: 20000 !important;
}
body .main-navigation .sub-menu,
body .menu .sub-menu,
body .nav-menu .sub-menu,
body .dropdown-menu,
body .elementor-nav-menu--dropdown,
body .elementor-nav-menu__container{
  z-index: 20050 !important;
}


/* SCCWP: Elementor header must sit above the forecast sticky UI (site uses Elementor header templates). */
body .elementor-location-header,
body header.elementor-location-header{
  position: relative;
  z-index: 20000 !important;
}
body .elementor-location-header .elementor-nav-menu--dropdown,
body .elementor-location-header .elementor-nav-menu__container{
  z-index: 20050 !important;
}

/* ---- v2 additions: subtle toggles + live block ---- */
.sccwp-tog{
  /* Avoid theme/Elementor button resets: make this fully deterministic. */
  all: unset;
  box-sizing: border-box;
  width: 48px;
  height: 26px;
  border-radius: 999px;
  border: 2px solid rgba(90,90,90,0.55);
  background: rgba(255,255,255,0.25);
  display: inline-flex;
  align-items: center;
  padding: 2px;
  cursor: pointer;
}
.sccwp-tog__knob{
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: rgba(90,90,90,0.75);
  display: block;
  transform: translateX(0);
  transition: transform 160ms ease, background 160ms ease;
}
.sccwp-tog.is-on{
  border-color: rgba(227,132,62,0.55);
  background: rgba(227,132,62,0.18);
}
.sccwp-tog.is-on .sccwp-tog__knob{
  background: rgba(227,132,62,0.95);
  transform: translateX(18px);
}

/* Small variant (used for Conditions toggle in header) */
.sccwp-tog--sm{
  width: 40px;
  height: 22px;
  border-width: 2px;
}
.sccwp-tog--sm .sccwp-tog__knob{
  width: 12px;
  height: 12px;
}
.sccwp-tog--sm.is-on .sccwp-tog__knob{
  transform: translateX(14px);
}

.sccwp-proto .scorehead,
.sccwp-proto .livehead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.sccwp-proto .scorehead .label,
.sccwp-proto .livehead .label{ margin:0; }
.sccwp-proto .scorehead__left{ flex: 1 1 auto; min-width:0; }
.sccwp-proto .scorehead__right{ flex: 0 0 auto; display:flex; align-items:center; gap:8px; }

.sccwp-proto .livecard{ padding:8px 8px 10px; margin-bottom:8px; }

.livegrid{
  margin-top: 12px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}


.liverws{
  display:none;

  margin-top: 10px;
  background: rgba(255,255,255,0.36);
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 16px;
  padding: 10px 12px 12px;
}
.liverws .chart{
  margin-top: 6px;
  height: 190px;
}
.liverws .charthead{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 10px;
}
.liverws .chartmeta{
  display:flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}
.livechart__time{
  font-size: 12px;
  opacity: .75;
}
.livechart__vals{
  font-size: 13px;
  font-weight: 650;
  line-height: 1.2;
}
.livechart__val{
  white-space: nowrap;
}
/* Webcam is part of Live block (load on demand) */
.livewebcam{
  margin-top: 10px;
  width: 100%;
  aspect-ratio: 16 / 10; /* slightly taller so player bar feels less cramped */
  border-radius: 16px;
  overflow: hidden;
  background: rgba(0,0,0,0.05);
  display:none; /* shown only when Live block is open */
}
.livewebcam iframe{ width:100%; height:100%; border:0; display:block; }

.livetile{
  background: rgba(255,255,255,0.36);
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 16px;
  padding: 10px 12px;
}
.livetile__k{
  font-size: 12px;
  opacity: 0.75;
  margin-bottom: 4px;
}
.livetile__v{
  font-size: 16px;
  font-weight: 650;
  display: flex;
  align-items: center;
  gap: 8px;
}
.livetile__s{
  margin-top: 6px;
  font-size: 12px;
  opacity: 0.70;
}

.arrow{
  display: inline-flex;
  width: 14px;
  height: 14px;
  transform-origin: 50% 50%;
}

/* Live tile typography tweaks (keep it clean and non-shouty) */
.livetile--tide .livetile__v{
  font-weight: 600;
  letter-spacing: .02em;
}
.livetile--sun .livetile__v{
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  font-weight: 600;
}
.livetile--sun .sunline{
  display:block;
  white-space: nowrap;
}

@media (max-width: 420px){
  .sccwp-tog{ width: 52px; height: 28px; }
  .sccwp-tog__knob{ width: 16px; height: 16px; }
  .sccwp-tog.is-on .sccwp-tog__knob{ transform: translateX(20px); }
  .livegrid{ grid-template-columns: 1fr 1fr; }
}


/* Segmented mode buttons tuning: keep "3 dagen" on one line without truncation */
@media (max-width: 420px){
  .sccwp-proto .segbtn{ padding:8px 10px; font-size:14px; }
}
@media (max-width: 360px){
  .sccwp-proto .segbtn{ padding:7px 8px; font-size:13px; }
}

.liverws .label{ font-size: 12px; font-weight: 600; opacity: .82; }
.liverws .chartmeta{ gap: 1px; }
.livechart__time{ font-size: 11px; opacity: .72; }
.livechart__vals{ font-size: 11px; font-weight: 600; line-height: 1.15; }


.rwschartcard{
  padding: 10px 12px 12px;
}
.rwschartcard .chart{
  margin-top: 8px;
  height: 190px;
}
.rwschartcard .charthead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.rwschartmeta{
  display:flex !important;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
}
.rwschartvals{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, auto));
  gap:2px 10px;
  justify-items:end;
}
.rwschart__status{
  font-size:11px;
  opacity:.68;
  text-align:right;
  white-space:nowrap;
}
@media (max-width: 520px){
  .rwschartcard{ padding:10px 10px 12px; }
  .rwschartcard .charthead{ align-items:flex-start; gap:8px; }
  .rwschartvals{ grid-template-columns: 1fr; justify-items:end; }
  .rwschart__status{ white-space:normal; max-width:180px; }
}


.rwschartcard .label{max-width:32%; line-height:1.05; margin-bottom:6px;}
.rwschartmeta{min-width:0; flex:1 1 auto; gap:2px;}
.rwschartvals{grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px 6px; width:100%;}
.rwschartvals .livechart__val{font-size:9px; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.rwschart__status{font-size:9px; line-height:1.15; max-width:100%; opacity:.64;}
@media (max-width: 520px){
  .rwschartcard .label{max-width:30%; font-size:12px;}
  .rwschartvals{grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px 4px;}
  .rwschartvals .livechart__val{font-size:8.5px;}
  .rwschart__status{font-size:8.5px; max-width:none;}
}


/* Build 388 forecast UX polish */
.sccwp-proto .charthead{align-items:flex-start; padding:6px 10px 0;}
.sccwp-proto .card > .charthead .chartmeta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:1px;
  min-width:0;
  margin-left:auto;
}
.sccwp-proto .card > .charthead .chartmeta__time,
.sccwp-proto .card > .charthead .livechart__time{
  font-size:12px;
  line-height:1.1;
  font-weight:500;
  color:rgba(29,29,29,.72);
  white-space:nowrap;
}
.sccwp-proto .card > .charthead .chartmeta__sub{
  display:none !important;
}
.sccwp-proto .card > .charthead .chartmeta__sub--strong{
  font-weight:700;
}
.rwschartcard{ padding: 10px 12px 12px; }
.rwschartcard .charthead{ align-items:flex-start; gap:10px; }
.rwschartcard .label{ max-width:none; line-height:1.02; margin:0; font-size:18px; font-weight:700; }
.rwschartcard .label .label-sub{ font-size:.58em; font-weight:700; opacity:.68; vertical-align:baseline; margin-left:2px; }
.rwschartmeta{ min-width:0; flex:1 1 auto; display:flex !important; flex-direction:column; align-items:flex-end; gap:2px; }
.rwschartvals{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,auto));
  gap:0 12px;
  width:auto;
  justify-items:end;
}
.rwschartvals .livechart__val{ font-size:11px; line-height:1.15; font-weight:650; white-space:nowrap; }
.rwschart__status{ display:none !important; }
#rwsMeta .livechart__time{ font-size:12px; font-weight:500; }
.livehead .sccwp-tog{ width:40px; height:22px; }
.livehead .sccwp-tog .sccwp-tog__knob{ width:12px; height:12px; }
.livehead .sccwp-tog.is-on .sccwp-tog__knob{ transform:translateX(14px); }
@media (max-width: 520px){
  .rwschartcard{ padding:10px 10px 12px; }
  .rwschartcard .label{ font-size:17px; }
  .rwschartvals{ gap:0 8px; }
  .rwschartvals .livechart__val{ font-size:10.5px; }
}


/* Build 0.0.16.9.418: align base mobile stickybar/toggles/RWS meta with responsive UX. */
.sccwp-proto .scorehead{ align-items:flex-start; }
.sccwp-proto .scorehead > div:first-child{ min-width:0; }
.sccwp-proto .scorehead .hour{ margin:0; white-space:nowrap; }
.sccwp-proto .scorehead #toggleCond{ margin-top:0; }

@media (max-width: 759px){
  .sccwp-proto .stickybar{
    position:sticky;
    top:calc(var(--sccwp-sticky-offset, 78px) - 8px);
    z-index:8;
  }
  .sccwp-proto .rwschartvals{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    column-gap:12px !important;
    row-gap:6px !important;
    align-items:start !important;
  }
  .sccwp-proto .rwschartvals .livechart__val{
    font-size:9px !important;
    line-height:1.3 !important;
    white-space:nowrap !important;
  }
}


/* Build 0.0.16.9.420: match Conditions toggle to Live and add mobile sticky gap. */
.sccwp-proto .scorehead #toggleCond.sccwp-tog{
  width:40px !important;
  height:22px !important;
  min-width:40px !important;
  min-height:22px !important;
  padding:2px !important;
  flex:0 0 40px !important;
  display:inline-flex !important;
  align-items:center !important;
  box-sizing:border-box !important;
}
.sccwp-proto .scorehead #toggleCond .sccwp-tog__knob{
  width:12px !important;
  height:12px !important;
}
.sccwp-proto .scorehead #toggleCond.is-on .sccwp-tog__knob{
  transform:translateX(14px) !important;
}
@media (max-width:759px){
  .sccwp-proto .stickybar{
    top:calc(var(--sccwp-sticky-offset, 78px) + 5px) !important;
  }
}

.livetile__sub{display:block;margin-top:2px;opacity:.78;}


/* Build 0.0.16.9.573: current chip readability refresh */
.sccwp-proto .map__currentchip{
  box-shadow:0 4px 12px rgba(22,25,31,.08);
  background:transparent;
}
.sccwp-proto .map__currentchip-svg{
  width:100%;
  height:100%;
  display:block;
}


/* Build 0.0.16.9.574: current chip single-arrow refinement */
.sccwp-proto .map__currentchip-svg text{font-family:inherit;}


/* Build 0.0.16.9.585: current chip visual intensity is calibrated on RWSOS speed_ms. */


/* Build 0.0.16.9.602: Conditions header overflow priority.
   Rating text and condition label matter more than the exact 32/100 pill. */
.sccwp-proto .rating{ min-width:0; }
.sccwp-proto .rating__text{ flex:0 0 auto; }
.sccwp-proto .rating__disc{ flex:1 1 auto; min-width:0; max-width:min(360px,100%); overflow:hidden; text-overflow:ellipsis; }
@media (max-width:900px){ .sccwp-proto .rating__badge{ display:none; } }
