/* the table: flat felt, square-ish cards, no shadows. the window chrome lives in xp.css */
.sol{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.sol-table{position:relative;flex:1;min-height:0;touch-action:none;overflow:hidden}
.sol-slot,.sc{position:absolute;left:0;top:0;border-radius:6%/4.3%}
.sol-slot{box-sizing:border-box;border:1px solid #005a00;background:transparent}
.sol-slot.is-stock{cursor:pointer}
.sol-slot.is-stock.is-empty::after{content:"";position:absolute;left:50%;top:50%;width:46%;aspect-ratio:1;transform:translate(-50%,-50%);border:max(3px,.05em) solid #00c400;border-radius:50%;box-sizing:border-box;font-size:var(--cw,60px)}
.sol-slot.is-stock.is-dead::after{display:none}
.sol-slot.is-waste{border-color:transparent}
.sol-slot.is-tab{border-color:transparent}
.sc{will-change:transform;cursor:default}
.sc.is-up{cursor:grab}
.sc img{display:block;width:100%;height:100%;pointer-events:none}
.sol.is-anim .sc{transition:transform .16s cubic-bezier(.3,.7,.3,1)}
.sc.is-drag{transition:none!important;cursor:grabbing;filter:drop-shadow(3px 7px 5px rgba(0,0,0,.45))}
.sc.is-hint,.sol-slot.is-hint{animation:hintpulse 1.25s ease-out}
@keyframes hintpulse{0%,100%{box-shadow:0 0 0 0 rgba(255,236,80,0)}20%,60%{box-shadow:0 0 0 4px #ffe94d,0 0 14px 4px rgba(255,236,80,.8)}40%,80%{box-shadow:0 0 0 2px #ffe94d}}
.sc.is-nope{animation:nope .28s}
@keyframes nope{25%{translate:-3px 0}75%{translate:3px 0}}
.sol-fx{position:absolute;inset:0;width:100%;height:100%;z-index:4000;pointer-events:none}
.sol-fx.is-on{pointer-events:auto;cursor:pointer}
.sol-done{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4100}
.sol-done[hidden]{display:none}
/* the share row in the win box: Share on X is the big one */
.sol-share{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:4px 14px 2px}
.sol-share .sol-post{font-weight:700;min-width:120px}
.sol-share .sol-link{font-size:11px}
.sol-share [hidden]{display:none}
.xpd-btns kbd{font:inherit;color:#777;margin-left:4px}
/* small text buttons/links inside the win box */
.sol-more{display:flex;gap:12px;flex-wrap:wrap;margin:0;padding:0 14px 2px;font-size:11px}
.sol-more:not(:has(:not([hidden]))){display:none}
.sol-link{border:0;background:none;padding:0;color:#0b3fb8;text-decoration:underline;cursor:pointer;font:inherit}
.sol-link[hidden]{display:none}
.sol-x{padding:2px 14px 4px;font-size:12px}
.sol-x[hidden]{display:none}
.sol-x label{display:block;margin:0 0 5px}
.sol-enter-to{margin:4px 0 0;font:11px/1.3 "Lucida Console","Courier New",monospace;color:#0a6a2a}
.sol-enter-to:empty{display:none}
.sol-ts{margin-top:6px}
.sol-ts[hidden]{display:none}
/* the win box: verdict + the address form (site and tweet card) */
.sol-done{width:min(340px,calc(100% - 16px))}
.sol-done-v{margin-top:4px;line-height:1.35}
.sol-done-v:empty{display:none}
.sol-enter{padding:2px 14px 4px;font-size:12px}
.sol-enter[hidden]{display:none}
.sol-enter label{display:block;margin:0 0 5px}
.sol-enter-row{display:flex;gap:6px}
.sol-enter input,.sol-x input{flex:1;min-width:0;height:24px;padding:2px 5px;border:1px solid #7f9db9;background:#fff;font:12px/18px "Lucida Console","Courier New",monospace;color:#000;-webkit-user-select:text;user-select:text}
.sol-enter input:focus{outline:1px solid #316ac5;outline-offset:0}
.sol-enter .xpb{min-width:64px}
.sol-enter-msg{margin:5px 0 0;min-height:1em;color:#a00}
.sol-enter-msg:empty{display:none}
@media (prefers-reduced-motion:reduce){.sol.is-anim .sc{transition:none}.sc.is-nope,.sc.is-hint{animation:none}}
