:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#eef1e7;background:#142d29;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--muted: #b0c2b8;--gold: #e7c582;--gap: clamp(4px, 1vw, 10px)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(ellipse at 50% 25%,#23463a 0,#142d29 75%)}button,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #ffffff25;background:#ffffff06;border-radius:7px;padding:8px 12px;touch-action:manipulation}button:hover{background-color:#ffffff13}button:disabled{opacity:.36;cursor:default}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.app-shell{width:100%;max-width:1400px;height:100dvh;margin:0 auto;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:grid;grid-template-areas:"controls" "table" "highlights";grid-template-rows:40px minmax(0,1fr) clamp(96px,17dvh,144px);gap:8px}.play-controls{grid-area:controls;display:flex;align-items:stretch;justify-content:space-between;gap:8px}.play-controls button{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px}.game-stats{display:flex;justify-content:center;align-items:center;gap:clamp(12px,4vw,32px);font-size:11px;color:var(--muted)}.game-stats b{margin-left:4px;color:#f3f0df;font-size:15px;font-variant-numeric:tabular-nums}.game-stats small{color:var(--muted);font-weight:400;font-size:10px}.menu-dot{width:6px;height:6px;background:var(--gold);border-radius:50%}.table{--card-font: min(23px, calc(var(--card-width) * .3));grid-area:table;min-width:0;min-height:0;position:relative;display:grid;grid-template-rows:14px var(--card-height) minmax(0,1fr);row-gap:8px;column-gap:var(--gap)}.top-labels{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);align-items:center;color:#b6c7ad;font-size:8px;letter-spacing:1.5px}.top-row,.columns{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:var(--gap);min-height:0}.top-row>button{width:var(--card-width);height:var(--card-height);justify-self:center}.empty-slot{border:1px dashed #b3c7aa55;background:#091f1924;padding:0;position:relative;border-radius:7px;min-width:0}.slot-symbol{color:#b4c9b259;font-size:min(25px,calc(var(--card-width) * .6));font-weight:200}.slot-suit{color:#bccdb378;font-family:Georgia,serif;font-size:min(42px,calc(var(--card-width) * .65))}.foundation-slot.red .slot-suit{color:#e9a3a08c}.slot-caption{position:absolute;bottom:8%;left:0;right:0;color:#abc0a6a6;font-size:min(8px,calc(var(--card-width) * .2));letter-spacing:1px}.card{width:var(--card-width);height:var(--card-height);min-width:0;position:relative;overflow:hidden;border:1px solid #d5d6c9;border-radius:6px;padding:0;color:#243936;background:#f5f3e9;box-shadow:0 2px 4px #041e2240;text-align:left;user-select:none;-webkit-user-select:none}.card:hover{background:#fff}.card.red{color:#b63c3e}.card-corner{position:absolute;top:3px;left:3px;display:flex;align-items:center;gap:1px;font-size:var(--card-font);line-height:1;letter-spacing:-.5px}.card-corner b,.card-bottom b{font-weight:650}.card-corner>span,.card-bottom>span{font-size:.9em}.card-bottom{position:absolute;bottom:3px;right:3px;display:flex;align-items:center;gap:1px;transform:rotate(180deg);font-size:var(--card-font);line-height:1;letter-spacing:-.5px}.card.selected{background:#dce9c1;box-shadow:inset 0 0 0 2px #719440,0 2px 7px #0005}.card.matched{background:#fff0b3;box-shadow:inset 0 0 0 2px #e5bd58}.card.dimmed{background:#b3beb0;border-color:#92a495}.card.selected.matched{background:#f5e7a4;box-shadow:inset 0 0 0 2px #639149}.card.selected.dimmed{background:#dce9c1}.legal-target{outline:2px solid #d1e5a2;outline-offset:1px}.column-legal>.card:last-child{outline:2px solid #d1e5a2;outline-offset:1px}.column{position:relative;min-width:0;min-height:0}.column .card{position:absolute;top:calc(var(--position) * var(--step));left:50%;transform:translate(-50%)}.column .card:not(:last-child) .card-bottom{visibility:hidden}.column .card:not(:last-child) .card-corner{top:min(2px,calc(var(--step) * .05));font-size:max(0px,min(var(--card-font),calc(var(--step) - 2px)))}.column .card:focus-visible{outline-offset:-2px}.column-space{display:block;width:var(--card-width);height:var(--card-height);margin-inline:auto}.column-number{color:#bbcfb855;font-family:Georgia,serif;font-size:min(22px,calc(var(--card-width) * .6))}.highlight-panel{grid-area:highlights;min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,2fr) minmax(0,1fr);gap:4px}.rank-buttons,.suit-buttons,.color-buttons,.suit-color-row{display:grid;gap:4px;min-height:0;min-width:0}.rank-buttons{grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.suit-color-row{grid-template-columns:minmax(0,4fr) minmax(0,3fr)}.suit-buttons{grid-template-columns:repeat(4,minmax(0,1fr))}.color-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.highlight-panel button{min-width:0;min-height:0;padding:0;background:#d9e3c90a;border-color:#c6d9b430;font-size:14px;color:#dce6d2;border-radius:5px}.highlight-panel button[aria-pressed=true]{color:#233c2e;background:var(--gold);border-color:var(--gold)}.highlight-panel .suit-buttons button{font-size:22px}.highlight-panel .red-filter{color:#efa7a0}.color-buttons button{display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px}.color-dot{display:inline-block;width:11px;height:11px;border-radius:50%;border:1px solid #b9c5b4}.color-dot.red{background:#df7978;border-color:#df7978}.color-dot.black{background:#1c302b}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.error-toast{position:fixed;z-index:70;top:56px;left:50%;transform:translate(-50%);width:min(90%,520px);margin:0;padding:12px;border:1px solid #ffc3a9;border-radius:8px;background:#203e32;color:#ffc3a9;font-size:12px}.win-banner{position:absolute;bottom:15%;left:50%;transform:translate(-50%);width:min(90%,420px);text-align:center;padding:15px;border:1px solid var(--gold);border-radius:12px;background:#203f31}.win-banner h2{font: 25px Georgia,serif;margin:0 0 10px}.win-banner p{color:#c8d6bc;font-size:12px;margin:0}.win-banner button{margin-top:12px;min-height:40px}.primary-button{background:var(--gold);border-color:var(--gold);color:#20352d;font-weight:650}.primary-button:hover{background:#f1d7a7}dialog{width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 24px);background:#203c32;color:#edf1e6;border:1px solid #a6b68b66;border-radius:14px;box-shadow:0 24px 100px #0006;padding:0}dialog::backdrop{background:#061c16bb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-content{padding:20px}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-heading h2{font: 26px Georgia,serif;margin:0}.dialog-heading button{padding:8px 10px;font-size:12px}dialog h3{font-size:14px;color:var(--gold);margin:24px 0 8px}dialog p{font-size:14px;line-height:1.6;color:#d1ddc7}.menu-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.menu-actions button{min-height:40px;font-size:13px}.menu-summary,.menu-message{font-size:12px}.menu-message{margin-bottom:0}.auto-toggle{display:flex;align-items:center;gap:9px;position:relative;font-size:13px;cursor:pointer;min-height:44px;margin-top:10px}.auto-toggle input{position:absolute;z-index:1;opacity:0;width:36px;height:30px;cursor:pointer}.switch{display:block;width:31px;height:18px;background:#748279;border-radius:18px;padding:3px}.switch:before{content:"";display:block;width:12px;height:12px;border-radius:50%;background:#173a2e}.auto-toggle input:checked+.switch{background:#c5d59d}.auto-toggle input:checked+.switch:before{transform:translate(13px)}.auto-toggle input:focus-visible+.switch{outline:2px solid var(--gold);outline-offset:4px}.notice{padding:12px;background:#203e32;border:1px solid #b9c5b4;border-radius:8px;font-size:13px}.notice button{margin-top:8px}.error{color:#ffc3a9}.muted{color:#a8bba3}.seed-label{display:block;font-size:13px;margin-bottom:8px}#deal-number{display:block;width:100%;padding:13px;border:1px solid #9bac8970;border-radius:8px;background:#102e23;color:#edf1e6;font-size:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}@media(max-width:500px){.game-stats{gap:12px}.game-stats b{font-size:13px}.play-controls button{font-size:11px;padding:6px 8px}}@media(orientation:landscape){.app-shell{grid-template-areas:"controls highlights" "table highlights";grid-template-columns:minmax(0,1fr) clamp(86px,12vw,132px);grid-template-rows:36px minmax(0,1fr);column-gap:12px}.highlight-panel{grid-template-rows:minmax(0,7fr) minmax(0,3fr);max-height:700px;height:100%;align-self:center}.rank-buttons{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,1fr))}.suit-color-row{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,2fr) minmax(0,1fr)}.suit-buttons{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.color-name{display:none}.card-corner,.card-bottom{font-size:min(var(--card-font),19px)}}@media(orientation:landscape)and (max-height:380px){.highlight-panel button{font-size:12px}.highlight-panel .suit-buttons button{font-size:19px}.dialog-content{padding:14px}.menu-actions button{min-height:34px}.menu-summary{margin:8px 0}.menu-message{display:none}}
