/* Nursing Pathway Planner: every rule is scoped to .npp so it won't affect your theme. */
.npp{
  --npp-paper:#F6F8FA; --npp-surface:#FFFFFF; --npp-ink:#15233B; --npp-muted:#56637A; --npp-rule:#DCE3EA;
  --npp-r1:#0F7B83; --npp-r2:#6A4C93; --npp-r3:#A86B12; --npp-r4:#2F7D57; --npp-work:#8C96A6;
  --npp-chip:#EEF2F6; --npp-focus:#0F7B83;
  box-sizing:border-box; width:100%; max-width:var(--npp-max,none); margin:0 auto 2rem; padding:clamp(1.25rem,4vw,2.5rem);
  background:var(--npp-paper); color:var(--npp-ink); border-radius:1rem;
  font-family:var(--npp-body); font-size:1.0625rem; line-height:1.6; text-align:left;
}
/* Plugin fonts. In theme mode these variables are left unset, so text inherits your theme's fonts
   and the script copies your theme's heading font into --npp-display for labels. */
.npp:not(.npp-theme-fonts){
  --npp-body:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --npp-display:"Bricolage Grotesque","Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}
.npp.npp-theme-fonts{font-family:inherit}
.npp *,.npp *::before,.npp *::after{box-sizing:border-box}
.npp h2,.npp h3,.npp h4,.npp p,.npp ol,.npp li,.npp fieldset,.npp legend,.npp form{margin:0;padding:0;border:0;background:none}
.npp h2,.npp h3,.npp h4{line-height:1.2}
/* Headings only get the plugin's font and color in plugin-font mode; in theme mode your theme's heading styles apply. */
.npp:not(.npp-theme-fonts) h2,.npp:not(.npp-theme-fonts) h3,.npp:not(.npp-theme-fonts) h4{font-family:var(--npp-display);color:var(--npp-ink);text-transform:none;letter-spacing:normal}
.npp a{color:var(--npp-r1);text-decoration:underline;text-underline-offset:2px}
.npp a:hover{text-decoration-thickness:2px}
.npp a:focus-visible,.npp button:focus-visible,.npp select:focus-visible{outline:3px solid var(--npp-focus);outline-offset:2px}

.npp .npp-title{font-size:clamp(1.6rem,3.4vw,2.3rem);width:100%;max-width:none;text-align:left;text-wrap:balance}
.npp:not(.npp-theme-fonts) .npp-title{font-weight:750;letter-spacing:-.015em}
.npp .npp-lede{color:var(--npp-muted);max-width:48rem;margin-top:.75rem}

/* Questions */
.npp .npp-form{margin-top:2.25rem;display:grid;gap:2rem}
.npp .npp-fieldset{min-width:0}
.npp .npp-legend{font-family:var(--npp-display);font-weight:600;font-size:1.25rem;margin-bottom:.75rem;display:flex;gap:.6rem;align-items:center;color:var(--npp-ink);float:none;width:auto}
.npp .npp-n{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;border:2px solid var(--npp-ink);font-size:.9rem;flex:none;line-height:1}
.npp .npp-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.npp .npp-chip{position:relative;display:inline-block;margin:0;padding:0;font-weight:400}
.npp .npp-chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer;-webkit-appearance:none;appearance:none}
.npp .npp-chip span{display:block;padding:.55rem .95rem;border-radius:999px;background:var(--npp-chip);color:var(--npp-ink);
  border:2px solid transparent;cursor:pointer;font-size:.98rem;line-height:1.3;transition:background .15s,border-color .15s}
.npp .npp-chip input:hover + span{border-color:var(--npp-rule)}
.npp .npp-chip input:checked + span{background:var(--npp-ink);color:var(--npp-paper);border-color:var(--npp-ink)}
.npp .npp-chip input:focus-visible + span{outline:3px solid var(--npp-focus);outline-offset:2px}
.npp .npp-chip input:disabled,.npp .npp-chip input:disabled + span{cursor:not-allowed}
.npp .npp-chip input:disabled + span{opacity:.38;text-decoration:line-through}
.npp .npp-row{display:flex;flex-wrap:wrap;gap:1.25rem 2rem;align-items:flex-end}
.npp .npp-row > div{flex:1 1 14rem}
.npp .npp-label{display:block;font-size:.92rem;color:var(--npp-muted);margin:0 0 .35rem;font-weight:400}
.npp .npp-select{width:100%;max-width:none;height:auto;font:inherit;font-size:1rem;line-height:1.4;padding:.6rem .75rem;border-radius:.5rem;
  border:2px solid var(--npp-rule);background-color:var(--npp-surface);color:var(--npp-ink);box-shadow:none;margin:0}
.npp .npp-hint{font-size:.9rem;color:var(--npp-muted);margin-top:.6rem}

/* Buttons */
.npp .npp-btn{-webkit-appearance:none;appearance:none;font:inherit;font-size:.98rem;line-height:1.3;text-transform:none;letter-spacing:normal;
  cursor:pointer;border-radius:.5rem;padding:.55rem 1rem;border:2px solid var(--npp-ink);background:transparent;color:var(--npp-ink);box-shadow:none;margin:0;width:auto}
.npp .npp-btn:hover{background:var(--npp-ink);color:var(--npp-paper)}

/* Results */
.npp .npp-results{margin-top:2.75rem}
.npp .npp-empty{border:2px dashed var(--npp-rule);border-radius:.75rem;padding:1.5rem;color:var(--npp-muted)}
.npp .npp-res-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:flex-end;margin-bottom:1.5rem}
.npp .npp-res-head h3{font-size:1.5rem;max-width:none;text-wrap:balance}
.npp:not(.npp-theme-fonts) .npp-res-head h3{font-weight:750}
.npp .npp-res-head p{margin-top:.35rem;color:var(--npp-muted)}
.npp .npp-btns{display:flex;gap:.5rem;flex-wrap:wrap}

.npp .npp-route{background:var(--npp-surface);border:1px solid var(--npp-rule);border-radius:1rem;padding:1.5rem 1.25rem 1.25rem;margin-bottom:1.25rem}
.npp .npp-route-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;align-items:center;margin-bottom:.5rem}
.npp .npp-route-top h4{font-size:1.3rem;display:flex;align-items:center;gap:.6rem}
.npp:not(.npp-theme-fonts) .npp-route-top h4{font-weight:600}
.npp .npp-swatch{width:1.1rem;height:.45rem;border-radius:1rem;background:var(--c)}
.npp .npp-tag{font-size:.82rem;padding:.15rem .6rem;border-radius:999px;border:1.5px solid var(--c);color:var(--npp-ink);font-weight:700}
.npp .npp-facts{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;color:var(--npp-muted);font-size:.95rem;margin-bottom:1.25rem}
.npp .npp-facts b{color:var(--npp-ink)}

/* The route line */
.npp .npp-line{list-style:none;position:relative}
.npp .npp-stop{position:relative;padding:0 0 1.4rem 2.4rem;list-style:none}
.npp .npp-stop::before{content:"";position:absolute;left:.62rem;top:.9rem;bottom:-.4rem;width:.32rem;background:var(--c);border-radius:1rem}
.npp .npp-stop:last-child{padding-bottom:0}
.npp .npp-stop:last-child::before{display:none}
.npp .npp-stop.npp-work::before{background:repeating-linear-gradient(var(--c) 0 .5rem,transparent .5rem .85rem)}
.npp .npp-dot{position:absolute;left:.2rem;top:.3rem;width:1.2rem;height:1.2rem;border-radius:50%;background:var(--npp-surface);border:.3rem solid var(--c)}
.npp .npp-stop.npp-end .npp-dot{width:1.6rem;height:1.6rem;left:0;top:.1rem;background:var(--c)}
.npp .npp-stop.npp-work .npp-dot{border-color:var(--npp-work)}
.npp .npp-stop h5{margin:0;font-family:var(--npp-body);font-size:1.08rem;font-weight:700;color:var(--npp-ink);line-height:1.35;text-transform:none;letter-spacing:normal}
.npp .npp-meta{color:var(--npp-muted);font-size:.95rem}
.npp .npp-stop p{margin-top:.35rem;font-size:.97rem;max-width:44rem}
.npp .npp-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}
.npp .npp-badge{font-size:.85rem;background:var(--npp-chip);border-radius:.35rem;padding:.12rem .5rem}
.npp .npp-becomes{margin-top:.5rem;font-size:.95rem}
.npp .npp-becomes b{color:var(--c)}
.npp .npp-links{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;margin-top:.55rem;font-size:.95rem}
.npp .npp-more{margin:.5rem 0 1.5rem}
.npp .npp-disclaimer{font-size:.88rem;color:var(--npp-muted);border-top:1px solid var(--npp-rule);margin-top:2.5rem;padding-top:1.25rem}

@media (prefers-reduced-motion: no-preference){
  .npp .npp-route{animation:npp-in .35s ease-out both}
  .npp .npp-route:nth-of-type(2){animation-delay:.06s}
  .npp .npp-route:nth-of-type(3){animation-delay:.12s}
}
@keyframes npp-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Print window (opened by "Print my roadmap") */
.npp.npp-printwin{max-width:none;margin:0;background:#fff;border-radius:0;padding:24px}
.npp.npp-printwin .npp-route{animation:none;break-inside:avoid;border-color:#bbb}
.npp.npp-printwin .npp-links,.npp.npp-printwin .npp-btns,.npp.npp-printwin .npp-more{display:none}
.npp.npp-printwin .npp-print-head{margin-bottom:1.25rem}
.npp.npp-printwin .npp-print-head p{color:var(--npp-muted);margin-top:.35rem}
@media print{
  .npp.npp-printwin{padding:0}
  .npp.npp-printwin .npp-route{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* How to use this tool */
.npp .npp-howto{margin-top:1.25rem;max-width:44rem;background:var(--npp-surface);border:1px solid var(--npp-rule);border-left:4px solid var(--npp-r1);border-radius:.6rem;padding:0}
.npp .npp-howto-sum{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.55rem;padding:.7rem 1rem;font-weight:700;color:var(--npp-ink)}
.npp .npp-howto-sum::-webkit-details-marker{display:none}
.npp .npp-howto-sum::before{content:"+";display:inline-grid;place-items:center;width:1.45rem;height:1.45rem;border-radius:50%;background:var(--npp-r1);color:#fff;font-size:1.05rem;line-height:1;flex:none}
.npp details[open] > .npp-howto-sum::before{content:"\2212"}
.npp .npp-howto-sum:focus-visible{outline:3px solid var(--npp-r1);outline-offset:2px}
.npp .npp-howto-body{padding:0 1.1rem 1rem 1.1rem;font-size:1.05rem;line-height:1.55}
.npp .npp-howto-body p{margin:0 0 .5rem}
.npp .npp-howto-what{color:var(--npp-muted)}
.npp .npp-howto-body ol{margin:0 0 .6rem;padding-left:1.6rem}
.npp .npp-howto-body li{list-style:decimal;margin:.35rem 0;padding-left:.2rem}
.npp .npp-howto-body li::marker{font-weight:700;color:var(--npp-r1)}
.npp .npp-howto-tips{margin-top:.6rem !important;padding-top:.6rem;border-top:1px solid var(--npp-rule)}
.npp .npp-howto-sub{margin-top:.6rem !important}
