:root{--felt: #0d1b12;--felt-2: #12241a;--surface: #16291d;--surface-2: #1d3527;--line: #2b4433;--gold: #e8c86a;--gold-dim: #b89a4a;--text: #eaf2ea;--muted: #9db3a4;--danger: #e5675f;--good: #6bd08a;--radius: 16px;--radius-sm: 10px;--space: clamp(.9rem, .6rem + 1.5vw, 1.4rem);--text-hero: clamp(2rem, 1.2rem + 4vw, 3rem);--ease: cubic-bezier(.16, 1, .3, 1);--shadow: 0 10px 30px rgba(0, 0, 0, .45);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text);background:radial-gradient(120% 80% at 50% -10%,#1a3324 0%,var(--felt) 55%),var(--felt);-webkit-tap-highlight-color:transparent}.app{max-width:720px;margin:0 auto;min-height:100%;padding:max(env(safe-area-inset-top),1rem) var(--space) calc(var(--space) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--space)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.brand{display:flex;align-items:center;gap:.6rem;font-weight:800;letter-spacing:.02em}.brand .logo{width:34px;height:34px}.brand h1{font-size:1.1rem;margin:0}.tag{font-size:.7rem;color:var(--gold-dim);border:1px solid var(--line);padding:.1rem .5rem;border-radius:999px}.card{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--radius);padding:var(--space);box-shadow:var(--shadow)}.card h2{margin:0 0 .75rem;font-size:1.15rem}.stack{display:flex;flex-direction:column;gap:.75rem}.muted{color:var(--muted)}.center{text-align:center}.hero-title{font-size:var(--text-hero);font-weight:900;line-height:1;margin:.2rem 0 .4rem}.gold{color:var(--gold)}button{font:inherit;cursor:pointer}.btn{border:1px solid var(--line);background:var(--surface-2);color:var(--text);padding:.85rem 1.1rem;border-radius:var(--radius-sm);font-weight:700;transition:transform .12s var(--ease),background .2s,border-color .2s}.btn:active{transform:scale(.97)}.btn:hover{border-color:var(--gold-dim)}.btn.primary{background:linear-gradient(180deg,var(--gold),var(--gold-dim));color:#201a06;border-color:var(--gold)}.btn.ghost{background:transparent}.btn.danger{border-color:#5a2a2a;color:var(--danger);background:#2a1918}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.block{width:100%}.row{display:flex;gap:.6rem;flex-wrap:wrap}.row.tight{gap:.4rem}input[type=text],input[type=tel]{width:100%;padding:.85rem 1rem;border-radius:var(--radius-sm);background:var(--felt-2);border:1px solid var(--line);color:var(--text);font-size:1.1rem}label{font-size:.85rem;color:var(--muted);display:block;margin-bottom:.35rem}.avatar{position:relative;display:inline-grid;place-items:center;border-radius:50%;overflow:visible;border:2px solid var(--pc);background:var(--felt-2);flex:none}.avatar img{border-radius:50%;object-fit:cover;width:100%;height:100%}.avatar-initial{font-weight:800;color:var(--pc);font-size:1.1rem}.avatar.is-off{filter:grayscale(.7) opacity(.55)}.avatar-dot{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;background:var(--muted);border:2px solid var(--surface)}.avatar:not(.is-off) .avatar-dot{background:var(--good)}.pick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.pick{display:flex;align-items:center;gap:.7rem;padding:.8rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);transition:transform .12s var(--ease),border-color .2s}.pick:active{transform:scale(.97)}.pick.sel{border-color:var(--gold);background:var(--surface-2)}.pick b{font-size:1rem}.pin-dots{display:flex;gap:.6rem;justify-content:center;margin:.5rem 0 1rem}.pin-dots i{width:14px;height:14px;border-radius:50%;border:2px solid var(--gold-dim)}.pin-dots i.on{background:var(--gold);border-color:var(--gold)}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.keypad .btn{padding:1rem;font-size:1.3rem}.games{display:grid;gap:.75rem}.game-tile{display:flex;align-items:center;justify-content:space-between;text-align:left}.game-tile .meta{color:var(--muted);font-size:.8rem}.seats{display:flex;flex-wrap:wrap;gap:.6rem}.seat{display:flex;align-items:center;gap:.5rem;padding:.4rem .7rem .4rem .4rem;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.seat.turn{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.seat b{font-size:.9rem}.code{font-family:ui-monospace,monospace;font-size:2rem;letter-spacing:.35em;color:var(--gold);text-align:center;font-weight:800}.board-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table.board{border-collapse:collapse;width:100%;min-width:340px}.board th,.board td{padding:.5rem .4rem;border-bottom:1px solid var(--line);text-align:center;font-variant-numeric:tabular-nums}.board th.cat,.board td.cat{text-align:left;color:var(--muted);white-space:nowrap;position:sticky;left:0;background:var(--surface)}.board thead th{position:sticky;top:0;background:var(--surface-2)}.board col.me,.board td.me{background:#e8c86a0f}.board .empty{color:var(--gold);font-weight:800}.board .sub td{color:var(--muted);font-size:.8rem}.board .total td{font-weight:800;font-size:1.05rem;border-top:2px solid var(--line)}.mark-panel{position:sticky;bottom:0}.mark-values{display:flex;flex-wrap:wrap;gap:.4rem}.mark-values .btn{padding:.6rem .9rem}.turnline{display:flex;align-items:center;gap:.5rem}.toast{position:fixed;left:50%;bottom:1.3rem;transform:translate(-50%);background:#2a1918;color:var(--danger);border:1px solid #5a2a2a;padding:.6rem 1rem;border-radius:999px;box-shadow:var(--shadow);z-index:50;font-weight:600}.rank-list{display:flex;flex-direction:column;gap:.5rem}.rank-row{display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.rank-row .pos{font-weight:900;color:var(--gold);width:1.5rem}.rank-row .score{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums}.win-badge{color:var(--gold)}.link{background:none;border:none;color:var(--gold);text-decoration:underline;padding:0}.spread{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.err{color:var(--danger);font-size:.9rem}.foot{text-align:center;color:var(--muted);font-size:.72rem;margin-top:auto;padding-top:1rem}
