/* Kryds og bolle: petrol-bordet (logikspil, se docs/DESIGNMANUAL-SPIL.md). Skrift, filt og bjælke kommer fra Solitaire.css og kabale-kort.css */
:root {
  --bord: #005963;
  --bjaelke: #092F33;
  --knap: #035961;
  --ark: #FCF7EE;
  --kul: #1E2421;
  --roed: #C63F28;
  --okker: #D69A2D;
  --tern: rgba(0,89,99,.22);   /* tern på det store ark, som et stykke ternet papir */
}
html.kabale-mork {
  --bord: #00353A;
  --bjaelke: #0A1516;
  --knap: #0B4248;
}
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, spiltypen 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, #kk-bar select optgroup { background: #FCF7EE; color: #1E2421; }
#kk-bar button:focus-visible, #kk-bar select:focus-visible, #bund 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: none; font-size: 14px; padding-left: 10px; padding-right: 10px; white-space: nowrap; }
  #kk-bar select { flex: 1 1 0; padding-right: 26px; background-position: right 8px center; }
  #tur { font-size: 18px; }
}

/* Spilleområdet: status over arket, knapper og stilling under (portræt) eller i et panel til højre (bred skærm) */
#spil {
  flex: 1 1 auto; min-height: 0; display: grid; gap: 8px; padding: 6px 6px 8px; box-sizing: border-box;
  grid-template-columns: var(--bredde); grid-template-rows: auto auto auto; grid-template-areas: "tur" "ark" "bund"; justify-content: center; align-content: center;
}
#spil.side { grid-template-columns: var(--str) var(--panel); grid-template-rows: auto auto; grid-template-areas: "ark tur" "ark bund"; gap: 16px 24px; align-content: center; }
#spil.side #tur { align-self: end; }
#spil.side #bund { align-self: start; grid-template-columns: 1fr 1fr; grid-template-areas: "stilling stilling" "fortryd tip"; }

#tur { grid-area: tur; display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; font: 600 20px/1.25 Poppins, system-ui, sans-serif; text-align: center; }
#tur .ikon { flex: none; width: 34px; height: 34px; border-radius: 8px; background: var(--ark); box-shadow: 0 2px 6px rgba(0,0,0,.25); }
#tur .ikon:empty { display: none; }
#tur .ikon svg { display: block; width: 100%; height: 100%; }

/* Arket: et creme stykke papir på bordet med ét sæt streger (3 × 3) eller tern (15 × 15) */
#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: 10px; box-shadow: 0 4px 14px rgba(0,0,0,.32);
}
#ark { position: relative; width: 100%; height: 100%; display: grid; grid-template: repeat(var(--n), 1fr) / repeat(var(--n), 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(--kul); stroke-width: .055; stroke-linecap: round; }
#ark.stor #gitter line { stroke: var(--tern); stroke-width: .045; stroke-linecap: butt; }
#ark.stor #gitter rect { fill: none; stroke: var(--tern); stroke-width: .09; }

.felt {
  position: relative; min-width: 0; min-height: 0; padding: 0; margin: 0; border: 0; background: transparent; cursor: pointer; outline: none; border-radius: 6px;
}
#ark.stor .felt { border-radius: 2px; }
.felt:disabled { cursor: default; }
.felt:focus-visible { box-shadow: inset 0 0 0 3px var(--roed); }
@media (hover: hover) { #ark:not(.laast) .felt.tom:hover { background: rgba(0,89,99,.08); } }
.felt.sidst { background: rgba(214,154,45,.26); }
.felt.vinder { background: rgba(214,154,45,.38); }
.felt.tip::before {
  content: ''; position: absolute; inset: 10%; border-radius: 50%; border: max(2px, calc(var(--celle) * .06)) 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. 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: 13; }
.maerke.o { stroke: var(--kul); stroke-width: 12; }
#ark.stor .maerke.x { stroke-width: 14; }
.felt .maerke path { stroke-dasharray: 1; }
.felt.ny .maerke path { animation: tegn 150ms ease-out both; }
.felt.ny .maerke.x path + path { animation-delay: 110ms; }
.felt.ny .maerke.o path { animation-duration: 260ms; }
@keyframes tegn { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.felt.spoegelse .maerke { opacity: .4; }
#ark.slut .felt:not(.vinder) .maerke { opacity: .38; }
.felt.vinder .maerke { animation: hop 300ms ease-out 300ms both; }
@keyframes hop { 0% { transform: scale(1); } 50% { transform: scale(1.14); } 100% { transform: scale(1); } }

/* 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: .26; }
#streg .over { stroke: var(--kul); stroke-width: .13; }
#ark.stor #streg .under { stroke-width: .4; }
#ark.stor #streg .over { stroke-width: .2; }

/* Under arket: Fortryd, stillingen og Tip */
#bund { grid-area: bund; display: grid; gap: 8px; grid-template-columns: 1fr 1.7fr 1fr; grid-template-areas: "fortryd stilling tip"; align-items: stretch; }
#bund > button {
  min-width: 0; min-height: 52px; padding: 0 8px; 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);
}
#bund > button:disabled { opacity: .45; cursor: default; }
#fortryd { grid-area: fortryd; }
#tip { grid-area: tip; }
#stilling { grid-area: stilling; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin: 0; padding: 0; list-style: none; }
#stilling li { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; border-radius: 8px; background: rgba(0,0,0,.16); padding: 4px 2px; }
#stilling .tal { display: flex; align-items: center; gap: 5px; font: 600 20px/1.1 Poppins, system-ui, sans-serif; }
#stilling .tal svg { width: 18px; height: 18px; border-radius: 4px; background: var(--ark); }
#stilling .navn { font: 400 14px/1.2 Poppins, system-ui, sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
#stilling li.lige .tal::before { content: '='; font-weight: 600; opacity: .9; }
/* Smal skærm: kun mærke og tal (navnene står i aria-label og i beskederne) */
@media (max-width: 480px) {
  #bund { grid-template-columns: 1fr 1.5fr 1fr; }
  #stilling .navn { display: none; }
  #stilling .tal { flex-direction: column; gap: 2px; font-size: 18px; }
}

/* Beskeden: flere linjer til reglerne, rød primærknap, stor overskrift for børnene */
#kk-besked { width: max-content; max-width: min(calc(100vw - 32px), 440px); box-sizing: border-box; }
#kk-besked p { margin: 0 0 6px; font-size: 15px; }
#kk-besked p.stor { font: 600 24px/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; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
#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.vinder .maerke, .felt.tip::before { animation: none; }
}
