body{background:var(--bg);color:var(--fg)}.esp-header{max-width:56rem;margin:0 auto;padding:1.25rem 1.25rem .75rem;display:flex;justify-content:space-between;align-items:center}.esp-back{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);text-decoration:none}.esp-back:hover{color:var(--accent)}.esp-main{max-width:56rem;margin:0 auto;padding:1rem 1.25rem 4rem}.esp-hero{padding:2rem 0 2.5rem;border-bottom:1px solid var(--border)}.esp-hero h1{font-size:2.5rem;font-weight:600;letter-spacing:-.02em;margin:0}.esp-sub{color:var(--muted);margin-top:.6rem;max-width:42rem;line-height:1.5}.esp-sub strong{color:var(--fg);font-weight:600}.esp-meta{margin-top:1.5rem;font-size:.85rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.esp-meta-link{color:var(--accent);text-decoration:none}.esp-meta-link:hover{text-decoration:underline}.esp-resume{font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;background:var(--accent);color:var(--bg);border:none;border-radius:7px;padding:.5rem .9rem;min-height:40px}.esp-overall{margin-top:1rem;display:flex;align-items:center;gap:.6rem;font-size:.78rem;color:var(--muted)}.esp-overall-bar{width:200px;max-width:50vw;height:6px;border-radius:999px;background:var(--surface);border:1px solid var(--border);overflow:hidden}.esp-overall-fill{display:block;height:100%;width:0%;background:var(--accent);transition:width .22s ease}.esp-overall-pct{font-variant-numeric:tabular-nums}.esp-section-h{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);margin:2.5rem 0 .5rem}.esp-section-applied{color:var(--accent)}.esp-section-lede{color:var(--muted);max-width:42rem;line-height:1.5;margin:0 0 1rem;font-size:.95rem}.esp-applied{margin-top:1rem;border-top:1px solid var(--border);padding-top:.5rem}.esp-phase{margin-top:2rem}.esp-phase-head{display:flex;align-items:baseline;gap:.75rem;margin-bottom:1rem}.esp-module-head{flex-wrap:wrap;justify-content:space-between}.esp-module-headline{display:flex;align-items:baseline;gap:.75rem}.esp-module-meta{display:flex;align-items:center;gap:.9rem}.esp-phase-num{font-size:.65rem;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.esp-phase-title{font-size:1.25rem;font-weight:600;margin:0}.esp-module-prog{display:flex;align-items:center;gap:.45rem;font-size:.72rem;color:var(--muted)}.esp-module-bar{width:70px;height:5px;border-radius:999px;background:var(--surface);border:1px solid var(--border);overflow:hidden}.esp-module-fill{display:block;height:100%;width:0%;background:var(--accent);transition:width .22s ease}.esp-module-pct{font-variant-numeric:tabular-nums}.esp-module-assess{font-size:.72rem;color:var(--accent);text-decoration:none;white-space:nowrap}.esp-module-assess:hover{text-decoration:underline}.esp-lessons{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}@media(min-width:640px){.esp-lessons{grid-template-columns:1fr 1fr}}.esp-lesson-link{position:relative;display:flex;gap:.85rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:8px;text-decoration:none;color:var(--fg);transition:border-color .1s ease,background .1s ease;min-height:80px}.esp-lesson-link:hover{border-color:var(--accent);background:var(--surface-soft, var(--surface))}.esp-lesson-icon{font-size:1.6rem;line-height:1.2}.esp-lesson-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.esp-lesson-num{font-size:.65rem;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.06em}.esp-lesson-title{font-weight:600;font-size:.95rem}.esp-lesson-sub{font-size:.78rem;color:var(--muted);line-height:1.35}.esp-lesson-check{position:absolute;top:.6rem;right:.7rem;width:1.1rem;height:1.1rem;border-radius:50%;border:1.5px solid var(--border)}.esp-lesson-check[data-state=done]{border-color:var(--color-success, #22c55e);background:var(--color-success, #22c55e)}.esp-lesson-check[data-state=done]:after{content:"✓";color:var(--bg);font-size:.7rem;display:flex;align-items:center;justify-content:center;height:100%;font-weight:700}.esp-footer{max-width:56rem;margin:0 auto;padding:2rem 1.25rem 3rem;border-top:1px solid var(--border);color:var(--muted);font-size:.78rem}
