/* I Will Pass NCLEX — Phase 5: academies and learning paths. --ac is the colour of the academy. */
.academy-card { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; color: inherit; text-decoration: none; }
.academy-card:hover { border-color: var(--ac, var(--teal)); box-shadow: 0 4px 14px rgba(20, 33, 61, 0.08); color: inherit; }
.academy-card:focus-visible { outline: 3px solid var(--marker); outline-offset: 2px; }
.academy-band { position: relative; display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.15rem; background: var(--ac, var(--teal)); color: #fff; font-size: 2rem; line-height: 1; }
.academy-state { font-size: 0.8rem; font-weight: 700; background: rgba(255, 255, 255, 0.92); color: var(--ink); border-radius: 99px; padding: 0.3rem 0.65rem; }
.academy-state.is-done { color: var(--ok); }
.academy-body { display: flex; flex-direction: column; flex: 1; padding: 1rem 1.15rem 1.15rem; }
.academy-title { font-family: var(--font-display); font-weight: 700; font-size: 1.2rem; line-height: 1.25; margin-bottom: 0.2rem; }
.academy-card .progress-bar, .academy-row .progress-bar { background: var(--ac, var(--teal)); }

.academy-hero { display: flex; gap: 1.1rem; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-left: 8px solid var(--ac, var(--teal)); border-radius: 14px; padding: 1.25rem 1.35rem; }
.academy-hero h1 { font-size: 1.85rem; }
.academy-hero .lead { font-size: 1.1rem; }
.academy-hero-ico { flex: none; width: 3.6rem; height: 3.6rem; border-radius: 14px; background: var(--ac, var(--teal)); color: #fff; display: grid; place-items: center; font-size: 1.8rem; }
@media (max-width: 575.98px) { .academy-hero { flex-direction: column; } .academy-hero h1 { font-size: 1.5rem; } }

.ac-path { list-style: none; padding: 0; margin: 0 0 1rem; position: relative; }
.ac-step { position: relative; display: flex; gap: 0.9rem; padding-bottom: 0.85rem; }
.ac-step::before { content: ""; position: absolute; left: 1.05rem; top: 2.3rem; bottom: 0; width: 2px; background: var(--line); }
.ac-step:last-child::before { display: none; }
.ac-step.is-done::before { background: var(--ok); }
.ac-num { position: relative; z-index: 1; flex: none; width: 2.2rem; height: 2.2rem; border-radius: 50%; border: 2px solid #A9BBC6; background: #fff; display: grid; place-items: center; font-weight: 700; color: var(--muted); }
.ac-step.is-done .ac-num { background: var(--ok); border-color: var(--ok); color: #fff; }
.ac-step.is-now .ac-num { background: var(--ink); border-color: var(--ink); color: #fff; box-shadow: 0 0 0 4px var(--marker-soft); }
.ac-step.is-locked .ac-num { background: var(--paper); }
.ac-card { flex: 1; min-width: 0; display: block; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 0.85rem 1rem; color: inherit; text-decoration: none; }
.ac-card:hover { border-color: var(--teal); color: inherit; }
.ac-step.is-now .ac-card { border-color: var(--ink); }
.ac-step.is-locked .ac-card { background: var(--paper); }
.progress-thin { height: 6px; }

.academy-badge { width: 4.5rem; height: 4.5rem; margin: 0.25rem auto 0; border-radius: 50%; display: grid; place-items: center; font-size: 2.1rem; background: var(--paper); color: #A9BBC6; border: 2px dashed #A9BBC6; }
.academy-badge.is-earned { background: var(--marker-soft); color: #B58900; border: 2px solid var(--marker); }
.tool-link { display: flex; align-items: center; gap: 0.6rem; padding: 0.45rem 0.6rem; border-radius: 8px; color: var(--ink); text-decoration: none; font-weight: 600; }
.tool-link:hover { background: var(--paper); color: var(--ink); }
.tool-link .bi { color: var(--teal); }

.academy-row { display: flex; align-items: center; gap: 0.75rem; color: inherit; text-decoration: none; padding: 0.35rem 0.25rem; border-radius: 8px; }
.academy-row:hover { background: var(--paper); color: inherit; }
.academy-row .progress { height: 6px; display: flex; }
.academy-ico { flex: none; width: 2.3rem; height: 2.3rem; border-radius: 10px; background: var(--ac, var(--teal)); color: #fff; display: grid; place-items: center; font-size: 1.15rem; }
.academy-chip { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.35rem 0.75rem; border-radius: 99px; border: 1px solid var(--line); border-left: 4px solid var(--ac, var(--teal)); background: #fff; color: var(--ink); font-size: 0.875rem; font-weight: 600; text-decoration: none; }
.academy-chip:hover { border-color: var(--ac, var(--teal)); color: var(--ink); }
.academy-chip .bi { color: var(--ac, var(--teal)); }

.module-meds { padding: 0.6rem 1.1rem 0.8rem; border-bottom: 1px solid #E7EEF2; background: #FBFCFD; }
.med-chip { display: inline-block; padding: 0.25rem 0.6rem; border-radius: 99px; background: #F1ECFB; color: #4B2C91; font-size: 0.85rem; font-weight: 600; text-decoration: none; }
.med-chip:hover { background: #E3D9F7; color: #3A1F75; }
