:root { --fg:#1d1d1f; --muted:#6b6b70; --bg:#ffffff; --accent:#a6192e; --side:#f4f4f6; --border:#e3e3e6; }
* { box-sizing: border-box; }
body { margin:0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color:var(--fg); background:var(--bg); line-height:1.55; }
.site-header { display:flex; align-items:baseline; gap:1rem; padding:0.9rem 1.5rem; background:var(--fg); color:#fff; }
.brand { color:#fff; text-decoration:none; font-weight:600; font-size:1.05rem; }
.course-code { color:#bcbcc1; font-size:0.85rem; }
.layout { display:grid; grid-template-columns: 280px 1fr; min-height: calc(100vh - 110px); }
.sidebar { background:var(--side); padding:1.25rem 1rem; border-right:1px solid var(--border); font-size:0.92rem; overflow-y:auto; }
.sidebar h2 { font-size:0.85rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--muted); margin: 1.25rem 0 0.4rem; }
.sidebar h2:first-child { margin-top:0; }
.sidebar ul { list-style:none; padding-left:0; margin:0; }
.sidebar li { margin: 0.15rem 0; }
.sidebar li.indent-1 { padding-left: 1.1rem; }
.sidebar li.indent-2 { padding-left: 2.2rem; }
.sidebar a { color: var(--fg); text-decoration:none; }
.sidebar a:hover { text-decoration: underline; }
.sidebar .badge { display:inline-block; font-size:0.7rem; padding:0.05rem 0.4rem; margin-left:0.4rem; border-radius:3px; background:#dcdcdf; color:#3b3b40; }
.sidebar .badge.stub { background:#fdebe6; color:#a6192e; }
.content { padding: 1.75rem 2.25rem; max-width: 980px; }
.page-title { font-size: 1.7rem; margin: 0 0 1rem; }
.content img { max-width:100%; height:auto; }
.content table { border-collapse: collapse; max-width:100%; }
.content table, .content th, .content td { border: 1px solid var(--border); }
.content th, .content td { padding: 0.4rem 0.6rem; }
.content a { color: var(--accent); }
.site-footer { padding: 1rem 1.5rem; color: var(--muted); border-top: 1px solid var(--border); font-size: 0.85rem; }
.module-list { list-style:none; padding:0; }
.module-list > li { border:1px solid var(--border); margin-bottom: 0.9rem; border-radius: 6px; overflow: hidden; }
.module-list > li > .mod-head { background:var(--side); padding: 0.7rem 1rem; font-weight:600; }
.module-list .item-row { display:flex; justify-content:space-between; padding: 0.4rem 1rem; border-top:1px solid var(--border); }
.module-list .item-row a { color: var(--fg); text-decoration:none; }
.module-list .item-row a:hover { text-decoration: underline; }
.module-list .item-row .kind { font-size:0.78rem; color: var(--muted); }
@media (max-width: 800px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar { border-right:none; border-bottom: 1px solid var(--border); }
}
