
:root{color-scheme:light}
body{min-width:320px}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.self-paced-entry .hero__stats{margin-top:1.25rem}
.self-paced-entry .hero__stat{min-width:7rem}
.self-paced-entry .task-card{display:flex;flex-direction:column;min-height:100%}
.self-paced-entry .task-card .code-actions{margin-top:auto;padding-top:1rem}
.topic-shell{max-width:980px}
.topic-shell .page-title{overflow-wrap:anywhere;word-break:break-word}
.topic-meta{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0;color:var(--muted);font-size:.78rem}
.topic-meta span{display:inline-flex;align-items:center;padding:.35rem .55rem;border:1px solid var(--line);border-radius:7px;background:var(--card);font-weight:800}
.topic-meta .topic-meta__mode{border-color:#b8cdbd;background:var(--soft);color:var(--brand-dark)}
.phase-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 1.5rem}
.phase-nav a{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.75rem;padding:.55rem .85rem;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--brand-dark);cursor:pointer;font:inherit;text-decoration:none}
.phase-nav a:hover{background:var(--soft);color:var(--brand-dark)}
.phase-nav a[aria-current=page]{border-color:var(--brand);background:var(--brand);color:#fff}
.topic-boundary{border-inline-start:5px solid var(--accent);background:#fffaf5}
.practice-steps{display:grid;gap:1rem;margin:0;padding:0;list-style:none;counter-reset:practice-step}
.practice-step{position:relative;padding:1.1rem 1.2rem 1.1rem 4rem;border:1px solid var(--line);border-radius:18px;background:var(--card);counter-increment:practice-step}
.practice-step::before{position:absolute;left:1.1rem;top:1.1rem;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--brand);color:#fff;font-weight:850;content:counter(practice-step)}
.practice-step h3{margin-bottom:.45rem}
.practice-step p:last-child{margin-bottom:0}
.practice-step code,.phase-panel code,.topic-boundary code{overflow-wrap:anywhere}
.code-block pre,.code-block code{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.before-after{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.before-after>div{min-width:0;padding:1rem;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.before-after h3{font-size:.9rem}
.before-after pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.demo-board{padding:1.25rem;border:1px solid #c8e4eb;border-radius:16px;background:var(--soft)}
.demo-board__top{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.demo-board__top span{color:var(--muted);font-size:.78rem}
.demo-canvas{min-width:0;padding:1rem;border:1px solid #c8e4eb;border-radius:14px;background:rgba(255,255,255,.8);overflow:auto}
.demo-canvas>*{max-width:100%}
.evidence-list{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}
.evidence-list label{display:flex;align-items:flex-start;gap:.55rem;padding:.7rem;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.evidence-list input{flex:0 0 auto;margin-top:.25rem;accent-color:var(--brand)}
.phase-panel{border:2px solid var(--brand);background:var(--soft)}
.phase-panel--solution{border-color:var(--accent);background:#fff6ed}
.phase-files{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.7rem;margin:0;padding:0;list-style:none}
.phase-files li{min-width:0;padding:.7rem;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.phase-files code{display:block;overflow-wrap:anywhere}
.route-note{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.route-note p{margin:0;color:var(--muted);font-size:.82rem}
.code-actions .copy-button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;padding:.55rem .85rem;border:1px solid var(--brand);border-radius:10px;background:var(--brand);color:#fff;cursor:pointer;font:inherit}
.code-actions .copy-button:hover{background:var(--brand-dark);color:#fff}
.copy-button[data-copied=true]{border-color:var(--brand);background:var(--soft);color:var(--brand-dark)}
.manual-check{margin-top:1rem}
.manual-check summary{cursor:pointer;font-weight:800}
.manual-check p{margin:.7rem 0 0;color:var(--muted);font-size:.82rem}
@media (max-width:700px){.before-after{grid-template-columns:1fr}.demo-board__top{display:block}.demo-board__top span{display:block;margin-top:.35rem}}
