/* Colour Garden player: full-screen colouring view with header, canvas stage, tools and the paint palette. */
html.playing,html.playing body{overflow:hidden;overscroll-behavior:none}
#player{position:fixed;inset:0;z-index:50;background:var(--paper);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;height:100dvh}
.pbar{display:flex;align-items:center;gap:6px;padding:8px max(10px,env(safe-area-inset-left,0px)) 8px 10px;border-bottom:1px solid var(--line);background:var(--paper);position:relative;min-width:0}
.ib{border:0;background:transparent;color:var(--ink);width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;padding:0;flex:none;touch-action:manipulation}
.ib:hover{background:var(--paper-2)}
.ib:disabled{opacity:.32;cursor:default;background:transparent}
.ib[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.ptitle{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.15;padding:0 4px}
.ptitle b{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.2px}
.ptitle span{font-size:13px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcount{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-soft);white-space:nowrap;padding:0 4px}
@media (max-width:420px){.pcount{display:none}.ptitle b{font-size:17px}}
.pprog{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:transparent}
.pprog i{display:block;height:100%;width:0;background:var(--cg);transition:width .2s}
#stage{position:relative;overflow:hidden;background:var(--paper-2);touch-action:none;-webkit-user-select:none;user-select:none}
#board{position:absolute;inset:0;outline:none;cursor:crosshair}
#stage.panning #board,#player.complete #board{cursor:grab}
#board.kbd:focus{box-shadow:inset 0 0 0 3px var(--focus)}
#cv{display:block;position:absolute;left:0;top:0}
#cellFocus{position:absolute;left:0;top:0;pointer-events:none;border:3px solid var(--focus);border-radius:3px;box-shadow:0 0 0 2px var(--paper);transform-origin:0 0}
.tools{position:absolute;right:10px;bottom:10px;display:flex;flex-direction:column;gap:6px;z-index:2}
.tools.left{right:auto;left:10px}
.tools .ib{background:var(--paper);box-shadow:0 1px 0 rgba(0,0,0,.06),0 6px 14px -8px rgba(0,0,0,.45)}
.tools .ib:hover{background:var(--card)}
.tools .ib[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.tools .ib.txt{width:auto;padding:0 12px;gap:6px;font-weight:600;font-size:14px}
#pStatus{position:absolute;left:50%;top:10px;transform:translateX(-50%);max-width:min(560px,calc(100% - 20px));background:var(--ink);color:var(--paper);border-radius:12px;padding:8px 14px;font-size:15px;font-weight:600;z-index:3;text-align:center;pointer-events:none;box-shadow:0 10px 20px -12px rgba(0,0,0,.6)}
#pDone{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:3}
#pLoading{position:absolute;inset:0;display:grid;place-items:center;background:var(--paper-2);z-index:4;padding:20px;text-align:center}
#pLoading .row{justify-content:center;margin-top:12px}
/* palette: a horizontal tray of paint pans on phones, a column on wide screens */
#palette{display:flex;gap:6px;overflow-x:auto;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--paper);scrollbar-width:thin;scroll-snap-type:x proximity}
.swb{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;border:0;background:transparent;border-radius:14px;padding:6px 4px 5px;width:74px;scroll-snap-align:start;touch-action:manipulation;position:relative}
.swb .chip{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:18px;font-variant-numeric:tabular-nums;box-shadow:inset 0 -4px 0 rgba(0,0,0,.16),inset 0 0 0 1px rgba(0,0,0,.1)}
.swb .nm{font-size:12px;line-height:1.15;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.swb .left{font-size:11.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.swb:hover{background:var(--paper-2)}
.swb[aria-pressed="true"]{background:var(--card);box-shadow:inset 0 0 0 3px var(--cg)}
.swb[aria-pressed="true"] .chip{transform:translateY(-2px)}
.swb.done .chip{opacity:.5}
.swb.done .chip::after{content:"";position:absolute;width:20px;height:11px;border-left:4px solid currentColor;border-bottom:4px solid currentColor;transform:translate(1px,-3px) rotate(-45deg)}
.swb.done .chip{font-size:0;position:relative}
.swb.done .left{color:var(--good);font-weight:600}
@media (min-width:900px){
  #player{grid-template-columns:minmax(0,1fr) 290px;grid-template-rows:auto minmax(0,1fr)}
  .pbar{grid-column:1/-1}
  #palette{grid-column:2;grid-row:2;flex-direction:column;overflow-x:hidden;overflow-y:auto;border-top:0;border-left:1px solid var(--line);padding:12px;gap:4px}
  .swb{width:100%;flex-direction:row;gap:12px;padding:6px 10px 6px 6px;text-align:left}
  .swb .nm{font-size:15px;flex:1}
  .swb .left{font-size:13px}
  .swb[aria-pressed="true"] .chip{transform:none}
}
.menu-list{display:flex;flex-direction:column;gap:6px}
.menu-list .btn{justify-content:flex-start}
.mstats{display:flex;gap:18px;flex-wrap:wrap;font-size:15px;color:var(--ink-soft);margin:0}
.mstats b{color:var(--ink);font-variant-numeric:tabular-nums}
.keys{font-size:14px;color:var(--ink-soft);margin:0}
.fin-art{background:var(--sheet);border-radius:16px;padding:18px;display:grid;place-items:center}
.fin-art canvas{max-width:100%;height:auto;image-rendering:pixelated;width:260px}
.fchips{display:flex;gap:6px;flex-wrap:wrap}
.fchips:empty{display:none}
.fnet:empty{display:none}
@media (max-height:560px) and (max-width:899px){#palette{padding-top:4px;padding-bottom:4px}.swb .nm{display:none}.swb .chip{width:38px;height:38px}}
