/* psra-acad */
.psra-acad{max-width:var(--psra-container,1200px);margin:0 auto;padding:34px 20px 80px}
.psra-acad__hero{text-align:center;max-width:760px;margin:8px auto 34px}
.psra-acad__eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--psra-primary);margin-bottom:10px}
.psra-acad__h1{font-size:clamp(26px,4vw,40px);line-height:1.12;color:var(--psra-ink,#161616);margin:0 0 12px;font-weight:800}
.psra-acad__lead{font-size:17px;color:var(--psra-muted,#6e6e6e);line-height:1.6;margin:0}
.psra-acad__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:22px}
.psra-acad__empty,.psra-acad__notice{text-align:center;color:var(--psra-muted,#6e6e6e);background:var(--psra-bg-soft,#f8f8f8);border:1px dashed var(--psra-line,#e7e7e7);border-radius:16px;padding:40px 24px}
.psra-acad__empty-ic{display:inline-flex;color:var(--psra-faint,#9e9e9e);margin-bottom:10px}
.psra-acad__crumb{font-size:13px;color:var(--psra-muted,#6e6e6e);margin-bottom:18px}
.psra-acad__crumb a{color:var(--psra-ink-2,#3a3a3a);text-decoration:none;font-weight:600}
.psra-acad__crumb a:hover{color:var(--psra-primary)}
.psra-acad__crumb span{margin:0 7px;color:var(--psra-faint,#9e9e9e)}
.psra-progressbar{flex:1;height:9px;background:var(--psra-bg-2,#f1f1f1);border-radius:999px;overflow:hidden}
.psra-progressbar span{display:block;height:100%;border-radius:999px;background:var(--psra-primary);transition:width .4s ease}
.psra-course__lock{display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:#fbf7ec;border:1px solid #f0e6c8;border-radius:16px;padding:22px 24px;margin-bottom:24px}
.psra-course__lock-ic{color:var(--psra-primary)}
.psra-course__lock p{margin:0;color:var(--psra-ink-2,#3a3a3a);font-size:15px}
.psra-lesslist{list-style:none;margin:0;padding:0;border:1px solid var(--psra-line,#e7e7e7);border-radius:var(--psra-radius,14px);overflow:hidden}
.psra-lessrow+.psra-lessrow{border-top:1px solid var(--psra-line-2,#f1f1f1)}
.psra-lessrow__link{display:flex;align-items:center;gap:14px;padding:15px 18px;text-decoration:none;color:inherit;transition:background .15s ease}
.psra-lessrow__link:hover{background:var(--psra-bg-soft,#f8f8f8)}
.psra-lessrow__num{flex:none;width:30px;height:30px;border-radius:999px;background:var(--psra-bg-2,#f1f1f1);color:var(--psra-ink-2,#3a3a3a);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.psra-lessrow.is-done .psra-lessrow__num{background:var(--psra-success-text);color:#fff}
.psra-lessrow__main{flex:1;min-width:0}
.psra-lessrow__title{display:block;font-weight:600;color:var(--psra-ink,#161616);font-size:15px}
.psra-lessrow__meta{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--psra-faint,#9e9e9e);margin-top:2px}
.psra-lessrow__quiz{background:var(--psra-primary-soft);color:var(--psra-primary-dd);padding:1px 8px;border-radius:999px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.psra-lessrow__go{color:var(--psra-faint,#9e9e9e)}
.psra-lesson__title{font-size:clamp(23px,3.2vw,32px);font-weight:800;color:var(--psra-ink,#161616);margin:0 0 18px;line-height:1.18}
.psra-lesson__video{position:relative;border-radius:var(--psra-radius,14px);overflow:hidden;margin-bottom:22px;background:var(--psra-primary-dd);aspect-ratio:16/9}
.psra-lesson__video iframe,.psra-lesson__video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.psra-lesson__body{font-size:16px;line-height:1.75;color:var(--psra-ink-2,#3a3a3a)}
.psra-lesson__body p{margin:0 0 16px}
.psra-quiz{margin:28px 0 8px;background:var(--psra-bg-soft,#f8f8f8);border:1px solid var(--psra-line,#e7e7e7);border-radius:var(--psra-radius,14px);padding:22px 22px 24px}
.psra-quiz__q{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:18px;font-weight:700;color:var(--psra-ink,#161616);margin:0 0 16px;line-height:1.4}
.psra-quiz__tag{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--psra-primary);background:var(--psra-primary-soft);padding:3px 10px;border-radius:999px}
.psra-quiz__opts{display:flex;flex-direction:column;gap:9px;margin-bottom:16px}
.psra-quiz__opt{display:flex;align-items:center;gap:11px;padding:12px 14px;background:var(--psra-bg,#fff);border:1px solid var(--psra-line,#e7e7e7);border-radius:10px;cursor:pointer;transition:border-color .15s ease,background .15s ease;font-size:15px;color:var(--psra-ink-2,#3a3a3a)}
.psra-quiz__opt:hover{border-color:var(--psra-primary-100)}
.psra-quiz__opt input{accent-color:var(--psra-primary);width:17px;height:17px}
.psra-quiz__opt.is-correct{border-color:var(--psra-success,#059669);background:#e9f9f1}
.psra-quiz__opt.is-wrong{border-color:var(--psra-danger,#dc2626);background:#fdecec}
.psra-quiz__feedback{margin-top:12px;padding:13px 16px;border-radius:10px;font-size:14px;line-height:1.55}
.psra-quiz__feedback.is-ok{background:#e9f9f1;color:#1a7f37}
.psra-quiz__feedback.is-no{background:#fdecec;color:#b3261e}
.psra-lesson__foot{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-top:28px;padding-top:22px;border-top:1px solid var(--psra-line,#e7e7e7)}
.psra-lesson__msg{margin:14px 0 0;font-size:14px;font-weight:600;color:var(--psra-success-text,#186B3B)}
[data-lesson-complete][data-done="1"]{background:var(--psra-success-text);border-color:var(--psra-success,#059669);color:#fff}
@media(max-width:620px){.psra-lesson__foot{flex-direction:column-reverse;align-items:stretch}.psra-lesson__foot .psra-btn{width:100%;text-align:center}}

/* ---- a course hosted elsewhere ----------------------------------------- */

/* ---- the completion the professional declares themselves --------------- */

/* ---- catalogue filter --------------------------------------------------- */
.psra-acad__filters{
  display:flex; flex-wrap:wrap; gap:8px;
  margin:0 0 22px;
}
.psra-acad__chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px;
  font-family:var(--psra-font); font-size:13.4px; font-weight:650;
  color:var(--psra-ink);
  background:var(--psra-bg,#fff);
  border:1.5px solid var(--psra-line);
  border-radius:999px; cursor:pointer;
  transition:background-color .2s ease, border-color .2s ease, color .2s ease, transform .18s ease;
}
.psra-acad__chip:hover{ transform:translateY(-1px); border-color:var(--psra-primary) }
.psra-acad__chip.is-on{
  background:var(--psra-primary); border-color:var(--psra-primary); color:#fff;
}
.psra-acad__chipn{
  min-width:20px; padding:1px 6px; border-radius:999px;
  font-size:11.6px; font-variant-numeric:tabular-nums;
  background:var(--psra-primary-soft); color:var(--psra-primary);
}
.psra-acad__chip.is-on .psra-acad__chipn{
  background:rgba(255,255,255,.20); color:#fff;
}

/* where a course lives, on its card */

@media (prefers-reduced-motion:reduce){
  .psra-acad__chip{ transition:none }
  .psra-acad__chip:hover{ transform:none }
}

.psra-acad__adminhint{
  margin:14px auto 0; max-width:520px; padding:11px 14px;
  font-size:13.2px; line-height:1.5;
  background:var(--psra-accent-soft); color:var(--psra-ink-2);
  border-left:3px solid var(--psra-accent);
  border-radius:0 var(--psra-radius-sm,10px) var(--psra-radius-sm,10px) 0;
}
.psra-acad__adminhint a{ color:var(--psra-primary); font-weight:650 }

/* ---- a course the visitor is not entitled to ---------------------------- */
@media (max-width:640px){
  .psra-course__locked .psra-btn{ width:100%; justify-content:center }
}

/* ---- the centre while it is being rebuilt ------------------------------- */
.psra-acad__closed{
  max-width:640px; margin:0 auto; padding:clamp(48px,9vh,96px) 24px;
  text-align:center;
}
.psra-acad__closed-ic{
  display:inline-flex; align-items:center; justify-content:center;
  width:72px; height:72px; margin-bottom:22px;
  border-radius:20px; background:var(--psra-primary); color:#fff;
}
.psra-acad__closed h1{
  margin:0 0 14px; font-size:clamp(24px,3.4vw,34px); font-weight:780;
  color:var(--psra-primary); line-height:1.15;
}
.psra-acad__closed p{
  margin:0 0 26px; font-size:15.5px; line-height:1.62; color:var(--psra-muted);
}

/* ============================================================================
 *  THE ACADEMY
 * ========================================================================== */
.psra-acad{ max-width:1120px; margin:0 auto; padding:0 clamp(16px,4vw,28px) clamp(56px,9vh,96px) }

/* ---- landing ------------------------------------------------------------ */
.psra-acad__hero{
  margin:0 0 clamp(24px,4vh,38px);
  padding:clamp(38px,7vh,72px) clamp(24px,4vw,52px);
  background:var(--psra-primary);
  border-radius:var(--psra-radius-lg,20px);
  color:#fff;
}
.psra-acad__hero-in{ max-width:640px }
.psra-acad__eyebrow{
  display:inline-block; margin-bottom:14px;
  font-size:11.5px; font-weight:750; letter-spacing:.12em; text-transform:uppercase;
  color:var(--psra-primary-100);
}
.psra-acad__hero h1{
  margin:0 0 14px; font-size:clamp(26px,4vw,40px); font-weight:800;
  line-height:1.12; letter-spacing:-.02em; color:#fff;
}
.psra-acad__hero p{ margin:0; font-size:16px; line-height:1.62; color:rgba(255,255,255,.86) }
.psra-acad__hero-nums{
  display:flex; flex-wrap:wrap; gap:26px; margin-top:26px;
  padding-top:22px; border-top:1px solid rgba(255,255,255,.18);
}
.psra-acad__hero-nums b{ font-size:24px; font-weight:800; color:#fff; margin-right:6px }
.psra-acad__hero-nums span{ font-size:13.5px; color:rgba(255,255,255,.78) }

/* ---- carry on ----------------------------------------------------------- */
.psra-acad__carry{
  display:flex; align-items:center; gap:22px; flex-wrap:wrap;
  margin:0 0 clamp(22px,3.5vh,34px); padding:22px 24px;
  background:var(--psra-bg,#fff);
  border:1px solid var(--psra-line);
  border-left:3px solid var(--psra-accent);
  border-radius:var(--psra-radius,14px);
}
.psra-acad__carry-txt{ flex:1; min-width:240px; display:grid; gap:5px }
.psra-acad__carry-lbl{
  font-size:11.5px; font-weight:750; letter-spacing:.09em; text-transform:uppercase;
  color:var(--psra-accent);
}
.psra-acad__carry-txt strong{ font-size:17px; font-weight:750; color:var(--psra-ink) }
.psra-acad__carry-ch{ font-size:13.5px; color:var(--psra-muted) }
.psra-acad__carry-bar{ margin-top:6px }
.psra-acad__carry-pct{ font-size:12px; font-weight:700; color:var(--psra-primary); font-variant-numeric:tabular-nums }

/* ---- search and My Courses ---------------------------------------------- */
.psra-acad__quick{
  display:flex; gap:14px; flex-wrap:wrap; align-items:center;
  margin:0 0 clamp(28px,4.5vh,44px);
}
.psra-acad__search{
  flex:1; min-width:260px; display:flex; align-items:center; gap:10px;
  padding:6px 6px 6px 16px;
  background:var(--psra-bg,#fff);
  border:1.5px solid var(--psra-line);
  border-radius:999px;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.psra-acad__search:focus-within{
  border-color:var(--psra-primary);
  box-shadow:0 0 0 3px var(--psra-primary-soft);
}
.psra-acad__search svg{ flex:none; color:var(--psra-muted) }
.psra-acad__search input{
  flex:1; min-width:0; border:0; background:none; outline:none;
  font-family:inherit; font-size:15px; color:var(--psra-ink); padding:10px 0;
}
.psra-acad__search input::placeholder{ color:var(--psra-faint) }
.psra-acad__minelink{
  display:inline-flex; align-items:center; gap:9px;
  padding:12px 20px; border-radius:999px; text-decoration:none;
  font-size:14.5px; font-weight:700; color:var(--psra-primary);
  background:var(--psra-primary-soft);
  border:1.5px solid var(--psra-primary-100);
  transition:background-color .2s ease, border-color .2s ease;
}
.psra-acad__minelink:hover{ background:var(--psra-primary-100); border-color:var(--psra-primary) }
.psra-acad__minen{
  min-width:22px; padding:1px 7px; border-radius:999px;
  font-size:11.5px; font-variant-numeric:tabular-nums;
  background:var(--psra-primary); color:#fff;
}

/* ---- topics ------------------------------------------------------------- */
.psra-acad__topics{ margin:0 0 clamp(30px,5vh,48px) }
.psra-acad__topics h2,
.psra-acad__featured h2,
.psra-acad__mineblock h2{
  margin:0 0 16px; font-size:19px; font-weight:780; color:var(--psra-ink);
}
.psra-acad__topicgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); gap:10px }
.psra-acad__topic{
  display:flex; align-items:center; gap:12px;
  padding:16px 18px; text-decoration:none;
  background:var(--psra-bg,#fff);
  border:1px solid var(--psra-line);
  border-radius:var(--psra-radius,14px);
  transition:border-color .2s ease, transform .2s ease;
}
.psra-acad__topic:hover{ border-color:var(--psra-primary); transform:translateY(-2px) }
.psra-acad__topic-n{
  flex:none; min-width:34px; height:34px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:800; font-variant-numeric:tabular-nums;
  background:var(--psra-primary); color:#fff;
}
.psra-acad__topic-l{ font-size:14px; font-weight:650; color:var(--psra-ink); line-height:1.35 }

/* ---- grid and cards ----------------------------------------------------- */
.psra-acad__sechead{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:16px }
.psra-acad__sechead h2{ margin:0 }
.psra-acad__all{ font-size:14px; font-weight:700; color:var(--psra-primary); text-decoration:none; white-space:nowrap }
.psra-acad__all:hover{ text-decoration:underline }
.psra-acad__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(268px,1fr)); gap:14px }
.psra-acad__mineblock{ margin:0 0 clamp(30px,5vh,46px) }


.psra-progressbar{
  display:block; height:5px; border-radius:999px; overflow:hidden;
  background:var(--psra-line-2);
}
.psra-progressbar > span{ display:block; height:100%; background:var(--psra-primary); border-radius:999px }

/* ---- modules on a course page ------------------------------------------- */
.psra-modhead{
  display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  margin:26px 0 10px; padding:0 0 10px;
  border-bottom:2px solid var(--psra-primary-100);
}
.psra-modhead__t{ font-size:16px; font-weight:780; color:var(--psra-primary) }
.psra-modhead__s{ flex:1; min-width:160px; font-size:13.2px; color:var(--psra-muted) }
.psra-modhead__n{
  font-size:12px; font-weight:700; color:var(--psra-muted);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}

/* ---- My Courses, empty -------------------------------------------------- */
.psra-acad__empty{
  max-width:520px; margin:clamp(30px,6vh,60px) auto; padding:44px 28px;
  text-align:center;
  background:var(--psra-bg,#fff);
  border:1px dashed var(--psra-line);
  border-radius:var(--psra-radius-lg,18px);
}
.psra-acad__empty-ic{
  display:inline-flex; align-items:center; justify-content:center;
  width:60px; height:60px; margin-bottom:16px;
  border-radius:16px; background:var(--psra-primary-soft); color:var(--psra-primary);
}
.psra-acad__empty strong{ display:block; margin-bottom:8px; font-size:17px; color:var(--psra-ink) }
.psra-acad__empty p{ margin:0 0 20px; font-size:14px; line-height:1.6; color:var(--psra-muted) }

.psra-acad__crumb{
  display:flex; align-items:center; gap:9px; flex-wrap:wrap;
  margin:0 0 22px; font-size:13.5px; color:var(--psra-muted);
}
.psra-acad__crumb a{ color:var(--psra-primary); text-decoration:none; font-weight:650 }
.psra-acad__crumb a:hover{ text-decoration:underline }
.psra-acad__crumb strong{ color:var(--psra-ink) }

@media (max-width:640px){
  .psra-acad__hero{ padding:32px 22px }
  .psra-acad__carry{ padding:18px }
  .psra-acad__carry .psra-btn{ width:100%; justify-content:center }
  .psra-acad__minelink{ width:100%; justify-content:center }
  .psra-acad__grid{ grid-template-columns:1fr }
}
@media (prefers-reduced-motion:reduce){
}

/* ---- moving between chapters -------------------------------------------- */
.psra-lesson__pos{
  margin:26px 0 10px; font-size:12.5px; font-weight:650;
  color:var(--psra-muted); font-variant-numeric:tabular-nums;
}
.psra-lesson__nav{
  display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px;
  padding-top:20px; border-top:1px solid var(--psra-line);
}
.psra-lesson__nav-l, .psra-lesson__nav-r{
  display:grid; gap:3px; padding:15px 18px; text-decoration:none;
  border:1px solid var(--psra-line); border-radius:var(--psra-radius,14px);
  transition:border-color .2s ease, transform .2s ease;
}
.psra-lesson__nav-r{ text-align:right }
.psra-lesson__nav-l:hover, .psra-lesson__nav-r:hover{
  border-color:var(--psra-primary); transform:translateY(-2px);
}
.psra-lesson__nav span{
  font-size:11px; font-weight:750; letter-spacing:.1em; text-transform:uppercase;
  color:var(--psra-muted);
}
.psra-lesson__nav strong{ font-size:14.5px; font-weight:700; color:var(--psra-primary); line-height:1.35 }
.psra-lesson__nav-end{
  display:flex; align-items:center; justify-content:flex-end;
  padding:15px 18px; font-size:13px; color:var(--psra-faint);
}
@media (max-width:640px){
  .psra-lesson__nav{ grid-template-columns:1fr }
  .psra-lesson__nav-r{ text-align:left }
  .psra-lesson__nav-end{ justify-content:flex-start }
}
@media (prefers-reduced-motion:reduce){
  .psra-lesson__nav-l, .psra-lesson__nav-r{ transition:none }
  .psra-lesson__nav-l:hover, .psra-lesson__nav-r:hover{ transform:none }
}


/* ---- introduction and objectives ---------------------------------------- */
.psra-course__intro{
  display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  gap:clamp(20px,3vw,38px); align-items:start;
  margin:0 0 clamp(26px,4vh,40px);
}
.psra-course__introtxt h2,
.psra-course__obj h2,
.psra-course__res h2{
  margin:0 0 12px; font-size:18px; font-weight:780; color:var(--psra-ink);
}
.psra-course__introtxt p{ margin:0 0 13px; font-size:15.5px; line-height:1.7; color:var(--psra-ink-2) }
.psra-course__introtxt p:last-child{ margin-bottom:0 }
.psra-course__obj{
  padding:22px 24px;
  background:var(--psra-primary-soft);
  border:1px solid var(--psra-primary-100);
  border-radius:var(--psra-radius,14px);
}
.psra-course__obj ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px }
.psra-course__obj li{
  display:flex; align-items:flex-start; gap:10px;
  font-size:14.5px; line-height:1.5; color:var(--psra-ink);
}
.psra-course__obj svg{ flex:none; margin-top:2px; color:var(--psra-success-text) }

/* ---- the exercise -------------------------------------------------------- */
.psra-lesson__ex{
  margin:30px 0; padding:22px 24px;
  background:var(--psra-accent-soft);
  border:1px solid color-mix(in srgb, var(--psra-accent) 26%, transparent);
  border-left:3px solid var(--psra-accent);
  border-radius:0 var(--psra-radius,14px) var(--psra-radius,14px) 0;
}
.psra-lesson__ex header{ display:flex; align-items:center; gap:11px; margin-bottom:12px }
.psra-lesson__ex-ic{
  flex:none; width:36px; height:36px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  background:var(--psra-accent); color:var(--psra-on-accent);
}
.psra-lesson__ex h2{ margin:0; font-size:16.5px; font-weight:780; color:var(--psra-ink) }
.psra-lesson__ex-body p{ margin:0 0 11px; font-size:15px; line-height:1.66; color:var(--psra-ink-2) }
.psra-lesson__ex-body p:last-child{ margin-bottom:0 }
.psra-lesson__ex-body ol,
.psra-lesson__ex-body ul{ margin:0 0 11px 20px; font-size:15px; line-height:1.66; color:var(--psra-ink-2) }

/* ---- resources ----------------------------------------------------------- */
.psra-course__res{ margin:clamp(30px,5vh,48px) 0 0; padding-top:26px; border-top:1px solid var(--psra-line) }
.psra-course__res-sub{ margin:0 0 16px; font-size:14px; color:var(--psra-muted) }
.psra-course__reslist{ list-style:none; margin:0; padding:0; display:grid; gap:10px }
.psra-course__reslist a{
  display:flex; align-items:center; gap:14px; padding:15px 18px; text-decoration:none;
  background:var(--psra-bg,#fff);
  border:1px solid var(--psra-line);
  border-radius:var(--psra-radius,14px);
  transition:border-color .2s ease, transform .2s ease;
}
.psra-course__reslist a:hover{ border-color:var(--psra-primary); transform:translateY(-2px) }
.psra-course__res-ic{
  flex:none; width:40px; height:40px; border-radius:11px;
  display:flex; align-items:center; justify-content:center;
  background:var(--psra-primary-soft); color:var(--psra-primary);
}
.psra-course__res-txt{ flex:1; min-width:0; display:grid; gap:2px }
.psra-course__res-txt strong{ font-size:14.8px; font-weight:700; color:var(--psra-ink) }
.psra-course__res-txt span{ font-size:13px; color:var(--psra-muted); line-height:1.45 }
.psra-course__res-go{ flex:none; color:var(--psra-primary) }

@media (max-width:820px){
  .psra-course__intro{ grid-template-columns:1fr }
}
@media (max-width:640px){
  .psra-lesson__ex{ padding:18px }
  .psra-course__reslist a{ padding:14px }
}
@media (prefers-reduced-motion:reduce){
  .psra-course__reslist a{ transition:none }
  .psra-course__reslist a:hover{ transform:none }
}


/* ---- interactive tools --------------------------------------------------- */
.psra-course__tools{ margin:clamp(30px,5vh,46px) 0 0; padding-top:26px; border-top:1px solid var(--psra-line) }
.psra-course__tools-sub{ margin:0 0 18px; font-size:14px; color:var(--psra-muted) }
.psra-tool{
  margin:0 0 16px; padding:22px 24px;
  background:var(--psra-bg,#fff);
  border:1px solid var(--psra-line);
  border-radius:var(--psra-radius-lg,16px);
}
.psra-tool__head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:14px }
.psra-tool__headtxt h3{ margin:0 0 4px; font-size:17px; font-weight:780; color:var(--psra-ink) }
.psra-tool__headtxt p{ margin:0; font-size:13.6px; line-height:1.5; color:var(--psra-muted) }
.psra-tool__headact{ display:flex; align-items:center; gap:10px }
.psra-tool__saved{
  font-size:12px; font-weight:700; color:var(--psra-success-text);
  animation:psra-fade .3s ease;
}
@keyframes psra-fade{ from{opacity:0} to{opacity:1} }
.psra-tool__prog{ display:flex; align-items:center; gap:12px; margin:0 0 16px }
.psra-tool__prog .psra-progressbar{ flex:1 }
.psra-tool__pct{ font-size:13px; font-weight:750; color:var(--psra-primary); font-variant-numeric:tabular-nums }
.psra-tool__empty{ font-size:13.6px; color:var(--psra-faint); margin:0 }

/* checklist and plan items */
.psra-tool__check{ list-style:none; margin:0; padding:0; display:grid; gap:9px }
.psra-tool__check label{ display:flex; align-items:flex-start; gap:11px; cursor:pointer }
.psra-tool__check input{ flex:none; margin-top:3px; width:17px; height:17px; accent-color:var(--psra-primary) }
.psra-tool__checktxt{ display:grid; gap:2px }
.psra-tool__checktxt strong{ font-size:14.6px; font-weight:600; color:var(--psra-ink); line-height:1.45 }
.psra-tool__checktxt span{ font-size:13px; color:var(--psra-muted); line-height:1.45 }
.psra-tool__check input:checked + .psra-tool__checktxt strong{ color:var(--psra-muted); text-decoration:line-through }

/* templates */
.psra-tool__fields{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px;
  margin:0 0 18px; padding:16px 18px;
  background:var(--psra-primary-soft); border-radius:var(--psra-radius,12px);
}
.psra-tool__fieldshint{ grid-column:1/-1; margin:0; font-size:13px; color:var(--psra-muted) }
.psra-tool__field{ display:grid; gap:4px }
.psra-tool__field span{ font-size:12.4px; font-weight:650; color:var(--psra-ink-2) }
.psra-tool__field input{
  padding:9px 12px; font-family:inherit; font-size:14px;
  border:1px solid var(--psra-line); border-radius:9px; background:var(--psra-bg,#fff);
}
.psra-tool__field input:focus{ outline:none; border-color:var(--psra-primary) }
.psra-tool__tpls{ display:grid; gap:12px }
.psra-tool__tpl{ border:1px solid var(--psra-line); border-radius:var(--psra-radius,12px); overflow:hidden }
.psra-tool__tpl header{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:11px 15px; background:var(--psra-bg-soft); border-bottom:1px solid var(--psra-line);
}
.psra-tool__tpl header strong{ font-size:14px; font-weight:700; color:var(--psra-ink) }
.psra-tool__tpl pre{
  margin:0; padding:16px 18px; white-space:pre-wrap; word-break:break-word;
  font-family:inherit; font-size:14px; line-height:1.62; color:var(--psra-ink-2);
}

/* tracker */
.psra-tool__stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin:0 0 16px }
.psra-tool__stat{
  padding:13px 15px; background:var(--psra-primary-soft);
  border-radius:var(--psra-radius,12px); display:grid; gap:2px;
}
.psra-tool__stat strong{ font-size:21px; font-weight:800; color:var(--psra-primary); font-variant-numeric:tabular-nums }
.psra-tool__stat span{ font-size:12px; color:var(--psra-muted); line-height:1.35 }
.psra-tool__filters{ display:flex; flex-wrap:wrap; gap:7px; margin:0 0 14px }
.psra-tool__fchip{
  padding:6px 13px; border-radius:999px; cursor:pointer;
  font-family:inherit; font-size:13px; font-weight:650; color:var(--psra-ink);
  background:var(--psra-bg,#fff); border:1.5px solid var(--psra-line);
}
.psra-tool__fchip.is-on{ background:var(--psra-primary); border-color:var(--psra-primary); color:#fff }
.psra-tool__tablewrap{ overflow-x:auto; margin:0 0 12px }
.psra-tool__table{ width:100%; border-collapse:collapse; min-width:620px }
.psra-tool__table th{
  text-align:left; padding:9px 10px; font-size:12px; font-weight:750;
  text-transform:uppercase; letter-spacing:.04em; color:var(--psra-muted);
  border-bottom:1.5px solid var(--psra-line);
}
.psra-tool__table td{ padding:5px 6px; border-bottom:1px solid var(--psra-line-2) }
.psra-tool__table input, .psra-tool__table select{
  width:100%; padding:8px 10px; font-family:inherit; font-size:13.6px;
  border:1px solid transparent; border-radius:8px; background:transparent; color:var(--psra-ink);
}
.psra-tool__table input:focus, .psra-tool__table select:focus{
  outline:none; border-color:var(--psra-primary); background:var(--psra-bg,#fff);
}
.psra-tool__thx{ width:36px }
.psra-tool__thx button{
  border:0; background:none; cursor:pointer; font-size:19px; line-height:1;
  color:var(--psra-faint); padding:4px 8px;
}
.psra-tool__thx button:hover{ color:var(--psra-danger) }

/* plan */
.psra-tool__plannav{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px }
.psra-tool__planpos{ font-size:13.5px; font-weight:700; color:var(--psra-primary) }
.psra-tool__planintro{ margin:0 0 14px; font-size:14.4px; line-height:1.6; color:var(--psra-ink-2) }
.psra-tool__planfield{ display:grid; gap:5px; margin-top:16px }
.psra-tool__planfield span{ font-size:12.6px; font-weight:650; color:var(--psra-ink-2) }
.psra-tool__planfield textarea{
  padding:11px 13px; font-family:inherit; font-size:14px; line-height:1.55;
  border:1px solid var(--psra-line); border-radius:10px; background:var(--psra-bg,#fff);
  color:var(--psra-ink); resize:vertical;
}
.psra-tool__planfield textarea:focus{ outline:none; border-color:var(--psra-primary) }

@media (max-width:640px){
  .psra-tool{ padding:18px }
  .psra-tool__headact{ width:100%; justify-content:space-between }
}

/* Printing one tool: everything else is hidden, so the reader gets the sheet
   and nothing around it. */
@media print{
  body.psra-printing-tool > *{ display:none !important }
  body.psra-printing-tool .psra-tool--printing,
  body.psra-printing-tool .psra-tool--printing *{ display:revert !important }
  body.psra-printing-tool .psra-tool--printing{
    position:absolute; inset:0; margin:0; border:0; padding:0;
  }
  .psra-tool--printing .psra-tool__headact,
  .psra-tool--printing [data-tool-add],
  .psra-tool--printing .psra-tool__thx,
  .psra-tool--printing .psra-tool__filters{ display:none !important }
}


/* ---- a course finished --------------------------------------------------- */
.psra-lesson__done{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  margin:24px 0; padding:24px 26px;
  background:var(--psra-primary-soft);
  border:1px solid var(--psra-primary-100);
  border-left:3px solid var(--psra-success-text);
  border-radius:var(--psra-radius-lg,16px);
}
.psra-lesson__done-ic{
  flex:none; width:54px; height:54px; border-radius:15px;
  display:flex; align-items:center; justify-content:center;
  background:var(--psra-success-text); color:#fff;
}
.psra-lesson__done-txt{ flex:1; min-width:220px; display:grid; gap:3px }
.psra-lesson__done-txt strong{ font-size:18px; font-weight:780; color:var(--psra-ink) }
.psra-lesson__done-txt span{ font-size:14px; line-height:1.5; color:var(--psra-muted) }
.psra-lesson__done-act{ display:flex; gap:10px; flex-wrap:wrap }
.psra-acad__crumbmod{ color:var(--psra-muted) }
.psra-lesson__nav-r.is-next{
  border-color:var(--psra-primary);
  box-shadow:0 0 0 3px var(--psra-primary-soft);
}
@media (max-width:640px){
  .psra-lesson__done{ padding:20px }
  .psra-lesson__done-act{ width:100% }
  .psra-lesson__done-act .psra-btn{ flex:1; justify-content:center }
}


/* ---- a course card ------------------------------------------------------- */
.psra-acard{
  position:relative; display:flex; flex-direction:column; overflow:hidden;
  text-decoration:none; background:var(--psra-bg,#fff);
  border:1px solid var(--psra-line); border-radius:var(--psra-radius-lg,16px);
  transition:border-color .24s ease, transform .24s ease, box-shadow .24s ease;
}
.psra-acard:hover{
  border-color:var(--psra-primary); transform:translateY(-4px);
  box-shadow:0 22px 44px -26px rgba(18,48,91,.45);
}
.psra-acard__cover{
  position:relative; display:block; aspect-ratio:16/9; overflow:hidden;
  background:var(--psra-primary);
}
.psra-acard__cover img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s cubic-bezier(.2,0,.2,1);
}
.psra-acard:hover .psra-acard__cover img{ transform:scale(1.04) }
.psra-acard__mark{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:44px; font-weight:800; color:rgba(255,255,255,.22); letter-spacing:-.02em;
}
.psra-acard__cat{
  position:absolute; left:12px; top:12px; z-index:2;
  padding:4px 11px; border-radius:999px;
  font-size:11px; font-weight:750; letter-spacing:.02em;
  background:rgba(255,255,255,.94); color:var(--psra-primary);
}
.psra-acard__seal{
  position:absolute; right:12px; top:12px; z-index:2;
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--psra-success-text); color:#fff;
}
.psra-acard__in{ display:flex; flex-direction:column; gap:7px; padding:17px 19px 19px; flex:1 }
.psra-acard__title{ font-size:16.5px; font-weight:750; line-height:1.32; color:var(--psra-ink) }
.psra-acard__sum{ flex:1; font-size:13.6px; line-height:1.55; color:var(--psra-muted) }
.psra-acard__meta{
  display:flex; align-items:center; gap:7px; flex-wrap:wrap;
  font-size:12.4px; color:var(--psra-faint); text-transform:capitalize;
}
.psra-acard__level{ font-weight:650; color:var(--psra-primary); text-transform:capitalize }
.psra-acard__foot{
  display:flex; align-items:center; gap:11px;
  padding-top:13px; margin-top:4px; border-top:1px solid var(--psra-line-2);
}
.psra-acard__foot .psra-progressbar{ flex:1 }
.psra-acard__pct{ font-size:12.4px; font-weight:750; color:var(--psra-primary); font-variant-numeric:tabular-nums }
.psra-acard__pct.is-done{ color:var(--psra-success-text) }

@media (prefers-reduced-motion:reduce){
  .psra-acard, .psra-acard__cover img{ transition:none }
  .psra-acard:hover{ transform:none }
  .psra-acard:hover .psra-acard__cover img{ transform:none }
}


/* ---- the course header --------------------------------------------------- */
.psra-course__head{
  position:relative; isolation:isolate; overflow:hidden;
  margin:0 0 clamp(26px,4vh,40px); padding:clamp(30px,5vh,52px) clamp(24px,4vw,46px);
  background:var(--psra-primary); border-radius:var(--psra-radius-lg,20px); color:#fff;
}
.psra-course__cover{ position:absolute; inset:0; z-index:-2 }
.psra-course__cover img{ width:100%; height:100%; object-fit:cover; display:block }
/* Heavy enough to carry white text over any photograph, including a pale one. */
.psra-course__head.has-cover::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:color-mix(in srgb, var(--psra-primary) 88%, transparent);
}
.psra-course__head-in{ position:relative; max-width:660px }
.psra-course__badges{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px }
.psra-course__badge{
  padding:4px 12px; border-radius:999px;
  font-size:11.5px; font-weight:750; letter-spacing:.02em;
  background:#fff; color:var(--psra-primary);
}
.psra-course__badge--soft{
  background:rgba(255,255,255,.16); color:#fff; text-transform:capitalize;
}
.psra-course__title{
  margin:0 0 12px; font-size:clamp(25px,4vw,38px); font-weight:800;
  line-height:1.14; letter-spacing:-.02em; color:#fff;
}
.psra-course__sum{ margin:0; font-size:16px; line-height:1.6; color:rgba(255,255,255,.86) }
.psra-course__facts{
  list-style:none; margin:22px 0 0; padding:0;
  display:flex; gap:22px; flex-wrap:wrap;
}
.psra-course__facts li{
  display:flex; align-items:center; gap:7px;
  font-size:13.6px; color:rgba(255,255,255,.9);
}
.psra-course__facts svg{ opacity:.72 }
.psra-course__resume{
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
  margin-top:24px; padding-top:22px; border-top:1px solid rgba(255,255,255,.2);
}
.psra-course__progress{ flex:1; min-width:200px; display:flex; align-items:center; gap:12px }
.psra-course__progress .psra-progressbar{ flex:1; background:rgba(255,255,255,.22) }
.psra-course__progress .psra-progressbar > span{ background:#fff }
.psra-course__progress-lbl{
  font-size:13px; font-weight:700; color:#fff; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.psra-course__head .psra-btn-primary{
  background:#fff; color:var(--psra-primary); border-color:#fff;
}
.psra-course__head .psra-btn-primary:hover{ background:var(--psra-primary-soft); border-color:var(--psra-primary-soft) }

@media (max-width:640px){
  .psra-course__head{ padding:26px 22px }
  .psra-course__facts{ gap:14px }
  .psra-course__resume .psra-btn{ width:100%; justify-content:center }
}


/* ---- apply this on the platform ------------------------------------------ */
.psra-apply{
  margin:clamp(32px,5vh,50px) 0 0; padding:clamp(24px,3.5vw,32px);
  background:var(--psra-primary); border-radius:var(--psra-radius-lg,18px); color:#fff;
}
.psra-apply__head{ display:flex; align-items:flex-start; gap:15px; margin-bottom:18px }
.psra-apply__ic{
  flex:none; width:46px; height:46px; border-radius:13px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.15); color:#fff;
}
.psra-apply__head h2{ margin:0 0 4px; font-size:19px; font-weight:780; color:#fff }
.psra-apply__head p{ margin:0; font-size:14px; line-height:1.5; color:rgba(255,255,255,.82) }
.psra-apply__score{
  margin-left:auto; flex:none; font-size:19px; font-weight:800;
  color:#fff; font-variant-numeric:tabular-nums;
}
.psra-apply__bar{ background:rgba(255,255,255,.2); margin-bottom:20px }
.psra-apply__bar > span{ background:#fff }

.psra-apply__list{ list-style:none; margin:0 0 22px; padding:0; display:grid; gap:10px }
.psra-apply__list li{ display:flex; align-items:flex-start; gap:12px }
.psra-apply__mark{
  flex:none; width:20px; height:20px; margin-top:2px; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid rgba(255,255,255,.4);
}
.psra-apply__list li.is-done .psra-apply__mark{
  background:#fff; border-color:#fff; color:var(--psra-primary);
}
.psra-apply__txt{ display:grid; gap:2px }
.psra-apply__txt strong{ font-size:14.6px; font-weight:600; color:#fff; line-height:1.45 }
.psra-apply__txt span{ font-size:13px; line-height:1.5; color:rgba(255,255,255,.7) }
/* Done recedes; what is left keeps the reader's attention. */
.psra-apply__list li.is-done .psra-apply__txt strong{ color:rgba(255,255,255,.62) }

.psra-apply__foot{ display:flex; align-items:center; gap:16px; flex-wrap:wrap }
.psra-apply .psra-btn-primary{ background:#fff; color:var(--psra-primary); border-color:#fff }
.psra-apply .psra-btn-primary:hover{ background:var(--psra-primary-soft); border-color:var(--psra-primary-soft) }
.psra-apply__note{ font-size:12.6px; color:rgba(255,255,255,.66) }

@media (max-width:640px){
  .psra-apply{ padding:22px }
  .psra-apply__foot .psra-btn{ width:100%; justify-content:center }
}


/* ---- calculator ---------------------------------------------------------- */
.psra-tool__calcin{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px;
  margin:0 0 18px; padding:16px 18px;
  background:var(--psra-primary-soft); border-radius:var(--psra-radius,12px);
}
.psra-tool__calcfield{ display:grid; gap:4px; position:relative }
.psra-tool__calcfield span{ font-size:12.4px; font-weight:650; color:var(--psra-ink-2) }
.psra-tool__calcfield input{
  padding:10px 12px; font-family:inherit; font-size:15px; font-variant-numeric:tabular-nums;
  border:1px solid var(--psra-line); border-radius:9px; background:var(--psra-bg,#fff);
  color:var(--psra-ink);
}
.psra-tool__calcfield input:focus{ outline:none; border-color:var(--psra-primary) }
.psra-tool__calcfield em{
  position:absolute; right:12px; bottom:11px; font-style:normal;
  font-size:12.5px; color:var(--psra-faint); pointer-events:none;
}
.psra-tool__calcout{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px }
.psra-tool__calcres{
  padding:15px 17px; display:grid; gap:3px;
  background:var(--psra-bg,#fff);
  border:1px solid var(--psra-line);
  border-left:3px solid var(--psra-line);
  border-radius:var(--psra-radius,12px);
}
.psra-tool__calcres.is-strong{ border-left-color:var(--psra-accent); background:var(--psra-accent-soft) }
.psra-tool__calcres strong{
  font-size:22px; font-weight:800; color:var(--psra-primary);
  font-variant-numeric:tabular-nums; line-height:1.1;
}
.psra-tool__calcres span{ font-size:13px; font-weight:600; color:var(--psra-ink-2); line-height:1.35 }
.psra-tool__calcres small{ font-size:12.2px; color:var(--psra-muted); line-height:1.45 }
.psra-tool__calcnote{
  margin:16px 0 0; padding-top:14px; border-top:1px solid var(--psra-line);
  font-size:13px; line-height:1.55; color:var(--psra-muted);
}
@media (max-width:640px){
  .psra-tool__calcin{ padding:14px; grid-template-columns:1fr }
  .psra-tool__calcout{ grid-template-columns:1fr }
}


/* ---- diagnostic ---------------------------------------------------------- */
.psra-diag__progress{ margin:0 0 16px; font-size:13.5px; font-weight:650; color:var(--psra-muted) }
.psra-diag__score{
  display:flex; align-items:baseline; gap:14px; flex-wrap:wrap;
  padding:18px 20px; margin:0 0 16px;
  background:var(--psra-primary); border-radius:var(--psra-radius,12px);
}
.psra-diag__score strong{ font-size:30px; font-weight:800; color:#fff; font-variant-numeric:tabular-nums }
.psra-diag__score span{ font-size:14.5px; font-weight:650; color:rgba(255,255,255,.85) }

.psra-diag__chart{ display:grid; gap:8px; margin:0 0 20px }
.psra-diag__bar{ display:grid; grid-template-columns:minmax(120px,1.2fr) 3fr auto; gap:12px; align-items:center }
.psra-diag__bar > span:first-child{ font-size:13px; color:var(--psra-ink-2); line-height:1.3 }
.psra-diag__track{ height:9px; border-radius:999px; background:var(--psra-line-2); overflow:hidden }
.psra-diag__track i{ display:block; height:100%; border-radius:999px; background:var(--psra-primary) }
.psra-diag__track i.is-good{ background:var(--psra-success-text) }
.psra-diag__track i.is-mid{ background:var(--psra-accent) }
.psra-diag__track i.is-low{ background:var(--psra-danger,#b32d2e) }
.psra-diag__bar b{ font-size:12.5px; color:var(--psra-muted); font-variant-numeric:tabular-nums; white-space:nowrap }

.psra-diag__weak{ padding:18px 20px; background:var(--psra-accent-soft); border-radius:var(--psra-radius,12px) }
.psra-diag__weak h4{ margin:0 0 12px; font-size:15px; font-weight:750; color:var(--psra-ink) }
.psra-diag__weakrow{ display:flex; gap:12px; margin-bottom:12px }
.psra-diag__weakrow:last-child{ margin-bottom:0 }
.psra-diag__weakrow > span{
  flex:none; width:24px; height:24px; border-radius:7px;
  display:flex; align-items:center; justify-content:center;
  background:var(--psra-accent); color:var(--psra-on-accent);
  font-size:12.5px; font-weight:750;
}
.psra-diag__weakrow strong{ display:block; font-size:14.4px; color:var(--psra-ink) }
.psra-diag__weakrow p{ margin:3px 0 0; font-size:13.2px; line-height:1.5; color:var(--psra-ink-2) }

.psra-diag__areas{ display:grid; gap:14px; margin:22px 0 }
.psra-diag__area{ padding:16px 18px; border:1px solid var(--psra-line); border-radius:var(--psra-radius,12px) }
.psra-diag__area header{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid var(--psra-line-2);
}
.psra-diag__area h4{ margin:0; font-size:14.6px; font-weight:750; color:var(--psra-primary) }
.psra-diag__area header span{ font-size:12.5px; font-weight:700; font-variant-numeric:tabular-nums; color:var(--psra-muted) }
.psra-diag__area header span.is-good{ color:var(--psra-success-text) }
.psra-diag__area header span.is-mid{ color:var(--psra-accent) }
.psra-diag__area header span.is-low{ color:var(--psra-danger,#b32d2e) }
.psra-diag__q{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:7px 0; flex-wrap:wrap }
.psra-diag__q p{ margin:0; flex:1; min-width:200px; font-size:13.8px; line-height:1.45; color:var(--psra-ink-2) }
.psra-diag__scale{ display:flex; gap:5px }
.psra-diag__dot{ cursor:pointer }
.psra-diag__dot input{ position:absolute; opacity:0; width:0; height:0 }
.psra-diag__dot span{
  display:flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:8px;
  font-size:13px; font-weight:650; color:var(--psra-muted);
  border:1.5px solid var(--psra-line); transition:background-color .15s ease, color .15s ease;
}
.psra-diag__dot:hover span{ border-color:var(--psra-primary) }
.psra-diag__dot.is-on span{ background:var(--psra-primary); border-color:var(--psra-primary); color:#fff }
.psra-diag__dot input:focus-visible + span{ outline:2px solid var(--psra-primary); outline-offset:2px }

.psra-diag__actions{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:20px 0 0 }
.psra-diag__hint{ font-size:12.8px; color:var(--psra-muted) }
.psra-diag__history{ margin-top:24px; padding-top:20px; border-top:1px solid var(--psra-line) }
.psra-diag__history h4{ margin:0 0 12px; font-size:14.5px; font-weight:750; color:var(--psra-ink) }
.psra-diag__runs{ list-style:none; margin:0; padding:0; display:grid; gap:8px }
.psra-diag__runs li{
  display:flex; align-items:center; gap:14px; padding:11px 15px;
  background:var(--psra-bg-soft); border-radius:10px;
}
.psra-diag__runs span{ font-size:13px; color:var(--psra-muted) }
.psra-diag__runs strong{ margin-left:auto; font-size:14.5px; font-weight:750; color:var(--psra-primary); font-variant-numeric:tabular-nums }
.psra-diag__runs em{ font-style:normal; font-size:13px; font-weight:700; color:var(--psra-muted); min-width:44px; text-align:right }
.psra-diag__runs em.is-up{ color:var(--psra-success-text) }
.psra-diag__runs em.is-down{ color:var(--psra-danger,#b32d2e) }

/* ---- priority matrix ------------------------------------------------------ */
.psra-mtx__add{ display:flex; gap:9px; margin:0 0 10px }
.psra-mtx__add input{
  flex:1; padding:10px 14px; font-family:inherit; font-size:14.5px;
  border:1px solid var(--psra-line); border-radius:10px; background:var(--psra-bg,#fff); color:var(--psra-ink);
}
.psra-mtx__add input:focus{ outline:none; border-color:var(--psra-primary) }
.psra-mtx__hint{ margin:0 0 16px; font-size:13px; color:var(--psra-muted) }
.psra-mtx__list{ display:grid; gap:7px; margin:0 0 22px }
.psra-mtx__row{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:11px 15px; border:1px solid var(--psra-line); border-radius:10px;
}
.psra-mtx__task{ flex:1; min-width:160px; font-size:14.2px; color:var(--psra-ink) }
.psra-mtx__opts{ display:flex; gap:14px }
.psra-mtx__opts label{ display:flex; align-items:center; gap:6px; font-size:13px; color:var(--psra-ink-2); cursor:pointer }
.psra-mtx__opts input{ width:16px; height:16px; accent-color:var(--psra-primary) }
.psra-mtx__del{ border:0; background:none; cursor:pointer; font-size:19px; line-height:1; color:var(--psra-faint); padding:0 4px }
.psra-mtx__del:hover{ color:var(--psra-danger,#b32d2e) }

.psra-mtx__quads{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px }
.psra-mtx__quad{ padding:16px 18px; border:1px solid var(--psra-line); border-top:3px solid var(--psra-line); border-radius:var(--psra-radius,12px) }
.psra-mtx__quad.is-do{ border-top-color:var(--psra-danger,#b32d2e) }
.psra-mtx__quad.is-plan{ border-top-color:var(--psra-success-text) }
.psra-mtx__quad.is-delegate{ border-top-color:var(--psra-accent) }
.psra-mtx__quad.is-drop{ border-top-color:var(--psra-faint) }
.psra-mtx__quad h4{ margin:0 0 3px; font-size:14.4px; font-weight:750; color:var(--psra-ink) }
.psra-mtx__quadnote{ margin:0 0 10px; font-size:12.4px; line-height:1.45; color:var(--psra-muted) }
.psra-mtx__quad ul{ list-style:none; margin:0; padding:0; display:grid; gap:6px }
.psra-mtx__quad li{ font-size:13.4px; line-height:1.45; color:var(--psra-ink-2); padding-left:13px; position:relative }
.psra-mtx__quad li::before{ content:"—"; position:absolute; left:0; color:var(--psra-faint) }

@media (max-width:640px){
  .psra-diag__q{ align-items:flex-start }
  .psra-diag__bar{ grid-template-columns:1fr; gap:5px }
  .psra-diag__bar b{ text-align:right }
  .psra-diag__actions .psra-btn{ width:100%; justify-content:center }
}


/* ---- mission and validation ---------------------------------------------- */
.psra-course__mission{
  margin:clamp(30px,4vh,44px) 0 0; padding:24px 26px;
  background:var(--psra-accent-soft); border-radius:var(--psra-radius-lg,16px);
  border-left:3px solid var(--psra-accent);
}
.psra-course__mission header{ display:flex; align-items:center; gap:12px; margin-bottom:12px }
.psra-course__mission-ic{
  flex:none; width:38px; height:38px; border-radius:11px;
  display:flex; align-items:center; justify-content:center;
  background:var(--psra-accent); color:var(--psra-on-accent);
}
.psra-course__mission h2{ margin:0; font-size:18px; font-weight:780; color:var(--psra-ink) }
.psra-course__mission-txt{ font-size:14.8px; line-height:1.62; color:var(--psra-ink-2) }
.psra-course__mission-txt p{ margin:0 0 10px }
.psra-course__mission-txt p:last-child{ margin-bottom:0 }
.psra-course__mission-txt ol, .psra-course__mission-txt ul{ margin:0 0 10px; padding-left:20px }
.psra-course__mission-txt li{ margin-bottom:5px }

.psra-course__valid{
  margin:18px 0 0; padding:24px 26px;
  background:var(--psra-bg,#fff); border:1px solid var(--psra-line);
  border-radius:var(--psra-radius-lg,16px);
  transition:border-color .3s ease;
}
.psra-course__valid.is-complete{ border-color:var(--psra-success-text) }
.psra-course__valid header{ display:flex; align-items:center; gap:12px; margin-bottom:14px }
.psra-course__valid-ic{
  flex:none; width:38px; height:38px; border-radius:11px;
  display:flex; align-items:center; justify-content:center;
  background:var(--psra-primary-soft); color:var(--psra-primary);
  transition:background-color .3s ease, color .3s ease;
}
.psra-course__valid.is-complete .psra-course__valid-ic{
  background:var(--psra-success-text); color:#fff;
}
.psra-course__valid h2{ margin:0 0 2px; font-size:18px; font-weight:780; color:var(--psra-ink) }
.psra-course__valid header p{ margin:0; font-size:13.4px; color:var(--psra-muted) }
.psra-course__valid-pct{
  margin-left:auto; font-size:17px; font-weight:800; color:var(--psra-primary);
  font-variant-numeric:tabular-nums;
}
.psra-course__valid.is-complete .psra-course__valid-pct{ color:var(--psra-success-text) }
.psra-course__valid-bar{ margin-bottom:18px }
.psra-course__valid-list{ list-style:none; margin:0; padding:0; display:grid; gap:9px }
.psra-course__valid-list label{ display:flex; align-items:flex-start; gap:11px; cursor:pointer }
.psra-course__valid-list input{ flex:none; margin-top:3px; width:17px; height:17px; accent-color:var(--psra-primary) }
.psra-course__valid-list span{ font-size:14.4px; line-height:1.45; color:var(--psra-ink) }
.psra-course__valid-list input:checked + span{ color:var(--psra-muted); text-decoration:line-through }

@media (max-width:640px){
  .psra-course__mission, .psra-course__valid{ padding:20px }
}


/* ---- the facts bar and what you will build ------------------------------- */
.psra-course__facts li b{ font-weight:750; color:#fff }
.psra-course__built{
  margin:clamp(26px,4vh,38px) 0 0; padding:24px 26px;
  background:var(--psra-primary-soft); border-radius:var(--psra-radius-lg,16px);
}
.psra-course__built h2{
  margin:0 0 16px; font-size:18px; font-weight:780; color:var(--psra-primary);
}
.psra-course__built ul{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:11px;
}
.psra-course__built li{ display:flex; align-items:flex-start; gap:10px }
.psra-course__built li svg{ flex:none; margin-top:3px; color:var(--psra-success-text) }
.psra-course__built li span{ font-size:14.6px; line-height:1.5; color:var(--psra-ink) }

@media (max-width:640px){
  .psra-course__built{ padding:20px }
  .psra-course__built ul{ grid-template-columns:1fr }
}


.psra-course__valid-stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px;
  margin:0 0 18px;
}
.psra-course__valid-stats > div{
  padding:13px 15px; border-radius:var(--psra-radius,12px);
  background:var(--psra-bg-soft); display:grid; gap:2px;
}
.psra-course__valid-stats > div.is-pass{ background:var(--psra-primary-soft) }
.psra-course__valid-stats b{
  font-size:20px; font-weight:800; color:var(--psra-primary);
  font-variant-numeric:tabular-nums; line-height:1.1;
  display:flex; align-items:center;
}
.psra-course__valid-stats > div.is-pass b{ color:var(--psra-success-text) }
.psra-course__valid-stats span{ font-size:12.4px; color:var(--psra-muted); line-height:1.35 }


/* ---- cas pratique -------------------------------------------------------- */
.psra-case{
  margin:26px 0; padding:22px 24px;
  background:var(--psra-bg-soft); border-radius:var(--psra-radius-lg,16px);
  border-left:3px solid var(--psra-primary);
}
.psra-case header{ display:flex; align-items:center; gap:12px; margin-bottom:16px }
.psra-case__ic{
  flex:none; width:34px; height:34px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  background:var(--psra-primary); color:#fff;
}
.psra-case h3{ margin:0; font-size:16px; font-weight:780; color:var(--psra-ink) }
.psra-case__trade{ font-size:13px; color:var(--psra-muted) }
.psra-case__steps{ list-style:none; margin:0; padding:0; display:grid; gap:13px }
.psra-case__steps li{ display:flex; gap:12px }
.psra-case__n{
  flex:none; width:24px; height:24px; border-radius:7px; margin-top:1px;
  display:flex; align-items:center; justify-content:center;
  background:var(--psra-primary-soft); color:var(--psra-primary);
  font-size:12.5px; font-weight:750;
}
.psra-case__steps strong{ display:block; font-size:13px; font-weight:700; color:var(--psra-primary); margin-bottom:2px }
.psra-case__steps p{ margin:0; font-size:14.4px; line-height:1.55; color:var(--psra-ink-2) }
@media (max-width:640px){ .psra-case{ padding:18px } }


/* ---- tableau de bord mensuel --------------------------------------------- */
.psra-dash__head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
  flex-wrap:wrap; margin:0 0 18px;
}
.psra-dash__period{ display:grid; gap:4px }
.psra-dash__period > span{ font-size:12.4px; font-weight:650; color:var(--psra-ink-2) }
.psra-dash__period input{
  padding:9px 13px; font-family:inherit; font-size:14.5px; min-width:190px;
  border:1px solid var(--psra-line); border-radius:9px; background:var(--psra-bg,#fff); color:var(--psra-ink);
}
.psra-dash__period input:focus{ outline:none; border-color:var(--psra-primary) }
.psra-dash__count{ font-size:13px; font-weight:650; color:var(--psra-muted); font-variant-numeric:tabular-nums }

.psra-dash__sec{ margin:0 0 20px }
.psra-dash__sec h4{
  margin:0 0 10px; font-size:13px; font-weight:750; letter-spacing:.05em;
  text-transform:uppercase; color:var(--psra-primary);
}
.psra-dash__rows{ display:grid; gap:6px }
.psra-dash__hdr,
.psra-dash__row{
  display:grid; grid-template-columns:minmax(190px,2.4fr) 1.1fr .9fr 1.1fr auto;
  gap:10px; align-items:center;
}
.psra-dash__hdr{ padding:0 4px 4px }
.psra-dash__hdr span{
  font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--psra-faint);
}
.psra-dash__row{
  padding:8px 4px; border-bottom:1px solid var(--psra-line-2);
}
.psra-dash__lbl{ display:flex; align-items:flex-start; gap:10px }
.psra-dash__lbl > b{
  flex:none; width:22px; height:22px; margin-top:1px; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  background:var(--psra-bg-soft); color:var(--psra-muted);
  font-size:11.5px; font-weight:750;
}
.psra-dash__lbl strong{ display:block; font-size:14px; font-weight:600; color:var(--psra-ink); line-height:1.35 }
.psra-dash__lbl em{ display:block; font-style:normal; font-size:12.2px; color:var(--psra-muted); line-height:1.4 }

.psra-dash__in{ position:relative; display:block }
.psra-dash__in input{
  width:100%; padding:8px 11px; font-family:inherit; font-size:14px;
  font-variant-numeric:tabular-nums; text-align:right;
  border:1px solid var(--psra-line); border-radius:8px;
  background:var(--psra-bg,#fff); color:var(--psra-ink);
}
.psra-dash__in input:focus{ outline:none; border-color:var(--psra-primary) }
.psra-dash__in i{
  position:absolute; left:10px; top:50%; transform:translateY(-50%);
  font-style:normal; font-size:11.5px; color:var(--psra-faint); pointer-events:none;
}
.psra-dash__prev{
  font-size:12.6px; color:var(--psra-muted); text-align:right;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.psra-dash__prev.is-up{ color:var(--psra-success-text); font-weight:650 }
.psra-dash__prev.is-down{ color:var(--psra-danger,#b32d2e); font-weight:650 }

.psra-dash__lights{ display:flex; gap:5px }
.psra-dash__light{
  width:18px; height:18px; border-radius:50%; cursor:pointer; padding:0;
  border:1.5px solid var(--psra-line); background:transparent;
  transition:background-color .15s ease, border-color .15s ease, transform .15s ease;
}
.psra-dash__light:hover{ transform:scale(1.15) }
.psra-dash__light.is-vert.is-on{ background:var(--psra-success-text); border-color:var(--psra-success-text) }
.psra-dash__light.is-orange.is-on{ background:var(--psra-accent); border-color:var(--psra-accent) }
.psra-dash__light.is-rouge.is-on{ background:var(--psra-danger,#b32d2e); border-color:var(--psra-danger,#b32d2e) }

.psra-dash__alerts{ display:grid; gap:10px; margin:18px 0 0 }
.psra-dash__alert{ padding:14px 16px; border-radius:var(--psra-radius,12px); border-left:3px solid }
.psra-dash__alert.is-rouge{ background:#fdf0f0; border-left-color:var(--psra-danger,#b32d2e) }
.psra-dash__alert.is-orange{ background:var(--psra-accent-soft); border-left-color:var(--psra-accent) }
.psra-dash__alert strong{ display:block; font-size:13.5px; font-weight:750; color:var(--psra-ink); margin-bottom:5px }
.psra-dash__alert ul{ list-style:none; margin:0; padding:0; display:grid; gap:3px }
.psra-dash__alert li{ font-size:13.4px; color:var(--psra-ink-2); padding-left:12px; position:relative }
.psra-dash__alert li::before{ content:"—"; position:absolute; left:0; color:var(--psra-faint) }

.psra-dash__actions{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:20px 0 0 }
.psra-dash__hint{ font-size:12.6px; color:var(--psra-muted) }
.psra-dash__history{ margin-top:22px; padding-top:18px; border-top:1px solid var(--psra-line) }
.psra-dash__history h4{ margin:0 0 10px; font-size:14px; font-weight:750; color:var(--psra-ink) }
.psra-dash__periods{ list-style:none; margin:0; padding:0; display:grid; gap:7px }
.psra-dash__periods li{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 14px; background:var(--psra-bg-soft); border-radius:9px;
}
.psra-dash__periods span{ font-size:13.4px; color:var(--psra-ink) }
.psra-dash__periods em{ font-style:normal; font-size:12.4px; color:var(--psra-muted) }
.psra-dash__periods em.is-red{ color:var(--psra-danger,#b32d2e); font-weight:700 }

@media (max-width:820px){
  .psra-dash__hdr{ display:none }
  .psra-dash__row{
    grid-template-columns:1fr 1fr; gap:8px 10px;
    padding:13px 0; align-items:center;
  }
  .psra-dash__lbl{ grid-column:1/-1 }
  .psra-dash__prev{ text-align:left }
  .psra-dash__lights{ justify-content:flex-end }
}


/* The browser's own [hidden] rule is display:none, which any explicit display
   overrides. Declared once here so hiding an element actually hides it. */
.psra-acad [hidden]{ display:none !important }

.psra-acad__chip{ text-decoration:none }
.psra-acad__chip[aria-current="true"]{ text-decoration:none }


.psra-diag__lead{
  margin:14px 0 20px; padding:14px 18px;
  background:var(--psra-bg-soft); border-left:3px solid var(--psra-ink);
  border-radius:0 var(--psra-radius-sm,10px) var(--psra-radius-sm,10px) 0;
  font-size:15px; line-height:1.55; color:var(--psra-ink);
}


.psra-mtx__note{
  flex:1; min-width:150px; padding:6px 10px;
  font-family:inherit; font-size:13px; color:var(--psra-ink);
  border:1px solid var(--psra-line); border-radius:8px; background:var(--psra-bg,#fff);
}
.psra-mtx__note:focus{ outline:none; border-color:var(--psra-ink) }
.psra-mtx__note::placeholder{ color:var(--psra-faint) }
.psra-mtx__qnote{ font-size:12.4px; color:var(--psra-muted); display:block; margin-top:2px }


.psra-diag__todo{
  margin:22px 0 0; padding:20px 22px;
  border:1px solid var(--psra-ink); border-radius:var(--psra-radius,14px);
}
.psra-diag__todo h4{ margin:0 0 12px; font-size:15px; font-weight:700; color:var(--psra-ink) }
.psra-diag__todo ol{ margin:0; padding-left:20px; display:grid; gap:11px }
.psra-diag__todo li{ font-size:14.4px; line-height:1.5; color:var(--psra-ink-2) }
.psra-diag__todo li strong{ display:block; color:var(--psra-ink); font-weight:650 }
.psra-diag__todo li span{ display:block; margin-top:3px; font-size:13.4px; color:var(--psra-muted) }

.psra-tool__tplbody{ min-height:64px; outline:0; cursor:text; border-radius:var(--psra-radius-sm,10px); transition:box-shadow .16s ease, background .16s ease }
.psra-tool__tplbody:focus{ background:var(--psra-bg); box-shadow:0 0 0 2px var(--psra-ink) inset }
.psra-tool__tplbody.is-edited{ background:var(--psra-bg) }
.psra-tool__tplreset{ border:0; background:none; padding:0 0 0 10px; cursor:pointer; font-size:12.2px; color:var(--psra-muted); text-decoration:underline; text-underline-offset:3px }
.psra-tool__tplreset:hover{ color:var(--psra-ink) }

.psra-mycerts{margin:0 0 30px;padding:22px;background:var(--psra-bg-soft,#f8f8f8);border:1px solid var(--psra-line,#e7e7e7);border-radius:16px}
.psra-mycerts__h{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:800;color:var(--psra-ink,#161616);margin:0 0 14px}
.psra-mycerts__h svg{color:var(--psra-primary)}
.psra-mycerts__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.psra-mycert{display:flex;align-items:center;gap:12px;background:var(--psra-bg,#fff);border:1px solid var(--psra-line,#e7e7e7);border-left:3px solid var(--psra-primary);border-radius:12px;padding:14px 15px;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}
.psra-mycert:hover{transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(0,0,0,.2)}
.psra-mycert__ic{flex:none;width:38px;height:38px;border-radius:10px;background:var(--psra-primary-soft);color:var(--psra-primary-dd);display:flex;align-items:center;justify-content:center}
.psra-mycert__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.psra-mycert__t{font-size:14.5px;color:var(--psra-ink,#161616);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.psra-mycert__d{font-size:12.5px;color:var(--psra-muted,#6e6e6e)}
.psra-mycert__go{flex:none;color:var(--psra-faint,#9e9e9e)}

.psra-certwrap{max-width:900px;margin:0 auto;padding:10px 0 40px}
.psra-certbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:18px}
.psra-cert{background:var(--psra-bg,#fff)}
.psra-cert__frame{position:relative;border:2px solid var(--psra-primary);border-radius:8px;padding:52px 48px 40px;text-align:center;background:
  var(--psra-primary-soft);
  box-shadow:0 20px 60px -30px rgba(0,0,0,.35)}
.psra-cert__frame::before{content:"";position:absolute;inset:8px;border:1px solid var(--psra-primary-100);border-radius:5px;pointer-events:none}
.psra-cert__brand{font-size:13px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--psra-primary-dd);margin-bottom:26px}
.psra-cert__kicker{font-family:Georgia,'Times New Roman',serif;font-size:26px;font-weight:700;color:var(--psra-ink,#161616);letter-spacing:.02em;margin-bottom:22px}
.psra-cert__intro{color:#5d5d5d;font-size:15px;margin:6px 0}
.psra-cert__name{font-family:Georgia,'Times New Roman',serif;font-size:34px;font-weight:800;color:var(--psra-ink,#161616);margin:6px 0 4px;letter-spacing:.01em}
.psra-cert__course{font-size:22px;font-weight:800;color:var(--psra-primary-dd);margin:8px auto 6px;max-width:34ch;line-height:1.25}
.psra-cert__score{font-size:14px;color:var(--psra-ink-2,#3a3a3a);margin:4px 0 0}
.psra-cert__meta{display:flex;justify-content:center;gap:44px;margin:28px 0 30px;flex-wrap:wrap}
.psra-cert__mi{display:flex;flex-direction:column;gap:3px}
.psra-cert__mi span{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--psra-faint,#9e9e9e)}
.psra-cert__mi strong{font-size:15px;color:var(--psra-ink,#161616)}
.psra-cert__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:30px}
.psra-cert__sig{text-align:left;flex:1;max-width:260px}
.psra-cert__sigline{display:block;border-top:1.5px solid #333;margin-bottom:6px}
.psra-cert__siglbl{font-size:12px;color:#5d5d5d}
.psra-cert__seal{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--psra-primary-dd);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.psra-cert__seal svg{width:34px;height:34px}
.psra-cert__verify{margin:26px 0 0;font-size:11.5px;color:var(--psra-muted)}
.psra-cert-missing{background:#fdeeee;color:#a12626;border-radius:12px;padding:16px;text-align:center}
@media(max-width:600px){
  .psra-cert__frame{padding:34px 20px 28px}
  .psra-cert__name{font-size:26px}
  .psra-cert__course{font-size:18px}
  .psra-cert__meta{gap:24px}
  .psra-cert__foot{flex-direction:column;align-items:center;gap:18px}
  .psra-cert__sig{text-align:center}
}
@media print{
  body *{visibility:hidden!important}
  .psra-cert, .psra-cert *{visibility:visible!important}
  .psra-cert{position:absolute;left:0;top:0;width:100%}
  .psra-certbar{display:none!important}
  .psra-cert__frame{box-shadow:none;border-color:var(--psra-primary)}
  @page{margin:1.2cm}
}

.psra-cert__legal{
  margin:18px 0 0; padding-top:14px; border-top:1px solid var(--psra-line);
  font-size:10.5px; line-height:1.5; color:var(--psra-faint); text-align:center;
}
@media print{ .psra-cert__legal{ color:#777 } }

