/* Fem på stribe: træ-bordet (brætspil, se docs/DESIGNMANUAL-SPIL.md) med et creme ark ternet papir. Skrift, filt og bjælke kommer fra Solitaire.css og kabale-kort.css */
:root {
  --bord: #6D4020;
  --bjaelke: #372417;
  --knap: #6A452B;
  --ark: #FCF7EE;
  --kul: #1E2421;
  --roed: #C63F28;
  --okker: #D69A2D;
  --tern: rgba(62,111,163,.30);   /* blå tern som på et stykke ternet papir */
}
html.kabale-mork {
  --bord: #402613;
  --bjaelke: #18110D;
  --knap: #4B2F1C;
  --ark: #F1E9DA;
}
body { background: var(--filt), var(--bord); color: var(--creme); font-variant-numeric: tabular-nums; }
button, select { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
/* Solitaire.css giver alle svg filt-baggrund og position: static; her er svg kun streger og mærker */
#spil svg { background: none; }

/* Bjælken: samme knapper som kabalerne, vælgeren ligner en knap */
#kk-bar { align-items: center; }
#kk-bar select {
  font: 600 15px/1.2 Poppins, system-ui, sans-serif; min-height: 44px; padding: 0 34px 0 14px; border: 1px solid rgba(252,247,238,.22); border-radius: 8px;
  background: var(--knap) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23FCF7EE' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;
  color: var(--creme); cursor: pointer; -webkit-appearance: none; appearance: none; min-width: 0;
}
#kk-bar select option { background: #FCF7EE; color: #1E2421; }
#kk-bar button:focus-visible, #kk-bar select:focus-visible, #knapper button:focus-visible, #kk-besked button:focus-visible { outline: 3px solid var(--creme); outline-offset: 2px; }
@media (max-width: 420px) {
  #kk-bar { gap: 6px; padding: 6px; flex-wrap: nowrap; }
  #kk-bar button, #kk-bar select { flex: 1 1 auto; font-size: 14px; padding-left: 8px; padding-right: 8px; white-space: nowrap; }
  #kk-bar select { padding-right: 26px; background-position: right 8px center; }
}
/* Smal skærm: stillingen på sin egen linje under status, så ingen af dem bliver skåret */
@media (max-width: 480px) {
  #info { flex-wrap: wrap; gap: 2px 12px; }
  #info #rekord { flex-basis: 100%; text-align: left; font-size: 14px; }
}

/* Spilleområdet: info, ark og knapper stablet (portræt) eller knapperne ved siden af (bred, lav skærm) */
#spil {
  flex: 1 1 auto; min-height: 0; display: grid; gap: 6px; padding: 6px 6px 8px; box-sizing: border-box;
  grid-template-columns: var(--bredde); grid-template-rows: max-content; grid-template-areas: "info" "ark" "knapper"; justify-content: center; align-content: center;
}
#spil.side { grid-template-columns: var(--str) var(--panel); grid-template-rows: max-content 1fr; grid-template-areas: "ark info" "ark knapper"; gap: 8px 20px; align-content: center; }
#info { grid-area: info; display: flex; align-items: center; gap: 8px 12px; min-height: 32px; font: 600 15px/1.3 Poppins, system-ui, sans-serif; }
#spil.side #info { flex-direction: column; align-items: flex-start; align-self: end; }
#status { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
#rekord { font-weight: 400; opacity: .9; flex: 1 1 auto; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#spil.side #rekord { text-align: left; white-space: normal; }
#spil.side #status { white-space: normal; }
.ikon { flex: none; width: 24px; height: 24px; border-radius: 5px; background: var(--ark); box-shadow: 0 1px 4px rgba(0,0,0,.25); }
.ikon svg { display: block; width: 100%; height: 100%; }

/* Arket: et creme stykke ternet papir på træbordet, 15 × 15 tern */
#ark-ramme {
  grid-area: ark; justify-self: center; width: var(--str); height: var(--str); box-sizing: border-box; padding: var(--kant);
  background: var(--ark); border-radius: 6px; box-shadow: 0 4px 14px rgba(0,0,0,.35);
}
#ark { position: relative; width: 100%; height: 100%; display: grid; grid-template: repeat(15, 1fr) / repeat(15, 1fr); -webkit-user-select: none; user-select: none; }
#gitter, #streg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
#gitter line { stroke: var(--tern); stroke-width: .045; }
#gitter rect { fill: none; stroke: var(--tern); stroke-width: .08; }

.felt { position: relative; min-width: 0; min-height: 0; padding: 0; margin: 0; border: 0; background: transparent; cursor: pointer; outline: none; border-radius: 2px; }
.felt:disabled { cursor: default; }
.felt:focus-visible { box-shadow: inset 0 0 0 2px var(--roed); }
@media (hover: hover) { #ark:not(.laast) .felt.tom:hover { background: rgba(198,63,40,.10); } }
.felt.sidst { background: rgba(214,154,45,.30); }
.felt.vinder { background: rgba(214,154,45,.42); }
.felt.tip::before {
  content: ''; position: absolute; inset: 6%; border-radius: 50%; border: max(2px, calc(var(--celle) * .09)) dashed var(--roed); animation: puls 900ms ease-in-out infinite alternate;
}
@keyframes puls { from { opacity: .45; } to { opacity: 1; } }

/* Mærkerne: kryds i rødt, bolle i kul, som med kuglepen på papir. Tegnes med en kort streg-animation */
.maerke { display: block; width: 100%; height: 100%; fill: none; stroke-linecap: round; pointer-events: none; }
.maerke.x { stroke: var(--roed); stroke-width: 14; }
.maerke.o { stroke: var(--kul); stroke-width: 12; }
.felt .maerke path { stroke-dasharray: 1; }
.felt.ny .maerke path { animation: tegn 140ms ease-out both; }
.felt.ny .maerke.x path + path { animation-delay: 100ms; }
.felt.ny .maerke.o path { animation-duration: 240ms; }
@keyframes tegn { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.felt.spoegelse .maerke { opacity: .4; }
#ark.slut .felt:not(.vinder) .maerke { opacity: .45; }

/* Vinderstregen: kul med creme kant, så den ses over både kryds og bolle */
#streg line { stroke-linecap: round; stroke-dasharray: 1; animation: tegn 300ms ease-out both; }
#streg .under { stroke: var(--ark); stroke-width: .36; }
#streg .over { stroke: var(--kul); stroke-width: .18; }

/* Knapperne under arket, inden for tommelfingerens rækkevidde */
#knapper { grid-area: knapper; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
#spil.side #knapper { grid-template-columns: 1fr; align-content: start; }
#knapper button {
  min-height: 48px; padding: 0 12px; border-radius: 8px; cursor: pointer; font: 600 16px/1.1 Poppins, system-ui, sans-serif;
  border: 1px solid rgba(252,247,238,.22); background: var(--knap); color: var(--creme);
}
#knapper button:disabled { opacity: .45; cursor: default; }
@media (hover: hover) { #knapper button:hover:not(:disabled) { border-color: rgba(252,247,238,.5); } }

/* Beskeden: flere linjer til reglerne, rød primærknap */
#kk-besked { width: max-content; max-width: min(calc(100vw - 32px), 440px); box-sizing: border-box; }
#kk-besked.oppe { bottom: auto; top: 8px; }
#kk-besked p { margin: 0 0 6px; font-size: 15px; }
#kk-besked p.stor { font: 600 22px/1.25 Poppins, system-ui, sans-serif; margin-bottom: 4px; }
#kk-besked.regler p { text-align: left; }
#kk-besked .knapper { display: flex; justify-content: center; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
#kk-besked .knapper button { margin: 0; }
#kk-besked button.primaer { background: var(--roed); color: var(--creme); }

@media (prefers-reduced-motion: reduce) {
  .felt.ny .maerke path, #streg line, .felt.tip::before { animation: none; }
}
