/* ============================================================
   ROADMAP PAGES — animated 45-day plan experience
   ============================================================ */
.jil-roadmap{--rm-accent:var(--jil-amber);padding-bottom:40px}
.jil-roadmap .jil-rm-hero{
  position:relative;padding:56px 0 40px;overflow:hidden;
  border-bottom:1px solid var(--jil-line-soft);
}
.jil-roadmap .jil-rm-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 60% 50% at 15% 20%,color-mix(in srgb,var(--rm-accent) 18%,transparent),transparent 70%),
    radial-gradient(ellipse 40% 40% at 90% 10%,rgba(86,212,221,.08),transparent 60%);
}
.jil-rm-hero-inner{
  display:grid;grid-template-columns:1.15fr .95fr;gap:48px;align-items:center;position:relative;z-index:1;
}
.jil-rm-eyebrow{
  display:inline-flex;align-items:center;gap:9px;font-family:var(--jil-mono);font-size:12.5px;
  color:var(--jil-green);border:1px solid var(--jil-line);background:var(--jil-panel);
  padding:6px 13px;border-radius:100px;margin-bottom:18px;
}
.jil-rm-pulse{
  width:7px;height:7px;border-radius:50%;background:var(--jil-green);
  box-shadow:0 0 0 3px rgba(126,231,135,.18);animation:jil-pulse 2s infinite;
}
.jil-rm-band-pill{
  display:inline-block;font-family:var(--jil-mono);font-size:12px;font-weight:600;
  color:var(--rm-accent);border:1px solid color-mix(in srgb,var(--rm-accent) 45%,transparent);
  background:color-mix(in srgb,var(--rm-accent) 10%,transparent);
  padding:5px 12px;border-radius:7px;margin-bottom:16px;letter-spacing:.3px;
}
.jil-rm-title{
  font-family:var(--jil-disp);font-weight:700;font-size:clamp(30px,4.2vw,48px);
  letter-spacing:-1.2px;line-height:1.08;margin:0 0 16px;max-width:640px;
}
.jil-rm-sub{color:var(--jil-muted);font-size:17px;max-width:520px;margin:0 0 22px;line-height:1.55}
.jil-rm-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.jil-rm-meta{display:flex;gap:16px;flex-wrap:wrap;font-family:var(--jil-mono);font-size:12px;color:var(--jil-faint)}

/* Hero console */
.jil-rm-console{
  background:var(--jil-panel);border:1px solid var(--jil-line);border-radius:16px;overflow:hidden;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.7);position:relative;
}
.jil-rm-console::before{
  content:"";position:absolute;inset:0;border-radius:16px;padding:1px;pointer-events:none;
  background:linear-gradient(160deg,color-mix(in srgb,var(--rm-accent) 40%,transparent),transparent 42%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
}
.jil-rm-console-bar{
  display:flex;align-items:center;gap:12px;padding:11px 16px;background:var(--jil-bg-2);
  border-bottom:1px solid var(--jil-line-soft);font-family:var(--jil-mono);font-size:12px;color:var(--jil-faint);
}
.jil-rm-console-body{display:grid;grid-template-columns:140px 1fr;gap:18px;padding:22px 20px;align-items:center}
.jil-rm-ring-wrap{position:relative;width:120px;height:120px;margin:0 auto;color:var(--rm-accent)}
.jil-rm-ring{width:120px;height:120px;transform:rotate(-90deg);color:inherit}
.jil-rm-ring-bg{fill:none;stroke:var(--jil-line,#2a3140);stroke-width:8}
.jil-rm-ring-fg{
  fill:none;stroke:currentColor;stroke-width:8;stroke-linecap:round;
  stroke-dasharray:100;stroke-dashoffset:100;
  transition:stroke-dashoffset .45s ease;
}
.jil-rm-ring-label{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:var(--jil-mono);transform:none;gap:4px;text-align:center;pointer-events:none;
}
.jil-rm-ring-label strong{display:block;font-size:22px;color:var(--rm-accent);line-height:1;width:100%;text-align:center}
.jil-rm-ring-label span{display:block;font-size:11px;color:var(--jil-faint);letter-spacing:.3px;text-transform:none;width:100%;text-align:center}
/* Hero day-range timeline — looping cascade (CSS only; negligible perf cost) */
.jil-rm-timeline-wrap{
  --tl-dot:10px;
  --tl-col:16px;
  --tl-line:2px;
  --tl-cycle:3.6s;
  --tl-green:var(--jil-green);
  --tl-rail-left:calc((var(--tl-col) - var(--tl-line)) / 2);
  position:relative;
  min-width:0;
}
.jil-rm-tl-track{
  position:absolute;
  left:0;top:0;bottom:0;
  width:var(--tl-col);
  pointer-events:none;z-index:0;
}
.jil-rm-tl-rail,
.jil-rm-tl-fill{
  position:absolute;
  left:var(--tl-rail-left);
  top:calc(5px + var(--tl-dot) / 2);
  bottom:calc(5px + var(--tl-dot) / 2);
  width:var(--tl-line);
  border-radius:2px;
}
.jil-rm-tl-rail{background:var(--jil-line)}
.jil-rm-tl-fill{
  background:linear-gradient(180deg,var(--tl-green),color-mix(in srgb,var(--tl-green) 65%,var(--rm-accent)));
  transform:scaleY(0);
  transform-origin:top center;
  animation:jil-rm-tl-fill var(--tl-cycle) cubic-bezier(.45,.05,.2,1) infinite;
}
.jil-rm-tl-head{
  position:absolute;
  left:calc(var(--tl-col) / 2);
  top:calc(5px + var(--tl-dot) / 2);
  width:0;height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:7px solid var(--tl-green);
  transform:translate(-50%,-20%);
  animation:jil-rm-tl-head var(--tl-cycle) cubic-bezier(.45,.05,.2,1) infinite;
  z-index:2;
}
.jil-rm-timeline{
  list-style:none;margin:0;padding:0;
  font-family:var(--jil-mono);font-size:12px;
  display:flex;flex-direction:column;
  position:relative;z-index:1;
}
.jil-rm-timeline li{
  display:grid;
  grid-template-columns:var(--tl-col) minmax(58px,auto) 1fr;
  align-items:center;column-gap:8px;
  padding:5px 0;
  opacity:0;transform:translateX(-6px);
  animation:jil-testin .4s forwards;
  animation-delay:calc(0.08s + var(--i) * 0.05s);
}
.jil-rm-tl-dot{
  width:var(--tl-dot);height:var(--tl-dot);
  border-radius:50%;
  border:1.5px solid var(--jil-line);
  background:var(--jil-bg-2);
  justify-self:center;
  box-sizing:border-box;
  position:relative;z-index:1;
  animation:jil-rm-tl-dot-cycle var(--tl-cycle) ease infinite;
  animation-delay:calc(var(--i) * (0.55 * var(--tl-cycle) / max(var(--tl-n), 1)));
}
.jil-rm-tl-days{
  font-size:10.5px;font-weight:600;letter-spacing:.2px;color:var(--jil-faint);
  white-space:nowrap;
  animation:jil-rm-tl-days-cycle var(--tl-cycle) ease infinite;
  animation-delay:calc(var(--i) * (0.55 * var(--tl-cycle) / max(var(--tl-n), 1)));
}
.jil-rm-tl-label{
  color:var(--jil-muted);line-height:1.3;
  animation:jil-rm-tl-label-cycle var(--tl-cycle) ease infinite;
  animation-delay:calc(var(--i) * (0.55 * var(--tl-cycle) / max(var(--tl-n), 1)));
}
/* Grow top→bottom → hold → hide & snap reset (no reverse travel) */
@keyframes jil-rm-tl-fill{
  0%{transform:scaleY(0);opacity:1}
  55%{transform:scaleY(1);opacity:1}
  78%{transform:scaleY(1);opacity:1}
  79%{transform:scaleY(1);opacity:0}
  80%,100%{transform:scaleY(0);opacity:0}
}
@keyframes jil-rm-tl-head{
  0%{top:calc(5px + var(--tl-dot) / 2);opacity:1}
  55%{top:calc(100% - 5px - var(--tl-dot) / 2);opacity:1}
  78%{top:calc(100% - 5px - var(--tl-dot) / 2);opacity:1}
  79%{top:calc(100% - 5px - var(--tl-dot) / 2);opacity:0}
  80%,100%{top:calc(5px + var(--tl-dot) / 2);opacity:0}
}
@keyframes jil-rm-tl-dot-cycle{
  0%,6%{
    border-color:var(--jil-line);
    background:var(--jil-bg-2);
    box-shadow:none;
  }
  14%,78%{
    border-color:var(--tl-green);
    background:color-mix(in srgb,var(--tl-green) 28%,var(--jil-bg-2));
    box-shadow:0 0 0 3px color-mix(in srgb,var(--tl-green) 16%,transparent);
  }
  90%,100%{
    border-color:var(--jil-line);
    background:var(--jil-bg-2);
    box-shadow:none;
  }
}
@keyframes jil-rm-tl-days-cycle{
  0%,6%{color:var(--jil-faint)}
  14%,78%{color:var(--tl-green)}
  90%,100%{color:var(--jil-faint)}
}
@keyframes jil-rm-tl-label-cycle{
  0%,6%{color:var(--jil-muted);font-weight:400}
  14%,78%{color:var(--jil-text);font-weight:600}
  90%,100%{color:var(--jil-muted);font-weight:400}
}

/* Track switcher */
.jil-rm-switcher{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:28px 24px 8px;position:relative;z-index:2;
}
.jil-rm-switch{
  display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:12px;
  background:var(--jil-panel);border:1px solid var(--jil-line);transition:.18s;
}
.jil-rm-switch .lbl{font-family:var(--jil-mono);font-size:12px;color:var(--tk,var(--jil-amber))}
.jil-rm-switch .ttl{font-family:var(--jil-disp);font-size:18px;font-weight:600;color:var(--jil-text)}
.jil-rm-switch:hover{border-color:var(--jil-faint);transform:translateY(-2px)}
.jil-rm-switch.active{
  border-color:color-mix(in srgb,var(--tk) 55%,var(--jil-line));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--tk) 25%,transparent),0 12px 30px -18px color-mix(in srgb,var(--tk) 50%,transparent);
}

/* Sticky stack: promo + nav → phase rail → LMS toolbar (offsets synced by JS) */
.jil-roadmap{
  --jil-rm-nav-h:calc(var(--jil-promo-h,0px) + var(--jil-nav-h,48px));
  --jil-rm-rail-h:40px;
  /* Keep flush under chrome — any positive gap shows as a hairline on mobile */
  --jil-rm-sticky-gap:0px;
  --jil-rm-rail-top:var(--jil-rm-nav-h);
  --jil-rm-toolbar-top:calc(var(--jil-rm-nav-h) + var(--jil-rm-rail-h) + var(--jil-rm-sticky-gap));
}

/* Phase rail — flush under nav (no padding-top gap); scrollbar hidden on touch */
.jil-rm-rail-wrap{
  position:sticky;top:var(--jil-rm-rail-top);z-index:30;
  padding:0 0 3px;margin-top:6px;
  background:var(--jil-nav-bg);backdrop-filter:blur(12px);
  border-top:0;border-bottom:1px solid var(--jil-line-soft);
}
body.jil-rm-curr-open .jil-rm-rail-wrap{
  visibility:hidden!important;pointer-events:none!important;opacity:0!important;
}
.jil-rm-rail{
  display:flex;gap:6px;overflow-x:auto;padding:2px 0 0;
  scrollbar-width:thin;
  scrollbar-color:var(--jil-line) transparent;
  scroll-behavior:smooth;-webkit-overflow-scrolling:touch;
}
.jil-rm-rail-item{
  flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:7px;
  background:var(--jil-panel);border:1px solid var(--jil-line);font-size:12px;color:var(--jil-muted);
  max-width:200px;transition:.16s;line-height:1.25;
}
.jil-rm-rail-item .n{font-family:var(--jil-mono);font-size:10.5px;color:var(--rm-accent);opacity:.7}
.jil-rm-rail-item .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jil-rm-rail-item:hover{color:var(--jil-text);border-color:var(--jil-faint)}
.jil-rm-rail-item.active{
  color:var(--jil-text);border-color:var(--rm-accent);
  background:color-mix(in srgb,var(--rm-accent) 12%,var(--jil-panel));
}
.jil-rm-rail-item.active .n{opacity:1}

/* Layout — LMS: curriculum left, lesson pane right */
.jil-rm-layout{
  display:grid;grid-template-columns:290px minmax(0,1fr);gap:28px;align-items:stretch;
  padding-top:36px;padding-bottom:20px;
}
.jil-rm-layout--lms{
  grid-template-columns:minmax(280px,340px) minmax(0,1fr);
  align-items:start;
  min-height:min(70vh,720px);
}
.jil-rm-lms-toolbar{
  grid-column:1 / -1;
  display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;
  margin:0 0 4px;
}
.jil-rm-lms-toolbar .jil-rm-curr-toggle{margin:0;position:static;display:none}
.jil-rm-progress{
  flex:1 1 220px;min-width:160px;max-width:420px;margin-right:auto;
  display:flex;flex-direction:column;gap:6px;
}
.jil-rm-progress-meta{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  font-family:var(--jil-mono);font-size:12px;color:var(--jil-muted);
}
.jil-rm-progress-label{text-transform:uppercase;letter-spacing:.4px;color:var(--jil-faint)}
.jil-rm-progress-count strong{color:var(--rm-accent);font-weight:700}
.jil-rm-progress-track{
  height:8px;border-radius:999px;background:var(--jil-bg-2);border:1px solid var(--jil-line);
  overflow:hidden;
}
.jil-rm-progress-fill{
  height:100%;width:0;border-radius:inherit;
  background:linear-gradient(90deg,color-mix(in srgb,var(--rm-accent) 75%,#000),var(--rm-accent));
  transition:width .35s ease;
}
.jil-rm-focus-toggle,
.jil-roadmap .jil-btn.jil-rm-focus-toggle{
  font-family:var(--jil-mono);font-size:11px;font-weight:700;
  padding:6px 11px!important;line-height:1.2;min-height:0;border-radius:8px;
  color:var(--jil-on-amber,#0b0f14)!important;
  background:var(--rm-accent,var(--jil-amber))!important;
  border-color:var(--rm-accent,var(--jil-amber))!important;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--rm-accent,var(--jil-amber)) 35%,transparent),
    0 6px 14px -8px color-mix(in srgb,var(--rm-accent,var(--jil-amber)) 70%,transparent);
}
.jil-rm-focus-toggle:hover,
.jil-roadmap .jil-btn.jil-rm-focus-toggle:hover{
  filter:brightness(1.08);
  transform:translateY(-1px);
  color:var(--jil-on-amber,#0b0f14)!important;
  border-color:var(--rm-accent,var(--jil-amber))!important;
}
.jil-rm-focus-toggle[aria-pressed="true"],
body.jil-rm-focus .jil-rm-focus-toggle,
.jil-roadmap .jil-btn.jil-rm-focus-toggle[aria-pressed="true"],
body.jil-rm-focus .jil-roadmap .jil-btn.jil-rm-focus-toggle{
  background:transparent!important;
  color:var(--rm-accent,var(--jil-amber))!important;
  border-color:var(--rm-accent,var(--jil-amber))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rm-accent,var(--jil-amber)) 25%,transparent);
}
.jil-rm-focus-toggle[aria-pressed="true"]:hover,
body.jil-rm-focus .jil-rm-focus-toggle:hover{
  background:color-mix(in srgb,var(--rm-accent,var(--jil-amber)) 14%,transparent)!important;
  color:var(--jil-text)!important;
}
.jil-rm-focus-toggle--icon{
  appearance:none;-webkit-appearance:none;
  border:1px solid var(--rm-accent,var(--jil-amber));
  background:var(--rm-accent,var(--jil-amber));
  color:var(--jil-on-amber,#0b0f14);border-radius:9px;padding:7px 10px;cursor:pointer;font:inherit;
  font-family:var(--jil-mono);font-size:12px;font-weight:700;
}
.jil-rm-focus-toggle--icon:hover{filter:brightness(1.08);color:var(--jil-on-amber,#0b0f14);border-color:var(--rm-accent,var(--jil-amber))}
body.jil-rm-focus .jil-rm-focus-toggle--icon,
.jil-rm-focus-toggle--icon[aria-pressed="true"]{
  background:transparent;color:var(--rm-accent,var(--jil-amber));
}

/* Full view — only curriculum + lesson (hide all site chrome, including promo) */
body.jil-rm-focus{
  overflow:hidden;
}
body.jil-rm-focus .jil-promo,
body.jil-rm-focus .jil-nav,
body.jil-rm-focus .jil-footer,
body.jil-rm-focus .jil-rm-hero,
body.jil-rm-focus .jil-rm-switcher,
body.jil-rm-focus .jil-rm-rail-wrap,
body.jil-rm-focus .jil-rm-foot-cta,
body.jil-rm-focus #wpadminbar{
  display:none!important;
}
body.jil-rm-focus .jil-roadmap{
  padding-bottom:0;
}
body.jil-rm-focus .jil-rm-layout--lms{
  position:fixed;inset:0;z-index:1200;
  width:100%!important;max-width:none!important;margin:0!important;border-radius:0;
  padding:8px 10px 10px!important;
  box-sizing:border-box;
  background:var(--jil-bg);
  grid-template-columns:minmax(300px,380px) minmax(0,1fr);
  grid-template-rows:auto minmax(0,1fr);
  gap:10px;
  height:100vh;height:100dvh;
  align-items:stretch;
}
body.jil-rm-focus .jil-rm-lms-toolbar{
  position:relative;z-index:2;margin:0;padding:2px 2px 6px;
}
body.jil-rm-focus .jil-rm-progress{max-width:560px}
body.jil-rm-focus .jil-rm-curr,
body.jil-rm-focus .jil-rm-lesson{
  border-radius:12px;
}
body.jil-rm-focus .jil-rm-curr{
  position:relative;top:auto;max-height:none;height:100%;min-height:0;
}
body.jil-rm-focus .jil-rm-lesson{
  min-height:0;height:100%;max-height:none;
  display:flex;flex-direction:column;
}
body.jil-rm-focus .jil-rm-lesson-frame:not([hidden]){
  flex:1 1 auto;min-height:0;height:100%;
}
body.jil-rm-focus .jil-rm-lesson-body{
  flex:1 1 auto;min-height:0;
}
body.jil-rm-focus .jil-rm-curr-toggle{top:auto}
.jil-rm-toc-col{min-width:0;position:relative}
/* Below sticky nav + phase rail (JS keeps --jil-rm-toolbar-top in sync) */
.jil-rm-toc-col .jil-toc-aside{
  position:-webkit-sticky;position:sticky;top:var(--jil-rm-toolbar-top,140px);
  max-height:calc(100vh - 160px);z-index:5;width:100%;
}

/* Curriculum sidebar */
.jil-rm-curr{
  position:-webkit-sticky;position:sticky;top:var(--jil-rm-toolbar-top,140px);
  max-height:calc(100vh - 160px);overflow:auto;min-width:0;
  background:var(--jil-panel);border:1px solid var(--jil-line);border-radius:16px;
  scrollbar-width:thin;scrollbar-color:var(--jil-line) transparent;
}
.jil-rm-curr-bar{
  display:none;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 16px;border-bottom:1px solid var(--jil-line-soft);
  position:sticky;top:0;background:var(--jil-panel);z-index:20;
  flex-shrink:0;
}
.jil-rm-curr-bar strong{font-family:var(--jil-disp);font-size:16px}
.jil-rm-curr-bar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}
.jil-rm-curr-close{
  display:grid;place-items:center;width:40px;height:40px;border-radius:10px;
  border:1px solid var(--rm-accent,var(--jil-amber));
  background:color-mix(in srgb,var(--rm-accent,var(--jil-amber)) 16%,var(--jil-bg-2));
  color:var(--rm-accent,var(--jil-amber));cursor:pointer;flex-shrink:0;
}
.jil-rm-curr-close:hover{
  color:var(--jil-text);border-color:var(--rm-accent,var(--jil-amber));
  background:color-mix(in srgb,var(--rm-accent,var(--jil-amber)) 28%,var(--jil-bg-2));
}
.jil-rm-curr-close svg{display:block;pointer-events:none}
.jil-rm-curr .jil-rm-body{padding:10px 8px 16px;max-width:none}
.jil-rm-curr .jil-rm-howto{margin:0 0 10px;padding:8px 10px;font-size:12.5px}
.jil-rm-curr .jil-rm-phase{margin:0 0 10px;border-radius:12px}
.jil-rm-curr .jil-rm-phase-head{padding:12px 10px 6px;gap:8px}
.jil-rm-curr .jil-rm-phase-body{padding:2px 6px 10px}
.jil-rm-curr .jil-rm-phase-num{width:30px;height:30px;font-size:12px}
.jil-rm-curr .jil-rm-day-toggle{padding:12px 10px;gap:10px}
.jil-rm-curr .jil-rm-day-panel{padding:0 8px 10px}
.jil-rm-curr .jil-rm-item{padding:5px 4px;gap:8px}
.jil-roadmap .jil-rm-curr .jil-rm-phase-head h2,
.jil-roadmap .jil-rm-curr .jil-rm-phase-head h2.wp-block-heading{
  font-size:16px!important;letter-spacing:-.2px;
}
.jil-rm-curr-backdrop{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:210;
}
.jil-rm-curr-toggle{
  display:none;align-items:center;gap:8px;position:sticky;top:var(--jil-rm-toolbar-top,140px);z-index:25;
  margin:0 0 12px;padding:10px 14px;border-radius:10px;cursor:pointer;
  border:1px solid var(--jil-line);background:var(--jil-panel);color:var(--jil-text);
  font-family:var(--jil-mono);font-size:13px;width:fit-content;
  box-shadow:0 8px 24px -16px rgba(0,0,0,.5);
}
.jil-rm-curr-toggle-ic{
  width:14px;height:2px;background:currentColor;position:relative;border-radius:2px;
}
.jil-rm-curr-toggle-ic::before,
.jil-rm-curr-toggle-ic::after{
  content:"";position:absolute;left:0;right:0;height:2px;background:currentColor;border-radius:2px;
}
.jil-rm-curr-toggle-ic::before{top:-5px}
.jil-rm-curr-toggle-ic::after{top:5px}

/* Active curriculum row */
.jil-rm-item.is-active{
  background:color-mix(in srgb,var(--rm-accent) 10%,transparent);
  border-radius:8px;outline:1px solid color-mix(in srgb,var(--rm-accent) 28%,transparent);
}
.jil-rm-item-text{cursor:pointer}
.jil-rm-item-text:hover{color:var(--jil-text)}

/* Lesson pane */
.jil-rm-lesson{
  min-width:0;background:var(--jil-panel);border:1px solid var(--jil-line);border-radius:16px;
  min-height:min(70vh,720px);display:flex;flex-direction:column;overflow:hidden;
}
.jil-rm-lesson-empty{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:48px 28px;gap:8px;
}
.jil-rm-lesson-empty[hidden]{display:none!important}
.jil-rm-lesson-empty-ic{
  width:56px;height:56px;border-radius:14px;margin-bottom:8px;
  background:color-mix(in srgb,var(--rm-accent) 12%,var(--jil-bg-2));
  border:1px solid color-mix(in srgb,var(--rm-accent) 28%,transparent);
  position:relative;
}
.jil-rm-lesson-empty-ic::before{
  content:"";position:absolute;inset:18px 14px;border-radius:4px;
  border:2px solid color-mix(in srgb,var(--rm-accent) 55%,transparent);
  border-left-width:6px;
}
.jil-rm-lesson-empty h2{
  font-family:var(--jil-disp);font-size:clamp(22px,2.6vw,28px);margin:0;letter-spacing:-.4px;
}
.jil-rm-lesson-empty p{margin:0;max-width:420px;color:var(--jil-muted);line-height:1.55}
.jil-rm-lesson-frame{display:flex;flex-direction:column;min-height:0;flex:1}
.jil-rm-lesson-frame[hidden]{display:none!important}
.jil-rm-lesson-top{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:18px 20px 14px;border-bottom:1px solid var(--jil-line-soft);flex:0 0 auto;
}
.jil-rm-lesson-kind{
  display:inline-block;font-family:var(--jil-mono);font-size:11px;letter-spacing:.4px;text-transform:uppercase;
  color:var(--rm-accent);margin-bottom:6px;
}
.jil-rm-lesson-title{
  font-family:var(--jil-disp);font-size:clamp(18px,2.2vw,24px);margin:0;letter-spacing:-.35px;line-height:1.25;
}
.jil-rm-lesson-top-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex-shrink:0}
.jil-rm-lesson-external{
  font-family:var(--jil-mono);font-size:12px;color:var(--jil-muted);text-decoration:underline;text-underline-offset:3px;
}
.jil-rm-lesson-external:hover{color:var(--jil-text)}
.jil-rm-topic-admin-edit[hidden],
.jil-roadmap .jil-btn.jil-rm-topic-admin-edit[hidden],
.jil-rm-lesson-complete[hidden],
.jil-roadmap .jil-btn.jil-rm-lesson-complete[hidden],
.jil-rm-lesson-external[hidden]{
  display:none!important;
}
.jil-roadmap .jil-btn.jil-rm-topic-admin-edit,
.jil-rm-topic-admin-edit{
  padding:5px 9px!important;font-size:11px!important;line-height:1.2!important;min-height:0!important;border-radius:6px!important;
}
.jil-roadmap .jil-btn.jil-rm-lesson-complete,
.jil-rm-lesson-complete{
  padding:5px 9px!important;font-size:11px!important;font-family:var(--jil-mono)!important;font-weight:600!important;
  line-height:1.2!important;min-height:0!important;border-radius:6px!important;white-space:nowrap;
}
.jil-rm-lesson-complete.is-done{
  border-color:var(--jil-green);color:var(--jil-green);
  background:rgba(126,231,135,.1);
}
.jil-rm-lesson-loading{
  padding:14px 20px;font-family:var(--jil-mono);font-size:12.5px;color:var(--jil-faint);
  border-bottom:1px solid var(--jil-line-soft);
}
.jil-rm-lesson-body{
  flex:1;overflow:auto;padding:18px 22px 28px;max-width:none;
  scrollbar-width:thin;scrollbar-color:var(--jil-line) transparent;
}
.jil-rm-lesson-body > *:first-child{margin-top:0}
/* In-lesson section headings stay below .jil-rm-lesson-title (topic/practice/IQ) */
.jil-roadmap .jil-rm-lesson-body h2,
.jil-roadmap .jil-rm-lesson-body h2.wp-block-heading,
.jil-roadmap .jil-content.jil-rm-lesson-body h2,
.jil-roadmap .jil-content.jil-rm-lesson-body h2.wp-block-heading{
  font-family:var(--jil-disp);
  font-size:23px;
  font-weight:600;
  letter-spacing:-.15px;
  line-height:1.35;
  color:color-mix(in srgb,var(--jil-text) 88%,var(--jil-muted));
  margin:22px 0 8px;
  scroll-margin-top:72px;
}
.jil-roadmap .jil-rm-lesson-body h3,
.jil-roadmap .jil-rm-lesson-body h3.wp-block-heading,
.jil-roadmap .jil-content.jil-rm-lesson-body h3,
.jil-roadmap .jil-content.jil-rm-lesson-body h3.wp-block-heading{
  font-family:var(--jil-disp);
  font-size:20px;
  font-weight:600;
  letter-spacing:-.1px;
  line-height:1.35;
  color:color-mix(in srgb,var(--jil-text) 82%,var(--jil-muted));
  margin:18px 0 6px;
  scroll-margin-top:72px;
}
.jil-roadmap .jil-rm-lesson-body h4,
.jil-roadmap .jil-content.jil-rm-lesson-body h4{
  font-family:var(--jil-disp);
  font-size:18px;
  font-weight:600;
  letter-spacing:0;
  line-height:1.4;
  color:color-mix(in srgb,var(--jil-text) 78%,var(--jil-muted));
  margin:16px 0 6px;
}
.jil-roadmap .jil-rm-lesson-body h2:first-child,
.jil-roadmap .jil-rm-lesson-body h3:first-child,
.jil-roadmap .jil-rm-lesson-body h4:first-child{margin-top:0}
.jil-rm-lesson-nav{
  display:flex;justify-content:space-between;gap:12px;flex:0 0 auto;
  padding:14px 18px;border-top:1px solid var(--jil-line-soft);background:var(--jil-bg-2);
}
.jil-rm-lesson-soon{
  padding:28px 8px;text-align:center;max-width:480px;margin:0 auto;
}
.jil-rm-lesson-soon h3{font-family:var(--jil-disp);margin:0 0 10px;font-size:22px}
.jil-rm-lesson-soon p{color:var(--jil-muted);margin:0;line-height:1.55}
.jil-rm-lesson-answer{max-width:720px}
/* Lesson-pane answers mirror popup answer typography/code formatting */
.jil-rm-lesson-answer p{
  margin:0 0 12px;line-height:1.65;color:var(--jil-text)
}
.jil-rm-lesson-answer p:last-child{margin-bottom:0}
.jil-rm-lesson-answer ul,
.jil-rm-lesson-answer ol{
  margin:0 0 12px;padding-left:1.25em;color:var(--jil-text);line-height:1.6
}
.jil-rm-lesson-answer ul{list-style-type:disc!important}
.jil-rm-lesson-answer ol{list-style-type:decimal!important}
.jil-rm-lesson-answer li{margin:0 0 6px}
.jil-rm-lesson-answer li:last-child{margin-bottom:0}
.jil-rm-lesson-answer code{
  font-family:var(--jil-mono);font-size:.9em;padding:.12em .4em;border-radius:5px;
  background:color-mix(in srgb,var(--jil-text) 8%,var(--jil-bg-2));
  border:1px solid var(--jil-line-soft);color:var(--jil-text)
}
.jil-rm-lesson-answer pre,
.jil-rm-lesson-answer pre.wp-block-preformatted{
  margin:12px 0;padding:14px 16px;border-radius:10px;overflow:auto;
  background:#0d1117;border:1px solid color-mix(in srgb,#c9d1d9 18%,transparent);
  font-size:13px;line-height:1.55;white-space:pre;tab-size:2
}
.jil-rm-lesson-answer pre code{
  display:block;padding:0;border:0;background:transparent;font-size:inherit;
  color:#c9d1d9;white-space:inherit
}
.jil-rm-lesson-answer .token.comment,
.jil-rm-lesson-answer .token.prolog,
.jil-rm-lesson-answer .token.doctype,
.jil-rm-lesson-answer .token.cdata{color:#8b949e}
.jil-rm-lesson-answer .token.punctuation{color:#c9d1d9}
.jil-rm-lesson-answer .token.property,
.jil-rm-lesson-answer .token.tag,
.jil-rm-lesson-answer .token.boolean,
.jil-rm-lesson-answer .token.number,
.jil-rm-lesson-answer .token.constant,
.jil-rm-lesson-answer .token.symbol{color:#ffa657}
.jil-rm-lesson-answer .token.selector,
.jil-rm-lesson-answer .token.attr-name,
.jil-rm-lesson-answer .token.string,
.jil-rm-lesson-answer .token.char,
.jil-rm-lesson-answer .token.builtin,
.jil-rm-lesson-answer .token.inserted{color:#a5d6ff}
.jil-rm-lesson-answer .token.operator,
.jil-rm-lesson-answer .token.entity,
.jil-rm-lesson-answer .token.url,
.jil-rm-lesson-answer .token.variable{color:#ff7b72}
.jil-rm-lesson-answer .token.atrule,
.jil-rm-lesson-answer .token.attr-value,
.jil-rm-lesson-answer .token.function,
.jil-rm-lesson-answer .token.class-name{color:#d2a8ff}
.jil-rm-lesson-answer .token.keyword{color:#ff7b72}
.jil-rm-lesson-answer .token.regex,
.jil-rm-lesson-answer .token.important{color:#f0883e}
.jil-rm-toc-col .jil-toc{max-height:calc(100vh - 160px)}

/* Phase cards */
.jil-rm-body{max-width:none}
.jil-rm-phase{
  position:relative;background:var(--jil-panel);border:1px solid var(--jil-line);border-radius:16px;
  padding:0;margin:0 0 22px;overflow:hidden;
  /* Always visible — never fade tall phases out (broke Phase 1) */
  opacity:1;transform:none;transition:border-color .2s
}
.jil-rm-phase::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rm-accent);opacity:.85;
}
.jil-rm-phase-head{
  display:flex;align-items:center;gap:14px;padding:22px 24px 12px;border-bottom:1px solid var(--jil-line-soft);
}
.jil-rm-phase-num{
  flex-shrink:0;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;
  font-family:var(--jil-mono);font-size:13px;font-weight:700;color:var(--rm-accent);
  background:color-mix(in srgb,var(--rm-accent) 12%,var(--jil-bg-2));border:1px solid color-mix(in srgb,var(--rm-accent) 30%,transparent);
}
/* Beat .jil-content h2.wp-block-heading from style.css — roadmap body shares jil-content */
.jil-roadmap .jil-rm-phase-head h2,
.jil-roadmap .jil-rm-phase-head h2.wp-block-heading{
  flex:1;min-width:0;margin:0!important;
  font-family:var(--jil-disp);font-size:clamp(20px,2.4vw,26px);letter-spacing:-.4px;line-height:1.25;
  color:var(--jil-text);scroll-margin-top:150px;
}
.jil-roadmap .jil-rm-phase-body h3.wp-block-heading.jil-rm-subhead,
.jil-roadmap .jil-rm-phase-body h3.jil-rm-subhead{
  margin:22px 0 10px!important;
}
.jil-roadmap .jil-rm-phase-body h3.wp-block-heading.jil-rm-day,
.jil-roadmap .jil-rm-phase-body h3.jil-rm-day{
  margin:0 0 8px!important;
}
.jil-rm-phase-body{padding:8px 24px 22px}
.jil-rm-phase-body > *:first-child{margin-top:12px}
.jil-rm-subhead{
  font-family:var(--jil-mono)!important;font-size:13px!important;text-transform:uppercase;letter-spacing:.5px;
  color:var(--rm-accent)!important;margin:22px 0 10px!important;font-weight:600!important;
}
.jil-rm-phase-body ul{margin:0 0 14px;padding-left:18px}
.jil-rm-phase-body li{margin-bottom:7px;color:var(--jil-muted)}
.jil-rm-phase-body p{color:var(--jil-muted)}

/* Day accordion blocks */
.jil-rm-day-block{
  background:var(--jil-bg-2);border:1px solid var(--jil-line-soft);border-radius:12px;
  padding:0;margin:10px 0;overflow:hidden;
  transition:border-color .16s,box-shadow .16s;
}
.jil-rm-day-block:hover{border-color:color-mix(in srgb,var(--rm-accent) 40%,var(--jil-line))}
.jil-rm-day-block.is-open{
  border-color:color-mix(in srgb,var(--rm-accent) 45%,var(--jil-line));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--rm-accent) 12%,transparent)
}
.jil-rm-day-toggle{
  width:100%;display:flex;align-items:center;gap:12px;justify-content:space-between;
  padding:14px 16px;margin:0;border:0;background:transparent;cursor:pointer;text-align:left;
  color:inherit;font:inherit
}
.jil-rm-day-toggle:hover{background:color-mix(in srgb,var(--rm-accent) 6%,transparent)}
.jil-rm-day-toggle:focus-visible{outline:none;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--rm-accent) 45%,transparent)}
.jil-rm-day{
  font-family:var(--jil-mono)!important;font-size:14px!important;color:var(--jil-text)!important;
  margin:0!important;font-weight:600!important;text-transform:none!important;letter-spacing:0!important;
  flex:1;min-width:0;scroll-margin-top:160px
}
.jil-rm-day-chevron{
  flex:0 0 auto;width:10px;height:10px;border-right:2px solid var(--jil-faint);border-bottom:2px solid var(--jil-faint);
  transform:rotate(45deg);transition:transform .2s ease;margin-right:4px;opacity:.85
}
.jil-rm-day-block.is-open .jil-rm-day-chevron{transform:rotate(-135deg);margin-top:4px;border-color:var(--rm-accent)}
.jil-rm-day-panel{padding:0 14px 14px;border-top:1px solid var(--jil-line-soft)}
.jil-rm-day-panel[hidden]{display:none!important}
.jil-rm-day-block ul{margin:0!important;padding-left:0!important;list-style:none!important}

/* Guest access: Day 1–2 preview, Day 3+ locked */
.jil-rm-howto{
  margin:0 0 18px;padding:14px 16px;border-radius:12px;
  border:1px solid color-mix(in srgb,var(--rm-accent) 35%,var(--jil-line));
  background:color-mix(in srgb,var(--rm-accent) 8%,var(--jil-panel));
}
.jil-rm-howto p{margin:0 0 8px;font-size:14px;line-height:1.55;color:var(--jil-text)}
.jil-rm-howto p:last-child{margin-bottom:0}
.jil-rm-howto strong{color:var(--rm-accent)}
.jil-rm-day-lock{
  flex:0 0 auto;width:16px;height:16px;margin-left:8px;opacity:.85;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center/contain no-repeat;
  color:var(--jil-amber);
}
.jil-rm-day-block.is-locked .jil-rm-day-toggle{color:var(--jil-muted)}
.jil-rm-server-gate,
.jil-rm-day-gate{
  margin:4px 0 8px;padding:22px 18px;border-radius:12px;text-align:center;
  border:1px dashed color-mix(in srgb,var(--jil-amber) 45%,var(--jil-line));
  background:color-mix(in srgb,var(--jil-amber) 8%,var(--jil-bg-2));
}
.jil-rm-server-gate-title,
.jil-rm-day-gate-title{
  margin:0 0 8px;font-family:var(--jil-disp);font-size:18px;font-weight:700;color:var(--jil-text)
}
.jil-rm-server-gate p,
.jil-rm-day-gate p{margin:0 0 14px;font-size:14px;line-height:1.55;color:var(--jil-muted)}
.jil-rm-day-gate .jil-btn{margin-top:4px}
.jil-rm-tick.is-login-gated,
.jil-rm-link.is-login-gated{opacity:.72}
.jil-rm-link.is-login-gated{cursor:pointer}
.jil-roadmap .jil-rm-section,
.jil-roadmap .jil-rm-day-block h4,
.jil-roadmap .jil-rm-day-block h4.wp-block-heading{
  font-family:var(--jil-mono)!important;font-size:12px!important;font-weight:600!important;
  text-transform:uppercase;letter-spacing:.45px;margin:14px 0 8px!important
}
.jil-roadmap .jil-rm-day-block h4:first-of-type{margin-top:10px!important}
/* Section title color matches its action button — fixed triad on every band
   (Topics=cyan, Practice=green, Interview=amber). Do not use --rm-accent for
   Practice: mid/senior accents collide with Answer amber. */
.jil-roadmap .jil-rm-section--t,
.jil-roadmap h4.jil-rm-section--t{color:var(--jil-cyan)!important}          /* Topics ↔ Read */
.jil-roadmap .jil-rm-section--p,
.jil-roadmap h4.jil-rm-section--p{color:var(--jil-green)!important}         /* Practice ↔ Solution */
.jil-roadmap .jil-rm-section--i,
.jil-roadmap h4.jil-rm-section--i{color:var(--jil-amber)!important}         /* Interview ↔ Answer */
.jil-roadmap .jil-rm-section--s,
.jil-roadmap h4.jil-rm-section--s{color:var(--jil-violet)!important}        /* Production */
.jil-roadmap .jil-rm-phase-body h3.wp-block-heading.jil-rm-day,
.jil-roadmap .jil-rm-phase-body h3.jil-rm-day{
  margin:0!important
}

/* Interactive checklist ticks */
.jil-rm-item{
  display:flex!important;align-items:center;gap:10px;margin:0 0 8px!important;
  padding:6px 8px;border-radius:8px;list-style:none!important;color:var(--jil-text);
  transition:background .15s,color .15s
}
.jil-rm-item:hover{background:color-mix(in srgb,var(--rm-accent) 8%,transparent);color:var(--jil-text)}
.jil-rm-item--heading,
.jil-rm-item.jil-rm-item--heading{
  display:block!important;margin:14px 0 6px!important;padding:2px 4px 2px 8px;
  font-size:12.5px;font-weight:650;letter-spacing:.02em;text-transform:none;
  color:color-mix(in srgb,var(--jil-text) 72%,var(--jil-muted));
  background:transparent!important;cursor:default;pointer-events:none;
  border-left:2px solid color-mix(in srgb,var(--rm-accent) 45%,var(--jil-line))
}
.jil-rm-item--heading:hover{background:transparent!important;color:color-mix(in srgb,var(--jil-text) 72%,var(--jil-muted))}
.jil-rm-phase-body li.jil-rm-item,
.jil-roadmap .jil-rm-item .jil-rm-item-text{
  color:var(--jil-text);
}
.jil-rm-tick{
  flex:0 0 auto;width:18px;height:18px;margin:0;padding:0;border-radius:5px;cursor:pointer;
  box-sizing:border-box;align-self:center;
  /* Use faint (not line) — dark --jil-line blends into panel and hides the box */
  border:2px solid var(--jil-faint);background:var(--jil-bg-2);position:relative;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--jil-text) 8%,transparent);
  transition:border-color .15s,background .15s,box-shadow .15s
}
html[data-theme="dark"] .jil-rm-tick{
  border-color:color-mix(in srgb,var(--jil-text) 42%,var(--jil-line));
  background:color-mix(in srgb,var(--jil-text) 6%,var(--jil-bg-2));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--jil-text) 12%,transparent)
}
.jil-rm-tick:hover{
  border-color:var(--rm-accent);
  background:color-mix(in srgb,var(--rm-accent) 12%,var(--jil-bg-2))
}
.jil-rm-tick:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--rm-accent) 28%,transparent)}
.jil-rm-tick[aria-pressed="true"],
.jil-rm-item.is-done .jil-rm-tick{
  border-color:var(--rm-accent)!important;
  background:color-mix(in srgb,var(--rm-accent) 28%,var(--jil-bg-2))!important;
  box-shadow:none
}
.jil-rm-tick[aria-pressed="true"]::after,
.jil-rm-item.is-done .jil-rm-tick::after{
  content:"";position:absolute;left:5px;top:1px;width:4px;height:8px;
  border:solid var(--rm-accent);border-width:0 2px 2px 0;transform:rotate(45deg)
}
.jil-rm-item-text{
  flex:1;min-width:0;font-size:14.5px;line-height:1.35;
  display:flex;align-items:center;min-height:18px;padding-top:1px
}
.jil-rm-item.is-done .jil-rm-item-text,
.jil-roadmap .jil-rm-item.is-done .jil-rm-item-text{
  color:var(--jil-faint);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--rm-accent) 45%,transparent)
}
.jil-rm-item-actions{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;margin-left:4px;align-self:center
}
.jil-rm-link,
.jil-content a.jil-rm-link,
.jil-roadmap a.jil-rm-link,
.jil-roadmap button.jil-rm-link{
  appearance:none;-webkit-appearance:none;font-family:var(--jil-mono);font-size:11px;font-weight:600;line-height:1;
  padding:5px 8px;border-radius:6px;border:1px solid var(--jil-line);background:var(--jil-bg-2);
  color:var(--jil-muted);text-decoration:none!important;cursor:pointer;white-space:nowrap;transition:.15s
}
.jil-rm-link:hover,
.jil-rm-link:focus,
.jil-rm-link:visited,
.jil-content a.jil-rm-link:hover,
.jil-content a.jil-rm-link:focus,
.jil-roadmap a.jil-rm-link:hover{
  color:var(--jil-text);border-color:var(--jil-faint);text-decoration:none!important
}
/* Match Interview Questions section heading (--jil-amber) */
.jil-rm-link--answer,
.jil-content a.jil-rm-link--answer,
.jil-roadmap a.jil-rm-link--answer,
.jil-roadmap button.jil-rm-link--answer{
  color:var(--jil-amber)!important;
  border-color:color-mix(in srgb,var(--jil-amber) 45%,var(--jil-line))!important;
  background:color-mix(in srgb,var(--jil-amber) 10%,var(--jil-bg-2));
  text-decoration:none!important
}
.jil-rm-link--answer:hover,
.jil-content a.jil-rm-link--answer:hover,
.jil-roadmap a.jil-rm-link--answer:hover,
.jil-roadmap button.jil-rm-link--answer:hover{
  color:var(--jil-amber)!important;
  border-color:var(--jil-amber)!important;
  background:color-mix(in srgb,var(--jil-amber) 16%,var(--jil-bg-2));
  text-decoration:none!important
}
.jil-rm-link--read,
.jil-content a.jil-rm-link--read,
.jil-roadmap a.jil-rm-link--read,
.jil-roadmap button.jil-rm-link--read{
  color:var(--jil-cyan)!important;
  border-color:color-mix(in srgb,var(--jil-cyan) 35%,var(--jil-line))!important;
  background:color-mix(in srgb,var(--jil-cyan) 8%,var(--jil-bg-2));
  text-decoration:none!important
}
.jil-rm-link--read:hover,
.jil-content a.jil-rm-link--read:hover,
.jil-roadmap a.jil-rm-link--read:hover,
.jil-roadmap button.jil-rm-link--read:hover{
  color:var(--jil-cyan)!important;
  border-color:var(--jil-cyan)!important;
  background:color-mix(in srgb,var(--jil-cyan) 14%,var(--jil-bg-2));
  text-decoration:none!important
}
/* Match Practice Programs section heading (fixed green on every band) */
.jil-rm-link--solution,
.jil-content a.jil-rm-link--solution,
.jil-roadmap a.jil-rm-link--solution,
.jil-roadmap button.jil-rm-link--solution{
  color:var(--jil-green)!important;
  border-color:color-mix(in srgb,var(--jil-green) 45%,var(--jil-line))!important;
  background:color-mix(in srgb,var(--jil-green) 10%,var(--jil-bg-2));
  text-decoration:none!important
}
.jil-rm-link--solution:hover,
.jil-content a.jil-rm-link--solution:hover,
.jil-roadmap a.jil-rm-link--solution:hover,
.jil-roadmap button.jil-rm-link--solution:hover{
  color:var(--jil-green)!important;
  border-color:var(--jil-green)!important;
  background:color-mix(in srgb,var(--jil-green) 16%,var(--jil-bg-2));
  text-decoration:none!important
}
.jil-rm-link--yt{color:#ff4e45;border-color:rgba(255,78,69,.35)}
.jil-rm-link--yt:hover{border-color:rgba(255,78,69,.55);background:rgba(255,78,69,.08)}
.jil-rm-item.is-done .jil-rm-link{opacity:.72}

/* Interview answer popup — stay on the roadmap */
.jil-rm-answer-modal{
  position:fixed;inset:0;z-index:310;display:flex;align-items:center;justify-content:center;
  padding:18px;
}
.jil-rm-answer-modal[hidden]{display:none!important}
.jil-rm-answer-backdrop{position:absolute;inset:0;background:rgba(6,8,12,.78);backdrop-filter:blur(6px)}
.jil-rm-answer-dialog{
  position:relative;z-index:1;width:min(640px,100%);max-height:min(82vh,720px);
  display:flex;flex-direction:column;
  background:var(--jil-panel);border:1px solid var(--jil-line);border-radius:14px;
  box-shadow:0 40px 80px -20px var(--jil-shadow);overflow:hidden;
}
.jil-rm-answer-top{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 14px;border-bottom:1px solid var(--jil-line-soft);flex:0 0 auto;
}
.jil-rm-answer-eyebrow{
  font-family:var(--jil-mono);font-size:11.5px;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;color:var(--jil-amber);
}
.jil-rm-answer-top-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.jil-rm-answer-action{
  appearance:none;font-family:var(--jil-mono);font-size:11.5px;font-weight:600;line-height:1;
  padding:7px 10px;border-radius:8px;border:1px solid var(--jil-line);background:var(--jil-bg-2);
  color:var(--jil-muted);cursor:pointer;white-space:nowrap;
}
.jil-rm-answer-action:hover{color:var(--jil-text);border-color:var(--jil-faint)}
.jil-rm-answer-action--primary{
  color:var(--jil-on-amber);background:var(--jil-amber);border-color:var(--jil-amber)
}
.jil-rm-answer-action--primary:hover{filter:brightness(1.05);color:var(--jil-on-amber)}
.jil-rm-answer-action:disabled{opacity:.55;cursor:wait}
.jil-rm-answer-close{
  width:34px;height:34px;display:grid;place-items:center;border-radius:8px;cursor:pointer;
  border:1px solid var(--jil-line);background:var(--jil-bg-2);color:var(--jil-muted);
}
.jil-rm-answer-close:hover{color:var(--jil-text)}
.jil-rm-answer-title{
  font-family:var(--jil-disp);font-size:clamp(17px,2.4vw,21px);font-weight:700;line-height:1.3;
  margin:0;padding:16px 18px 8px;color:var(--jil-text);flex:0 0 auto;
}
.jil-rm-answer-body{
  padding:4px 18px 8px;overflow:auto;flex:1 1 auto;min-height:0;
}
.jil-rm-answer-body p{
  margin:0 0 12px;font-size:15px;line-height:1.65;color:var(--jil-text);
}
.jil-rm-answer-body p:last-child{margin-bottom:0}
.jil-rm-answer-body ul,
.jil-rm-answer-body ol{
  display:block;margin:0 0 14px;padding:0 0 0 1.35em;font-size:15px;line-height:1.65;color:var(--jil-text);
  list-style-position:outside;
}
.jil-rm-answer-body ul{list-style-type:disc!important}
.jil-rm-answer-body ol{list-style-type:decimal!important}
.jil-rm-answer-body li{
  display:list-item!important;margin:0 0 8px;padding:0;color:var(--jil-text);
}
.jil-rm-answer-body li:last-child{margin-bottom:0}
.jil-rm-answer-body p + ul,
.jil-rm-answer-body p + ol,
.jil-rm-answer-body ul + p,
.jil-rm-answer-body ol + p{margin-top:2px}
.jil-rm-answer-body code{
  font-family:var(--jil-mono);font-size:.9em;padding:.1em .35em;border-radius:5px;
  background:color-mix(in srgb,var(--jil-text) 8%,var(--jil-bg-2));color:var(--jil-text);
}
.jil-rm-answer-body pre,
.jil-rm-answer-body pre.wp-block-preformatted{
  margin:0 0 12px;padding:12px 14px;overflow:auto;border-radius:10px;
  border:1px solid color-mix(in srgb,#c9d1d9 18%,transparent);background:#0d1117;
  font-family:var(--jil-mono);font-size:13px;line-height:1.55;color:#c9d1d9;
  white-space:pre;tab-size:2;
}
.jil-rm-answer-body pre code{
  padding:0;background:transparent;border:0;border-radius:0;font-size:inherit;color:inherit;
  white-space:inherit;display:block;
}
/* Prism tokens inside answer popup (same palette as site code blocks) */
.jil-rm-answer-body .token.comment,
.jil-rm-answer-body .token.prolog,
.jil-rm-answer-body .token.doctype,
.jil-rm-answer-body .token.cdata{color:#8b949e}
.jil-rm-answer-body .token.punctuation{color:#c9d1d9}
.jil-rm-answer-body .token.property,
.jil-rm-answer-body .token.tag,
.jil-rm-answer-body .token.boolean,
.jil-rm-answer-body .token.number,
.jil-rm-answer-body .token.constant,
.jil-rm-answer-body .token.symbol{color:#ffa657}
.jil-rm-answer-body .token.selector,
.jil-rm-answer-body .token.attr-name,
.jil-rm-answer-body .token.string,
.jil-rm-answer-body .token.char,
.jil-rm-answer-body .token.builtin,
.jil-rm-answer-body .token.inserted{color:#a5d6ff}
.jil-rm-answer-body .token.operator,
.jil-rm-answer-body .token.entity,
.jil-rm-answer-body .token.url,
.jil-rm-answer-body .token.variable{color:#ff7b72}
.jil-rm-answer-body .token.atrule,
.jil-rm-answer-body .token.attr-value,
.jil-rm-answer-body .token.function,
.jil-rm-answer-body .token.class-name{color:#d2a8ff}
.jil-rm-answer-body .token.keyword{color:#ff7b72}
.jil-rm-answer-body .token.regex,
.jil-rm-answer-body .token.important{color:#f0883e}
.jil-rm-answer-editor{
  display:block;width:auto;margin:0 18px 8px;padding:12px 14px;min-height:220px;
  flex:1 1 auto;resize:vertical;box-sizing:border-box;
  border:1px solid var(--jil-line);border-radius:10px;background:var(--jil-bg-2);
  color:var(--jil-text);font-family:var(--jil-mono);font-size:13px;line-height:1.55;
}
.jil-rm-answer-editor[hidden]{display:none!important}
.jil-rm-answer-editor:focus{outline:none;border-color:var(--jil-amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--jil-amber) 22%,transparent)}
.jil-rm-answer-status{
  margin:0;padding:0 18px;font-size:12.5px;color:var(--jil-amber);flex:0 0 auto;
}
.jil-rm-answer-status:empty{display:none}
.jil-rm-answer-tip{
  margin:0;padding:12px 18px 16px;border-top:1px solid var(--jil-line-soft);
  font-size:12.5px;color:var(--jil-muted);flex:0 0 auto;
}
.jil-rm-answer-modal.is-editing .jil-rm-answer-dialog{width:min(720px,100%)}
body.jil-rm-answer-open{overflow:hidden}
@media(max-width:640px){
  .jil-rm-answer-dialog{max-height:88vh;border-radius:12px}
  .jil-rm-answer-title{padding:14px 14px 6px;font-size:17px}
  .jil-rm-answer-body{padding:2px 14px 6px}
  .jil-rm-answer-tip{padding:10px 14px 14px}

  /* Tighter side padding on phones */
  .jil-rm-switcher{padding:18px 10px 6px;gap:8px}
  .jil-rm-layout{padding-top:20px;gap:16px}
  .jil-rm-phase{margin-bottom:14px;border-radius:12px}
  .jil-rm-phase-head{padding:14px 12px 10px;gap:10px}
  .jil-rm-phase-body{padding:6px 10px 14px}
  .jil-rm-day-toggle{padding:12px 10px}
  .jil-rm-day-panel{padding:0 8px 10px}
  .jil-rm-rail-wrap{padding-left:0;padding-right:0;padding-top:0;padding-bottom:2px;margin-top:4px}
  .jil-rm-rail{
    gap:5px;padding-top:1px;
    scrollbar-width:none;-ms-overflow-style:none;
  }
  .jil-rm-rail::-webkit-scrollbar{display:none;width:0;height:0}
  .jil-rm-rail-item{padding:4px 8px;font-size:11.5px;max-width:180px;border-radius:6px}
  .jil-rm-rail-item .n{font-size:10px}
  .jil-rm-foot-cta{padding:14px 10px 48px}
  .jil-rm-foot-card{padding:28px 16px;border-radius:14px}

  /* Keep Read / Solution / Answer on the same row as the topic when possible */
  .jil-rm-item{
    flex-wrap:nowrap;
    align-items:flex-start;
    gap:8px;
    padding:6px 2px;
  }
  .jil-rm-item-text{
    flex:1 1 auto;
    min-width:0;
    font-size:13.5px;
    line-height:1.35;
    padding-top:2px;
  }
  .jil-rm-item-actions{
    flex:0 0 auto;
    width:auto;
    margin:0;
    align-self:flex-start;
  }
  .jil-rm-link{padding:4px 7px;font-size:10.5px}
  .jil-rm-tick{margin-top:2px}
}

/* Foot CTA */
.jil-rm-foot-cta{padding:20px 24px 70px}
.jil-rm-foot-card{
  background:linear-gradient(150deg,var(--jil-panel),var(--jil-bg-2));border:1px solid var(--jil-line);
  border-radius:20px;padding:42px 40px;text-align:center;position:relative;overflow:hidden;
}
.jil-rm-foot-card::before{
  content:"45";position:absolute;right:24px;top:-20px;font-family:var(--jil-mono);font-size:180px;
  color:color-mix(in srgb,var(--rm-accent) 6%,transparent);font-weight:700;pointer-events:none;line-height:1;
}
.jil-rm-foot-card h2{font-family:var(--jil-disp);font-size:clamp(24px,3vw,36px);margin:0 0 10px;position:relative}
.jil-rm-foot-card p{color:var(--jil-muted);max-width:480px;margin:0 auto 22px;position:relative}
.jil-rm-foot-card .jil-cta-row{justify-content:center;position:relative}

@media(max-width:1100px){
  .jil-rm-switcher{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:960px){
  .jil-rm-hero-inner{grid-template-columns:1fr;gap:28px}
  .jil-rm-switcher{grid-template-columns:1fr}
  .jil-rm-layout{grid-template-columns:1fr}
  .jil-rm-layout--lms{grid-template-columns:1fr;min-height:0}
  .jil-rm-toc-col{order:-1;margin-bottom:8px}
  .jil-rm-toc-col .jil-toc-aside{position:static;max-height:none}
  /* Hide phase pills rail on mobile — Curriculum drawer covers navigation */
  .jil-rm-rail-wrap{display:none!important}
  .jil-rm-console-body{grid-template-columns:1fr;justify-items:center;text-align:left}

  .jil-rm-curr-toggle{display:inline-flex;top:calc(var(--jil-rm-toolbar-top) - 1px)}
  .jil-rm-lms-toolbar{
    justify-content:space-between;align-items:center;
    position:-webkit-sticky;position:sticky;
    /* Overlap 1px under nav to kill subpixel hairline (same trick as promo→nav) */
    top:calc(var(--jil-rm-toolbar-top) - 1px);
    z-index:40;
    background:var(--jil-bg);
    padding:4px 0 5px;
    margin:0 0 6px;
    gap:6px;
    border-bottom:1px solid var(--jil-line-soft);
    box-shadow:0 10px 24px -18px rgba(0,0,0,.65);
  }
  .jil-rm-lms-toolbar .jil-rm-curr-toggle{
    display:inline-flex;top:auto;position:static;
    padding:6px 10px;font-size:12px;margin:0;border-radius:8px;
  }
  .jil-rm-progress{
    flex:1 1 120px;min-width:0;max-width:none;margin-right:0;
    flex-direction:row;align-items:center;gap:8px;
  }
  .jil-rm-progress-meta{
    flex:0 1 auto;min-width:0;flex-wrap:wrap;gap:4px 6px;
    font-size:11px;line-height:1.2;
  }
  .jil-rm-progress-label{display:none}
  .jil-rm-progress-track{flex:1 1 72px;min-width:56px;height:5px;margin:0}
  .jil-rm-lms-toolbar .jil-rm-focus-toggle,
  .jil-roadmap .jil-btn.jil-rm-focus-toggle{
    padding:6px 9px;font-size:11px;border-radius:7px;
  }
  body.jil-rm-focus .jil-rm-lms-toolbar{
    top:0;
    gap:6px;
    padding:4px 0 5px;
    background:var(--jil-bg);
  }
  body.jil-app-webview .jil-rm-lms-toolbar{top:0}
  body.jil-app-webview.jil-rm-focus .jil-rm-lms-toolbar{top:0}
  body.jil-app-webview .jil-rm-lms-toolbar{top:calc(var(--jil-rm-rail-h) + var(--jil-rm-sticky-gap))}
  body.jil-app-webview.jil-rm-focus .jil-rm-lms-toolbar{top:0}
  body.jil-rm-focus .jil-rm-layout--lms{
    padding:6px 6px 8px!important;
    grid-template-columns:1fr;
    grid-template-rows:auto minmax(0,1fr);
    gap:8px;
  }
  body.jil-rm-focus .jil-rm-progress{max-width:none;flex-basis:auto;order:0}
  body.jil-rm-focus .jil-rm-curr{
    position:fixed;top:0;left:0;bottom:0;width:min(920px,92vw);height:auto;max-height:none;
  }
  body.jil-rm-focus .jil-rm-lesson{height:100%;min-height:0}
  .jil-rm-curr-bar{display:flex}
  .jil-rm-curr{
    position:fixed;top:0;left:0;bottom:0;width:min(920px,94vw);max-height:none;
    z-index:1102;border-radius:0;border:0;border-right:1px solid var(--jil-line);
    transform:translateX(-105%);transition:transform .22s ease;overflow:auto;
    -webkit-overflow-scrolling:touch;
  }
  .jil-rm-curr.is-open{transform:translateX(0)}
  .jil-rm-curr-backdrop{
    display:block;z-index:1101;
  }
  .jil-rm-curr-backdrop[hidden]{display:none!important}
  body.jil-rm-curr-open{overflow:hidden}
  body.jil-rm-curr-open .jil-rm-rail-wrap,
  body.jil-rm-curr-open .jil-nav,
  body.jil-rm-curr-open .jil-promo{
    visibility:hidden!important;pointer-events:none!important;
  }
  body.jil-rm-focus .jil-rm-curr{
    position:fixed;top:0;left:0;bottom:0;width:min(920px,94vw);height:auto;max-height:none;
    z-index:1102;
  }
  .jil-rm-lesson{min-height:min(75vh,820px);border-radius:12px}
  .jil-roadmap .jil-rm-layout--lms.jil-wrap{
    padding-left:8px!important;
    padding-right:8px!important;
    gap:12px;
  }
  .jil-rm-lesson-top{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 10px;
    padding:10px 12px;
  }
  .jil-rm-lesson-meta{flex:1 1 140px;min-width:0}
  .jil-rm-lesson-kind{margin-bottom:2px;font-size:10px}
  .jil-rm-lesson-title{font-size:16px;line-height:1.3}
  .jil-rm-lesson-top-actions{
    flex:0 0 auto;
    margin-left:auto;
    justify-content:flex-end;
    gap:6px;
    align-items:center;
  }
  .jil-rm-lesson-external{font-size:11px;white-space:nowrap}
  .jil-roadmap .jil-btn.jil-rm-lesson-complete,
  .jil-rm-lesson-complete{
    padding:4px 8px!important;
    font-size:10.5px!important;
    font-family:var(--jil-mono)!important;
    font-weight:600!important;
    line-height:1.2!important;
    min-height:0!important;
    border-radius:6px!important;
    white-space:nowrap;
  }
  .jil-rm-lesson-loading{padding:10px 12px;font-size:11.5px}
  .jil-rm-lesson-body{
    padding:12px 12px 18px;
    font-size:15.5px;
  }
  .jil-roadmap .jil-rm-lesson-body h2,
  .jil-roadmap .jil-rm-lesson-body h2.wp-block-heading,
  .jil-roadmap .jil-content.jil-rm-lesson-body h2,
  .jil-roadmap .jil-content.jil-rm-lesson-body h2.wp-block-heading{
    font-size:23px;margin:18px 0 6px;letter-spacing:-.1px;
  }
  .jil-roadmap .jil-rm-lesson-body h3,
  .jil-roadmap .jil-rm-lesson-body h3.wp-block-heading,
  .jil-roadmap .jil-content.jil-rm-lesson-body h3,
  .jil-roadmap .jil-content.jil-rm-lesson-body h3.wp-block-heading{
    font-size:20px;margin:14px 0 5px;
  }
  .jil-roadmap .jil-rm-lesson-body h4,
  .jil-roadmap .jil-content.jil-rm-lesson-body h4{
    font-size:18px;margin:12px 0 5px;
  }
  .jil-rm-lesson-body .jil-codeblock,
  .jil-rm-lesson-body pre,
  .jil-rm-lesson-body .wp-block-code{
    margin-left:0;margin-right:0;
  }
  .jil-rm-lesson-nav{
    padding:10px 12px;gap:8px;
  }
  .jil-rm-lesson-nav .jil-btn{
    padding:8px 12px;font-size:13px;
  }
  .jil-rm-lms-toolbar{
    gap:6px;
    margin-bottom:2px;
    flex-wrap:nowrap;
    padding:3px 0 4px;
  }
  .jil-rm-lms-toolbar .jil-rm-focus-toggle{
    flex:0 0 auto;
  }
  .jil-rm-progress{min-width:0;flex:1 1 100px}
  .jil-rm-focus-toggle,
  .jil-roadmap .jil-btn.jil-rm-focus-toggle{
    padding:5px 8px;font-size:10.5px;
  }
  body.jil-rm-focus .jil-rm-layout--lms{
    padding:4px 4px 6px!important;
  }
  body.jil-rm-focus .jil-rm-lesson-body{padding:10px 10px 16px}
  body.jil-rm-focus .jil-rm-lesson-top{padding:8px 10px}
}
@media(prefers-reduced-motion:reduce){
  .jil-rm-ring-fg{transition:none}
  .jil-rm-timeline li,.jil-rm-phase{animation:none!important;opacity:1;transform:none}
  .jil-rm-tl-fill{
    animation:none!important;
    transform:scaleY(1)!important;
  }
  .jil-rm-tl-head{animation:none!important;top:calc(100% - 5px - var(--tl-dot) / 2)!important}
  .jil-rm-tl-dot,.jil-rm-tl-days,.jil-rm-tl-label{animation:none!important}
  .jil-rm-tl-dot{
    border-color:var(--jil-green)!important;
    background:color-mix(in srgb,var(--jil-green) 28%,var(--jil-bg-2))!important;
    box-shadow:0 0 0 3px color-mix(in srgb,var(--jil-green) 16%,transparent)!important;
  }
  .jil-rm-tl-days{color:var(--jil-green)!important}
  .jil-rm-tl-label{color:var(--jil-text)!important;font-weight:600!important}
}
