/* A shared type scale for pages, forms and room panels. Cards keep their own face. */
:root { --font-ui:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif; --font-display:Outfit,system-ui,-apple-system,'Segoe UI',sans-serif; --type-body:14px; --type-small:12px; --type-label:11px; font-family:var(--font-ui); font-size:16px; }
body { font-family:var(--font-ui); font-size:var(--type-body); line-height:1.5; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
button,input,select,textarea { font-family:var(--font-ui); }
h1,h2,h3 { font-family:var(--font-display); line-height:1.2; }
.app-shell .page-heading h1 { font-size:32px; font-weight:600; letter-spacing:-.6px; }
.app-shell .page-heading p,.app-shell .section-heading p { font-size:var(--type-body); line-height:1.6; }
.app-shell .eyebrow { font-size:10px; line-height:1.5; letter-spacing:1.3px; }
.app-shell .section-heading h2,.app-shell .content-panel h2 { font-size:24px; font-weight:550; }
body :is(.primary-button,.secondary-button,.text-button,.table-card-button),.page-heading>.primary-button { font-size:14px; line-height:1.35; font-weight:600; }
main:not(.in-table) .secondary-button { position:static; top:auto; right:auto; display:inline-flex; gap:8px; padding:11px 13px; border:1px solid #353d2c; background:#20251d; }
.filter-buttons button,.funding-tabs button { font-size:13px; line-height:1.4; font-weight:600; }
/* Compact, aligned cards: identity, then stakes and a clear action. */
.lobby-tables { gap:12px; align-items:stretch; }
@media(min-width:701px) { .lobby-tables { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.lobby-table-card { display:flex; flex-direction:column; padding:14px; min-width:0; container-type:inline-size; overflow:hidden; }
.lobby-table-card:last-child { grid-column:auto; }
.lobby-table-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:-14px -14px 0; padding:12px 14px; background:#23282d; }
.lobby-table-card h3 { font-size:19px; line-height:1.25; font-weight:550; margin:0; min-width:0; overflow-wrap:anywhere; }
.lobby-table-game { display:inline-block; font-family:var(--font-ui); font-size:13px; font-weight:500; color:var(--muted); white-space:nowrap; }
.lobby-table-occupancy { flex:none; font-size:12px; line-height:1.4; color:var(--muted); font-variant-numeric:tabular-nums; }
.lobby-table-footer { display:grid; grid-template-columns:minmax(0,1fr) 104px; align-items:center; gap:14px; margin-top:12px; padding-top:0; border-top:0; }
.table-card-metrics { display:grid; grid-column:auto; grid-template-columns:max-content minmax(0,1fr); gap:12px; margin:0; padding:0; align-items:start; }
.table-card-metrics>div,.table-card-metrics>div:last-child { min-width:0; text-align:left; }
.table-card-metrics small { font-size:11px; line-height:1.3; margin-bottom:4px; white-space:nowrap; }
.table-card-metrics strong { display:block; font-size:13px; line-height:1.3; font-weight:550; white-space:nowrap; }
.lobby-table-card .table-card-button { grid-column:auto; min-height:44px; padding:10px; font-size:12px; gap:6px; }
/* A narrow card gives the action its own row instead of squeezing the amounts. */
@container(max-width:290px) {
  .lobby-table-footer { grid-template-columns:minmax(0,1fr); gap:10px; }
  .table-card-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lobby-table-card .table-card-button { justify-content:center; }
}
.table-browse-note { font-size:12px; line-height:1.6; }
.app-shell .lobby-callouts h3 { font-size:20px; }
.app-shell .lobby-callouts p { font-size:14px; line-height:1.65; }
.content-panel>p,.reward-feature p,.tournament-banner p,.tournament-card p,.profile-overview>p,.setting-row p,.steps p,.help-grid details p,.fair-intro p,.fair-explain-grid p,.fair-note,.fair-details p,.fair-history-callout p,.empty-state p,.auth-intro { font-size:14px; line-height:1.7; }
.help-grid details,.steps li,.setting-row strong,.fair-details summary { font-size:14px; line-height:1.6; }
.setting-slider,.profile-stats span,.tournament-metrics span,.tournament-entries>span { font-size:12px; }
.tournament-metrics { gap:20px; flex-wrap:wrap; }
.tournament-metrics b { font-size:19px; }
.demo-badge,.deposit-launch-tag { font-size:10px; letter-spacing:.7px; }
.empty-state h3 { font-size:25px; }
body footer { font-size:11px; line-height:1.6; flex-wrap:wrap; }
body footer button,.footer-brand { font-size:11px; }

/* Sidebar labels stay text at desktop widths; the compact icon rail stays compact. */
@media(min-width:1081px) { .main-nav>button { font-size:14px; } }
.brand small { font-size:8px; letter-spacing:.7px; }
.sidebar-section { font-size:11px; letter-spacing:1.4px; }
.tiny-tag,.reward-count { font-size:10px; }.support,.moon-card button,.online-sidebar { font-size:12px; }
.moon-eyebrow { font-size:8px; letter-spacing:.5px; }
.sidebar .moon-card h3 { font-size:20px; }
.mobile-nav>button { font-size:12px; line-height:1.3; }
.mobile-nav>button[data-view="tournaments"] { flex:1.4; }
.mobile-wallet-copy small { font-size:9px; }
.mobile-wallet-copy strong { font-size:12px; }

/* Wallets, records and verification details use readable labels and aligned numbers. */
.wallet-overview .real-balance,.wallet-stack-note,.wallet-protection p,.practice-wallet-note>span,.practice-wallet-note p,.deposit-network,.deposit-asset small,.deposit-panel .deposit-network-note,.deposit-panel .deposit-pending p,.deposit-panel .deposit-roadmap p,.wallet-finality-note,.token-details,.token-details a,.wallet-cash-history p,.wallet-pending-notice p,.withdrawal-policy>span,.withdrawal-review>label,.withdrawal-review>span { font-size:13px; line-height:1.65; }
.deposit-asset strong { font-size:16px; }
.deposit-asset strong span,.deposit-network small,.deposit-pending strong,.deposit-address-box>span { font-size:12px; }
.deposit-address-box code,.token-details code,.withdrawal-review>code { font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.deposit-network { gap:12px; flex-wrap:wrap; }
.deposit-panel .deposit-disabled { font-size:14px; }
.wallet-action-row { flex-wrap:wrap; }
.wallet-empty { font-size:14px; }
.transfer-row strong,.history-item strong,.history-item>span:nth-child(3) { font-size:14px; line-height:1.5; }
.transfer-row small,.transfer-row a,.transfer-status,.history-item small { font-size:12px; line-height:1.5; }
.history-item { min-width:0; }
.history-item>span:nth-child(2) { min-width:0; }
.transfer-row small,.history-item small { overflow-wrap:anywhere; }
.leaderboard-labels { font-size:12px; }
.leaderboard-row,.leaderboard-row>strong,.leaderboard-player strong { font-size:14px; }
.leaderboard-player { min-width:0; }
.leaderboard-player strong { overflow:hidden; text-overflow:ellipsis; }
.rank { font-size:12px; flex-shrink:0; }
.fair-receipt-heading,.fair-report p,.fair-report li,.fair-check small,.fair-check-status,.fair-metadata,.past-hand-cards>div>span,.past-card-row>small,.past-shown>strong,.fair-reveal-time span,.fair-reveal-time small { font-size:12px; line-height:1.65; }
.fair-check strong { font-size:14px; }
.fair-metadata { grid-template-columns:90px minmax(0,1fr); }
.fair-check-status { white-space:normal; }
.fair-policy { font-size:13px!important; line-height:1.65!important; }
.fair-policy-button { font-size:12px; white-space:normal; }
.wallet-page-amount,.table-card-metrics strong,.seat-info>span,.pot strong,.turn-clock,.session-stats strong,.transfer-value,.history-detail-profit,.leaderboard-row>strong { font-variant-numeric:tabular-nums; }

/* Forms stay legible on phones and avoid input zoom. */
.auth-form label,.auth-form>p,.auth-switch,.withdrawal-review>div { font-size:14px; line-height:1.6; }
.auth-form input,.auth-form select,.auth-form textarea { font-size:16px; line-height:1.4; }
.form-error { font-size:13px!important; line-height:1.5; }
.privacy-note { font-size:12px!important; line-height:1.65; }
#dialog-body { font-size:14px; line-height:1.65; }
#dialog-body button { font-size:14px; }
#dialog-body .deposit-network-note,#dialog-body .deposit-pending p,#dialog-body .deposit-roadmap p { font-size:13px; }
#toast { font-size:13px; line-height:1.5; }
.connection-banner,.mobile-room .connection-banner { font-size:12px; line-height:1.5; }

/* Desktop table and all room sheets. */
.in-table .poker-stage { font-size:13px; line-height:normal; }
.in-table .table-topline,.in-table #table-blinds,.in-table .table-topline .game-type { font-size:12px; }
.in-table .live-badge { font-size:10px; }
.in-table .seat-info>strong { font-size:12px; line-height:1.25; }
.in-table .seat-info>span { font-size:13px; line-height:1.2; }
.in-table .player-status { font-size:9px; letter-spacing:.7px; }
.in-table .seat .bot-label { font-size:8px; }
.in-table .empty-seat>span:last-child { font-size:10px; }
.in-table .table-corner-label,.in-table .new-hand-button,.in-table .hand-status { font-size:10px; }
.in-table .hand-status { letter-spacing:1px; }
.in-table .pot>span { font-size:9px; }
.in-table .turn-copy { font-size:14px; }
.in-table .call-copy,.in-table .raise-input { font-size:12px; }
.in-table .raise-input strong,.in-table .turn-clock { font-size:14px; }
.in-table .bet-presets button { font-size:11px; }
.in-table .action-buttons>button>span { font-size:11px; }
.in-table .join-strip p { font-size:13px; }
.in-table .table-bottom,.in-table .table-bottom .text-button,.in-table .sit-out,.in-table .connection,.table-fairness,.table-fairness .text-button { font-size:12px; }
.panel-tabs button { font-size:13px; }
.chat-notice,.mobile-room .mobile-table-social .chat-notice { font-size:11px; white-space:normal; text-align:center; }
.message-meta strong { font-size:12px; }
.message-meta time { font-size:10px; }
.chat-message p,.mobile-room .mobile-table-social .chat-message p,.chat-empty,.activity-row p { font-size:13px; line-height:1.6; }
.activity-row small { font-size:12px; }
.chat-form input { font-size:16px; }
.session-heading h2 { font-size:15px; line-height:1.35; }
.session-stats span,.session-bottom p { font-size:12px; line-height:1.5; }
/* Shared rows keep both amounts aligned when either label wraps. */
.session-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:8px; }
.session-stats>div { display:contents; }
.session-stats>div:first-child>* { grid-column:1; }
.session-stats>div:nth-child(2)>* { grid-column:2; }
.session-stats>div>span { grid-row:1; margin-bottom:0; min-width:0; }
.session-stats>div>strong { grid-row:2; align-self:start; min-width:0; }
.session-stats strong,.session-stats strong.profit { font-size:23px; }
.mobile-sheet-heading h2 { font-size:23px; }
.mobile-room .mobile-table-options .table-fairness,.mobile-room .mobile-table-options .table-fairness .text-button,.mobile-room .mobile-table-options .table-bottom,.mobile-room .mobile-table-options .table-bottom .text-button,.mobile-room .mobile-table-options .sit-out,.mobile-room .mobile-table-options>.secondary-button { font-size:13px; }

@media(max-width:700px) {
  .app-shell .page-heading h1 { font-size:29px; }
  .app-shell .section-heading h2,.app-shell .content-panel h2 { font-size:23px; }
  .leaderboard-labels,.leaderboard-row { grid-template-columns:minmax(0,1fr) 40px 105px; gap:8px; }
  .leaderboard-row,.leaderboard-row>strong,.leaderboard-player strong { font-size:12px; }
  .leaderboard-labels { font-size:11px; }
  .leaderboard-player .rank { font-size:11px; }
  .history-item { flex-wrap:wrap; }
  .history-item>span:nth-child(3) { margin-left:auto; }
  .transfer-value { max-width:48%; }
  .fair-intro p { font-size:14px; }
  .fair-explain-grid p { font-size:14px; }
  .fair-metadata { grid-template-columns:76px minmax(0,1fr); }
  .tournament-card .secondary-button { margin-left:0; }
  .wallet-page-amount { font-size:38px; }
}

/* Compact functional type for the one-screen room; card faces are untouched. */
.mobile-room .mobile-wallet-copy strong { font-size:12px; }
.mobile-room .table-topline .game-type,.mobile-room .table-topline>div:first-child>#table-blinds { font-size:10px; }
.mobile-room .live-badge { font-size:8px; letter-spacing:.4px; }
.mobile-room .seat-info>strong { font-size:10px; line-height:1.15; }
.mobile-room .seat-info>span { font-size:11px; line-height:1.15; }
.mobile-room .seat-hero .seat-info strong { font-size:11px; }
.mobile-room .seat-hero .seat-info>span { font-size:12px; }
.mobile-room .player-status { font-size:8px; line-height:1; letter-spacing:.4px; }
.mobile-room .seat .bot-label { font-size:7px; }
.mobile-room .empty-seat>span:last-child { font-size:9px; }
.mobile-room .table-corner-label,.mobile-room .new-hand-button,.mobile-room .hand-status { font-size:8px; letter-spacing:.4px; }
.mobile-room .pot>span { font-size:8px; }
.mobile-room .turn-copy { font-size:12px; }
.mobile-room .call-copy,.mobile-room .raise-input { font-size:11px; }
.mobile-room .raise-input strong { font-size:12px; }
.mobile-room .bet-presets button { font-size:10px; }
.mobile-room .action-buttons>button>span { font-size:10px; }
.mobile-room .join-strip p { font-size:11px; }
.mobile-room .join-strip .primary-button { font-size:12px; }
.mobile-room .mobile-room-tools>button { font-size:12px; }
@media(max-width:360px) {
  .mobile-nav>button { font-size:11px; }
  .mobile-room .table-topline .game-type { font-size:9px; }
  .mobile-room .table-topline>div:first-child>#table-blinds { font-size:9px; }
  .mobile-room .live-badge { font-size:7px; }
  .mobile-room .seat-info>strong { font-size:9px; }
  .mobile-room .seat-info>span { font-size:10px; }
  .mobile-room .mobile-room-tools>button { font-size:11px; }
  .mobile-room .join-strip { gap:6px; }
}
@container(max-height:340px) {
  .mobile-room .player-status { font-size:7px; }
  .mobile-room .hand-status,.mobile-room .table-corner-label { font-size:7px; }
  .mobile-room .hand-status { top:calc(44% + var(--room-card-height) + 2px); line-height:1; }
  .mobile-room .seat-info { padding-top:4px; padding-bottom:3px; }
}
@media(orientation:landscape) {
  .mobile-room .mobile-room-tools>button { font-size:10px; }
  .mobile-room .action-buttons>button>span { font-size:9px; }
}
@container(max-height:240px) {
  .mobile-room .seat-info>strong { font-size:9px; }
  .mobile-room .seat-info>span { font-size:10px; }
  .mobile-room .hand-status { top:2px; font-size:6px; }
  .mobile-room .table-corner-label,.mobile-room .new-hand-button { font-size:7px; }
}

/* One mobile header, with the full navigation in a modal side panel. */
.mobile-wallet-copy { display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
.mobile-wallet-copy small { font-size:10px; line-height:1.2; }
.mobile-wallet-copy strong { font-size:13px; line-height:1.3; white-space:nowrap; font-variant-numeric:tabular-nums; }
#app-dialog.mobile-site-menu { position:fixed; inset:0 auto 0 0; margin:0; width:min(310px,88vw); height:100dvh; max-height:100dvh; border-radius:0; padding:20px; background:var(--panel); }
#app-dialog.mobile-site-menu .main-nav>button { width:100%; min-height:44px; font-size:14px; justify-content:flex-start; }
#app-dialog.mobile-site-menu .main-nav>button[hidden] { display:none; }
@media(max-width:700px) {
  main { min-height:calc(100dvh - 64px); }
  .mobile-header { gap:10px; }
  .mobile-wallet { min-width:72px; padding:7px 10px; min-height:44px; justify-content:center; flex-shrink:0; }
  .mobile-profile { min-width:40px; min-height:44px; flex-shrink:0; }
  .mobile-profile svg { width:20px; height:20px; }
}
@media(max-width:360px) {
  .mobile-header { padding-inline:12px; gap:7px; }
  .mobile-brand { font-size:14px; gap:5px; }
  .mobile-brand img { width:26px; }
  .mobile-wallet { min-width:64px; padding-inline:7px; }
  .mobile-wallet-copy strong { font-size:12px; }
}
#app-dialog.mobile-site-menu .main-nav { display:flex; flex-direction:column; gap:6px; }
#app-dialog.mobile-site-menu .main-nav>button { display:flex; align-items:center; gap:12px; margin:0; padding:12px; border:0; border-radius:8px; background:transparent; color:var(--muted); box-shadow:none; }
#app-dialog.mobile-site-menu .main-nav>button.active { background:var(--gold-surface); color:var(--gold); }
#app-dialog.mobile-site-menu .main-nav>button:hover { background:var(--surface-raised); }
#app-dialog.mobile-site-menu .main-nav>button svg { width:20px; height:20px; flex:none; }
/* Keep the page footer at the viewport bottom when content is short. */
main:not(.in-table) { display:flex; flex-direction:column; }
main:not(.in-table)>footer { margin-top:auto; }

.footer-legal { display:flex; flex-wrap:wrap; gap:16px; }
.footer-legal a { color:var(--muted); text-decoration:none; }
.footer-legal a:hover,.legal-page a:hover { color:var(--gold); }
.legal-page { width:100%; max-width:800px; margin:10px auto 40px; }
.legal-page a { color:var(--brass); text-underline-offset:3px; }
.legal-back { display:inline-block; margin-bottom:24px; }
.legal-effective { color:var(--muted); font-size:12px; }
.legal-page h1 { font-size:32px; margin:10px 0; }
.legal-page header>p { color:var(--muted); }
.legal-links { display:flex; flex-wrap:wrap; gap:16px; padding:18px 0; margin:20px 0 28px; border-block:1px solid var(--line); }
.legal-links [aria-current=page] { color:var(--cream); }
.legal-page section { margin:0 0 28px; }
.legal-page h2 { font-size:20px; margin:0 0 10px; }
.legal-page section p { color:#c3c7c8; font-size:14px; line-height:1.85; margin:0; overflow-wrap:anywhere; }
@media(max-width:700px){ .legal-page h1 {font-size:28px;} .footer-legal {width:100%;gap:12px;} }

.auth-form .legal-agreement { display:flex; flex-direction:row; align-items:flex-start; gap:10px; font-size:12px; line-height:1.65; color:var(--muted); }
.auth-form .legal-agreement input { width:18px; height:18px; min-height:18px; flex:0 0 18px; margin:3px 0 0; padding:0; accent-color:var(--brass); }
.legal-agreement a { color:var(--brass); text-underline-offset:3px; }

/* Stack mobile legal links without affecting the desktop footer. */
@media (max-width:700px) {
  body footer { flex-direction:column; flex-wrap:nowrap; align-items:center; gap:6px; padding:20px 0 24px; text-align:center; font-size:12px; }
  footer .footer-legal { order:-1; display:flex; flex-direction:column; align-items:center; width:100%; gap:0; margin-bottom:16px; }
  .footer-legal a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:8px 16px; font-size:14px; line-height:1.5; border-radius:6px; }
  .footer-legal a:focus-visible { outline:2px solid var(--brass); outline-offset:2px; }
  footer .footer-brand { font-size:10px; letter-spacing:.6px; }
}
