:root{color-scheme:light;--ink:#18332e;--green:#216554;--border:#d9e3dd;--paper:#f5f7f3}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:17px/1.7 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--green);text-underline-offset:.2em}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid #a8bdb1;border-radius:8px;padding:10px 16px;background:white;color:var(--ink);min-height:46px}button:disabled{cursor:wait;opacity:.55}.primary{background:var(--green);border-color:var(--green);color:white}.danger{color:#a02f28}input,select{display:block;width:100%;padding:10px;border:1px solid #a8bdb1;border-radius:6px;background:white;min-width:0}label{font-weight:600;font-size:15px}h1{font-size:clamp(30px,4vw,44px);line-height:1.25;margin:10px 0 20px}h2{font-size:23px;margin:0 0 16px}h3{font-size:19px}p{margin:12px 0}header{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1240px;margin:auto;padding:24px}header nav{display:flex;gap:22px;flex-wrap:wrap}.brand{font-size:24px;font-weight:750;text-decoration:none}main{max-width:1240px;margin:24px auto 60px;padding:0 24px}.eyebrow{letter-spacing:.08em;color:#54786a;font-size:13px;font-weight:700}.lead{font-size:19px;max-width:850px}.panel{border:1px solid var(--border);background:white;border-radius:14px;padding:26px;margin:22px 0;min-width:0}.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.hint{color:#567064;font-size:14px}.game-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start}.game-grid .panel{margin:0}.session-button{display:block;width:100%;text-align:left;margin-bottom:10px;white-space:normal;overflow-wrap:anywhere}.session-button[aria-pressed=true]{background:#e6f3ec;border-color:var(--green)}.session-button span{display:block;font-size:13px;color:#567064}.notice{padding:12px 16px;border-left:3px solid var(--green);background:#e7f0e8;overflow-wrap:anywhere}.notice.error{border-color:#b53128;background:#fbece8;color:#7d2921}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.stats div{background:var(--paper);padding:16px;border-radius:8px}.stats dt{font-size:13px;color:#547062}.stats dd{margin:0;font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.contribution-control{display:flex;gap:12px;margin:10px 0}.contribution-control input{max-width:150px;font-size:24px}.aggregate{padding:18px;background:#edf6ee;border-radius:10px;margin:20px 0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:15px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--border);white-space:nowrap}.lesson{max-width:100%;margin-top:26px}details{margin:20px 0}summary{cursor:pointer}#participants{max-height:260px;overflow:auto;overflow-wrap:anywhere}.skip{position:absolute;left:0;top:-60px;padding:10px;background:white}.skip:focus{top:0;z-index:2}:focus-visible{outline:3px solid #ca8c2d;outline-offset:3px}[hidden]{display:none!important}@media(max-width:780px){header{align-items:flex-start;padding:18px;gap:12px}header nav{gap:12px;font-size:14px}main{padding:0 16px}.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.game-grid{grid-template-columns:1fr;gap:20px}.panel{padding:20px}.game-grid aside #session-list{max-height:240px;overflow:auto}.stats{gap:8px}.stats div{padding:10px}.stats dd{font-size:24px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Public site links stay usable before a teacher or student signs in. */
header{flex-wrap:wrap}header .site-home{color:inherit;text-decoration:none;font-size:18px;font-weight:700;white-space:nowrap}header .site-switcher{display:flex;gap:18px;align-items:center;font-size:14px}header nav{flex-wrap:wrap}header nav a{white-space:nowrap}header .site-switcher a{display:inline-flex;align-items:center;min-height:40px}
@media(max-width:620px){header{gap:8px 16px}header .site-home{font-size:17px}header nav{gap:8px 14px;font-size:13px}}
