/* ════════════════════════════════════════════════
   ROOFING PAGE — bespoke styles
   purple base + electric blue + crimson warning accents
   ════════════════════════════════════════════════ */

:root{
  --storm-blue:#5eb1ff;
  --storm-blue-deep:#3b82f6;
  --warn:#ff5c7a;
  --warn-deep:#dc2645;
  --hail:#fbbf24;
}

/* ── HERO: Storm tracker over neighborhood ── */
#roof-hero{
  position:relative;min-height:100vh;padding:140px 40px 80px;
  display:flex;align-items:center;overflow:hidden;
  background:linear-gradient(180deg,#070612 0%,#0e0a22 60%,#1a0f2e 100%);
}
.rh-sky{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse at 50% 30%,rgba(94,177,255,.06) 0%,transparent 55%);
  transition:opacity .6s ease;
}
.rh-clouds{
  position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;
  transition:opacity 1s ease;
}
.rh-clouds.active{opacity:1;}
.rh-cloud{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle,rgba(60,50,80,.7) 0%,rgba(30,20,50,.4) 60%,transparent 100%);
  filter:blur(20px);
}
.rh-rain{
  position:absolute;inset:0;pointer-events:none;z-index:2;opacity:0;
  background-image:repeating-linear-gradient(
    105deg,
    transparent 0,
    transparent 6px,
    rgba(150,180,230,.18) 6px,
    rgba(150,180,230,.18) 7px
  );
  background-size:auto 22px;
  transition:opacity .6s ease;
  animation:rhRainFall .5s linear infinite;
}
.rh-rain.active{opacity:.6;}
@keyframes rhRainFall{from{background-position:0 0;}to{background-position:0 22px;}}
.rh-flash{
  position:absolute;inset:0;pointer-events:none;z-index:3;
  background:rgba(220,230,255,.85);
  opacity:0;mix-blend-mode:overlay;
}
.rh-flash.flash{animation:rhLightning .8s ease-out;}
@keyframes rhLightning{
  0%,15%,40%,100%{opacity:0;}
  5%,20%{opacity:.95;}
  25%{opacity:.4;}
}

.rh-grid{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:80px 80px;
}

.rh-radar{
  position:absolute;left:50%;top:32%;transform:translate(-50%,-50%);
  width:420px;height:420px;border-radius:50%;
  pointer-events:none;z-index:1;
  background:radial-gradient(circle,rgba(94,177,255,.06) 0%,transparent 65%);
}
.rh-radar-ring{
  position:absolute;inset:0;border-radius:50%;
  border:1px solid rgba(94,177,255,.18);
}
.rh-radar-ring.r2{inset:18%;opacity:.5;}
.rh-radar-ring.r3{inset:36%;opacity:.3;}
.rh-radar-sweep{
  position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from var(--sweep,0deg),rgba(94,177,255,.4) 0deg,rgba(94,177,255,.0) 60deg,transparent 360deg);
  mix-blend-mode:screen;opacity:.6;
}

.rh-storm-cell{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle,
    rgba(255,92,122,.55) 0%,
    rgba(251,191,36,.4) 30%,
    rgba(94,177,255,.25) 60%,
    transparent 80%);
  filter:blur(8px);
  pointer-events:none;z-index:2;
  width:240px;height:180px;
  left:var(--storm-x,-30%);top:22%;
  opacity:var(--storm-op,0);
  transition:opacity .5s ease;
}

.rh-rooftops{
  position:absolute;left:0;right:0;bottom:0;height:42%;
  pointer-events:none;z-index:3;
}
.rh-rooftops svg{position:absolute;inset:0;width:100%;height:100%;}

.rh-damage-marker{
  position:absolute;width:36px;height:36px;
  pointer-events:none;z-index:4;
  opacity:0;transform:translate(-50%,-50%) scale(.5);
  transition:opacity .4s ease,transform .4s cubic-bezier(.16,1,.6,1.3);
}
.rh-damage-marker.show{opacity:1;transform:translate(-50%,-50%) scale(1);}
.rh-damage-marker::before{
  content:'';position:absolute;inset:0;border-radius:50%;
  background:rgba(255,92,122,.18);
  animation:rhDmgPulse 2s ease infinite;
}
.rh-damage-marker::after{
  content:'';position:absolute;inset:30%;border-radius:50%;
  background:#ff5c7a;box-shadow:0 0 14px rgba(255,92,122,.8);
}
@keyframes rhDmgPulse{
  0%,100%{transform:scale(1);opacity:.5;}
  50%{transform:scale(1.4);opacity:0;}
}

.rh-content{
  position:relative;z-index:5;max-width:1200px;margin:0 auto;width:100%;
  padding-bottom:6vh;
}
.rh-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.72rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#c084fc;
  background:rgba(168,85,247,.1);
  border:1px solid rgba(168,85,247,.32);
  padding:6px 14px;border-radius:100px;margin-bottom:24px;
}
.rh-eyebrow::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:#c084fc;box-shadow:0 0 10px #c084fc;
  animation:rhMetaPulse 1.6s ease infinite;
}
@keyframes rhMetaPulse{0%,100%{opacity:1;}50%{opacity:.4;}}
.rh-title{
  font-family:'Syne',sans-serif;font-size:clamp(2.6rem,5.6vw,4.4rem);
  font-weight:800;line-height:1.05;letter-spacing:-.02em;
  margin-bottom:24px;max-width:880px;color:#f4f0ff;
}
.rh-title em{
  font-style:normal;font-weight:800;
  background:linear-gradient(135deg,#e9b6ff 0%,#c084fc 50%,#a855f7 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.rh-sub{font-size:1.15rem;max-width:620px;margin-bottom:36px;color:#c9bfdc;line-height:1.7;}
.rh-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.rh-meta{display:flex;align-items:center;gap:10px;font-size:.82rem;color:#a89cc4;}
.rh-meta-dot{
  width:7px;height:7px;border-radius:50%;background:#c084fc;
  box-shadow:0 0 10px #c084fc;animation:rhMetaPulse 1.4s ease infinite;
}

/* Storm scrubber */
.rh-storm-control{
  position:absolute;left:50%;bottom:28px;transform:translateX(-50%);
  z-index:6;display:flex;align-items:center;gap:14px;
  background:rgba(11,10,24,.55);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(168,85,247,.28);
  padding:10px 18px;border-radius:100px;font-size:.78rem;color:#d6c9ec;
}
.rh-storm-stage{
  font-family:'Syne',sans-serif;font-weight:700;color:#c084fc;
  letter-spacing:.04em;min-width:88px;
}
.rh-storm-track{
  position:relative;width:200px;height:4px;border-radius:2px;
  background:linear-gradient(90deg,rgba(233,182,255,.35) 0%,rgba(192,132,252,.55) 50%,rgba(124,58,237,.45) 100%);
  cursor:pointer;
}
.rh-storm-knob{
  position:absolute;top:50%;left:0%;transform:translate(-50%,-50%);
  width:14px;height:14px;border-radius:50%;background:#fff;
  box-shadow:0 0 14px rgba(192,132,252,.9);transition:left .15s linear;
}
.rh-storm-auto{
  background:none;border:none;color:#d6c9ec;cursor:pointer;
  font-family:inherit;font-size:.72rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;padding:4px 8px;border-radius:6px;
  transition:color .2s,background .2s;
}
.rh-storm-auto:hover{color:#e9b6ff;background:rgba(168,85,247,.12);}
.rh-storm-auto.playing{color:#c084fc;}

@media(max-width:768px){
  .rh-storm-control{display:none;}
  #roof-hero{min-height:auto;padding:120px 20px 80px;}
  .rh-title{font-size:1.9rem;}
  .rh-eyebrow{font-size:.7rem;}
  .rh-meta{flex-wrap:wrap;gap:12px;}
  .rh-radar{width:280px;height:280px;}
}

/* ════ 72-HOUR WINDOW ════ */
#rf-window{
  background:linear-gradient(180deg,#0b0a18 0%,#100e24 100%);
  padding:120px 40px;position:relative;overflow:hidden;
}
.rf-win-glow{
  position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);
  width:900px;height:500px;
  background:radial-gradient(ellipse,rgba(255,92,122,.12) 0%,rgba(168,85,247,.06) 50%,transparent 70%);
  filter:blur(80px);pointer-events:none;
}
.rf-win-inner{max-width:1240px;margin:0 auto;position:relative;z-index:1;}
.rf-win-header{max-width:760px;margin-bottom:48px;}
.rf-win-header .section-title{color:#f4f0ff;}
.rf-win-header p{color:#c9bfdc;font-size:1.05rem;line-height:1.7;}

.rf-win-stage{
  background:rgba(255,255,255,.02);
  border:1px solid rgba(168,85,247,.18);
  border-radius:24px;padding:40px 48px;
  backdrop-filter:blur(20px);
}

.rf-win-readout{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;
  margin-bottom:36px;
}
.rf-win-readout-cell{
  padding:18px 22px;border-radius:16px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
}
.rf-win-readout-lbl{
  font-size:.66rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#a855f7;margin-bottom:6px;
}
.rf-win-readout-val{
  font-family:'Syne',sans-serif;font-weight:800;
  font-size:2rem;letter-spacing:-.02em;line-height:1;
  font-variant-numeric:tabular-nums;
}
.rf-win-readout-cell.hour .rf-win-readout-val{color:var(--storm-blue);}
.rf-win-readout-cell.rate .rf-win-readout-val{color:#fff;}
.rf-win-readout-cell.deals .rf-win-readout-val{
  background:linear-gradient(135deg,#a855f7 0%,#ff5c7a 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.rf-win-readout-sub{
  font-size:.78rem;color:#8b8bad;margin-top:4px;
}

/* the chart */
.rf-win-chart{
  position:relative;height:300px;border-radius:16px;
  background:linear-gradient(180deg,rgba(255,92,122,.04) 0%,rgba(94,177,255,.04) 100%);
  border:1px solid rgba(168,85,247,.12);
  overflow:visible;
  cursor:pointer;
  user-select:none;
}
.rf-win-chart svg{width:100%;height:100%;display:block;}
.rf-win-axis{font-family:'Syne',sans-serif;font-size:10px;fill:#8b8bad;letter-spacing:.04em;}
.rf-win-curve{
  fill:url(#rfCurveFill);
  stroke:url(#rfCurveStroke);
  stroke-width:2;
}
.rf-win-marker-line{
  stroke:#fff;stroke-width:1.5;stroke-dasharray:4 4;opacity:.5;
}
.rf-win-marker-dot{
  fill:#fff;stroke:#a855f7;stroke-width:3;
  filter:drop-shadow(0 0 8px rgba(168,85,247,.8));
}
.rf-win-checkpoint{
  fill:rgba(94,177,255,.25);stroke:var(--storm-blue);stroke-width:1.5;
}
.rf-win-checkpoint-label{
  font-family:'Syne',sans-serif;font-size:9px;font-weight:700;
  fill:#c9bfdc;letter-spacing:.05em;text-transform:uppercase;
}
.rf-win-checkpoint-val{
  font-family:'Syne',sans-serif;font-size:11px;font-weight:800;
  fill:var(--storm-blue);
}

.rf-win-hint{
  margin-top:14px;text-align:center;
  font-size:.78rem;color:#8b8bad;
}
.rf-win-hint kbd{
  display:inline-block;padding:2px 8px;border-radius:6px;
  background:rgba(168,85,247,.1);border:1px solid rgba(168,85,247,.3);
  color:#c9bfdc;font-family:inherit;font-size:.72rem;
}

@media(max-width:768px){
  #rf-window{padding:64px 20px;}
  .rf-win-stage{padding:24px;}
  .rf-win-readout{grid-template-columns:1fr;gap:10px;}
  .rf-win-chart{height:240px;}
  .rf-win-readout-val{font-size:1.5rem;}
}

/* ════ HAIL MAP ════ */
#rf-hail{
  background:#ffffff;padding:120px 40px;position:relative;
  isolation:isolate;
}
#rf-hail::before{
  content:'';position:absolute;top:-1px;left:0;right:0;height:80px;
  background:linear-gradient(to bottom,#100e24 0%,#ffffff 100%);
  pointer-events:none;
}
.rf-hail-inner{max-width:1280px;margin:0 auto;position:relative;z-index:1;}
.rf-hail-header{max-width:760px;margin-bottom:48px;}
.rf-hail-header .section-title{color:#12102a;}
.rf-hail-header p{color:#5b5a7e;font-size:1.05rem;line-height:1.7;}

.rf-hail-stage{
  display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:start;
}

.rf-hail-map-wrap{
  position:relative;
  background:#0b0a18;
  border:1px solid rgba(168,85,247,.25);
  border-radius:24px;padding:24px;
  min-height:540px;
  box-shadow:0 30px 80px rgba(11,10,24,.25);
}
.rf-hail-svg{width:100%;height:auto;display:block;}
.rf-hail-map-ml{width:100%;height:480px;border-radius:12px;overflow:hidden;}
.rf-hail-map-ml .maplibregl-canvas{border-radius:12px;}

.rf-hail-readout{
  position:absolute;top:24px;right:24px;
  background:rgba(11,10,24,.92);
  backdrop-filter:blur(12px);
  border:1px solid rgba(255,92,122,.35);
  border-radius:14px;padding:14px 18px;
  font-family:'Syne',sans-serif;
  display:flex;flex-direction:column;gap:2px;align-items:flex-end;
  z-index:5;
}
.rf-hail-readout-lbl{
  font-size:.62rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--warn);
}
.rf-hail-readout-val{
  font-size:1.6rem;font-weight:800;color:#fff;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}
.rf-hail-readout-sub{
  font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:500;
  color:#c9bfdc;letter-spacing:0;
}

.rf-hail-tickr{
  position:absolute;bottom:24px;left:24px;right:24px;
  display:flex;align-items:center;gap:10px;
  background:rgba(11,10,24,.85);backdrop-filter:blur(8px);
  border:1px solid rgba(255,92,122,.3);
  border-radius:12px;padding:10px 14px;font-size:.78rem;
  color:#f4f0ff;z-index:5;
}
.rf-hail-tickr-icon{
  width:8px;height:8px;border-radius:50%;background:var(--warn);
  box-shadow:0 0 10px var(--warn);
  animation:rhMetaPulse 1.4s ease infinite;flex-shrink:0;
}
.rf-hail-tickr strong{color:var(--warn);font-weight:800;}

/* hail "cells" - clusters of dots */
.rf-hail-cell{cursor:pointer;}
.rf-hail-cell circle{
  transition:opacity .3s ease,r .3s ease;
}
.rf-hail-cell.hidden circle{opacity:0;}
.rf-hail-cell.size-sm circle{
  fill:rgba(94,177,255,.7);
}
.rf-hail-cell.size-md circle{
  fill:rgba(251,191,36,.85);
  filter:drop-shadow(0 0 4px rgba(251,191,36,.6));
}
.rf-hail-cell.size-lg circle{
  fill:#ff5c7a;
  filter:drop-shadow(0 0 6px rgba(255,92,122,.8));
}
.rf-hail-cell:hover circle{r:5;}

.rf-hail-controls{display:flex;flex-direction:column;gap:14px;}
.rf-hail-controls-title{
  font-size:.72rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:#7c3aed;margin-bottom:2px;
}

.rf-hail-filter-group{
  background:rgba(168,85,247,.04);
  border:1px solid rgba(168,85,247,.14);
  border-radius:14px;padding:14px 16px;
}
.rf-hail-filter-group h4{
  font-size:.78rem;font-weight:700;color:#12102a;margin-bottom:10px;
  letter-spacing:.02em;
}
.rf-hail-chips{display:flex;flex-wrap:wrap;gap:6px;}
.rf-hail-chip{
  padding:7px 12px;border-radius:8px;cursor:pointer;
  background:#fff;border:1px solid rgba(168,85,247,.15);
  font-family:inherit;font-size:.78rem;font-weight:700;color:#5b5a7e;
  transition:all .2s;
  display:inline-flex;align-items:center;gap:6px;
}
.rf-hail-chip:hover{border-color:rgba(168,85,247,.4);color:#7c3aed;}
.rf-hail-chip.active{
  background:#7c3aed;border-color:#7c3aed;color:#fff;
  box-shadow:0 4px 12px rgba(124,58,237,.25);
}
.rf-hail-chip-dot{
  width:8px;height:8px;border-radius:50%;
}
.rf-hail-chip-dot.sm{background:#5eb1ff;}
.rf-hail-chip-dot.md{background:#fbbf24;}
.rf-hail-chip-dot.lg{background:#ff5c7a;}

.rf-hail-slider-row{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:8px;
}
.rf-hail-slider-row span:first-child{font-size:.78rem;font-weight:700;color:#12102a;}
.rf-hail-slider-row span:last-child{
  font-family:'Syne',sans-serif;font-weight:800;color:#7c3aed;font-size:.92rem;
  font-variant-numeric:tabular-nums;
}
.rf-hail-slider input[type="range"]{
  -webkit-appearance:none;appearance:none;width:100%;height:6px;
  border-radius:3px;background:rgba(168,85,247,.12);outline:none;
}
.rf-hail-slider input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:18px;height:18px;
  border-radius:50%;background:#7c3aed;cursor:pointer;
  box-shadow:0 0 12px rgba(124,58,237,.4),0 0 0 4px rgba(124,58,237,.12);
}
.rf-hail-slider input[type="range"]::-moz-range-thumb{
  width:18px;height:18px;border-radius:50%;background:#7c3aed;
  border:none;cursor:pointer;box-shadow:0 0 12px rgba(124,58,237,.4);
}

.rf-hail-bottom-line{
  margin-top:8px;padding:14px 16px;border-radius:12px;
  background:linear-gradient(135deg,rgba(124,58,237,.08) 0%,rgba(255,92,122,.08) 100%);
  border:1px solid rgba(124,58,237,.2);
  font-size:.84rem;color:#3d3b5c;line-height:1.5;
}
.rf-hail-bottom-line strong{color:#dc2645;font-weight:800;}

.rf-hail-tooltip{
  position:absolute;pointer-events:none;
  background:rgba(11,10,24,.95);
  border:1px solid rgba(255,92,122,.4);
  border-radius:10px;padding:10px 14px;
  font-size:.78rem;color:#f4f0ff;white-space:nowrap;z-index:10;
  opacity:0;transition:opacity .15s;backdrop-filter:blur(12px);
}
.rf-hail-tooltip.show{opacity:1;}
.rf-hail-tooltip strong{color:var(--warn);display:block;margin-bottom:2px;font-family:'Syne',sans-serif;}

@media(max-width:1024px){
  .rf-hail-stage{grid-template-columns:1fr;}
  .rf-hail-readout{position:static;margin-bottom:14px;flex-direction:row;align-items:center;gap:14px;}
}
@media(max-width:768px){
  #rf-hail{padding:64px 20px;}
  .rf-hail-map-wrap{min-height:auto;padding:14px;}
  /* Stack readout above map, ticker below */
  .rf-hail-readout{
    position:static;
    flex-direction:row;align-items:center;gap:14px;
    margin-bottom:10px;padding:10px 14px;
    border-radius:10px;
  }
  .rf-hail-readout-val{font-size:1.4rem;}
  .rf-hail-map-ml{height:300px;}
  .rf-hail-tickr{
    position:static;
    margin-top:10px;border-radius:10px;
    border-left:none;border-top:1px solid rgba(255,92,122,.2);
    padding:10px 14px;
  }
  .rf-hail-tooltip{display:none;}
}

/* ════ STORM CALENDAR ════ */
#rf-cal{
  background:linear-gradient(180deg,#ffffff 0%,#f5f3ff 100%);
  padding:90px 40px 110px;
}
.rf-cal-inner{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1.4fr;gap:64px;align-items:center;
}
.rf-cal-copy h2{color:#12102a;margin-bottom:18px;}
.rf-cal-copy p{color:#5b5a7e;font-size:1.02rem;line-height:1.7;}
.rf-cal-features{
  list-style:none;margin-top:28px;display:flex;flex-direction:column;gap:14px;
}
.rf-cal-features li{display:flex;gap:12px;align-items:flex-start;color:#3d3b5c;font-size:.96rem;}
.rf-cal-check{
  flex-shrink:0;width:22px;height:22px;border-radius:50%;
  background:rgba(124,58,237,.1);color:#7c3aed;
  display:flex;align-items:center;justify-content:center;
  font-size:.72rem;font-weight:800;margin-top:1px;
}

.rf-cal-mock{
  background:#fff;border-radius:20px;
  border:1px solid rgba(168,85,247,.16);
  box-shadow:0 24px 60px rgba(124,58,237,.12);
  padding:24px;position:relative;
}
.rf-cal-head{
  display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;
}
.rf-cal-month{font-family:'Syne',sans-serif;font-size:1rem;font-weight:700;color:#12102a;}
.rf-cal-storm-tag{
  display:flex;align-items:center;gap:6px;
  font-size:.62rem;font-weight:800;letter-spacing:.12em;
  color:var(--warn);text-transform:uppercase;
  padding:4px 10px;border-radius:100px;
  background:rgba(255,92,122,.1);
  border:1px solid rgba(255,92,122,.3);
}
.rf-cal-storm-tag::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--warn);
  box-shadow:0 0 8px var(--warn);animation:rhMetaPulse 1.4s ease infinite;
}

.rf-cal-week-bar{
  display:grid;grid-template-columns:80px 1fr;gap:14px;align-items:center;
  margin:6px 0;padding:6px 0;border-radius:10px;
  transition:background .2s;
}
.rf-cal-week-lbl{
  font-size:.68rem;font-weight:700;color:#7d7ca0;
  letter-spacing:.04em;text-transform:uppercase;
}
.rf-cal-week-lbl strong{display:block;color:#12102a;font-size:.78rem;letter-spacing:0;}
.rf-cal-week-cells{
  display:grid;grid-template-columns:repeat(7,1fr);gap:3px;
}
.rf-cal-cell{
  height:22px;border-radius:5px;background:#f3eeff;
  position:relative;
  border:1px solid rgba(168,85,247,.06);
}
.rf-cal-cell[data-c="1"]{background:rgba(168,85,247,.25);border-color:rgba(168,85,247,.4);}
.rf-cal-cell[data-c="2"]{background:rgba(168,85,247,.5);border-color:rgba(168,85,247,.6);}
.rf-cal-cell[data-c="3"]{background:#7c3aed;border-color:#7c3aed;
  box-shadow:0 2px 8px rgba(124,58,237,.3);}
.rf-cal-cell[data-c="4"]{background:linear-gradient(135deg,#7c3aed 0%,#dc2645 100%);
  border-color:#dc2645;box-shadow:0 2px 12px rgba(220,38,69,.4);
  animation:rfCalPulse 2.4s ease infinite;}
@keyframes rfCalPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.04);}}

.rf-cal-storm-marker{
  position:absolute;top:-7px;left:50%;transform:translateX(-50%);
  width:14px;height:14px;border-radius:50%;
  background:var(--warn);box-shadow:0 0 10px var(--warn);
  z-index:2;
  display:flex;align-items:center;justify-content:center;
}
.rf-cal-storm-marker::after{
  content:'⚡';font-size:8px;color:#fff;line-height:1;
}

.rf-cal-summary{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
  margin-top:20px;padding-top:18px;
  border-top:1px solid rgba(168,85,247,.1);
}
.rf-cal-summary-cell{
  background:rgba(168,85,247,.04);
  border:1px solid rgba(168,85,247,.12);
  border-radius:10px;padding:10px 14px;
}
.rf-cal-summary-lbl{
  font-size:.66rem;font-weight:700;letter-spacing:.1em;
  color:#7c3aed;text-transform:uppercase;margin-bottom:2px;
}
.rf-cal-summary-val{
  font-family:'Syne',sans-serif;font-weight:800;font-size:1.1rem;
  color:#12102a;letter-spacing:-.02em;
}
.rf-cal-summary-cell.warn .rf-cal-summary-lbl{color:var(--warn-deep);}

.rf-cal-legend{
  display:flex;gap:14px;margin-top:14px;font-size:.7rem;color:#7d7ca0;
  flex-wrap:wrap;
}
.rf-cal-legend-row{display:flex;align-items:center;gap:6px;}
.rf-cal-legend-dot{width:10px;height:10px;border-radius:3px;}
.rf-cal-legend-dot.l1{background:#f3eeff;border:1px solid rgba(168,85,247,.2);}
.rf-cal-legend-dot.l2{background:rgba(168,85,247,.5);}
.rf-cal-legend-dot.l3{background:#7c3aed;}
.rf-cal-legend-dot.l4{background:linear-gradient(135deg,#7c3aed,#dc2645);}

@media(max-width:1024px){
  .rf-cal-inner{grid-template-columns:1fr;gap:32px;}
}
@media(max-width:768px){
  #rf-cal{padding:60px 20px 80px;}
  .rf-cal-week-bar{grid-template-columns:60px 1fr;gap:8px;}
  .rf-cal-cell{height:18px;}
}
