/* SQUEEPER v0.0.5 — Styles */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{--bg:#0a0a1a;--bg2:#12122a;--gold:#c8a15a;--gold-dim:#8a7040;--p1:#4ade80;--p2:#60a5fa;--mine:#ef4444;--text:#e8e0d0;--text-dim:#888;--tile-bg:#1a1a3a;--tile-border:#2a2a4a;--cell-size:44px;--rack-size:48px;--mult-2xL:#4fc3f7;--mult-3xL:#ab47bc;--mult-2xW:#66bb6a;--mult-3xW:#ef5350}
html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:'Segoe UI',system-ui,-apple-system,sans-serif;touch-action:none;user-select:none}
#app{display:flex;flex-direction:column;height:100%;max-width:500px;margin:0 auto;position:relative}
#topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg2);border-bottom:1px solid var(--tile-border);flex-shrink:0;z-index:10}
.player-score{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:700;padding:4px 10px;border-radius:8px;transition:all .3s}
.player-score.active{background:rgba(255,255,255,.08);transform:scale(1.05)}
#p1score{color:var(--p1)}#p2score{color:var(--p2)}
#turn-indicator{font-size:13px;color:var(--gold);font-weight:600}
#board-container{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;min-height:0}
#board{display:grid;gap:1px;background:var(--tile-border);border:2px solid var(--tile-border);border-radius:6px;position:relative}
.cell{width:var(--cell-size);height:var(--cell-size);background:var(--tile-bg);display:flex;align-items:center;justify-content:center;position:relative;font-weight:700;font-size:18px;transition:background .2s;cursor:pointer;border-radius:2px}
.cell.center-cell{background:#1e1e40;box-shadow:inset 0 0 8px rgba(200,161,90,.2)}
.cell.center-cell::after{content:'⭐';font-size:12px;opacity:.4;position:absolute}
.cell.mult-2xL{background:rgba(79,195,247,.15);border:1px solid rgba(79,195,247,.3)}
.cell.mult-3xL{background:rgba(171,71,188,.15);border:1px solid rgba(171,71,188,.3)}
.cell.mult-2xW{background:rgba(102,187,106,.15);border:1px solid rgba(102,187,106,.3)}
.cell.mult-3xW{background:rgba(239,83,80,.15);border:1px solid rgba(239,83,80,.3)}
.cell .mult-label{position:absolute;font-size:9px;font-weight:700;z-index:1;pointer-events:none;opacity:.8}
.cell.mult-2xL .mult-label{color:var(--mult-2xL)}.cell.mult-3xL .mult-label{color:var(--mult-3xL)}
.cell.mult-2xW .mult-label{color:var(--mult-2xW)}.cell.mult-3xW .mult-label{color:var(--mult-3xW)}
.cell.has-letter{background:#2a2a50;color:var(--text)}
.cell.has-letter.confirmed{background:#252545}
.cell.has-letter.current-turn{background:#2d2d55;box-shadow:inset 0 0 6px rgba(200,161,90,.3)}
.cell .letter{font-size:18px;font-weight:800;z-index:2;text-transform:uppercase;pointer-events:none}
.cell .letter-value{position:absolute;bottom:1px;right:3px;font-size:8px;color:var(--text-dim);z-index:2;pointer-events:none}
.cell .mine-count{font-size:11px;color:var(--gold-dim);position:absolute;top:1px;left:3px;z-index:3;font-weight:700}
.cell.revealed-mine{background:#3a1515 !important}
.cell.revealed-mine .mine-icon{position:absolute;font-size:14px;opacity:.5;top:1px;left:2px;z-index:1}
.cell.revealed-2xL{background:rgba(79,195,247,.2) !important}
.cell.revealed-3xL{background:rgba(171,71,188,.2) !important}
.cell.revealed-2xW{background:rgba(102,187,106,.2) !important}
.cell.revealed-3xW{background:rgba(239,83,80,.2) !important}
.cell.drop-target{background:#2a2a60;box-shadow:inset 0 0 10px rgba(200,161,90,.4)}
#controls{flex-shrink:0;padding:6px 8px;background:var(--bg2);border-top:1px solid var(--tile-border)}
#rack-area{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:6px;min-height:56px;padding:4px;position:relative}
.rack-tile{width:var(--rack-size);height:var(--rack-size);background:linear-gradient(135deg,#2a2a50,#1e1e40);border:2px solid var(--gold-dim);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:var(--text);cursor:grab;position:relative;transition:transform .15s,box-shadow .15s;text-transform:uppercase;touch-action:none}
.rack-tile:active{cursor:grabbing;transform:scale(1.1);box-shadow:0 4px 16px rgba(0,0,0,.5)}
.rack-tile .tile-pts{position:absolute;bottom:2px;right:4px;font-size:9px;color:var(--text-dim);font-weight:600}
.rack-tile.dragging{opacity:.3;transform:scale(.9)}
.rack-tile.placeholder{border:2px dashed var(--tile-border);background:transparent}
#drag-ghost{position:fixed;width:var(--rack-size);height:var(--rack-size);background:linear-gradient(135deg,#3a3a60,#2e2e50);border:2px solid var(--gold);border-radius:8px;display:none;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:var(--text);pointer-events:none;z-index:1000;text-transform:uppercase;box-shadow:0 6px 24px rgba(0,0,0,.6);transform:translate(-50%,-50%)}
#btn-row{display:flex;gap:6px;justify-content:center;align-items:center;flex-wrap:wrap}
.btn{padding:10px 18px;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;min-height:44px;min-width:44px}
.btn-submit{background:var(--gold);color:var(--bg)}.btn-clear{background:var(--tile-border);color:var(--text)}
.btn-pass{background:transparent;color:var(--text-dim);border:1px solid var(--tile-border)}
.btn-help{background:transparent;color:var(--gold);border:1px solid var(--gold-dim);font-size:16px;padding:10px 14px;border-radius:50%;width:44px;height:44px}
.btn-endgame{background:transparent;color:var(--mine);border:1px solid var(--mine);font-size:11px;padding:8px 12px;opacity:.7}
.btn-endgame:hover{opacity:1}
.btn-newletters{background:transparent;color:var(--text-dim);border:1px solid var(--tile-border);font-size:14px;padding:8px 12px}
.btn-debug{background:transparent;color:var(--gold-dim);border:1px solid var(--gold-dim);font-size:14px;padding:8px 12px;opacity:.6}
.btn-debug:hover{opacity:1}
.steal-tile{width:var(--rack-size);height:var(--rack-size);background:linear-gradient(135deg,#2a2a50,#1e1e40);border:2px solid var(--tile-border);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:var(--text);cursor:pointer;position:relative;transition:transform .15s,box-shadow .15s;text-transform:uppercase}
.steal-tile.selected{border-color:var(--gold);box-shadow:0 0 12px rgba(200,161,90,.5);transform:scale(1.1)}
.steal-tile.opponent-tile:hover{border-color:var(--p2)}
.steal-tile.my-tile:hover{border-color:var(--p1)}
.cell.mult-steal{background:rgba(200,161,90,.2);border:1px solid rgba(200,161,90,.4)}
.cell.mult-steal .mult-label{color:var(--gold)}
.btn:active{transform:scale(.95)}
#version{position:fixed;bottom:4px;left:8px;font-size:10px;color:#555;z-index:5}
#toast{position:fixed;top:60px;left:50%;transform:translateX(-50%);background:#2a2a50;color:var(--text);padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;z-index:100;opacity:0;transition:opacity .3s;pointer-events:none;border:1px solid var(--gold-dim);max-width:90%;text-align:center}
#toast.show{opacity:1}
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);z-index:200;display:none;align-items:center;justify-content:center;padding:16px}
.modal-overlay.show{display:flex}
.modal{background:var(--bg2);border:1px solid var(--tile-border);border-radius:12px;padding:20px;max-width:420px;width:100%;max-height:80vh;overflow-y:auto;color:var(--text)}
.modal h2{color:var(--gold);margin-bottom:12px;font-size:20px}
.modal h3{color:var(--gold-dim);margin:10px 0 4px;font-size:15px}
.modal p,.modal li{font-size:13px;line-height:1.5;color:#ccc}.modal ul{padding-left:18px}
.modal .close-btn{display:block;margin:16px auto 0;padding:10px 24px;background:var(--gold);color:var(--bg);border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}
.setting-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--tile-border)}
.setting-row label{font-size:14px;color:var(--text)}.setting-row select{background:var(--bg);color:var(--text);border:1px solid var(--tile-border);border-radius:4px;padding:4px 8px;font-size:13px}
.setting-row input[type=range]{width:100px}.setting-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--gold)}
.setting-val{color:var(--gold);font-weight:700;margin-left:8px;min-width:24px}
#game-over{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);z-index:300;display:none;align-items:center;justify-content:center}
#game-over.show{display:flex}
#game-over .content{text-align:center;padding:30px}
#game-over h1{font-size:32px;color:var(--gold);margin-bottom:10px}
#game-over .scores{font-size:20px;margin:16px 0}
#game-over .winner{font-size:24px;margin:10px 0;font-weight:700}
#game-over button{padding:14px 30px;background:var(--gold);color:var(--bg);border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;margin-top:16px}
#bag-count{font-size:11px;color:var(--text-dim);text-align:center;margin-bottom:4px}
#settings-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg);z-index:250;display:flex;align-items:center;justify-content:center;padding:16px}
#settings-screen.hidden{display:none}
#settings-screen .panel{background:var(--bg2);border:1px solid var(--tile-border);border-radius:12px;padding:24px;max-width:400px;width:100%}
#settings-screen h2{color:var(--gold);text-align:center;margin-bottom:16px}
#settings-screen .start-btn{display:block;width:100%;padding:14px;background:var(--gold);color:var(--bg);border:none;border-radius:10px;font-size:18px;font-weight:700;cursor:pointer;margin-top:20px}
#settings-screen .raccoon{text-align:center;font-size:48px;margin-bottom:8px}
