:root{--bg:#f7f7f5;--dot:#e2e2df;--amber:#f5c451;--ink:#111;--card-existing-bg:#fff;--card-existing-border:#d8d8d5;--card-new-bg:#fff;--card-new-border:#999}*{box-sizing:border-box}body{background-color:var(--bg);background-image:radial-gradient(var(--dot) 1px, transparent 1px);color:var(--ink);background-size:16px 16px;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{max-width:1400px;margin:0 auto;padding:24px 16px 64px}.app__header h1{margin-bottom:4px;font-size:28px}.app__header p{color:#555;max-width:640px}.course-map{margin-top:40px}.course-map__header{align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.course-map__header h2{margin:0}.course-map__repo{color:#888;font-size:12px}.course-map__columns{gap:16px;padding-bottom:8px;display:flex;overflow-x:auto}.course-column{flex:1 0 260px;min-width:260px}@media (width<=760px){.course-map__columns{flex-direction:column;overflow-x:visible}.course-column{flex:auto;min-width:0}}.week-label{margin-bottom:4px;font-size:14px;font-weight:700}.column-header{background:var(--amber);border-radius:8px;margin-bottom:12px;padding:12px;font-weight:700}.sessions-row{flex-direction:column;gap:12px;display:flex}.session-block{flex-direction:column;gap:6px;display:flex}.session-card{background:var(--card-existing-bg);border:1px solid var(--card-existing-border);border-radius:6px;padding:10px 12px}.session-card--new{border:1px dashed var(--card-new-border)}.session-card__day{text-transform:uppercase;color:#888;font-size:11px}.session-card__title{margin:2px 0;font-size:15px}.session-card__outcome{color:#666;margin:0;font-size:12px}.topic-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.topic-card{background:var(--card-existing-bg);border:1px solid var(--card-existing-border);border-radius:6px;padding:8px;font-size:12px}.topic-card--new{border:1px dashed var(--card-new-border);background:#fafafa}.candidate-modules{border-top:2px dashed var(--card-new-border);margin-top:56px;padding-top:24px}.candidate-modules__note{color:#666;max-width:640px;font-size:13px}.candidate-modules__list{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.candidate-modules__item{border:1px dashed var(--card-new-border);background:#fafafa;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:8px;padding:10px 12px;display:flex}.candidate-modules__course{font-size:12px;font-weight:700}.candidate-modules__title{font-size:13px}.candidate-modules__note-text{color:#888;font-size:12px}
