:root{--bg: #ffffff;--surface: #f5f5f5;--surface-2: #ebebeb;--line: #d8d8d8;--navy: #102c52;--navy-deep: #112337;--orange: #f05423;--text: #333333;--muted: #717271;--now: #f05423;--next: #102c52;--header-h: 126px;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Roboto,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.35}.header{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:3px solid var(--navy);padding:10px 16px 12px}.header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.title{margin:0;display:flex;align-items:center;gap:10px;min-width:0}.logo{height:34px;width:auto;flex:none}.title-text{font-weight:900;font-size:.9rem;letter-spacing:.04em;text-transform:uppercase;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clock{font-variant-numeric:tabular-nums;font-weight:900;font-size:1.15rem;color:var(--navy);flex:none}.source-notice{margin-top:8px;padding:6px 12px;border-radius:6px;background:#fef3c7;color:#92400e;font-weight:700;font-size:.85rem}.main{padding:12px 16px 40px}.banner{background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:12px 14px;margin-bottom:22px;display:grid;gap:8px}.banner-line{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1rem;color:var(--navy)}.banner-line.muted{color:var(--muted);font-weight:500}.tag{display:inline-block;font-size:.66rem;font-weight:900;letter-spacing:.12em;padding:3px 7px;border-radius:2px;background:var(--muted);color:#fff;white-space:nowrap;text-transform:uppercase}.tag.now{background:var(--orange)}.tag.next{background:var(--navy)}.event{margin-bottom:30px}.event-header{background:var(--navy-deep);color:#fff;padding:14px 16px;margin:0 -16px 12px}.event-kicker{color:var(--orange);font-weight:900;letter-spacing:.14em;font-size:.72rem;text-transform:uppercase}.event-header h2{margin:2px 0;font-weight:900;font-size:1.5rem;text-transform:uppercase;letter-spacing:.02em}.event-format{font-weight:700;margin-bottom:8px;opacity:.9}.event-wod{font-size:.84rem;margin-top:3px;opacity:.85}.wod-label{display:inline-block;min-width:3.8em;color:var(--orange);font-weight:900;text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}.heat{background:var(--bg);border:1px solid var(--line);border-radius:2px;margin-bottom:10px;overflow:hidden;scroll-margin-top:calc(var(--header-h) + 8px)}.heat.past{opacity:.5}.heat.current{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange)}.heat-header{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--line)}.heat-header h3{margin:0;font-size:.95rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--navy)}.heat-time{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums;margin-right:auto}.lanes{width:100%;border-collapse:collapse}.lanes th{text-align:left;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:6px 12px 2px;font-weight:700}.lanes td{padding:7px 12px;border-top:1px solid var(--line);vertical-align:middle}.lane-num{width:2.5em;font-weight:900;font-size:1.3rem;color:var(--navy);text-align:center}.team-name{font-weight:700;color:var(--text)}.athletes{color:var(--muted);font-size:.82rem}.lane-div{width:6em;text-align:right;color:var(--muted);font-size:.78rem;font-weight:700;white-space:nowrap}tr.open .team-name{color:var(--muted);font-weight:400;font-style:italic}tr.open .lane-num{color:var(--muted)}.footer{background:var(--surface-2);text-align:center;color:var(--muted);font-size:.8rem;padding:14px 16px 32px}@media(max-width:480px){.title-text{display:none}}.judge-gate{padding-top:40px}.name-form{display:grid;gap:10px;max-width:360px;margin:0 auto}.name-form label{font-weight:700;color:var(--navy)}.name-form input{font:inherit;font-size:1.1rem;padding:12px;border:1px solid var(--line);border-radius:8px}button.primary{font:inherit;font-weight:900;font-size:1.1rem;padding:14px;border:0;border-radius:8px;background:var(--orange);color:#fff}button.primary:active{filter:brightness(.9)}button.primary:disabled,button.link:disabled{opacity:.5;cursor:progress}.judge-header .header-row{align-items:flex-start}.judge-lane{font-size:1.6rem}.judge-meta{text-align:right;font-size:.85rem;color:var(--muted)}.pending{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:999px;background:#b45309;color:#fff;font-weight:700}.config-warning{margin-top:8px;padding:8px 12px;border-radius:6px;background:#b91c1c;color:#fff;font-weight:700;font-size:.9rem}.judge-main{display:grid;gap:14px}.heat-selector{display:grid;grid-template-columns:56px 1fr 56px;align-items:center;gap:8px}.heat-selector button{font-size:1.4rem;padding:10px 0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--navy)}.heat-selector button:disabled{opacity:.35}.heat-label{text-align:center;font-weight:900;font-size:1.3rem;color:var(--navy)}.team-card{padding:16px;border-radius:10px;background:var(--navy);color:#fff}.team-card-name{font-weight:900;font-size:1.5rem;line-height:1.15}.team-card-athletes{margin-top:4px;font-size:1rem;opacity:.9}.team-card-division{margin-top:8px;display:inline-block;padding:2px 8px;border-radius:999px;background:var(--orange);font-weight:700;font-size:.8rem}.team-card.empty{background:var(--surface-2);color:var(--muted);font-weight:700}.score-form{display:grid;gap:14px}.mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode{font:inherit;font-weight:900;font-size:1.1rem;padding:14px;border:2px solid var(--navy);border-radius:8px;background:#fff;color:var(--navy)}.mode[aria-pressed=true]{background:var(--navy);color:#fff}.time-fields{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:8px}.time-fields label,.stepper label{display:block;font-weight:700;color:var(--navy);margin-bottom:4px}.time-fields input,.stepper input{width:100%;box-sizing:border-box;font:inherit;font-size:2rem;font-weight:900;text-align:center;padding:10px;border:1px solid var(--line);border-radius:8px}.time-colon{font-size:2rem;font-weight:900;padding-bottom:14px;color:var(--navy)}.stepper-row{display:grid;grid-template-columns:64px 1fr 64px;gap:8px}.step{font-size:1.8rem;font-weight:900;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--navy)}.submit{margin-top:4px}.link{font:inherit;background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer}.notice{padding:12px 14px;border-radius:8px;font-weight:700}.notice.recorded{background:#dcfce7;color:#166534}.notice.retrying{background:#fef3c7;color:#92400e}.notice.error{background:#fee2e2;color:#991b1b}.judge-invalid{text-align:center;padding-top:60px;color:var(--navy)}.head-main{display:grid;gap:24px}.event-group h2{color:var(--navy);margin:0 0 12px}.judge-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.judge-card{padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:center;break-inside:avoid}.judge-card h3{margin:0 0 8px;font-size:1.4rem;color:var(--navy)}.judge-card .qr svg{width:100%;max-width:240px;height:auto}.judge-code{margin-top:8px;font-family:ui-monospace,monospace;font-size:1.3rem;font-weight:900;letter-spacing:.1em;color:var(--orange)}.judge-url{margin-top:4px;font-size:.75rem;color:var(--muted);word-break:break-all}@media print{.header{position:static}.judge-cards{grid-template-columns:repeat(2,1fr)}.event-group h2{break-after:avoid}}.loading{padding:32px 16px;text-align:center;color:var(--muted);font-weight:700}.pill{padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.pill.open{background:#dcfce7;color:#166534}.pill.closed{background:var(--surface-2);color:var(--muted)}.signup-date{margin-top:4px;color:var(--muted);font-size:.85rem}.signup-identity{margin-top:8px;font-size:.9rem;color:var(--text)}.signup-main .heat{padding-bottom:10px}.chips{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px 0}.chip{padding:8px 12px;border-radius:8px;border:1px solid var(--line);font:inherit;font-size:.9rem;background:var(--surface);color:var(--text)}button.chip.open{border-color:var(--navy);color:var(--navy);font-weight:700;cursor:pointer;min-height:44px}.chip.open.dim{opacity:.45}.chip.taken{background:var(--surface-2);color:var(--muted)}.chip.mine{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange);font-weight:700}.chip.mine .link{padding:6px 8px;margin:-6px -8px -6px 0}.your-slot{margin-top:6px;font-weight:700;color:var(--orange)}.claim-form{display:grid;gap:6px;padding:10px 12px 4px}.claim-form label{font-weight:700;color:var(--navy);font-size:.85rem}.claim-form input,.claim-form select{font:inherit;font-size:1rem;padding:10px;border:1px solid var(--line);border-radius:8px}.claim-actions{display:flex;align-items:center;gap:16px;margin-top:6px}.signup-main .notice{margin:8px 12px 0}.notice.info{background:#dbeafe;color:#1e3a8a}
