/** Presina interface layout. Component skins remain in style/dashboard/auth.css. */
:root { --ui-canvas:#f7f8f4; --ui-surface:#fff; --ui-line:#dde3da; --ui-ink:#202c24; --ui-muted:#59685e; --ui-green:#39764a; --ui-radius:12px; }
[hidden] { display:none !important; }
button,input,select { font:inherit; }
button:focus-visible,summary:focus-visible,[role="button"]:focus-visible,a:focus-visible { outline:3px solid #7dac75; outline-offset:3px; }
button:disabled { cursor:not-allowed; }
.dash-page,.dash-page-body,#lobby-screen { background:var(--ui-canvas); }
.dash-navbar { min-height:64px; padding:8px max(24px,calc((100vw - 1392px)/2)); gap:16px; flex-wrap:nowrap; background:var(--ui-surface); box-shadow:none; border-bottom:1px solid var(--ui-line); }
.dash-nav-brand { gap:10px; }
.dash-nav-logo { width:36px; height:36px; }
.dash-nav-title { font-size:22px; line-height:1.2; }
.dash-nav-subtitle { font-size:10px; letter-spacing:.04em; }
.dash-nav-brand { flex:0 1 auto; width:auto; }
.dash-nav-actions { margin-left:auto; gap:8px; width:auto; flex:0 0 auto; order:0; justify-content:flex-end; }
.dash-nav-icon-btn,.dash-nav-user { min-height:44px; min-width:44px; border-radius:8px; box-shadow:none; }
.dash-nav-icon-btn { background:transparent; }
/* Home dashboard. Home tokens do not change access, waiting room or game skins. */
#lobby-screen.screen { --home-canvas:#faf9f5; --home-surface:#fff; --home-line:#e3e6df; --home-ink:#1f2c25; --home-muted:#5d6b62; --home-green:#246e47; --home-gold:#b7791f; --home-gold-ink:#8c5b15; --home-gold-soft:#fbefd7; background:var(--home-canvas); }
#lobby-screen > :is(.dash-body,.dash-navbar,.dash-legal-footer) :is(button,a,input,[role="button"]):focus-visible { outline:3px solid var(--home-green); outline-offset:3px; }
#lobby-screen > .dash-navbar { min-height:72px; background:var(--home-surface); border-color:var(--home-line); }
#lobby-screen .dash-nav-logo { width:44px; height:44px; object-fit:contain; }
#lobby-screen .dash-nav-title { font-size:26px; font-weight:700; color:var(--home-green); }
#lobby-screen .dash-nav-subtitle { color:var(--home-muted); letter-spacing:.08em; font-size:10px; }
#lobby-screen .dash-nav-icon-btn { border-radius:50%; border:1px solid var(--home-line); color:var(--home-muted); }
#lobby-screen .dash-nav-icon-btn:hover { background:#edf4ee; color:var(--home-green); }
#lobby-screen .dash-nav-user { border-radius:999px; background:white; border:1px solid var(--home-line); padding:4px 8px 4px 16px; }
#lobby-screen .dash-nav-user-name { color:var(--home-ink); font-size:14px; max-width:200px; overflow:hidden; text-overflow:ellipsis; }
#lobby-screen .dash-nav-user-level { color:var(--home-green); font-size:12px; }
#lobby-screen .dash-nav-avatar { background:var(--home-green); width:40px; height:40px; box-shadow:none; }
#lobby-screen .dash-body { display:grid; grid-template-columns:300px minmax(0,1fr); max-width:1440px; margin:0 auto; padding:24px; gap:32px; color:var(--home-ink); }
#lobby-screen .dash-main { min-width:0; width:auto; order:1; display:block; }
#lobby-screen .dash-sidebar { min-width:0; order:0; padding:8px 24px 0 0; display:flex; flex-direction:column; gap:24px; border:0; border-right:1px solid var(--home-line); background:none; }
#lobby-screen .dash-sidebar::after,#lobby-screen .dash-stats-card::after,#lobby-screen .dash-friends-card::after { display:none; }
#lobby-screen .dash-main-header { position:relative; min-height:112px; display:flex; flex-direction:row; align-items:center; justify-content:space-between; margin-bottom:16px; gap:12px; padding-right:176px; text-align:left; }
#lobby-screen .dash-main-title { font-size:32px; line-height:1.25; max-width:none; font-weight:700; letter-spacing:-.02em; color:var(--home-ink); }
#lobby-screen .dash-main-subtitle { font-size:14px; margin-top:8px; color:var(--home-muted); }
#lobby-screen .home-card-decoration { position:absolute; right:0; top:0; width:160px; height:112px; overflow:hidden; pointer-events:none; }
#lobby-screen .home-card-decoration img { position:absolute; width:62px; height:99px; object-fit:cover; border:1px solid #ddd8c8; border-radius:6px; opacity:.8; box-shadow:0 3px 8px #203c2410; }
#lobby-screen .home-card-decoration img:first-child { right:66px; top:8px; transform:rotate(-16deg); }
#lobby-screen .home-card-decoration img:last-child { right:24px; top:12px; transform:rotate(14deg); }
#btn-home-summary { display:none; }
#lobby-screen #btn-home-summary { min-height:44px; padding:10px 16px; border:1px solid var(--home-line); border-radius:999px; background:white; color:var(--home-green); font-size:13px; box-shadow:none; }
#lobby-screen .room-mode-tabs { display:flex; gap:28px; border-bottom:1px solid var(--home-line); margin-bottom:20px; }
#lobby-screen .room-mode-tabs button { display:flex; align-items:center; gap:8px; min-height:48px; padding:10px 4px; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--home-muted); font-weight:600; font-size:15px; cursor:pointer; }
#lobby-screen .room-mode-tabs .ui-icon { width:20px; height:20px; }
#lobby-screen .room-mode-tabs button:hover { color:var(--home-green); }
#lobby-screen .room-mode-tabs button[aria-selected="true"] { color:var(--home-green); border-bottom-color:var(--home-green); }
#lobby-screen #rooms-tab-ranked[aria-selected="true"] { color:var(--home-gold-ink); border-bottom-color:var(--home-gold); }
#lobby-screen .dash-room-sections { display:block; }
#lobby-screen .dash-room-section { display:block; border:0; padding:0; background:transparent; box-shadow:none; border-radius:0; }
#lobby-screen .room-toolbar { display:flex; gap:12px; margin-bottom:12px; align-items:center; }
#lobby-screen .room-toolbar .dash-inline-search { flex:1; max-width:none; min-width:0; position:relative; }
#lobby-screen .room-search-icon { position:absolute; left:14px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--home-muted); pointer-events:none; }
#lobby-screen .room-toolbar input { height:48px; width:100%; padding:12px 16px 12px 42px; border:1px solid var(--home-line); border-radius:999px; background:var(--home-surface); font-size:14px; color:var(--home-ink); box-shadow:none; }
#lobby-screen .room-toolbar input::placeholder { color:var(--home-muted); opacity:1; }
#lobby-screen .room-toolbar input:focus-visible { outline:3px solid var(--home-green); outline-offset:2px; }
#lobby-screen .room-toolbar .dash-btn-create { width:auto; min-height:48px; padding:12px 20px; border-radius:999px; flex-shrink:0; background:var(--home-green); color:#fff; border:1px solid var(--home-green); box-shadow:none; font-size:14px; font-weight:600; gap:8px; }
#lobby-screen .room-toolbar .dash-btn-create:hover { background:#1d5b3a; }
#lobby-screen .room-toolbar .dash-btn-create-ranked { color:var(--home-gold-ink); background:var(--home-gold-soft); border-color:#efd6a6; }
#lobby-screen .room-toolbar .dash-btn-create-ranked:hover { background:#f7e2ba; }
#lobby-screen .dash-room-section-header { margin:0 0 20px; padding:0; }
#lobby-screen .dash-room-section-header h3 { display:none; }
#lobby-screen .dash-room-section-header p { margin:0; font-size:13px; color:var(--home-muted); }
#lobby-screen .dash-rooms-grid { display:flex; flex-direction:column; gap:12px; }
#lobby-screen .dash-room-card { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:12px 20px; padding:16px; border:1px solid var(--home-line); border-radius:12px; background:var(--home-surface); box-shadow:0 1px 2px #203c2405; min-height:88px; }
#lobby-screen .dash-room-card::before,#lobby-screen .dash-room-card::after { display:none; }
#lobby-screen .dash-room-card:hover { border-color:#a9c6b3; transform:none; box-shadow:0 1px 2px #203c2405; }
#lobby-screen .dash-room-card-header { display:block; margin:0; padding:0; min-width:0; }
#lobby-screen .dash-room-name-line { display:flex; flex-direction:row; }
#lobby-screen .dash-room-name { display:flex; flex-wrap:nowrap; min-width:0; font-size:15px; align-items:center; gap:8px; color:var(--home-ink); }
#lobby-screen .dash-room-name-text { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#lobby-screen .dash-room-code { font-size:11px; color:var(--home-muted); flex-shrink:0; }
#lobby-screen .dash-room-meta { margin:6px 0 0; gap:6px; flex-wrap:wrap; }
#lobby-screen .dash-room-pill { padding:3px 6px; border-radius:4px; font-size:11px; min-height:0; background:#f0f4ef; border:0; color:var(--home-muted); }
#lobby-screen .dash-room-card-ranked .dash-room-pill:not(.dash-room-pill-public):not(.dash-room-pill-timer) { background:var(--home-gold-soft); color:#8c5b15; }
#lobby-screen .dash-room-pill-game,#lobby-screen .dash-room-pill-ranked,#lobby-screen .dash-room-live-badge,#lobby-screen .dash-room-waiting-badge { display:none; }
#lobby-screen .dash-room-stats { display:flex; align-items:center; gap:20px; margin:0; padding:0; background:none; border:0; }
#lobby-screen .dash-room-stat-label { font-size:11px; color:var(--home-muted); }
#lobby-screen .dash-room-stat { min-width:0; width:auto; text-align:right; }
#lobby-screen .dash-room-stat-value { white-space:nowrap; font-size:14px; color:var(--home-ink); font-variant-numeric:tabular-nums; }
#lobby-screen .dash-room-stat-value .current { color:var(--home-ink); }
#lobby-screen .dash-room-stat-value .max { color:var(--home-muted); }
#lobby-screen .dash-room-stat-value.highlight { color:var(--home-green); }
#lobby-screen .dash-room-join-btn { margin:0; min-width:88px; min-height:44px; width:auto; border-radius:999px; padding:10px 14px; background:var(--home-green); color:white; box-shadow:none; border:1px solid transparent; }
#lobby-screen .dash-room-join-btn:hover { background:#1d5b3a; transform:none; }
#lobby-screen .dash-room-join-btn:disabled { color:#69736d; background:#eef0ec; border-color:var(--home-line); opacity:1; }
#lobby-screen .dash-room-join-note { grid-column:1/-1; grid-row:2; margin:0; font-size:12px; color:var(--home-muted); }
#lobby-screen .dash-rooms-empty { min-height:240px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:32px 20px; border:1px solid var(--home-line); border-radius:12px; background:var(--home-surface); font-size:14px; text-align:center; }
#lobby-screen .dash-empty-illustration { display:flex; align-items:center; justify-content:center; width:72px; height:72px; border-radius:50%; background:#edf4ee; color:var(--home-green); margin-bottom:8px; }
#lobby-screen .dash-empty-illustration .ui-icon { width:40px; height:40px; }
#lobby-screen .dash-room-section-ranked .dash-empty-illustration { color:var(--home-gold); background:var(--home-gold-soft); }
#lobby-screen .dash-rooms-empty p { margin:0; color:var(--home-muted); }
#lobby-screen .dash-rooms-empty p:first-of-type { color:var(--home-ink); font-size:17px; font-weight:600; }
#lobby-screen .dash-stats-card,#lobby-screen .dash-friends-card { border:0; border-bottom:1px solid var(--home-line); border-radius:0; background:none; box-shadow:none; padding:0 0 24px; }
#lobby-screen .dash-sidebar > :last-child { border-bottom:0; }
#lobby-screen .dash-stats-title,#lobby-screen .dash-friends-title { display:flex; align-items:center; gap:8px; font-size:17px; color:var(--home-ink); font-weight:600; margin:0 0 16px; }
#lobby-screen .dash-stats-title-icon,#lobby-screen .dash-friends-title .ui-icon { color:var(--home-green); }
#lobby-screen .dash-stats-title .ui-icon,#lobby-screen .dash-friends-title .ui-icon { width:20px; height:20px; }
#lobby-screen #dash-ranked-registered .dash-stats-title-icon { color:var(--home-gold); }
#lobby-screen .dash-stats-grid { gap:8px; }
#lobby-screen .dash-stat-item { padding:0; background:none; box-shadow:none; border:0; }
#lobby-screen .dash-stat-icon { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; background:#e8f1e9; color:var(--home-green); margin:0 auto 8px; }
#lobby-screen .dash-stat-icon.bolt { background:var(--home-gold-soft); color:var(--home-gold); }
#lobby-screen .dash-stat-value { font-size:24px; line-height:1.3; color:var(--home-ink); font-variant-numeric:tabular-nums; }
#lobby-screen .dash-stat-label { font-size:11px; color:var(--home-muted); white-space:normal; }
#lobby-screen .dash-stat-change { font-size:11px; }
#lobby-screen .dash-stat-change:empty { display:none; }
#lobby-screen .dash-ranked-summary { gap:0; }
#lobby-screen .dash-ranked-summary .lb-item { background:none; border:0; border-radius:0; padding:10px 0; gap:12px; }
#lobby-screen .dash-ranked-summary .lb-info { min-width:0; }
#lobby-screen .dash-ranked-summary .lb-name { font-size:13px; color:var(--home-ink); }
#lobby-screen .dash-ranked-summary .lb-stats { font-size:11px; line-height:1.4; color:var(--home-muted); margin-top:4px; }
#lobby-screen .dash-ranked-summary .lb-value { color:var(--home-gold-ink); font-size:20px; font-variant-numeric:tabular-nums; white-space:nowrap; }
#lobby-screen .dash-friends-header { gap:8px; margin-bottom:12px; align-items:flex-start; }
#lobby-screen .dash-friends-title { margin-bottom:4px; }
#lobby-screen .dash-friends-count { color:var(--home-green); font-size:12px; }
#lobby-screen .dash-friends-add-btn { min-height:44px; border-radius:999px; border:1px solid var(--home-line); background:white; color:var(--home-green); padding:8px 12px; font-size:12px; white-space:nowrap; }
#lobby-screen .dash-friends-search input { min-height:44px; font-size:16px; }
#lobby-screen .dash-friend-req-btn { min-height:44px; min-width:44px; }
#lobby-screen .dash-friends-list { max-height:320px; gap:4px; flex:none; }
#lobby-screen .dash-friend-item { padding:8px 0; gap:10px; border:0; box-shadow:none; background:none; cursor:default; }
#lobby-screen .dash-friend-item:hover { background:#eff4ee; }
#lobby-screen .dash-friend-avatar { width:36px; height:36px; background:var(--home-green); color:#fff; font-size:13px; box-shadow:none; }
#lobby-screen .dash-friend-name { color:var(--home-ink); font-size:14px; }
#lobby-screen .dash-friend-status .status-text { color:var(--home-muted); font-size:12px; }
#lobby-screen .dash-friend-remove { min-width:44px; min-height:44px; opacity:1; color:var(--home-muted); }
#lobby-screen .dash-friend-remove:hover { color:#a03631; background:#f8e8e5; }
#lobby-screen .dash-friends-expand { min-height:44px; color:var(--home-green); border:0; background:none; box-shadow:none; }
#lobby-screen .dash-friends-empty,#lobby-screen .empty-message { color:var(--home-muted); font-size:13px; padding:12px 0; margin:0; text-align:left; min-height:0; }
#lobby-screen .dash-guest-prompt { text-align:left; }
#lobby-screen .dash-guest-prompt-icon { width:48px; height:48px; color:var(--home-green); background:#e8f1e9; border-radius:50%; margin:0 0 16px; box-shadow:none; }
#lobby-screen .dash-guest-prompt strong { font-size:17px; font-weight:600; }
#lobby-screen .dash-guest-prompt p { margin:8px 0 16px; font-size:14px; color:var(--home-muted); }
#lobby-screen .dash-guest-prompt .btn { min-height:44px; background:var(--home-green); color:white; border-radius:999px; box-shadow:none; font-size:14px; }
.legacy-guest-prompt { display:none !important; }
#lobby-screen .dash-rejoin-banner { padding:12px 16px; border-radius:12px; margin-bottom:16px; box-shadow:none; border:1px solid #c2d8c8; background:#eaf3eb; color:var(--home-ink); gap:12px; }
#lobby-screen .dash-rejoin-banner > span { min-width:0; overflow-wrap:anywhere; }
#lobby-screen .dash-rejoin-actions { flex-shrink:0; }
#lobby-screen .dash-rejoin-actions .btn { min-height:44px; width:auto; border-radius:999px; font-size:13px; }
#lobby-screen #btn-rejoin { background:var(--home-green); color:white; }
#lobby-screen .dash-rejoin-actions #btn-abandon { background:transparent; border-color:transparent; color:#a03631; }
.home-mobile-nav,.sidebar-close { display:none; }
#lobby-screen .dash-legal-footer { padding:16px 24px; font-size:12px; color:var(--home-muted); border-color:var(--home-line); }
#lobby-screen .dash-legal-footer a,#lobby-screen .dash-legal-footer button { min-height:44px; display:inline-flex; align-items:center; color:var(--home-muted); }
/* Shared waiting-room metadata retains its existing skin. */
.waiting-room-layout .dash-room-meta { margin:6px 0 0; gap:6px; }
.waiting-room-layout .dash-room-pill { padding:2px 6px; border-radius:4px; font-size:11px; min-height:0; background:#f0f3ee; border:0; color:var(--ui-muted); }
.waiting-room-layout .dash-room-pill-game,.waiting-room-layout .dash-room-pill-ranked { display:none; }
/* Entry surface and focused forms */
.auth-modal-overlay { background:var(--ui-canvas); backdrop-filter:none; padding:24px; overflow-y:auto; align-items:center; }
.auth-modal-content { width:100%; max-width:420px; padding:28px; border:1px solid var(--ui-line); border-radius:16px; box-shadow:0 8px 28px #203c2410; background:white; max-height:none; overflow:visible; }
.auth-modal-header { margin-bottom:20px; }
.auth-modal-logo { width:44px; height:44px; margin:0 auto 8px; }
.auth-modal-title { font-size:26px; }
.auth-modal-subtitle { font-size:11px; margin-top:4px; }
.auth-modal-close { width:44px; height:44px; top:12px; right:12px; }
.auth-tabs { margin-bottom:20px; border-radius:8px; background:#f2f5ef; padding:4px; box-shadow:none; gap:4px; }
.auth-modal-content .auth-tab { padding:10px 4px; min-height:44px; border-radius:6px; font-size:13px; }
.auth-tab.active { background:#e3eddf; color:#356940; box-shadow:none; }
.auth-form input,.auth-form input[type="password"],.modal-content input,.modal-content select { min-height:44px; border-radius:8px; font-size:16px; }
.auth-modal-content .auth-form .btn { min-height:44px; border-radius:8px; background:var(--ui-green); color:#fff; border:1px solid var(--ui-green); box-shadow:none; }
.auth-modal-footer-note { margin-top:16px; padding-top:16px; font-size:11px; }
.modal-content { border-radius:12px; width:100%; max-width:440px; }
.modal-content .button-group { margin-top:20px; }
.modal-content .checkbox-label { display:flex; align-items:center; gap:12px; min-height:44px; }
.modal-content .checkbox-label input { flex:0 0 20px; width:20px; min-height:20px; height:20px; }
/* Waiting room: players first, information and chat secondary. */
.waiting-room-layout { max-width:1392px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr) 320px; grid-template-areas:"players info" "controls chat"; gap:16px 24px; align-items:start; }
.waiting-players-card { grid-area:players; }
.waiting-controls-card { grid-area:controls; }
.waiting-info-card { grid-area:info; }
.waiting-chat-card { grid-area:chat; }
.waiting-room-layout .dash-card { border-radius:12px; padding:20px; box-shadow:none; border:1px solid var(--ui-line); background:var(--ui-surface); }
.waiting-room-layout h3 { font-size:16px; margin-bottom:12px; }
.waiting-player-count { margin-left:auto; color:var(--ui-muted); font-size:13px; }
#waiting-open-seats { margin-bottom:12px; }
.waiting-room-layout .players-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px; }
.waiting-room-layout .player-card { padding:16px; border-radius:8px; background:#f7f9f5; border:1px solid var(--ui-line); }
.waiting-room-layout .player-card.admin .player-name::after { content:"Organizzatore"; display:block; color:var(--ui-green); font-size:11px; font-weight:500; }
.waiting-start-row { flex-direction:row; justify-content:space-between; align-items:center; gap:16px; }
.waiting-start-row .btn { min-height:44px; font-size:14px; border-radius:8px; width:auto; }
.waiting-code-panel { background:none; border:0; padding:0; margin-top:8px; }
.waiting-info-card h3:not(:first-child) { margin-top:20px; }
#waiting-room-info { color:var(--ui-muted); font-size:14px; }
#btn-waiting-chat { display:none; }
#waiting-chat-messages { height:180px; min-height:0; max-height:180px; flex:none; }
.waiting-chat-card { min-height:0; }
.waiting-room-layout .player-card.admin::before { display:none; }
.waiting-room-layout .player-card .player-name { font-size:15px; overflow-wrap:anywhere; }
.waiting-room-layout .player-card:has(.kick-btn) { padding-right:48px; }
.waiting-room-layout .kick-btn { width:44px; height:44px; }

/* Game: a single action rail shared by both viewport renderers. */
#game-screen { padding:0; }
.game-container { --primary:#6e9e58; --primary-dark:#48763c; --accent:#8ebf70; background:#102b21; color:#f2f6ee; --text-primary:#f2f6ee; --text-secondary:#c4d1c5; --text-muted:#abbcaf; --bg-card:#17392c; --bg-dark:#102b21; --border-color:#365342; }
.game-container[data-player-role="spectator"] .hand-panel,.game-container[data-player-role="spectator"] .mobile-hand-container,.game-container[data-player-role="spectator"] .mobile-player-bar { display:none !important; }
.game-header { display:flex; align-items:center; justify-content:space-between; padding:8px max(16px,var(--app-safe-left)); gap:12px; min-height:60px; flex-shrink:0; background:#153326; }
.game-header-main { min-width:0; flex:1; display:flex; align-items:center; gap:12px; }
.turn-info { flex:0 1 auto; font-size:13px; gap:8px; }
.phase-indicator { display:block; padding:4px 8px; font-size:12px; }
.game-header-actions { display:flex; gap:4px; align-items:center; flex-shrink:0; }
.game-header-actions .mobile-tab-btn { display:flex; flex-direction:row; gap:6px; width:auto; min-width:44px; min-height:44px; border:0; background:transparent; color:#dce7da; padding:8px; font-size:12px; }
.game-header-actions .mobile-tab-btn .icon { font-size:16px; }
.game-room-menu { position:relative; }
.game-room-menu summary { list-style:none; cursor:pointer; padding:10px; min-height:44px; min-width:44px; }
.game-room-menu summary::-webkit-details-marker { display:none; }
.game-menu-content { position:absolute; right:0; top:48px; width:280px; padding:16px; border:1px solid #45604b; border-radius:8px; background:#17392c; z-index:65; box-shadow:0 8px 24px #0004; }
#suit-rank-info { white-space:normal; font-size:12px; color:#d7e1d4; }
.game-menu-content .game-footer { padding:12px 0 0; display:block; border:0; background:none; }
.game-menu-content .footer-text { display:none; }
.game-main { order:0; flex:1 1 0; min-height:0; overflow:hidden; }
.table-area { min-height:0; padding:20px 36px; --table-width:min(720px,calc(100vw - 130px),calc((100dvh - 310px)*1.35)); --table-height:calc(var(--table-width)*.68); }
.table-center { height:var(--table-height); border:1px solid #537857; box-shadow:0 0 0 5px #274e35; background:#1c4630; }
.table-positions { height:var(--table-height); }
.table-position .player-name { background:#17392c; border-color:#42634a; color:#ecf2e6; }
.game-action-dock { order:1; flex-shrink:0; width:100%; padding:10px 24px; background:#17392c; border-top:1px solid #365342; display:flex; flex-direction:column; gap:8px; }
.game-action-copy { display:flex; width:min(100%,960px); margin:0 auto; align-items:center; justify-content:space-between; gap:16px; min-height:44px; }
#turn-action-banner { display:flex !important; border:0; background:none; padding:0; margin:0; min-height:0; flex:1; box-shadow:none; }
#turn-action-banner.hidden { display:none !important; }
.turn-action-kicker,.turn-timer-copy,.turn-timer-unit + .turn-timer-note { display:none; }
.turn-action-copy { min-width:0; flex:1; }
.turn-action-title { font-size:14px; color:#f4f7ef; }
.turn-action-detail { font-size:12px; color:#c1d1bc; }
#turn-timer-rail { width:auto; flex:0 0 auto; padding:6px 10px; border-radius:8px; background:#244a32; border:1px solid #4b6a45; min-width:60px; grid-column:auto; grid-row:auto; flex-shrink:0; }
.turn-timer-seconds { font-size:22px; font-variant-numeric:tabular-nums; }
#turn-timer-rail.is-warning { color:#f4d285; border-color:#ba923e; }
#turn-timer-rail.is-danger { color:#ffc2b8; border-color:#ce6759; }
.game-action-dock .betting-area { margin:0 auto; padding:0; border:0; background:none; max-width:960px; width:100%; }
.betting-area h4 { display:none; }
.bet-buttons { display:flex; gap:8px; justify-content:center; }
.bet-buttons .bet-btn { min-height:44px; min-width:44px; padding:8px 12px; border-radius:8px; }
.forbidden-note,.mobile-bet-forbidden-note { font-size:12px; margin:6px 0 0; text-align:center; color:#f4d285; }
#card-confirm,#mobile-card-confirm,#jolly-choice,#mobile-jolly-choice { position:static; inset:auto; transform:none; height:auto; max-height:none; width:min(100%,960px); margin:0 auto; padding:0; border:0; box-shadow:none; background:none; animation:none; border-radius:0; min-height:0; }
#card-confirm,#mobile-card-confirm { display:flex; align-items:center; justify-content:center; gap:16px; }
#card-confirm p,#mobile-card-confirm p { margin:0; font-size:12px; color:#d9e5d3; }
#card-confirm .button-group,.mobile-card-confirm-actions { display:flex; gap:8px; margin:0; }
.game-action-dock .btn-primary { background:#56864b; color:#fff; box-shadow:none; }
.game-action-dock .btn-primary:hover { background:#659953; }
.game-action-dock button { min-height:44px; border-radius:8px; font-size:14px; }
#mobile-card-confirm-img,.jolly-logo,.jolly-subtitle,.jolly-instruction,.mobile-jolly-title,.mobile-jolly-subtitle { display:none; }
.jolly-buttons,.mobile-jolly-buttons { display:flex; flex-direction:row; max-width:none; width:100%; gap:8px; justify-content:center; }
.jolly-buttons .btn,.mobile-jolly-btn { min-width:140px; min-height:44px; border-radius:8px; font-size:14px; padding:8px 16px; }
.mobile-jolly-btn.prende { background:#56864b; color:#fff; }
.mobile-jolly-btn.lascia { background:#254832; color:#f2f5ed; border:1px solid #64825d; }
#mobile-card-confirm,#mobile-jolly-choice,#mobile-betting-inline { display:none; }
#card-confirm-overlay,#table-bets-overlay,#bets-summary,.mobile-tab-bar,#mobile-turn-action,.turn-timer[data-turn-timer-player-id],.mobile-sheet-timer,#jolly-timer,#mobile-jolly-timer,#game-chat { display:none !important; }
.hand-panel { order:3; flex:0 0 auto; padding:6px 24px calc(16px + var(--app-safe-bottom)); display:flex; justify-content:center; align-items:center; gap:8px; border:0; background:#102b21; overflow:visible; }
.hand-panel h3 { display:none; }
.hand-area { width:auto; display:flex; flex-wrap:nowrap; align-items:center; justify-content:center; gap:12px; padding:12px 8px 0; overflow:visible; }
.hand-area .card { width:72px; height:110px; object-fit:cover; border-radius:6px; }
.hand-area .card.selected { transform:translateY(-10px); outline:3px solid #b2cf82; }
.desktop-player-summary { order:2; flex-shrink:0; padding:4px 24px; text-align:center; font-size:12px; color:#c4d5be; background:#102b21; font-variant-numeric:tabular-nums; }
#special-turn-note { margin:0; width:100%; font-size:12px; text-align:center; padding:4px; }
#others-cards { display:flex; justify-content:center; flex-wrap:nowrap; gap:12px; padding:4px 16px; flex-shrink:0; max-height:90px; overflow:auto; background:#153326; }
#others-cards.hidden { display:none; }
#others-cards h4 { display:none; }
.other-player-card { display:flex; flex-direction:column; align-items:center; gap:2px; margin:0; padding:0; }
.other-player-card span { font-size:10px; max-width:72px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.game-special-status { padding:4px 16px; font-size:12px; text-align:center; background:#19392a; color:#e5d49a; flex-shrink:0; }
#special-turn-note,#mobile-others-cards,#spectator-banner { display:none !important; }
#table-positions .table-position .player-name { background:#17392c; border:1px solid #42634a; color:#ecf2e6; box-shadow:none; }
#table-positions .table-position .player-bet { display:flex; justify-content:center; gap:8px; margin-top:2px; padding:2px 4px; font-size:11px; background:#123023; border:0; color:#d3dfcd; }
#table-positions .table-position.current-turn .player-name { border-color:#a3c66a; background:#335539; box-shadow:0 0 0 2px #a3c66a30; }
.game-container .current-turn-pulse { animation:none; }
#table-positions .table-position .table-player-lives { color:#e9e4d5; }
.game-main { container-type:size; }
@supports (height:1cqh) {
    .table-area { --table-width:min(720px,calc(100vw - 130px),calc((100cqh - 48px)*1.35)); }
}
#spectator-banner { padding:6px 16px; font-size:12px; flex-shrink:0; }
.mobile-sheet,.mobile-sheet-overlay { display:block; }
.mobile-sheet { position:fixed; top:76px; right:16px; left:auto; bottom:16px; width:340px; max-height:none; border:1px solid #48634a; border-radius:12px; background:#17392c; color:#f2f6ee; transform:translateX(calc(100% + 32px)); transition:transform .18s ease; z-index:80; visibility:hidden; display:flex; flex-direction:column; }
.mobile-sheet.active { transform:translateX(0); visibility:visible; }
.mobile-sheet-overlay { position:fixed; inset:0; background:#0004; z-index:79; opacity:0; visibility:hidden; pointer-events:none; }
.mobile-sheet-overlay.active { opacity:1; visibility:visible; pointer-events:auto; }
.mobile-sheet-handle { display:none; }
.mobile-sheet-header { flex-shrink:0; padding:12px 16px; }
.mobile-sheet-title { font-size:16px; }
.mobile-players-list { display:flex; flex-direction:column; gap:8px; }
.mobile-player-item { display:flex; align-items:center; gap:8px; border:1px solid #3b5940; border-radius:8px; padding:12px; }
.mobile-player-item.current { border-color:#9ab56e; }
.mobile-player-item-info { flex:1; min-width:0; }
.mobile-player-item-name { font-size:14px; overflow-wrap:anywhere; }
.mobile-player-item-status { font-size:12px; color:#c1d1bc; }
.mobile-player-item-lives { font-size:12px; font-variant-numeric:tabular-nums; }
.mobile-chat-messages { display:flex; flex-direction:column; gap:8px; }
.mobile-chat-message { max-width:88%; background:#234631; padding:10px 12px; border-radius:8px; font-size:14px; overflow-wrap:anywhere; }
.mobile-chat-message.own { align-self:flex-end; background:#365b38; }
.mobile-chat-message .msg-name { font-size:12px; margin-bottom:4px; }
.mobile-chat-input-area { display:flex; gap:8px; }
.mobile-chat-input-area input { flex:1; background:#102b21; color:#f2f6ee; border:1px solid #4a634b; border-radius:8px; padding:10px; }
.mobile-chat-send-btn { border:0; border-radius:8px; background:#56864b; color:#fff; }

.mobile-sheet-content { flex:1; overflow:auto; min-height:0; padding:16px; }
.mobile-chat-input-area { flex-shrink:0; padding:12px; }
.mobile-chat-input-area input { min-width:0; min-height:44px; font-size:16px; }
.mobile-sheet-close,.mobile-chat-send-btn { min-height:44px; min-width:44px; }
.sheet-return { margin:12px 12px 0; border:1px solid #86ae61; border-radius:8px; color:#f2f6e9; background:#315738; padding:10px; font-size:13px; cursor:pointer; }
.personal-result { font-size:16px; margin:12px 0; color:#e0efcf; font-weight:600; }
.mobile-result-card-status.correct { color:#c3e5b4; background:#2b5137; }
.mobile-result-card-status.wrong { color:#ffc6bf; background:#593b38; }
#turn-results { border-radius:12px; max-height:calc(100dvh - 48px); overflow:auto; padding:24px; }
#turn-results .results-table { font-size:14px; font-variant-numeric:tabular-nums; }
#turn-results .btn { min-height:44px; position:sticky; bottom:0; }
#game-over-screen { padding:0; background:#102b21; }
.game-over-container { max-width:720px; margin:0 auto; padding:24px; height:100dvh; display:flex; flex-direction:column; text-align:left; }
.game-over-container h2 { font-size:28px; margin-bottom:20px; }
.game-over-container .standings { padding:16px; margin-bottom:16px; overflow:auto; min-height:0; background:#17392c; border:1px solid #365342; border-radius:12px; }
.game-over-container #final-standings { flex:1; }
.game-over-hero { padding:16px; border-radius:8px; background:#244a32; border-color:#48654a; }
.standing-item { padding:12px 8px; gap:8px; }
.standing-position { min-width:28px; font-size:16px; }
.standing-name { min-width:0; margin-left:0; overflow-wrap:anywhere; font-size:14px; }
.standing-lives { font-size:14px; flex-shrink:0; }
.game-over-actions { flex-shrink:0; padding-bottom:var(--app-safe-bottom); }
.game-over-actions .btn { min-height:44px; border-radius:8px; font-size:14px; }
.game-over-actions .btn-primary { background:#56864b; color:white; }
.cookie-banner { background:#20392b; box-shadow:0 -1px 0 #ffffff20; }
.cookie-banner-content { max-width:1100px; padding:12px 16px; gap:16px; }
.cookie-banner p { font-size:12px; }
.cookie-banner .btn { min-height:44px; }
@media (max-width:1023px) {
    #lobby-screen .dash-body { display:block; }
    #lobby-screen .dash-sidebar { display:none; border:0; padding:0; }
    #lobby-screen .home-card-decoration { display:none; }
    #lobby-screen .dash-main-header { min-height:0; padding-right:0; margin-bottom:20px; }
    #btn-home-summary { display:block; }
    #lobby-screen[data-home-panel] .dash-main { display:none; }
    #lobby-screen[data-home-panel] .dash-sidebar { display:flex; max-width:600px; margin:0 auto; }
    #lobby-screen[data-home-panel="friends"] #dash-stats-registered,#lobby-screen[data-home-panel="friends"] #dash-ranked-registered { display:none !important; }
    #lobby-screen[data-home-panel] .sidebar-close { display:block; margin:16px auto; min-height:44px; padding:8px 16px; border:1px solid var(--ui-line); border-radius:8px; color:var(--ui-ink); background:white; }
    .waiting-room-layout { grid-template-columns:minmax(0,1fr) 280px; gap:16px; }
    .table-area { --table-width:min(640px,calc(100vw - 130px),calc((100dvh - 320px)*1.4)); }
    .game-header-main { flex-direction:row; align-items:center; }
}
@media (max-width:768px) {
    .dash-navbar { min-height:56px; padding:6px 16px; gap:8px; }
    .dash-nav-logo { width:32px; height:32px; }
    .dash-nav-title { font-size:20px; }
    .dash-nav-subtitle,.dash-nav-user-info { display:none; }
    .dash-nav-actions { gap:2px; }
    .dash-nav-avatar { width:32px; height:32px; }
    .dash-nav-user { padding:4px; }
    .dash-body,.dash-page-body { padding:16px; }
    #lobby-screen { padding-bottom:calc(68px + var(--app-safe-bottom)); }
    #lobby-screen > .dash-navbar { min-height:64px; }
    #lobby-screen .dash-nav-logo { width:36px; height:36px; }
    #lobby-screen .dash-nav-title { font-size:22px; }
    #lobby-screen .dash-nav-user { padding:4px; }
    #lobby-screen .dash-nav-avatar { width:36px; height:36px; }
    #lobby-screen .dash-body { padding:16px; }
    #lobby-screen .dash-main-header { margin-bottom:12px; }
    #lobby-screen .dash-main-actions { display:none; }
    #lobby-screen .dash-main-title { font-size:24px; }
    #lobby-screen .dash-main-subtitle,#btn-home-summary { display:none; }
    #lobby-screen .room-mode-tabs { gap:24px; margin-bottom:16px; }
    #lobby-screen .room-mode-tabs button { min-height:44px; font-size:14px; padding:8px 0; }
    #lobby-screen .room-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
    #lobby-screen .room-toolbar .dash-btn-create { padding:10px 14px; font-size:12px; gap:4px; }
    #lobby-screen .room-toolbar .dash-btn-create svg { display:none; }
    #lobby-screen .room-toolbar input { font-size:16px; padding-left:38px; }
    #lobby-screen .room-search-icon { left:12px; }
    #lobby-screen .dash-room-section-header { margin-bottom:16px; }
    #lobby-screen .dash-room-section-header p { font-size:12px; }
    #lobby-screen .dash-room-card { grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:14px; min-height:0; }
    #lobby-screen .dash-room-card-header { grid-column:1/-1; }
    #lobby-screen .dash-room-stats { gap:24px; }
    #lobby-screen .dash-room-stat { text-align:left; }
    #lobby-screen .dash-room-join-btn { width:auto; min-width:88px; }
    #lobby-screen .dash-room-join-note { grid-row:auto; }
    #lobby-screen .dash-rooms-empty { min-height:224px; padding:24px 16px; }
    #lobby-screen .dash-rejoin-banner { flex-direction:column; align-items:flex-start; padding:12px; gap:8px; }
    #lobby-screen .dash-rejoin-banner > span { font-size:14px; font-weight:500; }
    #lobby-screen .dash-rejoin-actions { display:flex; flex-direction:row; width:100%; gap:8px; flex-wrap:wrap; }
    #lobby-screen .dash-rejoin-actions .btn { padding:8px 12px; font-size:12px; }
    .home-mobile-nav { display:none; position:fixed; z-index:40; left:0; right:0; bottom:0; height:calc(60px + var(--app-safe-bottom)); padding:4px 16px calc(4px + var(--app-safe-bottom)); border-top:1px solid var(--ui-line); background:white; grid-template-columns:repeat(3,1fr); }
    body[data-screen="lobby"] .home-mobile-nav,body[data-screen="profile"] .home-mobile-nav { display:grid; }
    body[data-screen="lobby"] .home-mobile-nav { --ui-green:#246e47; --ui-muted:#5d6b62; border-color:#e3e6df; }
    body[data-screen="lobby"] .home-mobile-nav button:focus-visible { outline-color:#246e47; }
    .home-mobile-nav button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:44px; background:none; border:0; color:var(--ui-muted); font-size:11px; font-weight:600; }
    .home-mobile-nav button[aria-pressed="true"] { color:var(--ui-green); background:#edf3e9; border-radius:8px; }
    .home-mobile-nav svg { width:20px; height:20px; }
    #profile-screen { padding-bottom:calc(76px + var(--app-safe-bottom)); }
    .game-over-container { padding:calc(16px + var(--app-safe-top)) 16px 16px; }
    .game-over-container h2 { font-size:24px; margin-bottom:16px; }
    .game-over-actions .btn { flex:1; padding:10px; }
    .auth-modal-overlay { align-items:flex-start; padding:calc(24px + var(--app-safe-top)) 16px calc(24px + var(--app-safe-bottom)); }
    .auth-modal-content { border:0; box-shadow:none; background:none; padding:24px 8px; margin:auto; }
    .auth-modal-close { top:0; right:0; }
    #create-room-modal { padding:0; align-items:stretch; }
    #create-room-modal .modal-content { border-radius:0; width:100%; max-width:none; min-height:100dvh; max-height:100dvh; padding:calc(24px + var(--app-safe-top)) 16px calc(16px + var(--app-safe-bottom)); display:flex; flex-direction:column; overflow:auto; }
    #create-room-modal .button-group { margin-top:auto; padding-top:24px; position:sticky; bottom:0; background:var(--ui-surface); }
    #create-room-modal .btn { min-height:44px; }
    .waiting-room-layout { display:flex; flex-direction:column; gap:12px; padding-bottom:100px; }
    .waiting-room-layout > * { width:100%; }
    .waiting-players-card { order:0; }
    .waiting-info-card { order:1; }
    .waiting-chat-card { order:2; display:none; }
    .waiting-chat-card.is-open { display:block; }
    .waiting-room-layout .dash-card { padding:16px; }
    .waiting-room-layout .players-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .waiting-controls-card { position:fixed; z-index:25; bottom:0; left:0; right:0; border-radius:0 !important; padding:12px 16px calc(12px + var(--app-safe-bottom)) !important; border-bottom:0 !important; }
    .waiting-start-row { gap:8px; }
    .waiting-start-row .btn { white-space:nowrap; }
    .waiting-hint { font-size:11px; }
    #btn-waiting-chat { display:block; min-height:44px; padding:8px; font-size:12px; }
    #room-status { display:none; }
    .dash-back-btn { padding:8px; font-size:12px; min-height:44px; }
    #game-screen,#game-screen .game-container { height:100dvh; min-height:0; overflow:hidden; }
    .game-header { min-height:56px; padding:calc(4px + var(--app-safe-top)) 8px 4px; gap:4px; }
    .game-header-main { display:block; }
    .turn-info { font-size:11px; gap:4px 8px; }
    .turn-info-chip,.trick-info-header { font-size:11px; }
    .turn-info-chip + .turn-info-chip::before { display:none; }
    #cards-info { display:none; }
    .phase-indicator { font-size:10px; padding:0; background:none; border:0; }
    .game-header-actions .mobile-tab-btn { flex-direction:column; padding:4px; gap:0; min-width:44px; font-size:9px; }
    .game-room-menu summary { padding:12px 6px; }
    .game-main { min-height:0; flex:1 1 0; overflow:visible; }
    .table-area { min-height:0; height:100%; padding:24px 28px; --table-width:min(calc(100vw - 92px),400px,calc((100dvh - 330px)*1.1)); --table-height:calc(var(--table-width)*.85); }
    .table-center { width:var(--table-width); height:var(--table-height); max-width:none; border-radius:44%; }
    .table-positions { width:var(--table-width); height:var(--table-height); }
    .table-position { width:clamp(54px,calc(var(--table-width)*.25),84px); }
    .table-position .player-name { padding:4px; font-size:10px; }
    .table-position .player-stats { font-size:9px; gap:4px; }
    .game-action-dock { padding:8px 12px; gap:6px; }
    .game-action-copy { min-height:36px; gap:8px; }
    .turn-action-title { font-size:13px; }
    .turn-action-detail { font-size:11px; }
    #turn-timer-rail { min-width:50px; padding:4px 8px; }
    .turn-timer-seconds { font-size:20px; }
    #betting-area,#card-confirm,#jolly-choice,.desktop-player-summary,.hand-panel { display:none !important; }
    #mobile-betting-inline:not(.hidden) { display:block; }
    #mobile-bet-grid { display:flex; justify-content:center; gap:6px; }
    .mobile-bet-btn { flex:0 1 48px; min-width:40px; min-height:44px; padding:8px; border-radius:8px; font-size:16px; }
    .mobile-bet-btn.forbidden { opacity:.5; }
    #mobile-card-confirm:not(.hidden) { display:flex; gap:8px; }
    #mobile-card-confirm p { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .mobile-card-confirm-actions { flex-shrink:0; }
    #mobile-jolly-choice:not(.hidden) { display:block; }
    .mobile-jolly-btn { min-width:0; flex:1; }
    .mobile-player-bar { order:2; display:flex; min-height:28px; padding:4px 12px; border:0; background:#102b21; }
    .mobile-player-avatar,.mobile-player-name,.mobile-quick-actions { display:none; }
    .mobile-player-stats { justify-content:center; font-size:11px; gap:20px; }
    .mobile-hand-container { order:3; flex-shrink:0; padding:4px 12px calc(12px + var(--app-safe-bottom)); border:0; background:#102b21; }
    .mobile-hand-title { display:none; }
    .mobile-hand { display:flex; width:100%; justify-content:center; align-items:flex-end; gap:0; min-height:108px; padding:12px 0 0; overflow:visible; }
    .mobile-hand .card { width:70px; height:106px; flex:0 0 70px; object-fit:cover; margin-left:-8px; border-radius:5px; }
    .mobile-hand .card:first-child { margin-left:0; }
    .mobile-hand .card.selected { transform:translateY(-10px); outline:3px solid #b2cf82; z-index:5; }
    #mobile-special-note,#mobile-spectator-banner { display:none !important; }
    #spectator-banner { display:block; font-size:11px; padding:4px 12px; }
    #spectator-banner.hidden { display:none; }
    #others-cards { gap:6px; max-height:68px; padding:2px 8px; }
    #others-cards .card { width:28px !important; height:44px !important; }
    .other-player-card span { font-size:9px; max-width:40px; }
    .game-special-status { padding:2px 8px; font-size:11px; }
    #table-positions .table-position .player-bet { font-size:10px; gap:4px; }
    @supports (height:1cqh) { .table-area { --table-width:min(calc(100vw - 92px),400px,calc((100cqh - 32px)*1.1)); } }
    .mobile-others-cards { order:0; flex-shrink:0; max-height:96px; padding:4px 12px; overflow:auto; background:#153326; }
    .mobile-others-cards-title { display:none; }
    #mobile-others-cards-list { justify-content:center; flex-wrap:nowrap; gap:8px; }
    .mobile-other-card .card { width:28px !important; height:44px !important; }
    .mobile-other-card-name { font-size:9px; max-width:48px; overflow:hidden; text-overflow:ellipsis; }
    .mobile-sheet { top:auto; right:0; left:0; bottom:0; width:100%; height:min(70dvh,560px); border-radius:16px 16px 0 0; transform:translateY(100%); padding-bottom:var(--app-safe-bottom); }
    .mobile-sheet.active { transform:translateY(0); }
    .mobile-sheet-handle { display:block; }
    .mobile-turn-results { z-index:85; background:#102b21; }
    .mobile-turn-results-header { padding:20px 16px; }
    .mobile-turn-results-header h3 { font-size:20px; }
    .mobile-turn-results-footer .btn { min-height:44px; }
    #turn-results { display:none !important; }
    .cookie-banner-content { display:flex; flex-wrap:wrap; gap:8px; }
    .cookie-banner-actions { margin-left:auto; display:flex; gap:8px; }
}
@media (max-width:380px) {
    .dash-nav-subtitle { display:none; }
    .mobile-hand .card { width:65px; height:99px; flex-basis:65px; }
    #lobby-screen .room-toolbar .dash-btn-create { font-size:12px; padding:10px; }
}
@media (max-height:500px) and (orientation:landscape) and (max-width:1023px) {
    #lobby-screen > .dash-navbar { min-height:56px; padding-top:4px; padding-bottom:4px; }
    #lobby-screen .dash-body { padding-top:8px; }
    #lobby-screen .dash-main-header { margin-bottom:8px; }
    #lobby-screen .dash-rejoin-banner { flex-direction:row; align-items:center; margin-bottom:8px; }
    #lobby-screen .dash-rejoin-actions { width:auto; flex-wrap:nowrap; }
    #lobby-screen .room-mode-tabs { margin-bottom:8px; }
    .game-header { min-height:44px; padding:0 8px; }
    .game-action-dock { padding:4px 12px; gap:2px; }
    .game-action-copy { min-height:28px; }
    .turn-action-detail { display:none; }
    .mobile-player-bar,.desktop-player-summary { display:none; }
    .mobile-hand-container,.hand-panel { padding:0 12px calc(4px + var(--app-safe-bottom)); }
    .mobile-hand { min-height:66px; padding-top:8px; }
    .mobile-hand .card,.hand-area .card { width:42px; height:64px; flex-basis:42px; }
    .hand-area { padding-top:8px; }
    .table-area { --table-width:min(300px,calc((100dvh - 205px)*1.8)); --table-height:calc(var(--table-width)*.48); padding:12px 28px; }
    @supports (height:1cqh) { .table-area { --table-width:min(300px,calc((100cqh - 28px)*1.8)); } }
    .game-action-dock button { min-height:44px; padding:4px 12px; }
    .game-action-dock:has(#mobile-betting-inline:not(.hidden)),.game-action-dock:has(#card-confirm:not(.hidden)),.game-action-dock:has(#mobile-card-confirm:not(.hidden)) { flex-direction:row; align-items:center; }
    .game-action-copy { width:auto; flex:1; }
}
@media (prefers-reduced-motion:reduce) { .mobile-sheet,.hand-area .card,.mobile-hand .card { transition:none; animation:none; } }
