/* King / Kierki / Rentz score sheet (score tab). Inside .tl-card (light card palette in both
   themes). bismarck-sheet.css uses the same classes – keep the two in step. */
.ks { padding: .6rem .55rem .8rem; }
.ks .red { color: var(--card-red); }
.ks-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .1rem .8rem; margin-bottom: .4rem; }
.ks-head span { color: var(--card-soft); font-size: .9rem; font-variant-numeric: tabular-nums; }

/* ---- scoreboard ---- */
.ks-board { display: grid; gap: .35rem; grid-template-columns: repeat(auto-fit, minmax(5.2rem, 1fr)); }
.ks-board.ks-n4, .ks-board.ks-n6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ks-board.ks-n3, .ks-board.ks-n5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 560px) {
  .ks-board.ks-n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ks-board.ks-n5, .ks-board.ks-n6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.ks-tile { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 0 .3rem; padding: .3rem .45rem; border-radius: 7px;
  border: 1px solid var(--card-rule); background: #fbf6ea; min-width: 0; }
.ks-tile.ks-cur { border-color: var(--card-ink); box-shadow: inset 0 0 0 1px var(--card-ink); }
.ks-tile.ks-won { background: #f6e7b8; border-color: #b08a1a; }
.ks-nm { grid-column: 1 / -1; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ks-tot { grid-column: 2; grid-row: 2; font-size: 1.7rem; font-weight: 800; line-height: 1; font-variant-numeric: lining-nums tabular-nums; }
.ks-badge { grid-column: 1; grid-row: 2; align-self: center; font-size: .8rem; font-variant-caps: all-small-caps; letter-spacing: .06em; color: var(--card-soft); min-height: 1em; }
.ks-n3 .ks-tot, .ks-n5 .ks-tot { font-size: 1.45rem; }
.ks-cur .ks-badge { color: var(--card-ink); font-weight: 700; }
.ks-progress { height: 6px; border-radius: 3px; background: #eee5d2; margin: .45rem 0 0; overflow: hidden; }
.ks-bar { display: block; height: 100%; width: 0; background: var(--card-ink); }
.ks-live { min-height: 1.4em; margin: .45rem 0 .2rem; font-weight: 700; text-align: center; }

/* ---- the deal ---- */
.ks-deal { border-top: 3px double var(--card-rule); padding-top: .4rem; }
.ks-dealhead strong { font-size: 1.15rem; }
.ks-contract { margin: .35rem 0; padding: .45rem .6rem; border-radius: 8px; background: #f3e9e2; border-left: 5px solid var(--card-red); }
.ks-contract .ks-cn { display: block; font-size: 1.35rem; font-weight: 800; line-height: 1.2; }
.ks-cs { display: block; font-size: .88rem; color: var(--card-soft); }
.ks-role { margin: .35rem 0; }
.ks-ask { font-size: 1.1rem; margin: .6rem 0 .3rem; }
.ks-choices { display: grid; gap: .35rem; }
.ks .ks-choice { font: inherit; text-align: left; min-height: 52px; padding: .35rem .6rem; border-radius: 8px; cursor: pointer; color: var(--card-ink);
  background: #f3e9e2; border: 1px solid var(--card-line); border-left: 5px solid var(--card-red); }
.ks .ks-choice .ks-cn { display: block; font-weight: 700; }
.ks-contract.ks-pos, .ks .ks-choice.ks-pos { background: #e5eee6; border-left-color: #2c6e3f; }
.ks .ks-choice[disabled] { opacity: .45; cursor: default; text-decoration: line-through; }
.ks-change { margin: .1rem 0 .3rem; }
.ks .ks-opt { text-align: left; }
.ks-blind { width: 100%; margin: .3rem 0; }
.ks-resthint { margin: .4rem 0 0; font-size: .88rem; }

.ks-part { border: 1px solid var(--card-rule); border-radius: 8px; padding: .25rem .45rem .35rem; margin: .5rem 0; min-width: 0; }
.ks-part legend { font-weight: 700; padding: 0 .3rem; max-width: 100%; }
.ks-per { font-weight: 400; color: var(--card-soft); font-size: .9rem; }
.ks-crow { display: grid; grid-template-columns: minmax(0, 1fr) 44px 52px 44px 3.2rem; align-items: center; gap: .3rem; margin: .2rem 0; }
.ks-cname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.ks .ks-step, .ks .ks-val { font: inherit; min-height: 44px; border-radius: 7px; cursor: pointer; color: var(--card-ink); background: var(--card); border: 1px solid var(--card-line); }
.ks .ks-step { font-size: 1.3rem; font-weight: 700; }
.ks .ks-step[disabled] { opacity: .35; cursor: default; }
.ks .ks-val { font-size: 1.25rem; font-weight: 800; font-variant-numeric: tabular-nums; background: #fbf6ea; }
.ks .ks-val.ks-some { background: var(--card-ink); color: var(--card); border-color: var(--card-ink); }
.ks-cpts { text-align: right; font-variant-numeric: tabular-nums; color: var(--card-soft); }
.ks-check { display: flex; justify-content: space-between; gap: .5rem; margin: .3rem 0 0; font-size: .92rem; font-variant-numeric: tabular-nums; }
.ks-check.ok { color: #2c6e3f; font-weight: 700; }
.ks-check.bad { color: var(--card-red); }
.ks-picks { display: grid; grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr)); gap: .3rem; }
.ks .ks-pick { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 0; padding: .25rem .4rem; min-width: 0; min-height: 52px; line-height: 1.2; }
.ks-pick span { max-width: 100%; }
.ks-pick b { font-size: .85rem; }
.ks-pick b:empty { display: none; }
.ks-pick span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ks-suits { display: grid; grid-template-columns: repeat(4, 1fr); gap: .3rem; }
.ks .ks-suit { font-size: 1.4rem; padding: .2rem; }
.ks-preview { display: flex; flex-wrap: wrap; gap: .2rem .8rem; margin: .6rem 0 .4rem; font-variant-numeric: tabular-nums; }
.ks-pl { color: var(--card-soft); }
.ks-pp.neg b { color: var(--card-red); }
.ks-pp.pos b { color: #2c6e3f; }
.ks .ks-big { width: 100%; min-height: 52px; }

/* ---- contracts left, score sheet ---- */
.ks-ctl { margin-top: .9rem; }
.ks-undo { flex: 1; }
.ks-more { margin: .4rem 0 0; border-top: 1px solid var(--card-rule); }
.ks-more summary { cursor: pointer; font-weight: 700; padding: .6rem 0; min-height: 44px; }
.ks-scroll { overflow-x: auto; }
.ks-left, .ks-sheet, .ks-final { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; }
.ks-left th, .ks-left td { padding: .25rem .2rem; border-bottom: 1px solid var(--card-rule); text-align: center; font-size: .9rem; }
.ks-left th[scope=row] { text-align: left; max-width: 6rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ks-left td.ks-x { font-weight: 800; color: var(--card-red); }
.ks-left2 td { font-size: 1rem; }
.ks-penleft { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; font-size: .88rem; }
.ks-chip { border: 1px solid var(--card-line); border-radius: 5px; padding: .05rem .35rem; }
.ks-chip.ks-gone { opacity: .45; text-decoration: line-through; }
.ks-sheet th, .ks-sheet td { padding: .2rem .25rem; border-bottom: 1px solid var(--card-rule); text-align: right; }
.ks-sheet thead th { font-size: .85rem; max-width: 4.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ks-sheet thead th:first-child, .ks-sheet .ks-rl { text-align: left; }
.ks-sheet .ks-rl { font-weight: 400; font-size: .8rem; color: var(--card-soft); line-height: 1.2; min-width: 6rem; }
.ks-sheet td b { display: block; }
.ks-sheet td small { display: block; color: var(--card-soft); font-size: .8rem; }

/* ---- game over ---- */
.ks-over { border-top: 3px double var(--card-rule); padding-top: .4rem; }
.ks-winner { font-size: 1.5rem; font-weight: 800; text-align: center; margin: .4rem 0; }
.ks-final caption { text-align: left; font-weight: 700; padding-bottom: .2rem; }
.ks-final th, .ks-final td { padding: .35rem .4rem; border-bottom: 1px solid var(--card-rule); text-align: right; font-size: 1.1rem; }
.ks-final th { text-align: left; }
.ks-final tr.ks-won { background: #f6e7b8; font-weight: 800; }

/* ---- setup ---- */
.ks-setup .tl-h { margin-top: .2rem; }
.ks-names { display: grid; gap: 0 .6rem; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); }
.ks-firstrow { display: flex; flex-wrap: wrap; gap: .4rem; }
.ks-start { min-width: 8rem; }
.ks-plan { font-size: .88rem; }
.ks-values { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: .3rem .6rem; }
.ks-vfield { display: grid; grid-template-columns: 1.1rem minmax(0, 1fr); align-items: center; gap: .1rem .2rem; }
.ks-vfield > span:first-child { grid-column: 1 / -1; font-size: .85rem; color: var(--card-soft); }
.ks-sign { font-weight: 700; text-align: center; }
.ks .ks-vfield input { padding: .35rem .5rem; font-size: 1rem; }
/* row headers: plain text, not the site's small caps */
.ks .ks-rl, .ks .ks-left th[scope=row], .ks .ks-final th, .ks .ks-sheet thead th { font-variant-caps: normal; letter-spacing: 0; text-transform: none; }
