:root { color: #172033; background: #f5f2ea; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
* { box-sizing: border-box; }
body { margin: 0; }
.topbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 5vw; color: white; background: #173b3a; }
.topbar div, .topbar nav { display: flex; align-items: center; gap: 16px; }
.topbar a { color: white; text-decoration: none; }
main { max-width: 1120px; margin: auto; padding: 42px 20px 64px; }
.hero { padding: 48px; color: #f8f4e9; background: #173b3a; border-radius: 24px; }
h1 { max-width: 760px; font-size: clamp(32px, 5vw, 60px); line-height: 1.05; margin: 10px 0 18px; }
h2 { margin-top: 32px; }
p { line-height: 1.6; color: #61706f; }
.hero p, .hero span { color: #cfddd7; }
.section-heading { display: flex; justify-content: space-between; align-items: end; margin: 34px 0 18px; }
.section-heading p, .section-heading h1, .section-heading h2 { margin: 0; }
.course-grid, .stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.course-card, .login-panel, .records article, .stats article { padding: 22px; background: white; border: 1px solid #dde3df; border-radius: 16px; }
.course-number { color: #d07b45; font-size: 28px; font-weight: 700; }
.login-panel { display: grid; grid-template-columns: 1fr 1fr auto; gap: 18px; align-items: end; margin-top: 20px; }
form { display: grid; gap: 10px; }
label { display: grid; gap: 5px; font-size: 13px; color: #61706f; }
input { padding: 10px; border: 1px solid #cbd5d0; border-radius: 8px; font: inherit; }
button, .button { display: inline-block; padding: 10px 14px; border: 0; border-radius: 8px; color: white; background: #d36d3d; text-decoration: none; cursor: pointer; font: inherit; }
.ghost { background: transparent; border: 1px solid #9ab3ad; }
.secondary { background: #517b75; }
.disabled { cursor: not-allowed; background: #9daaa8; }
.is-hidden { display: none !important; }
.stats strong { display: block; margin-top: 8px; font-size: 30px; }
.records { display: grid; gap: 10px; }
.records article { display: flex; justify-content: space-between; gap: 12px; }
.tag { color: #28715f; font-size: 12px; }
code { padding: 2px 5px; background: #edf1ef; border-radius: 4px; }
@media (max-width: 760px) { .login-panel { grid-template-columns: 1fr; } .hero { padding: 28px; } }
