.login { margin-top: 2rem; }
.login input { width: 100%; }
.code-input { font-size: 1.6rem; letter-spacing: 0.4em; text-align: center; }
.slice-card { text-align: center; padding: 1.5rem 1rem; }
.slice-card .num { font-size: 0.9rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; }
.slice-card .boxnum { font-size: 4rem; font-weight: 800; line-height: 1; margin: 0.3rem 0; color: var(--red); }
.slice-card .rest { font-size: 1.3rem; font-weight: 700; }
.score-picker { display: grid; gap: 0.75rem; margin: 1.2rem 0 0.8rem; }
.score-picker input[type="range"] { width: 100%; height: 2rem; }
.score-picker .big { font-size: 2.2rem; width: 7rem; text-align: center; margin: 0 auto; font-weight: 700; }
.scored-list li { display: grid; gap: 0.4rem; }
.scored-list .row { gap: 0.6rem; flex-wrap: nowrap; }
.scored-list .note-input { width: 100%; text-align: left; font-size: 0.9rem; }
.scored-list input { width: 5.5rem; text-align: center; }
fieldset { border: 0; padding: 0; margin: 0; display: flex; gap: 1rem; flex-wrap: wrap; }
.phases { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 0.5rem; }
.phases button { text-align: left; background: var(--line); color: var(--ink); }
.phases button.current { background: var(--red); color: #fff; }
.phases small { display: block; opacity: 0.8; font-size: 0.8rem; }
.admin-table { width: 100%; font-size: 0.92rem; }
.admin-table tr + tr td { border-top: 1px solid var(--line); }
.admin-table select { padding: 0.25rem; }
.guests { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; padding: 0; }
.champs { margin-top: 1rem; background: #fff6d8; }
.champ-row { gap: 0.6rem; }
.champs .cards { gap: 0.4rem; }
.map-link { font-size: 0.85rem; margin-left: 0.25rem; }
.suggest { list-style: none; margin: -0.3rem 0 0; padding: 0.25rem; background: #fff; border: 1px solid #ddcbb8; border-radius: 0.5rem; display: grid; gap: 0.15rem; }
.suggest[hidden] { display: none; }
.suggest button { width: 100%; text-align: left; background: none; color: var(--ink); padding: 0.45rem 0.55rem; display: grid; }
.suggest button:hover, .suggest button:focus { background: var(--cream); }
.suggest span { color: var(--muted); font-size: 0.85rem; }
.pizza-map { height: 320px; border-radius: 0.75rem; margin-top: 1rem; z-index: 0; }
.pizza-map[hidden] { display: none; }
.pin { display: grid; place-items: center; background: var(--red); border: 3px solid var(--ink); border-radius: 50%; font-size: 15px; }
.pin.champ { background: #ffc93c; }
.score-picker textarea { width: 100%; padding: 0.55rem 0.7rem; border: 1px solid #ddcbb8; border-radius: 0.5rem; font: inherit; resize: vertical; }
.score-picker .hint { margin: 0; }
.which { display: grid; gap: 0.4rem; background: var(--cream); border: 1px solid var(--line); }
.which p { margin: 0; }
.which .secondary { text-align: left; }
.field { display: grid; gap: 0.25rem; font-size: 0.9rem; color: var(--muted); }
.field input { color: var(--ink); font-size: 1rem; }
.mine h3, .champs h3 { margin: 0 0 0.4rem; }
.mine { border: 2px solid var(--good); }
h3.cat { margin: 1rem 0 0.4rem; }
table.lineup { width: 100%; background: var(--card); border-radius: 0.75rem; overflow: hidden; font-size: 0.92rem; }
table.lineup th { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); background: #fbf1e2; }
table.lineup td { vertical-align: top; border-top: 1px solid var(--line); }
table.lineup tr.is-mine td { background: #f1fbf3; }
table.lineup td:nth-child(2) { min-width: 6rem; }
table.lineup .map-link { margin-left: 0; }
.info-where h3 { margin: 0 0 0.3rem; }
.info-where h3 + p { margin-top: 0; }
.info-where .when-line { font-size: 1.1rem; margin: 0 0 1rem; }
.info-where .addr { font-size: 1.1rem; margin: 0; }
.info-notes { margin: 0.4rem 0 0.8rem; padding-left: 1.2rem; }
.info-where .pizza-map { height: 220px; margin: 0 0 0.8rem; }
.faq h3 { margin: 1.4rem 0 0.3rem; }
.faq p, .faq ul { margin: 0.3rem 0; line-height: 1.5; }
.info-edit summary { cursor: pointer; }
.info-edit form { margin-top: 0.8rem; }
.info-edit textarea { width: 100%; padding: 0.55rem 0.7rem; border: 1px solid #ddcbb8; border-radius: 0.5rem; font: inherit; }
nav.tabs button { padding-inline: 0.4rem; }
