.game-page .wss-upload-area{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:1.25rem;margin-bottom:.75rem;cursor:pointer;transition:border-color var(--transition),background var(--transition);display:flex;align-items:center;justify-content:center;min-height:110px;background:var(--color-bg-secondary)}.game-page .wss-upload-area.drag-over,.game-page .wss-upload-area:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 6%,var(--color-bg-secondary))}.game-page .wss-upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:.35rem;text-align:center;pointer-events:none}.game-page .wss-upload-icon{font-size:2rem;line-height:1}.game-page .wss-upload-text{font-size:.9rem;font-weight:600;color:var(--color-text)}.game-page .wss-upload-hint{font-size:.75rem;color:var(--color-text-muted)}.game-page .wss-selection-container{margin-bottom:.75rem;display:flex;flex-direction:column;gap:.5rem}.game-page .wss-selection-hint{font-size:.8rem;font-weight:600;color:var(--color-accent);text-align:center}.game-page .wss-selection-wrapper{position:relative;display:inline-block;max-width:100%;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);cursor:crosshair;-webkit-user-select:none;-moz-user-select:none;user-select:none}.game-page .wss-selection-img{display:block;max-width:100%;height:auto;pointer-events:none;touch-action:none}.game-page .wss-selection-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.game-page .wss-selection-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.game-page .wss-ocr-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem;min-height:2rem}.game-page .wss-ocr-status{display:flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:500;color:var(--color-text-muted);flex:1 1}.game-page .wss-ocr-status.processing{color:var(--color-accent)}.game-page .wss-ocr-status.success{color:#22c55e}.game-page .wss-ocr-status.error{color:#f87171}.game-page .wss-spinner{display:inline-block;width:.8rem;height:.8rem;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:wss-spin .7s linear infinite;flex-shrink:0}@keyframes wss-spin{to{transform:rotate(1turn)}}.game-page .wss-grid-size-hint{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.game-page .wss-size-input{width:80px;padding:.3rem .5rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:.82rem;outline:none;transition:border-color var(--transition)}.game-page .wss-size-input:focus{border-color:var(--color-accent)}.game-page .wss-size-input::placeholder{color:var(--color-text-muted);opacity:.7}.game-page .wss-status{padding:.65rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;margin-bottom:1.25rem}.game-page .wss-status.info{background:rgba(108,111,255,.12);color:var(--color-accent);border:1px solid rgba(108,111,255,.25)}.game-page .wss-status.success{background:rgba(34,197,94,.12);color:#22c55e;border:1px solid rgba(34,197,94,.25)}.game-page .wss-status.error{background:rgba(248,113,113,.12);color:#f87171;border:1px solid rgba(248,113,113,.25)}.game-page .wss-inputs{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin-bottom:1rem}@media (max-width:600px){.game-page .wss-inputs{grid-template-columns:1fr}}.game-page .wss-input-group{display:flex;flex-direction:column;gap:.4rem}.game-page .wss-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.game-page .wss-textarea{flex:1 1;min-height:160px;padding:.625rem .75rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-mono,monospace);font-size:.85rem;line-height:1.5;resize:vertical;transition:border-color var(--transition);outline:none}.game-page .wss-textarea:focus{border-color:var(--color-accent)}.game-page .wss-textarea::placeholder{color:var(--color-text-muted);opacity:.7}.game-page .wss-actions{display:flex;gap:.625rem;flex-wrap:wrap;margin-bottom:1.75rem}.game-page .wss-grid-section{margin-bottom:1.75rem;overflow-x:auto}.game-page .wss-grid-wrapper{position:relative;display:inline-grid;grid-template-columns:repeat(var(--wss-cols,1),clamp(24px,6vw,36px));gap:0;width:max-content}.game-page .wss-cell{width:clamp(24px,6vw,36px);height:clamp(24px,6vw,36px);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono,monospace);font-size:clamp(.7rem,2vw,.9rem);font-weight:600;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;z-index:1}.game-page .wss-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2}.game-page .wss-word-list{margin-top:.5rem}.game-page .wss-word-list-title{font-size:1rem;font-weight:700;margin-bottom:.75rem;color:var(--color-text)}.game-page .wss-word-chips{display:flex;flex-wrap:wrap;gap:.5rem}.game-page .wss-chip{display:inline-flex;align-items:center;gap:.3rem;padding:4px 12px;border-radius:999px;font-size:.82rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;transition:opacity var(--transition)}.game-page .wss-chip.found{background:color-mix(in srgb,var(--chip-color,var(--color-accent)) 18%,transparent);color:var(--chip-color,var(--color-accent));border:1px solid color-mix(in srgb,var(--chip-color,var(--color-accent)) 40%,transparent)}.game-page .wss-chip.not-found{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border);text-decoration:line-through;opacity:.55}.game-page .wss-chip-count{font-size:.7rem;font-weight:700;opacity:.75}