/* Solo play uses the same full-table arrangement as the online games. */
body.solo-game-mode{height:100dvh;overflow:hidden;background:#e9eee8}
.solo-game-mode #app,.solo-game-mode #offline-app{height:100%;display:flex;flex-direction:column;min-height:0}
.solo-game-mode .game-header{flex:none;background:#12281f;box-shadow:0 1px 0 #ffffff0e;position:relative;z-index:3}
.solo-game-mode .header-inner.game-header-inner{width:100%;max-width:none;min-height:59px;padding:8px 22px;display:grid;grid-template-columns:minmax(210px,1fr) minmax(160px,auto) minmax(240px,1fr);gap:16px;align-items:center}
.solo-header-brand{display:flex;align-items:center;gap:15px;min-width:0}.solo-game-mode .brand{font-size:1rem;gap:8px;flex:none}.solo-game-mode .brand-mark{height:28px;width:28px;border-radius:8px;font-size:1.1rem}
.solo-header-game{display:flex;align-items:center;gap:8px;border-left:1px solid #ffffff29;padding-left:15px;min-width:0;white-space:nowrap}.solo-header-game strong{color:#d8f36a;font-size:1.25rem;letter-spacing:-.04em;line-height:1}.solo-header-game small{font-size:.62rem;color:#c1d3c7;line-height:1.35}
.solo-header-progress{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;min-width:0;color:#f7faf2;font-variant-numeric:tabular-nums}.solo-header-progress strong{font-size:.93rem;line-height:1.2}.solo-header-progress>span,.solo-header-progress>small{font-size:.69rem;line-height:1.3;color:#c3d1c5}
.solo-tools{display:flex;justify-content:flex-end;gap:7px;align-items:center}.solo-tools .button{font-size:.75rem;min-height:34px;padding:7px 12px;white-space:nowrap;background:#284537;color:#ecf4e6;border:1px solid #6d8b6e66;border-radius:8px}.solo-tools .button:hover{background:#365641}.solo-tools [aria-pressed=false]{color:#b6c9bc;background:#1c3428}
.solo-game-mode main{width:100%;max-width:none;margin:0;padding:7px 10px 5px;flex:1;min-height:0;display:flex;flex-direction:column}.solo-room{display:flex;flex-direction:column;flex:1;min-height:0}.solo-table{--solo-step:24px;--solo-gap:15px;flex:1;min-height:0;width:100%;background:radial-gradient(ellipse at 46% 39%,#39674d 0%,#28563f 50%,#194632 100%);border:6px solid #644931;border-radius:65px / 50px;box-shadow:inset 0 0 0 2px #b8936659,inset 0 0 0 6px #153d2973,inset 0 13px 32px #10291b5e;padding:24px 24px 12px;margin:0;color:#fff;overflow:hidden;display:flex;flex-direction:column;position:relative;isolation:isolate}
.solo-table:before{content:'';position:absolute;inset:7px;border:1px solid #ffffff16;border-radius:inherit;pointer-events:none;z-index:-1}
.solo-play-area{flex:1;min-height:0;width:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#aec1a961 transparent;padding:4px;position:relative;z-index:1}.solo-top-row,.solo-columns{display:grid;grid-template-columns:repeat(7,minmax(0,88px));gap:var(--solo-gap);justify-content:center;max-width:720px;width:100%;margin:0 auto;align-items:start}.solo-top-row{margin-bottom:26px}.solo-columns{padding-bottom:12px}
.solo-card,.solo-slot{width:100%;aspect-ratio:.7;border-radius:7px;min-height:0}.solo-card{position:relative;display:block;background:#fffef9;border:1px solid #d7d4c8;box-shadow:0 2px 4px #0003;color:#182e25;padding:0;text-align:left;font-family:Georgia,serif;font-size:18px;min-width:0}.solo-card.red{color:#b93143}.solo-card[disabled]{opacity:1;cursor:default}.solo-card.selected{outline:3px solid #d6fc78;outline-offset:0;box-shadow:0 0 18px #d5fb7660;z-index:30!important}.solo-card:focus-visible,.solo-slot:focus-visible{outline:3px solid #d6fc78;outline-offset:0}.solo-card-corner{position:absolute;top:5%;left:9%;line-height:.87;display:flex;flex-direction:column;align-items:center;gap:3px}.solo-card-corner b{font-weight:600}.solo-card-corner i{font-style:normal;font-size:.85em}.solo-card-corner.bottom{transform:rotate(180deg);top:auto;left:auto;right:9%;bottom:5%}.solo-card-suit{position:absolute;inset:0;display:grid;place-content:center;font-size:2em}
.solo-back{background:repeating-linear-gradient(45deg,#c1c59818 0 2px,transparent 2px 10px),#243f59;border:3px solid #eee5d5;display:grid;place-items:center;color:#eadbb3;text-align:center;box-shadow:0 2px 4px #0003}.solo-back:before{content:'';position:absolute;inset:8%;border:1px solid #d8d29e77;border-radius:4px;pointer-events:none}.solo-back>span{font-family:Georgia,serif;font-size:1.6em}.solo-stock{cursor:pointer;align-content:center}.solo-stock small{display:block;position:absolute;bottom:12%;left:0;right:0;font:600 10px/1.1 system-ui;text-align:center}.solo-stock:not(.solo-back)>span{display:block;text-align:center;font-size:2em}.solo-stock:disabled{cursor:default;opacity:.8}
.solo-column{position:relative;min-height:0}.solo-column>.solo-card{position:absolute;top:calc(var(--card-index)*var(--solo-step));left:0}.solo-column>.solo-slot{position:absolute;top:0;left:0}.solo-column:after{content:'';display:block;aspect-ratio:.7;margin-top:calc((var(--stack-size) - 1)*var(--solo-step));pointer-events:none}.solo-slot{display:grid;place-items:center;color:#ffffff80;border:2px dashed #ffffff35;background:#0001;font:600 clamp(11px,1.4vw,20px)/1.2 system-ui;padding:0}.solo-slot:disabled{opacity:1;cursor:default}.solo-foundation,.solo-waste{position:relative;aspect-ratio:.7}.solo-foundation>.solo-card,.solo-waste>.solo-card{position:absolute;inset:0}
.solo-columns.aces,.solo-aces-top{grid-template-columns:repeat(4,minmax(0,88px));gap:clamp(12px,4vw,42px)}.solo-aces-top{margin-top:clamp(0px,4vh,36px);margin-bottom:32px}.solo-table-copy{grid-column:span 3;align-self:center;max-width:270px;color:#e3eee6;line-height:1.65;font-size:.85rem;padding-left:7px}
.solo-table-dock{flex:none;min-height:66px;position:relative;z-index:2;display:flex;align-items:center;justify-content:center;padding-top:8px;background:none}.solo-selection{min-height:50px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;max-width:780px;padding:4px}.solo-selection .helper{margin:0;color:#e3eee6;font-size:.73rem}.solo-selection .button{min-height:28px;font-size:.66rem;padding:4px 8px;border-radius:7px;border:1px solid #98b3834d;background:#274b38;color:#e5eedc;white-space:nowrap}.solo-selection .button:hover{background:#365c42}
.solo-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:16px;min-height:100%;padding:30px 15px}.solo-empty h2{color:#f5f8ed;font-size:1.4rem}.solo-empty p{color:#dce8d6}.solo-empty p:empty{display:none}.solo-result{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;color:#edf3e5}.solo-result strong{font-size:1.15rem}.solo-result span{font-size:.8rem}.solo-result .button{min-height:34px;padding:7px 12px;font-size:.8rem}.solo-result.won strong{color:#e0f997}
.solo-notice:empty{display:none}.solo-notice{position:fixed;z-index:120;right:20px;top:90px;width:min(430px,calc(100vw - 40px));background:#fff7ed;border:1px solid #d5b491;color:#613b24;border-radius:12px;box-shadow:0 8px 24px #0002;padding:16px}.solo-notice p{margin:0 0 10px;line-height:1.5}.solo-notice button+button{margin-left:7px}
#solo-dialog{max-width:660px;max-height:calc(100dvh - 32px);overflow-y:auto;border:1px solid var(--line);padding:26px;color:var(--ink);width:calc(100vw - 32px)}.solo-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.solo-dialog-heading h2{font-size:1.35rem}.solo-dialog-heading .button{min-height:32px;padding:6px 12px}.solo-rules p{line-height:1.7;color:var(--muted);font-size:.9rem;margin-top:10px}.solo-rules h3{font-size:1rem}.solo-info-links{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:24px}#solo-dialog>.form-label{margin-top:24px}#solo-dialog select{margin-top:9px}.solo-personal{margin-top:24px}.solo-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.solo-stats>div{background:var(--surface,#fff);border:1px solid var(--border,#dde3d9);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:5px}.solo-stats strong{font-size:27px}.solo-stats span{color:var(--muted,#64715d);font-size:13px}.solo-by-game{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.solo-by-game .solo-stats>div{padding:12px 8px}.solo-by-game .solo-stats strong{font-size:22px}.solo-self{background:#ecf4db}#solo-ranking{padding:12px}#solo-ranking-more{margin:16px}.solo-self td:nth-child(2){font-weight:750}
.solo-table[data-card-style] .solo-card:not(.solo-back){background-color:var(--cosmetic-card-face,#fffef9);border-color:var(--cosmetic-card-edge,#d7d4c8);color:var(--cosmetic-card-ink,#182e25)}.solo-table[data-card-style] .solo-card.red{color:var(--cosmetic-card-red,#b93143)}.solo-table[data-card-style] .solo-back{background:var(--cosmetic-card-back,#243f59);border-color:var(--cosmetic-card-edge,#eee5d5);color:var(--cosmetic-card-metal,#eadbb3)}.solo-table[data-card-style] .solo-back:before{border-color:var(--cosmetic-card-metal,#d8d29e77)}.solo-table[data-card-style] .solo-card-corner{color:var(--cosmetic-card-accent,currentColor)}
/* The clock scales within the table instead of extending the document. */
.solo-clock .solo-play-area{display:flex;align-items:center;justify-content:center}.solo-clock-face{position:relative;flex:none;width:min(100%,calc((100dvh - 192px) / 1.25));aspect-ratio:1 / 1.25;max-width:650px;isolation:isolate;container-type:inline-size}.solo-clock-face:before{content:'';position:absolute;inset:10%;border:1px solid #c4d9ad36;border-radius:50%;pointer-events:none}.solo-clock-pile{position:absolute;width:11%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px}.solo-clock-hour{font-size:clamp(8px,2cqw,13px);font-weight:750;color:#e2ebda}.solo-clock-flip{position:relative;width:100%;min-height:0;padding:0;background:none;border:0;border-radius:8px;color:inherit}.solo-clock-flip:disabled{cursor:default;opacity:1}.solo-clock-flip .solo-card:before{pointer-events:none}.solo-clock-pile.is-active .solo-clock-flip{outline:3px solid #d8f36a;outline-offset:1px;box-shadow:0 0 18px #d8f36a44}.solo-clock-pile.is-active .solo-clock-hour{color:#d8f36a}.solo-clock-pile small{font-size:clamp(7px,1.55cqw,11px);color:#d8e5d2}.solo-clock-revealed{position:absolute;bottom:0;right:-6px;background:var(--cosmetic-card-face,#fffef9);color:var(--cosmetic-card-accent,#24362a);border:1px solid var(--cosmetic-card-edge,#d7d4c8);padding:2px 4px;border-radius:4px;font:600 clamp(11px,1.6vw,14px)/1.3 Georgia,serif;box-shadow:0 1px 4px #0003}.solo-clock-revealed.red{color:var(--cosmetic-card-accent,#b93143)}.solo-clock-help{max-width:600px;min-height:2.8em;text-align:center;color:#e3eee6;font-size:.8rem;line-height:1.5;margin:0 auto}
/* Classic's accent is currentColor; clock badges need card ink, not the white table text. */
.solo-table[data-card-style="classic"] .solo-clock-revealed{color:var(--cosmetic-card-ink,#24362a)}
.solo-table[data-card-style="classic"] .solo-clock-revealed.red{color:var(--cosmetic-card-red,#b93143)}
/* The offline catalogue keeps its normal navigation; an open game uses the header above. */
.offline-header{position:sticky;top:0;z-index:45;box-shadow:0 1px 0 #ffffff12,0 4px 16px #10241e0b}.offline-online-link{margin-left:auto;color:#c8d8ce;font-size:.9rem;padding:10px}.offline-readiness{background:#eaf1dc;border:1px solid #d0dfb5;padding:12px 16px;border-radius:12px;margin:0 0 28px;font-size:.85rem}.offline-readiness[hidden]{display:none}.offline-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.offline-game-card{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:28px;border-radius:22px;background:radial-gradient(ellipse at 90% 0,#38614e,#102e23 75%);color:#fff;border:1px solid #46644e;min-height:280px}.offline-game-symbol{font-size:3rem;font-weight:800;color:#d8f36a;line-height:1}.offline-game-card h2{color:#fff}.offline-game-card p{font-size:.9rem;color:#c6d7c8}.offline-game-card .button{margin-top:auto}#offline-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:120;max-width:calc(100vw - 32px)}#offline-toast[hidden]{display:none}
@media(max-width:1000px){.solo-game-mode .header-inner.game-header-inner{grid-template-columns:minmax(180px,1fr) minmax(150px,auto) auto;padding:8px 14px;gap:12px}.solo-header-brand{gap:10px}.solo-header-game{padding-left:10px;flex-direction:column;align-items:flex-start;gap:4px}.solo-game-mode .brand>span:last-child{display:none}}
@media(max-width:800px){.solo-by-game{grid-template-columns:1fr;gap:0}}
@media(max-width:700px){.offline-catalog{grid-template-columns:1fr}.offline-game-card{min-height:220px}.offline-online-link{font-size:.8rem}.solo-game-mode .header-inner.game-header-inner{grid-template-columns:minmax(100px,1fr) minmax(90px,1fr) 66px;padding:5px 9px;gap:8px;min-height:81px}.solo-header-brand{gap:7px}.solo-game-mode .brand-mark{width:25px;height:25px;border-radius:7px;font-size:1rem}.solo-header-game{padding-left:0;border:0;gap:3px}.solo-header-game strong{font-size:.79rem}.solo-header-game small{font-size:.55rem}.solo-header-progress strong{font-size:.77rem}.solo-header-progress>span,.solo-header-progress>small{font-size:.59rem;line-height:1.35}.solo-tools{flex-direction:column;gap:3px;align-items:stretch}.solo-tools .button{min-height:23px;padding:3px 5px;font-size:.61rem;border-radius:6px}.solo-game-mode main{padding:5px 5px 4px}.solo-table{--solo-gap:6px;--solo-step:21px;padding:16px 7px 8px;border-width:5px;border-radius:30px}.solo-top-row{margin-bottom:22px}.solo-play-area{padding:3px}.solo-card,.solo-slot{border-radius:5px}.solo-back{border-width:2px}.solo-stock small{font-size:8px;bottom:8%;white-space:nowrap}.solo-stock>span{font-size:1.3em}.solo-columns.aces,.solo-aces-top{gap:10px}.solo-table-copy{font-size:.74rem;padding-left:5px}.solo-aces-top{margin-top:3vh;margin-bottom:26px}.solo-table-dock{min-height:78px;padding-top:10px}.solo-selection{gap:8px}.solo-selection .helper{font-size:.72rem;text-align:center}.solo-selection .button{font-size:.61rem;min-height:28px;padding:4px 8px}.solo-result{gap:7px 10px}.solo-result strong{font-size:1rem}.solo-result span{font-size:.7rem}.solo-stats{gap:6px}.solo-stats>div{padding:12px 8px}.solo-stats strong{font-size:22px}.solo-stats span{font-size:11px}#solo-dialog{padding:22px 17px;width:calc(100vw - 24px)}.solo-notice{top:90px;right:12px;width:calc(100vw - 24px)}.solo-clock-face{aspect-ratio:1 / 1.45;width:min(100%,calc((100dvh - 202px) / 1.45))}.solo-clock-pile{gap:2px}.solo-clock-hour{font-size:.7rem}.solo-clock-pile small{font-size:.59rem}.solo-clock-revealed{right:-4px;padding:1px 3px;font-size:11px}.solo-clock-help{font-size:.71rem;min-height:3em}.solo-clock .solo-table-dock{min-height:64px}}
@media(max-width:360px){.solo-game-mode .header-inner.game-header-inner{grid-template-columns:minmax(95px,1fr) minmax(90px,1fr) 61px;gap:5px;padding-inline:7px}.solo-header-game small{font-size:.5rem}.solo-header-progress>span{font-size:.56rem}.solo-table{--solo-gap:4px;padding-inline:5px}.solo-table-copy{font-size:.68rem}.solo-selection .helper{flex-basis:100%;order:2}.solo-stats>div{padding-inline:6px}.solo-stats span{font-size:10px;white-space:nowrap}}
@media(max-height:580px) and (min-width:701px){.solo-game-mode .header-inner.game-header-inner{min-height:51px;padding-block:5px}.solo-table{padding-top:12px}.solo-table-dock{min-height:46px;padding-top:4px}.solo-clock-face{aspect-ratio:auto;width:min(100%,800px);max-width:800px;height:calc(100% - 40px);margin:20px auto}.solo-clock-pile{width:4.9%;gap:1px}.solo-clock-hour{font-size:clamp(6px,2cqw,11px)}.solo-clock-pile small{font-size:clamp(6px,1.5cqw,9px)}.solo-clock-help{font-size:.72rem}.solo-aces-top{margin-top:0}}
@media(prefers-reduced-motion:reduce){.solo-card{transition:none}}

/* Fit the cards themselves, keeping header and action controls at normal size. */
.solo-klondike,.solo-aces{--solo-card-width:76px}
.solo-klondike .solo-top-row,.solo-klondike .solo-columns{grid-template-columns:repeat(7,minmax(0,var(--solo-card-width)))}
.solo-aces .solo-aces-top,.solo-aces .solo-columns.aces{grid-template-columns:repeat(4,minmax(0,var(--solo-card-width)))}
.solo-klondike .solo-play-area,.solo-aces .solo-play-area{overflow-y:hidden}
.solo-clock-pile small{display:flex;flex-direction:column;gap:1px;line-height:1.15;white-space:nowrap;text-align:center}
.solo-clock-hidden{color:#b7cbb4;font-size:.9em}
