:root{--bg:#f4efe4;--surface:#fffdf8;--surface-2:#f8f3e8;--text:#1d1d1b;--muted:#6b665c;--line:#e2dccd;--felt:#0f5132;--felt-2:#146c43;--accent:#c2410c;--accent-text:#fff;--focus:#1c7ed6;--good:#2b8a3e;--bad:#c92a2a;--tile:#fffaf0;--tile-line:#2a2a28;--pip:#1d1d1b;--shadow:0 1px 2px #0000000f, 0 4px 16px #0000000f;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#12160f;--surface:#1b211a;--surface-2:#232b22;--text:#efece4;--muted:#a6a294;--line:#333b31;--felt:#1d7a4c;--felt-2:#23935c;--accent:#f08c4a;--accent-text:#1b1208;--tile:#f2ead8;--shadow:0 1px 2px #0000004d, 0 4px 16px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font:16px/1.45 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{margin:0 0 .4em;font-family:ui-rounded,SF Pro Rounded,ui-sans-serif,system-ui,sans-serif;line-height:1.15}h1{font-size:1.8rem}h2{font-size:1.2rem}a{color:var(--felt-2)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.page{max-width:1400px;margin:0 auto;padding:20px 16px 48px}.page.narrow{max-width:560px}.muted{color:var(--muted)}.small{font-size:.85rem}.grow{flex:1;min-width:0}.row{align-items:flex-end;display:flex}.row.center{align-items:center}.row.gap{gap:10px}.row.wrap{flex-wrap:wrap}.row.end{justify-content:flex-end}.stack{flex-direction:column;gap:14px;display:flex}.stack.tight{gap:6px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.banner{background:var(--surface-2);border-left:4px solid var(--accent);border-radius:8px;padding:10px 14px}.badge{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;margin-left:6px;padding:2px 10px;font-size:.85rem;display:inline-block}.badge.small{padding:0 7px;font-size:.7rem}.error{color:var(--bad);margin:0}.loading{text-align:center;color:var(--muted);padding:48px}label{flex-direction:column;gap:4px;font-size:.95rem;font-weight:600;display:flex}.field .label{margin-bottom:6px;font-weight:600;display:block}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:10px;width:100%;min-height:44px;padding:10px 12px;font-weight:400}textarea{resize:vertical;field-sizing:content;min-height:4.5em;max-height:60vh}input[type=radio],input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--felt-2);flex:none}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,.button-like:focus-within{outline:3px solid var(--focus);outline-offset:2px}button,.button-like{font:inherit;border:1px solid var(--line);background:var(--surface-2);min-height:44px;color:var(--text);cursor:pointer;border-radius:10px;flex-direction:row;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-flex}button:disabled,.button-like.disabled{opacity:.5;cursor:default}button.primary{background:var(--felt);border-color:var(--felt);color:#fff}button.fun{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.ghost{background:0 0}button.small{min-height:32px;padding:4px 10px;font-size:.85rem}.big{width:100%;min-height:56px;font-size:1.1rem}.icon-btn{background:0 0;border:none;width:40px;min-height:40px;padding:0;font-size:1.2rem}.avatar{color:#fff;object-fit:cover;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.piece{flex:none}.domino{background:var(--tile);border:.12em solid var(--tile-line);border-radius:.5em;flex-direction:column;flex:none;align-items:center;gap:.15em;padding:.25em;display:inline-flex;box-shadow:0 2px #00000040}.domino.horizontal{flex-direction:row}.domino .bar{background:var(--tile-line);width:2.2em;height:.12em}.domino.horizontal .bar{width:.12em;height:2.2em}.half{grid-template-rows:repeat(3,.62em);grid-template-columns:repeat(3,.62em);place-items:center;gap:.08em;display:grid}.pip{border-radius:50%;width:.48em;height:.48em}.pip.on{background:var(--pip)}.half-num{color:var(--pip);grid-area:1/1/4/4;font-size:1.3em;font-weight:800}.qr{image-rendering:pixelated;background:#fff;border-radius:8px;padding:4px;display:block}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border:3px solid #0000;border-radius:50%;width:36px;height:36px;min-height:0;padding:0}.swatch.selected{border-color:var(--text)}.pieces{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.piece-option{text-align:center;flex-direction:column;gap:2px;padding:8px 4px;font-size:.72rem;font-weight:500;line-height:1.15}.piece-option.selected{border:2px solid var(--felt-2);background:color-mix(in srgb, var(--felt-2) 12%, var(--surface))}.piece-option:disabled{opacity:.3}.modal-backdrop{z-index:10;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);width:min(640px,100%);max-height:calc(100dvh - 32px);padding:18px;overflow:auto;box-shadow:0 10px 40px #0000004d}.modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.modal-head h2{margin:0}.rules{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.rules li{flex-direction:column;gap:1px;display:flex}.rule-cat{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.72rem}.rule-desc{color:var(--muted);font-size:.9rem;font-weight:400;display:block}.rules-editor{flex-direction:column;gap:14px;display:flex}fieldset{border:1px solid var(--line);border-radius:10px;margin:0;padding:8px 12px 12px}legend{padding:0 6px;font-weight:700}.choice{cursor:pointer;flex-direction:row;align-items:flex-start;gap:10px;padding:8px 0;font-weight:400}.choice input{margin-top:2px}.game-page{padding-top:16px}.game-head{background:linear-gradient(135deg, var(--felt), var(--felt-2));color:#fff;border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:1fr auto auto;align-items:center;gap:16px;padding:18px 22px;display:grid}.game-head .muted{color:#ffffffbf}.game-head h1{margin:0;font-size:2.2rem}.round-box{align-items:center;gap:16px;display:flex}.round-label{opacity:.85;font-size:1.1rem}.double-label{font-size:2.2rem;font-weight:800;line-height:1.1}.tiles-label{font-size:1.05rem}.host-box button{color:#fff;border-color:#fff6}.host-bar{border:2px dashed var(--accent);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;display:flex}.host-bar .hint{margin-left:auto}.game-body{grid-template-columns:minmax(0,1fr) 300px;gap:16px;margin-top:16px;display:grid}.side{flex-direction:column;gap:16px;display:flex}.join-card{text-align:center;flex-direction:column;align-items:center;display:flex}.board{min-width:0}.empty{border:2px dashed var(--line);border-radius:var(--radius);min-height:240px;color:var(--muted);place-items:center;font-size:1.2rem;display:grid}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}table{border-collapse:collapse}.scores{width:100%;font-size:1.15rem}.scores th,.scores td{text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px}.scores th{color:var(--muted);background:var(--surface);font-size:.85rem;font-weight:600}.scores th.current{color:var(--accent);font-weight:800}.scores th.future{opacity:.45}.scores .sticky{background:var(--surface);z-index:1;position:sticky;left:0}.scores .name-col{text-align:left;left:36px}.scores .rank{width:36px;color:var(--muted);font-weight:700}.scores tbody tr:first-child .rank{color:var(--accent)}.scores .total-col{font-size:1.4rem;font-weight:800}.who{align-items:center;gap:8px;font-weight:600;display:inline-flex}.cell.future{color:#0000}.cell.missed{color:var(--muted);background:var(--surface-2);font-style:italic}.cell.missing{color:var(--bad)}.cell.pending{color:var(--muted)}.cell.out{color:var(--good);font-weight:800}.cell-btn{min-height:32px;font-size:inherit;font-weight:inherit;color:inherit;border:1px dashed var(--accent);background:0 0;padding:2px 10px}.legend{margin:0;padding:8px 12px;font-size:.85rem}.legend-chip{border-radius:4px;padding:0 6px;display:inline-block}.qr-section{margin-top:24px}.qr-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.qr-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;align-items:center;gap:8px;margin:0;padding:12px;display:flex}.qr-card figcaption{align-items:center;gap:6px;font-weight:600;display:flex}@media (width<=900px){.game-body,.game-head{grid-template-columns:1fr}.game-head h1{font-size:1.6rem}}.phone{flex-direction:column;gap:16px;display:flex}.phone h1{margin:0}.who-card{align-items:center;gap:14px;display:flex}.who-card h1.name,.who-card h2{margin:0}.total-box{flex-direction:column;align-items:flex-end;display:flex}.total{font-size:2rem;font-weight:800;line-height:1}.score-entry h2{margin-bottom:6px}.score-actions{flex-direction:column;gap:10px;margin-top:8px;display:flex}.typed input{flex:1}.saved{background:color-mix(in srgb, var(--good) 12%, var(--surface));border-radius:8px;padding:8px 12px}.photo-thumb{object-fit:contain;background:var(--surface-2);border-radius:10px;width:100%;max-height:260px}.tile-row{flex-wrap:wrap;gap:8px;display:flex}.my-rounds{width:100%}.my-rounds th,.my-rounds td{text-align:left;border-bottom:1px solid var(--line);padding:6px 4px}.my-rounds tr.missed td,.my-rounds tr.pending td{color:var(--muted)}.avatar-row{align-items:center;gap:14px;display:flex}details>summary{cursor:pointer;min-height:32px;font-weight:600;list-style-position:inside}details>summary .row{display:inline-flex}details[open]>summary{margin-bottom:12px}.home-head{align-items:center;gap:16px;margin-bottom:20px;display:flex}.home-head h1{margin:0;font-size:2.2rem}.home-games{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.game-link{color:var(--text);flex-direction:column;text-decoration:none;display:flex}.admin-head{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;display:flex}.admin-head h1{margin:0;font-size:1.4rem}.admin-head h1 a{color:inherit;text-decoration:none}.tabs{flex:1;gap:4px;display:flex}.tab{color:var(--text);border-radius:999px;padding:8px 14px;text-decoration:none}.tab.active{background:var(--felt);color:#fff}.game-list{flex-direction:column;gap:10px;display:flex}.game-card{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.game-card h3{margin:0}.game-card p{margin:2px 0}.game-card.inactive{opacity:.65}.host-code{flex-direction:column;align-items:center;display:flex}.code-big{letter-spacing:.12em;font-size:1.5rem;font-weight:700}.switch{cursor:pointer;flex-direction:row;align-items:center;gap:8px}.rule-row{border-top:1px solid var(--line);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.base-pick{align-items:center;padding-top:8px;font-weight:400}.inline{background:0 0;border-color:#0000;min-height:36px;padding:6px 8px}.inline:hover,.inline:focus{border-color:var(--line);background:var(--surface)}.inline.strong{font-weight:700}.inline.h3{font-size:1.15rem;font-weight:700}.new-rule{border-top:1px dashed var(--line);padding-top:10px}.tile-table th,.tile-table td{text-align:left;padding:4px 6px}.tile-table input{width:90px}@media (prefers-reduced-motion:no-preference){button,.button-like{transition:transform 80ms}button:active:not(:disabled){transform:scale(.98)}}
