:root{--bg:#0c1a14;--bg-2:#12261d;--felt:#1b5e3b;--felt-edge:#0f3d26;--gold:#e0b84a;--gold-dim:#a8842e;--cream:#f3ead2;--danger:#c62828;--ok:#2e7d32;--amber:#f9a825;--muted:#9bb0a4;--card:#1a2e24;--line:rgba(224,184,74,0.25);--font:"Segoe UI","Trebuchet MS",system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;font-family:var(--font);background:radial-gradient(ellipse at top,#163528 0,var(--bg) 55%),var(--bg);color:var(--cream)}a{color:var(--gold);text-decoration:none}button,input,select,textarea{font:inherit}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:12px;padding:.85rem 1.1rem;font-weight:700;letter-spacing:.02em;cursor:pointer;min-height:48px;transition:transform .12s ease,filter .12s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,#f0c85c,var(--gold-dim));color:#1a1204}.btn-danger{background:linear-gradient(180deg,#e53935,var(--danger));color:white}.btn-ok{background:linear-gradient(180deg,#43a047,var(--ok));color:white}.btn-amber{background:linear-gradient(180deg,#ffca28,var(--amber));color:#1a1204}.btn-ghost{background:transparent;color:var(--cream)}.btn-ghost,.card{border:1px solid var(--line)}.card{background:rgba(18,38,29,.92);border-radius:16px;padding:1.25rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}.field label{font-size:.85rem;color:var(--muted)}.field input,.field select,.field textarea{background:#0d1b14;border:1px solid var(--line);border-radius:10px;padding:.75rem .9rem;color:var(--cream);min-height:48px}.stack{flex-direction:column}.row,.stack{display:flex;gap:.75rem}.row{flex-wrap:wrap;align-items:center}.muted{color:var(--muted)}.badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;background:rgba(224,184,74,.15);color:var(--gold)}.badge-danger{background:rgba(198,40,40,.2);color:#ff8a80}.badge-ok{background:rgba(46,125,50,.25);color:#a5d6a7}.table-wrap{width:100%;overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data td,table.data th{text-align:left;padding:.65rem .5rem;border-bottom:1px solid var(--line)}.shell{max-width:1100px;margin:0 auto;padding:1rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.brand{font-size:1.35rem;font-weight:800;color:var(--gold);letter-spacing:.04em}.nav{display:flex;gap:.75rem;flex-wrap:wrap}.nav a{color:var(--cream);opacity:.85;padding:.4rem .2rem}.nav a:hover{color:var(--gold)}.grid-games{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:.85rem;gap:.85rem}.game-tile{border:1px solid var(--line);border-radius:16px;padding:1.1rem;background:linear-gradient(160deg,#1a3328,#102019);min-height:120px}.game-tile h3{margin:0 0 .35rem}.game-tile.disabled{opacity:.55}.tp-screen{min-height:100dvh;flex-direction:column;padding:.5rem}.tp-header,.tp-screen{display:flex;gap:.5rem}.tp-header{justify-content:space-between;align-items:center;flex-wrap:wrap}.tp-arena{flex:1 1;position:relative;min-height:320px;border-radius:24px;background:radial-gradient(ellipse at center,#247a4a 0,var(--felt) 45%,var(--felt-edge) 100%);border:3px solid var(--gold-dim);box-shadow:inset 0 0 40px rgba(0,0,0,.35);overflow:hidden}.tp-pot{left:50%;top:42%;background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:999px;padding:.55rem 1.1rem;font-weight:800;color:var(--gold)}.tp-pot,.tp-seat{position:absolute;transform:translate(-50%,-50%);text-align:center}.tp-seat{width:92px}.tp-avatar{width:52px;height:52px;margin:0 auto;border-radius:50%;background:#243d32;border:2px solid var(--gold-dim);display:grid;place-items:center;font-weight:800;position:relative}.tp-avatar.active{box-shadow:0 0 0 3px var(--gold);animation:pulse 1s ease infinite}@keyframes pulse{50%{box-shadow:0 0 0 5px rgba(224,184,74,.35)}}.tp-seat-meta{font-size:.7rem;margin-top:.25rem}.tp-cards{display:flex;gap:.35rem;justify-content:center;margin:.35rem 0}.playing-card{width:42px;height:60px;border-radius:6px;background:#f7f1e3;color:#1a1a1a;display:grid;place-items:center;font-weight:800;font-size:.75rem;border:1px solid #ccc}.playing-card.back{background:repeating-linear-gradient(45deg,#6b1d1d,#6b1d1d 4px,#8b2a2a 0,#8b2a2a 8px);color:transparent}.playing-card.red{color:#c62828}.tp-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));grid-gap:.5rem;gap:.5rem;padding:.5rem 0 .75rem}.tp-self{text-align:center}.tp-timer{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--amber);font-weight:700}.tp-timer.warn{color:#ff5252;animation:pulse .6s ease infinite}.tp-avatar.away{opacity:.45;filter:grayscale(.6)}.dealer-chip{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:var(--gold);color:#1a1204;font-size:.65rem;display:grid;place-items:center;font-weight:800}.vs-box{min-width:min(520px,92vw)}.vs-row{display:flex;gap:.75rem;align-items:stretch;justify-content:center;flex-wrap:wrap}.vs-row,.vs-side{position:relative}.vs-side{flex:1 1;min-width:140px;padding:.75rem;border-radius:12px;background:rgba(255,255,255,.04)}.vs-side.won{border:1px solid var(--gold);background:linear-gradient(160deg,rgba(224,184,74,.2),transparent)}.vs-side.lost{border:1px solid rgba(255,255,255,.12);opacity:.85}.vs-badge{position:absolute;right:-28px;top:40%;background:var(--gold);color:#1a1204;font-weight:900;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;z-index:2}.float-react{position:absolute;transform:translate(-50%,-120%);font-size:1.8rem;animation:floatUp 2s ease forwards;pointer-events:none;z-index:6}@keyframes floatUp{0%{opacity:1;transform:translate(-50%,-80%) scale(.8)}to{opacity:0;transform:translate(-50%,-180%) scale(1.3)}}.your-turn-banner{text-align:center;font-weight:800;letter-spacing:.04em;padding:.55rem .75rem;border-radius:12px;background:linear-gradient(90deg,rgba(224,184,74,.25),rgba(46,125,50,.35));border:1px solid var(--gold);color:var(--gold);animation:pulse 1.2s ease infinite}.ranks-help{padding:.65rem 1rem}.ranks-help summary{cursor:pointer;font-weight:700;color:var(--gold)}.tp-cards .playing-card{animation:dealIn .35s ease both}.tp-cards .playing-card:nth-child(2){animation-delay:.06s}.tp-cards .playing-card:nth-child(3){animation-delay:.12s}@keyframes dealIn{0%{opacity:0;transform:translateY(-12px) scale(.92)}to{opacity:1;transform:none}}.tp-actions .btn{box-shadow:0 4px 14px rgba(0,0,0,.25)}.showdown{position:absolute;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:5}.showdown-box{background:#1a1204;border:2px solid var(--gold);border-radius:16px;padding:1rem 1.25rem;text-align:center;max-width:90%}@media (min-width:768px){.playing-card{width:54px;height:76px;font-size:.9rem}.tp-seat{width:110px}.tp-arena{min-height:480px}}