.ttt-board{display:grid;grid-template-columns:repeat(3,60px);gap:4px}.ttt-cell{width:60px;height:60px;font-size:2rem;cursor:pointer}.db-board{display:inline-block}.db-row{display:flex;align-items:center}.db-row .dot{width:12px;height:12px;border-radius:50%;background:#333;flex:none}.db-row .edge{border:none;background:#ddd;cursor:pointer;padding:0;flex:none}.db-row .edge.h{width:48px;height:8px;margin:0 2px}.db-row .edge.v{width:8px;height:48px;margin:2px 0}.db-row .edge.taken{cursor:default}.db-row .edge.taken.p0{background:#e74c3c}.db-row .edge.taken.p1{background:#3498db}.db-row .box{width:44px;height:48px;margin:2px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;flex:none}.db-row .box.p0{background:#fadbd8;color:#e74c3c}.db-row .box.p1{background:#d6eaf8;color:#3498db}.db-scores{font-size:.9rem}.r30-total{font-size:3rem;font-weight:700;margin:1rem 0}.r30-target{font-size:1.2rem;color:#888;font-weight:400}.r30-buttons{display:flex;gap:.5rem}.r30-add{font-size:1.2rem;padding:.5rem 1.2rem;cursor:pointer}.r30-add:disabled{cursor:default;opacity:.5}@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/vazirmatn-arabic-wght-normal-Cafbb7Zc.woff2) format("woff2-variations");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/vazirmatn-latin-ext-wght-normal-tDTa1Fj6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/vazirmatn-latin-wght-normal-BFexNX-K.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg: #ffffff;--color-surface: #f7f9fc;--color-surface-alt: #eef1f7;--color-border: #e3e7ee;--color-text: #111111;--color-muted: #767b86;--color-primary: #7f5cff;--color-primary-soft: #f0ecff;--color-success: #27ae60;--color-success-soft: #eafaf1;--color-danger: #c0392b;--color-danger-soft: #fbeae7;--color-warning: #e67e22;--radius: 14px;--radius-sm: 8px;--font-persian: "Vazirmatn Variable", Vazirmatn, Tahoma, Arial, sans-serif}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;padding:1.5rem;margin:0;background:var(--color-bg);color:var(--color-text);color-scheme:light}.home{max-width:560px;margin:0 auto}button,input,select{font-family:inherit;font-size:.9rem}button{padding:.5rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:border-color .15s,background .15s,transform .05s}button:hover:not(:disabled){border-color:var(--color-primary)}button:active:not(:disabled){transform:scale(.97)}button:disabled{cursor:not-allowed;opacity:.45}[lang=fa]{font-family:var(--font-persian)}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.btn-primary:hover:not(:disabled){background:#6c47f5;border-color:#6c47f5}input,select{padding:.45rem .6rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#fff;color:var(--color-text);transition:border-color .15s}input:focus,select:focus{outline:none;border-color:var(--color-primary)}input:disabled,select:disabled{background:var(--color-surface);color:var(--color-muted)}.copyable{font-family:inherit;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.15rem .55rem;cursor:pointer;font-size:.85rem;color:#333;transition:background .15s,border-color .15s}.copyable:hover{border-color:var(--color-primary)}.identity-card{display:flex;align-items:center;gap:.9rem;padding:.9rem 1.1rem;margin-bottom:.8rem;border-radius:var(--radius);background:linear-gradient(135deg,var(--color-surface),var(--color-surface-alt));border:1px solid var(--color-border)}.identity-info{display:flex;flex-direction:column;flex:1;gap:.15rem;min-width:0}.identity-name{font-weight:600;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identity-row{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.identity-label{color:var(--color-muted);min-width:4.2rem}.identity-id{font-family:monospace}.sound-toggle{display:grid;flex:0 0 auto;place-items:center;width:2.5rem;height:2.5rem;margin-inline-start:auto;padding:0;border-color:transparent;border-radius:999px;background:#7f5cff1a;color:var(--color-primary)}.sound-toggle:hover:not(:disabled){background:#7f5cff2e}.sound-toggle[aria-pressed=true]{background:var(--color-surface-alt);color:var(--color-muted)}.sound-toggle:focus-visible{outline:3px solid rgb(127 92 255 / 30%);outline-offset:2px}.sound-toggle svg{width:1.25rem;height:1.25rem;fill:currentColor}.sound-toggle svg path+path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.share-app{display:flex;align-items:center;gap:.7rem;padding:.7rem 1.1rem;margin-bottom:1.5rem;border-radius:var(--radius);background:var(--color-primary-soft);border:1px solid #ded4ff;flex-wrap:wrap}.share-link{font-size:.8rem;color:var(--color-muted)}.home section{margin-bottom:1.5rem}.home h3{border-bottom:1px solid var(--color-border);padding-bottom:.3rem}.join-by-link .row input{flex:1;min-width:0}.join-by-link .row button{flex:0 0 auto}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.7rem;margin-top:.5rem}.game-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:.9rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;transition:border-color .15s,background .15s}.game-card:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.game-card-icon{font-size:2rem;line-height:1}.game-card-label{font-size:.85rem;text-align:center}.setup-page h3{display:flex;align-items:center;gap:.5rem;border-bottom:1px solid var(--color-border);padding-bottom:.3rem}.setup-icon{font-size:1.3rem}.setup-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}.practice-screen,.multiplayer-game-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;width:100%;height:100dvh;overflow:hidden;background:var(--color-bg)}.practice-chrome,.multiplayer-game-chrome{flex:0 0 auto;padding:max(.35rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) .35rem max(.5rem,env(safe-area-inset-left));border-bottom:1px solid var(--color-border);background:var(--color-bg)}.practice-leave,.multiplayer-game-leave{padding:.4rem .5rem;border:0;background:transparent;color:var(--color-danger);font-weight:600}.practice-game,.multiplayer-game{flex:1 1 auto;min-width:0;min-height:0;display:flex;align-items:flex-start;justify-content:center;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.practice-game::-webkit-scrollbar,.multiplayer-game::-webkit-scrollbar{display:none}.practice-game>.bgio-client,.multiplayer-game>.bgio-client{flex:0 0 100%;width:100%;min-width:0;min-height:100%;box-sizing:border-box}.practice-game .splendor-board,.multiplayer-game .splendor-board{width:100%;max-width:none;min-height:100%;margin:0;padding-right:max(8px,env(safe-area-inset-right));padding-left:max(8px,env(safe-area-inset-left));box-sizing:border-box}.practice-game .splendor-canvas-shell,.multiplayer-game .splendor-canvas-shell{border-radius:0}.roster-text{color:var(--color-muted);margin:.2rem 0 .8rem}.roles,.roles .btn-primary,.assign .btn-primary{margin-top:.5rem}.role-row .role-label{display:flex;align-items:center;gap:.4rem;min-width:6rem;padding-top:.45rem}.role-occupant{color:var(--color-success);font-size:.85em}.invite-btn{margin:.2rem 0}.pending-invite{border-left:3px solid var(--color-warning);padding-left:.6rem;flex-wrap:wrap}.pending-invite .game-actions{flex-wrap:wrap;align-items:center}.cancel-game{margin-top:1rem;color:var(--color-danger);border-color:#f3d4ce;white-space:nowrap}.row{display:flex;align-items:center;gap:.5rem;padding:.4rem 0}.role-row,.assign .row{align-items:flex-start}.row span{flex:1}.row.clickable{cursor:pointer}.game-row{align-items:flex-start}.game-row .game-title{flex:1 1 auto;min-width:0}.game-row .game-actions{flex:0 0 auto;display:flex;gap:.4rem;margin-left:auto}.icon-btn{flex:0 0 auto;width:2.1rem;height:2.1rem;padding:0;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1}.icon-btn.enter{color:var(--color-success);border-color:#cdeedd}.icon-btn.leave{color:var(--color-danger);border-color:#f3d4ce}.icon-btn.add{color:var(--color-primary);border-color:#ded4ff;font-size:1.2rem;font-weight:700}.icon-btn.view{color:var(--color-muted)}.your-turn{color:var(--color-success);font-weight:700;margin-left:.5rem}.outcome{margin-left:.5rem;font-weight:700}.outcome.won{color:var(--color-success)}.outcome.lost{color:var(--color-danger)}.outcome.draw,.empty{color:var(--color-muted)}.error{color:var(--color-danger);background:var(--color-danger-soft);border-radius:var(--radius-sm);padding:.5rem .7rem}.back{background:none;border:none;color:var(--color-muted);padding:.3rem 0;margin-bottom:1rem;font-weight:500}.back:hover:not(:disabled){color:var(--color-primary);border-color:transparent}.dev-harness{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center}.dev-phone{width:min(100vw,calc(100dvh * 390 / 844));aspect-ratio:390 / 844;box-sizing:border-box;display:flex;flex-direction:column;border:10px solid #1a1a1a;border-radius:40px;overflow:hidden;background:var(--color-bg);box-shadow:0 20px 60px #00000059}.dev-phone-header{flex:0 0 auto;padding:.75rem 1rem;font-weight:600;text-align:center;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border)}.dev-phone-body{flex:1 1 auto;overflow-y:auto;padding:1rem}.dev-phone-footer{flex:0 0 auto;padding:.5rem 1rem;border-top:1px solid var(--color-border)}.dev-phone-footer .back{margin-bottom:0}.dev-game-chrome{border-color:#2a3140;background:#10141c;color:#f2f4f8}.dev-game-body{padding:0;background:#10141c}.dev-game-chrome .back{color:#b8c0cf}.dev-game-chrome .back:hover:not(:disabled){color:#fff}
