:root { color-scheme: light dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #f6f7f9; color: #18212f; } body { margin: 0; min-height: 100vh; background: #f6f7f9; color: #18212f; } .shell { max-width: 960px; margin: 0 auto; padding: 24px; } .panel { background: #ffffff; border: 1px solid #d9dee7; border-radius: 8px; padding: 24px; box-shadow: 0 10px 30px rgba(19, 33, 54, 0.08); } .narrow { max-width: 440px; margin: 8vh auto; } .center { text-align: center; } .stack { display: grid; gap: 16px; } h1, h2 { margin-top: 0; } label { display: grid; gap: 6px; font-weight: 700; } input, textarea, select, button, .button { font: inherit; } input, textarea, select { border: 1px solid #b8c0cc; border-radius: 8px; padding: 10px 12px; background: #fff; color: #18212f; } button, .button { border: 1px solid #9aa7b8; border-radius: 8px; padding: 10px 14px; background: #eef1f5; color: #18212f; cursor: pointer; text-decoration: none; } button:disabled { cursor: not-allowed; opacity: 0.55; } .primary { background: #0d6b57; border-color: #0d6b57; color: #fff; } .secondary { background: #254f7a; border-color: #254f7a; color: #fff; } .danger { background: #a43831; border-color: #a43831; color: #fff; } .error { color: #a43831; font-weight: 700; } .status, .score { font-size: 1.2rem; font-weight: 800; } .spinner { width: 36px; height: 36px; margin: 20px auto 0; border: 4px solid #cbd3df; border-top-color: #0d6b57; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .quiz-panel h1 { font-size: clamp(1.5rem, 4vw, 2.5rem); } .topline { display: flex; justify-content: space-between; gap: 16px; align-items: center; font-weight: 800; } .bar { height: 12px; background: #e0e6ef; border-radius: 999px; overflow: hidden; margin: 12px 0 24px; } .bar span { display: block; height: 100%; width: 100%; background: #0d6b57; transition: width 0.2s linear; } .answers { display: grid; gap: 12px; } .answer { display: grid; grid-template-columns: 42px 1fr; gap: 12px; min-height: 68px; align-items: center; text-align: left; background: #fff; } .answer strong { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #254f7a; color: #fff; } .histogram { display: grid; gap: 10px; margin: 16px 0; } .hist-row { display: grid; grid-template-columns: 72px 1fr 48px; gap: 10px; align-items: center; } meter { width: 100%; } .leaderboard { display: grid; gap: 8px; padding-left: 0; list-style: none; } .leaderboard li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid #e2e7ee; } .celebration { outline: 6px solid #f2c94c; } .admin-layout { display: grid; grid-template-columns: 280px 1fr; min-height: 100vh; } .sidebar { padding: 20px; background: #223044; color: #fff; } .sidebar .list { display: grid; gap: 8px; margin-bottom: 24px; } .sidebar button { width: 100%; text-align: left; } .workspace { padding: 24px; } .toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; } .roster { display: flex; flex-wrap: wrap; gap: 8px; } .roster span { border: 1px solid #ccd4df; border-radius: 999px; padding: 6px 10px; } .qr { width: min(280px, 100%); height: auto; background: #fff; padding: 12px; } @media (max-width: 720px) { .shell, .workspace { padding: 14px; } .admin-layout { grid-template-columns: 1fr; } .sidebar { position: static; } .panel { padding: 18px; } } @media (prefers-color-scheme: dark) { :root, body { background: #10141b; color: #edf1f7; } .panel, input, textarea, select, .answer { background: #171d27; color: #edf1f7; border-color: #344052; } button, .button { background: #263246; color: #edf1f7; border-color: #4a586d; } }