:root {
  --ink: #17130f;
  --paper: #fff8e7;
  --cream: #f3e8cd;
  --yellow: #ffd43b;
  --red: #e23b31;
  --blue: #1967d2;
  --green: #32744a;
  --muted: #6e665a;
  --line: #17130f;
  --shadow: 5px 5px 0 var(--ink);
}

* { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: hidden; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: Arial, Helvetica, sans-serif;
}

button, input, select { font: inherit; }
textarea { width: 100%; padding: 10px; border: 2px solid var(--ink); border-radius: 0; font: inherit; resize: vertical; }
button { color: inherit; }
[hidden] { display: none !important; }

.score-lock {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 32px 18px;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, transparent 0 47%, rgba(23, 19, 15, .08) 47% 52%, transparent 52%),
    var(--yellow);
}

.lock-art { position: absolute; inset: 0; pointer-events: none; }
.lock-art span { position: absolute; font-size: clamp(10rem, 30vw, 28rem); font-weight: 900; line-height: 1; opacity: .14; }
.lock-art span:nth-child(1) { left: -3vw; top: -5vw; transform: rotate(-9deg); }
.lock-art span:nth-child(2) { right: 7vw; top: 24vh; color: var(--blue); transform: rotate(8deg); }
.lock-art span:nth-child(3) { left: 16vw; bottom: -8vw; color: var(--red); transform: rotate(5deg); }

.lock-card {
  position: relative;
  width: min(100%, 460px);
  padding: clamp(26px, 5vw, 48px);
  background: var(--paper);
  border: 3px solid var(--ink);
  box-shadow: 10px 10px 0 var(--ink);
}

.score-brand { color: var(--ink); font-weight: 900; text-transform: uppercase; letter-spacing: .06em; text-decoration: none; }
.eyebrow { margin: 30px 0 8px; color: var(--red); font-size: .78rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 12px; font-size: clamp(2.4rem, 8vw, 4.7rem); line-height: .92; letter-spacing: -.055em; }
h2 { margin-bottom: 8px; font-size: clamp(2rem, 6vw, 3.4rem); line-height: .95; letter-spacing: -.045em; }
h3 { margin-bottom: 8px; }
.lock-card > p:not(.eyebrow), .lock-note { color: var(--muted); line-height: 1.45; }
.lock-card form { display: grid; gap: 9px; margin: 28px 0 18px; }
label { font-size: .8rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
input, select {
  min-height: 46px;
  width: 100%;
  padding: 9px 11px;
  border: 2px solid var(--ink);
  border-radius: 0;
  background: #fff;
  color: var(--ink);
}
input:focus, select:focus, button:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.confirm-password { margin-top: 8px; }
.form-error { margin: 4px 0 !important; color: #a51e17 !important; font-weight: 700; }

.score-button, .text-button, .score-tab {
  cursor: pointer;
  border: 2px solid var(--ink);
  background: var(--paper);
  font-weight: 900;
}
.score-button { min-height: 44px; padding: 9px 14px; box-shadow: 3px 3px 0 var(--ink); }
.score-button:hover { transform: translate(1px, 1px); box-shadow: 2px 2px 0 var(--ink); }
.score-button.primary { background: var(--yellow); }
.score-button.danger { color: #fff; background: var(--red); }
.score-button.full { width: 100%; margin-top: 10px; }
.text-button { min-height: 36px; padding: 5px 11px; box-shadow: none; background: transparent; }
.edit-scores-link { display: inline-flex; align-items: center; color: inherit; text-decoration: none; }

.score-app { width: 100%; min-width: 0; min-height: 100vh; }
.score-header {
  height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 max(18px, calc((100vw - 1180px) / 2));
  border-bottom: 3px solid var(--ink);
  background: var(--yellow);
  position: sticky;
  top: 0;
  z-index: 20;
}
.score-header-actions { display: flex; align-items: center; gap: 12px; }
.save-state { color: var(--green); font-size: .75rem; font-weight: 900; text-transform: uppercase; }
button.save-state { border: 0; cursor: pointer; font: inherit; padding: .35rem .55rem; border-radius: 999px; background: #e8f1d7; }
.save-state[data-sync="saved"] { width: 34px; min-width: 34px; height: 34px; min-height: 34px; padding: 0; border-radius: 0; background: transparent; font-size: 0; }
.save-state[data-sync="saving"] { background: #fff0b8; color: var(--ink); }
.save-state[data-sync="offline"] { background: #ffe0d7; color: var(--red); }
.save-state[data-sync="conflict"] { background: var(--ink); color: var(--cream); }
.save-state[data-sync="saved"], .save-state[data-sync="saving"] { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; gap: 6px; }
.save-state[data-sync="saved"]::before { content: "✓"; font-size: 1.4rem; line-height: 1; }
.save-state[data-sync="saving"]::before { content: "↻"; display: block; font-size: 1rem; line-height: 1; animation: save-status-spin 1s linear infinite; }
@keyframes save-status-spin { to { transform: rotate(360deg); } }
.score-shell { width: min(1180px, calc(100% - 32px)); margin: 0 auto 70px; }
.score-hero { padding: 56px 0 32px; }
.score-hero .eyebrow { margin-top: 0; }
.score-hero h1 { font-size: clamp(2.8rem, 6.4vw, 5.6rem); white-space: nowrap; }
.score-hero p:last-child { margin-bottom: 0; font-size: 1.05rem; }

.leader-podium { display: grid; gap: 7px; margin-top: 18px; }
.player-podium { margin: 18px 0; }
.mini-leader { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 10px; padding: 10px 12px; border: 2px solid var(--ink); background: var(--paper); box-shadow: 3px 3px 0 var(--ink); }
.mini-leader.rank-1, .leader-row.rank-1 { background: var(--yellow); }
.mini-leader.rank-2, .leader-row.rank-2 { background: #eee; }
.mini-leader.rank-3, .leader-row.rank-3 { background: #e8b48a; }
.mini-rank { font-size: 1.25rem; font-weight: 900; }
.mini-name { overflow: hidden; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.mini-points { font-weight: 900; }
.mini-empty { padding: 18px; border: 2px dashed var(--ink); background: var(--paper); color: var(--muted); font-weight: 800; line-height: 1.4; }

.score-tabs { display: flex; flex-wrap: wrap; align-items: start; gap: 0; border-bottom: 3px solid var(--ink); }
.score-tab-list { display: flex; align-items: stretch; }
.score-tab { min-height: 48px; padding: 8px 20px; border-width: 2px 2px 0 0; white-space: nowrap; }
.score-tab-list .score-tab:first-child, .score-tabs > .score-tab:first-child { border-left-width: 2px; }
.score-tab.active { color: #fff; background: var(--ink); }
.task-tab-filters { display: flex; flex: 1 1 0; min-width: 0; margin-left: 12px; }
.task-tab-filters .task-toolbar { display: flex; flex-wrap: nowrap; width: 100%; gap: 8px; }
.task-tab-filters .task-toolbar select { flex: 1 1 0; min-width: 0; }
.tab-panel { padding: 30px 0; }
.score-subtabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.score-subtabs .active { color: #fff; background: var(--ink); }

.game-picker-wrap { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(250px, 2fr) auto; gap: 10px 16px; align-items: end; margin-bottom: 22px; }
.game-picker-wrap label { grid-column: 1 / -1; }
.game-progress { color: var(--muted); font-size: .82rem; font-weight: 800; }
.game-overview { margin-bottom: 30px; }
.game-overview-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 14px; }
.game-overview-heading .eyebrow { margin: 0 0 4px; }
.game-overview-heading h2 { margin: 0; }
.game-overview-groups { display: grid; gap: 18px; }
.game-status-group { border: 3px solid var(--ink); background: var(--paper); box-shadow: var(--shadow); }
.game-status-group > summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 13px 16px; cursor: pointer; list-style: none; }
.game-status-group > summary::-webkit-details-marker { display: none; }
.game-status-group[open] > summary { border-bottom: 2px solid var(--ink); }
.game-status-group h3, .game-status-group p { margin: 0; }
.game-status-group p { margin-top: 3px; color: var(--muted); font-size: .86rem; }
.game-status-summary-actions { display: flex; align-items: center; }
.game-status-summary-actions > span { min-width: 32px; padding: 4px 8px; border: 2px solid var(--ink); background: #fff; text-align: center; font-weight: 900; }
.game-status-progress > summary { background: var(--yellow); }
.game-status-complete > summary { background: #dff2d8; }
.game-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; padding: 16px; }
.completed-game-sections { display: grid; gap: 22px; padding: 16px; }
.completed-game-section { min-width: 0; }
.completed-game-section + .completed-game-section { padding-top: 20px; border-top: 2px solid var(--ink); }
.completed-game-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.completed-game-heading h4 { margin: 0; font-size: 1rem; letter-spacing: .06em; text-transform: uppercase; }
.completed-game-heading span { min-width: 30px; padding: 3px 7px; border: 2px solid var(--ink); background: #fff; text-align: center; font-weight: 900; }
.completed-game-section > .game-card-grid { padding: 0; }
.game-overview-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 9px; min-height: 150px; padding: 18px; overflow: hidden; border: 3px solid var(--ink); background: #fff; box-shadow: 5px 5px 0 var(--ink); text-align: left; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease; }
.game-overview-card:hover, .game-overview-card:focus-visible, .game-overview-card.selected { transform: translate(-3px, -3px); box-shadow: 8px 8px 0 var(--ink); outline: 0; }
.public-game-card-details { min-width: 0; }
.public-game-card-details > summary { list-style: none; }
.public-game-card-details > summary::-webkit-details-marker { display: none; }
.public-game-overview-card { width: 100%; box-sizing: border-box; cursor: pointer; }
.public-game-overview-card:hover { transform: translate(-3px, -3px); box-shadow: 8px 8px 0 var(--ink); }
.public-art-overview-image { display: block; width: 100%; height: auto; box-sizing: border-box; border: 2px solid var(--ink); background: #fff; }
.public-photo-awards-pile { position: relative; display: block; width: 100%; height: 210px; box-sizing: border-box; margin: 3px 0 2px; overflow: hidden; border: 2px solid var(--ink); background: #dff2d8; }
.public-photo-awards-pile img { position: absolute; display: block; width: 53%; height: 62%; object-fit: cover; border: 2px solid var(--ink); box-shadow: 3px 3px 0 rgba(23, 19, 15, .68); }
.public-photo-awards-pile img:nth-child(1) { z-index: 2; top: 7%; left: -2%; transform: rotate(-10deg); }
.public-photo-awards-pile img:nth-child(2) { z-index: 4; top: 3%; left: 24%; transform: rotate(5deg); }
.public-photo-awards-pile img:nth-child(3) { z-index: 3; top: 10%; right: -3%; transform: rotate(11deg); }
.public-photo-awards-pile img:nth-child(4) { z-index: 5; bottom: 2%; left: 4%; transform: rotate(7deg); }
.public-photo-awards-pile img:nth-child(5) { z-index: 7; bottom: -4%; left: 27%; transform: rotate(-4deg); }
.public-photo-awards-pile img:nth-child(6) { z-index: 6; right: 2%; bottom: 0; transform: rotate(-8deg); }
.public-photo-awards-pile img:nth-child(7) { z-index: 8; top: 20%; left: 24%; transform: rotate(1deg); }
.public-game-card-details[open] { grid-column: 1 / -1; }
.public-game-card-details[open] > summary { margin-bottom: 16px; }
.public-game-ranking-detail { padding: 18px; border: 3px solid var(--ink); background: #fffdf7; box-shadow: 5px 5px 0 var(--ink); }
.public-game-ranking-detail h4 { margin: 0 0 5px; font-size: 1.3rem; }
.public-game-ranking-detail > p { margin: 0 0 14px; color: var(--muted); }
.public-game-ranking-section > p { margin: 0 0 14px; color: var(--muted); line-height: 1.4; }
.public-game-ranking-section + .public-game-ranking-section { margin-top: 24px; padding-top: 20px; border-top: 3px solid var(--ink); }
.player-status-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.player-status-chips span { padding: 7px 9px; border: 2px solid var(--ink); background: var(--yellow); font-size: .86rem; font-weight: 900; line-height: 1.1; }
.photo-public-ranking-detail .player-status-chips span { background: #dff2d8; }
.player-status-complete { margin: 0; padding: 10px 12px; border: 2px solid #315d24; background: #e4f5dc; color: #315d24; font-weight: 900; }
.game-resource-link { display: inline-flex; align-items: center; margin: 0 0 18px; color: var(--ink); text-decoration: none; }
.game-resource-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; }
.game-resource-links .game-resource-link { margin: 0; }
.music-playlist-link { background: #1ed760; }
.walkabout-map-link { background: var(--yellow); }
.art-ballot-link { background: var(--yellow); }
.art-gallery-link { background: #dff2d8; }
.photo-awards-link { background: #dff2d8; }
.public-full-ranking-list { display: grid; gap: 0; }
.public-full-ranking-list .token-row { border-bottom: 1px solid #cfc4ac; }
.public-full-ranking-list .token-row:last-child { border-bottom: 0; }
.art-ranking-view-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 20px; }
.art-ranking-view-switch button { min-height: 44px; padding: 9px 12px; border: 2px solid var(--ink); background: #fff; color: var(--ink); font: inherit; font-weight: 900; cursor: pointer; }
.art-ranking-view-switch button[aria-pressed="true"] { background: var(--yellow); box-shadow: 3px 3px 0 var(--ink); }
.art-ranking-view-switch button:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.art-ranking-views [data-art-ranking-panel] > h4 { margin: 0 0 5px; }
.art-ranking-views [data-art-ranking-panel] > p { margin: 0 0 14px; color: var(--muted); line-height: 1.4; }
.art-rock-ranking-row { --art-rock-thumb-size: 64px; grid-template-columns: 36px calc(var(--art-rock-thumb-size) + 8px) minmax(0, 1fr) max-content !important; }
.art-rock-ranking-row.art-rock-rank-1 { --art-rock-thumb-size: 112px; }
.art-rock-ranking-row.art-rock-rank-2, .art-rock-ranking-row.art-rock-rank-3 { --art-rock-thumb-size: 88px; }
.art-rock-ranking-thumbnail { display: block; width: var(--art-rock-thumb-size); height: var(--art-rock-thumb-size); padding: 0; overflow: hidden; border: 2px solid var(--ink); background: #e7e0d1; cursor: zoom-in; }
.art-rock-ranking-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
.art-rock-ranking-thumbnail.empty { border-style: dashed; }
.art-rock-ranking-thumbnail:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.game-overview-card.status-upcoming { background: #fffdf7; }
.game-overview-card.status-progress { background: #fff0a8; }
.game-overview-card.status-complete { background: #dff2d8; }
.game-overview-card.status-cancelled { background: #eee8d9; border-style: dashed; box-shadow: none; }
.game-status-mark { position: absolute; top: 0; right: 0; display: grid; width: 64px; height: 64px; place-content: center; border-left: 3px solid var(--ink); border-bottom: 3px solid var(--ink); background: #e7e0d1; text-align: center; }
.game-status-mark b { font-size: 1.25rem; line-height: 1; }
.game-status-mark small { margin: 2px 0 0; color: var(--ink); font-size: .57rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.status-progress .game-status-mark { background: var(--blue); color: #fff; }
.status-progress .game-status-mark small { color: #fff; }
.status-complete .game-status-mark { background: var(--yellow); }
.game-overview-card strong { max-width: calc(100% - 34px); font-size: 1.2rem; line-height: 1.1; }
.game-overview-card strong .game-card-subtitle { display: block; margin: 5px 0 0; color: var(--muted); font-size: .72rem; font-weight: 900; letter-spacing: .04em; line-height: 1; text-transform: uppercase; }
.game-overview-card small { margin-top: auto; color: var(--muted); font-weight: 800; }
.game-overview-card .game-card-schedule { display: inline-flex; align-items: center; min-height: 26px; box-sizing: border-box; margin-top: auto; padding: 3px 7px; border: 1px solid var(--blue); color: var(--blue); font-size: .72rem; letter-spacing: .04em; line-height: 1; text-transform: uppercase; }
.game-card-results { width: 100%; padding-top: 3px; text-align: left; }
.game-card-results p { margin: 0 0 5px; color: var(--ink); font-size: .82rem; line-height: 1.35; }
.game-card-results p.muted { color: var(--muted); }
.game-card-results ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.game-card-results li { font-size: .8rem; line-height: 1.35; }
.live-preview { display: flex; flex: 1; width: 100%; flex-direction: column; gap: 5px; }
.live-preview p { margin: 0; }
.pending-rankings-note { color: var(--muted); font-size: .82rem; font-weight: 800; }
.submission-pill { align-self: flex-start; margin-top: auto; padding: 4px 8px; border: 2px solid var(--ink); background: #fff; color: var(--ink); font-size: .74rem; font-weight: 900; line-height: 1; text-transform: uppercase; }
.preview-heading { display: block; margin-top: 3px; padding-top: 6px; border-top: 1px solid rgba(23, 19, 15, .42); font-size: .76rem; letter-spacing: .05em; text-transform: uppercase; }
.live-ranking { display: grid; gap: 3px; margin: 0; padding: 0; list-style: none; }
.live-ranking li { display: grid; grid-template-columns: 18px 1fr auto; gap: 4px; align-items: baseline; }
.live-ranking li b { color: var(--muted); }
.live-ranking li small { margin: 0; font-size: .72rem; white-space: nowrap; }
.live-ranking li > span { min-width: 0; }
.live-ranking li .music-preview-song { display: block; margin-top: 1px; color: var(--muted); font-size: .66rem; font-weight: 700; line-height: 1.2; white-space: normal; }
.mvp-card-heading { display: block; margin: 8px 0 3px; padding-top: 6px; border-top: 1px solid var(--ink); font-size: .76rem; letter-spacing: .05em; text-transform: uppercase; }
.mvp-card-summary { display: grid; gap: 8px; }
.mvp-card-summary section { padding-top: 6px; border-top: 1px solid rgba(23, 19, 15, .38); }
.mvp-card-summary section > strong { display: block; margin-bottom: 3px; font-size: .82rem; }
.mvp-card-summary ol { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.mvp-card-summary li { display: grid; grid-template-columns: 18px 1fr; gap: 5px; }
.mvp-card-summary li b { color: var(--muted); }
.game-editor { width: 100%; min-width: 0; max-width: 100%; border: 3px solid var(--ink); background: var(--paper); box-shadow: var(--shadow); }
.editor-header { display: flex; justify-content: space-between; align-items: start; gap: 24px; padding: 24px; border-bottom: 3px solid var(--ink); background: #fff; }
.editor-header h2 { margin: 4px 0 0; }
.type-badge, .count-badge { display: inline-block; padding: 5px 8px; border: 2px solid var(--ink); background: var(--blue); color: #fff; font-size: .72rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.editor-help { margin: 0; padding: 15px 24px; border-bottom: 2px solid var(--ink); background: var(--yellow); line-height: 1.45; }
.editor-body { min-width: 0; max-width: 100%; padding: 24px; }

.team-settings { display: grid; grid-template-columns: 160px 1fr; gap: 12px; align-items: end; margin-bottom: 22px; }
.team-settings > label { display: grid; gap: 6px; }
.team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.team-card { border: 2px solid var(--ink); background: #fff; }
.team-card-header { display: grid; grid-template-columns: 1fr 150px; gap: 10px; padding: 12px; border-bottom: 2px solid var(--ink); background: var(--cream); }
.team-card-body { padding: 14px; }
.team-roster { margin: 0 0 16px; padding: 0; list-style: none; columns: 2; column-gap: 18px; }
.team-roster li { margin-bottom: 5px; break-inside: avoid; font-size: .9rem; }
.team-roster .empty { color: var(--muted); font-style: italic; }
.mvp-grid, .podium-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.mvp-grid label, .podium-grid label { display: grid; gap: 5px; }
.mvp-grid label:nth-child(1)::first-line, .podium-grid label:nth-child(1)::first-line { color: #8a6900; }
.mvp-pending { display: grid; gap: 7px; margin-bottom: 12px; padding: 10px; border: 2px solid var(--ink); background: #fff0a8; }
.mvp-pending.complete { background: #dff2d8; }
.mvp-pending > div { display: flex; flex-wrap: wrap; gap: 6px; }
.mvp-pending span { padding: 4px 6px; border: 1px solid var(--ink); background: var(--paper); font-size: .8rem; font-weight: 800; }
.assignment-table { margin-top: 22px; border-top: 2px solid var(--ink); }
.assignment-row { display: grid; grid-template-columns: minmax(140px, 1fr) minmax(150px, 220px); gap: 16px; align-items: center; padding: 8px 0; border-bottom: 1px solid #c8bfae; }
.assignment-row strong { overflow: hidden; text-overflow: ellipsis; }

.podium-grid { max-width: 780px; }
.podium-grid label { padding: 16px; border: 2px solid var(--ink); background: #fff; }
.podium-grid label:first-child { background: var(--yellow); }
.podium-points { font-size: .75rem; text-transform: none; color: var(--muted); }

.ballot-form { display: grid; grid-template-columns: repeat(4, 1fr) auto; gap: 10px; align-items: end; padding: 16px; border: 2px solid var(--ink); background: #fff; }
.ballot-form label { display: grid; gap: 5px; }
.ballot-error { grid-column: 1 / -1; margin: 0; color: #a51e17; font-weight: 800; }
.vote-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 22px; }
.vote-box { border: 2px solid var(--ink); background: #fff; }
.vote-box h3 { margin: 0; padding: 12px 14px; border-bottom: 2px solid var(--ink); background: var(--cream); }
.tally-list, .ballot-list { margin: 0; padding: 0; list-style: none; }
.tally-list li, .ballot-list li { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 9px 14px; border-bottom: 1px solid #d4cbbb; }
.tally-list strong { min-width: 32px; text-align: center; background: var(--yellow); }
.ballot-list small { color: var(--muted); }
.icon-button { min-width: 32px; min-height: 32px; border: 1px solid var(--ink); background: #fff; cursor: pointer; font-weight: 900; }
.voting-podium { margin-top: 22px; padding-top: 22px; border-top: 2px solid var(--ink); }
.voting-podium-head { display: flex; justify-content: space-between; gap: 14px; align-items: center; margin-bottom: 12px; }
.voting-podium-head h3 { margin: 0; }

.panel-heading { display: flex; min-width: 0; max-width: 100%; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 10px; }
.panel-heading > * { min-width: 0; }
.panel-heading .eyebrow { margin: 0 0 7px; }
.player-gallery-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.player-gallery-submit-link { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 9px 13px; background: var(--yellow); color: var(--ink); text-align: center; text-decoration: none; white-space: nowrap; }
.task-heading-actions { display: flex; align-items: center; gap: 10px; }
.task-heading-actions .score-button,
.task-heading-actions .count-badge { display: inline-flex; width: 148px; min-height: 44px; align-items: center; justify-content: center; padding: 9px 14px; }
.task-heading-actions .count-badge { box-shadow: 3px 3px 0 var(--ink); font-size: .85rem; letter-spacing: .03em; }
.panel-intro { max-width: 740px; color: var(--muted); line-height: 1.5; }
.player-scoreboard-photo { max-width: 760px; margin: 24px auto; overflow: hidden; border: 3px solid var(--ink); background: #fff; box-shadow: var(--shadow); }
.player-scoreboard-photo a, .player-scoreboard-photo img { display: block; width: 100%; }
.player-scoreboard-photo img { height: auto; }
.player-scoreboard-photo figcaption { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-top: 3px solid var(--ink); background: var(--yellow); }
.player-scoreboard-photo figcaption strong { font-size: .92rem; text-transform: uppercase; }
.player-scoreboard-photo figcaption span { color: var(--muted); font-size: .75rem; font-weight: 900; text-transform: uppercase; }
.leaderboard { margin-top: 24px; border: 3px solid var(--ink); background: var(--paper); box-shadow: var(--shadow); }
.leader-row { display: block; padding: 0; border-bottom: 2px solid var(--ink); }
.leader-row summary { display: grid; grid-template-columns: 54px minmax(140px, 1fr) 110px; gap: 14px; align-items: center; padding: 12px 16px; cursor: pointer; list-style: none; }
.leader-row summary::-webkit-details-marker { display: none; }
.leader-row summary strong small { display: block; margin-top: 3px; color: var(--muted); font-size: .68rem; text-transform: uppercase; }
.leader-name-line { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 7px; }
.achievement-flags { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.achievement-flag { display: inline-flex; align-items: center; max-width: 100%; min-height: 20px; padding: 3px 7px; border: 1px solid var(--ink); border-radius: 12px; color: var(--ink); font-size: .56rem; font-weight: 900; line-height: 1.25; letter-spacing: .01em; text-transform: uppercase; white-space: normal; }
.achievement-icon { margin-right: 2px; font-size: .72rem; line-height: 1; }
.trophy-icon { flex: 0 0 auto; width: .72rem; height: .72rem; }
.achievement-flag.mvp { background: #dbeaff; }
.achievement-flag.ranked { background: var(--yellow); }
.leader-row:last-child { border-bottom: 0; }
.leader-rank, .leader-total { font-size: 1.35rem; font-weight: 900; }
.leader-breakdown-groups { display: grid; gap: 10px; padding: 0 16px 16px 84px; }
.leader-breakdown-group { padding: 9px 10px; border: 1px solid #c8bfae; background: #f7f1e4; }
.leader-breakdown-group > strong { display: block; margin-bottom: 7px; color: var(--ink); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.leader-breakdown { display: flex; flex-wrap: wrap; gap: 7px; color: var(--muted); font-size: .82rem; line-height: 1.35; }
.leader-breakdown span { padding: 5px 8px; border: 1px solid #c8bfae; background: #fff; }

.add-competitor { margin: 0 0 16px; }
.add-competitor form { margin-top: 12px; padding: 14px; border: 2px solid var(--ink); background: var(--cream); box-shadow: 3px 3px 0 var(--ink); }
.add-competitor form > label { display: block; margin-bottom: 6px; }
.add-competitor form > div { display: flex; max-width: 680px; gap: 10px; }
.competitor-view-switch { display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; margin: 18px 0 16px; }
.competitor-view-switch .active { color: #fff; background: var(--ink); }
.competitor-view-switch .count-badge { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 44px; margin-left: auto; padding: 9px 14px; box-shadow: 3px 3px 0 var(--ink); font-size: 1rem; letter-spacing: .03em; }
.competitor-list { display: grid; gap: 18px; }
.team-balance-panel { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 14px 16px; border: 3px solid var(--ink); box-shadow: 4px 4px 0 var(--ink); }
.team-balance-panel.balanced { background: #dcefd7; }
.team-balance-panel.needs-work { background: #ffe3a3; }
.team-balance-panel div { flex: 0 0 auto; }
.team-balance-panel small { display: block; margin-bottom: 2px; font-size: .68rem; font-weight: 900; text-transform: uppercase; }
.team-balance-panel strong { font-size: 1.3rem; }
.team-balance-panel p { max-width: 720px; margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.4; }
.competitor-group { overflow: hidden; border: 3px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.competitor-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 2px solid var(--ink); background: var(--cream); }
.competitor-group-heading h3 { margin: 0; font-size: 1.25rem; }
.competitor-group-heading span { padding: 4px 8px; border: 1px solid var(--ink); background: var(--paper); font-size: .76rem; font-weight: 900; text-transform: uppercase; }
.competitor-group[data-competitor-group="kids"] .competitor-group-heading { background: var(--yellow); }
.competitor-group[data-competitor-group="drop-in"] .competitor-group-heading { background: #dcefd7; }
.competitor-group[data-competitor-group="unconfirmed"] .competitor-group-heading { background: #eee8d9; }
.main-team-heading { background: var(--yellow); }
.unassigned-team-group { margin-top: 14px; }
.unassigned-team-group .competitor-group-heading { background: #eee8d9; }
.inline-team-name { display: grid; flex: 1 1 260px; gap: 3px; min-width: 0; max-width: 380px; }
.inline-team-name small { font-size: .64rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.inline-team-name input { min-height: 38px; padding: 5px 8px; background: rgba(255, 255, 255, .76); font-size: 1.08rem; font-weight: 900; }
.sub-team-name { max-width: 270px; }
.competitor-subteam-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 12px; }
.competitor-subteam { min-width: 0; border: 2px solid var(--ink); background: var(--cream); }
.competitor-subteam > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-bottom: 2px solid var(--ink); }
.team-balance-counts { display: grid; gap: 2px; text-align: right; }
.team-balance-counts b { font-size: .76rem; text-transform: uppercase; }
.team-balance-counts small { color: var(--muted); font-size: .64rem; font-weight: 900; white-space: nowrap; text-transform: uppercase; }
.competitor-group-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 10px; }
.competitor-subteam .competitor-group-list { grid-template-columns: 1fr; }
.competitor-group-empty { grid-column: 1 / -1; margin: 0; padding: 12px; color: var(--muted); text-align: center; }
.competitor-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 10px; border: 2px solid var(--ink); background: var(--paper); }
.competitor-row.expanded { grid-template-columns: minmax(150px, 1.4fr) minmax(105px, .6fr) minmax(145px, 1fr) 42px; }
.competitor-row.expanded.class-view-row { grid-template-columns: minmax(150px, 1.4fr) minmax(105px, .6fr) 42px; }
.competitor-row.unconfirmed { background: #eee8d9; border-style: dashed; }
.competitor-row > * { min-width: 0; }
.competitor-row .icon-button { width: 42px; justify-self: end; }
.not-on-team { display: flex; align-items: center; min-height: 42px; padding: 8px 10px; border: 2px dashed var(--ink); background: #eee8d9; color: var(--muted); font-size: .78rem; font-weight: 900; text-transform: uppercase; }
.lodging-copy-editor { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 22px 0; }
.lodging-copy-editor label { display: grid; gap: 6px; }
.lodging-assignment-list { border: 3px solid var(--ink); background: var(--paper); box-shadow: var(--shadow); }
.lodging-assignment-row { display: grid; grid-template-columns: minmax(160px, .8fr) 170px minmax(220px, 1.2fr); gap: 12px; align-items: center; padding: 10px 12px; border-bottom: 1px solid #c8bfae; }
.lodging-assignment-row:last-child { border-bottom: 0; }
.lodging-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.lodging-toolbar label { display: grid; flex: 1; gap: 6px; }
.lodging-attention { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.lodging-attention article { display: grid; gap: 5px; padding: 13px 15px; border: 3px solid var(--ink); background: var(--paper); box-shadow: 3px 3px 0 var(--ink); }
.lodging-attention article strong { font-size: 1.05rem; }
.lodging-attention article span { color: var(--muted); font-size: .85rem; line-height: 1.35; }
.lodging-attention article.danger { background: #ffd4cc; }
.lodging-attention article.warning { background: #fff0a8; }
.lodging-attention article.clear { background: #dff2d8; }
.lodging-location-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.lodging-location-card { min-width: 0; border: 3px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.lodging-location-summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-bottom: 2px solid var(--ink); background: var(--yellow); }
.lodging-location-summary > div { display: grid; gap: 2px; }
.lodging-location-summary small { font-size: .67rem; font-weight: 900; text-transform: uppercase; }
.lodging-location-summary strong { font-size: 1.2rem; }
.lodging-location-summary span { color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.lodging-location-editor { display: none; gap: 10px; padding: 12px 14px; border-bottom: 1px solid #c8bfae; }
.lodging-location-card.expanded .lodging-location-editor { display: grid; }
.lodging-location-editor label { display: grid; gap: 5px; font-weight: 800; }
.lodging-bed-list { display: grid; }
.lodging-area-heading { display: grid; gap: 2px; padding: 10px 12px; border-bottom: 2px solid var(--ink); background: #dbeaf7; }
.lodging-area-heading small { font-size: .67rem; font-weight: 900; text-transform: uppercase; }
.lodging-area-heading strong { font-size: 1.05rem; }
.lodging-public-area { margin: 12px 0 0; padding: 8px 12px; box-sizing: border-box; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--ink); background: #dbeaf7; font-size: .9rem; text-transform: uppercase; }
.lodging-bed-row { border-bottom: 1px solid #c8bfae; }
.lodging-bed-row.status-missing, .lodging-bed-row.status-needs-setup { background: #ffd4cc; }
.lodging-bed-row.status-proposed, .lodging-bed-row.status-tentative, .lodging-bed-row.status-needs-confirmation { background: #fff7ce; }
.lodging-bed-summary { display: grid; grid-template-columns: minmax(0, .9fr) auto minmax(0, 1.4fr) auto; gap: 8px; align-items: center; padding: 10px 12px; }
.lodging-bed-summary > div:first-child { display: grid; gap: 2px; }
.lodging-bed-summary strong { font-size: 1rem; }
.lodging-bed-summary small { color: var(--muted); font-size: .74rem; font-weight: 800; }
.lodging-status { padding: 4px 6px; border: 1px solid var(--ink); background: var(--paper); font-size: .68rem; font-weight: 900; text-transform: uppercase; white-space: nowrap; }
.lodging-bed-people-summary { display: flex; flex-wrap: wrap; gap: 5px; }
.lodging-person-card { display: inline-flex; align-items: center; min-height: 26px; padding: 3px 6px; border: 1px solid var(--ink); background: var(--paper); font-size: .74rem; font-weight: 800; }
.lodging-person-card.empty { color: var(--muted); border-style: dashed; }
.lodging-bed-editor { display: none; padding: 10px 12px 12px; border-top: 1px solid #c8bfae; }
.lodging-bed-row.expanded .lodging-bed-editor { display: grid; gap: 10px; }
.lodging-bed-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(140px, .8fr) 150px; gap: 8px; }
.lodging-bed-heading input { font-weight: 900; }
.lodging-bed-people { display: flex; flex-wrap: wrap; gap: 7px; grid-column: 1 / -1; }
.lodging-bed-people select { width: auto; min-width: 145px; }
.lodging-person-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 6px 9px; border: 2px solid var(--ink); background: var(--paper); font: inherit; font-weight: 800; cursor: pointer; }
.lodging-person-chip span { font-size: 1.15em; }
.lodging-bed-editor > input[data-lodging-bed-note] { grid-column: 1 / -1; }
.lodging-editor-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.lodging-unassigned { margin-top: 22px; }
.lodging-unassigned.has-alert { background: #ffd4cc; }
.lodging-unassigned-list { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px; }
.lodging-unassigned-list span { padding: 8px 10px; border: 2px dashed var(--ink); background: #eee8d9; font-weight: 800; }
.lodging-unassigned-list p { margin: 0; color: var(--muted); }
.ride-grid, .ride-public-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ride-card, .ride-public-card { min-width: 0; border: 3px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.ride-card.checked-in { opacity: .72; background: #e5eee2; }
.ride-card.status-needs-confirmation, .ride-card.status-tentative, .ride-public-card.status-needs-confirmation, .ride-public-card.status-tentative { background: #fff7ce; }
.ride-card.status-available, .ride-card.status-onsite, .ride-public-card.status-available, .ride-public-card.status-onsite { background: #dff2d8; }
.ride-card.checked-in { background: #e5eee2; }
.ride-summary { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, .8fr) auto; gap: 10px; align-items: center; padding: 12px; background: var(--yellow); }
.ride-checkin { width: 26px; height: 26px; margin: 0; accent-color: var(--ink); cursor: pointer; }
.ride-summary-title { display: grid; gap: 2px; min-width: 0; }
.ride-summary-title strong { font-size: 1.08rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ride-summary-title span { color: var(--muted); font-size: .84rem; font-weight: 800; }
.ride-summary-people { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ride-person-card { display: inline-flex; align-items: center; min-height: 28px; padding: 3px 7px; border: 1px solid var(--ink); background: var(--paper); font-size: .76rem; font-weight: 800; }
.ride-person-card.empty { color: var(--muted); border-style: dashed; }
.ride-editor { display: none; }
.ride-card.expanded .ride-editor { display: block; }
.ride-card > header { display: grid; grid-template-columns: minmax(0, 1fr) 170px 42px; gap: 8px; padding: 12px; border-bottom: 2px solid var(--ink); background: var(--yellow); }
.ride-editor > header { background: var(--cream); }
.ride-card > header input { font-size: 1.05rem; font-weight: 900; }
.ride-fields { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.2fr); gap: 10px; padding: 12px; border-bottom: 1px solid #c8bfae; }
.ride-fields label, .ride-note { display: grid; gap: 5px; font-weight: 800; }
.ride-passengers { display: grid; gap: 7px; padding: 12px; border-bottom: 1px solid #c8bfae; }
.ride-passengers > small { font-weight: 900; text-transform: uppercase; }
.ride-passengers > div { display: flex; flex-wrap: wrap; gap: 7px; }
.ride-passengers select { width: auto; min-width: 145px; }
.ride-note { padding: 12px; }
.ride-editor-actions { display: flex; justify-content: flex-end; padding: 0 12px 12px; }
.ride-board-note { margin: 0 0 12px; color: var(--muted); font-weight: 700; }
.transportation-toolbar { display: flex; justify-content: flex-end; margin: 0 0 12px; }
.ride-section { margin: 22px 0; }
.ride-section > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 2px solid var(--ink); }
.ride-section > header h3, .ride-section > header span, .ride-section > p { margin: 0; }
.ride-section > header span { font-weight: 900; text-transform: uppercase; }
.ride-section > p { padding: 12px 0; color: var(--muted); font-weight: 700; }
.ride-section .ride-grid { margin-top: 12px; }
.ride-public-card { box-shadow: none; }
.ride-public-card > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-bottom: 2px solid var(--ink); background: var(--cream); }
.ride-public-card h3, .ride-public-card p { margin: 0; }
.ride-public-card p { padding: 9px 14px; border-bottom: 1px solid #c8bfae; color: var(--muted); line-height: 1.4; }
.ride-public-card p:last-child { border-bottom: 0; }
.ride-public-card p strong { color: var(--ink); }
.ride-public-note { font-style: italic; }

.leader-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 8px; }
.leader-filters .active { color: #fff; background: var(--ink); }
.wide-label, .game-note { display: grid; gap: 6px; }
.editor-actions { display: flex; flex-wrap: wrap; gap: 9px; justify-content: flex-end; }
.entry-section { padding: 22px 0; border-bottom: 2px solid #c8bfae; }
.entry-section:last-child { border-bottom: 0; }
.entry-section > p, .section-line p { margin-bottom: 12px; color: var(--muted); line-height: 1.45; }
.attendance-section > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; font-size: 1.3rem; font-weight: 900; }
.attendance-section > summary small { color: var(--muted); font-size: .78rem; font-weight: 900; text-transform: uppercase; }
.attendance-section[open] > summary { margin-bottom: 14px; }
.game-step > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; font-size: 1.3rem; font-weight: 900; }
.game-step > summary small { color: var(--muted); font-size: .78rem; font-weight: 900; text-transform: uppercase; }
.game-step[open] > summary { margin-bottom: 14px; }
.game-step-body > p { margin: 0 0 12px; color: var(--muted); line-height: 1.45; }
.attendance-body > .section-line p { margin: 0; }
.section-line { display: flex; justify-content: space-between; align-items: start; gap: 18px; }
.check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.participant-picker-tools { display: flex; align-items: end; gap: 14px; margin: 16px 0 12px; }
.participant-picker-tools label { display: grid; flex: 1 1 280px; gap: 5px; font-size: .8rem; font-weight: 900; text-transform: uppercase; }
.participant-picker-tools p { margin: 0; color: var(--muted); font-size: .82rem; }
.participant-add-missing { display: flex; flex: 1 1 100%; align-items: end; gap: 10px; padding: 10px; border: 2px dashed var(--ink); background: var(--paper); }
.participant-add-missing > span { flex: 1 1 170px; font-size: .86rem; }
.participant-add-missing label { flex: 0 1 150px; }
.participant-add-missing .text-button { min-height: 38px; white-space: nowrap; }
.participant-picker-layout { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 16px; align-items: start; }
.participant-order { position: sticky; top: 10px; padding: 12px; border: 2px solid var(--ink); background: var(--cream); }
.participant-order > strong { display: block; margin-bottom: 8px; font-size: .8rem; text-transform: uppercase; }
.participant-order ol { display: grid; gap: 5px; max-height: 330px; margin: 0; padding: 0; overflow: auto; list-style: none; }
.participant-order li { display: grid; grid-template-columns: 22px 1fr; gap: 6px; align-items: baseline; font-size: .84rem; }
.participant-order li b { color: var(--muted); }
.check-card { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 10px; border: 2px solid var(--ink); background: #fff; text-transform: none; }
.check-card input { width: 20px; min-height: 20px; accent-color: var(--blue); }
.unconfirmed-search-card { background: #eee8d9; border-style: dashed; }
.unconfirmed-search-card span { display: grid; gap: 2px; }
.unconfirmed-search-card small { color: var(--muted); font-size: .72rem; font-weight: 700; }
.award-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.award-card { padding: 14px; border: 2px solid var(--ink); background: #fff; }
.award-card:first-child { background: var(--yellow); }
.award-chips { display: flex; flex-wrap: wrap; gap: 6px; min-height: 43px; padding: 10px 0; }
.person-chip { padding: 5px 7px; border: 1px solid var(--ink); background: var(--paper); cursor: pointer; font-weight: 700; }
.muted { color: var(--muted); }
.metric-table { border-top: 2px solid var(--ink); }
.metric-row { display: grid; grid-template-columns: minmax(150px, 1fr) repeat(2, minmax(130px, 180px)); gap: 12px; align-items: end; padding: 9px 0; border-bottom: 1px solid #c8bfae; }
.metric-row label { display: grid; gap: 4px; }
.inline-ballot { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)) auto; gap: 9px; align-items: end; padding: 14px; border: 2px solid var(--ink); background: #fff; }
.inline-ballot label { display: grid; gap: 5px; }
.walkabout-entry-form { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(130px, 180px) auto; gap: 9px; align-items: end; padding: 14px; border: 2px solid var(--ink); background: #fff; }
.walkabout-entry-form label { display: grid; gap: 5px; }
.walkabout-entry-form .ballot-error { grid-column: 1 / -1; margin: 0; }
.walkabout-entry-list { display: grid; gap: 0; margin: 14px 0 0; padding: 0; border: 2px solid var(--ink); background: #fff; list-style: none; }
.walkabout-entry-list li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 12px; border-bottom: 1px solid #c8bfae; }
.walkabout-entry-list li:last-child { border-bottom: 0; }
.walkabout-entry-list li b { color: var(--muted); margin-right: 6px; }
.walkabout-entry-list li > div { display: flex; align-items: center; gap: 10px; }
.cairn-round-list { display: grid; gap: 0; margin-top: 14px; border: 2px solid var(--ink); background: #fff; }
.cairn-round { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: 1px solid #c8bfae; }
.cairn-round:last-child { border-bottom: 0; }
.cairn-round > div { display: flex; flex: 1; flex-wrap: wrap; gap: 5px 14px; align-items: baseline; }
.cairn-round > div strong { color: var(--blue); text-transform: uppercase; font-size: .78rem; }
.cairn-round > div span { color: var(--muted); }
.cairn-round > div b { font-size: .88rem; }
.music-selection-search { display: grid; gap: 5px; max-width: 520px; margin: 14px 0; font-weight: 800; }
.music-selection-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.music-selection-sections > section { border: 2px solid var(--ink); background: var(--cream); }
.music-selection-sections > section > header { display: flex; justify-content: space-between; align-items: center; padding: 9px 11px; border-bottom: 2px solid var(--ink); background: var(--paper); }
.music-selection-sections h4 { margin: 0; font-size: .92rem; }
.music-selection-sections header span { min-width: 28px; padding: 2px 6px; border: 1px solid var(--ink); background: #fff; text-align: center; font-weight: 900; }
.music-selection-list { display: grid; gap: 8px; padding: 10px; }
.music-selection-card { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 9px; border: 2px solid var(--ink); background: #fff; }
.music-selection-card:not(:has(.playlist-position)) { grid-template-columns: minmax(0, 1fr); }
.playlist-position { display: grid; width: 28px; height: 28px; place-items: center; background: var(--blue); color: #fff; font-size: .85rem; }
.music-selection-fields { display: grid; gap: 5px; min-width: 0; }
.music-selection-fields strong { font-size: .88rem; }
.music-selection-fields input { min-width: 0; }
.playlist-controls { display: grid; grid-template-columns: repeat(2, 34px); gap: 4px; }
.playlist-controls .icon-button { min-width: 34px; min-height: 34px; padding: 0; }
.compact-list { margin: 14px 0 0; padding: 0; border: 2px solid var(--ink); list-style: none; background: #fff; }
.compact-list li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 12px; border-bottom: 1px solid #c8bfae; }
.compact-list li:last-child { border-bottom: 0; }
.mvp-ballot-list li.cross-team-vote { background: #fff0a8; }
.mvp-ballot-list li > span { display: grid; gap: 3px; }
.mvp-warning { color: #7a3e00; font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.music-ballot-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin-top: 14px; }
.music-ballot-card { border: 2px solid var(--ink); background: #fff; }
.music-ballot-card header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; border-bottom: 2px solid var(--ink); background: var(--cream); }
.music-ballot-card ol { margin: 0; padding: 8px 12px 10px 34px; }
.music-ballot-card li { padding: 3px 0 3px 4px; }
.round-list { display: grid; gap: 16px; }
.round-card { border: 2px solid var(--ink); background: #fff; }
.round-card summary { display: grid; grid-template-columns: 1fr 150px 150px; gap: 12px; align-items: end; padding: 14px; background: var(--cream); cursor: pointer; list-style: none; }
.round-card[open] summary { border-bottom: 2px solid var(--ink); }
.round-card summary::-webkit-details-marker { display: none; }
.round-card summary h3 { margin: 6px 0 0; }
.round-card summary label { display: grid; gap: 5px; }
.hider-grid { padding: 10px 14px; }
.hider-row { display: grid; grid-template-columns: minmax(150px, 1fr) 130px 180px; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid #d4cbbb; }
.hider-row label { display: flex; align-items: center; gap: 7px; text-transform: none; }
.hider-row label:last-child { display: grid; }
.hider-row input[type="checkbox"] { width: 20px; min-height: 20px; }
.game-note { margin-top: 22px; }

.art-admin { margin-top: 22px; }
.art-game-workspace, .photo-awards-workspace { width: 100%; min-width: 0; max-width: 100%; margin-top: 30px; padding-top: 28px; border-top: 3px solid var(--ink); }
.art-key-card, .art-upload { display: grid; gap: 12px; max-width: 680px; padding: 20px; border: 2px solid var(--ink); background: var(--paper); box-shadow: var(--shadow); }
.art-key-card label, .art-upload label { display: grid; gap: 5px; }
.art-toolbar { display: flex; align-items: center; gap: 12px; padding: 14px; border: 2px solid var(--ink); background: var(--yellow); }
.art-toolbar-copy { flex: 1; }
.art-toolbar-actions { display: flex; gap: 8px; }
.art-toolbar p { margin: 4px 0 0; }
.art-share-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; padding: 16px; border: 2px solid var(--ink); background: #fff; }
.art-share-card h3 { margin: 0 0 5px; }
.art-share-card a { color: var(--blue); overflow-wrap: anywhere; }
.art-setup-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.art-upload { max-width: none; grid-template-columns: repeat(2, 1fr); margin-top: 18px; box-shadow: none; }
.art-setup-grid .art-upload { margin-top: 0; }
.art-upload h3, .art-upload [data-art-message] { grid-column: 1 / -1; }
.art-overview-upload > p, .art-overview-upload [data-art-overview-message], .art-overview-preview { grid-column: 1 / -1; }
.art-overview-preview { display: block; width: 100%; max-height: 320px; object-fit: contain; border: 2px solid var(--ink); background: #fff; }
.art-voter-progress { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.art-voter-progress > div { padding: 14px; border: 2px solid var(--ink); background: var(--paper); }
.art-voter-progress h3 { display: flex; justify-content: space-between; gap: 10px; margin: 0 0 12px; }
.art-voter-progress h3 span { display: grid; place-items: center; min-width: 30px; height: 30px; border: 2px solid var(--ink); background: var(--yellow); }
.art-voter-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.art-voter-chips span { padding: 6px 8px; border: 1px solid var(--ink); background: #fff; font-weight: 800; }
.art-voter-chips.complete span { color: #315d24; background: #e4f5dc; }
.art-voter-chips em { color: var(--muted); }
.art-entry-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 18px; }
.art-entry { overflow: hidden; border: 2px solid var(--ink); background: #fff; }
.art-entry img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-bottom: 2px solid var(--ink); }
.art-entry > div { display: grid; gap: 5px; padding: 10px; }
.art-entry span { color: var(--muted); font-size: .82rem; }

.token-form { display: grid; grid-template-columns: minmax(220px, 1fr) 180px auto; gap: 10px; align-items: end; padding: 16px; border: 2px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.token-form label { display: grid; gap: 5px; }
.token-layout { display: grid; grid-template-columns: minmax(320px, .75fr) 1.25fr; gap: 20px; margin-top: 26px; }
.token-board { border: 3px solid var(--ink); background: var(--paper); }
.token-board h3 { margin: 0; padding: 13px; border-bottom: 2px solid var(--ink); }
.token-row { display: grid; grid-template-columns: 36px 1fr 55px; gap: 9px; align-items: center; padding: 10px 12px; border-bottom: 1px solid #c8bfae; }
.token-row:last-child { border-bottom: 0; }
.token-row.leader { background: var(--yellow); }
.token-row b { font-size: 1.25rem; text-align: right; }
.full-ranking-list { margin: 0; padding: 0; list-style: none; }
.full-ranking-list .token-row { grid-template-columns: 36px minmax(0, 1fr) max-content; }
.full-ranking-list .token-row strong { display: grid; gap: 2px; min-width: 0; }
.full-ranking-list .token-row strong small { color: var(--muted); font-size: .8rem; font-weight: 600; line-height: 1.25; }
.full-ranking-list .token-row b { white-space: nowrap; font-size: 1rem; }
.token-history small { display: block; margin-top: 3px; color: var(--muted); }
.photo-settings { display: grid; grid-template-columns: 1.5fr 180px 180px 180px auto; gap: 10px; align-items: end; padding: 16px; border: 2px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.photo-settings h3, .photo-settings [data-photo-admin-message] { grid-column: 1 / -1; }
.photo-settings > label:not(.check-card) { display: grid; gap: 5px; }
.photo-settings > label span { color: var(--muted); font-size: .68rem; text-transform: none; }
.photo-award-limit { display: grid; gap: 4px; min-height: 46px; align-content: center; padding: 7px 10px; border: 2px solid var(--ink); background: var(--yellow); }
.photo-award-limit span { color: var(--muted); font-size: .68rem; }
.photo-review-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding: 12px 14px; border: 2px solid var(--ink); background: var(--yellow); }
.photo-review-summary span { color: var(--muted); font-size: .82rem; }
.photo-admin-entry.reviewed { background: #e4f5dc; }
.photo-admin-entry > form { display: grid; gap: 10px; padding: 10px; }
.photo-admin-entry > form > label:not(.photo-reviewed-check) { display: grid; gap: 5px; font-size: .76rem; }
.photo-admin-entry > form > label > span { color: var(--muted); font-size: .68rem; line-height: 1.25; text-transform: none; }
.photo-review-status { display: grid; gap: 3px; }
.photo-review-status > strong { font-size: 1rem; }
.photo-review-status > span { color: var(--muted); font-size: .78rem; line-height: 1.3; }
.photo-reviewed-check { display: flex; align-items: center; gap: 8px; padding: 9px; border: 2px solid var(--ink); background: #fff; cursor: pointer; }
.photo-reviewed-check input { width: 20px; min-height: 20px; }
.photo-reviewed-check span { color: var(--ink) !important; font-size: .82rem !important; font-weight: 900; text-transform: uppercase !important; }
.photo-admin-secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.photo-admin-secondary button { width: 100%; }
.photo-admin-tags { display: grid; gap: 9px; min-width: 0; margin: 7px 0; padding: 10px; border: 2px solid var(--ink); background: var(--cream); }
.photo-admin-tags legend { padding: 0 5px; font-size: .75rem; font-weight: 900; text-transform: uppercase; }
.photo-admin-tags .category-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.photo-admin-tags .category-chips label { position: relative; cursor: pointer; }
.photo-admin-tags .category-chips input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.photo-admin-tags .category-chips span { display: block; padding: 5px 7px; border: 2px solid var(--ink); background: #fff; font-size: .76rem; font-weight: 900; }
.photo-admin-tags .category-chips input:checked + span { background: #d8ecd5; box-shadow: 2px 2px 0 var(--ink); }
.photo-admin-tags .score-button { width: 100%; }
.photo-gallery-progress { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; padding: 14px 16px; border: 3px solid var(--ink); background: var(--yellow); box-shadow: 4px 4px 0 var(--ink); }
.photo-gallery-progress span { color: var(--muted); font-size: .82rem; }
.photo-gallery-section { margin-top: 14px; border: 3px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.photo-gallery-section > summary { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 14px; padding: 15px 18px; cursor: pointer; list-style-position: outside; }
.photo-gallery-section > summary span { display: grid; gap: 3px; }
.photo-gallery-section > summary strong { font-size: 1.25rem; }
.photo-gallery-section > summary small { color: var(--muted); font-weight: 600; }
.photo-gallery-section > summary b { padding: 6px 9px; border: 2px solid var(--ink); background: #fff; font-size: .78rem; text-transform: uppercase; }
.photo-gallery-section.attention > summary b { background: var(--yellow); }
.photo-gallery-section.complete > summary { background: #e4f5dc; }
.photo-gallery-section-body { padding: 0 16px 18px; border-top: 2px solid var(--ink); }
.photo-album-manager { margin: 16px 0 20px; border: 2px solid var(--ink); background: #fff; }
.photo-album-manager > summary { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; padding: 12px; cursor: pointer; list-style: none; }
.photo-album-manager > summary::-webkit-details-marker { display: none; }
.photo-album-manager > summary::marker { content: ""; }
.photo-album-manager > summary span { display: grid; gap: 2px; }
.photo-album-manager > summary small { color: var(--muted); font-weight: 600; }
.photo-album-manager > summary b { font-size: .75rem; text-transform: uppercase; }
.photo-album-manager > summary b::after { content: " +"; font-size: 1rem; }
.photo-album-manager[open] > summary { border-bottom: 2px solid var(--ink); background: var(--yellow); }
.photo-album-manager[open] > summary b::after { content: " −"; }
.photo-album-settings { display: grid; gap: 10px; padding: 16px 0 20px; }
.photo-album-manager .photo-album-settings { padding: 14px; }
.photo-album-manager-heading, .photo-album-manager-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.photo-album-manager-heading > div { display: grid; gap: 3px; }
.photo-album-manager-heading strong { font-size: 1.05rem; }
.photo-album-manager-heading span { color: var(--muted); font-size: .78rem; }
.photo-album-manager-list { display: grid; gap: 8px; }
.photo-album-manager-list > .empty-state { margin: 0; }
.photo-album-manager-row { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(150px, .7fr) auto; align-items: end; gap: 8px; padding: 10px; border: 2px solid var(--ink); background: var(--cream); }
.photo-album-manager-row label { display: grid; gap: 4px; min-width: 0; }
.photo-album-manager-row label > span { color: var(--muted); font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.photo-album-manager-row label small { font-weight: 600; text-transform: none; }
.photo-album-manager-row input { width: 100%; min-width: 0; }
.photo-album-manager-row .text-button { min-height: 42px; }
.photo-album-manager-actions { justify-content: flex-start; }
.photo-album-manager-actions [data-photo-tags-message] { margin: 0; color: var(--muted); font-size: .82rem; }
.photo-album-grid { display: grid; gap: 18px; }
.photo-album-card-section { display: grid; gap: 8px; }
.photo-album-card-section > h4 { margin: 0; padding-bottom: 6px; border-bottom: 2px solid var(--ink); font-size: 1.05rem; }
.photo-album-section-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.photo-album-card { overflow: hidden; border: 2px solid var(--ink); background: #fff; }
.photo-album-card.unfiled { background: var(--yellow); }
.photo-album-card[open] { grid-column: 1 / -1; }
.photo-album-card > summary { display: grid; cursor: pointer; list-style: none; }
.photo-album-card > summary::-webkit-details-marker { display: none; }
.photo-album-card > summary::marker { content: ""; }
.photo-album-card > summary:focus-visible { outline: 3px solid var(--blue); outline-offset: -3px; }
.photo-album-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px; border-bottom: 2px solid var(--ink); }
.photo-album-card-heading > span { color: var(--muted); font-size: .76rem; }
.photo-album-card-heading::after { content: "+"; font-size: 1.2rem; font-weight: 900; line-height: 1; }
.photo-album-card[open] .photo-album-card-heading::after { content: "−"; }
.photo-album-card-cover { display: grid; grid-template-columns: repeat(3, 1fr); min-height: 70px; }
.photo-album-card-cover img { width: 100%; height: 70px; object-fit: cover; }
.photo-album-card-cover .muted { align-self: center; padding: 10px; grid-column: 1 / -1; }
.photo-album-card-entries { padding: 16px; border-top: 2px solid var(--ink); background: var(--cream); }
.photo-album-card-note { margin: 0 0 12px; font-size: .82rem; font-weight: 900; }
.photo-album-picker { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 12px; border: 2px solid var(--ink); background: var(--cream); }
.photo-album-picker legend { padding: 0 5px; font-size: .78rem; font-weight: 900; text-transform: uppercase; }
.photo-album-search { display: grid; gap: 5px; }
.photo-album-search > span { color: var(--muted); font-size: .72rem; font-weight: 800; }
.photo-album-search input { width: 100%; }
.photo-album-create { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 7px; padding-top: 9px; border-top: 1px solid var(--ink); }
.photo-album-create label { display: grid; gap: 4px; min-width: 0; }
.photo-album-create label > span { color: var(--muted); font-size: .72rem; font-weight: 800; }
.photo-album-create input { width: 100%; min-width: 0; }
.photo-album-create .score-button { min-height: 42px; }
.photo-album-options { display: grid; gap: 9px; }
.photo-album-option-group { display: grid; gap: 5px; }
.photo-album-option-group > strong { color: var(--muted); font-size: .7rem; text-transform: uppercase; }
.photo-album-option-group > div { display: flex; flex-wrap: wrap; gap: 7px; }
.photo-album-options label { position: relative; cursor: pointer; }
.photo-album-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.photo-album-options label > span { display: block; padding: 7px 9px; border: 2px solid var(--ink); background: #fff; font-size: .78rem; font-weight: 900; }
.photo-album-options input:focus-visible + span { outline: 3px solid var(--blue); outline-offset: 2px; }
.photo-album-options input:checked + span { background: #d8ecd5; box-shadow: 2px 2px 0 var(--ink); }
.photo-album-options input:checked + span::before { content: "✓ "; color: var(--green); }
.photo-album-search-empty { margin: 0; color: var(--muted); font-size: .8rem; }
.photo-gallery-complete { grid-column: 1 / -1; margin: 0; padding: 28px; border: 2px solid var(--ink); background: #e4f5dc; font-weight: 900; text-align: center; }

.backup-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 24px; }
.backup-grid article { padding: 20px; border: 2px solid var(--ink); background: var(--paper); box-shadow: 3px 3px 0 var(--ink); }
.backup-grid p { min-height: 66px; color: var(--muted); line-height: 1.45; }
.tasks-workspace { display: grid; gap: 16px; }
.task-form { display: grid; grid-template-columns: minmax(220px, 2fr) repeat(5, minmax(125px, .8fr)) auto; gap: 10px; align-items: end; padding: 16px; border: 2px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.task-form label { display: grid; gap: 5px; }
.task-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.task-toolbar select { min-width: 150px; }
.task-list { display: grid; gap: 10px; }
.task-row { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 13px; border: 2px solid var(--ink); background: #fff; box-shadow: 3px 3px 0 var(--ink); }
.task-row.editing { align-items: start; }
.task-row.completed { opacity: .62; background: #f3eee4; }
.task-check { display: grid; place-items: center; min-height: 42px; cursor: pointer; }
.task-check input { width: 22px; height: 22px; accent-color: var(--ink); }
.task-details { display: grid; gap: 8px; }
.task-summary { display: grid; gap: 5px; min-width: 0; }
.task-summary > strong { font-size: 1.08rem; }
.task-summary-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted); font-size: .88rem; }
.task-owner-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.task-owner-chip { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; box-sizing: border-box; gap: 5px; padding: 3px 7px; border: 1px solid var(--ink); background: #e8f1ff; font-weight: 700; line-height: 1; text-align: center; }
.task-owner-chip button { width: 18px; height: 18px; padding: 0; border: 0; background: transparent; color: var(--ink); font: inherit; font-weight: 900; cursor: pointer; }
.task-tag { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; box-sizing: border-box; width: max-content; padding: 3px 7px; border: 1px solid var(--ink); color: var(--ink); font-weight: 700; text-align: center; text-transform: uppercase; letter-spacing: .04em; font-size: .72rem; line-height: 1; }
.task-schedule-tag { color: var(--blue); border-color: var(--blue); }
.task-summary small { color: var(--muted); }
.task-actions { display: flex; align-items: center; gap: 8px; }
.task-details > input { font-weight: 700; }
.task-row.completed [data-task-title] { text-decoration: line-through; }
.task-meta { display: grid; grid-template-columns: minmax(120px, .55fr) minmax(160px, .8fr) 1fr; gap: 8px; }
.task-schedule-meta { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
.task-note { color: var(--muted); }
.danger-card { border-color: var(--red) !important; }
.file-button { display: inline-flex; align-items: center; }
.file-button input { position: absolute; width: 1px; height: 1px; opacity: 0; }

.public-game-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.public-archive .score-header { position: relative; }
.public-archive-hero .eyebrow { margin: 0 0 8px; }
.public-archive .score-hero h1 { white-space: normal; }
.public-archive-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-archive-tabs .score-tab { white-space: normal; }
.public-game-card { min-height: 180px; padding: 20px; border: 3px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.public-game-card.pending { color: var(--muted); background: #eee8d9; border-style: dashed; box-shadow: none; }
.public-game-card h3 { margin: 12px 0 5px; font-size: 1.35rem; }
.public-game-card p { color: var(--muted); }
.public-game-card ul { display: grid; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.public-game-card li { display: grid; grid-template-columns: 38px 1fr; gap: 8px; line-height: 1.35; }
.public-game-card li strong { color: var(--blue); }
.public-participation-card { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(220px, .75fr) minmax(320px, 1.25fr); gap: 22px; color: var(--ink); background: var(--paper); border-style: solid; box-shadow: 4px 4px 0 var(--ink); }
.public-participation-summary { align-self: start; }
.public-participation-summary .count-badge { margin-top: 12px; }
.public-token-board { max-width: 760px; border: 3px solid var(--ink); background: var(--paper); box-shadow: var(--shadow); }
.public-token-board h3 { margin: 0; padding: 16px; border-bottom: 2px solid var(--ink); }
.public-empty { margin: 32px 0; padding: 24px; border: 3px dashed var(--ink); background: var(--paper); }
.public-empty p { margin: 8px 0 0; color: var(--muted); }
.player-gallery-photographers { display: grid; grid-template-columns: minmax(150px, .35fr) 1fr; align-items: center; gap: 18px; margin: 22px 0 30px; padding: 16px 18px; border: 3px solid var(--ink); background: var(--yellow); box-shadow: 4px 4px 0 var(--ink); }
.player-gallery-photographers[hidden] { display: none; }
.player-gallery-photographers p, .player-gallery-photographers h3 { margin: 0; }
.player-gallery-photographers h3 { margin-top: 3px; font-size: 1.25rem; }
.player-gallery-photographers ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.player-gallery-photographers li { padding: 7px 9px; border: 2px solid var(--ink); background: var(--paper); font-size: .88rem; font-weight: 900; }
.player-gallery-group { margin: 34px 0 46px; }
.player-gallery-group-heading { margin-bottom: 18px; padding-bottom: 10px; border-bottom: 3px solid var(--ink); }
.player-gallery-group-heading h3, .player-gallery-group-heading p { margin: 0; }
.player-gallery-group-heading h3 { margin-top: 4px; font-size: clamp(1.65rem, 4vw, 2.35rem); }
.player-gallery-albums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
[data-gallery-game-albums] { grid-template-columns: 1fr; gap: 26px; }
.player-gallery-album-section { display: grid; gap: 12px; }
.player-gallery-album-section > h4 { margin: 0; padding-bottom: 7px; border-bottom: 2px solid var(--ink); font-size: 1.05rem; }
.player-gallery-album-section-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.player-gallery-album { min-width: 0; border: 3px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.player-gallery-album[open] { grid-column: 1 / -1; }
.player-gallery-album > summary { display: grid; padding: 0; cursor: pointer; list-style: none; }
.player-gallery-album > summary::-webkit-details-marker { display: none; }
.player-gallery-album > summary::marker { content: ""; }
.player-gallery-album > summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.player-gallery-album-cover { position: relative; display: block; height: 170px; overflow: hidden; border-bottom: 3px solid var(--ink); background: #d8ecd5; }
.player-gallery-album-cover img { position: absolute; width: 42%; height: 72%; object-fit: cover; border: 2px solid var(--ink); box-shadow: 2px 2px 0 rgba(23, 19, 15, .55); }
.player-gallery-album-cover img:nth-child(1) { z-index: 1; top: 22%; left: 1%; transform: rotate(-9deg); }
.player-gallery-album-cover img:nth-child(2) { z-index: 3; top: 7%; left: 16%; transform: rotate(4deg); }
.player-gallery-album-cover img:nth-child(3) { z-index: 5; top: 19%; left: 31%; transform: rotate(-2deg); }
.player-gallery-album-cover img:nth-child(4) { z-index: 4; top: 7%; right: 15%; transform: rotate(5deg); }
.player-gallery-album-cover img:nth-child(5) { z-index: 2; top: 22%; right: 1%; transform: rotate(9deg); }
.player-gallery-album-cover img:only-child { top: 9%; left: 16%; width: 68%; height: 82%; transform: rotate(-3deg); }
.player-gallery-album-cover img:first-child:nth-last-child(2), .player-gallery-album-cover img:first-child:nth-last-child(2) ~ img { width: 58%; height: 78%; }
.player-gallery-album-cover img:first-child:nth-last-child(2) { top: 19%; left: 3%; transform: rotate(-8deg); }
.player-gallery-album-cover img:first-child:nth-last-child(2) + img { top: 7%; right: 3%; left: auto; transform: rotate(6deg); }
.player-gallery-album-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px; }
.player-gallery-album-title h4 { margin: 0; font-size: clamp(1.15rem, 3vw, 1.45rem); }
.player-gallery-album-title > span { color: var(--muted); font-size: .78rem; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.player-gallery-album-title::after { content: "+"; font-size: 1.35rem; font-weight: 900; line-height: 1; }
.player-gallery-album[open] .player-gallery-album-title::after { content: "−"; }
.player-gallery-album > .player-photo-gallery { padding: 18px; border-top: 3px solid var(--ink); }
.player-gallery-art-album > summary .player-gallery-album-cover { background: var(--yellow); }
.player-gallery-art-sections { border-top: 3px solid var(--ink); }
.player-gallery-art-section { padding: 20px 18px 24px; }
.player-gallery-art-section + .player-gallery-art-section { border-top: 3px solid var(--ink); }
.player-gallery-art-section > h5 { margin: 0 0 14px; font-size: clamp(1.25rem, 3vw, 1.65rem); }
.player-gallery-art-section[data-art-gallery-section="overall"] { background: #fff7ce; }
.player-gallery-art-section[data-art-gallery-section="lost"] { background: #eee8d9; }
.player-gallery-art-section > .muted { margin: 0; }
.player-photo-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.player-photo-card { overflow: hidden; margin: 0; border: 3px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.player-photo-open { display: block; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; cursor: zoom-in; }
.player-photo-open:focus-visible { outline: 4px solid var(--blue); outline-offset: -4px; }
.player-photo-card img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #ddd; }
.player-photo-card figcaption { display: grid; gap: 4px; padding: 12px; }
.player-photo-card figcaption > span { color: var(--muted); font-size: .88rem; }
.player-photo-card figcaption > div { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
.player-photo-card figcaption small { padding: 4px 6px; border: 1px solid var(--ink); background: #d8ecd5; font-weight: 900; }
.player-photo-card figcaption small.award-tag { background: var(--yellow); }
.player-art-overview-card { grid-column: span 2; background: #fff7ce; }
.player-art-overview-card img, .player-rock-card img { object-fit: contain; background: #211c17; }
.player-rock-card { position: relative; }
.player-rock-card .player-photo-open { position: relative; }
.player-rock-card figcaption { background: #fff7ce; }
.player-rock-rank-number { position: absolute; top: 8px; left: 8px; z-index: 2; display: grid; place-items: center; width: 38px; height: 38px; border: 3px solid var(--ink); border-radius: 50%; background: var(--yellow); color: var(--ink); font-size: 1.05rem; font-weight: 900; box-shadow: 2px 2px 0 var(--ink); }
.player-rock-flip-badge { position: absolute; right: 8px; bottom: 8px; padding: 6px 8px; border: 2px solid var(--ink); background: var(--yellow); color: var(--ink); font-size: .75rem; font-weight: 900; box-shadow: 2px 2px 0 var(--ink); }
.gallery-lightbox { width: min(1100px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); padding: 0; overflow: hidden; border: 3px solid var(--ink); background: var(--paper); box-shadow: 8px 8px 0 var(--yellow); }
.gallery-lightbox::backdrop { background: rgba(23, 19, 15, .86); }
.gallery-lightbox figure { display: grid; margin: 0; max-height: calc(100dvh - 38px); }
.gallery-lightbox img { display: block; width: 100%; max-height: calc(100dvh - 130px); object-fit: contain; background: #17130f; }
.gallery-lightbox figcaption { display: grid; gap: 3px; min-height: 72px; padding: 14px 66px 14px 16px; border-top: 3px solid var(--ink); }
.gallery-lightbox figcaption strong { font-size: 1.2rem; }
.gallery-lightbox figcaption span { color: var(--muted); }
.gallery-lightbox-flip { position: absolute; top: 10px; right: 10px; z-index: 2; min-height: 44px; padding: 8px 12px; border: 3px solid var(--ink); background: var(--yellow); color: var(--ink); font: inherit; font-weight: 900; cursor: pointer; box-shadow: 3px 3px 0 var(--ink); }
.gallery-lightbox-flip[hidden] { display: none; }
.gallery-lightbox-flip:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.gallery-lightbox-close { position: absolute; right: 10px; bottom: 10px; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 3px solid var(--ink); background: var(--yellow); color: var(--ink); font: inherit; font-size: 1.7rem; font-weight: 900; line-height: 1; cursor: pointer; }
.gallery-lightbox-close:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }

.community-lock-art span { font-size: clamp(2.2rem, 8vw, 4.5rem); }
.lodging-note { margin-bottom: 18px; padding: 18px 20px; border: 2px solid var(--ink); background: var(--yellow); font-weight: 800; line-height: 1.5; }
.lodging-note p { margin: 0; }
.lodging-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.lodging-info-grid article { padding: 20px; border: 3px solid var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.lodging-info-grid h3 { margin: 12px 0 7px; }
.lodging-info-grid p { margin: 0; color: var(--muted); line-height: 1.5; }
.lodging-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 26px; }
.lodging-groups section, .community-lodging-location { border: 2px solid var(--ink); background: var(--paper); }
.lodging-groups h3 { display: flex; justify-content: space-between; margin: 0; padding: 12px 14px; border-bottom: 2px solid var(--ink); background: var(--cream); }
.lodging-groups h3 small { color: var(--muted); }
.lodging-groups > section > .muted { padding: 0 14px; }
.community-lodging-location > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; cursor: pointer; list-style: none; background: var(--cream); }
.community-lodging-location > summary::-webkit-details-marker { display: none; }
.community-lodging-location > summary strong { font-size: 1.25rem; }
.community-lodging-location > summary small { color: var(--muted); font-weight: 800; }
.community-lodging-location > summary::after { content: "+"; margin-left: 8px; font-size: 1.35rem; font-weight: 900; line-height: 1; }
.community-lodging-location[open] > summary { border-bottom: 2px solid var(--ink); }
.community-lodging-location[open] > summary::after { content: "−"; }
.community-lodging-location-body > .muted { padding: 0 14px; }
.lodging-person { display: grid; grid-template-columns: minmax(120px, .8fr) 1.2fr; gap: 10px; padding: 10px 14px; border-bottom: 1px solid #c8bfae; }
.lodging-person:last-child { border-bottom: 0; }
.lodging-person span { color: var(--muted); }
.lodging-public-status { display: inline-block; margin-left: 8px; padding: 2px 5px; border: 1px solid currentColor; color: var(--ink); font-size: .67rem; font-weight: 900; text-transform: uppercase; }
.lodging-person.status-missing, .lodging-person.status-needs-setup, .lodging-public-alert { background: #ffd4cc; }
.lodging-person.status-proposed, .lodging-person.status-tentative, .lodging-person.status-needs-confirmation { background: #fff7ce; }
.community-team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 24px; }
.community-main-team { border: 3px solid var(--ink); background: var(--paper); box-shadow: var(--shadow); }
.community-main-team > header { padding: 18px; border-bottom: 3px solid var(--ink); background: var(--yellow); }
.community-main-team > header h3 { margin: 10px 0 3px; font-size: 1.6rem; }
.community-main-team > header p { margin: 0; color: var(--muted); font-weight: 800; }
.community-main-team > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.community-subteam { padding: 16px; }
.community-subteam + .community-subteam { border-left: 2px solid var(--ink); }
.community-subteam h4 { margin: 0 0 12px; font-size: 1.05rem; }
.community-subteam h4 small { color: var(--muted); }
.community-no-team { grid-column: 1 / -1; }
.community-main-team > .community-no-team-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.community-no-team-groups .community-subteam { border-left: 0; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
.community-no-team-groups .community-subteam:nth-child(3n) { border-right: 0; }
.community-person { display: grid; gap: 2px; padding: 8px 0; border-bottom: 1px solid #c8bfae; }
.community-person span { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }

.empty-state { padding: 30px; text-align: center; color: var(--muted); }

@media (max-width: 1100px) {
  .competitor-group-list { grid-template-columns: 1fr; }
  .competitor-subteam-grid { grid-template-columns: 1fr; }
  .lodging-copy-editor { grid-template-columns: 1fr; }
  .lodging-location-grid, .ride-grid { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
  .score-hero { grid-template-columns: 1fr; padding-top: 38px; }
  .game-picker-wrap { grid-template-columns: 1fr; }
  .game-picker-wrap label { grid-column: auto; }
  .game-overview-heading { align-items: start; }
  .game-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-grid, .vote-layout, .backup-grid, .public-game-grid, .community-team-grid, .public-participation-card { grid-template-columns: 1fr; }
  .player-photo-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .community-main-team > .community-no-team-groups { grid-template-columns: 1fr; }
  .community-no-team-groups .community-subteam { border-right: 0; }
  .ballot-form { grid-template-columns: 1fr 1fr; }
  .ballot-form > :first-child { grid-column: 1 / -1; }
  .ballot-form .score-button { grid-column: 1 / -1; }
  .leader-row { grid-template-columns: 42px 1fr auto; }
  .leader-row summary { grid-template-columns: 42px 1fr auto; }
  .leader-name-line { align-items: flex-start; flex-direction: column; gap: 5px; }
  .achievement-flags { display: flex; }
  .leader-breakdown-groups { padding-left: 70px; }
  .check-grid, .art-entry-grid { grid-template-columns: repeat(2, 1fr); }
  .participant-picker-layout { grid-template-columns: 1fr; }
  .participant-order { position: static; }
  .token-form { grid-template-columns: repeat(2, 1fr); }
  .token-form .score-button { grid-column: 1 / -1; }
  .task-form { grid-template-columns: 1fr 1fr; }
  .task-form > :first-child, .task-form .score-button { grid-column: 1 / -1; }
  .token-layout { grid-template-columns: 1fr; }
  .photo-settings { grid-template-columns: repeat(2, 1fr); }
  .photo-album-section-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .art-setup-grid, .art-voter-progress { grid-template-columns: 1fr; }
  .photo-settings h3, .photo-settings [data-photo-admin-message] { grid-column: 1 / -1; }
  .inline-ballot { grid-template-columns: repeat(2, 1fr); }
  .walkabout-entry-form { grid-template-columns: 1fr 1fr; }
  .walkabout-entry-form .score-button { grid-column: 1 / -1; }
  .music-selection-sections { grid-template-columns: 1fr; }
  .inline-ballot .score-button { grid-column: 1 / -1; }
  .round-card summary { grid-template-columns: 1fr 1fr; }
  .round-card summary > div { grid-column: 1 / -1; }
}

@media (max-width: 1050px) and (min-width: 801px) {
  .task-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .task-form > :first-child { grid-column: span 2; }
}

@media (max-width: 720px) {
  .public-scores .score-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    padding-right: 10px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
  }
  .public-scores .score-tabs::-webkit-scrollbar { display: none; }
  .public-scores .score-tab { flex: 0 0 auto; }
  .task-tab-filters { flex-basis: 100%; margin: 8px 0 0; }
  .task-tab-filters .task-toolbar { flex-wrap: wrap; }
  .task-tab-filters .task-toolbar select { flex-basis: 140px; }
}

@media (max-width: 560px) {
  input, select, textarea { font-size: 16px; }
  .score-header { height: auto; min-height: 62px; display: grid; grid-template-columns: 1fr auto auto; gap: 6px 8px; padding: 8px 10px; }
  .score-header-actions { display: contents; }
  .score-header-actions .save-state { grid-column: 2; grid-row: 1; }
  .score-header-actions > .score-button { grid-column: 3; grid-row: 1; }
  .score-header-actions .text-button { padding-inline: 7px; white-space: nowrap; }
  .score-header-actions > .score-button { padding-inline: 7px; white-space: nowrap; }
  .score-shell { width: min(100% - 20px, 1180px); }
  .score-brand { font-size: .84rem; }
  .save-state { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .score-hero { padding-bottom: 24px; }
  .public-archive .score-hero h1 { font-size: clamp(2.35rem, 12vw, 3.2rem); line-height: .95; }
  .score-tabs { margin-inline: -10px; padding-left: 10px; }
  .task-tab-filters { width: 100%; margin-left: 0; padding: 0 10px 0 0; }
  .score-tab { padding-inline: 16px; }
  .competitor-view-switch { flex-wrap: wrap; }
  .competitor-view-switch .score-button { padding-inline: 10px; font-size: .9rem; }
  .competitor-view-switch .count-badge { margin-left: 0; }
  .editor-header { display: block; padding: 18px; }
  .editor-header .score-button { margin-top: 14px; }
  .editor-help, .editor-body { padding: 14px; }
  .art-game-workspace > .panel-heading, .photo-awards-workspace > .panel-heading { align-items: stretch; flex-direction: column; }
  .art-game-workspace > .panel-heading .score-button, .photo-awards-workspace > .panel-heading .score-button { width: 100%; text-align: center; }
  .game-card-grid { grid-template-columns: 1fr; }
  .player-photo-gallery { grid-template-columns: 1fr; }
  .player-gallery-group { margin: 28px 0 38px; }
  .player-gallery-heading { align-items: stretch; flex-direction: column; gap: 12px; }
  .player-gallery-heading-actions { justify-content: space-between; }
  .player-gallery-photographers { grid-template-columns: 1fr; gap: 12px; }
  .player-gallery-albums { grid-template-columns: 1fr; }
  .player-gallery-album-section-grid { grid-template-columns: 1fr; }
  .player-gallery-album-cover { height: 145px; }
  .player-gallery-art-section { padding: 16px 14px 20px; }
  .player-art-overview-card { grid-column: auto; }
  .art-ranking-view-switch { grid-template-columns: 1fr; }
  .art-rock-ranking-row { --art-rock-thumb-size: 52px; grid-template-columns: 30px calc(var(--art-rock-thumb-size) + 6px) minmax(0, 1fr) !important; gap: 8px; }
  .art-rock-ranking-row.art-rock-rank-1 { --art-rock-thumb-size: 96px; }
  .art-rock-ranking-row.art-rock-rank-2, .art-rock-ranking-row.art-rock-rank-3 { --art-rock-thumb-size: 76px; }
  .art-rock-ranking-row > b { grid-column: 3; justify-self: start; text-align: left; }
  .gallery-lightbox { width: calc(100vw - 18px); max-height: calc(100dvh - 18px); }
  .gallery-lightbox figure { max-height: calc(100dvh - 24px); }
  .gallery-lightbox img { max-height: calc(100dvh - 112px); }
  .team-settings, .team-card-header { grid-template-columns: 1fr; }
  .team-roster { columns: 1; }
  .mvp-grid, .podium-grid { grid-template-columns: 1fr; }
  .assignment-row { grid-template-columns: 1fr 130px; gap: 8px; }
  .ballot-form { grid-template-columns: 1fr; }
  .ballot-form > * { grid-column: auto !important; }
  .voting-podium-head { align-items: start; flex-direction: column; }
  .competitor-group-list { grid-template-columns: 1fr; }
  .competitor-row { grid-template-columns: 1fr 42px; }
  .competitor-row.expanded { grid-template-columns: 1fr 1fr 42px; }
  .competitor-row.expanded > :first-child { grid-column: 1 / -1; }
  .check-grid, .award-grid, .art-entry-grid, .art-upload { grid-template-columns: 1fr; }
  .photo-gallery-progress { align-items: flex-start; flex-direction: column; }
  .photo-gallery-section > summary { grid-template-columns: 1fr; padding: 14px; }
  .photo-gallery-section > summary b { width: max-content; }
  .photo-gallery-section-body { padding-inline: 12px; }
  .photo-album-manager > summary { grid-template-columns: 1fr; }
  .photo-album-manager > summary b { width: max-content; }
  .photo-album-manager-heading, .photo-album-manager-actions { align-items: stretch; flex-direction: column; }
  .photo-album-manager-heading .score-button, .photo-album-manager-actions .score-button { width: 100%; }
  .photo-album-manager-row, .photo-album-section-grid { grid-template-columns: 1fr; }
  .photo-album-manager-row .text-button { justify-self: start; }
  .photo-album-create { grid-template-columns: 1fr; }
  .photo-album-create .score-button { width: 100%; }
  .participant-picker-tools, .participant-add-missing { align-items: stretch; flex-direction: column; }
  .token-form { grid-template-columns: 1fr; }
  .token-form > * { grid-column: auto !important; }
  .task-form, .task-meta { grid-template-columns: 1fr; }
  .photo-settings { grid-template-columns: 1fr; }
  .photo-settings > * { grid-column: auto !important; }
  .photo-review-summary { align-items: flex-start; flex-direction: column; }
  .art-upload > * { grid-column: auto !important; }
  .metric-row { grid-template-columns: 1fr 1fr; }
  .metric-row strong { grid-column: 1 / -1; }
  .inline-ballot { grid-template-columns: 1fr; }
  .inline-ballot > * { grid-column: auto !important; }
  .walkabout-entry-form { grid-template-columns: 1fr; }
  .walkabout-entry-form > * { grid-column: auto !important; }
  .hider-row { grid-template-columns: 1fr 1fr; }
  .hider-row strong { grid-column: 1 / -1; }
  .art-toolbar { align-items: stretch; flex-direction: column; }
  .art-toolbar-actions > * { flex: 1; }
  .art-share-card { align-items: stretch; flex-direction: column; }
  .section-line { align-items: stretch; flex-direction: column; }
  .add-competitor form > div { align-items: stretch; flex-direction: column; }
  .lodging-info-grid, .lodging-groups, .ride-public-grid, .community-main-team > div { grid-template-columns: 1fr; }
  .community-subteam + .community-subteam { border-top: 2px solid var(--ink); border-left: 0; }
  .lodging-person { grid-template-columns: 1fr; }
  .lodging-assignment-row { grid-template-columns: 1fr; }
  .lodging-toolbar { align-items: stretch; flex-direction: column; }
  .lodging-attention { grid-template-columns: 1fr; }
  .lodging-location-summary, .lodging-bed-summary { align-items: start; }
  .lodging-bed-summary { grid-template-columns: 1fr; }
  .lodging-bed-heading { grid-template-columns: 1fr; }
  .lodging-bed-editor > input[data-lodging-bed-note], .lodging-bed-people { grid-column: 1; }
  .ride-summary, .ride-card > header, .ride-fields { grid-template-columns: 1fr; }
  .ride-summary .text-button { justify-self: start; }
  .ride-card > header .icon-button { justify-self: end; }
  .lodging-bed-row .icon-button { justify-self: end; }
}

@media print {
  .score-header, .score-tabs, .score-hero, .panel-heading .score-button, .panel-intro { display: none !important; }
  .score-shell { width: 100%; margin: 0; }
  .tab-panel { display: none !important; }
  [data-panel="leaderboard"] { display: block !important; }
  .leaderboard { box-shadow: none; }
}

/* Keep organizer-only planning notes out of the player-facing lodging view. */
.public-scores .community-lodging .lodging-note {
  display: none;
}

/* Art organizer: one shared album, two event images, and maker associations. */
.art-assets, .art-rock-associations, .art-championship-card { margin-top: 18px; padding: 20px; border: 2px solid var(--ink); background: var(--paper); }
.art-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.art-section-heading h3, .art-section-heading p { margin: 0; }
.art-section-heading > p { max-width: 520px; color: var(--muted); line-height: 1.45; }
.art-assets > label, .art-asset-card label, .art-rock-form label { display: grid; gap: 6px; font-weight: 800; }
.art-assets input, .art-rock-form input, .art-rock-form select { width: 100%; min-height: 46px; padding: 9px 11px; border: 2px solid var(--ink); background: #fff; font: inherit; }
.art-assets .file-button input[type="file"] { position: absolute; inset: 0 auto auto 0; width: 1px; height: 1px; min-height: 0; padding: 0; border: 0; opacity: 0; }
.art-album-field span { color: var(--muted); font-size: .82rem; font-weight: 500; }
.art-asset-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 18px 0; }
.art-asset-card { display: grid; align-content: start; gap: 12px; padding: 16px; border: 2px solid var(--ink); background: #fff; }
.art-asset-card h4 { margin: 0; font-size: 1.05rem; }
.art-asset-placeholder { display: grid; min-height: 150px; place-items: center; border: 2px dashed #b8ae9d; color: var(--muted); background: #f8f2e5; }
.art-upload-row { display: flex; align-items: center; gap: 9px; }
.art-upload-row .file-button { flex: 1; }
.art-rock-form { display: grid; grid-template-columns: 1.3fr 1fr auto; align-items: end; gap: 12px; }
.art-rock-form p { grid-column: 1 / -1; margin: 0; }
.art-rock-list { display: grid; gap: 8px; margin-top: 16px; }
.art-rock-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; border: 2px solid var(--ink); background: #fff; }
.art-rock-row > div { display: flex; align-items: center; gap: 10px; }
.art-rock-row > div:last-child { justify-content: flex-end; flex-wrap: wrap; }
.art-rock-row span:has(> strong) { display: grid; gap: 3px; }
.art-rock-row small { color: var(--muted); }
.art-rock-identity { display: grid; min-width: 0; gap: 4px; }
.art-rock-name-editor { display: flex; align-items: stretch; gap: 6px; }
.art-rock-name-editor input { width: min(180px, 100%); min-width: 0; min-height: 40px; padding: 7px 9px; border: 2px solid var(--ink); background: #fff; font-weight: 900; }
.art-rock-name-editor .text-button { white-space: nowrap; }
.art-maker-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.art-maker-chips > span { display: inline-flex; align-items: center; gap: 5px; padding: 4px 6px 4px 8px; border: 1px solid var(--ink); border-radius: 999px; background: #e7f5df; font-size: .76rem; font-weight: 900; }
.art-maker-chips button { width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; background: var(--ink); color: #fff; font: inherit; font-size: .75rem; font-weight: 900; line-height: 1; cursor: pointer; }
.art-rock-row img, .art-rock-number { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border: 2px solid var(--ink); object-fit: cover; background: var(--yellow); font-weight: 900; }
.art-rock-thumbnails { display: flex; gap: 5px; }
.art-rock-thumbnails > span { display: grid; gap: 2px; text-align: center; }
.art-rock-thumbnails small { color: var(--ink); font-size: .58rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.art-rock-row.needs-maker { background: #fff8d8; }
.art-rock-row.needs-confirmation { background: #fff0a8; }
.art-rock-row.unknown-maker { background: #eee9df; }
.art-rock-row select { min-height: 42px; max-width: 220px; padding: 7px 9px; border: 2px solid var(--ink); background: #fff; font: inherit; }
.art-rock-group { margin-top: 16px; border: 2px solid var(--ink); background: #fff; }
.art-rock-group > h4, .art-rock-group > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0; padding: 12px 14px; font-size: 1rem; font-weight: 900; }
.art-rock-group > summary { cursor: pointer; list-style-position: inside; }
.art-rock-group > h4 span, .art-rock-group > summary span { display: inline-grid; min-width: 28px; height: 28px; place-items: center; border: 2px solid var(--ink); background: var(--yellow); }
.art-rock-group[open] > summary { border-bottom: 2px solid var(--ink); }
.art-rock-group > .art-rock-list { margin: 0; padding: 10px; }
.art-rock-group.active-work > h4 { border-bottom: 2px solid var(--ink); background: var(--yellow); }
.art-championship-card { background: #e7f5df; }
.art-championship-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.art-championship-list li { display: grid; grid-template-columns: 76px 1fr; align-items: center; gap: 12px; padding: 10px; border: 2px solid var(--ink); background: #fff; }
.art-championship-list li > b { align-self: stretch; display: grid; place-items: center; padding: 8px; border: 2px solid var(--ink); background: var(--yellow); text-transform: uppercase; }
.art-championship-list li > span { display: grid; gap: 3px; }
.art-championship-list small { color: var(--muted); }

@media (max-width: 720px) {
  .art-section-heading { align-items: start; flex-direction: column; gap: 8px; }
  .art-asset-grid, .art-rock-form { grid-template-columns: 1fr; }
  .art-rock-form p { grid-column: auto; }
}

@media (max-width: 560px) {
  .art-assets, .art-rock-associations, .art-championship-card { padding: 14px; }
  .art-rock-group > .art-rock-list { padding: 8px; }
  .art-rock-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 10px; }
  .art-rock-row > .art-rock-preview { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 10px; }
  .art-rock-thumbnails { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .art-rock-thumbnails > span { min-width: 0; }
  .art-rock-row .art-rock-thumbnails img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
  .art-rock-identity { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: 5px; }
  .art-rock-name-editor { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .art-rock-name-editor input { width: 100%; font-size: 1rem; }
  .art-rock-row > .art-rock-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: stretch; gap: 9px; }
  .art-rock-controls select { grid-column: 1 / -1; width: 100%; max-width: none; }
  .art-rock-controls .score-button, .art-rock-controls .text-button { min-width: 0; }
  .art-rock-controls .icon-button { align-self: center; }
  .art-rock-row.confirmed > .art-rock-controls, .art-rock-row.needs-confirmation > .art-rock-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .art-rock-row.confirmed [data-art-clear-maker], .art-rock-row.needs-confirmation [data-art-clear-maker] { grid-column: 1 / -1; }
  .art-rock-row.confirmed [data-art-delete-rock], .art-rock-row.needs-confirmation [data-art-delete-rock] { grid-column: 2; justify-self: end; }
}
