:root { color-scheme: light; font-family: system-ui, sans-serif; background: #edf2f7; color: #102a43; }
* { box-sizing: border-box; }
body { margin: 0; }
.shell, .auth-card { width: min(1120px, calc(100% - 2rem)); margin: 2rem auto; }
header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
h1 { margin: 0; font-size: clamp(2rem, 5vw, 3.5rem); }.eyebrow { margin: 0; font-weight: 800; letter-spacing: .12em; }.date { font-size: 1.2rem; font-weight: 700; }
button { background: #005f73; color: white; padding: .8rem 1rem; border: 0; border-radius: .55rem; font: inherit; font-weight: 800; cursor: pointer; }.secondary { background: #334e68; margin-top: 1.5rem; }
.timetable { display: grid; gap: .8rem; }.lesson { border-radius: .8rem; padding: 1rem; box-shadow: 0 2px 8px #102a4326; color: #111; font-weight: 700; }.lesson.cancelled { background: #e63946; color: white; }.lesson.teacher-change { background: #7b2cbf; color: white; }.lesson.room-change { background: #ffd60a; }.lesson.irregular { background: #fb8500; }.lesson.normal { background: #ffb703; }
.lesson h2 { margin: 0 0 .5rem; font-size: 1.35rem; }.lesson dl { margin: 0; display: grid; grid-template-columns: minmax(7rem, 1fr) 3fr; gap: .35rem .8rem; }.lesson dt { opacity: .8; }.lesson dd { margin: 0; white-space: pre-wrap; }.auth-card { max-width: 38rem; background: white; border-radius: 1rem; padding: 2rem; box-shadow: 0 4px 18px #102a4326; }.error { color: #b00020; font-weight: 700; }
@media (min-width: 760px) { .timetable { grid-template-columns: repeat(2, 1fr); } }
