:root{--bg: #f5f2ea;--panel: #ffffff;--ink: #2b2b2b;--muted: #8a8577;--line: #d8d2c4;--accent: #b6862c;--accent-ink: #fff;--tile: #fdf9ef;--tile-line: #b8ac8e;--joker: #7a4fbf;--joker-soft: #f0e9fb;--target: #2f8f4e;--target-soft: #e2f4e8;--replace: #b65c2c;--danger: #b3372f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,Arial Hebrew,system-ui,sans-serif}.app{max-width:1100px;margin:0 auto;padding:0 16px 32px}.app-header{display:flex;align-items:baseline;justify-content:space-between;padding:12px 0;border-bottom:2px solid var(--line);margin-bottom:16px}.app-header h1{margin:0;font-size:1.5rem;letter-spacing:.02em}button{font:inherit;cursor:pointer;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);padding:8px 16px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.link{border:none;background:none;color:var(--accent);text-decoration:underline;padding:4px}input{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.banner{background:#fff3cd;border:1px solid #e6d9a8;border-radius:8px;padding:8px 12px;margin-bottom:12px;text-align:center}.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fdecea;border:1px solid var(--danger);color:var(--danger);border-radius:8px;padding:8px 12px;margin-bottom:12px}.muted{color:var(--muted)}.hint{text-align:center;color:var(--replace);margin:8px 0 0}.gate-hint{color:var(--muted)}.gate-hint-pulse{animation:gate-pulse 1s ease}@keyframes gate-pulse{0%,to{transform:scale(1);font-weight:400}25%,75%{transform:scale(1.04);font-weight:700;color:var(--accent)}}.error-text{color:var(--danger);margin:4px 0}.lobby{max-width:420px;margin:24px auto;padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:14px}.lobby h2,.lobby h3{margin:0}.field{display:flex;flex-direction:column;gap:6px}.join-row{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:14px}.code-input{text-transform:uppercase;letter-spacing:.25em;font-weight:700}.room-code strong{letter-spacing:.25em;font-size:1.2em}.player-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.player-list li{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:8px}.player-offline{opacity:.5}.tag{font-size:.72rem;padding:1px 8px;border-radius:999px;background:var(--line)}.tag-you{background:var(--target-soft);color:var(--target)}.tag-off{background:#fdecea;color:var(--danger)}.game{display:flex;flex-direction:column;gap:12px}.game-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.turn{font-weight:600}.turn-mine{color:var(--target)}.opponents{list-style:none;display:flex;gap:12px;margin:0;padding:0;margin-inline-start:auto;flex-wrap:wrap}.opponents li{padding:2px 10px;border-radius:999px;border:1px solid var(--line);font-size:.85rem}.opponents .opp-current{border-color:var(--accent);background:#faf3e3;font-weight:600}.game-main{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 12px}.pyramid{display:flex;flex-direction:column;align-items:center;gap:4px}.pyramid-row{display:flex;gap:4px}.slot{width:52px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:2px;border-radius:6px;font-size:1.05rem;font-weight:600;position:relative}.slot-empty{background:transparent;border:1.5px dashed var(--line);transition:opacity .2s ease,border-color .2s ease}.slot-locked{opacity:.4;border-style:dotted;border-color:var(--muted);cursor:not-allowed}.lock-mark{font-size:.75rem;line-height:1}.slot-dead{opacity:.25;border-style:solid;border-color:var(--muted);transition:none;cursor:default}.dead-mark{font-size:.75rem;line-height:1}.slot-filled{background:var(--tile);border:1.5px solid var(--tile-line)}.slot-joker{background:var(--joker-soft);border-color:var(--joker);color:var(--joker)}.joker-mark{font-size:.7rem;line-height:1}.slot-target{border:2px solid var(--target);background:var(--target-soft);box-shadow:0 0 0 3px #2f8f4e33}.slot-placed-turn{border-style:dashed;border-color:var(--accent)}.slot-retractable{border-style:solid;border-color:var(--accent);box-shadow:0 0 0 3px #b6862c4d}.hand{margin-top:18px;text-align:center}.hand h3{margin:0 0 8px}.hand-tiles{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.tile{width:56px;height:72px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;font-size:1.3rem;font-weight:700}.tile-number{background:var(--tile);border:2px solid var(--tile-line)}.tile-joker{background:var(--joker-soft);border:2px solid var(--joker);color:var(--joker)}.tile-drawn{animation:tile-drawn 3s ease-out forwards}@keyframes tile-drawn{0%{border-color:var(--accent);box-shadow:0 0 0 6px #b6862c8c}12%{box-shadow:0 0 0 3px #b6862c4d}24%{box-shadow:0 0 0 5px #b6862c73}70%{border-color:var(--accent);box-shadow:0 0 0 3px #b6862c4d}to{box-shadow:0 0 #b6862c00}}.hand-tiles .tile{touch-action:none;cursor:grab}.hand-tiles .tile:disabled{cursor:default}.tile-dragging{opacity:.35}.drag-ghost{position:fixed;z-index:20;transform:translate(-50%,-50%);pointer-events:none}.drag-ghost .tile{box-shadow:0 6px 16px #2b2b2b4d}.controls{display:flex;justify-content:center;gap:12px;margin-top:16px}.btn-caution{background:#b6862c;opacity:.85}.chat{background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;max-height:280px}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--line)}.chat-header h3{margin:0;font-size:1rem}.chat-messages{flex:1;overflow-y:auto;padding:8px 12px;display:flex;flex-direction:column;gap:6px;min-height:80px}.msg{display:flex;gap:8px;align-items:baseline}.msg-name{font-weight:600;font-size:.85rem;color:var(--muted);white-space:nowrap}.msg-self .msg-name{color:var(--accent)}.msg-text{overflow-wrap:anywhere}.chat-input{display:flex;gap:8px;padding:8px 12px;border-top:1px solid var(--line)}.chat-input input{flex:1}.chat-toggle{align-self:flex-start}.overlay{position:fixed;inset:0;z-index:10;background:#2b2b2b73;display:flex;align-items:center;justify-content:center}.overlay-card{background:var(--panel);border-radius:14px;padding:24px 28px;min-width:300px;max-width:90vw;display:flex;flex-direction:column;gap:12px;text-align:center}.overlay-card h2,.overlay-card h3{margin:0}.overlay-actions{display:flex;justify-content:center;gap:10px}.winner-line{font-size:1.15rem;font-weight:600;margin:0}.standings{margin:0;padding-inline-start:1.4em;text-align:start}.entry{max-width:420px;margin:24px auto;display:flex;flex-direction:column;gap:14px}.entry-card{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:14px}.tabs{display:flex;gap:8px}.tabs button{flex:1;border-radius:8px}.tabs button.active{border-color:var(--accent);background:#faf3e3;font-weight:600}.checkbox{display:flex;align-items:center;gap:8px}.header-controls{display:flex;align-items:center;gap:12px}.account{position:relative}.account-trigger{border:none;background:none;padding:4px;font-weight:600}.account-menu{position:absolute;inset-block-start:100%;inset-inline-end:0;z-index:20;min-width:180px;padding:8px;margin-block-start:4px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 18px #0000001f;display:flex;flex-direction:column;align-items:stretch;gap:4px}.account-menu .link{text-align:start;text-decoration:none}.danger-text{color:var(--danger)!important}button.danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}.lobby-section{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}.lobby-section:first-of-type{border-top:none;padding-top:0}.lobby-section-head{display:flex;align-items:center;justify-content:space-between}.room-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.room-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:8px}.friend-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.friend-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:8px}.friend-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:ltr}.stats-grid{display:grid;grid-template-columns:auto auto;gap:4px 16px;margin:0}.stats-grid dd{margin:0;font-weight:600}.results-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow-y:auto}.results-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:8px}.howto-open{width:32px;height:32px;padding:0;border-radius:999px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.howto-card{text-align:start;width:min(640px,92vw);max-width:640px;max-height:80vh;padding:0;gap:0;overflow:hidden}.howto-header{position:sticky;inset-block-start:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:var(--panel);border-block-end:1px solid var(--line)}.howto-header h2{margin:0;font-size:1.2rem}.howto-close{border:none;background:none;padding:4px 8px;font-size:1.1rem;line-height:1;color:var(--muted)}.howto-body{overflow-y:auto;padding:8px 20px 20px}.howto-section{border-block-end:1px solid var(--line)}.howto-section:last-child{border-block-end:none}.howto-acc{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;border:none;background:none;border-radius:0;font-weight:600;font-size:1rem;text-align:start}.howto-chevron{color:var(--muted);font-weight:700}.howto-content{padding:0 2px 14px}.howto-content p{margin:0 0 10px}.howto-content p:last-child{margin-block-end:0}.howto-content ul{margin:0;padding-inline-start:1.3em;display:flex;flex-direction:column;gap:8px}.howto-diagram{display:flex;flex-direction:column;align-items:center;gap:4px;margin-block-start:10px}.howto-diagram .slot{cursor:default}@media(max-width:640px){.howto-overlay{align-items:stretch;justify-content:stretch}.howto-card{width:100vw;max-width:none;max-height:none;height:100dvh;border-radius:0}}.admin{display:flex;flex-direction:column;gap:18px;padding:12px 0}.admin-header,.admin-section-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-section-header form{display:flex;align-items:center;gap:6px}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:6px 10px;border-bottom:1px solid var(--line);text-align:start}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.admin .tag{font-size:.8em;opacity:.7}
