/* Judging portal — layout and components on top of the Drafting Table tokens.
   The one loud element is the score sheet: each line is a score rail with a
   tick per point and labelled Not seen / Partly / Clearly guide marks.
   The title block in the corner reads like a drawing's title block.
   Clay marks disagreement on the panel side only. */

:root {
  --masthead-h: 3.5rem;
  --ring: 2.75rem;
}

body {
  font-size: var(--text-base);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-color: var(--surface-page);
}

/* ---- Masthead ---------------------------------------------------------- */
.masthead {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
  height: var(--masthead-h);
  padding-inline: var(--gutter);
  background: color-mix(in srgb, var(--paper-raised) 92%, transparent);
  backdrop-filter: blur(6px);
  border-bottom: var(--border-hair) solid var(--hairline);
}
.masthead__brand {
  display: inline-flex; align-items: center; gap: var(--space-3);
  font-family: var(--font-display); font-weight: var(--weight-semibold); font-size: 1.0625rem;
}
.masthead__sub { color: var(--text-meta); font-weight: var(--weight-regular); }
.masthead__mark {
  width: 1.125rem; height: 1.125rem; border-radius: 50%;
  border: var(--border-bold) solid var(--signal);
  box-shadow: inset 0 0 0 3px var(--paper-raised), inset 0 0 0 10px var(--signal);
}
.masthead__who { display: flex; align-items: center; gap: var(--space-4); font-size: var(--text-sm); }
.who__name { color: var(--ink); font-weight: var(--weight-medium); }
.who__role { color: var(--text-meta); font-weight: var(--weight-regular); margin-left: var(--space-2); }
.linkbtn {
  background: none; border: 0; padding: 0; cursor: pointer;
  font: inherit; color: var(--signal); text-decoration: underline; text-underline-offset: 3px;
}
.linkbtn:hover { color: var(--signal-deep); }

.page {
  flex: 1;
  width: 100%; max-width: var(--max-w); margin-inline: auto;
  padding: var(--space-6) var(--gutter) var(--space-8);
  outline: none;
}
.foot {
  padding: var(--space-5) var(--gutter);
  font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-meta);
  border-top: var(--border-hair) solid var(--hairline-soft);
}
.loading, .empty { color: var(--text-meta); }
.empty a, .intro a { color: var(--signal); text-decoration: underline; text-underline-offset: 3px; }
.meta { font-size: var(--text-sm); color: var(--text-meta); margin: 0; }
.back {
  display: inline-block; margin-bottom: var(--space-4);
  font-size: var(--text-sm); color: var(--signal);
}
.back::before { content: "‹ "; }
.back:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---- Gate (sign in, name) --------------------------------------------- */
.gate {
  max-width: 28rem; margin: clamp(2rem, 10vh, 6rem) auto 0;
  background: var(--paper-raised);
  border: var(--border-hair) solid var(--hairline);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  box-shadow: var(--shadow-raised);
}
.gate h1 { font-size: var(--text-heading); }
.gate__form { display: grid; gap: var(--space-4); margin-top: var(--space-5); }
.gate__code {
  font-family: var(--font-mono); font-size: 1.25rem; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 0.8rem 0.9rem;
}
.error { color: var(--danger); font-size: var(--text-sm); margin: 0; min-height: 1.2em; }

/* ---- Judge home -------------------------------------------------------- */
.intro { margin-bottom: var(--space-5); }
.intro h1 { margin-bottom: var(--space-3); }
.intro p { margin-bottom: var(--space-2); }

.register { list-style: none; margin: 0; padding: 0; border-top: var(--border-hair) solid var(--hairline); }
.register__row {
  display: grid; grid-template-columns: 2rem 1fr auto 5rem; align-items: center; gap: var(--space-4);
  padding: var(--space-4) var(--space-3);
  border-bottom: var(--border-hair) solid var(--hairline);
  background: color-mix(in srgb, var(--paper-raised) 70%, transparent);
  transition: background var(--dur-fast) var(--ease-out);
}
.register__row:hover { background: var(--paper-raised); }
.register__n { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--text-meta); }
.register__name { font-family: var(--font-display); font-size: 1.1875rem; font-weight: var(--weight-semibold); }
.register__score { font-family: var(--font-mono); font-size: 1.125rem; text-align: right; }
.register__score small, .area__total small, .tb__cell small, th small { color: var(--text-meta); font-size: 0.75em; margin-left: 1px; }

.pill {
  display: inline-block; white-space: nowrap;
  font-size: var(--text-xs); font-weight: var(--weight-medium);
  padding: 0.2rem 0.55rem; border-radius: var(--radius-pill);
  border: var(--border-hair) solid var(--hairline); color: var(--ink-soft); background: var(--paper-raised);
}
.pill--draft { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 40%, transparent); }
.pill--submitted { color: var(--ok); border-color: color-mix(in srgb, var(--ok) 40%, transparent); background: color-mix(in srgb, var(--ok) 7%, var(--paper-raised)); }
.pill--flag { color: var(--clay); border-color: color-mix(in srgb, var(--clay) 40%, transparent); background: color-mix(in srgb, var(--clay) 8%, var(--paper-raised)); }

.howto { margin-top: var(--space-7); max-width: var(--measure); }
.howto summary { cursor: pointer; font-weight: var(--weight-semibold); color: var(--signal); }
.howto__steps, .howto__rules { color: var(--text-body); padding-left: 1.25rem; }
.howto li { margin-bottom: var(--space-2); }

/* ---- Score sheet ------------------------------------------------------- */
.sheet {
  display: grid; grid-template-columns: minmax(0, 1fr) 17rem; gap: var(--space-7);
  align-items: start;
}
.sheet__team { font-size: var(--text-title); margin-bottom: var(--space-2); }
.sheet__lede { color: var(--text-meta); }
.banner {
  padding: var(--space-3) var(--space-4); border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--warn) 10%, var(--paper-raised));
  border: var(--border-hair) solid color-mix(in srgb, var(--warn) 35%, transparent);
  color: var(--ink); max-width: none;
}
.banner--lock { background: var(--paper-sunk); border-color: var(--hairline); }

.area {
  margin-top: var(--space-6);
  background: var(--paper-raised);
  border: var(--border-hair) solid var(--hairline);
  border-radius: var(--radius-lg);
  padding: var(--space-5) var(--space-5) var(--space-4);
  scroll-margin-top: calc(var(--masthead-h) + var(--space-4));
}
.area__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); }
.area__head h2 { margin: 0; }
.area__total { font-family: var(--font-mono); font-size: 1.375rem; color: var(--ink); }
.area__look { font-size: var(--text-sm); color: var(--text-meta); margin: var(--space-2) 0 var(--space-3); }
.area .ap-field + .ap-field { margin-top: var(--space-4); }
.area .ap-textarea { min-height: 3.5rem; }

.lines { list-style: none; margin: 0; padding: 0; }
.line {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, 17rem) 4.5rem; align-items: start; gap: var(--space-4);
  padding: var(--space-3) 0;
  border-top: var(--border-hair) solid var(--hairline-soft);
}
.line__text { color: var(--ink); line-height: var(--leading-snug); padding-top: 0.2rem; }
/* The memorable element: a score rail like a drafting scale. Every whole
   number has a tick; Not seen / Partly / Clearly are labelled guide marks
   below it. Until a line is scored the thumb is hidden and the rail dashed. */
.slider { --thumb: 1.625rem; --fill: 0; min-width: 0; }
.slider__rail { position: relative; height: var(--thumb); }
.slider__input {
  -webkit-appearance: none; appearance: none;
  position: relative; z-index: 2;
  width: 100%; height: var(--thumb); margin: 0; background: transparent; cursor: pointer;
}
.slider__input:focus { outline: none; }
.slider__input::-webkit-slider-runnable-track {
  height: 4px; border-radius: 2px;
  background: linear-gradient(to right, var(--signal) calc(var(--fill) * 100%), var(--paper-edge) 0);
}
.slider__input::-moz-range-track { height: 4px; border-radius: 2px; background: var(--paper-edge); }
.slider__input::-moz-range-progress { height: 4px; border-radius: 2px; background: var(--signal); }
.slider__input::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  width: var(--thumb); height: var(--thumb); margin-top: calc((4px - var(--thumb)) / 2);
  border-radius: 50%; background: var(--paper-raised);
  border: 2.5px solid var(--signal); box-shadow: var(--shadow-raised);
  transition: transform var(--dur-fast) var(--ease-out);
}
.slider__input::-moz-range-thumb {
  width: var(--thumb); height: var(--thumb); box-sizing: border-box;
  border-radius: 50%; background: var(--paper-raised);
  border: 2.5px solid var(--signal); box-shadow: var(--shadow-raised);
}
.slider__input:active::-webkit-slider-thumb { transform: scale(1.12); }
.slider__input:focus-visible::-webkit-slider-thumb { box-shadow: var(--shadow-focus); }
.slider__input:focus-visible::-moz-range-thumb { box-shadow: var(--shadow-focus); }
.slider__input:disabled { cursor: default; }

.slider.is-unset .slider__input::-webkit-slider-thumb { opacity: 0; }
.slider.is-unset .slider__input::-moz-range-thumb { opacity: 0; }
.slider.is-unset .slider__input::-webkit-slider-runnable-track {
  background: repeating-linear-gradient(to right, var(--hairline) 0 6px, transparent 6px 10px);
}
.slider.is-unset .slider__input::-moz-range-track {
  background: repeating-linear-gradient(to right, var(--hairline) 0 6px, transparent 6px 10px);
}

.slider__ticks { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.slider__tick {
  position: absolute; top: 50%; width: 2px; height: 10px; margin-left: -1px; transform: translateY(-50%);
  border-radius: 1px; background: var(--ink-muted); opacity: 0.45;
}
.slider__tick.is-passed { background: var(--signal); opacity: 1; }

.slider__marks { position: relative; height: 2.4rem; margin-top: 0.15rem; }
.slider__mark {
  position: absolute; top: 0; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 0.05rem;
  padding: 0.1rem 0.3rem; border: 0; border-radius: var(--radius-sm);
  background: none; cursor: pointer; font: inherit; white-space: nowrap;
}
.slider__mark::before {
  content: ""; width: 1px; height: 5px; background: var(--ink-muted); margin-bottom: 0.1rem;
}
.slider__mark-label { font-size: var(--text-xs); color: var(--text-meta); line-height: 1.1; }
.slider__mark-n { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--ink-soft); line-height: 1.1; }
.slider__mark:hover .slider__mark-label { color: var(--signal); }
.slider__mark:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.slider__mark.is-on .slider__mark-label, .slider__mark.is-on .slider__mark-n { color: var(--signal-deep); font-weight: var(--weight-semibold); }
.slider__mark:disabled { cursor: default; }

/* Number box beside each slider; typing here moves the slider and back. */
.num { display: flex; flex-direction: column; align-items: flex-end; gap: 0.2rem; }
.num__box {
  display: inline-flex; align-items: baseline; gap: 2px;
  border: var(--border-hair) solid var(--hairline); border-radius: var(--radius-sm);
  background: var(--paper-raised); padding: 0 0.4rem 0 0;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.num__box:focus-within { border-color: var(--signal); box-shadow: var(--shadow-focus); }
.num__input {
  width: 2.6rem; padding: 0.4rem 0 0.4rem 0.4rem; border: 0; background: transparent;
  font-family: var(--font-mono); font-size: 1.125rem; font-weight: var(--weight-medium);
  color: var(--signal-deep); text-align: right; -moz-appearance: textfield; appearance: textfield;
}
.num__input:focus { outline: none; }
.num__input::-webkit-outer-spin-button, .num__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.num__input::placeholder { color: var(--text-meta); }
.num__input:disabled { color: var(--ink-soft); }
.num__max { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-meta); }
.num__box:has(.is-bad) { border-color: var(--danger); box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 20%, transparent); }
.num__input.is-bad { color: var(--danger); }
.num__hint { font-size: var(--text-xs); color: var(--danger); white-space: nowrap; }

.collab { display: grid; gap: var(--space-2); }
.collab__opt {
  display: grid; grid-template-columns: 7rem 4rem 1fr; gap: var(--space-3); align-items: baseline;
  text-align: left; font: inherit; cursor: pointer;
  padding: var(--space-3) var(--space-4);
  background: var(--paper); border: var(--border-hair) solid var(--hairline); border-radius: var(--radius-md);
  color: var(--ink-soft);
  transition: border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.collab__opt:hover { border-color: var(--signal); }
.collab__opt:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.collab__opt[aria-checked="true"] { border-color: var(--signal); background: var(--signal-tint); box-shadow: inset 0 0 0 1px var(--signal); color: var(--ink); }
.collab__name { font-weight: var(--weight-semibold); color: var(--ink); }
.collab__x { font-family: var(--font-mono); }
.collab__meaning { font-size: var(--text-sm); }
.collab__opt:disabled { cursor: default; }

.missing { color: var(--danger); font-size: var(--text-sm); }
.missing p { color: inherit; margin: var(--space-3) 0 var(--space-1); }
.missing ul { margin: 0; padding-left: 1.25rem; }
.signoff__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; margin-top: var(--space-4); }

/* ---- Title block -------------------------------------------------------- */
.titleblock {
  position: sticky; top: calc(var(--masthead-h) + var(--space-5));
  background: var(--paper-raised);
  border: var(--border-bold) solid var(--ink);
  border-radius: var(--radius-sm);
}
/* Hairline rules come from a 1px gap over an ink background, so the grid
   stays ruled whatever the number of cells. */
.titleblock__grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0;
  background: var(--ink);
}
.tb__cell { padding: var(--space-2) var(--space-3); min-width: 0; background: var(--paper-raised); }
.tb__cell--wide { grid-column: 1 / -1; }
.tb__cell dt { font-size: var(--text-xs); color: var(--text-meta); }
.tb__cell dt a:hover { color: var(--signal); }
.tb__cell dd { margin: 0; font-weight: var(--weight-semibold); color: var(--ink); overflow-wrap: anywhere; font-size: var(--text-sm); }
.tb__area dd, .titleblock--panel .tb__cell dd { font-family: var(--font-mono); font-size: 1.125rem; font-weight: var(--weight-medium); }
.tb__area.is-partial dd { color: var(--text-meta); }
.tb__total dd { font-family: var(--font-display); font-weight: var(--weight-black); font-size: 2.75rem; line-height: 1.05; color: var(--signal); }
.titleblock--panel .tb__total dd { font-family: var(--font-display); font-weight: var(--weight-black); font-size: 2.75rem; color: var(--signal); }
.tb__state dd { display: grid; gap: 0.15rem; }
.state--submitted { color: var(--ok); }
.save { font-weight: var(--weight-regular); font-size: var(--text-xs); color: var(--text-meta); }
.save--error { color: var(--danger); }
.tb__actions { display: grid; gap: var(--space-2); padding: var(--space-3); border-top: var(--border-hair) solid var(--ink); }
.tb__actions .meta { font-size: var(--text-xs); }

/* ---- Panel -------------------------------------------------------------- */
.tabs { display: flex; gap: var(--space-5); border-bottom: var(--border-hair) solid var(--hairline); margin-bottom: var(--space-5); overflow-x: auto; }
.tabs__tab { padding: var(--space-2) 0; color: var(--text-meta); border-bottom: var(--border-bold) solid transparent; margin-bottom: -1px; white-space: nowrap; }
.tabs__tab:hover { color: var(--ink); }
.tabs__tab[aria-current="page"] { color: var(--ink); border-color: var(--signal); font-weight: var(--weight-semibold); }
.toolbar { display: flex; align-items: center; gap: var(--space-4); margin-bottom: var(--space-4); flex-wrap: wrap; }

.tablewrap { overflow-x: auto; margin-bottom: var(--space-5); }
table { border-collapse: collapse; width: 100%; background: var(--paper-raised); font-size: var(--text-sm); }
th, td { padding: var(--space-3); text-align: left; border-bottom: var(--border-hair) solid var(--hairline); vertical-align: middle; }
thead th { font-weight: var(--weight-medium); color: var(--text-meta); border-bottom-color: var(--ink); white-space: nowrap; }
tbody th { font-weight: var(--weight-semibold); color: var(--ink); }
tbody th a { color: var(--signal); }
tbody th a:hover { text-decoration: underline; text-underline-offset: 3px; }
.num { text-align: right; font-family: var(--font-mono); white-space: nowrap; }
thead .num { font-family: var(--font-body); }
.strong { font-weight: var(--weight-semibold); color: var(--ink); font-size: 1rem; }
.muted { color: var(--text-meta); }

.dots { display: inline-flex; gap: 3px; }
.dot {
  font-family: var(--font-mono); font-size: 0.6875rem; line-height: 1;
  padding: 0.25rem 0.3rem; border-radius: var(--radius-sm);
  border: var(--border-hair) solid var(--hairline); color: var(--text-meta);
}
.dot--draft { border-color: var(--warn); color: var(--warn); }
.dot--submitted { background: var(--ok); border-color: var(--ok); color: var(--paper-raised); }

.addteam { display: flex; gap: var(--space-3); align-items: flex-end; max-width: 36rem; margin-bottom: var(--space-5); }
.addteam .ap-field { flex: 1; }
.teamlist, .judgelist { list-style: none; margin: 0; padding: 0; border-top: var(--border-hair) solid var(--hairline); }
.teamlist__row, .judgelist__row {
  display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap;
  padding: var(--space-3) 0; border-bottom: var(--border-hair) solid var(--hairline);
}
.teamlist__name { flex: 1 1 14rem; width: auto; font-weight: var(--weight-semibold); }
.danger { color: var(--danger); }
.judgelist__slot { font-family: var(--font-mono); width: 2.5rem; }
.judgelist__role { width: 7.5rem; color: var(--text-meta); font-size: var(--text-sm); }
.judgelist__row .ap-input { flex: 1 1 14rem; width: auto; }

.panelgrid { display: grid; grid-template-columns: minmax(0, 1fr) 17rem; gap: var(--space-7); align-items: start; }
.panelgrid .titleblock { top: calc(var(--masthead-h) + var(--space-5)); }
.h-sec { font-size: var(--text-subhead); margin: var(--space-5) 0 var(--space-3); }
.align th small { font-weight: var(--weight-regular); }
.align .ap-input { padding: 0.4rem 0.5rem; font-size: var(--text-sm); min-width: 9rem; }
.align thead th { white-space: normal; }
.align .align__in { width: 5rem; min-width: 0; text-align: right; font-family: var(--font-mono); }
.align tr.is-flagged th[scope="row"] { box-shadow: inset 3px 0 0 var(--clay); }
.flag { display: block; font-size: var(--text-xs); font-weight: var(--weight-medium); color: var(--clay); margin-top: 0.15rem; }
.flag--block { font-size: var(--text-sm); }
.ticks { list-style: none; padding: 0; margin: 0 0 var(--space-3); display: grid; gap: var(--space-1); max-width: 28rem; }
.ticks li { display: flex; justify-content: space-between; gap: var(--space-3); border-bottom: var(--border-hair) solid var(--hairline-soft); padding: var(--space-1) 0; font-size: var(--text-sm); }
.mult { max-width: 24rem; }

/* ---- Toast -------------------------------------------------------------- */
.toast {
  position: fixed; left: 50%; bottom: var(--space-5); z-index: 50;
  transform: translate(-50%, 1rem); opacity: 0; pointer-events: none;
  padding: var(--space-3) var(--space-5); border-radius: var(--radius-md);
  background: var(--ink); color: var(--paper-raised); font-size: var(--text-sm);
  box-shadow: var(--shadow-popover);
  transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}
.toast--show { opacity: 1; transform: translate(-50%, 0); }
.toast--error { background: var(--danger); }

/* ---- Narrow screens ----------------------------------------------------- */
@media (max-width: 1360px) {
  .panelgrid { grid-template-columns: 1fr; gap: var(--space-5); }
  .panelgrid .titleblock { position: static; order: -1; max-width: 34rem; }
}
@media (max-width: 960px) {
  .sheet { grid-template-columns: 1fr; gap: var(--space-5); }
  /* Non-technical sheets put the status cell on an even child, leaving one
     empty slot in the 4-column strip; widen it to close the gap. */
  .sheet .tb__state:nth-child(even) { grid-column: span 2; }
  .sheet .titleblock {
    order: -1; position: sticky; top: var(--masthead-h); z-index: 10;
    border-width: 0 0 var(--border-bold); border-radius: 0;
    margin-inline: calc(var(--gutter) * -1);
  }
  .sheet .titleblock__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sheet .titleblock__grid { background: var(--hairline); }
  .sheet .tb__cell { padding: var(--space-2); }
  .tb__long { display: none; }
  .tb__short { display: inline !important; }
  .sheet .tb__cell--wide { grid-column: auto; }
  .sheet .tb__cell:not(.tb__area):not(.tb__total):not(.tb__state) { display: none; }
  .sheet .tb__total, .sheet .tb__state { grid-column: auto; }
  .sheet .tb__total dd { font-size: 1.5rem; }
  .sheet .tb__state .save { display: none; }
  .sheet .tb__cell dt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .sheet .tb__area dd { font-size: 1rem; }
  .area { scroll-margin-top: calc(var(--masthead-h) + 5rem); }
}
@media (max-width: 640px) {
  /* Line text on top; slider and number box share the row beneath it. */
  .line { grid-template-columns: minmax(0, 1fr) 4.5rem; gap: var(--space-2) var(--space-3); padding: var(--space-4) 0; }
  .line .line__text { grid-column: 1 / -1; }
  .line .slider { grid-column: 1; grid-row: 2; }
  .line .num { grid-column: 2; grid-row: 2; }
  /* Sticky summary shrinks to one row: area totals already sit in each area's header. */
  .sheet .titleblock__grid { grid-template-columns: 1fr 1fr; }
  .sheet .tb__area { display: none; }
  .sheet .tb__state:nth-child(even) { grid-column: auto; }
  .sheet .tb__total, .sheet .tb__state { display: flex !important; align-items: baseline; gap: var(--space-2); }
  .sheet .tb__total dd { font-size: 1.375rem; }
  .sheet .tb__state dt { display: none; }
  .sheet .tb__state { justify-content: flex-end; align-items: center; }
  .sheet .tb__state dd { display: block; font-size: var(--text-sm); text-align: right; white-space: nowrap; }
  .sheet .tb__state .save { display: inline; margin-left: var(--space-2); }
  .area { scroll-margin-top: calc(var(--masthead-h) + 3.5rem); }
  .signoff__actions .ap-btn--lg { width: 100%; }
  .sheet__team { font-size: var(--text-heading); }
  .area { padding: var(--space-4); }
  .collab__opt { grid-template-columns: 1fr auto; }
  .collab__meaning { grid-column: 1 / -1; }
  .register__row { grid-template-columns: 1.5rem 1fr auto; }
  .register__row .pill { grid-column: 2; justify-self: start; }
  .register__score { grid-row: 1; grid-column: 3; }
  .masthead__event, .who__role, .who__name { display: none; }
  .addteam { flex-direction: column; align-items: stretch; }
}
.tb__short { display: none; }

/* Touch screens: bigger thumb and tap targets, no double-tap zoom on controls. */
@media (pointer: coarse) {
  .slider { --thumb: 2.25rem; }
  .slider__mark { min-height: 2.75rem; min-width: 2.75rem; }
  .slider__marks { height: 2.9rem; }
  .num__input { font-size: 1.25rem; padding-block: 0.55rem; }
  button, .slider__input, .num__input, .collab__opt { touch-action: manipulation; }
}
