main{max-width:560px;margin:auto;padding:12px}
header,.heading,.metrics{display:flex;align-items:center;justify-content:space-between;gap:8px}
.back{display:inline-flex;min-height:44px;align-items:center}
#setup{margin-top:16px;padding:20px}
h1{margin:8px 0;font-size:1.8rem}
p{line-height:1.5}
label{display:block;font-weight:800;margin:16px 0 6px}
select{width:100%;min-height:46px;font:inherit;border:1px solid var(--lg-line);border-radius:12px;padding:9px;background:var(--lg-cream);color:var(--lg-ink)}
select:focus-visible{outline:3px solid var(--lg-leaf);outline-offset:3px}
.heading p{margin:4px 0;font-size:.85rem}
.metrics{font-weight:800;font-variant-numeric:tabular-nums;margin-top:12px;flex-wrap:wrap}
.metrics .lg-button{min-height:44px;padding:6px 14px}
#status{min-height:24px;margin:8px 0}
#people{font-size:.8rem;margin:4px 0 12px;overflow-wrap:anywhere}
#daily-card{margin:12px 0 4px}#daily{width:100%}#daily-info{margin:6px 0 0;font-size:.9rem}
.row-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
#stats{margin-top:12px}#stats summary{min-height:44px;display:flex;align-items:center;font-weight:800;cursor:pointer}#stats-body{font-size:.9rem;line-height:1.6}
#board-wrap{position:relative;margin:0 -12px;width:calc(100% + 24px)}
#board{display:grid;grid-template-rows:repeat(9,1fr);width:100%;border:2px solid var(--lg-ink);background:var(--lg-white);border-radius:5px;overflow:hidden}
#board>[role=row]{display:grid;grid-template-columns:repeat(9,minmax(0,1fr))}
.cell{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;aspect-ratio:1;border:0;border-right:1px solid var(--lg-line);border-bottom:1px solid var(--lg-line);border-radius:0;padding:0;background:var(--lg-white);color:var(--lg-rose);font-size:1.35rem;font-weight:700;transition:background-color .12s}
.cell.box-right{border-right:2px solid var(--lg-ink)}
.cell.box-bottom{border-bottom:2px solid var(--lg-ink)}
.cell.given{font-weight:900;color:var(--lg-ink);background:var(--lg-tint-1)}
.cell.peer{background:var(--lg-tint-3)}
.cell.given.peer{background:var(--lg-tint-3)}
.cell.same,.cell.given.same{background:var(--lg-pink)}
.cell.selected{box-shadow:inset 0 0 0 3px var(--own-colour,var(--lg-rose));background:var(--lg-pink)}
.cell.partner{outline:2px dashed var(--partner-colour,var(--lg-leaf));outline-offset:-5px;z-index:1}
.cell.bad{color:var(--lg-bad);text-decoration:underline;text-decoration-style:wavy}
.cell .conflict-mark{position:absolute;right:2px;bottom:0;font-size:.65rem;font-weight:900}
.cell .player-mark{position:absolute;left:2px;top:0;font:800 .55rem/1.3 system-ui;color:var(--lg-ink)}
.cell:focus-visible{outline:3px solid var(--lg-leaf);outline-offset:-3px;z-index:2}
.cell .pencils{display:grid;grid-template-columns:repeat(3,1fr);width:90%;height:90%;font-size:.62rem;line-height:1;color:var(--lg-muted);font-weight:700}
.pencils span{display:flex;align-items:center;justify-content:center}
.pencils span.cut{color:var(--lg-bad);text-decoration:line-through}
.cell.hint-unit{box-shadow:inset 0 0 0 2px var(--lg-warn)}
.cell.hint-cell{box-shadow:inset 0 0 0 4px var(--lg-good);background:var(--lg-tint-2)}
.cell.hint-elim{box-shadow:inset 0 0 0 3px var(--lg-bad)}
.cell.hint-elim::before{content:'\2715';position:absolute;left:2px;top:0;font-size:.6rem;font-weight:900;color:var(--lg-bad)}
.cell.flash{animation:cellflash .5s ease-out}
@keyframes cellflash{from{background:var(--lg-good)}to{background:inherit}}
#board.is-paused .cell{color:transparent}#board.is-paused .pencils{visibility:hidden}
#paused{position:absolute;inset:0;display:grid;place-content:center;gap:10px;justify-items:center;background:var(--lg-white);border-radius:5px;z-index:5;font-weight:800;font-size:1.4rem}
#paused p{margin:0}
#selection{margin:10px 0;font-size:.85rem}
#pad{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:12px 0}
#pad button{position:relative;padding:8px;min-height:50px;font-size:1.3rem}
#pad button small{position:absolute;right:6px;top:3px;font-size:.62rem;font-weight:800;color:var(--lg-muted)}
#pad button.done{opacity:.55}
#pad button[aria-pressed=true]{background:var(--lg-pink);border-color:var(--lg-rose)}
.tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.tools .lg-button{padding:8px 5px;font-size:.85rem;line-height:1.2;text-align:center}
.tools button[aria-pressed=true]{background:var(--lg-pink);border-color:var(--lg-rose)}
#hint-panel{margin:12px 0;padding:14px 16px;border-color:var(--lg-good)}
#hint-panel h2{margin:0 0 4px;font-size:1.1rem;text-transform:capitalize}#hint-panel p{margin:4px 0}
#instructions{font-size:.8rem}
#finish{margin:16px 0;background:var(--lg-pink)}
#finish h2{margin-top:0}
.footer-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
#howto{max-width:min(92vw,460px);border:1px solid var(--lg-line);border-radius:var(--lg-radius);background:var(--lg-white);color:var(--lg-ink);padding:20px}
#howto::backdrop{background:var(--lg-backdrop)}#howto h2{margin-top:0}#howto li{margin:6px 0;line-height:1.45}
button:disabled{opacity:.62}
#board[aria-disabled=true] .cell{cursor:default}
@media(min-width:420px){.tools{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:520px){#pad{grid-template-columns:repeat(9,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.cell.flash{animation:none}.cell{transition:none}}

/* ===== K2: phone order, premium touches, PC stage ===== */
/* Phone: the three stage parts flow as one column in the reading order the game always had */
.sd-stage{display:flex;flex-direction:column}
.sd-left,.sd-center,.sd-right{display:contents}
.sd-stage .heading{order:1}.sd-stage .metrics{order:2}.sd-stage #status{order:3}.sd-stage #people{order:4}.sd-stage #finish{order:5}
.sd-stage #board-wrap{order:6}.sd-stage #selection{order:7}.sd-stage #pad{order:8}.sd-stage .tools{order:9}.sd-stage #hint-panel{order:10}
.sd-stage #instructions{order:11}.sd-stage .footer-actions{order:12}
.sd-rail-title{display:none}
.sd-stage .heading{width:100%}
#board{box-shadow:0 10px 28px -14px var(--lg-rose),0 2px 0 var(--lg-line);border-radius:10px}
#board-wrap{filter:none}
.cell{cursor:pointer;font-variant-numeric:lining-nums}
.cell:not(.given):hover:not(.selected){background:var(--lg-tint-3)}
.cell.given{cursor:default}
#board[aria-disabled=true] .cell{cursor:default}
.cell.selected{z-index:1}
#pad button,.tools .lg-button{transition:transform .08s,box-shadow .08s,background-color .12s;box-shadow:0 2px 0 var(--lg-line)}
#pad button:not(:disabled):hover,.tools .lg-button:not(:disabled):hover{background:var(--lg-pink);cursor:pointer}
#pad button:not(:disabled):active,.tools .lg-button:not(:disabled):active{transform:translateY(2px);box-shadow:0 0 0 var(--lg-line)}
#pad button:disabled,.tools .lg-button:disabled{cursor:not-allowed}
.metrics #timer{font-family:'Fredoka','Nunito',system-ui,sans-serif;font-size:1.5rem;font-weight:500;letter-spacing:.02em}
.sd-keys{display:none}

@media(min-width:1000px){
  html,body{overflow-x:hidden}
  main{max-width:1280px;padding:0 24px 8px}
  header{min-height:56px}
  /* menu: setup card and lobby card sit side by side, centred */
  main{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:24px;align-items:start;max-width:1080px}
  #lobby .lg-lobby>a,#lobby .lg-lobby>h1,#lobby .lg-lobby>p.lg-muted{display:none}
  #lobby .lg-lobby{margin-top:4px;padding-top:18px}
  main>header,main>#game{grid-column:1/-1}
  main>#setup{margin-top:4px}
  .sd-setup-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:28px;align-items:start}
  .sd-setup-a h1{margin-top:0}
  #setup label:first-child{margin-top:0}
  .sd-setup-b label:first-child{margin-top:0}
  /* play: tools left, board centre, progress and number pad right */
  main:has(#game:not([hidden])){display:block;max-width:1280px}
  .sd-stage{display:grid;--lg-topbar:64px;padding:0}
  .sd-left,.sd-center,.sd-right{display:flex}
  .sd-stage .heading,.sd-stage .metrics,.sd-stage #status,.sd-stage #people,.sd-stage #finish,.sd-stage #board-wrap,.sd-stage #selection,
  .sd-stage #pad,.sd-stage .tools,.sd-stage #hint-panel,.sd-stage #instructions,.sd-stage .footer-actions{order:0}
  .sd-rail-title{display:block;margin:0;font-size:1rem;color:var(--lg-muted);text-transform:uppercase;letter-spacing:.08em}
  .sd-stage{grid-template-columns:minmax(220px,280px) minmax(0,1fr) minmax(240px,300px);gap:20px}
  .sd-center{gap:8px}
  .sd-center .heading{justify-content:center;gap:12px;flex:none}
  .sd-center .heading h1{margin:0;font-size:1.5rem}
  .sd-center .heading p{margin:0}
  .sd-center .heading>div{display:flex;align-items:baseline;gap:10px}
  #board-wrap{margin:0;width:min(calc(100dvh - 210px),620px);max-width:100%;flex:none}
  #board{width:100%}
  .cell{font-size:clamp(1.5rem,3.6vh,2.1rem)}
  .cell .pencils{font-size:clamp(.62rem,1.55vh,.9rem)}
  #selection{margin:2px 0 0;min-height:1.3em;text-align:center;flex:none}
  #finish{margin:0;width:100%;padding:12px 16px;flex:none}
  #finish h2{margin:0 0 2px;font-size:1.25rem}#finish p{margin:2px 0}
  #finish .row-actions{margin:6px 0 0}
  .sd-right .metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin:0}
  .sd-right .metrics #timer{grid-column:1/-1;text-align:center;font-size:2.4rem;line-height:1;padding:6px 0;background:var(--lg-cream);border-radius:14px}
  .sd-right .metrics #pause{grid-column:1/-1}
  .sd-right .metrics #progress{grid-column:1/-1;font-size:.85rem;color:var(--lg-muted)}
  .sd-right #status{margin:0;min-height:0;font-size:.9rem}
  .sd-right #people{margin:0}
  #pad{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
  #pad button{min-height:clamp(46px,7.2vh,62px);font-size:1.6rem;border-radius:14px}
  #pad button small{font-size:.72rem;right:8px;top:5px}
  #instructions{display:none}
  .sd-keys{display:block;font-size:.8rem;margin:0}
  .sd-keys kbd{font:700 .75rem/1 'Nunito',system-ui,sans-serif;border:1px solid var(--lg-line);border-bottom-width:2px;border-radius:6px;padding:2px 6px;background:var(--lg-cream)}
  .sd-left .tools{grid-template-columns:1fr 1fr}
  .sd-left .tools .lg-button{min-height:48px;font-size:.9rem}
  .sd-left .footer-actions{margin:auto 0 0;display:grid;grid-template-columns:1fr 1fr}
  .sd-left .footer-actions .lg-button{text-align:center;justify-content:center;min-height:44px;font-size:.88rem}
  #hint-panel{margin:0}
  #hint-panel h2{font-size:1rem}#hint-panel p{font-size:.88rem;line-height:1.4}
}
@media(min-width:1700px){
  main:has(#game:not([hidden])){max-width:1560px}
  #board-wrap{width:min(calc(100dvh - 210px),760px)}
  .sd-stage{grid-template-columns:minmax(240px,320px) minmax(0,1fr) minmax(260px,340px)}
}
