:root{--bg: #1a1310;--bg2: #241a15;--card: #2d211b;--line: #43332a;--text: #f6eee3;--muted: #b8a797;--gold: #e8b923;--red: #d64541;--green: #3fbf73;--board: #f6eee3;--cell: #fffdf8;--star: #9b8a7a;--radius: 14px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45;-webkit-tap-highlight-color:transparent}a{color:var(--gold)}h1,h2,h3{margin:0 0 .6rem;line-height:1.2}h2{font-size:1.2rem}h3{font-size:1rem;margin-top:1rem}code{font-size:.75rem;word-break:break-all;background:#0003;padding:1px 4px;border-radius:4px;display:inline-block}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.page{flex:1;width:100%;max-width:560px;margin:0 auto;padding:12px 16px 96px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#1a1310e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.brand{color:var(--text);text-decoration:none;font-weight:800;font-size:1.15rem;display:flex;align-items:center;gap:6px}.brand-die{color:var(--gold);font-size:1.5rem;line-height:1}.brand{gap:0}.brand-die{margin-right:6px}.brand-tld{color:var(--gold)}.balance{background:var(--gold);color:#1a1310;font-weight:800;padding:6px 12px;border-radius:999px;text-decoration:none}.topbar-right{display:flex;align-items:center;gap:10px}.presence{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.85rem;font-weight:700}.presence-count{display:flex;align-items:center;gap:3px}.wifi{display:block}.wifi.off{opacity:.8}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;background:var(--bg2);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;text-align:center;padding:14px 4px;color:var(--muted);text-decoration:none;font-weight:600;font-size:.9rem}.tabbar a.active{color:var(--gold)}.live-dot{display:inline-block;width:8px;height:8px;margin-left:5px;vertical-align:2px;border-radius:50%;background:var(--red);animation:blink 1.2s ease-in-out infinite}@keyframes blink{50%{opacity:.3}}.foot{text-align:center;font-size:.75rem;color:var(--muted);padding:8px 16px 84px}.age{border:1px solid var(--muted);border-radius:4px;padding:0 4px;font-weight:700}.stack{display:flex;flex-direction:column;gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row>input{flex:1;min-width:0}.row-between{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.grow{flex:1}.muted{color:var(--muted)}.small{font-size:.8rem}.big{font-size:1.15rem;font-weight:700}.plus{color:var(--green);font-weight:700}.minus{color:#ff8a80}.error{color:#ff8a80;margin:8px 0}.ok{color:var(--green);margin:8px 0}.warn{background:#e8b92322;border:1px solid #e8b92366;border-radius:10px;padding:10px 12px;margin:0}.hint{color:var(--muted);font-size:.82rem;margin:6px 0 12px}.empty{color:var(--muted);text-align:center;padding:16px 0}label{display:block;font-weight:600;margin:12px 0 6px}input:not([type=checkbox]){width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px}input:focus{outline:2px solid var(--gold);outline-offset:-1px}.code-input{font-size:1.6rem;letter-spacing:.5em;text-align:center}.check{display:flex;gap:10px;align-items:flex-start;font-weight:400}.check input{margin-top:4px;width:18px;height:18px;accent-color:var(--gold);flex-shrink:0}.btn{font:inherit;font-weight:700;border-radius:12px;padding:12px 16px;cursor:pointer;border:1px solid var(--line);background:var(--bg2);color:var(--text);text-decoration:none;text-align:center;display:inline-block}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.gold{background:var(--gold);border-color:var(--gold);color:#1a1310}.btn.danger{background:transparent;border-color:#ff8a80;color:#ff8a80}.btn.ghost{background:transparent}.btn.block{display:block;width:100%;margin-top:12px}.btn.whatsapp{background:#25d366;border-color:#25d366;color:#083b1c}.link{background:none;border:0;color:var(--gold);font:inherit;padding:8px 0;cursor:pointer;text-decoration:underline}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font:inherit;font-weight:600;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer}.chip.on{background:var(--gold);border-color:var(--gold);color:#1a1310}.chip-input{width:110px!important;padding:8px 14px!important;border-radius:999px!important}.summary{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:14px 0 4px;padding:10px 12px;background:var(--bg);border-radius:10px}.tabs{display:flex;background:var(--bg2);border-radius:12px;padding:4px}.tabs button{flex:1;font:inherit;font-weight:700;background:none;border:0;color:var(--muted);padding:10px;border-radius:9px;cursor:pointer}.tabs button.on{background:var(--card);color:var(--text)}.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.list li:last-child{border-bottom:0}.list li a{display:flex;justify-content:space-between;width:100%;color:var(--text);text-decoration:none;gap:8px}.list li>span:last-child{text-align:right}.admin-list li{flex-direction:column;align-items:stretch}.history-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}.list .history-side a{color:var(--gold);width:auto;display:inline}.raw{font-family:ui-monospace,monospace;font-size:.75rem;color:var(--muted);margin-top:4px;word-break:break-word}.status{font-size:.8rem;font-weight:700}.status.paid,.status.credited{color:var(--green)}.status.rejected,.status.unreadable{color:#ff8a80}.status.requested,.status.unmatched{color:var(--gold)}.spinner{width:32px;height:32px;margin:32px auto;border:3px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}.spinner.small{width:16px;height:16px;margin:0;border-width:2px;display:inline-block;vertical-align:middle}.splash{min-height:100vh;min-height:100dvh;display:grid;place-items:center}@keyframes spin{to{transform:rotate(360deg)}}.login{display:flex;flex-direction:column;gap:16px}.hero h1{font-size:1.9rem;margin-top:12px}.hero p{color:var(--muted)}.pitch{padding-left:18px;margin:0;color:var(--muted)}.banner{display:block;background:var(--gold);color:#1a1310;font-weight:700;padding:12px 14px;border-radius:12px;text-decoration:none}.tables{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.table-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.stake{font-size:1.2rem;font-weight:800;color:var(--gold)}.prize{color:var(--green)}.banner-carousel{position:relative}.banner-link{display:block;text-decoration:none;color:inherit}.banner-card{position:relative;width:100%;max-width:640px;margin:0 auto;aspect-ratio:16 / 9;border-radius:var(--radius);overflow:hidden;display:flex;align-items:flex-end;background:radial-gradient(circle at 80% 20%,#e8b92355,transparent 45%),linear-gradient(135deg,#5a1f1b,#2d211b 55%,#1f3a2a);background-size:cover;background-position:center;border:1px solid var(--line);box-shadow:0 8px 24px #0006}.banner-card.with-image{background-color:var(--card)}.banner-card.placeholder{opacity:.4}.banner-text{width:100%;padding:18px 16px 16px;background:linear-gradient(to top,#000c,#0000)}.banner-card:not(.with-image) .banner-text{background:none;padding-bottom:26px}.banner-title{font-size:1.35rem;font-weight:800;line-height:1.2;text-shadow:0 1px 4px #0008}.banner-body{margin-top:4px;color:#f6eee3dd;font-size:.9rem;text-shadow:0 1px 3px #0008}.banner-dots{position:absolute;top:10px;right:12px;display:flex;gap:6px}.banner-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#fff6;cursor:pointer}.banner-dots button.on{background:var(--gold)}.quick-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:64px;font:inherit;font-size:1.2rem;font-weight:800;color:#1a1310;cursor:pointer;background:linear-gradient(135deg,#f2c94c,#e8b923 55%,#d99a12);border:0;border-radius:var(--radius);padding:12px 16px;box-shadow:0 6px 20px #e8b92333}.quick-btn:disabled{opacity:.55;cursor:not-allowed}.quick-btn.searching{justify-content:space-between;animation:pulse 1.6s ease-in-out infinite}.quick-btn.searching:disabled{opacity:1}.quick-players{font-size:1.6rem;min-width:3.2ch;text-align:left}.quick-clock{font-size:1.6rem;font-variant-numeric:tabular-nums}.quick-cancel{font-size:.8rem;font-weight:700;background:#1a131022;border-radius:999px;padding:4px 10px}@keyframes pulse{50%{box-shadow:0 0 0 6px #e8b92333,0 6px 20px #e8b92355}}.quick-wait{text-align:center}.quick-count{font-size:3.2rem;font-weight:800;color:var(--gold);line-height:1.1;margin-top:8px}.quick-timer{font-size:1.1rem}.quick-wait .seats{text-align:center}.seats{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.seats li{border:1px dashed var(--line);border-radius:10px;padding:10px;text-align:center;color:var(--muted)}.seats li.taken{border-style:solid;color:var(--text);background:var(--bg)}.game{display:flex;flex-direction:column;gap:10px}.players{display:grid;grid-template-columns:1fr 1fr;gap:6px}.player{display:flex;align-items:center;gap:6px;background:var(--card);border:2px solid transparent;border-radius:10px;padding:6px 8px;font-size:.85rem;min-width:0}.player.turn{border-color:var(--pc);box-shadow:0 0 12px color-mix(in srgb,var(--pc) 50%,transparent)}.player.out{opacity:.45}.player .dot{width:12px;height:12px;border-radius:50%;background:var(--pc);flex-shrink:0}.player .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player .score{font-weight:800}.player .tag{font-size:.65rem;background:#0005;border-radius:4px;padding:1px 4px}.board{width:100%;max-width:520px;aspect-ratio:1;margin:0 auto;display:block;border-radius:12px;box-shadow:0 8px 30px #0008;touch-action:manipulation}.pawn{transition:transform .13s ease-out}.pawn .hop{animation:hop .14s ease-out;transform-box:fill-box;transform-origin:center}@keyframes hop{50%{transform:translateY(-.18px) scale(1.12)}}.pawn-hit{cursor:pointer}.pawn-hit .halo{fill:none;stroke:#1a1310;stroke-width:.1;stroke-dasharray:.3 .15;animation:halo 1s linear infinite;transform-box:fill-box;transform-origin:center}@keyframes halo{to{transform:rotate(360deg)}}.controls{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:var(--radius);padding:12px;border:1px solid var(--line)}.status{flex:1;min-width:0}.who{font-weight:800;font-size:1.1rem}.last{margin-top:6px;font-size:.8rem;color:var(--gold)}.timer{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin-top:8px}.timer>div{height:100%;background:var(--green);transition:width .25s linear}.timer.low>div{background:var(--red)}.dice{position:relative;width:84px;height:84px;padding:0;border:0;background:none;cursor:default;flex-shrink:0}.dice svg{width:100%;height:100%;display:block}.dice.ready{cursor:pointer;animation:bounce 1.2s ease-in-out infinite}.dice.ready svg{filter:drop-shadow(0 0 8px var(--die-accent))}.dice.spin svg{animation:tumble .36s linear}.dice:disabled{opacity:1}.dice-label{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);background:var(--red);color:#fff;font-size:.7rem;font-weight:800;padding:1px 8px;border-radius:999px}@keyframes bounce{50%{transform:translateY(-4px)}}@keyframes tumble{50%{transform:rotate(180deg) scale(.85)}to{transform:rotate(360deg)}}.result{text-align:center}.abandon summary,.fair summary{cursor:pointer;color:var(--muted);font-size:.85rem;padding:6px 0}.fair{background:var(--card);border-radius:12px;padding:4px 12px}.balance-card{text-align:center}.big-amount{font-size:2.2rem;font-weight:800;color:var(--gold)}.deposit-steps ol{padding-left:20px}.deposit-steps li{margin:8px 0}.ref{font-family:ui-monospace,monospace;font-size:1.3rem;letter-spacing:.1em;background:var(--gold);color:#1a1310;padding:2px 8px;border-radius:6px}.waiting{display:flex;align-items:center;gap:8px;color:var(--gold);margin:12px 0}.kv dt{color:var(--muted);font-size:.8rem;margin-top:8px}.kv dd{margin:2px 0 0}.rolls{width:100%;border-collapse:collapse;font-size:.85rem}.rolls th,.rolls td{padding:4px;text-align:center;border-bottom:1px solid var(--line)}.rolls tr.bad td{color:#ff8a80;font-weight:700}.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px}.stat-value{font-weight:800;font-size:1.05rem}.prose li{margin:6px 0}@media(min-width:720px){.page{max-width:960px}.game{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;column-gap:16px}.game>*{grid-column:2}.game>.board{grid-column:1;grid-row:1 / span 6}.players{grid-template-columns:1fr}}@supports not (aspect-ratio: 1 / 1){.stack>*+*,.login>*+*,.tables>*+*,.game>*+*{margin-top:12px}.row>*,.row-between>*,.chips>*{margin:4px}.controls>*+*,.quick-btn>*+*,.table-card>*+*,.check>*+*,.player>*+*{margin-left:8px}.history-side>*+*{margin-top:2px}.banner-dots>*+*{margin-left:6px}.banner-card{display:block;height:0;padding-top:56.25%}.banner-text{position:absolute;left:0;right:0;bottom:0}.quick-btn.searching{display:flex}.dice{height:84px}}.offert{background:#3fbf7322;border:1px solid #3fbf7355;color:var(--green);border-radius:10px;padding:10px 12px;font-weight:700}.status.scheduled{color:var(--gold)}.status.running{color:var(--green)}.status.finished,.status.cancelled{color:var(--muted)}.tournoi-carte{display:block;text-decoration:none;color:inherit}.tournoi-carte h2{margin:0}.tournoi-carte:active{opacity:.85}.champ{display:block;margin:8px 0}.champ>span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:4px}.champ>input{width:100%}.row>.champ{flex:1}
