*{box-sizing:border-box}:root{--a:#173f35;--b:#245b4d;--cream:#fffaf0;--ink:#18302b;--gold:#f0b44d}body{margin:0;background:#f6f0e5;color:var(--ink);font-family:ui-rounded,system-ui,-apple-system,sans-serif}button,select,input{font:inherit}button{border:0;border-radius:99px;padding:9px 14px;font-weight:750;cursor:pointer}header{height:68px;padding:0 clamp(12px,4vw,44px);display:flex;align-items:center;gap:12px;background:var(--cream);border-bottom:1px solid #e5ddcf}header b{font-size:23px}header span{font-size:12px;opacity:.55}header div{margin-left:auto;display:flex;gap:7px}header div button:last-child{background:var(--ink);color:white}main{max-width:1180px;margin:auto;padding:25px 12px 50px}.intro{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:0 10px 18px}.intro small,.petbar small,dialog small{font-weight:900;letter-spacing:.15em;color:#8a5e16}.intro h1{font-size:clamp(28px,4vw,48px);line-height:1;margin:5px 0 10px}.intro p{max-width:720px;opacity:.7}.stats{white-space:nowrap;background:white;padding:14px 18px;border-radius:16px}.game{border-radius:25px;overflow:hidden;background:var(--a);box-shadow:0 15px 45px #173f3530}.game nav{display:flex;gap:7px;padding:10px;background:#102e27;color:white}.game nav label{margin-left:auto}#board{min-height:625px;padding:clamp(9px,2vw,25px);background:radial-gradient(circle at 50% 15%,var(--b),var(--a))}.top,#tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:clamp(4px,1.2vw,13px)}.top{margin-bottom:24px}.pile{position:relative;aspect-ratio:5/7;border:2px dashed #ffffff35;border-radius:10px;color:#ffffff33;display:grid;place-items:center;font-size:28px}.col{position:relative;min-height:420px}.card{position:absolute;left:0;width:100%;aspect-ratio:5/7;border-radius:9px;background:white;border:1px solid #ddd;box-shadow:0 3px 8px #0003;cursor:pointer;overflow:hidden}.back{background:repeating-linear-gradient(45deg,#e4a43b 0 8px,#f2c56c 8px 16px);border:4px solid white}.back:after{content:"🐾";position:absolute;inset:7px;border:2px solid #fff9;border-radius:5px;display:grid;place-items:center;color:white;font-size:clamp(17px,3vw,35px)}.rank{position:absolute;top:5px;left:6px;font-weight:900;font-size:clamp(13px,2vw,22px);line-height:.85}.rank em{display:block;font-style:normal}.red{color:#c13e45}.face{position:absolute;inset:26% 9% 10%;border-radius:7px;background:#f5ead7 center/cover;display:grid;place-items:center;font-size:clamp(20px,4vw,48px)}.selected{outline:4px solid var(--gold);outline-offset:1px}#msg{margin:0;text-align:center;color:white;background:#102e27;padding:10px;min-height:38px;font-size:13px}.petbar{margin:20px 8px 0;background:white;border-radius:20px;padding:18px 22px;display:flex;justify-content:space-between;align-items:center}.petbar h2{margin:5px 0}.petbar p{margin:0;opacity:.65}#portrait{width:80px;height:80px;border-radius:50%;background:#f3dfbb center/cover;display:grid;place-items:center;font-size:43px}dialog{border:0;border-radius:22px;padding:28px;max-width:440px;width:calc(100% - 30px)}dialog::backdrop{background:#102e27bb}dialog h2{font-size:30px;margin:5px 0}dialog input{display:block;width:100%;padding:12px;margin:10px 0;border:1px solid #ddd;border-radius:10px}#close{float:right;background:none;font-size:25px}@media(max-width:650px){header span{display:none}.intro{display:block}.stats{display:inline-block;margin-top:8px}#board{min-height:510px}.col{min-height:340px}.card,.pile{border-radius:6px}.top,#tabs{gap:4px}.game nav button{font-size:11px;padding:7px}.face{inset:29% 7% 8%}}
/* v0.1.1 fixes */
.pile>.card{inset:0;width:100%;height:100%}
.card.dragging{opacity:.72;transform:scale(1.03);z-index:1000}
.col.drag-over,.pile.drag-over{outline:4px solid var(--gold);outline-offset:3px}

/* v0.1.2 foundation rendering */
.foundation{font-size:0}
.foundation:before{content:attr(data-suit);position:absolute;inset:0;display:grid;place-items:center;font-size:28px;color:#ffffff33;pointer-events:none}
.foundation>.card{z-index:2;font-size:initial}

/* v0.1.3 */
#waste>.card,.foundation>.card{inset:0!important;width:100%!important;height:100%!important;z-index:3}
#msg.hint-flash{animation:hintflash .42s ease}
@keyframes hintflash{0%{background:#102e27}35%{background:#6f571d;transform:scale(1.008)}100%{background:#102e27;transform:scale(1)}}

/* v0.1.4 authoritative card layout */
#waste,.foundation{position:relative;display:block!important}
#waste>.card,.foundation>.card,
#waste>.top-card,.foundation>.top-card{
  position:absolute!important; inset:0!important; width:100%!important; height:100%!important;
  display:block!important; visibility:visible!important; opacity:1!important; z-index:10!important;
  background-color:#fff!important; color:#18302b;
}
.card .corner{position:absolute;z-index:30;font-weight:900;font-size:clamp(13px,2vw,22px);line-height:.86;pointer-events:none}
.card .corner b,.card .corner span{display:block}
.card .corner-tl{top:5px;left:6px}
.card .corner-br{bottom:5px;right:6px;transform:rotate(180deg)}
.card .corner.red{color:#c13e45}
.card .face{z-index:20}
.foundation:before{z-index:0}

/* v0.1.5 tableau stacking */
.col>.card{overflow:hidden}
.col>.card.selected{z-index:100!important}

/* v0.1.7 responsive/polish */
.game{overflow:visible}
#board{overflow-x:auto;overflow-y:visible;min-height:clamp(610px,72vh,880px)}
.top,#tabs{min-width:560px}
#tabs{padding-bottom:180px}
#msg{position:relative;z-index:200;border-radius:0 0 22px 22px}
.col{min-height:560px}
.just-flipped{animation:softFlip .38s ease-out;transform-origin:center top}
@keyframes softFlip{0%{transform:scaleX(.08);filter:brightness(1.18)}55%{transform:scaleX(1.03)}100%{transform:scaleX(1)}}
.win-overlay[hidden]{display:none}.win-overlay{position:fixed;inset:0;z-index:9999;background:#102e27cc;backdrop-filter:blur(7px);display:grid;place-items:center;padding:20px}.win-panel{position:relative;z-index:2;width:min(480px,94vw);background:#fffaf0;border-radius:28px;padding:34px;text-align:center;box-shadow:0 30px 80px #0006}.win-paw{font-size:62px}.win-panel h2{font-size:44px;margin:3px 0}.win-panel>p{opacity:.72}.win-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.win-stats div{background:white;border:1px solid #eadfcd;border-radius:15px;padding:13px 5px}.win-stats b,.win-stats span{display:block}.win-stats b{font-size:21px}.win-stats span{font-size:10px;text-transform:uppercase;opacity:.55}.win-pb{font-weight:800;color:#8a5e16}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;left:var(--x);top:-40px;font-style:normal;font-size:22px;animation:fall 2.4s var(--d) ease-in forwards}@keyframes fall{to{transform:translateY(110vh) rotate(var(--r));opacity:.25}}
@media(max-width:650px){#board{min-height:650px}.top,#tabs{min-width:520px}#tabs{padding-bottom:210px}.col{min-height:590px}}

/* v0.1.8 interaction + layout */
#tabs{padding-bottom:0!important}
#board{min-height:0!important;overflow-x:auto;overflow-y:visible}
#msg{position:relative!important;clear:both;z-index:500!important}
.flip-start{transform:rotateY(88deg)!important;filter:brightness(1.12);transition:none!important}
.flip-start.flip-end{transform:rotateY(0deg)!important;transition:transform .42s ease-out,filter .42s ease-out!important;filter:brightness(1)}
.card{backface-visibility:hidden}

/* v0.1.9 */
#board{min-height:0!important;padding-bottom:12px}
#tabs{min-height:500px!important}
#msg{position:relative!important;margin:12px 0 0!important;border-radius:12px!important;z-index:500!important}
.score-cluster{display:flex;align-items:center;gap:8px}
.win-stats{grid-template-columns:repeat(4,1fr)!important}
footer{text-align:center;padding:18px;font-size:11px;opacity:.5}
@media(max-width:650px){#tabs{min-height:500px!important}.score-cluster{margin-top:8px}.win-stats{grid-template-columns:repeat(2,1fr)!important}}

/* v0.2.1 */
.newgame-dialog{border:0;border-radius:24px;padding:30px;width:min(500px,calc(100% - 30px))}
.newgame-dialog::backdrop{background:#102e27bb;backdrop-filter:blur(4px)}
.newgame-dialog h2{font-size:30px;margin:6px 0}.newgame-dialog p{opacity:.68}
.dialog-x{float:right;background:none!important;font-size:26px;padding:0 5px}
.draw-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.draw-choice{border-radius:18px!important;background:#f6f0e5!important;color:#18302b!important;text-align:left;padding:20px!important;border:2px solid transparent!important}
.draw-choice:hover{border-color:#f0b44d!important;transform:translateY(-1px)}
.draw-choice b,.draw-choice span{display:block}.draw-choice b{font-size:21px;margin-bottom:7px}.draw-choice span{font-size:12px;line-height:1.35;opacity:.65}
@media(max-width:520px){.draw-options{grid-template-columns:1fr}}

/* v0.2.2 */
#msg{display:none!important}
.toolbar-hint{flex:1;min-width:140px;font-size:12px;line-height:1.25;color:#f7f0df;opacity:.9;padding:0 8px}
.newgame-dialog[hidden]{display:none!important}
.newgame-dialog{position:fixed;inset:0;z-index:10000;width:auto!important;max-width:none!important;border-radius:0!important;background:#102e27bb!important;backdrop-filter:blur(4px);padding:20px!important;display:grid;place-items:center}
.newgame-dialog>*{max-width:500px}
.newgame-dialog>small,.newgame-dialog>h2,.newgame-dialog>p,.newgame-dialog>.draw-options,.newgame-dialog>.dialog-x{background:#fffaf0}
.newgame-dialog>h2,.newgame-dialog>p,.newgame-dialog>small{width:min(500px,calc(100vw - 40px));margin:0;padding-left:30px;padding-right:30px;box-sizing:border-box}
.newgame-dialog>small{padding-top:28px;border-radius:24px 24px 0 0}
.newgame-dialog>h2{padding-top:5px}.newgame-dialog>p{padding-top:8px;padding-bottom:8px}
.newgame-dialog>.draw-options{width:min(500px,calc(100vw - 40px));box-sizing:border-box;padding:12px 30px 30px;border-radius:0 0 24px 24px;margin:0}
.newgame-dialog>.dialog-x{position:absolute;top:calc(50% - 180px);right:calc(50% - 230px);z-index:2}
.win-stats{grid-template-columns:repeat(3,1fr)!important}

/* v0.2.3 critical toolbar repair */
.game-toolbar{display:flex!important;align-items:center;gap:8px;min-height:46px;padding:8px 12px;background:#12392f;border-radius:16px 16px 0 0;box-sizing:border-box}
.game-toolbar button{flex:0 0 auto}
.game-toolbar .toolbar-hint{display:block!important;flex:1;color:#fffaf0;opacity:.9;white-space:normal}
#stock>button,#stock>.toolbar-hint{display:none!important}
@media(max-width:650px){.game-toolbar{flex-wrap:wrap}.game-toolbar .toolbar-hint{flex-basis:100%;padding:3px 2px}}

/* v0.2.4 modal + counters */
.newgame-dialog[hidden]{display:none!important}
.newgame-dialog{
  position:fixed!important;inset:0!important;z-index:10000!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:100%!important;height:100%!important;padding:20px!important;margin:0!important;
  box-sizing:border-box!important;background:rgba(16,46,39,.76)!important;
  backdrop-filter:blur(5px);
}
.newgame-card{
  position:relative;width:min(500px,100%);box-sizing:border-box;
  background:#fffaf0;border-radius:24px;padding:30px;
  box-shadow:0 28px 80px rgba(0,0,0,.35);color:#18302b;
}
.newgame-card small,.newgame-card h2,.newgame-card p,.newgame-card .draw-options{
  width:auto!important;max-width:none!important;background:transparent!important;
  padding-left:0!important;padding-right:0!important;
}
.newgame-card h2{font-size:30px;margin:6px 0 8px!important}
.newgame-card p{margin:0 0 22px!important;opacity:.68}
.newgame-card .dialog-x{
  position:absolute!important;right:18px!important;top:14px!important;
  background:transparent!important;color:#18302b!important;font-size:25px!important;
}
.newgame-card .draw-options{
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important;
  margin:0!important;padding:0!important;
}
.newgame-card .draw-choice{
  min-height:116px;border-radius:17px!important;padding:18px!important;
  background:#f4eee2!important;color:#18302b!important;text-align:left!important;
}
.stats{white-space:nowrap}
@media(max-width:520px){
 .newgame-card .draw-options{grid-template-columns:1fr!important}
}

/* v0.2.5 */
#waste{position:relative;overflow:visible}
#waste>.card{position:absolute!important;top:0!important}
#waste>.waste-under{pointer-events:none}

/* v0.2.9 stable interaction repair */
.stats{
  width:350px!important;text-align:center!important;
  font-variant-numeric:tabular-nums!important;font-feature-settings:"tnum" 1!important;
}
.stats b{display:inline-block;font-variant-numeric:tabular-nums!important}
#moves{min-width:2ch;text-align:right} #time{min-width:5ch;text-align:center} #hintCount{min-width:2ch;text-align:right}
.top{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 52px repeat(4,minmax(0,1fr))!important;column-gap:13px!important}
#waste{margin-right:0!important;position:relative!important;overflow:visible!important}
#waste>.card{position:absolute!important;top:0!important;left:0!important;transform:translateX(var(--waste-x,0px))!important}
#waste>.waste-under{pointer-events:none!important}
@media(max-width:760px){.stats{width:330px!important}.top{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px repeat(4,minmax(0,1fr))!important}}

/* v0.3.1 isolated drag preview */
#dragProxy{overflow:visible!important}
#dragProxy .card{box-sizing:border-box!important;left:0!important;top:0!important}
#waste>.dragging{opacity:.45!important}

/* v0.3.6 stable rollback + explicit draw-3 placeholder */
#waste.empty-fan{position:relative!important;overflow:visible!important}
#waste.empty-fan::before,#waste.empty-fan::after{display:none!important}
#waste.empty-fan .fan-outline{
 position:absolute;top:-2px;width:100%;height:100%;box-sizing:border-box;
 border:2px dashed rgba(255,255,255,.28);border-radius:10px;pointer-events:none;
 background:transparent;
}
#waste.empty-fan .fan-outline-2{left:22px;z-index:0}
#waste.empty-fan .fan-outline-3{left:44px;z-index:0}
#waste.empty-fan{z-index:1}
#waste.empty-fan .fan-outline{z-index:-1}

/* v0.3.7 visual-only multi-card drag proxy */
.flat-stack-proxy{overflow:visible!important}
.flat-stack-strip,.flat-stack-full{
 box-sizing:border-box;background:#fff;border:1px solid #d9d4c9;border-radius:9px;
 box-shadow:0 2px 5px rgba(0,0,0,.16);overflow:hidden;
}
.flat-stack-strip{border-radius:9px 9px 2px 2px}
.flat-rank{position:absolute;left:6px;top:4px;font-weight:900;font-size:20px;line-height:.84;color:#132d27}
.flat-rank.red{color:#c93d48}
.flat-rank b,.flat-rank span{display:block}
.flat-stack-full>.card{position:absolute!important;inset:0!important;transform:none!important;margin:0!important}

/* v0.4.0 consolidated current-state rules */
#waste{position:relative!important;overflow:visible!important;margin-right:0!important}
#waste.draw-three{width:auto!important;min-width:0!important}
#waste>.card{position:absolute!important;top:0!important;left:0!important;transform:translateX(var(--waste-x,0px))!important}
#waste>.waste-under{pointer-events:none!important}
#waste>.dragging{opacity:.45!important}
#waste.empty-fan .fan-outline{z-index:0!important}
#waste.empty-fan{isolation:isolate}
#waste.empty-fan>.card{z-index:2!important}

/* v0.5.0 PawShuffle signature pet-card design */
.card:not(.back){
  background:#fffaf0!important;
  border:1px solid rgba(91,70,38,.20)!important;
  border-radius:12px!important;
  box-shadow:0 4px 10px rgba(0,0,0,.22)!important;
}
.card .pet-photo{
  position:absolute;z-index:10;
  inset:5px;
  border-radius:9px;
  overflow:hidden;
  background:#eadfc9 center/cover no-repeat;
  display:grid;place-items:center;
  font-size:clamp(24px,4vw,50px);
  color:#173f35;
}
/* Ivory corner sweeps sit over the photograph, creating the curved cut-outs. */
.card .card-sweep{position:absolute;z-index:20;pointer-events:none;background:#fffaf0}
.card .sweep-tl{
  left:-1px;top:-1px;width:52%;height:45%;
  border-bottom-right-radius:78% 72%;
  box-shadow:5px 5px 0 rgba(238,224,198,.55);
}
.card .sweep-br{
  right:-1px;bottom:-1px;width:42%;height:38%;
  border-top-left-radius:82% 78%;
  box-shadow:-5px -5px 0 rgba(238,224,198,.48);
}
.card .corner{
  z-index:30!important;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:800!important;
  line-height:.78!important;
  letter-spacing:-.04em;
  text-shadow:0 1px 0 rgba(255,255,255,.55);
}
.card .corner b{font-size:1.04em}
.card .corner span{font-size:.92em;margin-top:3px}
.card .corner-tl{top:7px!important;left:8px!important}
.card .corner-br{bottom:7px!important;right:8px!important}
.card .corner:not(.red){color:#102e27!important}
.card .corner.red{color:#bd2f35!important}
.card.selected{outline:4px solid var(--gold)!important;outline-offset:2px!important}
/* Preserve compact rank/suit-only strips in multi-card drag previews. */
.flat-stack-strip{background:#fffaf0!important;border-color:rgba(91,70,38,.20)!important}
.flat-rank{font-family:Georgia,"Times New Roman",serif!important}
/* A slightly richer matching back. */
.card.back{
  border:5px solid #fffaf0!important;border-radius:12px!important;
  background:
    radial-gradient(circle at 30% 25%,rgba(255,255,255,.14) 0 2px,transparent 3px),
    repeating-linear-gradient(45deg,#e6a83d 0 9px,#f0bd5a 9px 18px)!important;
  box-shadow:0 4px 10px rgba(0,0,0,.22)!important;
}
.card.back:after{border-radius:7px!important}
@media(max-width:650px){
 .card:not(.back){border-radius:8px!important}
 .card .pet-photo{inset:3px;border-radius:6px}
 .card .corner-tl{top:4px!important;left:5px!important}
 .card .corner-br{bottom:4px!important;right:5px!important}
}

/* v0.5.1 - lighter PawShuffle photo sweeps.
   Keep indexes protected, but give portraits substantially more usable area. */
.card .sweep-tl{
  width:35%!important;
  height:27%!important;
  border-bottom-right-radius:72% 68%!important;
  box-shadow:3px 3px 0 rgba(238,224,198,.48)!important;
}
.card .sweep-br{
  width:29%!important;
  height:23%!important;
  border-top-left-radius:76% 72%!important;
  box-shadow:-3px -3px 0 rgba(238,224,198,.42)!important;
}
/* Pull the photo crop slightly upward so portrait faces have a little more headroom. */
.card .pet-photo{
  background-position:center 42%!important;
}

/* v0.5.3 - PawShuffle signature card back */
.card.back{
  box-sizing:border-box!important;
  overflow:hidden!important;
  border:5px solid #fffaf0!important;
  border-radius:12px!important;
  background-color:#073d31!important;
  background-image:
    radial-gradient(ellipse at 50% 54%,rgba(48,111,79,.58) 0 5%,transparent 5.6%),
    radial-gradient(ellipse at 39% 39%,rgba(48,111,79,.48) 0 2.2%,transparent 2.7%),
    radial-gradient(ellipse at 49% 34%,rgba(48,111,79,.48) 0 2.2%,transparent 2.7%),
    radial-gradient(ellipse at 59% 39%,rgba(48,111,79,.48) 0 2.2%,transparent 2.7%),
    linear-gradient(45deg,transparent 48.5%,rgba(87,145,111,.18) 49%,rgba(87,145,111,.18) 51%,transparent 51.5%),
    linear-gradient(-45deg,transparent 48.5%,rgba(87,145,111,.18) 49%,rgba(87,145,111,.18) 51%,transparent 51.5%)!important;
  background-size:42px 42px,42px 42px,42px 42px,42px 42px,42px 42px,42px 42px!important;
  box-shadow:0 4px 10px rgba(0,0,0,.24)!important;
}
.card.back:before{
  content:"🐾"!important;
  position:absolute!important;
  z-index:3!important;
  left:50%!important;top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:42%!important;aspect-ratio:1!important;
  display:grid!important;place-items:center!important;
  box-sizing:border-box!important;
  border:2px solid #e2bd72!important;
  border-radius:50%!important;
  outline:1px solid rgba(255,250,240,.72)!important;
  outline-offset:4px!important;
  background:#073d31!important;
  color:#e2bd72!important;
  font-size:clamp(18px,3.2vw,34px)!important;
  line-height:1!important;
  filter:saturate(.72)!important;
}
.card.back:after{
  content:""!important;
  position:absolute!important;
  z-index:2!important;
  inset:5px!important;
  border:1px solid #e2bd72!important;
  border-radius:7px!important;
  box-shadow:
    inset 0 0 0 2px #073d31,
    inset 0 0 0 3px rgba(255,250,240,.58)!important;
  pointer-events:none!important;
}
@media(max-width:650px){
 .card.back{border-width:3px!important;border-radius:8px!important}
 .card.back:after{inset:3px!important;border-radius:5px!important}
}

/* v0.5.4 - quiet PawShuffle card back for repeated tableau use */
.card.back{
  box-sizing:border-box!important;
  overflow:hidden!important;
  border:4px solid #fffaf0!important;
  border-radius:12px!important;
  background:#0d493c!important;
  box-shadow:0 3px 8px rgba(0,0,0,.20)!important;
}
.card.back:after{
  content:""!important;
  position:absolute!important;
  z-index:2!important;
  inset:5px!important;
  border:1px solid rgba(255,250,240,.68)!important;
  border-radius:7px!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
.card.back:before{
  content:"🐾"!important;
  position:absolute!important;
  z-index:3!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:auto!important;
  height:auto!important;
  aspect-ratio:auto!important;
  display:block!important;
  box-sizing:border-box!important;
  border:0!important;
  outline:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:rgba(255,250,240,.48)!important;
  font-size:clamp(16px,2.6vw,27px)!important;
  line-height:1!important;
  filter:grayscale(1)!important;
  opacity:.78!important;
}
@media(max-width:650px){
 .card.back{border-width:3px!important;border-radius:8px!important}
 .card.back:after{inset:4px!important;border-radius:5px!important}
}

/* v0.5.5 - contrasting PawShuffle card back */
.card.back{
  box-sizing:border-box!important;
  overflow:hidden!important;
  border:7px solid #fff8e9!important;
  border-radius:12px!important;
  background:#a84f3d!important; /* muted warm terracotta against the green table */
  box-shadow:0 4px 10px rgba(0,0,0,.24)!important;
}
.card.back:after{
  content:""!important;
  position:absolute!important;
  z-index:2!important;
  inset:4px!important;
  border:1px solid rgba(255,248,233,.72)!important;
  border-radius:5px!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
/* Stock-pile branding: a simple PS/paw seal, intentionally quiet in tableau strips. */
.card.back:before{
  content:"PS\A🐾"!important;
  white-space:pre!important;
  position:absolute!important;
  z-index:3!important;
  left:50%!important;top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:48%!important;
  aspect-ratio:1!important;
  display:grid!important;
  place-items:center!important;
  box-sizing:border-box!important;
  padding-top:10%!important;
  border:2px solid rgba(255,248,233,.92)!important;
  outline:1px solid rgba(255,248,233,.34)!important;
  outline-offset:4px!important;
  border-radius:50%!important;
  background:rgba(112,45,35,.22)!important;
  color:#fff8e9!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-weight:800!important;
  font-size:clamp(12px,2vw,21px)!important;
  line-height:.86!important;
  text-align:center!important;
  letter-spacing:.04em!important;
  filter:none!important;
  opacity:1!important;
  text-shadow:0 1px 1px rgba(76,30,23,.28)!important;
}
@media(max-width:650px){
 .card.back{border-width:5px!important;border-radius:8px!important}
 .card.back:after{inset:3px!important;border-radius:4px!important}
}

/* v0.5.6 - neutral charcoal PawShuffle back */
.card.back{
  box-sizing:border-box!important;
  overflow:hidden!important;
  border:7px solid #fff8e9!important;
  border-radius:12px!important;
  background:#343536!important;
  box-shadow:0 4px 10px rgba(0,0,0,.24)!important;
}
.card.back:after{
  content:""!important;
  position:absolute!important;
  z-index:2!important;
  inset:4px!important;
  border:1px solid rgba(255,248,233,.64)!important;
  border-radius:5px!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
.card.back:before{
  content:"PS\A🐾"!important;
  white-space:pre!important;
  position:absolute!important;
  z-index:3!important;
  left:50%!important;top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:48%!important;
  aspect-ratio:1!important;
  display:grid!important;
  place-items:center!important;
  box-sizing:border-box!important;
  padding-top:10%!important;
  border:2px solid rgba(255,248,233,.86)!important;
  outline:1px solid rgba(255,248,233,.20)!important;
  outline-offset:4px!important;
  border-radius:50%!important;
  background:rgba(0,0,0,.10)!important;
  color:#fff8e9!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-weight:800!important;
  font-size:clamp(12px,2vw,21px)!important;
  line-height:.86!important;
  text-align:center!important;
  letter-spacing:.04em!important;
  filter:grayscale(1)!important;
  opacity:1!important;
  text-shadow:0 1px 1px rgba(0,0,0,.28)!important;
}
@media(max-width:650px){
 .card.back{border-width:5px!important;border-radius:8px!important}
 .card.back:after{inset:3px!important;border-radius:4px!important}
}

/* v0.5.7 - approved patterned-grey PawShuffle card back */
.card.back{
  box-sizing:border-box!important;
  overflow:hidden!important;
  border:4px solid #292a2b!important;
  border-radius:11px!important;
  background-color:#505152!important;
  background-image:
    repeating-linear-gradient(45deg,
      rgba(255,255,255,.055) 0 13px,
      rgba(255,255,255,.055) 13px 26px,
      rgba(0,0,0,.075) 26px 39px,
      rgba(0,0,0,.075) 39px 52px),
    repeating-linear-gradient(-45deg,
      transparent 0 25px,
      rgba(255,248,233,.62) 25px 26px,
      transparent 26px 52px)!important;
  background-size:auto!important;
  box-shadow:0 4px 9px rgba(0,0,0,.23)!important;
}
.card.back:after{
  content:""!important;
  position:absolute!important;
  z-index:2!important;
  inset:3px!important;
  border:1px solid rgba(255,248,233,.72)!important;
  border-radius:6px!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
.card.back:before{
  content:"PS\A🐾"!important;
  white-space:pre!important;
  position:absolute!important;
  z-index:3!important;
  left:50%!important;top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:auto!important;height:auto!important;aspect-ratio:auto!important;
  display:block!important;
  padding:0!important;
  border:0!important;outline:0!important;border-radius:0!important;
  background:transparent!important;
  color:#fff8e9!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-weight:800!important;
  font-size:clamp(13px,2.2vw,23px)!important;
  line-height:.9!important;
  text-align:center!important;
  letter-spacing:.03em!important;
  filter:grayscale(1)!important;
  opacity:.96!important;
  text-shadow:0 1px 2px rgba(0,0,0,.30)!important;
}
@media(max-width:650px){
 .card.back{border-width:3px!important;border-radius:8px!important}
 .card.back:after{inset:2px!important;border-radius:5px!important}
}

/* v0.5.8 - faithful low-contrast patterned-grey back */
.card.back{
  box-sizing:border-box!important;
  overflow:hidden!important;
  border:4px solid #292a2b!important;
  border-radius:11px!important;
  background-color:#555657!important;
  background-image:
    linear-gradient(45deg,
      transparent 24%,
      rgba(255,255,255,.045) 24% 49%,
      transparent 49% 74%,
      rgba(0,0,0,.045) 74%),
    linear-gradient(-45deg,
      transparent 24%,
      rgba(0,0,0,.035) 24% 49%,
      transparent 49% 74%,
      rgba(255,255,255,.035) 74%),
    repeating-linear-gradient(45deg,
      transparent 0 31px,
      rgba(255,248,233,.17) 31px 31.6px,
      transparent 31.6px 63px),
    repeating-linear-gradient(-45deg,
      transparent 0 31px,
      rgba(255,248,233,.12) 31px 31.6px,
      transparent 31.6px 63px)!important;
  background-size:32px 32px,32px 32px,63px 63px,63px 63px!important;
  box-shadow:0 4px 9px rgba(0,0,0,.23)!important;
}
/* Explicitly kill all older inner-border rules. */
.card.back:after{
  content:none!important;
  display:none!important;
}
/* PS wordmark only; paw is drawn separately so it is always ivory. */
.card.back:before{
  content:"PS"!important;
  white-space:normal!important;
  position:absolute!important;
  z-index:3!important;
  left:50%!important;
  top:43%!important;
  transform:translate(-50%,-50%)!important;
  width:auto!important;height:auto!important;aspect-ratio:auto!important;
  display:block!important;
  padding:0!important;margin:0!important;
  border:0!important;outline:0!important;border-radius:0!important;
  background:transparent!important;
  color:#fff8e9!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-weight:800!important;
  font-size:clamp(15px,2.35vw,25px)!important;
  line-height:1!important;
  text-align:center!important;
  letter-spacing:.02em!important;
  filter:none!important;
  opacity:.96!important;
  text-shadow:0 1px 2px rgba(0,0,0,.28)!important;
}
/* CSS paw: pad + four toes, all ivory. */
.card.back .back-paw{display:none!important}
.card.back{
  --paw:#fff8e9;
}
/* Use a tiny embedded SVG solely as a mask-like background image for the paw,
   avoiding platform-dependent emoji colour/rendering. */
.card.back{
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='%23fff8e9' fill-opacity='.94'%3E%3Cellipse cx='50' cy='66' rx='22' ry='18'/%3E%3Cellipse cx='23' cy='43' rx='10' ry='13' transform='rotate(-25 23 43)'/%3E%3Cellipse cx='42' cy='31' rx='10' ry='13' transform='rotate(-8 42 31)'/%3E%3Cellipse cx='61' cy='31' rx='10' ry='13' transform='rotate(8 61 31)'/%3E%3Cellipse cx='79' cy='43' rx='10' ry='13' transform='rotate(25 79 43)'/%3E%3C/g%3E%3C/svg%3E"),
    linear-gradient(45deg,transparent 24%,rgba(255,255,255,.045) 24% 49%,transparent 49% 74%,rgba(0,0,0,.045) 74%),
    linear-gradient(-45deg,transparent 24%,rgba(0,0,0,.035) 24% 49%,transparent 49% 74%,rgba(255,255,255,.035) 74%),
    repeating-linear-gradient(45deg,transparent 0 31px,rgba(255,248,233,.17) 31px 31.6px,transparent 31.6px 63px),
    repeating-linear-gradient(-45deg,transparent 0 31px,rgba(255,248,233,.12) 31px 31.6px,transparent 31.6px 63px)!important;
  background-size:18% auto,32px 32px,32px 32px,63px 63px,63px 63px!important;
  background-position:50% 61%,0 0,0 0,0 0,0 0!important;
  background-repeat:no-repeat,repeat,repeat,repeat,repeat!important;
}
@media(max-width:650px){
 .card.back{border-width:3px!important;border-radius:8px!important}
}

/* v0.5.9 - exact approved card-back artwork from supplied mockup */
.card.back{
  box-sizing:border-box!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:11px!important;
  background-color:transparent!important;
  background-image:url("assets/pawshuffle-card-back-v2.png")!important;
  background-size:100% 100%!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  box-shadow:0 4px 9px rgba(0,0,0,.23)!important;
}
.card.back:before,
.card.back:after{
  content:none!important;
  display:none!important;
}
@media(max-width:650px){
 .card.back{border:0!important;border-radius:8px!important}
}

/* v0.6.0 - premium table/foundation pass */
.card.back{
  background-image:url("assets/pawshuffle-card-back-v2.png")!important;
  background-size:100% 100%!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}

/* Layered casino-felt effect: subtle fibres, centre lift, edge depth. */
.game-table{
  background-color:#174f43!important;
  background-image:
    radial-gradient(ellipse at 48% 34%,rgba(255,255,255,.045) 0%,rgba(255,255,255,.018) 34%,transparent 68%),
    repeating-linear-gradient(17deg,rgba(255,255,255,.012) 0 1px,transparent 1px 4px),
    repeating-linear-gradient(107deg,rgba(0,0,0,.012) 0 1px,transparent 1px 5px)!important;
  box-shadow:
    inset 0 18px 32px rgba(0,0,0,.10),
    inset 0 -28px 48px rgba(0,0,0,.12)!important;
}

/* Premium inlaid foundation wells - ivory influenced by the green felt,
   rather than four stark white rectangles. */
.foundation{
  background:rgba(255,248,233,.105)!important;
  border:1px solid rgba(255,248,233,.68)!important;
  outline:1px solid rgba(8,48,40,.38)!important;
  outline-offset:-5px!important;
  border-radius:12px!important;
  box-shadow:
    inset 0 2px 7px rgba(0,0,0,.12),
    0 1px 0 rgba(255,255,255,.05)!important;
}
.foundation.empty{
  color:rgba(255,248,233,.52)!important;
}
.foundation.empty[data-suit="♥"],
.foundation.empty[data-suit="♦"]{
  color:rgba(153,61,62,.72)!important;
}
.foundation.empty[data-suit="♣"],
.foundation.empty[data-suit="♠"]{
  color:rgba(30,45,42,.70)!important;
}

.foundations .foundation:nth-child(1):empty,
.foundations .foundation:nth-child(2):empty{color:rgba(153,61,62,.72)!important}
.foundations .foundation:nth-child(3):empty,
.foundations .foundation:nth-child(4):empty{color:rgba(28,43,40,.72)!important}

/* v0.6.1 - exact approved visual assets */

/* Approved high-resolution felt texture */
.game-table{
  background-color:#075533!important;
  background-image:url("assets/pawshuffle-felt-approved.jpg")!important;
  background-size:cover!important;
  background-position:center top!important;
  background-repeat:no-repeat!important;
  box-shadow:inset 0 12px 28px rgba(0,0,0,.10),
             inset 0 -24px 42px rgba(0,0,0,.12)!important;
}

/* Approved high-resolution PawShuffle card back */
.card.back{
  box-sizing:border-box!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:11px!important;
  background-color:transparent!important;
  background-image:url("assets/pawshuffle-card-back-v2.png")!important;
  background-size:100% 100%!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  box-shadow:0 4px 10px rgba(0,0,0,.27)!important;
}
.card.back:before,
.card.back:after{
  content:none!important;
  display:none!important;
}

/* Foundation wells use the approved luxury artwork as four cropped panels.
   No CSS recreation of borders, ornament or suit artwork. */
.foundations{
  isolation:isolate;
}
.foundation{
  border:0!important;
  outline:0!important;
  border-radius:11px!important;
  background-color:transparent!important;
  background-image:url("assets/pawshuffle-foundations-approved.jpg")!important;
  background-size:400% 100%!important;
  background-repeat:no-repeat!important;
  box-shadow:0 3px 8px rgba(0,0,0,.20)!important;
  color:transparent!important;
  overflow:hidden!important;
}
.foundations .foundation:nth-child(1){background-position:0% 50%!important}
.foundations .foundation:nth-child(2){background-position:33.333% 50%!important}
.foundations .foundation:nth-child(3){background-position:66.667% 50%!important}
.foundations .foundation:nth-child(4){background-position:100% 50%!important}

/* Once a real card occupies a foundation, its face remains the visible content. */
.foundation .card{
  z-index:5!important;
}
@media(max-width:650px){
 .card.back{border-radius:8px!important}
 .foundation{border-radius:8px!important}
}

/* v0.6.2 - corrected asset separation */
.game-table{
  background:#075533 url("assets/pawshuffle-felt-approved.jpg") center top/cover no-repeat!important;
  box-shadow:inset 0 12px 28px rgba(0,0,0,.10),inset 0 -24px 42px rgba(0,0,0,.12)!important;
}
.card.back{
  border:0!important;border-radius:10px!important;
  background:transparent url("assets/pawshuffle-card-back-v2.png") center/100% 100% no-repeat!important;
  box-shadow:0 4px 10px rgba(0,0,0,.27)!important;
}
.card.back:before,.card.back:after{content:none!important;display:none!important}

.foundation{
  border:0!important;outline:0!important;border-radius:10px!important;
  background-color:transparent!important;background-repeat:no-repeat!important;
  background-size:100% 100%!important;box-shadow:none!important;
  color:transparent!important;overflow:hidden!important;
}
.foundations .foundation:nth-child(1){background-image:url("assets/foundation-heart-overlay.png")!important}
.foundations .foundation:nth-child(2){background-image:url("assets/foundation-diamond-overlay.png")!important}
.foundations .foundation:nth-child(3){background-image:url("assets/foundation-club-overlay.png")!important}
.foundations .foundation:nth-child(4){background-image:url("assets/foundation-spade-overlay.png")!important}
.foundation.empty{font-size:0!important}
.foundation .card{z-index:5!important}
.foundations .foundation:nth-child(3):empty::after,
.foundations .foundation:nth-child(4):empty::after{
  position:absolute!important;left:50%!important;top:50%!important;
  transform:translate(-50%,-50%)!important;
  color:#14231f!important;-webkit-text-stroke:.6px rgba(205,174,108,.85);
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(28px,4vw,52px)!important;opacity:.92!important;
}
.foundations .foundation:nth-child(3):empty::after{content:"♣"!important}
.foundations .foundation:nth-child(4):empty::after{content:"♠"!important}

/* v0.6.3 - approved independent luxury foundation assets
   Transparent PNGs only: no baked-in felt and no sprite-sheet positioning. */
.foundation{
  position:relative!important;
  border:0!important;
  outline:0!important;
  border-radius:0!important;
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:100% 100%!important;
  box-shadow:none!important;
  color:transparent!important;
  overflow:visible!important;
}
.foundations .foundation:nth-child(1){
  background-image:url("assets/foundation-heart-lux.png")!important;
}
.foundations .foundation:nth-child(2){
  background-image:url("assets/foundation-diamond-lux.png")!important;
}
.foundations .foundation:nth-child(3){
  background-image:url("assets/foundation-club-lux.png")!important;
}
.foundations .foundation:nth-child(4){
  background-image:url("assets/foundation-spade-lux.png")!important;
}

/* Kill all legacy generated/duplicate foundation marks. */
.foundation::before,
.foundation::after,
.foundation.empty::before,
.foundation.empty::after{
  content:none!important;
  display:none!important;
}
.foundation.empty{
  font-size:0!important;
  color:transparent!important;
}

/* A played card sits cleanly over the decorative empty foundation. */
.foundation > .card{
  position:absolute!important;
  inset:0!important;
  z-index:5!important;
}

/* v0.6.4 - FIX: target the actual foundation DOM */
.top .foundation[data-i="0"]{
  background-image:url("assets/foundation-heart-lux.png")!important;
}
.top .foundation[data-i="1"]{
  background-image:url("assets/foundation-diamond-lux.png")!important;
}
.top .foundation[data-i="2"]{
  background-image:url("assets/foundation-club-lux.png")!important;
}
.top .foundation[data-i="3"]{
  background-image:url("assets/foundation-spade-lux.png")!important;
}
.top .foundation{
  position:relative!important;
  border:0!important;
  outline:0!important;
  background-color:transparent!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-size:100% 100%!important;
  box-shadow:none!important;
  color:transparent!important;
  font-size:0!important;
  overflow:visible!important;
}
.top .foundation::before,
.top .foundation::after{
  content:none!important;
  display:none!important;
}
.top .foundation > .card{
  position:absolute!important;
  inset:0!important;
  z-index:5!important;
}

/* v0.6.5 - physical felt table pass */

/* Use the approved photographic felt as the actual continuous playing surface.
   No CSS green fill is visible except as a loading fallback. */
.game-table{
  background-color:#064a31!important;
  background-image:url("assets/pawshuffle-felt-approved.jpg")!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  box-shadow:
    inset 0 10px 24px rgba(0,0,0,.10),
    inset 0 -24px 42px rgba(0,0,0,.12)!important;
}

/* Let the same felt show continuously through every foundation. */
.top .foundation{
  background-color:transparent!important;
  box-shadow:none!important;
  filter:saturate(.72) brightness(.96)!important;
}

/* Soften the ornate overlays toward aged champagne/brass rather than bright fantasy gold.
   This affects only the empty foundation artwork, never played cards. */
.top .foundation[data-i="0"],
.top .foundation[data-i="1"],
.top .foundation[data-i="2"],
.top .foundation[data-i="3"]{
  background-blend-mode:normal!important;
  opacity:.86!important;
}

/* A played card must remain fully opaque/normal even though the empty well is softened. */
.top .foundation:has(> .card){
  opacity:1!important;
  filter:none!important;
  background-image:none!important;
}
.top .foundation > .card{
  opacity:1!important;
  filter:none!important;
}

/* v0.6.6 - approved Vegas table artwork */
.game-table{
  position:relative!important;
  isolation:isolate!important;
  background-color:#064b32!important;
  background-image:url("assets/pawshuffle-vegas-table.png")!important;
  background-repeat:no-repeat!important;
  background-size:100% auto!important;
  background-position:center -105px!important;
  box-shadow:
    inset 0 10px 26px rgba(0,0,0,.08),
    inset 0 -26px 44px rgba(0,0,0,.10)!important;
}

/* Keep all game pieces above the photographic table artwork.
   The Paw Shuffle mark is part of the table image itself, so as tableau stacks
   grow downward they naturally cover it. */
.game-table > *{
  position:relative;
  z-index:1;
}

/* Preserve transparent foundation wells so the new table felt remains visible. */
.top .foundation{
  background-color:transparent!important;
}

/* v0.6.7 - actual Vegas table integration
   IMPORTANT: #board is the real playing surface in this project. */
#board{
  position:relative!important;
  isolation:isolate!important;
  background-color:#064b32!important;
  background-image:url("assets/pawshuffle-vegas-table.png")!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  /* Keep the subtle PawShuffle mark in the lower opening tableau area. */
  background-position:center 38%!important;
  box-shadow:
    inset 0 10px 24px rgba(0,0,0,.08),
    inset 0 -28px 48px rgba(0,0,0,.12)!important;
}

/* Cards/foundations remain above the table artwork; the logo is part of the
   background, so growing tableau stacks naturally cover it. */
#board > *{
  position:relative;
  z-index:1;
}

/* Foundation art stays transparent over the photographed felt. */
#board .foundation{
  background-color:transparent!important;
}

/* v0.6.8 - approved clean Vegas-table treatment */

/* Continuous felt right to the top: no baked-in gold rail/embellishment. */
#board{
  position:relative!important;
  isolation:isolate!important;
  background-color:#064b32!important;
  background-image:url("assets/pawshuffle-felt-approved.jpg")!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  background-position:center center!important;
  box-shadow:
    inset 0 8px 20px rgba(0,0,0,.08),
    inset 0 -24px 42px rgba(0,0,0,.10)!important;
}

/* Subtle table branding, deliberately low in the tableau area. */
#board::after{
  content:"🐾  PAW SHUFFLE"!important;
  position:absolute!important;
  left:50%!important;
  top:67%!important;
  transform:translate(-50%,-50%)!important;
  z-index:0!important;
  pointer-events:none!important;
  white-space:nowrap!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(20px,2.5vw,38px)!important;
  letter-spacing:.12em!important;
  color:rgba(190,165,105,.28)!important;
  text-shadow:0 1px 0 rgba(255,245,215,.08)!important;
}

/* Foundations: same transparent assets, but intentionally subdued so they read
   like markings/inlay on felt rather than separate fantasy UI panels. */
#board .top .foundation{
  background-color:transparent!important;
  opacity:.56!important;
  filter:saturate(.58) brightness(.88) sepia(.10)!important;
  box-shadow:none!important;
}
#board .top .foundation:has(> .card){
  opacity:1!important;
  filter:none!important;
  background-image:none!important;
}
#board .top .foundation > .card{
  opacity:1!important;
  filter:none!important;
}

/* Everything interactive remains above the table branding. */
#board > *{
  position:relative;
  z-index:1;
}

/* v0.6.9 - production asset integration.
   Exact approved assets only: no generated CSS logo, no filters, no mockup crops. */
#board{
  position:relative!important;
  isolation:isolate!important;
  background:#064b32 url("assets/pawshuffle-felt-production.png") center/cover no-repeat!important;
}

/* Remove the old CSS-generated branding. */
#board::after{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:68%!important;
  width:min(42%,520px)!important;
  aspect-ratio:2048/768!important;
  transform:translate(-50%,-50%)!important;
  background:url("assets/pawshuffle-logo-production.png") center/contain no-repeat!important;
  opacity:.30!important;
  pointer-events:none!important;
  z-index:0!important;
}

/* Exact transparent production foundation assets. */
#board .top .foundation{
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  opacity:.48!important;
  filter:none!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}
#board .top .foundation[data-i="0"]{background-image:url("assets/foundation-heart-production.png")!important}
#board .top .foundation[data-i="1"]{background-image:url("assets/foundation-diamond-production.png")!important}
#board .top .foundation[data-i="2"]{background-image:url("assets/foundation-club-production.png")!important}
#board .top .foundation[data-i="3"]{background-image:url("assets/foundation-spade-production.png")!important}

/* Once occupied, the live card completely replaces the empty foundation artwork. */
#board .top .foundation:has(> .card){
  background-image:none!important;
  opacity:1!important;
}
#board .top .foundation > .card{
  opacity:1!important;
  filter:none!important;
  z-index:5!important;
}

/* Live game content remains above the table logo. */
#board > *{position:relative;z-index:1}

/* v0.7.2 - optical normalization of independently generated foundation art.
   These offsets affect only the empty-slot artwork, never live cards. */
#board .top .foundation[data-i="0"]{
  background-size:100% 100%!important;
  background-position:center -5px!important;
}
#board .top .foundation[data-i="1"]{
  background-size:100% 100%!important;
  background-position:center center!important;
}
#board .top .foundation[data-i="2"]{
  background-size:100% 100%!important;
  background-position:center center!important;
}
#board .top .foundation[data-i="3"]{
  background-size:100% 100%!important;
  background-position:center center!important;
}

/* v0.7.3 - colour-independent table felt + approved minimalist foundations */
:root{--felt-base:#064b38}

/* The table colour is now a clean CSS base. The photographic grain is a
   separate translucent grayscale layer, so the same texture works on every theme. */
#board{
  position:relative!important;
  isolation:isolate!important;
  background:var(--felt-base)!important;
}
#board::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background-image:url("assets/pawshuffle-felt-texture-overlay.png")!important;
  background-position:center center!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
  mix-blend-mode:soft-light!important;
  opacity:.58!important;
  pointer-events:none!important;
  z-index:0!important;
}
/* Keep the PawShuffle watermark independent from both colour and grain. */
#board::after{
  z-index:0!important;
  opacity:.22!important;
}
#board > *{position:relative!important;z-index:1!important}

/* All four approved foundation files share the exact same 1024×1536 canvas,
   so no per-suit optical offsets/scaling are used. */
#board .top .foundation{
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-size:100% 100%!important;
  opacity:.72!important;
  filter:none!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}
#board .top .foundation[data-i="0"]{background-image:url("assets/foundation-heart-minimal.png")!important;background-position:center!important}
#board .top .foundation[data-i="1"]{background-image:url("assets/foundation-diamond-minimal.png")!important;background-position:center!important}
#board .top .foundation[data-i="2"]{background-image:url("assets/foundation-club-minimal.png")!important;background-position:center!important}
#board .top .foundation[data-i="3"]{background-image:url("assets/foundation-spade-minimal.png")!important;background-position:center!important}
#board .top .foundation:has(> .card){background-image:none!important;opacity:1!important}
#board .top .foundation > .card{opacity:1!important;filter:none!important;z-index:5!important}

/* v0.7.4 - make the colour-independent felt grain actually visible.
   The asset remains grayscale/transparent; Overlay blend preserves the CSS base colour
   while revealing the fibres and mottling much more clearly than Soft Light. */
#board::before{
  mix-blend-mode:overlay!important;
  opacity:.88!important;
  filter:contrast(1.38) brightness(.98)!important;
  background-size:cover!important;
  background-position:center!important;
}

/* v0.7.5 - foundation wells at half the previous opacity */
#board .top .foundation{opacity:.36!important;}
#board .top .foundation:has(> .card){opacity:1!important;}
#board .top .foundation > .card{opacity:1!important;}


/* v0.7.6 - charcoal felt toolbar, flat table logo, friend cycling */
.game .game-toolbar{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:#292c2d!important;
  color:#fff!important;
}
.game .game-toolbar::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("assets/pawshuffle-felt-texture-overlay.png") center/cover no-repeat;
  mix-blend-mode:overlay;
  opacity:.72;
  filter:contrast(1.25) brightness(.92);
  pointer-events:none;
  z-index:0;
}
.game .game-toolbar > *{position:relative;z-index:1}
#board::after{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:69%!important;
  width:min(43%,520px)!important;
  aspect-ratio:1660/948!important;
  transform:translate(-50%,-50%)!important;
  background:url("assets/pawshuffle-logo-flat.png") center/contain no-repeat!important;
  opacity:.22!important;
  pointer-events:none!important;
  z-index:0!important;
}
.meet-friend{
  margin-top:13px;
  border:1px solid #18302b22;
  background:#f3ede1;
  color:#18302b;
  padding:8px 13px;
}
.meet-friend:hover{background:#ebe1d0}


/* v0.8.0 - The Park + persistent multi-photo pet deck system */
.petbar-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.park-link{background:transparent;border:1px solid #d8cdbb;color:#18302b}.deal-pet-preview{font-weight:650;color:#5b5145}
.pet-dialog select,.pet-dialog textarea{display:block;width:100%;padding:12px;margin:10px 0;border:1px solid #ddd;border-radius:10px;background:white}.pet-dialog textarea{min-height:76px;resize:vertical}.existing-pet-note{font-size:12px!important;background:#f6f0e5;padding:10px;border-radius:10px}.existing-pet-note button{padding:0;background:none;color:#8a5e16}.park-overlay[hidden]{display:none!important}.park-overlay{position:fixed;inset:0;z-index:12000;background:rgba(17,28,25,.78);backdrop-filter:blur(7px);padding:clamp(8px,3vw,30px);overflow:auto}.park-panel{max-width:1050px;margin:auto;background:#fffaf0;border-radius:26px;min-height:min(760px,calc(100vh - 40px));overflow:hidden;box-shadow:0 30px 90px #0007}.park-head{height:auto;background:#21302d;color:#fffaf0;border:0;padding:24px 28px;display:flex;align-items:flex-start}.park-head small{letter-spacing:.15em;color:#d7bb7d;font-weight:900}.park-head h2{font-family:Georgia,serif;font-size:38px;margin:3px 0}.park-head p{margin:0;opacity:.7}.park-close{margin-left:auto;background:#fffaf018;color:#fffaf0;border:1px solid #fff3}.park-tabs{display:flex;gap:8px;padding:16px 24px;border-bottom:1px solid #e5ddcf}.park-tabs button{background:#eee5d6;color:#18302b}.park-tabs .active,.seg.active{background:#18302b!important;color:white!important}.park-tabs #parkAddPet{margin-left:auto;background:#8a5e16;color:white}.park-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px 24px;background:#f4eee3}.park-controls>div,.park-controls details{background:white;border:1px solid #e5ddcf;border-radius:14px;padding:12px}.park-controls b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.park-controls .seg{border-radius:10px;background:#eee5d6;margin-right:5px}.park-controls select{width:100%;padding:8px;border:1px solid #ddd;border-radius:9px}.source-row label{margin-right:14px;font-size:13px}.park-controls details{grid-column:1/-1}.park-controls summary{cursor:pointer;font-weight:800}.species-prefs{display:flex;gap:12px;flex-wrap:wrap;padding-top:12px}.species-prefs label{font-size:13px}.mine-override{margin-left:auto;font-weight:750}.suit-assignments{padding:16px 24px;border-bottom:1px solid #e5ddcf}.suit-assignments>b{font-size:13px}.suit-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.suit-row label{background:#f4eee3;border-radius:12px;padding:9px}.suit-row label>span{font-size:20px;font-weight:900}.suit-row select{display:block;width:100%;margin:5px 0;border:1px solid #ddd;border-radius:7px;padding:6px}.suit-row small{opacity:.6}.park-grid{padding:22px 24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pet-tile{display:grid;grid-template-columns:145px 1fr;background:white;border:1px solid #e5ddcf;border-radius:18px;overflow:hidden}.pet-tile-photo{min-height:170px;background:#e8dfd1 center/cover no-repeat;display:grid;place-items:center;font-size:50px}.pet-tile-copy{padding:15px}.pet-name-line{display:flex;align-items:center}.pet-name-line h3{font-family:Georgia,serif;font-size:24px;margin:0}.fav{margin-left:auto;background:none;font-size:25px;color:#9b6920;padding:3px}.pet-tile-copy>small{text-transform:uppercase;letter-spacing:.1em;opacity:.55;font-size:9px}.pet-tile-copy p{font-family:Georgia,serif;font-style:italic;opacity:.7;min-height:38px}.pet-actions{display:flex;gap:6px;flex-wrap:wrap}.pet-actions button{background:#18302b;color:white;font-size:12px}.surprise-check{font-size:11px;display:flex;align-items:center;gap:4px}.empty-pets{grid-column:1/-1;text-align:center;padding:55px}.empty-pets>div{font-size:50px}.empty-pets button{background:#18302b;color:white}.petbar #portrait{flex:0 0 80px}
@media(max-width:720px){.park-controls{grid-template-columns:1fr}.park-controls details{grid-column:auto}.park-grid{grid-template-columns:1fr}.pet-tile{grid-template-columns:105px 1fr}.pet-tile-photo{min-height:145px}.suit-row{grid-template-columns:1fr 1fr}.park-head{padding:18px}.park-head h2{font-size:30px}.park-close{font-size:11px;padding:8px}.park-tabs{padding:12px;flex-wrap:wrap}.park-tabs #parkAddPet{margin-left:0}.mine-override{margin-left:0}.petbar{align-items:flex-start}}

.photo-picker{flex-basis:100%;display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.photo-thumb{width:38px;height:38px;padding:0;border-radius:8px;background:center/cover no-repeat;border:2px solid transparent}.photo-thumb.profile{border-color:#9b6920;box-shadow:0 0 0 2px #fff inset}

/* v0.8.1 pet identity synchronization */
.deal-pet-line{display:flex;align-items:center;gap:13px;margin:2px 0 22px}
.newgame-card .deal-pet-line p{margin:0!important}
.deal-pet-identity{flex:0 0 auto;display:flex;align-items:center}
.deal-pet-thumbs{display:flex;align-items:center}
.deal-pet-thumb{width:58px;height:58px;border-radius:50%;background:#e8dfd1 center/cover no-repeat;display:grid;place-items:center;font-size:28px;border:3px solid #fffaf0;box-shadow:0 2px 9px #0002}
.deal-pet-thumbs.four .deal-pet-thumb{width:46px;height:46px;margin-left:-10px;font-size:22px}
.deal-pet-thumbs.four .deal-pet-thumb:first-child{margin-left:0}
.park-footer{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:18px 24px 24px;border-top:1px solid #e5ddcf;background:#fffaf0}
.park-footer button{background:#18302b;color:white;padding:12px 24px}
.park-footer small{opacity:.6}
@media(max-width:520px){.deal-pet-line{align-items:flex-start}.park-footer{flex-direction:column-reverse;align-items:stretch;text-align:center}.park-footer button{width:100%}}

/* v0.8.2 - Four Friends summary in Today's Deck */
.petbar #portrait.four-friend-portraits{
  flex:0 0 auto;width:auto;height:auto;min-width:0;border-radius:0;background:none!important;
  display:flex;align-items:center;gap:10px;overflow:visible;box-shadow:none;border:0;
}
.today-pet-thumb{position:relative;display:inline-block;width:58px;height:62px;flex:0 0 58px}
.today-pet-photo{width:54px;height:54px;border-radius:50%;background:#e8dfd1 center/cover no-repeat;display:grid;place-items:center;font-size:25px;border:3px solid #fffaf0;box-shadow:0 2px 9px #0003}
.today-suit{position:absolute;right:0;bottom:0;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#fffaf0;color:#171918;border:1px solid #d8cdbb;font-family:Georgia,serif;font-size:15px;font-weight:900;line-height:1;box-shadow:0 1px 4px #0003}
.today-suit.red-suit{color:#a02d2d}
@media(max-width:620px){.petbar #portrait.four-friend-portraits{gap:5px;flex-wrap:wrap;justify-content:flex-end}.today-pet-thumb{width:48px;height:53px;flex-basis:48px}.today-pet-photo{width:46px;height:46px}.today-suit{width:20px;height:20px;font-size:13px}}

/* v0.8.3 - clearer Park selection state and current-deck portrait */
.park-title-wrap{display:flex;align-items:center;gap:16px;min-width:0}.park-current-pets{flex:0 0 auto}.park-current-one{display:flex;align-items:center;gap:10px}.park-current-one span{display:flex;flex-direction:column}.park-current-one span small{font-size:8px!important;letter-spacing:.13em}.park-current-one span b{font-family:Georgia,serif;font-size:17px}.park-current-thumb{width:58px;height:58px;border-radius:50%;background:#e8dfd1 center/cover no-repeat;border:2px solid #d7bb7d;display:grid;place-items:center;font-style:normal;font-size:24px;box-shadow:0 2px 8px #0004}.park-current-four{display:flex;gap:4px}.park-current-mini{position:relative}.park-current-mini .park-current-thumb{width:46px;height:46px}.park-current-mini i{position:absolute;right:-2px;bottom:-3px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#f6efe2;color:#171b1a;border:1px solid #d7bb7d;font:700 13px Georgia,serif}.park-current-mini i.red{color:#a32929}.pet-tile{position:relative;transition:border-color .15s,box-shadow .15s}.pet-tile.selected-pet{border:2px solid #8a6a2f;box-shadow:0 0 0 2px #d7bb7d55}.pet-tile-photo{position:relative}.pet-selected-badge{position:absolute;left:9px;bottom:9px;background:#18302beF;color:#fffaf0;border:1px solid #d7bb7d;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800;letter-spacing:.02em}.pet-actions .selected-action{background:#8a6a2f}.pet-actions .selected-action:hover{background:#8a6a2f}
@media(max-width:620px){.park-title-wrap{align-items:flex-start}.park-current-one span{display:none}.park-current-four{max-width:116px;flex-wrap:wrap}.park-current-mini .park-current-thumb{width:38px;height:38px}.park-current-thumb{width:48px;height:48px}.park-head h2{font-size:27px}}

/* v0.8.4 - Park header cleanup */
.park-head{align-items:center;gap:18px}
.park-title-wrap{display:flex;align-items:center;gap:28px;flex:1;min-width:0}
.park-title-copy{min-width:0}
.park-current-pets{margin-left:auto;flex:0 0 auto}
.park-current-one{flex-direction:row-reverse;text-align:right}
.park-current-one span{align-items:flex-end}
.park-current-four{justify-content:flex-end}
.park-close{margin-left:0;width:44px;height:44px;min-width:44px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:26px;line-height:1;font-family:Arial,sans-serif;font-weight:400}
.pet-selected-badge{display:none!important}
@media(max-width:620px){.park-head{align-items:flex-start}.park-title-wrap{gap:14px;align-items:flex-start}.park-current-pets{margin-left:auto}.park-current-one{flex-direction:column;gap:4px}.park-current-one span{display:none}.park-close{width:40px;height:40px;min-width:40px;font-size:23px}.park-current-four{max-width:96px}}

/* v0.8.5 - Park header hierarchy */
.park-head{position:relative;display:grid;grid-template-columns:max-content minmax(220px,1fr) auto;align-items:center;column-gap:42px;padding:26px 78px 26px 30px;min-height:142px}
.park-brand{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:235px}
.park-brand small{display:block;margin:0 0 8px 2px;line-height:1}
.park-brand h2{display:block;margin:0;white-space:nowrap;line-height:1.02}
.park-intro{margin:0!important;max-width:430px;align-self:center;font-size:15px;line-height:1.35}
.park-current-pets{margin:0!important;align-self:center;justify-self:end}
.park-current-one{flex-direction:row!important;text-align:left!important}
.park-current-one span{align-items:flex-start!important}
.park-current-four{justify-content:flex-end}
.park-close{position:absolute;top:18px;right:18px;margin:0!important}
@media(max-width:760px){.park-head{grid-template-columns:1fr auto;grid-template-areas:"brand current" "intro intro";gap:12px 18px;padding:22px 68px 20px 20px;min-height:0}.park-brand{grid-area:brand;min-width:0}.park-intro{grid-area:intro;max-width:none}.park-current-pets{grid-area:current}.park-brand h2{font-size:30px}.park-current-one span{display:none!important}}
@media(max-width:460px){.park-head{grid-template-columns:1fr;grid-template-areas:"brand" "current" "intro";padding-right:62px}.park-current-pets{justify-self:start}.park-current-four{justify-content:flex-start}}

/* v0.8.6 - Park header + Four Friends repair */
.park-head{position:relative;display:grid;grid-template-columns:minmax(360px,1fr) auto;align-items:center;gap:28px;padding:26px 78px 26px 30px;min-height:142px}
.park-brand{display:block;min-width:0}
.park-brand>small{display:block;margin:0 0 10px 54px;line-height:1}
.park-title-line{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start}
.park-tree{font-size:34px;line-height:1.1;margin-top:3px;text-align:center}
.park-title-line h2{margin:0;white-space:nowrap;line-height:1;font-size:38px}
.park-title-line .park-intro{margin:8px 0 0!important;max-width:540px;font-size:15px;line-height:1.35;opacity:.72}
.park-current-pets{justify-self:end;align-self:center;margin:0!important;max-width:360px}
.park-current-four{justify-content:flex-end;gap:8px;flex-wrap:nowrap}
.park-current-mini .park-current-thumb{width:54px;height:54px}
.park-close{position:absolute;top:16px;right:16px}
@media(max-width:760px){.park-head{grid-template-columns:1fr;gap:16px;padding:22px 62px 20px 20px}.park-brand>small{margin-left:48px}.park-title-line{grid-template-columns:36px minmax(0,1fr);gap:12px}.park-tree{font-size:30px}.park-title-line h2{font-size:30px}.park-current-pets{justify-self:start;margin-left:48px!important}.park-current-four{justify-content:flex-start}.park-current-mini .park-current-thumb{width:44px;height:44px}}
@media(max-width:460px){.park-title-line .park-intro{font-size:13px}.park-current-pets{margin-left:0!important}.park-brand>small{margin-left:0}.park-title-line{grid-template-columns:32px 1fr}.park-current-four{gap:5px}.park-current-mini .park-current-thumb{width:38px;height:38px}}


/* v0.8.7 - stable Park header */
.park-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:center;column-gap:28px;padding:26px 78px 26px 30px;min-height:154px}
.park-brand{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:18px;min-width:0}
.park-tree{grid-column:1;grid-row:1;display:grid;place-items:center;font-size:68px;line-height:1;margin:0;text-align:center}
.park-brand-copy{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.park-brand-copy>small{display:block;margin:0 0 9px 2px!important;line-height:1}
.park-brand-copy h2{margin:0!important;white-space:nowrap;line-height:1;font-size:40px}
.park-brand-copy .park-intro{margin:9px 0 0!important;max-width:620px;font-size:15px;line-height:1.35;opacity:.72}
.park-current-pets{grid-column:2;justify-self:end;align-self:center;margin:0!important;width:340px;min-width:340px;display:flex;justify-content:flex-end}
.park-current-four{justify-content:flex-end;gap:8px;flex-wrap:nowrap}
.park-current-mini .park-current-thumb{width:54px;height:54px}
.park-close{position:absolute;top:18px;right:18px;margin:0!important;width:44px;height:44px;min-width:44px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:25px;line-height:1}
@media(max-width:820px){.park-head{grid-template-columns:minmax(0,1fr);gap:18px;padding:22px 62px 20px 20px}.park-brand{grid-template-columns:70px minmax(0,1fr);gap:14px}.park-tree{font-size:54px}.park-brand-copy h2{font-size:32px}.park-current-pets{grid-column:1;justify-self:start;width:auto;min-width:0;margin-left:84px!important;justify-content:flex-start}.park-current-four{justify-content:flex-start}.park-current-mini .park-current-thumb{width:44px;height:44px}}
@media(max-width:460px){.park-brand{grid-template-columns:54px minmax(0,1fr);gap:10px}.park-tree{font-size:42px}.park-brand-copy h2{font-size:29px}.park-brand-copy .park-intro{font-size:13px}.park-current-pets{margin-left:64px!important}.park-current-four{gap:5px}.park-current-mini .park-current-thumb{width:38px;height:38px}}


/* v0.8.8 - direct suit assignment from pet cards */
.pet-primary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}
.pet-suit-actions{display:inline-flex;align-items:center;gap:4px;margin-left:auto;flex:0 0 auto}
.pet-actions .pet-suit-btn{width:31px;height:31px;min-width:31px;padding:0;border-radius:50%;display:grid;place-items:center;background:#f3ede3;color:#8d8b86;border:1px solid #d9d0c1;font:700 17px Georgia,serif;line-height:1;box-shadow:none}
.pet-actions .pet-suit-btn.active{background:#18302b;color:#fffaf0;border-color:#18302b;box-shadow:0 0 0 2px #d7bb7d55}
.pet-actions .pet-suit-btn.active.red{background:#a33131;color:white;border-color:#a33131}
@media(max-width:520px){.pet-primary-actions{align-items:flex-start}.pet-suit-actions{width:auto;margin-left:auto}.pet-actions .pet-suit-btn{width:34px;height:34px;min-width:34px}}

/* v0.8.9 - suit controls align consistently and mirror Single Pet ownership */


/* v0.8.10 - Surprise Me portrait and suit assignment icon parity */
.park-current-mini.surprise-slot .park-current-thumb{background-color:#fffaf0;background-size:cover;background-position:center}
.suit-row .suit-assignment-card{position:relative;padding:10px 10px 10px 48px;min-height:76px}
.suit-row .assignment-suit{position:absolute;left:10px;top:10px;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#18302b;color:#fffaf0;border:1px solid #18302b;box-shadow:0 0 0 2px #d7bb7d55;font:700 17px Georgia,serif;line-height:1}
.suit-row .assignment-suit.red{background:#a33131;color:#fff;border-color:#a33131}
.suit-row .suit-assignment-card select{margin-top:0}


/* v0.8.11 - Today's Deck action alignment + responsive portraits */
.petbar-actions{align-items:stretch}
.petbar-actions .meet-friend,.petbar-actions .park-link{
  margin-top:0;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 14px;
  line-height:1.15;
}
/* Let the current-deck artwork grow when the summary has room, but cap it. */
.petbar #portrait:not(.four-friend-portraits){
  width:clamp(80px,9vw,104px);
  height:clamp(80px,9vw,104px);
  flex:0 0 clamp(80px,9vw,104px);
  font-size:clamp(43px,5vw,56px);
}
.petbar #portrait.four-friend-portraits{gap:clamp(6px,1vw,12px);flex-wrap:nowrap}
.today-pet-thumb{
  width:clamp(52px,6.2vw,76px);
  height:clamp(57px,6.7vw,82px);
  flex:0 0 clamp(52px,6.2vw,76px);
}
.today-pet-photo{
  width:clamp(50px,5.9vw,72px);
  height:clamp(50px,5.9vw,72px);
  font-size:clamp(23px,3vw,32px);
}
.today-suit{
  width:clamp(21px,2.3vw,27px);
  height:clamp(21px,2.3vw,27px);
  font-size:clamp(13px,1.5vw,17px);
}
@media(max-width:620px){
  .petbar #portrait.four-friend-portraits{flex-wrap:nowrap;gap:4px}
  .today-pet-thumb{width:clamp(42px,11vw,50px);height:clamp(47px,12vw,55px);flex-basis:clamp(42px,11vw,50px)}
  .today-pet-photo{width:clamp(40px,10.5vw,48px);height:clamp(40px,10.5vw,48px)}
  .petbar{gap:10px}
}
/* v0.8.12 My Pets management + rotation controls */
.rotation-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.rotation-btn{background:#eee5d6!important;color:#18302b!important;border:1px solid #ded3c1!important;border-radius:10px!important;min-height:38px;padding:7px 9px!important;font-size:12px!important;font-weight:800}.rotation-btn.active{background:#18302b!important;color:#fff!important;border-color:#18302b!important}.pet-tile-photo{position:relative}.profile-badge{position:absolute;left:9px;top:9px;background:rgba(255,250,240,.94);color:#6d4b17;border:1px solid #d5bd8a;border-radius:999px;padding:4px 8px;font:800 9px/1.1 system-ui;letter-spacing:.04em;box-shadow:0 2px 7px #0002}.pet-name-tools{margin-left:auto;display:flex;gap:3px}.pet-name-tools button{width:32px;height:32px;padding:0!important;border-radius:50%!important;background:transparent!important;color:#53605c!important;border:1px solid #ded8cc!important;font-size:15px!important}.pet-name-tools button:hover{background:#f3ede2!important}.pet-name-tools .delete-pet{color:#8d3b32!important}.photo-thumb.profile{border-color:#b98a3d!important;box-shadow:0 0 0 2px #fff inset!important;position:relative}.edit-pet-dialog{max-width:620px}.field-label{display:block;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.07em;margin-top:10px;color:#52605c}.field-label input,.field-label select,.field-label textarea{font-size:14px;text-transform:none;letter-spacing:normal;font-weight:500}.edit-photo-head{display:flex;align-items:center;justify-content:space-between;margin-top:15px}.edit-photo-head button{background:#eee5d6;color:#18302b}.edit-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px;margin:10px 0}.edit-photo-item{aspect-ratio:1;border-radius:12px;background:center/cover no-repeat;position:relative;border:2px solid transparent;overflow:hidden}.edit-photo-item.profile{border-color:#b98a3d}.edit-photo-item .edit-profile-tag{position:absolute;left:5px;bottom:5px;background:#fffaf0eF;color:#6d4b17;border-radius:999px;padding:3px 6px;font-size:8px;font-weight:900}.edit-photo-item button{position:absolute;right:4px;top:4px;width:27px;height:27px;padding:0;border-radius:50%;background:#fffaf0eF;color:#713a34;font-size:14px}.edit-photo-item:not(.profile){cursor:pointer}.surprise-edit{display:flex;align-items:center;gap:7px;margin:12px 0;font-size:13px}.primary-save{width:100%;background:#18302b!important;color:#fff!important}.confirm-dialog{border:0;border-radius:18px;padding:24px;max-width:390px;box-shadow:0 20px 70px #0005}.confirm-dialog::backdrop,.edit-pet-dialog::backdrop{background:#10201dcc;backdrop-filter:blur(4px)}.confirm-dialog h2{font-family:Georgia,serif;margin-top:0}.confirm-dialog>div{display:flex;justify-content:flex-end;gap:8px}.confirm-dialog .danger{background:#8d3b32;color:white}.dialog-x{float:right;background:transparent!important;color:#35443f!important;font-size:22px!important;padding:4px 8px!important}

/* v0.8.13 Park control + My Pets refinements */
.source-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.source-btn{background:#eee5d6!important;color:#18302b!important;border:1px solid #ded3c1!important;border-radius:10px!important;min-height:38px;padding:7px 12px!important;font-size:12px!important;font-weight:800}.source-btn.active{background:#18302b!important;color:#fff!important;border-color:#18302b!important}.pet-tile-copy>small{display:none}.profile-badge,.surprise-check{display:none!important}.edit-photo-item{cursor:pointer;border:3px solid transparent}.edit-photo-item.profile{border-color:#b98a3d!important;box-shadow:0 0 0 2px #fff inset}.profile-select-mark{position:absolute;left:7px;bottom:7px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#18302b;color:#fff;border:2px solid #fff;font:900 14px/1 system-ui;box-shadow:0 2px 7px #0004}.edit-profile-tag{display:none!important}.surprise-edit{display:grid!important;grid-template-columns:20px minmax(0,1fr);align-items:center!important;justify-content:start!important;gap:9px!important;width:100%;margin:16px 0!important}.surprise-edit input{width:18px!important;height:18px!important;margin:0!important}.park-footer{justify-content:flex-end}.park-footer small{display:none}.rotation-btn{white-space:nowrap}


/* v0.9.1 - mobile polish */
.rotate-phone-prompt{display:none!important}
@media (max-width:700px) and (orientation:portrait){
  .game>#board,.game>#msg,.game>.game-toolbar{display:none!important}
  .game{min-height:430px;display:grid;place-items:center;padding:28px 20px;background:#064b38}
  .rotate-phone-prompt{display:flex;min-height:360px;width:100%;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fffaf0;border:1px solid #ffffff24;border-radius:22px;padding:34px 22px;background:#183a31aa}
  .rotate-phone-prompt .rotate-icon{font-size:52px;line-height:1;color:#d7bb7d;margin-bottom:14px}
  .rotate-phone-prompt h2{font-family:Georgia,serif;font-size:31px;margin:0 0 12px}
  .rotate-phone-prompt p{margin:0 0 20px;max-width:340px;line-height:1.5;color:#fffaf0c9;font-size:15px}
  .rotate-phone-prompt b{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#d7bb7d}
}
@media (orientation:landscape){
  .rotate-phone-prompt{display:none!important;visibility:hidden!important;position:absolute!important;pointer-events:none!important}
}

/* v0.17.2: reliable phone-portrait Turn the Table state. JS mirrors viewport orientation
   into a body class so the prompt cannot disappear behind browser orientation quirks. */
body.phone-portrait .game>#board,body.phone-portrait .game>#msg,body.phone-portrait .game>.game-toolbar{display:none!important}
body.phone-portrait .game{min-height:430px;display:grid;place-items:center;padding:28px 20px;background:#064b38}
body.phone-portrait .rotate-phone-prompt{display:flex!important;visibility:visible!important;position:static!important;pointer-events:auto!important;min-height:360px;width:100%;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fffaf0;border:1px solid #ffffff24;border-radius:22px;padding:34px 22px;background:#183a31aa}
body.phone-portrait .rotate-phone-prompt .rotate-icon{font-size:52px;line-height:1;color:#d7bb7d;margin-bottom:14px}
body.phone-portrait .rotate-phone-prompt h2{font-family:Georgia,serif;font-size:31px;margin:0 0 12px}
body.phone-portrait .rotate-phone-prompt p{margin:0 0 20px;max-width:340px;line-height:1.5;color:#fffaf0c9;font-size:15px}
body.phone-portrait .rotate-phone-prompt b{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#d7bb7d}
body.phone-portrait .rotate-phone-prompt~#idleStart,body.phone-portrait .game>.idle-start{display:none!important}

/* Today's Deck: mobile composition */
@media(max-width:620px){
  .petbar{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;padding:22px!important}
  .petbar>div:first-child{display:contents}
  .petbar>div:first-child>small{grid-row:1;grid-column:1;align-self:center}
  .petbar #portrait{grid-row:2;grid-column:1;justify-self:start!important;margin:0!important;max-width:100%!important}
  .petbar #pname{grid-row:3;grid-column:1;margin:0!important;font-size:30px!important;line-height:1.08!important}
  .petbar #pcap{grid-row:4;grid-column:1;margin:0!important;max-width:none!important}
  .petbar .petbar-actions{grid-row:5;grid-column:1;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}
  .petbar .petbar-actions button{min-height:48px!important;height:100%!important;padding:8px 7px!important;font-size:12px!important;line-height:1.15!important;white-space:normal!important}
  .petbar #portrait.four-friend-portraits{display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start!important;gap:7px!important;width:100%!important}
  .today-pet-thumb{width:clamp(48px,17vw,68px)!important;height:clamp(53px,18vw,73px)!important;flex:0 1 clamp(48px,17vw,68px)!important}
  .today-pet-photo{width:clamp(46px,16vw,64px)!important;height:clamp(46px,16vw,64px)!important}
}

/* The Park: compact phone header and nav */
@media(max-width:620px){
  .park-head{display:grid!important;grid-template-columns:minmax(0,1fr) 44px!important;grid-template-areas:"brand close" "current current"!important;gap:12px 10px!important;padding:20px 20px 18px!important;min-height:0!important}
  .park-brand{grid-area:brand!important;display:block!important}
  .park-tree{display:none!important}
  .park-brand-copy{display:block!important}
  .park-brand-copy>small{margin:0 0 5px!important;font-size:11px!important}
  .park-brand-copy h2{font-size:31px!important;line-height:1!important;margin:0!important}
  .park-brand-copy .park-intro{font-size:13px!important;line-height:1.35!important;margin:8px 0 0!important;max-width:390px!important}
  .park-close{grid-area:close!important;position:static!important;width:38px!important;height:38px!important;min-width:38px!important;justify-self:end!important;font-size:22px!important}
  .park-current-pets{grid-area:current!important;margin:0!important;justify-self:start!important;width:auto!important;min-width:0!important}
  .park-current-four{justify-content:flex-start!important;gap:6px!important;flex-wrap:nowrap!important}
  .park-current-mini .park-current-thumb{width:42px!important;height:42px!important}
  .park-tabs{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto!important;gap:7px!important;padding:10px 12px!important;flex-wrap:nowrap!important}
  .park-tabs button{margin:0!important;min-width:0!important;padding:10px 9px!important;font-size:12px!important;white-space:nowrap!important}
  .park-tabs #parkAddPet{margin:0!important;padding-inline:11px!important}
  .pet-primary-actions{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:8px!important}
  .pet-suit-actions{margin-left:0!important;justify-content:flex-start!important;width:auto!important}
}


/* v0.9.3 - responsive copy, brand states, and Park phone layouts */
.add-short{display:none}
.park-controls .seg{color:#18302b!important}
.park-controls .seg.active{background:#18302b!important;color:#fffaf0!important;border-color:#18302b!important}
.park-controls .seg:focus,.park-controls .seg:focus-visible,
.rotation-btn:focus,.rotation-btn:focus-visible,.source-btn:focus,.source-btn:focus-visible{
  color:inherit;outline:2px solid #b98a3d!important;outline-offset:2px;box-shadow:none!important
}
.rotate-phone-prompt p .rotate-line{display:block}
.rotate-phone-prompt p .rotate-gap{display:block;height:.35em}

@media(max-width:700px){
  #quickAddPet .add-full{display:none}
  #quickAddPet .add-short{display:inline}
}

/* Portrait phone: close control belongs to the header corner, independent of wrapping. */
@media(max-width:620px) and (orientation:portrait){
  .park-head{position:relative!important;padding:20px 66px 18px 20px!important;grid-template-columns:1fr!important;grid-template-areas:"brand" "current"!important}
  .park-close{position:absolute!important;top:14px!important;right:14px!important;margin:0!important;z-index:4!important}
}

/* Phone landscape gets a dedicated compact Park header rather than a desktop/mobile hybrid. */
@media(max-height:520px) and (orientation:landscape){
  .park-overlay{padding:8px!important}
  .park-panel{border-radius:20px!important}
  .park-head{position:relative!important;display:grid!important;grid-template-columns:minmax(260px,1fr) auto!important;grid-template-areas:"brand current"!important;align-items:center!important;column-gap:22px!important;padding:15px 62px 15px 22px!important;min-height:0!important}
  .park-tree{display:none!important}
  .park-brand{grid-area:brand!important;display:block!important;min-width:0!important}
  .park-brand-copy>small{margin:0!important;font-size:10px!important;letter-spacing:.18em!important}
  .park-brand-copy h2{font-size:30px!important;line-height:1!important;margin:2px 0 4px!important}
  .park-brand-copy .park-intro{font-size:12px!important;line-height:1.25!important;margin:0!important;white-space:normal!important;max-width:520px!important}
  .park-current-pets{grid-area:current!important;justify-self:end!important;align-self:center!important;margin:0!important;width:auto!important;min-width:0!important}
  .park-current-four{display:flex!important;flex-wrap:nowrap!important;gap:6px!important;justify-content:flex-end!important;max-width:none!important}
  .park-current-mini .park-current-thumb{width:42px!important;height:42px!important}
  .park-close{position:absolute!important;top:12px!important;right:12px!important;width:38px!important;height:38px!important;min-width:38px!important;margin:0!important;font-size:22px!important;z-index:4!important}
  .park-tabs{padding:10px 18px!important}
}


/* v0.9.4 - phone landscape pet-card action alignment */
@media(max-height:520px) and (orientation:landscape){
  .pet-tile .pet-primary-actions{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:8px!important;
    width:100%!important;
  }
  .pet-tile .pet-suit-actions{
    margin-left:0!important;
    margin-right:auto!important;
    justify-content:flex-start!important;
    align-self:flex-start!important;
    width:auto!important;
  }
}

/* v0.9.5 pet photo crop and management */
.crop-dialog{border:0;border-radius:20px;padding:22px;width:min(92vw,520px);background:#fffaf0;color:#18302b;box-shadow:0 24px 80px #0007}.crop-dialog::backdrop{background:#10201de8;backdrop-filter:blur(5px)}.crop-dialog h2{font-family:Georgia,serif;margin:3px 0 6px;font-size:30px}.crop-dialog>p{margin:0 0 14px;opacity:.7}.crop-stage{width:min(100%,360px);aspect-ratio:4/5;margin:0 auto;background:#ddd3c2;border-radius:15px;overflow:hidden;box-shadow:0 0 0 1px #d8cbb6,0 8px 28px #0002;touch-action:none}.crop-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.crop-stage canvas:active{cursor:grabbing}.crop-zoom{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin:16px auto 12px;max-width:360px;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.crop-zoom input{width:100%;accent-color:#18302b}.crop-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:360px;margin:0 auto}.crop-actions button{min-height:42px}.edit-photo-item .recrop-photo{position:absolute;left:5px;bottom:5px;right:auto;top:auto;width:auto;height:27px;padding:0 8px!important;border-radius:999px!important;background:#fffaf0eF!important;color:#18302b!important;font-size:10px!important;font-weight:850}.edit-photo-item.profile .recrop-photo{left:38px}.edit-photo-item .profile-select-mark{pointer-events:none}.edit-photo-grid{grid-template-columns:repeat(auto-fill,minmax(105px,1fr))}.edit-photo-item{aspect-ratio:4/5}.pet-dialog #file{padding:10px;border:1px dashed #bcae96;border-radius:10px;background:#f7f1e7}.upload-note{font-size:11px;opacity:.65;margin:-3px 0 8px}.photo-count{font-size:11px;font-weight:700;opacity:.6}
@media(max-width:620px){.crop-dialog{padding:18px}.crop-dialog h2{font-size:25px}.crop-stage{width:min(100%,300px)}.edit-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v0.9.6 photo focus, profile stars, and pet celebration */
.pending-photo-status{margin:9px 0 6px;padding:8px 10px;border-radius:9px;background:#edf3e9;color:#254a3e;font-size:12px;font-weight:800}.pending-photo-grid{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 10px}.pending-photo-thumb{width:58px;height:72px;border-radius:9px;background:center/cover no-repeat;border:2px solid #d7bb7d;box-shadow:0 2px 7px #0002}.profile-star{position:absolute!important;left:6px!important;top:6px!important;right:auto!important;width:31px!important;height:31px!important;padding:0!important;border-radius:50%!important;background:#fffaf0eF!important;color:#8d8170!important;border:1px solid #d9cdb9!important;font-size:21px!important;line-height:1!important;z-index:3}.profile-star.active{color:#e2ad2e!important;background:#fff8dd!important;border-color:#c99526!important;text-shadow:0 1px 0 #fff}.edit-photo-item.profile{border-color:#d7bb7d!important}.edit-photo-item .recrop-photo{left:6px!important}.crop-stage{position:relative}.crop-dialog>p{max-width:390px;margin-left:auto;margin-right:auto}.win-panel{width:min(560px,94vw);max-height:92vh;overflow:auto}.win-pets{display:flex;justify-content:center;align-items:center;gap:10px;margin:-2px auto 12px}.win-pet-photo{width:min(220px,48vw);aspect-ratio:4/5;border-radius:22px;background:#e8dfd1 center/cover no-repeat;display:grid;place-items:center;font-size:60px;border:4px solid #fff;box-shadow:0 10px 28px #0003}.win-pets.multiple{gap:7px}.win-pets.multiple .win-pet-photo{width:clamp(72px,18vw,125px);border-radius:17px}.win-message{margin:10px auto 2px;max-width:440px;padding:12px 16px;border-radius:14px;background:#f3ecdf;border:1px solid #e4d6c0}.win-message b{display:block;color:#6d4b17;font-family:Georgia,serif;margin-bottom:4px}.win-message p{margin:0;font-family:Georgia,serif;font-style:italic;line-height:1.35;color:#35443f}.win-panel h2{margin-bottom:5px}@media(max-width:620px){.win-panel{padding:22px 16px}.win-pet-photo{width:min(180px,48vw)}.win-pets.multiple .win-pet-photo{width:clamp(62px,19vw,92px)}.win-stats{margin:14px 0}.pending-photo-thumb{width:52px;height:65px}}

/* v0.9.7 - pet management hardening */
.pet-type-buttons{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 4px}
.pet-type-btn{background:#eee5d6!important;color:#18302b!important;border:1px solid #ded3c1!important;border-radius:10px!important;padding:9px 14px!important;font-size:12px!important;font-weight:850!important}
.pet-type-btn.active{background:#18302b!important;color:#fffaf0!important;border-color:#18302b!important}
.profile-star{left:7px!important;top:7px!important;width:auto!important;height:auto!important;min-width:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#fffaf0!important;font-size:26px!important;font-weight:400!important;line-height:1!important;text-shadow:0 1px 3px #000b!important;filter:none!important}
.profile-star.active{color:#e2ad2e!important;background:transparent!important;border:0!important;text-shadow:0 1px 2px #fff8,0 1px 4px #0008!important}
.edit-photo-item.profile{border-color:#d7bb7d!important}
.pet-name-line{min-width:0;gap:8px}
.pet-name-line h3{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pet-name-tools{flex:0 0 auto}
.pet-tile-copy{min-width:0;overflow:hidden}
.pet-actions,.pet-primary-actions{min-width:0;max-width:100%}
.pet-primary-actions>button[data-play]{max-width:min(100%,250px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.pet-suit-actions{flex:0 0 auto}
.park-current-one{min-width:0;max-width:340px}
.park-current-one span{min-width:0;max-width:260px}
.park-current-one span b{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pet-tile-copy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
@media(max-width:820px){.park-current-one{max-width:220px}.park-current-one span{max-width:150px}}
@media(max-width:520px){.pet-primary-actions>button[data-play]{max-width:180px}.pet-type-btn{padding:8px 11px!important}}
.pet-name-line h3{flex:1 1 auto}


/* v0.9.8 - resilient user text and dual photo framing */
#editPetTitle{max-width:calc(100% - 54px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.petbar>div:first-child{min-width:0;flex:1 1 auto;overflow:hidden}
#pname{max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere}
.petbar #portrait{flex:0 0 auto}
.deal-pet-line{min-width:0;max-width:100%}
.deal-pet-preview{min-width:0;flex:1 1 auto;overflow:hidden}
.deal-pet-names{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}
.deal-ready-copy{display:block;font-size:.9em;opacity:.72;margin-top:2px}
.newgame-card{overflow:hidden}
.crop-control-group{max-width:360px;margin:15px auto 0;padding-top:10px;border-top:1px solid #e6dccb}
.crop-control-group>b{display:block;font-size:10px;letter-spacing:.14em;color:#8a5e16;margin-bottom:6px}
.crop-control-group .crop-zoom{margin:0;max-width:none}
@media(max-width:620px){#pname{-webkit-line-clamp:2}.deal-pet-line{display:grid;grid-template-columns:auto minmax(0,1fr)}.deal-pet-preview{max-width:100%}}


/* v0.10.0 - refined icon toolbar */
.game .game-toolbar{gap:14px!important;padding:10px 16px!important;min-height:54px!important}
.game-toolbar .tool-icon{width:38px;height:38px;padding:5px!important;border:0!important;border-radius:10px!important;background:transparent!important;box-shadow:none!important;display:grid!important;place-items:center!important;cursor:pointer}
.game-toolbar .tool-icon:hover{background:rgba(255,250,240,.08)!important}
.game-toolbar .tool-icon img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}
.game-toolbar #undo img{width:29px;height:29px}
.game-toolbar #hint img{width:31px;height:31px}
.game-toolbar .theme-tool{margin-left:auto!important}
.game-toolbar .theme-tool img{width:32px;height:32px}
.game-toolbar .toolbar-hint{flex:0 1 auto!important;min-width:0!important;padding:0!important;margin-right:auto;color:#f7f0df!important}
@media(max-width:650px){.game-toolbar .toolbar-hint{flex-basis:auto!important}.game .game-toolbar{flex-wrap:nowrap!important}}


/* v0.10.1 - deal control, single-step undo, clean Draw 3 waste footprint */
.game-toolbar #deal img{width:34px;height:34px}
.game-toolbar #undo:disabled{opacity:.28;cursor:default;filter:saturate(.2)}
.game-toolbar #undo:disabled:hover{background:transparent!important}
#waste.empty-fan .fan-outline{display:none!important}
#waste.empty-fan .fan-wide-outline{display:block!important;position:absolute!important;top:-2px!important;left:0!important;width:calc(100% + 48px)!important;height:100%!important;box-sizing:border-box!important;border:2px dashed rgba(255,255,255,.28)!important;border-radius:10px!important;background:transparent!important;pointer-events:none!important;z-index:0!important}


/* v0.10.2 - toolbar alignment, single Draw 3 waste outline */
.game-toolbar #deal img{transform:translateY(-2px)}
#waste.empty-fan{border-color:transparent!important}
#waste.empty-fan .fan-wide-outline{left:0!important;width:calc(100% + 48px)!important}

/* v0.11 end-game and timed-play additions */
.time-limit-picker{margin-top:18px;padding-top:15px;border-top:1px solid #dfd2bd;text-align:left}.time-limit-picker>b{display:block;margin-bottom:8px;font-family:Georgia,serif;color:#35443f}.time-limit-options{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.time-choice{padding:9px 5px;border:1px solid #d8cbb7;border-radius:10px;background:#fffaf0;color:#35443f;font-weight:800}.time-choice.active{background:#174b3b;color:#fffaf0;border-color:#174b3b}.stats #time.countdown-warning{color:#c33!important}.record-line{margin:10px 0 18px;font-weight:800;color:#35443f}.end-actions{display:flex;gap:9px;justify-content:center}.end-actions button{min-width:120px}.secondary-end{background:#eee5d7!important;color:#35443f!important;border:1px solid #d8cbb7!important}.mini-overlay[hidden]{display:none}.mini-overlay{position:fixed;inset:0;z-index:10020;background:#102e27b8;backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px}.mini-panel{width:min(430px,92vw);background:#fffaf0;border-radius:24px;padding:28px;text-align:center;box-shadow:0 25px 70px #0006}.mini-panel h2{font-family:Georgia,serif;font-size:34px;margin:5px 0 10px}.mini-panel p{line-height:1.45;color:#35443f}.mini-panel .win-pets{margin-bottom:12px}.auto-finish-ready{animation:hintPulse 1.4s ease-in-out 2}@keyframes hintPulse{50%{filter:drop-shadow(0 0 7px #d8b867);transform:scale(1.05)}}
@media(max-width:620px){.time-limit-options{grid-template-columns:repeat(2,1fr)}.end-actions{flex-direction:column}.end-actions button{width:100%}}

/* v0.12.0 end-state additions */
#board{position:relative}.idle-start{position:absolute;z-index:50;left:50%;top:48%;transform:translate(-50%,-50%);padding:14px 24px;border-radius:14px;background:#fff7e7;color:#18302b;border:1px solid #d7bb7d;font-weight:900;box-shadow:0 8px 24px #0004}.idle-start:hover{transform:translate(-50%,-50%) scale(1.02)}

/* v0.12.1 - consistent toolbar states, idle composition, hidden test hook */
.game-toolbar #undo:not(:disabled) img,.game-toolbar #hint:not(:disabled) img{opacity:1;filter:none!important}
.game-toolbar #hint:disabled,.game-toolbar #undo:disabled{opacity:.28;cursor:default;filter:saturate(.2)}
.game-toolbar #hint:disabled:hover,.game-toolbar #undo:disabled:hover{background:transparent!important}
.idle-start{top:var(--idle-y,48%)!important}
#versionLink{cursor:default;user-select:none}
@media(max-width:650px){.end-actions{flex-wrap:wrap}}

/* v0.12.2 - end-game polish and replayable hints */
.game-toolbar #undo:not(:disabled) img{width:33px;height:33px;filter:drop-shadow(0 0 1px rgba(218,174,91,.9)) saturate(1.18) contrast(1.04)!important;opacity:1!important}
.game-toolbar #hint.hint-seen{opacity:.28;filter:saturate(.2);cursor:pointer}
.game-toolbar #hint.hint-seen:hover{opacity:.42;background:rgba(255,250,240,.05)!important}
.auto-finish-skip{position:absolute;right:22px;bottom:22px;z-index:80;padding:10px 17px;border-radius:12px;border:1px solid rgba(246,232,197,.55);background:rgba(25,38,34,.86);color:#fff5df;font-weight:850;box-shadow:0 5px 16px #0004}
.auto-fly-card{position:fixed!important;z-index:12000!important;margin:0!important;pointer-events:none!important;transition:transform .22s cubic-bezier(.22,.78,.28,1),opacity .22s ease!important;box-shadow:0 12px 30px #0006!important}

/* v0.12.3 polish */
.auto-finish-skip[hidden]{display:none!important}
.idle-start{pointer-events:auto!important;cursor:pointer}
.newgame-card .draw-options{margin-top:18px!important}
.game-toolbar #undo:not(:disabled) img{width:33px;height:33px;filter:none!important;opacity:1!important}

/* v0.12.4 verified interaction/state fixes */
.draw-options{margin-top:18px!important}
.auto-finish-skip[hidden],.auto-finish-skip:disabled{display:none!important}
.game-toolbar #undo:not(:disabled) img{filter:none!important;opacity:1!important}

/* v0.12.5: idle CTA must sit above tableau hit areas */
.idle-start{z-index:60!important;pointer-events:auto!important}

/* v0.12.6: idle CTA is outside the board so no tableau/board hit target can intercept it. */
.game{position:relative!important}
.idle-start{position:absolute!important;left:50%!important;top:var(--idle-y,48%)!important;transform:translate(-50%,-50%)!important;z-index:500!important;pointer-events:auto!important;cursor:pointer!important}

.hint-dismiss{appearance:none;border:0;background:transparent;color:inherit;font:700 17px/1 system-ui;padding:0 2px;margin-left:7px;opacity:.7;cursor:pointer;vertical-align:-1px}.hint-dismiss:hover,.hint-dismiss:focus-visible{opacity:1}.toolbar-hint:empty{display:block}


/* v0.13.5: restored reveal animation, prominent Auto Finish Skip, and completion flourish */
.just-flipped{animation:psCardReveal .42s cubic-bezier(.2,.75,.25,1) both!important;transform-origin:center center!important;backface-visibility:hidden}
@keyframes psCardReveal{0%{transform:perspective(700px) rotateY(82deg) scale(.985);filter:brightness(1.14)}100%{transform:perspective(700px) rotateY(0) scale(1);filter:brightness(1)}}
.auto-finish-skip{top:92px!important;bottom:auto!important;right:-76px!important;padding:11px 18px!important;background:#fffaf0!important;color:#173f35!important;border:1px solid #d7bb7d!important;box-shadow:0 7px 22px #0005!important}
.foundation.win-shimmer{isolation:isolate}
.foundation.win-shimmer::after{content:"";position:absolute;inset:-3px;z-index:20;pointer-events:none;border-radius:inherit;background:linear-gradient(105deg,transparent 28%,rgba(255,255,255,.08) 40%,rgba(255,247,210,.82) 50%,rgba(255,255,255,.12) 60%,transparent 72%);transform:translateX(-145%);animation:psFoundationShimmer .58s ease-out var(--shimmer-delay,0ms) 1 both;mix-blend-mode:screen}
@keyframes psFoundationShimmer{0%{transform:translateX(-145%);opacity:0}18%{opacity:.9}100%{transform:translateX(145%);opacity:0}}
@media(max-width:1320px){.auto-finish-skip{right:16px!important;top:76px!important;z-index:120!important}}

/* v0.13.7: Auto Finish lifecycle lock + reliable Skip placement */
.auto-finish-skip{right:-88px!important;top:96px!important;z-index:1000!important;white-space:nowrap!important;visibility:visible!important}
.auto-finish-skip[hidden],.auto-finish-skip:disabled{display:none!important}
@media(max-width:1360px){.auto-finish-skip{right:18px!important;top:70px!important}}


/* v0.13.7: exact Skip placement + body-level completion shimmer */
.auto-finish-skip{position:absolute!important;z-index:5000!important;right:auto!important;bottom:auto!important;white-space:nowrap!important;padding:11px 18px!important;background:#fffaf0!important;color:#173f35!important;border:1px solid #d7bb7d!important;box-shadow:0 7px 22px #0005!important}
.auto-finish-skip[hidden],.auto-finish-skip:disabled{display:none!important}
.win-shimmer-layer{position:fixed;z-index:9000;pointer-events:none;overflow:hidden;border-radius:10px;box-shadow:0 0 18px rgba(255,239,183,.24);animation:psFoundationGlow .72s ease-out 1 both}
.win-shimmer-layer::after{content:"";position:absolute;top:-12%;bottom:-12%;left:-70%;width:52%;background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,.12) 28%,rgba(255,248,210,.95) 50%,rgba(255,255,255,.18) 70%,transparent 100%);filter:blur(.5px);animation:psFoundationSweep .72s ease-out 1 both}
@keyframes psFoundationGlow{0%{opacity:0}16%{opacity:1}78%{opacity:1}100%{opacity:0}}
@keyframes psFoundationSweep{0%{transform:translateX(0)}100%{transform:translateX(330%)}}

/* v0.13.8: responsive finish flow, branded actions, continuous foundation sweep */
.auto-finish-skip{
  padding:10px 18px!important;border-radius:999px!important;
  background:linear-gradient(180deg,#233b35,#172d28)!important;
  color:#fff5df!important;border:1px solid #c6a96b!important;
  box-shadow:0 7px 20px #0005, inset 0 1px 0 #ffffff12!important;
  letter-spacing:.02em!important;font-weight:850!important;
}
.auto-finish-skip:hover,.auto-finish-skip:focus-visible{background:linear-gradient(180deg,#2b4a41,#1b332d)!important;color:#fff5df!important;outline:2px solid #d7bb7d!important;outline-offset:2px}

/* Primary action buttons: prevent Safari/browser accent-blue text from leaking in. */
#autoFinishYes,#winAgain,#lossAgain,#solverLossEnd,#timeWarningOk,#goPlay,#apply,#savePetEdits,#saveCrop,#mergePetPhotos{
  background:#18302b!important;color:#fffaf0!important;-webkit-text-fill-color:#fffaf0!important;border:1px solid #18302b!important;
}
#autoFinishYes:hover,#winAgain:hover,#lossAgain:hover,#solverLossEnd:hover,#timeWarningOk:hover,#goPlay:hover,#apply:hover,#savePetEdits:hover,#saveCrop:hover,#mergePetPhotos:hover{
  background:#23483e!important;color:#fffaf0!important;-webkit-text-fill-color:#fffaf0!important;
}
button:focus-visible{outline-color:#b98a3d}

/* One continuous light grazing across the completed foundation row. */
.win-shimmer-layer.win-shimmer-sweep{overflow:hidden!important;border-radius:12px!important;box-shadow:none!important;animation:psSweepEnvelope .95s ease-out 1 both!important}
.win-shimmer-layer.win-shimmer-sweep::after{content:"";position:absolute;top:-30%;bottom:-30%;left:-28%;width:22%;background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,.04) 20%,rgba(255,246,204,.75) 48%,rgba(255,255,255,.18) 64%,transparent 100%);filter:blur(2px);transform:skewX(-8deg);animation:psOneFoundationSweep .95s cubic-bezier(.25,.65,.25,1) 1 both!important}
@keyframes psOneFoundationSweep{0%{transform:translateX(0) skewX(-8deg);opacity:0}10%{opacity:.9}88%{opacity:.9}100%{transform:translateX(590%) skewX(-8deg);opacity:0}}
@keyframes psSweepEnvelope{0%,100%{opacity:0}8%,90%{opacity:1}}

/* Short landscape viewports: fit finish/end-state dialogs inside Safari's usable viewport. */
@media (orientation:landscape) and (max-height:620px){
  .mini-overlay,.win-overlay{padding:8px!important;align-items:center!important;overflow:auto!important}
  #autoFinishOverlay .mini-panel{width:min(680px,94vw)!important;max-height:calc(100dvh - 16px)!important;padding:12px 22px!important;border-radius:18px!important;overflow:auto!important}
  #autoFinishOverlay .win-pets{margin:0 auto 5px!important;gap:6px!important}
  #autoFinishOverlay .win-pet-photo{width:72px!important;height:88px!important;aspect-ratio:auto!important;border-width:3px!important;border-radius:12px!important}
  #autoFinishOverlay .win-pets.multiple .win-pet-photo{width:68px!important;height:84px!important}
  #autoFinishOverlay .mini-panel>small{font-size:9px!important}
  #autoFinishOverlay .mini-panel h2{font-size:27px!important;line-height:1!important;margin:2px 0 5px!important}
  #autoFinishOverlay .mini-panel p{font-size:13px!important;line-height:1.25!important;margin:5px auto 8px!important;max-width:560px!important}
  #autoFinishOverlay .end-actions{flex-direction:row!important;gap:8px!important}
  #autoFinishOverlay .end-actions button{width:auto!important;min-width:145px!important;padding:8px 16px!important}

  .win-panel{width:min(720px,96vw)!important;max-height:calc(100dvh - 16px)!important;padding:12px 20px!important;border-radius:20px!important;overflow:auto!important}
  .win-panel .win-pets{margin:0 auto 4px!important;gap:6px!important}
  .win-panel .win-pet-photo{width:72px!important;height:88px!important;aspect-ratio:auto!important;border-width:3px!important;border-radius:12px!important}
  .win-panel .win-pets.multiple .win-pet-photo{width:66px!important;height:82px!important}
  .win-panel>small{font-size:9px!important}
  .win-panel h2{font-size:30px!important;line-height:1!important;margin:2px 0 5px!important}
  .win-message{padding:7px 10px!important;margin:5px auto 2px!important;font-size:12px!important;line-height:1.2!important}
  .win-stats{margin:7px 0!important;gap:6px!important}
  .win-stats div{padding:6px 4px!important}
  .win-stats b{font-size:16px!important}.win-stats span{font-size:8px!important}
  .win-pb,.record-line{margin:5px 0!important;font-size:11px!important}
  .win-panel .end-actions{flex-direction:row!important;gap:8px!important}
  .win-panel .end-actions button{width:auto!important;min-width:130px!important;padding:8px 15px!important}
}


/* v0.13.9: empty-table next-deal state + portrait rotation cleanup */
.petbar.next-deal #portrait{display:flex!important;visibility:visible!important;opacity:1!important}
.petbar.next-deal #portrait:not(.four-friend-portraits){align-items:center;justify-content:center}
@media (max-width:700px) and (orientation:portrait){
  .rotate-phone-prompt~#idleStart,.game>.idle-start{display:none!important}
}

/* v0.13.10: reliable next-deal preview */
.petbar.next-deal{justify-content:flex-start!important;gap:24px}
.petbar.next-deal>div:first-child{flex:0 1 auto!important;max-width:min(720px,calc(100% - 270px))}
.petbar.next-deal #portrait.four-friend-portraits{flex:0 0 auto!important;display:flex!important}
@media(max-width:760px){.petbar.next-deal{display:grid!important;grid-template-columns:1fr!important}.petbar.next-deal>div:first-child{max-width:100%!important}.petbar.next-deal #portrait{grid-row:auto!important;grid-column:auto!important;justify-self:start!important}}


/* v0.13.11: explicit empty-table next-deal preview */
.next-deal-preview[hidden]{display:none!important}
.next-deal-preview{display:flex;align-items:center;gap:clamp(6px,1vw,12px);margin:12px 0 4px;min-height:62px;overflow:visible}
.next-deal-preview.four-friend-portraits{flex-wrap:nowrap}
.next-deal-preview.single-friend-preview{width:max-content}
.petbar.next-deal #portrait{display:none!important}
.petbar.next-deal{display:block!important}
.petbar.next-deal>div:first-child{max-width:none!important;width:100%!important}
@media(max-width:760px){.next-deal-preview{justify-content:flex-start;gap:7px}.petbar.next-deal{display:block!important}}


/* v0.13.13: shared TODAY'S DECK / NEXT DEAL layout and canonical preview */
.petbar,.petbar.next-deal{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:clamp(28px,5vw,72px)!important;
}
.petbar>div:first-child,.petbar.next-deal>div:first-child{min-width:0!important;max-width:none!important;width:auto!important}
.petbar #nextDealPreview{display:none!important}
.petbar #portrait,.petbar.next-deal #portrait{
  grid-column:2!important;
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  justify-self:end!important;
  align-items:center!important;
  justify-content:flex-end!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  background:none!important;
  border-radius:0!important;
}
.petbar #portrait.four-friend-portraits,.petbar.next-deal #portrait.four-friend-portraits{gap:clamp(10px,1.25vw,18px)!important;flex-wrap:nowrap!important}
.petbar #portrait.four-friend-portraits .today-pet-thumb{width:94px!important;height:101px!important;flex:0 0 94px!important}
.petbar #portrait.four-friend-portraits .today-pet-photo{width:88px!important;height:88px!important;font-size:38px!important}
.petbar #portrait.four-friend-portraits .today-suit{width:30px!important;height:30px!important;font-size:18px!important}
.petbar #portrait:not(.four-friend-portraits){
  width:104px!important;height:104px!important;border-radius:50%!important;
  background:#f3dfbb center/cover no-repeat!important;display:grid!important;place-items:center!important;font-size:56px!important
}
@media(max-width:900px){
 .petbar,.petbar.next-deal{grid-template-columns:minmax(0,1fr) auto!important;gap:18px!important}
 .petbar #portrait.four-friend-portraits .today-pet-thumb{width:68px!important;height:74px!important;flex-basis:68px!important}
 .petbar #portrait.four-friend-portraits .today-pet-photo{width:64px!important;height:64px!important}
 .petbar #portrait.four-friend-portraits .today-suit{width:24px!important;height:24px!important;font-size:15px!important}
}
@media(max-width:760px){
 .petbar,.petbar.next-deal{display:grid!important;grid-template-columns:1fr!important;gap:14px!important}
 .petbar>div:first-child,.petbar.next-deal>div:first-child{display:block!important;grid-column:1!important}
 .petbar #portrait,.petbar.next-deal #portrait{grid-column:1!important;grid-row:auto!important;justify-self:start!important;justify-content:flex-start!important}
 .petbar #portrait.four-friend-portraits .today-pet-thumb{width:clamp(48px,17vw,68px)!important;height:clamp(53px,18vw,73px)!important;flex:0 1 clamp(48px,17vw,68px)!important}
 .petbar #portrait.four-friend-portraits .today-pet-photo{width:clamp(46px,16vw,64px)!important;height:clamp(46px,16vw,64px)!important}
}

/* v0.13.14: stable shared deck preview. */
.petbar #portrait[hidden]{display:flex!important}
.petbar #portrait.four-friend-portraits{min-height:101px!important}
@media(max-width:760px){.petbar #portrait.four-friend-portraits{min-height:73px!important}}

/* v0.13.16: explain why Shuffle Friends cannot change an all-pinned deck. */
.shuffle-pinned-notice{margin-top:10px;padding:10px 12px;border:1px solid #dfd2bb;border-radius:12px;background:#f8f2e7;display:flex;align-items:center;gap:12px;font-size:13px;line-height:1.35;color:#4d4539}.shuffle-pinned-notice[hidden]{display:none!important}.shuffle-pinned-notice span{min-width:0}.shuffle-pinned-notice b{color:#18302b}.shuffle-pinned-notice button{flex:0 0 auto;background:#18302b;color:#fffaf0;padding:7px 11px;font-size:12px}.shuffle-pinned-notice button:hover{filter:brightness(1.08)}@media(max-width:620px){.shuffle-pinned-notice{align-items:flex-start;flex-direction:column}.shuffle-pinned-notice button{align-self:flex-start}}

/* v0.13.17: Single Pet uses the same canonical cropped thumbnail renderer as Four Friends. */
.petbar #portrait.single-friend-portrait{
  width:104px!important;height:104px!important;border-radius:50%!important;
  background:none!important;display:grid!important;place-items:center!important;overflow:visible!important
}
.petbar #portrait.single-friend-portrait .today-single-pet-photo{
  width:104px;height:104px;border-radius:50%;background:#f3dfbb center/cover no-repeat;
  display:grid;place-items:center;font-size:56px;border:3px solid #fffaf0;box-shadow:0 2px 9px #0003;overflow:hidden
}
@media(max-width:760px){
 .petbar #portrait.single-friend-portrait,.petbar #portrait.single-friend-portrait .today-single-pet-photo{width:82px!important;height:82px!important}
}

/* Stage 3 opt-in solver diagnostics (Shift-click footer version). */
.stage3-path-status{margin-top:7px;text-align:right;font-size:12px;letter-spacing:.02em;color:#6b6252}
.stage3-path-status[data-state="solved"]{font-weight:700}
.stage3-path-status[data-state="unsolvable"]{font-weight:700}
@media(max-width:700px){.stage3-path-status{text-align:left}}

/* v0.15.1: compact single-pet win presentation so primary actions stay visible. */
.win-pets:not(.multiple) .win-pet-photo{
  width:min(170px,34vw);
  max-height:212px;
}
@media(max-height:900px) and (min-width:621px){
  .win-panel{padding:22px 28px!important}
  .win-pets:not(.multiple){margin:0 auto 7px!important}
  .win-pets:not(.multiple) .win-pet-photo{width:min(140px,26vw)!important}
  .win-panel h2{font-size:38px!important;margin:2px 0 4px!important}
  .win-message{margin:7px auto 2px!important;padding:9px 13px!important}
  .win-stats{margin:12px 0!important}
  .win-stats div{padding:9px 5px!important}
  .win-pb,.record-line{margin:7px 0!important}
}

/* v0.15.1: feature the active pet in The Park when using a Single Pet deck. */
.park-current-one .park-current-thumb{width:88px;height:88px;font-size:36px;border-width:3px}
.park-current-one{gap:14px;max-width:380px}
.park-current-one span b{font-size:20px}
@media(max-width:820px){
  .park-current-one .park-current-thumb{width:68px;height:68px;font-size:30px}
}
@media(max-width:460px){
  .park-current-one .park-current-thumb{width:58px;height:58px;font-size:26px}
}

/* v0.15.3 feedback */
.footer-feedback,.end-feedback-link{appearance:none;border:0;background:transparent!important;color:inherit!important;font:inherit;padding:0;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;cursor:pointer;opacity:.9}.footer-feedback:hover,.end-feedback-link:hover{text-decoration-color:currentColor}.end-feedback-link{display:block;margin:-5px auto 13px;font-size:12px;opacity:.62}.feedback-dialog{width:min(560px,94vw);border:0;border-radius:24px;padding:0;background:#fffaf0;color:#18302b;box-shadow:0 30px 90px #0007}.feedback-dialog::backdrop{background:#102e27cc;backdrop-filter:blur(6px)}.feedback-dialog form{position:relative;padding:30px}.feedback-dialog small{font-weight:900;letter-spacing:.14em;color:#946410}.feedback-dialog h2{font-family:Georgia,serif;font-size:32px;margin:7px 0 7px}.feedback-intro{margin:0 0 20px;color:#5f6965}.feedback-dialog label[for=feedbackText]{display:block;font-weight:900;margin-bottom:7px}.feedback-dialog textarea{box-sizing:border-box;width:100%;resize:vertical;min-height:126px;max-height:280px;border:1px solid #d8cbb7;border-radius:14px;background:#fff;padding:13px 14px;color:#18302b;font:500 15px/1.45 system-ui;outline:none}.feedback-dialog textarea:focus{border-color:#9b721f;box-shadow:0 0 0 3px #d7bb7d44}.feedback-close{position:absolute;right:18px;top:16px;width:38px;height:38px;padding:0!important;border-radius:50%!important;background:#eee5d7!important;color:#18302b!important;font-size:24px!important;line-height:1!important}.feedback-attachment-row{position:relative;display:flex;align-items:stretch;gap:8px;margin:15px 0}.feedback-file-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.feedback-file-button{box-sizing:border-box;display:flex;align-items:center;gap:11px;flex:1 1 auto;min-width:0;border:1px solid #d8cbb7;border-radius:14px;padding:11px 13px;font-weight:700;cursor:pointer;background:#f4ecdf;transition:border-color .15s,background .15s}.feedback-file-button:hover{border-color:#b89b65;background:#f7f0e5}.feedback-file-input:focus-visible+.feedback-file-button{outline:3px solid #d7bb7d66;outline-offset:2px}.feedback-file-button.has-file{background:#edf3e9;border-color:#a9b99d}.feedback-file-icon{font-size:20px;line-height:1;flex:0 0 auto}.feedback-file-copy{display:flex;flex-direction:column;min-width:0;text-align:left}.feedback-file-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feedback-file-copy small{margin-top:2px;color:#69736f;font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feedback-file-remove{flex:0 0 auto;border:1px solid #d8cbb7!important;border-radius:14px!important;background:#fffaf0!important;color:#59635f!important;padding:0 13px!important;font-size:12px!important;font-weight:800!important}.feedback-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:17px}.feedback-actions button{min-width:120px}.feedback-actions #sendFeedback:disabled{background:#c8c9c8!important;border-color:#c8c9c8!important;color:#242826!important;opacity:.72;cursor:not-allowed}.feedback-error{padding:10px 12px;border-radius:10px;background:#f8e4df;color:#8a3026;font-weight:700}.feedback-success{padding:14px;border-radius:12px;background:#e8f2e8;color:#244b3d;text-align:center}.feedback-success b,.feedback-success span{display:block}.feedback-success span{margin-top:4px}.feedback-privacy{font-size:10px;line-height:1.45;color:#78817d;margin:14px 0 0}.feedback-dialog.sending #sendFeedback{opacity:.65;pointer-events:none}@media(max-width:520px){.feedback-dialog form{padding:24px 18px}.feedback-dialog h2{font-size:27px}.feedback-attachment-row{flex-direction:column}.feedback-file-remove{min-height:42px}.feedback-actions{flex-direction:column-reverse}.feedback-actions button{width:100%}}

.feedback-dialog textarea:disabled{background:#e4e5e3!important;border-color:#c9cbc8!important;color:#6f7572!important;cursor:not-allowed;opacity:1}
.feedback-dialog.submitted .feedback-attachment-row{opacity:.48;pointer-events:none;filter:grayscale(.35)}

.site-footer{box-sizing:border-box;max-width:1080px;margin:0 auto;padding:22px 24px 30px;display:flex;align-items:center;justify-content:center;gap:18px;font-size:12px;opacity:.72}.site-footer .footer-brand{display:flex;align-items:center;gap:8px}.site-footer nav{display:flex;align-items:center;gap:14px}.site-footer a,.site-footer .footer-feedback{color:inherit;text-decoration:none}.site-footer a:hover,.site-footer .footer-feedback:hover{text-decoration:underline;text-underline-offset:3px}.site-footer .footer-version{font-size:10px;opacity:.45}@media(max-width:600px){.site-footer{flex-wrap:wrap;gap:10px 16px}.site-footer .footer-brand{width:100%;justify-content:center}}
