.page-heading,.section-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
.page-heading { margin:6px 0 22px; }
.page-heading h2 { font-size:24px; letter-spacing:-.6px; margin:3px 0 6px; }
.eyebrow { color:var(--primary); font-size:11px; font-weight:700; letter-spacing:1.5px; }
.muted { color:var(--text-muted); font-size:12px; line-height:1.7; }
.form-hint { margin-bottom:16px; }
.wallet-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr)); gap:14px; }
.wallet-group { margin-bottom:24px; }
.wallet-group > .section-heading { margin-bottom:10px; }
.wallet-group h3 { font-size:16px; }
.wallet-card { margin:0; padding:20px; border-radius:16px; }
.wallet-balance { font-size:26px; font-weight:750; letter-spacing:-.5px; margin-top:16px; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.wallet-balance small { color:var(--text-muted); font-size:13px; }
.wallet-address { display:block; padding:10px 12px; background:var(--bg-subtle); border:1px solid var(--border-color); border-radius:8px; margin:12px 0; overflow-wrap:anywhere; font-size:12px; user-select:all; }
.wallet-links,.wallet-actions { display:flex; flex-wrap:wrap; gap:7px; }
.wallet-updated { margin:14px 0 10px; }
.asset-totals { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
.asset-total { flex:1; min-width:160px; padding:16px 18px; background:var(--primary-light); border:1px solid #dbeafe; border-radius:12px; }
.asset-total span { display:block; color:var(--text-muted); font-size:12px; }
.asset-total strong { font-size:22px; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.wallet-choice { display:flex; gap:10px; align-items:flex-start; padding:10px; border:1px solid var(--border-color); border-radius:8px; margin-bottom:7px; cursor:pointer; overflow-wrap:anywhere; }
.wallet-choice input { margin-top:5px; }
.wallet-choice small { display:block; color:var(--text-muted); }
.wallet-choices { max-height:240px; overflow:auto; }
.account-wallets { border-top:1px solid var(--border-color); padding:10px 0; display:grid; gap:8px; }
.account-wallets code { display:block; overflow-wrap:anywhere; font-size:11px; color:var(--text-muted); }
.account-card { border-radius:14px; padding:18px; }
.account-header > div { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.account-meta { gap:8px 16px; }
.account-owner { font-size:13px; font-weight:600; }
.account-actions { flex-wrap:wrap; }
.dashboard-welcome { margin-bottom:18px; }
.dashboard-quick { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 20px; }
.dashboard-assets { margin:16px 0; }
.dashboard-assets .section-heading { margin-bottom:12px; }
.dashboard-assets .asset-totals { margin-bottom:8px; }
.dashboard-assets .list-item { gap:12px; align-items:flex-start; }
.dashboard-assets .list-item-main { min-width:0; overflow-wrap:anywhere; }
#view-dashboard > .card { border-radius:16px; padding:20px; margin-bottom:16px; }
#view-dashboard .list-item-title { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
#view-dashboard .list-item-amount { white-space:nowrap; font-variant-numeric:tabular-nums; }
.qr-panel { display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin:16px 0; }
.qr-panel svg { width:190px; height:190px; flex-shrink:0; background:white; }
.qr-panel > div { flex:1; min-width:180px; }
.qr-url { word-break:break-all; font-size:12px; margin:8px 0; }
@media(min-width:900px) { #accounts-list { display:grid; grid-template-columns:1fr 1fr; gap:14px; } #accounts-list .account-card { margin-bottom:0; } }
@media(max-width:480px) { .page-heading h2 { font-size:21px; } .wallet-card { padding:16px; } .qr-panel { justify-content:center; } }
/* Shared desktop and mobile rhythm */
:root { --bg-app:#f5f7fb; --radius-md:12px; --radius-lg:16px; --shadow-sm:0 2px 8px rgba(25,42,70,.035); }
.app-container { min-width:0; }
.view-panel > h2, .view-panel > div:first-child h2 { font-size:24px !important; letter-spacing:-.5px; line-height:1.3; }
.card,.account-card { border-color:#e4e9f1; box-shadow:var(--shadow-sm); }
.btn { min-height:38px; border-radius:9px; font-weight:600; }
.btn-sm { min-height:32px; }
.form-input,.form-select { min-height:40px; border-radius:9px; }
.filter-bar { align-items:center; gap:10px; }
.bottom-nav { flex-shrink:0; }
.nav-item:focus-visible,.btn:focus-visible { outline:3px solid #93c5fd; outline-offset:2px; }
.sports-toolbar { justify-content:space-between; gap:18px; padding:18px; border-radius:16px; }
.sports-date-nav { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sports-date-label { display:grid; gap:2px; text-align:center; min-width:185px; }
.sports-date-label strong { font-size:14px; font-variant-numeric:tabular-nums; }
.sports-date-label span { color:var(--text-muted); font-size:11px; }
.sports-filter-actions { display:flex; gap:10px; align-items:center; }
.sports-filter-actions .form-select { min-width:130px; width:140px; }
.sports-schedule { grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr)); gap:14px; }
.sports-fixture { padding:18px; border-radius:14px; display:flex; flex-direction:column; }
.sports-fixture-meta { align-items:center; gap:10px; margin-bottom:18px; }
.sports-fixture-meta time { font-weight:700; color:var(--text-main); font-variant-numeric:tabular-nums; }
.sports-status { margin-left:auto; font-size:11px; }
.sports-status-in { color:#15803d; background:#ecfdf3; border-radius:5px; padding:2px 6px; }
.sports-fixture-teams { gap:12px; margin-bottom:18px; flex:1; }
.sports-fixture-teams > div { display:grid; grid-template-columns:18px 30px minmax(0,1fr) 38px; align-items:center; gap:8px; }
.sports-fixture-teams strong { overflow-wrap:anywhere; font-size:14px; font-weight:600; }
.sports-fixture-teams b { text-align:right; font-size:18px; font-variant-numeric:tabular-nums; }
.sports-team-side { color:var(--text-muted); font-size:10px; background:var(--bg-subtle); border-radius:4px; text-align:center; padding:3px 0; }
.sports-fixture > button { width:100%; }
.sports-expand-wrap { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:16px; }
.sports-empty { grid-column:1/-1; }
.sports-section-title { margin:24px 0 14px; }
.sports-heading { margin-bottom:24px; }
.sports-notes { padding:16px 18px; border-radius:12px; background:#eef2f8; }
#sports-source-errors:not(:empty) { margin-bottom:16px; }
@media(min-width:768px) {
  .bottom-nav { width:220px; padding:26px 14px; gap:6px; }
  .nav-brand-desktop { font-size:15px; padding:0 8px 24px; white-space:nowrap; }
  .nav-item { height:46px; border-radius:11px; }
  .nav-item.active { background:#e8efff; box-shadow:inset 3px 0 0 var(--primary); }
  .app-container { max-width:1400px; padding:30px 32px 40px; }
}
@media(max-width:767px) {
  .bottom-nav .nav-item { min-width:0; font-size:10px; gap:2px; }
  .bottom-nav .nav-item svg { width:19px; height:19px; }
  .sports-toolbar { padding:14px; gap:14px; }
  .sports-date-nav { display:grid; grid-template-columns:1fr 1.5fr 1fr; width:100%; gap:8px; }
  .sports-date-label { min-width:0; }
  .sports-date-label strong { font-size:12px; }
  .sports-date-nav .btn { padding:7px; font-size:12px; }
  #sports-today { grid-column:2; }
  .sports-filter-actions { width:100%; }
  .sports-filter-actions .form-select { width:auto; flex:1; }
  .sports-heading h2 { font-size:23px !important; }
  .sports-schedule { grid-template-columns:1fr; }
}

#sports-date-notice:not(:empty) { padding:12px 16px; background:#eff6ff; border:1px solid #dbeafe; border-radius:10px; margin-bottom:16px; color:#1e40af; }

body { font-size:16px; }
.btn,.form-input,.form-select { font-size:16px; }
.nav-item { font-size:15px; }
.sports-schedule { display:block; }
.sports-league-group { margin-bottom:26px; }
.sports-league-games { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr)); gap:16px; }
.sports-section-title h3 { font-size:21px; }
.sports-fixture-meta,.sports-status { font-size:15px; }
.sports-fixture-meta time { font-size:21px; }
.sports-fixture-teams strong { font-size:18px; }
.sports-fixture-teams b { font-size:24px; }
.sports-team-side { font-size:13px; }
.sports-fixture.is-earliest { border:2px solid #6b91e5; background:linear-gradient(135deg,#eff5ff,#fff 75%); box-shadow:0 4px 16px #1d4ed810; }
.sports-fixture.is-earliest time { color:#1d4ed8; }
.sports-group-expand { display:block; margin:16px auto 0; }
.sports-date-label strong { font-size:17px; }
.sports-watchlist { grid-template-columns:repeat(auto-fit,minmax(min(100%,540px),1fr)); }
@media(max-width:767px) {
  .sports-date-nav { grid-template-columns:1fr 1.5fr 1fr; gap:6px; }
  .sports-date-nav .btn { font-size:14px; }
  .sports-date-label strong { font-size:15px; }
  .bottom-nav .nav-item { font-size:12px; }
}
