/* Parent pages: same look as the hub, tuned for reading tables. */
.p-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}
.p-top a,.p-link{color:var(--hub-accent)}
.p-btn{font:inherit;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;background:transparent;color:var(--hub-fg);border:1px solid var(--hub-line);padding:8px 12px;cursor:pointer}
.p-btn:hover{border-color:var(--hub-muted)}
.p-btn.main{background:var(--hub-accent);color:var(--hub-ink);border-color:var(--hub-accent);font-weight:700}
.p-btn.danger{color:var(--hub-bad);border-color:transparent;padding:4px 8px}
.p-btn.danger:hover{border-color:var(--hub-bad)}
.p-card{background:var(--hub-panel);border:1px solid var(--hub-line);padding:16px 18px;margin-bottom:18px}
.p-card h2{margin:0 0 12px;font-size:1.15rem}
.p-card h3{margin:18px 0 8px;font-size:.8rem;font-family:'JetBrains Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--hub-muted);font-weight:500}
.p-scroll{max-width:100%;overflow-x:auto}
.p-tbl{border-collapse:collapse;width:100%;font-size:.92rem}
.p-tbl th{text-align:left;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--hub-muted);font-weight:500;padding:6px 10px;border-bottom:1px solid var(--hub-line);white-space:nowrap}
.p-tbl td{padding:7px 10px;border-bottom:1px solid var(--hub-line);vertical-align:top}
.p-tbl td.num{font-family:'JetBrains Mono',ui-monospace,monospace;white-space:nowrap}
.p-tbl .mono{font-family:'JetBrains Mono',ui-monospace,monospace}
.p-ok{color:var(--hub-good);font-weight:700}
.p-bad{color:var(--hub-bad);font-weight:700}
.p-dim{color:var(--hub-muted)}
.p-medal{display:inline-block;min-width:62px;text-align:center;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;color:var(--hub-ink)}
.p-medal.gold{background:var(--hub-gold)} .p-medal.silver{background:var(--hub-silver)} .p-medal.bronze{background:var(--hub-bronze)}
.p-stats{display:flex;flex-wrap:wrap;gap:10px 28px;margin-bottom:6px}
.p-stat span{display:block;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--hub-muted)}
.p-stat b{font-size:1.3rem}
.p-bar{display:inline-block;width:90px;height:8px;background:var(--hub-line);vertical-align:middle;margin-right:8px}
.p-bar i{display:block;height:100%;background:var(--hub-good)}
.p-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.p-form input{font:inherit;background:var(--hub-bg);color:var(--hub-fg);border:2px solid var(--hub-line);padding:8px 10px;min-width:0;flex:0 1 260px}
.p-form input:focus{border-color:var(--hub-accent);outline:none}
.p-err{color:var(--hub-bad);margin-top:8px}
.p-note{color:var(--hub-muted);font-size:.88rem;margin:6px 0 0}
.p-login{max-width:420px}
.p-login label{display:block;font-size:.85rem;color:var(--hub-muted);margin:10px 0 4px}
.p-login input{width:100%;font:inherit;background:var(--hub-bg);color:var(--hub-fg);border:2px solid var(--hub-line);padding:10px 12px}
.p-login .p-btn{margin-top:14px}
.p-miss{font-size:.85rem;color:var(--hub-muted)}
.p-miss .mono{color:var(--hub-bad)}

/* Courses */
.p-title{font-family:'Saira Stencil One',Impact,sans-serif;font-weight:400;color:var(--hub-accent);margin:0 0 6px;font-size:clamp(1.7rem,5vw,2.2rem);line-height:1.1}
.c-grades{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.c-grades a{text-decoration:none}
.c-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:16px}
.c-cards h3{margin:0;font-size:1.1rem}
.c-cards p{margin:0;font-size:.85rem}
.c-meta{margin:0 0 4px}
.c-print td{padding:10px}
.c-unit{width:28%;min-width:150px}
.c-files{display:flex;flex-wrap:wrap;gap:6px}
.c-file{font-size:.85rem;color:var(--hub-fg);text-decoration:none;border:1px solid var(--hub-line);padding:5px 9px;background:var(--hub-bg);white-space:nowrap}
.c-file:hover{border-color:var(--hub-accent)}
.c-file.test{border-color:var(--hub-muted);font-weight:700}
.c-file.bundle{color:var(--hub-ink);background:var(--hub-accent);border-color:var(--hub-accent);font-weight:700}
.c-file.key{color:var(--hub-bad);border-color:var(--hub-bad)}
.c-file.skills{border-style:dashed}
.c-led summary{cursor:pointer;color:var(--hub-accent);margin-bottom:8px}
.c-layout{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:22px;align-items:start}
.c-toc{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto;background:var(--hub-panel);border:1px solid var(--hub-line);padding:10px 12px;font-size:.85rem}
.c-toc summary{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--hub-muted);cursor:pointer}
.c-toc ul{list-style:none;margin:8px 0 0;padding:0}
.c-toc li{margin:3px 0}
.c-toc li.l3{padding-left:12px;font-size:.8rem}
.c-toc a{color:var(--hub-fg);text-decoration:none}
.c-toc a:hover{color:var(--hub-accent)}
@media (max-width:760px){ .c-layout{grid-template-columns:minmax(0,1fr)} .c-toc{position:static;max-height:none} .c-toc details:not([open]) ul{display:none} }
.course-doc{background:var(--hub-panel);border:1px solid var(--hub-line);padding:8px 20px 20px;line-height:1.55;overflow-wrap:anywhere}
.course-doc h1{display:none}
.course-doc h2{color:var(--hub-accent);font-size:1.35rem;margin:28px 0 8px;padding-top:10px;border-top:1px solid var(--hub-line);scroll-margin-top:12px}
.course-doc h3{font-size:1.08rem;margin:20px 0 6px;scroll-margin-top:12px}
.course-doc table{border-collapse:collapse;margin:8px 0 14px;display:block;max-width:100%;overflow-x:auto}
.course-doc th,.course-doc td{border:1px solid var(--hub-line);padding:5px 9px;text-align:left;vertical-align:top}
.course-doc th{background:var(--hub-panel2)}
.course-doc blockquote{margin:8px 0 14px;padding:8px 14px;border-left:3px solid var(--hub-accent);background:var(--hub-bg)}
.course-doc pre{background:var(--hub-bg);border:1px solid var(--hub-line);padding:10px;overflow-x:auto}
.course-doc code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.88em}
.course-doc a{color:var(--hub-accent)}
.course-doc hr{border:0;border-top:1px dashed var(--hub-line);margin:18px 0}
.course-doc .pdf-row{margin:-2px 0 10px}
.course-doc .pdf-btn{display:inline-block;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--hub-ink);background:var(--hub-accent);padding:3px 8px;margin-left:6px;vertical-align:middle}
.course-doc .pdf-btn[href*="answer-key"]{background:transparent;color:var(--hub-bad);border:1px solid var(--hub-bad)}
@media (max-width:600px){ .c-print tr,.c-print td{display:block} .c-print td{border-bottom:0;padding:6px 4px} .c-print tr{border-bottom:1px solid var(--hub-line);padding:6px 0} .c-unit{width:auto} .c-file{white-space:normal} }
.c-intro summary{cursor:pointer;color:var(--hub-accent)}
.c-intro .course-doc{border:0;padding:4px 0 0;background:transparent}
.course-doc th,.course-doc td{overflow-wrap:normal}
.p-select{font:inherit;background:var(--hub-bg);color:var(--hub-fg);border:2px solid var(--hub-line);padding:8px 10px}
.course-doc ul.checklist{list-style:none;padding-left:0}
.course-doc ul.checklist li{position:relative;padding-left:28px;margin:4px 0}
.course-doc ul.checklist li::before{content:'';position:absolute;left:2px;top:.25em;width:14px;height:14px;border:2px solid var(--hub-muted,#888);border-radius:3px}
.course-doc ul.checklist li p{margin:0}
