/* JM Leaderboard pages: JM red on near-black, Big Shoulders for headings, Barlow for text. */
:root{color-scheme:dark;--bg:#111012;--panel:#1b1a1d;--panel2:#252327;--line:#38353b;--fg:#f4f1ef;--muted:#aaa4a7;--red:#d0021b;--redh:#e5182e;--good:#3ecf7a;--warn:#f2b632;--bad:#ff6470;
--display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;--body:Barlow,"Helvetica Neue",Arial,sans-serif;--mono:"IBM Plex Mono",Menlo,monospace}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font:16px/1.45 var(--body);-webkit-text-size-adjust:100%}
a{color:#ff8a96}
h1,h2,h3{font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;line-height:1.05;margin:0;text-wrap:balance}
h1{font-size:36px;font-weight:900}h2{font-size:26px;font-weight:800}h3{font-size:19px;font-weight:800}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--warn);outline-offset:2px}
label{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:600;color:var(--muted)}
label .opt{font-weight:400;font-size:12px}
label.check{flex-direction:row;align-items:flex-start;gap:10px;color:var(--fg);font-weight:500;font-size:15px}
label.check input{width:20px;height:20px;margin:1px 0 0;flex:none;accent-color:var(--red)}
input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),select,textarea{width:100%;min-width:0;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:10px 11px;font-size:16px;color:var(--fg)}
input[type=color]{width:100%;height:42px;padding:3px;background:var(--panel2);border:1px solid var(--line);border-radius:6px}
input[type=file]{font-size:13px;color:var(--muted);max-width:100%}
textarea{min-height:90px;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--red);color:#fff;border:0;border-radius:6px;padding:10px 15px;font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--redh)}
.btn.alt{background:var(--panel2);border:1px solid var(--line);color:var(--fg)}
.btn.alt:hover{border-color:#5a565e}
.btn.small{padding:6px 10px;font-size:13px}
.btn.big{padding:15px 18px;font-size:18px;width:100%}
.btn.danger{background:#5a1219;color:#ffd4d8}
.btn:disabled{opacity:.55;cursor:default}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.two>*{min-width:0}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.small{font-size:13px;color:var(--muted)}
.err{color:var(--bad);font-weight:600;font-size:14px;min-height:1px}
.ok{color:var(--good);font-weight:600}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:700;background:var(--panel2);white-space:nowrap}
.pill.good{background:var(--good);color:#06150c}.pill.warn{background:var(--warn);color:#1c1400}.pill.bad{background:var(--bad);color:#24070a}
.card{background:var(--panel);border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.code{font-family:var(--mono);font-size:13px;overflow-wrap:anywhere}
.jf{display:flex;flex-direction:column;gap:14px}
.jf .small{margin-top:-4px}
.done{display:flex;flex-direction:column;gap:14px;text-align:center;padding:20px 0}
.done h2{font-size:40px}
.bigscore{font:900 64px/1 var(--display);color:var(--redh)}
.quiz .qnum{color:var(--muted);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:13px}
.quiz .qtext{font-family:var(--body);text-transform:none;font-weight:700;font-size:26px;line-height:1.25;letter-spacing:0}
.choices{display:flex;flex-direction:column;gap:10px}
.choice{background:var(--panel2);border:2px solid var(--line);border-radius:8px;padding:16px;text-align:left;font-size:19px;font-weight:600;cursor:pointer}
.choice:hover,.choice:focus-visible{border-color:var(--red)}
.tablewrap{overflow-x:auto;border-radius:10px;background:var(--panel)}
table{border-collapse:collapse;width:100%;font-size:14px}
th{text-align:left;color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;vertical-align:top}
tr:last-child td{border-bottom:0}
.narrow{max-width:460px;margin:0 auto;padding:28px max(16px,env(safe-area-inset-right,0px)) 40px max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:20px}
.brandrow{display:flex;align-items:center;gap:14px}
.brandrow img{height:62px;border-radius:7px}
.brandrow b{font:900 24px/1 var(--display);text-transform:uppercase}
.brandrow b span{color:var(--redh)}
#toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:#fff;color:#111;font-weight:600;padding:10px 16px;border-radius:7px;opacity:0;pointer-events:none;transition:opacity .25s;z-index:50;max-width:calc(100% - 32px)}
#toast.show{opacity:1}
@media (max-width:560px){.two,.three{grid-template-columns:1fr}}
