:root { --dojo-focus: #215d9a; }
:focus-visible { outline: 3px solid var(--dojo-focus); outline-offset: 3px; }
.top nav { gap: .65rem 1rem; align-items: center; }
.top nav a { text-underline-offset: .2em; }
.top nav a:hover, .top nav [aria-current=page] { text-decoration: underline; }
.subject-grid, .grid { gap: clamp(.8rem, 2vw, 1.4rem); }
.subject-card { display: flex; flex-direction: column; gap: .35rem; }
.subject-card .meta { margin-top: auto; }
a.card { transition: box-shadow 160ms ease, transform 160ms ease; }
@media (hover:hover) { a.card:hover { transform: translateY(-2px); box-shadow: 0 5px 0 var(--line); } }
.actions { flex-wrap: wrap; gap: .6rem; }
.coverage-details { margin: .8rem 0 1.1rem; max-width: 70ch; }
.coverage-details summary { cursor: pointer; font-weight: 650; }
.coverage-details p { margin: .5rem 0; }
.arena-hero { margin: 2rem 0 1rem; }
.arena-hero h1 { margin: .2rem 0 .8rem; }
.arena-card { max-width: 900px; padding: clamp(1rem, 3vw, 2rem); }
.arena-card textarea { width: 100%; box-sizing: border-box; font: inherit; padding: .75rem; }
.arena-card label select { margin: .65rem; }
.arena-card progress { width: 100%; height: 1.15rem; accent-color: var(--red); }
.arena-question { white-space: pre-wrap; overflow-wrap: anywhere; }
.arena-options { display: grid; gap: .5rem; margin: .8rem 0; }
.arena-options .btn { text-align: left; white-space: pre-wrap; }
.arena-status { font-weight: 650; }
.arena-number-grid { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1rem 0; }
.arena-number-grid .arena-number { min-width: 2.5rem; padding: .4rem .55rem; text-align: center; }
.arena-number-grid .arena-answered { border-style: solid; background: #d8ebd9; color: #183624; }
.arena-number-grid [aria-current=step] { box-shadow: 0 0 0 2px var(--dojo-focus); }
.arena-review { border-top: 1px solid var(--line); padding: .85rem 0; }
.arena-review summary { cursor: pointer; overflow-wrap: anywhere; }
.arena-review p { white-space: pre-wrap; overflow-wrap: anywhere; }
.quiz-tools { align-items: center; margin: .65rem 0; }
.quiz-tools label { font-size: .9rem; }
.quiz-tools select { margin-left: .3rem; }
.quiz-tools[hidden], .quiz-tools [hidden] { display: none !important; }
@media (prefers-reduced-motion:reduce) { a.card { transition: none; } }
