:root{color-scheme:dark;--bg: #0d1117;--panel: #161d27;--border: #2b3648;--text: #e6edf3;--muted: #8b97a8;--accent: #f0b429;--ok: #3fb950;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}.shell{max-width:640px;margin:0 auto;padding:48px 24px 24px;display:flex;flex-direction:column;gap:32px;min-height:100vh}.shell__kicker{margin:0;letter-spacing:.35em;font-size:12px;color:var(--accent);font-weight:700}.shell__title{margin:8px 0 4px;font-size:40px;line-height:1.1}.shell__subtitle{margin:0;color:var(--muted)}.status{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px 24px}.status__heading{margin:0 0 16px;font-size:14px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}.status__grid{display:flex;flex-direction:column;gap:12px;margin:0}.status__row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.status__row dt{color:var(--muted)}.status__row dd{margin:0}code{background:#0b0f14;border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:13px}.muted{color:var(--muted)}.ok{color:var(--ok)}.shell__footer{margin-top:auto;color:var(--muted);font-size:12px;border-top:1px solid var(--border);padding-top:16px}.bootstrap{margin:1.5rem 0;display:grid;gap:.75rem;justify-items:center}.bootstrap__line{margin:0;opacity:.85}.bootstrap__line--ok{color:#7bd88f}.bootstrap__line--err{color:#e08282}.bootstrap__connect,.bootstrap__logout{font:inherit;padding:.55rem 1.2rem;border-radius:10px;cursor:pointer;border:1px solid rgba(255,255,255,.25)}.bootstrap__connect{background:#6c5ce7;color:#fff}.bootstrap__logout{background:transparent;color:inherit}.economy{margin:1.25rem 0;display:grid;gap:.6rem}.economy__title{margin:0;font-size:1rem;opacity:.9}.economy__grid{margin:0;display:flex;gap:1.5rem;flex-wrap:wrap}.economy__grid dt{font-size:.75rem;opacity:.6}.economy__grid dd{margin:0;font-size:1.2rem}.economy__test{border:1px dashed rgba(255,255,255,.25);border-radius:12px;padding:.8rem;display:grid;gap:.6rem}.economy__badge{margin:0;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;opacity:.55}.economy__actions{display:flex;gap:.5rem;flex-wrap:wrap}.economy__actions button{font:inherit;padding:.45rem .9rem;border-radius:8px;cursor:pointer;background:#ffffff14;color:inherit;border:1px solid rgba(255,255,255,.2)}.economy__actions button:disabled{opacity:.4;cursor:default}.economy__line{margin:0;font-size:.85rem;opacity:.8}.lobby{margin:1.5rem 0;display:grid;gap:1rem}.lobby__head{display:flex;justify-content:space-between;align-items:center}.lobby__title{margin:0;font-size:1.05rem}.lobby__create{background:#6c5ce7;color:#fff;border:none;border-radius:10px;padding:.5rem 1rem;font:inherit;cursor:pointer}.lobby__active{border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:.8rem;display:grid;gap:.5rem}.lobby__line{margin:0;font-size:.9rem;opacity:.85}.lobby__line--ok{color:#7bd88f}.lobby__form{border:1px dashed rgba(255,255,255,.25);border-radius:12px;padding:.8rem;display:grid;gap:.5rem}.lobby__form label{display:flex;gap:.6rem;align-items:center;font-size:.9rem}.lobby__form input,.lobby__form select{background:#ffffff14;color:inherit;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:.4rem .6rem;font:inherit;width:130px}.lobby__input--bad{border-color:#e08282}.lobby__hint{margin:0;font-size:.78rem;opacity:.7}.lobby__form button,.lobby__active button,.lobby__confirm button,.lobby__card button{font:inherit;padding:.45rem .9rem;border-radius:8px;cursor:pointer;background:#ffffff14;color:inherit;border:1px solid rgba(255,255,255,.2)}.lobby__form button:disabled,.lobby__card button:disabled{opacity:.4;cursor:default}.lobby__confirm{border:1px solid rgba(108,92,231,.5);border-radius:12px;padding:.9rem;display:grid;gap:.5rem}.lobby__confirm dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.4rem .8rem}.lobby__confirm dt{font-size:.72rem;opacity:.6}.lobby__confirm dd{margin:0}.lobby__actions{display:flex;gap:.5rem}.lobby__actions button:first-child{background:#27ae60;color:#fff;border:none}.lobby__list{display:grid;gap:.5rem}.lobby__card{border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:.7rem .9rem;display:flex;justify-content:space-between;align-items:center}.lobby__card-main{display:flex;gap:1.2rem;align-items:baseline}.lobby__card-host{font-weight:600}.lobby__card-type{font-size:.8rem;opacity:.8}.lobby__card-stake{font-weight:600}:root{--bg:#181923;--panel:#242431;--border:#454456;--text:#f4f0e9;--muted:#beb8c6;--accent:#dfb06b;font-family:Trebuchet MS,Segoe UI,sans-serif}.shell{max-width:1100px;padding:28px 24px;gap:24px}.shell__header{display:flex;align-items:center;gap:20px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:20px}.shell__header h1{margin:0;font-size:30px;letter-spacing:-1px}.shell__header p{margin:5px 0 0;color:var(--muted)}.staging-badge{border:1px solid #8a724d;border-radius:5px;padding:7px 10px;font-size:13px;color:#efc88f}.identity{margin-left:auto;display:flex;align-items:center;gap:12px}button{font:inherit;border:1px solid #71647b;background:#342c3e;color:var(--text);border-radius:6px;padding:10px 16px;min-height:44px;cursor:pointer}button:hover:not(:disabled){background:#4a3c57}button:disabled{cursor:default;opacity:.5}button.primary{background:var(--accent);color:#211b12;border-color:var(--accent);font-weight:700}button:focus-visible,a:focus-visible{outline:3px solid #9bd9dd;outline-offset:3px}.entry{padding:60px 24px;max-width:580px;margin:auto;text-align:center}.entry h2{font-size:44px;margin:12px 0;letter-spacing:-1.5px}.entry p{line-height:1.65}.entry__dice{font-size:64px;color:var(--accent)}.entry .primary{margin:16px 0}.muted{color:var(--muted);font-size:14px;line-height:1.5}.error-message{color:#ffd1ba;background:#482c30;padding:12px 16px;border-left:3px solid #e79270}.shell__footer{text-align:center;color:var(--muted);font-size:13px;margin-top:auto}.board-panel{width:100%}.board-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}.board-heading h2{font-size:25px;margin:0}.board-heading p{margin:8px 0;color:var(--muted)}.connection{font-size:13px;color:#a7d4c1}.match-stakes{display:flex;gap:32px;margin:18px 0}.match-stakes div{display:flex;gap:8px;align-items:baseline}.match-stakes dt{color:var(--muted);font-size:13px}.match-stakes dd{margin:0;font-weight:700}.turn-strip{display:flex;align-items:center;gap:20px;min-height:60px;padding:10px 18px;background:#30283a;border-radius:8px 8px 0 0}.timer{margin-left:auto;font-variant-numeric:tabular-nums;font-size:24px;min-width:50px}.timer--urgent{color:#ffb898}.dice{display:flex;align-items:center;gap:8px;font-size:16px}.dice span{font-size:42px;line-height:1;color:#f4efe3}.backgammon-board{border:10px solid #514053;background:#275953;box-shadow:inset 0 0 0 2px #715d74;border-radius:0 0 8px 8px;padding:12px}.board-half{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px}.board-point{position:relative;isolation:isolate;padding:22px 2px 8px;min-height:170px;border:none;background:transparent;border-radius:0;display:flex;flex-direction:column-reverse;align-items:center;justify-content:flex-start;gap:3px}.board-point:disabled{opacity:1}.board-point:before{content:"";position:absolute;inset:0;background:#193e46;clip-path:polygon(50% 5%,100% 100%,0 100%);z-index:-1}.board-point--alternate:before{background:#bd9060}.board-point--top{flex-direction:column}.board-point--top:before{clip-path:polygon(0 0,100% 0,50% 95%)}.board-point:hover:not(:disabled){background:#ffffff1f}.board-point:not(:disabled):after{content:"";position:absolute;inset:0;border:2px solid #b6eee1;pointer-events:none}.board-point--selected:after{border:3px solid #f7d990!important}.board-point--destination:after{border:3px dashed #a9ffe2!important}.point-number{position:absolute;bottom:2px;font-size:11px;color:#fff9ed}.board-point--top .point-number{bottom:auto;top:2px}.checker-stack{display:flex;flex-direction:inherit;align-items:center;gap:3px;width:100%}.checker{display:block;width:min(100%,34px);aspect-ratio:1;border-radius:50%;border:2px solid #847f7a;box-shadow:0 2px 2px #0005;flex:none}.checker--host{background:#f5eee1;border-color:#dbd1bc}.checker--joiner{background:#2b2732;border-color:#9a819f}.checker-total{font-weight:700;color:#fff;background:#493651;border-radius:50%;font-size:12px;padding:3px 5px}.board-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:50px;background:#493651;margin:10px -12px;padding:3px 12px;font-size:13px}.board-bar button{padding:7px 12px}.selected{outline:3px solid #f7d990}.off-trays{display:flex;justify-content:space-between;align-items:center;padding:12px 0;color:var(--muted);font-size:14px}.move-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px;background:var(--panel);border-radius:8px}.move-controls p{width:100%;margin:0}.legal-choices{width:100%;display:flex;gap:8px;flex-wrap:wrap}.turn-actions{display:flex;gap:12px;padding:12px 0}.double-dialog{background:#393043;border:1px solid #b48b52;border-radius:8px;padding:18px;margin:12px 0}.double-dialog h3{margin:0 0 8px}.double-dialog button{margin-right:12px}.match-result{border:1px solid #8db19e;border-radius:8px;padding:24px;margin-top:20px;background:#273832}.match-result h3{font-size:28px;margin:0 0 14px}@media(max-width:650px){.shell{padding:18px 12px;gap:18px}.shell__header{gap:12px}.identity{width:100%;margin:0;justify-content:space-between}.entry{padding:36px 6px}.entry h2{font-size:36px}.match-stakes{gap:12px;justify-content:space-between}.match-stakes div{display:block}.match-stakes dd{margin-top:4px}.turn-strip{gap:8px;padding:8px 12px;font-size:14px}.dice span{font-size:32px}.timer{font-size:21px;min-width:40px}.backgammon-board{border-width:5px;padding:8px 4px}.board-half{gap:2px}.board-point{min-height:140px;padding:18px 1px 16px}.checker{border-width:1px;max-width:24px}.board-bar{margin:6px -4px;padding:3px 6px;gap:6px;font-size:12px}.point-number{font-size:9px}.board-heading h2{font-size:22px}.board-heading p{font-size:13px}.move-controls{padding:12px;gap:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
