*{box-sizing:border-box}html{scrollbar-gutter:auto}body{font-family:Segoe UI,Roboto,sans-serif;background:var(--page-bg);color:var(--text-main);margin:0;display:flex;justify-content:center}.game-container{width:100%;display:flex;flex-direction:column}header{display:flex;flex-direction:column;gap:15px}.header-top,.header-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.scoreboard-container{display:flex}.board-wrapper{display:flex;justify-content:center}.board{display:grid;width:100%;aspect-ratio:1;margin:0 auto;background:var(--board-bg);border-style:solid;border-color:var(--board-bg)}.square{display:flex;align-items:center;justify-content:center;position:relative;font-weight:600;background:var(--square-bg)}.tile{display:flex;align-items:center;justify-content:center;position:relative;font-weight:700;border-radius:4px;box-shadow:0 2px 3px #0002;cursor:grab}.tile sub{position:absolute;right:2px;bottom:2px;font-size:.5em}.board .tile{position:absolute;inset:0;width:100%;height:100%}.tile.selected{transform:translateY(-4px)}.tile.swap-selected{outline:3px solid var(--accent);transform:translateY(-4px)}.controls-area{display:flex;flex-direction:column}.rack-wrapper{display:flex;justify-content:center;width:100%}.rack{display:flex;justify-content:center;align-items:center;background:var(--rack-bg);border-radius:5px}.current-move-box{display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:5px}.buttons{display:flex;justify-content:center}.btn{padding:10px 15px;border:0}.full-width{width:100%}:root{color-scheme:light;--page-bg:#f5f2eb;--text-main:#30352e;--text-muted:#687064;--header-bg:#fffdf7;--primary:#315842;--secondary:#687064;--rack-bg:#e8dcc7;--board-bg:#71816e;--square-bg:#e5e7d7;--accent:#e9955b;--modal-bg:#fffdf7;--input-bg:#fffdf7;--link-color:#315842}[data-theme=dark]{color-scheme:dark;--page-bg:#1c211e;--text-main:#eeeade;--text-muted:#aab3a6;--header-bg:#282f29;--modal-bg:#282f29;--input-bg:#323b33;--input-border:#657060;--rack-bg:#45513c;--link-color:#a9c9a9;--primary:#98bd9d}body{padding:28px 20px}.game-container{max-width:760px;gap:13px}header{background:transparent;box-shadow:none;padding:0 0 14px;border-bottom:1px solid #87927b45;border-radius:0}h1.logo{font-family:Georgia,serif;font-size:2.65rem;font-weight:400;letter-spacing:-2px;margin:0;color:var(--text-main)}.logo span{color:var(--accent)}.tagline{margin:3px 0 0;color:var(--text-muted);font-size:.8rem;letter-spacing:.04em}nav{display:flex;align-items:center;gap:8px}button,input,select{font:inherit}button{touch-action:manipulation}button:focus-visible,summary:focus-visible,.square:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.btn,.btn-icon{border-radius:6px;font-weight:600;cursor:pointer}.btn.primary{background:var(--primary);color:var(--page-bg)}.btn.secondary{background:transparent;color:var(--text-main);border:1px solid #87927b70}.btn:disabled{opacity:.4;cursor:default;transform:none}.btn-icon{background:transparent;border:1px solid #87927b70;color:var(--text-main);font-size:.85rem;padding:8px 11px}.header-bottom{margin-top:8px}.scoreboard-container{gap:10px;flex-wrap:wrap}.player-score{display:flex;flex-direction:column;align-items:flex-start;min-width:110px;background:var(--header-bg);border:1px solid #87927b45;border-radius:6px;padding:9px 14px}.player-score.active{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}.player-name{color:var(--text-muted);font-size:.8rem}.player-points{font-size:1.45rem;font-weight:600;font-variant-numeric:tabular-nums}.game-info{display:flex;flex-direction:column;align-items:flex-end;gap:6px;font-size:.85rem}.bag-count{color:var(--text-muted)}.bag-count strong{margin-left:8px}.status-line{display:flex;align-items:center;justify-content:center;min-height:32px;gap:10px}#message-area{margin:0;text-align:center;font-size:.9rem}#message-area.error{color:#bd4530}[data-theme=dark] #message-area.error{color:#ffac93}.board{max-width:570px;gap:2px;border-width:5px;border-radius:5px;box-shadow:0 4px #34453640;grid-template-columns:repeat(15,minmax(0,1fr));grid-template-rows:repeat(15,minmax(0,1fr))}.square{font-size:.6rem;color:#40523e;border:0;min-width:0;min-height:0}.square.DLS{background:#bfd9d8;color:#315d5e}.square.TLS{background:#6e9fa6;color:#fff}.square.DWS,.square.START{background:#e8c7a6;color:#845932}.square.TWS{background:#bf7961;color:#fff}.tile{border:0;font-family:inherit;padding:0;touch-action:manipulation;background:#fbf3dd;color:#343a30}.tile sub{color:#696c5c;font-weight:400}.tile.blank{color:#236a7b}.board .tile{font-size:clamp(.65rem,2.7vw,1.15rem);border-radius:2px;background:#fbf3dd}.tile:disabled{opacity:1;cursor:default}.tile:disabled:hover{transform:none}.tile.temp{background:#fff0bc;border:2px solid #cb904b}.tile.last-played{box-shadow:inset 0 -3px #ce8b51}.tile.selected{border:2px solid #315842}.board-key{display:flex;justify-content:center;gap:14px;color:var(--text-muted);font-size:.68rem}.board-key span{display:flex;align-items:center;gap:4px}.board-key i{width:9px;height:9px;border-radius:2px}.key-dl{background:#bfd9d8}.key-tl{background:#6e9fa6}.key-dw{background:#e8c7a6}.key-tw{background:#bf7961}.controls-area{gap:9px;margin-top:5px}.rack-label{text-align:left;font-size:.65rem;letter-spacing:.12em;margin:0 0 6px 2px}.rack-wrapper{align-items:flex-end;gap:12px;flex-wrap:nowrap}.rack{width:350px;max-width:100%;padding:8px;min-height:60px;border-bottom:4px solid #89795865;gap:5px}.rack .tile{flex:0 0 42px;width:42px;height:42px;font-size:1.2rem}.current-move-box{background:var(--header-bg);border:1px solid #87927b70;min-width:62px;height:60px;padding:5px;color:var(--text-main)}.current-move-box .label{font-size:.6rem;letter-spacing:.1em;color:var(--text-muted)}.current-move-box strong{font-size:1.5rem}.preview-status{margin:0;min-height:22px;font-size:.78rem;color:var(--text-muted);text-align:center}.buttons{gap:8px;flex-wrap:wrap}details{border-top:1px solid #87927b45;padding-top:13px;font-size:.85rem}summary{cursor:pointer;color:var(--text-muted)}#history-count{margin-left:8px}#history-list{max-height:220px;overflow:auto;padding-left:28px}#history-list li{padding:7px 4px;border-bottom:1px solid #87927b25}#history-list li small{color:var(--text-muted)}.word-link,.text-button{background:transparent;border:0;padding:3px;color:var(--link-color);cursor:pointer;text-decoration:underline}footer{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--text-muted);font-size:.72rem;padding-bottom:5px}footer a{color:inherit}footer .text-button{font-size:inherit}dialog{background:var(--modal-bg);color:var(--text-main);border:1px solid #87927b70;border-radius:12px;padding:32px;width:calc(100% - 32px);max-width:450px;max-height:90dvh;overflow:auto;box-shadow:0 20px 100px #0004}dialog::backdrop{background:#16201899;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}dialog h2{font: 2rem Georgia,serif;letter-spacing:-.04em;margin:0 0 16px}dialog p{color:var(--text-muted);font-size:.9rem;line-height:1.6}dialog label{display:block;font-size:.85rem;font-weight:600;margin:20px 0 8px}dialog input,dialog select{display:block;width:100%;background:var(--input-bg);color:var(--text-main);border:1px solid #87927b70;border-radius:5px;padding:12px}dialog .full-width{margin-top:10px}dialog .eyebrow{color:var(--text-muted);font-size:.6rem;letter-spacing:.16em;margin:0 0 18px}dialog .text-button{display:block;margin:15px auto 0}#dict-status{font-size:.75rem}#saved-summary{background:var(--page-bg);padding:10px;border-radius:5px;font-size:.8rem}.letter-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:16px 0}.letter-picker button{border:1px solid #87927b70;background:var(--page-bg);color:var(--text-main);padding:10px 0;cursor:pointer;border-radius:4px}#swap-rack{width:100%;margin:20px 0;flex-wrap:wrap}#definition-dialog a{display:block;margin:15px 0;color:var(--link-color);font-size:.75rem}[hidden]{display:none!important}@media(max-width:600px){body{padding:14px 10px}.game-container{gap:10px}header{gap:8px}.header-top{gap:12px}h1.logo{font-size:2.2rem}.tagline{font-size:.68rem}nav{gap:5px}.btn-icon{padding:7px;font-size:.7rem}nav .btn{padding:8px;font-size:.75rem}.scoreboard-container{width:auto;justify-content:flex-start}.player-score{min-width:80px;padding:7px 11px}.player-points{font-size:1.2rem}.game-info{font-size:.75rem}.board{gap:1px;border-width:3px}.square{font-size:clamp(.35rem,1.6vw,.6rem)}.board-key{gap:9px;font-size:.6rem}.rack{width:300px;min-height:52px;padding:6px;gap:4px}.rack .tile{flex-basis:36px;width:36px;height:36px;font-size:1rem}.current-move-box{height:52px;min-width:48px}.buttons .btn{padding:10px 13px;font-size:.8rem}footer{flex-wrap:wrap;justify-content:center;gap:8px 18px}dialog{padding:26px}}@media(max-width:370px){.rack{width:254px}.rack .tile{flex-basis:30px;width:30px;height:34px}.rack-wrapper{gap:8px}.btn-icon{font-size:.65rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.rack-wrapper>div:first-child{flex:1;min-width:0;max-width:350px}.rack-wrapper .rack{width:100%}.rack-wrapper .rack .tile{flex:1 1 0;min-width:0;max-width:42px}@media(min-width:700px){.game-container{display:grid;height:calc(100dvh - 56px);grid-template-rows:auto auto minmax(280px,1fr) auto auto auto auto}.board-wrapper{container-type:size;min-height:280px;align-items:center}.board{width:min(570px,100cqw,100cqh)}}@media(min-width:700px)and (max-height:1000px){body{padding-block:12px}.game-container{height:calc(100dvh - 24px);gap:8px}header{gap:8px;padding-bottom:10px}.header-bottom{margin-top:0}h1.logo{font-size:2.2rem}.player-score{padding:6px 12px}.player-points{font-size:1.2rem}.status-line{min-height:24px}.controls-area{gap:6px}.rack{min-height:52px;padding:6px}.rack .tile{height:36px}.current-move-box{height:52px}.preview-status{min-height:18px}.controls-area .btn{padding:8px 12px}}
