:root{--bg-deep:#0b1914;--bg-felt:#123326;--bg-card:#162922;--bg-elevated:#1e382e;--border-subtle:#ffffff1f;--text-primary:#f4f7f5;--text-muted:#9eb3aa;--accent-gold:#f5b942;--accent-gold-hover:#f7c765;--accent-green:#2dd48f;--danger-bg:#ef44442e;--danger-border:#ef4444;--danger-text:#fecaca;--suit-red:#dc2626;--suit-black:#111827;color:var(--text-primary);background-color:var(--bg-deep);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{-webkit-tap-highlight-color:transparent;width:100%;min-height:100dvh;margin:0;padding:0}.mobile-screen{flex-direction:column;gap:16px;max-width:520px;min-height:100dvh;margin:0 auto;padding:16px;display:flex}.top-bar{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:8px;padding-bottom:8px;display:flex}.panel-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;flex-direction:column;gap:12px;padding:18px;display:flex;box-shadow:0 8px 24px #00000047}.btn{appearance:none;cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:1rem;font-weight:600;transition:transform 80ms,opacity .15s,background .15s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent-gold);color:#141a17}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-subtle)}.btn-ghost{color:var(--text-muted);border-color:var(--border-subtle);background:0 0;padding:8px 12px;font-size:.875rem}.text-input{border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);background:#0e1e18;border-radius:12px;padding:12px 14px;font-size:1rem}.error-banner{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-text);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.9rem;display:flex}.muted-text{color:var(--text-muted);margin:0;font-size:.875rem}.game-shell{flex-direction:column;gap:8px;max-width:520px;min-height:100dvh;margin:0 auto;padding:10px 12px 14px;display:flex}.score-hud{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.85rem;display:flex}.score-teams{align-items:center;gap:10px;font-weight:700;display:flex}.score-pill{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;padding:4px 8px;font-size:.78rem}.modal-backdrop{z-index:40;background:#000000b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;flex-direction:column;gap:12px;width:100%;max-width:480px;max-height:82dvh;padding:16px;display:flex;overflow-y:auto}.rounds-table{border-collapse:collapse;width:100%;font-size:.82rem}.rounds-table th,.rounds-table td{text-align:center;border-bottom:1px solid var(--border-subtle);padding:6px 4px}.cardinal-felt{background:radial-gradient(circle at center, #184533 0%, var(--bg-felt) 72%);border:1px solid #ffffff29;border-radius:20px;flex:1;grid-template:".north.""west center east"1fr".south."/auto 1fr auto;place-items:center;gap:6px;min-height:270px;padding:10px;display:grid;position:relative}.seat-badge{border:1px solid var(--border-subtle);text-align:center;background:#0b1914d1;border-radius:12px;min-width:78px;padding:5px 9px;font-size:.78rem}.seat-badge.active-turn{border-color:var(--accent-gold);box-shadow:0 0 0 2px #f5b94259}.trick-compass{grid-area:center;grid-template-rows:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;place-items:center;width:154px;height:136px;display:grid}.playing-card{-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #cbd5e1;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-width:46px;height:66px;padding:4px;font-size:.95rem;font-weight:800;display:flex;box-shadow:0 3px 8px #00000052}.playing-card.red{color:var(--suit-red)}.playing-card.black{color:var(--suit-black)}.playing-card.selected{outline:3px solid var(--accent-gold);transform:translateY(-6px)}.hand-cards-row{flex-wrap:nowrap;justify-content:center;gap:6px;padding:8px 2px 2px;display:flex;overflow-x:auto}
