:root {
  --bg: #0d0f10;
  --panel: #171a1c;
  --panel-2: color-mix(in srgb, var(--panel) 86%, white);
  --text: #f4f6f1;
  --muted: #aeb5ad;
  --accent: #8ca75b;
  --accent-2: #b8cf8f;
  --font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --danger: #d96b6b;
  --warn: #e2b95e;
  --line: color-mix(in srgb, var(--panel) 78%, white);
  --radius: 18px;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: var(--font-family); background: radial-gradient(circle at top, color-mix(in srgb, var(--accent) 13%, var(--bg)) 0, var(--bg) 36%); color: var(--text); min-height: 100vh; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.app { max-width: 1150px; margin: 0 auto; padding: 18px; }
.topbar { display: flex; gap: 14px; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.brand { display: flex; gap: 12px; align-items: center; }
.brand-icon { width: 48px; height: 48px; border-radius: 12px; object-fit: cover; box-shadow: 0 0 0 1px var(--line); }
.brand h1 { margin: 0; font-size: 1.55rem; }
.brand small { color: var(--muted); }
.nav { display: flex; flex-wrap: wrap; gap: 8px; }
.btn, .nav button { border: 1px solid var(--line); background: var(--panel); color: var(--text); border-radius: 12px; padding: 10px 14px; }
.btn:hover, .nav button:hover { border-color: var(--accent); }
.btn.primary { background: var(--accent); color: var(--accent-contrast); font-weight: 800; border-color: var(--accent); }
.btn.danger { border-color: #6e3636; color: #ffb1b1; }
.btn.big { padding: 16px 20px; font-size: 1.08rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; box-shadow: 0 15px 40px rgba(0,0,0,.18); }
.card h2, .card h3 { margin-top: 0; }
.card .emoji { font-size: 2rem; }
.card.click { transition: transform .15s ease, border-color .15s ease; }
.card.click:hover { transform: translateY(-2px); border-color: var(--accent); }
.muted { color: var(--muted); }
.section-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 18px 0 10px; }
.hidden { display: none !important; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
label { display: grid; gap: 6px; color: var(--muted); font-size: .92rem; }
input, select { width: 100%; background: color-mix(in srgb, var(--bg) 82%, var(--panel)); color: var(--text); border: 1px solid var(--line); border-radius: 10px; padding: 11px 12px; }
input:focus, select:focus { outline: 2px solid #8ca75b55; border-color: var(--accent); }
.player-pills { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.pill { border: 1px solid var(--line); border-radius: 999px; padding: 8px 12px; background: var(--panel-2); }
.scoreboard { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.player-score { padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: color-mix(in srgb, var(--bg) 86%, var(--panel)); position: relative; }
.player-score.active { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.player-score .name { font-weight: 800; font-size: 1.05rem; }
.player-score .score { font-size: clamp(2.8rem, 9vw, 5.8rem); line-height: .95; font-weight: 900; letter-spacing: -3px; margin: 10px 0; }
.player-score .meta { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: .88rem; }
.checkout { margin: 12px 0; padding: 12px 14px; background: color-mix(in srgb, var(--accent) 12%, var(--bg)); border: 1px solid color-mix(in srgb, var(--accent) 44%, var(--bg)); border-radius: 12px; }
.checkout strong { color: var(--accent-2); }
.keypad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; max-width: 430px; margin: 12px auto; }
.keypad button, .dartboard button { min-height: 54px; background: var(--panel-2); color: var(--text); border: 1px solid var(--line); border-radius: 12px; font-weight: 800; }
.keypad button:hover, .dartboard button:hover { border-color: var(--accent); }
.quick-total { text-align: center; font-size: 2rem; min-height: 2.5rem; font-weight: 900; }
.dartboard { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.dartboard .wide { grid-column: span 2; }
.multis { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin: 10px 0; }
.multis button.active { background: var(--accent); color: #10150b; }
.visit-darts { min-height: 46px; display: flex; gap: 8px; align-items: center; justify-content: center; flex-wrap: wrap; }
.dart-chip { background: color-mix(in srgb, var(--accent) 12%, var(--panel)); border: 1px solid color-mix(in srgb, var(--accent) 44%, var(--panel)); border-radius: 999px; padding: 7px 11px; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 12px; }
.toast { position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%); background: #232829; border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; z-index: 999; box-shadow: 0 12px 28px #0008; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 10px 8px; border-bottom: 1px solid var(--line); text-align: left; }
th { color: var(--muted); font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; }
.good { color: #b8df83; }
.warn { color: #f0cb77; }
.danger { color: #ff9797; }
.game-status { text-align: center; margin: 10px 0; color: var(--muted); }
.target-big { text-align: center; font-size: clamp(3rem, 14vw, 7rem); font-weight: 900; margin: 10px 0; }
.segment-row { display:flex; gap:6px; flex-wrap:wrap; justify-content:center; }
.segment-row button { min-width:62px; min-height:50px; background:var(--panel-2); color:var(--text); border:1px solid var(--line); border-radius:10px; }
@media (max-width: 700px) {
  .app { padding: 10px; }
  .topbar { align-items: flex-start; flex-direction: column; }
  .nav { width: 100%; }
  .nav button { flex: 1; }
  .card { padding: 14px; }
  .dartboard { grid-template-columns: repeat(5, 1fr); }
}
@media (display-mode: standalone) {
  body { overscroll-behavior-y: contain; }
}

.settings-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; }
.colour-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.colour-field { display:grid; grid-template-columns:44px 1fr; gap:8px; align-items:center; }
.colour-field input[type="color"] { width:44px; height:42px; padding:3px; border-radius:10px; }
.settings-preview { padding:18px; border-radius:16px; border:1px solid var(--line); background:var(--panel-2); }
.settings-preview .sample-score { font-size:3rem; font-weight:900; line-height:1; margin:10px 0; }
.favicon-preview { width:84px; height:84px; border-radius:18px; object-fit:cover; border:1px solid var(--line); background:var(--panel-2); }
.status-row { display:flex; gap:9px; align-items:flex-start; margin:8px 0; }
.status-dot { width:10px; height:10px; border-radius:999px; margin-top:5px; background:var(--muted); flex:0 0 auto; }
.status-dot.ok { background:#8fca70; }
.status-dot.bad { background:#e27f73; }
.toggle-row { display:flex; align-items:center; justify-content:space-between; gap:15px; border:1px solid var(--line); border-radius:12px; padding:12px; }
.toggle-row input { width:22px; height:22px; accent-color:var(--accent); }
.install-nav { border-color:var(--accent)!important; }
@media (max-width:700px){ .colour-grid{grid-template-columns:1fr;} }

.checkout-confirm { margin: 0 0 16px; padding: 16px; display:flex; gap:12px; align-items:flex-start; background:color-mix(in srgb, var(--accent) 20%, var(--panel)); border:2px solid var(--accent); border-radius:14px; box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 14%, transparent); }
.checkout-confirm-icon { font-size:1.8rem; line-height:1; }
.checkout-confirm strong { color:var(--accent-2); font-size:1.08rem; }
.checkout-confirm p { margin:6px 0 0; color:var(--text); line-height:1.45; }
.practice-progress { display:flex; justify-content:center; gap:18px; flex-wrap:wrap; margin:0 auto 12px; padding:10px 14px; border:1px solid var(--line); border-radius:999px; width:fit-content; background:var(--panel-2); }
.practice-progress span { color:var(--muted); }


/* v0.4 game refinements */
.game-help { display:flex; gap:12px; align-items:flex-start; margin:0 0 12px; padding:13px 15px; border:1px solid color-mix(in srgb, var(--accent) 38%, var(--line)); border-radius:14px; background:color-mix(in srgb, var(--accent) 9%, var(--panel)); line-height:1.45; }
.game-help strong { flex:0 0 auto; color:var(--accent-2); }
.game-help span { color:var(--muted); }
.target-focus { display:grid; place-items:center; text-align:center; gap:3px; padding:14px; border:1px solid color-mix(in srgb, var(--accent) 42%, var(--line)); border-radius:16px; background:color-mix(in srgb, var(--accent) 10%, var(--panel)); }
.target-focus span { color:var(--muted); font-size:.78rem; letter-spacing:.08em; font-weight:800; }
.target-focus strong { font-size:clamp(2.1rem,8vw,4.6rem); line-height:1; }
.target-focus-large { margin-bottom:12px; }
.target-focus-large strong { font-size:clamp(4rem,18vw,8rem); }
.current-turn { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:10px 12px; border-radius:12px; background:var(--panel-2); }
.current-turn span { color:var(--muted); }
.quick-score-block { max-width:520px; margin:0 auto; }
.quick-score-label { text-align:center; color:var(--muted); font-size:.9rem; margin-top:4px; }
.cricket-table th,.cricket-table td { text-align:center; min-width:72px; }
.cricket-table th:first-child { text-align:left; min-width:70px; }
.cricket-mark { font-size:1.6rem; font-weight:900; }
.cricket-dead { opacity:.48; }
.table-score { margin-top:4px; font-size:.75rem; color:var(--accent-2); text-transform:none; letter-spacing:0; }
.cricket-legend { display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin-top:12px; color:var(--muted); font-size:.85rem; }
.cricket-mults { grid-template-columns:repeat(3,1fr); }
.cricket-targets { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:10px; }
.cricket-targets button,.sdt-grid button,.hit-count-grid button { min-height:70px; border:1px solid var(--line); border-radius:13px; background:var(--panel-2); color:var(--text); font-weight:900; }
.cricket-targets button:disabled { opacity:.28; cursor:not-allowed; }
.cricket-targets button:hover:not(:disabled),.sdt-grid button:hover,.hit-count-grid button:hover { border-color:var(--accent); }
.miss-button { border-color:color-mix(in srgb, var(--danger) 55%, var(--line))!important; }
.killer-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; margin-bottom:12px; }
.killer-card { position:relative; padding:14px; border:1px solid var(--line); border-radius:16px; background:var(--panel); }
.killer-card.active { border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.killer-card.eliminated { opacity:.42; }
.killer-card-top { display:flex; justify-content:space-between; gap:8px; align-items:center; }
.killer-badge { padding:5px 8px; border-radius:999px; border:1px solid var(--line); color:var(--muted); font-size:.7rem; font-weight:900; letter-spacing:.05em; }
.killer-badge.on { background:var(--accent); color:#11180b; border-color:var(--accent); }
.killer-number { font-size:2.8rem; font-weight:900; text-align:center; margin:10px 0 4px; }
.killer-lives { text-align:center; letter-spacing:5px; font-size:1.5rem; color:color-mix(in srgb, var(--muted) 30%, transparent); }
.killer-lives .live { color:#e06464; }
.eliminated-label { text-align:center; font-weight:900; color:var(--danger); margin-top:5px; }
.killer-attack-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:8px; }
.killer-attack { min-height:68px; display:grid; gap:2px; place-items:center; }
.killer-attack strong { font-size:1.5rem; }
.killer-attack span { color:var(--muted); font-size:.82rem; }
.sdt-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:12px; }
.sdt-grid button { display:grid; place-items:center; gap:4px; min-height:100px; }
.sdt-grid button strong { font-size:2.1rem; }
.sdt-grid button span { color:var(--muted); font-size:.8rem; }
.training-score-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:12px; }
.hit-count-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.hit-count-grid button { min-height:90px; display:grid; place-items:center; gap:2px; }
.hit-count-grid button.primary { background:var(--accent); color:#10150b; border-color:var(--accent); }
.hit-count-grid button strong { font-size:2rem; }
.hit-count-grid button span { font-size:.8rem; }
@media (max-width:700px){
  .game-help{display:grid;gap:5px;}
  .cricket-targets{grid-template-columns:repeat(2,1fr);}
  .sdt-grid{grid-template-columns:repeat(2,1fr);}
  .training-score-grid{grid-template-columns:1fr 1fr;}
  .hit-count-grid{grid-template-columns:repeat(2,1fr);}
}

/* v0.6 leaderboards, honours and compact Cricket */
.cricket-rules { margin:0 0 8px; padding:8px 11px; border:1px solid color-mix(in srgb, var(--accent) 32%, var(--line)); border-radius:11px; background:color-mix(in srgb, var(--accent) 7%, var(--panel)); color:var(--muted); font-size:.86rem; }
.cricket-rules summary { cursor:pointer; color:var(--accent-2); font-weight:800; }
.cricket-rules div { padding-top:7px; line-height:1.4; }
.cricket-score-card { padding:9px 12px; }
.cricket-score-card .cricket-table th,.cricket-score-card .cricket-table td { padding:5px 6px; min-width:62px; }
.cricket-score-card .cricket-table th:first-child { min-width:58px; }
.cricket-score-card .cricket-mark { font-size:1.35rem; line-height:1.15; }
.cricket-score-card .table-score { margin-top:2px; font-size:.7rem; }
.cricket-score-card .cricket-legend { margin-top:6px; gap:10px; font-size:.76rem; }
.cricket-controls { padding:10px 12px; margin-top:8px; }
.cricket-controls .multis { margin:0 0 7px; }
.cricket-controls .cricket-targets { margin-top:0; gap:6px; }
.cricket-controls .cricket-targets button { min-height:54px; border-radius:11px; }

.leaderboard-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; }
.leaderboard-card { padding:14px; }
.leaderboard-card h3 { margin:0 0 9px; font-size:1rem; }
.leader-row { display:grid; grid-template-columns:30px 1fr auto; gap:7px; align-items:center; padding:7px 0; border-top:1px solid var(--line); font-size:.9rem; }
.leader-row:first-of-type { border-top:0; }
.leader-row > span:last-child { color:var(--accent-2); font-weight:800; }
.leader-rank { text-align:center; }
.honours-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; }
.honour-card { padding:14px; }
.honour-card h3 { margin:0 0 10px; }
.badge-wrap { display:flex; flex-wrap:wrap; gap:7px; }
.award-badge { display:inline-flex; align-items:center; gap:6px; padding:7px 9px; border:1px solid color-mix(in srgb, var(--accent) 42%, var(--line)); border-radius:999px; background:color-mix(in srgb, var(--accent) 10%, var(--panel)); font-size:.78rem; font-weight:800; }
.table-badges { display:inline-flex; gap:3px; margin-left:6px; vertical-align:middle; }
.record-strip { display:flex; justify-content:center; align-items:center; gap:12px; flex-wrap:wrap; margin:14px auto 2px; padding:10px 13px; max-width:520px; border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line)); border-radius:12px; background:color-mix(in srgb, var(--accent) 10%, var(--panel)); }
.record-strip span { color:var(--muted); }
.record-strip strong { color:var(--accent-2); }
.result-hero { text-align:center; }
.result-hero h2 { margin-bottom:6px; }
.result-hero p { margin-top:0; }

@media (max-width:700px){
  .cricket-score-card { padding:7px 8px; }
  .cricket-score-card .cricket-table th,.cricket-score-card .cricket-table td { padding:4px 4px; min-width:54px; }
  .cricket-controls { padding:8px; }
  .cricket-controls .cricket-targets { grid-template-columns:repeat(3,1fr); }
  .cricket-controls .cricket-targets button { min-height:50px; }
  .leaderboard-grid { grid-template-columns:1fr; }
}

.checkout-confirm-body { flex:1; min-width:0; }
.checkout-dart-actions { margin-top:12px; flex-wrap:wrap; }
.checkout-dart-actions .btn { min-width:110px; }
.checkout-dart-actions .btn:disabled { opacity:.35; cursor:not-allowed; }
.small-note { font-size:.88rem; margin-top:10px !important; }

/* v0.7 player dashboards, rivalry, Dartboard Mode, DartBot and training analytics */
.player-directory{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.player-directory-card{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;cursor:pointer;transition:border-color .15s ease,transform .15s ease}.player-directory-card:hover,.player-directory-card:focus-visible{border-color:var(--accent);transform:translateY(-1px);outline:none}.player-avatar,.profile-avatar{display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--accent) 18%,var(--panel-2));border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent-2);font-weight:900}.player-avatar{width:48px;height:48px;font-size:1.3rem}.player-delete{padding:6px 10px}.profile-hero{display:flex;align-items:center;gap:18px}.profile-avatar{width:82px;height:82px;font-size:2.35rem;flex:0 0 auto}.profile-hero h2{margin:0 0 3px;font-size:2rem}.profile-hero p{margin:0 0 10px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin:12px 0}.metric-card{text-align:center;display:grid;gap:3px;padding:14px}.metric-card>span{font-size:1.25rem}.metric-card>strong{font-size:1.7rem;color:var(--accent-2)}.metric-card>small{color:var(--muted)}.metric-card>em{font-size:.72rem;color:var(--muted);font-style:normal}.dashboard-grid,.training-analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}.mini-stat-list{display:grid}.mini-stat-list>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line)}.mini-stat-list>div:first-child{border-top:0}.history-list{padding-top:4px;padding-bottom:4px}.history-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.history-row:first-child{border-top:0}.result-pill{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;font-weight:900}.result-pill.win{color:#b8df83;background:color-mix(in srgb,#8fca70 14%,transparent)}.result-pill.loss{color:#ff9797;background:color-mix(in srgb,#e06464 14%,transparent)}.history-stat{color:var(--accent-2);font-weight:800;text-align:right}.training-big{font-size:2.25rem;font-weight:900;color:var(--accent-2);margin:8px 0}.double-bars{display:grid;gap:7px;margin-top:10px}.double-bar-row{display:grid;grid-template-columns:42px 1fr 42px;gap:8px;align-items:center;font-size:.82rem}.double-track{height:7px;border-radius:999px;background:var(--panel-2);overflow:hidden}.double-track i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.rivalry-picker{display:grid;grid-template-columns:minmax(220px,1fr) minmax(360px,1.1fr);gap:16px;align-items:center}.rivalry-picker h3{margin:0 0 4px}.rivalry-picker p{margin:0}.rivalry-controls{display:grid;grid-template-columns:1fr auto 1fr auto;gap:8px;align-items:center}.click-row{cursor:pointer}.click-row:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.h2h-hero{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-align:center;gap:18px}.h2h-hero>div:first-child,.h2h-hero>div:last-child{display:grid;gap:3px}.h2h-hero strong{font-size:1.25rem}.h2h-wins{font-size:clamp(3rem,9vw,5.5rem);font-weight:900;line-height:1;color:var(--accent-2)}.h2h-vs{font-size:1.2rem;font-weight:900;color:var(--muted)}.h2h-vs div{font-size:.75rem;font-weight:500;margin-top:5px}.streak-strip{width:fit-content;max-width:100%;margin:10px auto 12px;padding:8px 13px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--panel));color:var(--accent-2);font-weight:800}.h2h-table{display:grid;grid-template-columns:minmax(130px,1.2fr) 1fr 1fr;gap:0;padding:4px 16px}.h2h-table>*{padding:10px 6px;border-top:1px solid var(--line);text-align:center}.h2h-table>*:nth-child(-n+3){border-top:0}.h2h-table>span{text-align:left;color:var(--muted)}.h2h-history{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}.h2h-history:first-child{border-top:0}.h2h-history strong{color:var(--accent-2);font-size:1.15rem}.h2h-history span:last-child{text-align:right;color:var(--muted)}
.x01-shell{display:block}.bot-turn{display:grid;place-items:center;text-align:center;gap:5px;min-height:250px}.bot-avatar{font-size:4.5rem}.bot-turn strong{font-size:1.5rem}.bot-turn span{color:var(--muted)}
.result-complete{padding:22px}.result-crown{font-size:4rem}.eyebrow{display:block;font-size:.72rem;letter-spacing:.13em;font-weight:900;color:var(--accent-2);margin-bottom:5px}.finish-highlight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:18px auto 2px;max-width:720px}.finish-highlight-grid.single{grid-template-columns:minmax(180px,320px);justify-content:center}.finish-highlight-grid>div{display:grid;gap:3px;padding:12px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line)}.finish-highlight-grid strong{font-size:1.45rem;color:var(--accent-2)}.finish-highlight-grid span{font-size:.75rem;color:var(--muted)}.finish-actions{margin-top:12px}.training-snapshot,.training-live{display:grid;gap:3px;text-align:center;margin:14px 0;padding:12px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line)}.training-snapshot strong,.training-live strong{font-size:1.45rem;color:var(--accent-2)}.training-snapshot span,.training-live span{color:var(--muted);font-size:.85rem}.training-finish-detail{margin-top:12px;text-align:left}

/* Dartboard Mode: distraction-free during active scoring, with a true tablet landscape layout. */
body.dartboard-enabled.gameplay-active.x01-gameplay .topbar{display:none}body.dartboard-enabled.gameplay-active .app{max-width:1320px;padding-top:10px}body.dartboard-enabled.gameplay-active .x01-title{margin-top:0}body.dartboard-enabled.gameplay-active .player-score .score{font-size:clamp(4rem,11vw,7rem)}body.dartboard-enabled.gameplay-active .game-status{font-size:1.05rem;font-weight:800}body.dartboard-enabled.gameplay-active .keypad button{min-height:58px;font-size:1.25rem}body.dartboard-enabled.gameplay-active .quick-total{font-size:3rem}
@media (orientation:landscape) and (min-width:800px){body.dartboard-enabled.gameplay-active .app{max-width:1500px}body.dartboard-enabled.gameplay-active .x01-shell{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(430px,.95fr);gap:14px;align-items:start}body.dartboard-enabled.gameplay-active .x01-board-pane{position:sticky;top:10px}body.dartboard-enabled.gameplay-active .scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}body.dartboard-enabled.gameplay-active .player-score{padding:13px}body.dartboard-enabled.gameplay-active .player-score .score{font-size:clamp(3.6rem,7vw,6.6rem)}body.dartboard-enabled.gameplay-active .x01-entry-pane{margin:0;padding:14px}body.dartboard-enabled.gameplay-active .x01-entry-pane .keypad{max-width:none;margin:8px 0}body.dartboard-enabled.gameplay-active .x01-entry-pane .keypad button{min-height:52px}body.dartboard-enabled.gameplay-active .quick-total{font-size:2.7rem}body.dartboard-enabled.gameplay-active .x01-secondary-actions{margin-top:8px}body.dartboard-enabled.gameplay-active .dartboard{grid-template-columns:repeat(7,1fr)}}
@media (max-width:700px){.profile-hero{align-items:flex-start}.profile-avatar{width:62px;height:62px;font-size:1.8rem}.history-row{grid-template-columns:34px minmax(0,1fr)}.history-stat{grid-column:2;text-align:left;font-size:.85rem}.rivalry-picker{grid-template-columns:1fr}.rivalry-controls{grid-template-columns:1fr auto 1fr}.rivalry-controls .btn{grid-column:1/-1}.h2h-hero{gap:8px}.h2h-table{grid-template-columns:minmax(100px,1.1fr) 1fr 1fr;padding:3px 8px;font-size:.9rem}.finish-highlight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.training-analytics-grid{grid-template-columns:1fr}}


/* v0.7.2 Training Centre + Doubles Trainer */
.training-centre-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:14px;padding:22px}.training-centre-hero h2{margin:0 0 5px;font-size:clamp(1.8rem,5vw,2.8rem)}.training-centre-hero p{margin:0;max-width:720px}.training-centre-mark{font-size:clamp(3.5rem,10vw,6rem);filter:drop-shadow(0 7px 18px rgba(0,0,0,.25))}.training-centre-grid{margin-bottom:14px}.training-options{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.training-options h3,.training-options h4{margin:0 0 10px}.training-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.training-mode-option{position:relative;cursor:pointer}.training-mode-option input{position:absolute;opacity:0;pointer-events:none}.training-mode-option span{display:grid;gap:3px;height:100%;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--panel-2);transition:border-color .15s ease,background .15s ease}.training-mode-option small{color:var(--muted);font-weight:500}.training-mode-option input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,var(--panel-2));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent)}.training-pass-row{margin-top:12px}.custom-double-wrap{margin-top:14px}.double-choice-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.double-choice{cursor:pointer;position:relative}.double-choice input{position:absolute;opacity:0;pointer-events:none}.double-choice span{display:grid;place-items:center;min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);font-weight:800}.double-choice input:checked+span{background:var(--accent);border-color:var(--accent);color:#10150b}.hidden{display:none!important}
@media(max-width:700px){.training-centre-hero{align-items:flex-start}.training-centre-mark{font-size:3.3rem}.training-mode-grid{grid-template-columns:1fr}.double-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Native mobile shell */
.native-mobile .app{padding-top:max(18px,env(safe-area-inset-top));padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));padding-bottom:max(18px,env(safe-area-inset-bottom))}
@media(max-width:700px){.native-mobile .app{padding-top:max(10px,env(safe-area-inset-top));padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:max(10px,env(safe-area-inset-bottom))}}

/* Mobile 0.1.3: polished theming, unified gameplay shell and DartBot reveal */
:root{--accent-contrast:#101411}
.btn.primary{color:var(--accent-contrast)}
.native-mobile.gameplay-active .topbar{display:none}
.native-mobile.gameplay-active .app{max-width:1320px;padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}
.native-mobile.gameplay-active .section-title{margin-top:4px}
.native-mobile.gameplay-active .player-score .score{font-size:clamp(4rem,11vw,7rem)}
.native-mobile.gameplay-active .keypad button{min-height:58px;font-size:1.25rem}
.native-mobile.gameplay-active .quick-total{font-size:3rem}
.native-mobile.gameplay-active .target-focus-large strong{font-size:clamp(4.5rem,18vw,8rem)}
.game-exit-row{display:flex;justify-content:center;margin:12px 0 max(4px,env(safe-area-inset-bottom))}
.game-exit-row .btn{min-width:130px}
.bot-reveal{border:2px solid color-mix(in srgb,var(--accent) 65%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));padding:20px;animation:botPop .18s ease-out}
.bot-visit-score{font-size:clamp(4.8rem,18vw,8rem);font-weight:950;line-height:.95;letter-spacing:-.04em;color:var(--accent-2)}
@keyframes botPop{from{transform:scale(.96);opacity:.5}to{transform:scale(1);opacity:1}}
.theme-preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin-top:12px}
.theme-preset{display:grid;gap:9px;text-align:left;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);color:var(--text)}
.theme-preset.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.theme-mini{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:28px 18px;gap:4px;padding:6px;border-radius:9px;background:var(--preview-bg);border:1px solid color-mix(in srgb,var(--preview-text) 16%,transparent)}
.theme-mini i{grid-column:1/-1;background:var(--preview-panel);border-radius:5px}
.theme-mini b,.theme-mini em{display:block;background:var(--preview-panel);border-radius:4px}
.theme-mini em{opacity:.7}
.settings-subhead{margin:18px 0 9px}
.accent-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.accent-swatch{width:38px;height:38px;border-radius:50%;border:3px solid var(--panel);outline:1px solid var(--line);background:var(--swatch);padding:0}
.accent-swatch.selected{outline:3px solid var(--text);outline-offset:2px}
.custom-accent{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:5px 8px 5px 11px;background:var(--panel-2)}
.custom-accent input{width:34px;height:30px;padding:1px;border:0;background:none}
.mode-default-note{display:flex;gap:11px;align-items:flex-start;margin-top:12px;padding:13px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--panel));border-radius:13px}
.mode-default-note>span{font-size:1.5rem}.mode-default-note p{margin:4px 0 0;color:var(--muted)}
@media (orientation:landscape) and (min-width:800px){
  .native-mobile.gameplay-active .app{max-width:1500px}
  .native-mobile.gameplay-active .x01-shell{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(430px,.95fr);gap:14px;align-items:start}
  .native-mobile.gameplay-active .x01-board-pane{position:sticky;top:10px}
  .native-mobile.gameplay-active .scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}
  .native-mobile.gameplay-active .player-score{padding:13px}
  .native-mobile.gameplay-active .player-score .score{font-size:clamp(3.6rem,7vw,6.6rem)}
  .native-mobile.gameplay-active .x01-entry-pane{margin:0;padding:14px}
  .native-mobile.gameplay-active .x01-entry-pane .keypad{max-width:none;margin:8px 0}
  .native-mobile.gameplay-active .x01-entry-pane .keypad button{min-height:52px}
  .native-mobile.gameplay-active .quick-total{font-size:2.7rem}
  .native-mobile.gameplay-active .dartboard{grid-template-columns:repeat(7,1fr)}
}
@media(max-width:700px){
  .theme-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .native-mobile.gameplay-active .app{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}
}
/* v0.8 local-first data controls */
.data-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.data-summary>div{display:grid;gap:3px;text-align:center;padding:12px 8px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.data-summary strong{font-size:1.55rem;color:var(--accent-2)}.data-summary span{font-size:.75rem;color:var(--muted)}.data-actions{justify-content:flex-start}.file-btn{position:relative;overflow:hidden;cursor:pointer}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.migration-card{border-color:color-mix(in srgb,var(--accent) 28%,var(--line))}.data-card .small-note,.migration-card .small-note{margin-top:10px}.local-first .topbar{margin-top:0}@media(max-width:620px){.data-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

.backup-indicator{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;margin:14px 0;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.backup-indicator-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900}.backup-indicator>div{display:grid;gap:2px}.backup-indicator strong{font-size:.92rem}.backup-indicator span:not(.backup-indicator-icon){font-size:.76rem;color:var(--muted)}.backup-indicator.ok{border-color:color-mix(in srgb,#8fca70 38%,var(--line))}.backup-indicator.ok .backup-indicator-icon{background:color-mix(in srgb,#8fca70 18%,transparent);color:#b8df83}.backup-indicator.warn{border-color:color-mix(in srgb,#e3b35f 44%,var(--line))}.backup-indicator.warn .backup-indicator-icon{background:color-mix(in srgb,#e3b35f 16%,transparent);color:#f0c875}

/* v0.9.x progression */
.progress-card{overflow:hidden}.progress-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.progress-metrics{display:flex;gap:7px;flex-wrap:wrap}.progress-metric-btn{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:999px;padding:8px 11px;font-weight:800;cursor:pointer}.progress-metric-btn.active{background:color-mix(in srgb,var(--accent) 16%,var(--panel-2));border-color:var(--accent);color:var(--accent-2)}.progress-toolbar select{width:auto;min-width:105px}.progress-summary{display:grid;grid-template-columns:minmax(110px,.55fr) minmax(90px,.45fr) minmax(240px,1.6fr);gap:12px;align-items:center;margin:16px 0 4px}.progress-summary>div{display:grid;gap:3px}.progress-summary span{font-size:.72rem;color:var(--muted);font-weight:800;letter-spacing:.05em}.progress-summary strong{font-size:1.9rem;color:var(--accent-2)}.progress-summary small{color:var(--muted)}.progress-trend-copy{align-content:center}.progress-delta{display:inline-flex!important;align-items:center;width:fit-content;border-radius:999px;padding:5px 9px!important;font-size:.76rem!important;letter-spacing:0!important;margin-top:5px}.progress-delta.up{color:#b9df91;background:color-mix(in srgb,#88c965 13%,transparent)}.progress-delta.down{color:#ffaaaa;background:color-mix(in srgb,#df6666 13%,transparent)}.progress-delta.neutral{background:var(--panel-2)}.progress-chart-wrap{width:100%;overflow:hidden;margin-top:4px}.progress-chart{display:block;width:100%;height:auto;color:var(--accent)}.progress-grid{stroke:var(--line);stroke-width:1}.progress-axis{fill:var(--muted);font-size:11px}.progress-area{fill:color-mix(in srgb,var(--accent) 12%,transparent);stroke:none}.progress-line{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.progress-dot{fill:var(--panel);stroke:currentColor;stroke-width:3}.progress-empty{min-height:150px;display:grid;place-content:center;text-align:center;gap:5px;color:var(--muted)}.progress-empty strong{color:var(--text)}.progress-note{font-size:.76rem;color:var(--muted);margin:4px 0 0}.training-progress-card{display:grid;grid-template-columns:minmax(220px,1.2fr) auto minmax(240px,1fr);gap:18px;align-items:center;margin:12px 0}.training-progress-card h3{margin:2px 0 4px}.training-progress-card p{margin:0}.training-progress-controls{display:grid;gap:8px;min-width:160px}.training-progress-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.training-progress-summary>div{padding:10px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;display:grid;gap:2px}.training-progress-summary span{font-size:.72rem;color:var(--muted)}.training-progress-summary strong{font-size:1.35rem;color:var(--accent-2)}.training-progress-summary small{font-size:.72rem;color:var(--muted)}.training-progress-summary small.positive{color:#b9df91}.training-progress-summary small.negative{color:#ffaaaa}
@media (max-width:800px){.progress-summary{grid-template-columns:1fr 1fr}.progress-trend-copy{grid-column:1/-1}.training-progress-card{grid-template-columns:1fr}.training-progress-controls{grid-template-columns:1fr auto}.training-progress-summary{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.progress-metrics{display:grid;grid-template-columns:1fr 1fr;width:100%}.progress-metric-btn{border-radius:10px}.progress-toolbar select{width:100%}.progress-summary{grid-template-columns:1fr 1fr}.training-progress-controls{grid-template-columns:1fr}.training-progress-summary{grid-template-columns:1fr 1fr}}

/* v0.9.2 protected player management */
.player-open-hint{font-size:2rem;color:var(--muted);line-height:1;padding:0 4px 4px 10px}
.player-danger-zone{margin-top:18px;border:1px solid color-mix(in srgb,#c85959 35%,var(--panel));display:grid;gap:12px}
.player-danger-zone h3{margin:0 0 4px}
.danger-outline{background:transparent!important;border:1px solid #c85959!important;color:#e28a8a!important;justify-self:start}
.delete-confirm-panel{border-top:1px solid color-mix(in srgb,#c85959 35%,transparent);padding-top:14px;max-width:620px}
.delete-confirm-panel p{line-height:1.45}
.delete-confirm-panel input{margin-top:6px}


/* v0.9.4 Personal Coach */
.personal-coach-card{margin:14px 0;border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,var(--panel)),var(--panel) 62%)}
.personal-coach-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.personal-coach-head h2{margin:2px 0 5px;font-size:clamp(1.8rem,5vw,2.6rem)}.personal-coach-head p{margin:0;max-width:700px}.coach-mark{font-size:2.6rem;line-height:1}
.coach-controls{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:14px;align-items:end;margin-top:18px}.coach-duration{display:flex;gap:8px;flex-wrap:wrap}.coach-duration .btn{min-width:92px}.coach-insight{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.coach-focus{display:grid;gap:3px}.coach-focus strong{font-size:1.25rem;color:var(--accent-2)}.coach-focus p{margin:2px 0 10px;color:var(--muted);line-height:1.45}.coach-mini-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.coach-mini-metrics>div{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line)}.coach-mini-metrics span{font-size:.72rem;color:var(--muted)}.coach-mini-metrics strong{font-size:1.25rem}.coach-mini-metrics small{font-size:.7rem;color:var(--muted)}.coach-mini-metrics small.positive,.coach-finish small.positive{color:#b9df91}.coach-mini-metrics small.negative,.coach-finish small.negative{color:#ffaaaa}
.coach-plan-hero{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 11%,var(--panel)),var(--panel) 65%)}.coach-plan-hero h2{font-size:clamp(1.8rem,5vw,2.7rem);max-width:820px;margin:5px 0}.coach-plan-hero p{color:var(--muted);max-width:820px;line-height:1.5}.coach-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.coach-tags span{padding:6px 9px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);font-size:.76rem;color:var(--muted)}
.coach-plan-list{display:grid;gap:9px;margin:12px 0}.coach-plan-step{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:13px 15px}.coach-plan-step h3{margin:2px 0}.coach-plan-step p{margin:0}.coach-plan-step>strong{font-size:.7rem;color:var(--accent-2);letter-spacing:.08em}.coach-step-num{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:color-mix(in srgb,var(--accent) 15%,var(--panel-2));color:var(--accent-2);font-weight:900;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line))}
.coach-step-complete{border-color:color-mix(in srgb,#8fca70 40%,var(--line))}.coach-next{margin:12px 0}.coach-next h3{margin:4px 0}.coach-next p{margin:0}.coach-review{margin:12px 0}.coach-review h3{margin-top:0}.coach-result-list{display:grid;gap:7px;margin:10px 0}.coach-result-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line)}.coach-result-list span{color:var(--muted)}.coach-result-list strong{color:var(--accent-2)}
@media(max-width:650px){.coach-controls{grid-template-columns:1fr}.coach-duration{display:grid;grid-template-columns:repeat(3,1fr)}.coach-duration .btn{min-width:0}.coach-mini-metrics{grid-template-columns:1fr 1fr}.coach-mini-metrics>div:last-child{grid-column:1/-1}.coach-plan-step{grid-template-columns:36px 1fr}.coach-plan-step>strong{display:none}}

.profile-coach-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}.profile-coach-card h3{margin:3px 0}.profile-coach-card p{margin:0;max-width:720px}.profile-coach-card .btn{flex:0 0 auto}@media(max-width:620px){.profile-coach-card{align-items:stretch;flex-direction:column}.profile-coach-card .btn{width:100%}}

.coach-session-strip{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:8px 11px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));font-size:.76rem;color:var(--muted)}.coach-session-strip strong{color:var(--accent-2)}

/* 0.9.4 Performance Intelligence */
.home-primary-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.home-secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-primary-grid .card{border-color:color-mix(in srgb,var(--accent) 25%,var(--line))}
.progress-multi{max-width:100%}.progress-multi .progress-metric-btn{display:inline-flex;align-items:center;gap:7px}.progress-metric-btn i{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto}.progress-controls{display:flex;gap:8px;flex-wrap:wrap}.progress-controls select{width:auto}.progress-overlay-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin:14px 0}.progress-overlay-summary>div{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.progress-overlay-summary span{font-size:.72rem;color:var(--muted)}.progress-overlay-summary strong{font-size:1.25rem}.progress-overlay-summary small{font-size:.7rem;color:var(--muted)}.progress-overlay-summary small.positive{color:#b9df91}.progress-overlay-summary small.negative{color:#ffaaaa}.performance-insight{display:grid;gap:5px;margin-top:10px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent) 8%,var(--panel-2));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line))}.performance-insight strong{font-size:.9rem;line-height:1.45;font-weight:700}.progress-overlay-chart{min-height:240px}
.bot-arena-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--panel)),var(--panel) 68%)}.bot-arena-hero h2{margin:4px 0;font-size:clamp(1.9rem,5vw,3rem)}.bot-arena-hero p{margin:0;max-width:720px}.bot-arena-avatar{font-size:4.3rem;line-height:1}.bot-arena-setup{margin:12px 0}.bot-style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.bot-style-grid .btn{display:grid;gap:2px;text-align:left;min-height:66px}.bot-style-grid .btn span{font-size:.72rem;color:var(--muted);font-weight:500}.bot-style-grid .btn.primary span{color:color-mix(in srgb,var(--accent-contrast) 78%,transparent)}.bot-arena-recommendation{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);margin:12px 0}.bot-arena-recommendation h3{margin:2px 0}.bot-arena-recommendation p{margin:2px 0}.bot-rec-avatar{font-size:2.4rem}.section-title.compact{margin-top:0}.coach-performance-link{display:grid;gap:4px;margin:12px 0;padding:10px 12px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line)}.coach-performance-link strong{font-size:.82rem;line-height:1.45;color:var(--text)}
@media(max-width:820px){.home-primary-grid{grid-template-columns:1fr}.home-secondary-grid{grid-template-columns:1fr 1fr}.progress-overlay-summary{grid-template-columns:1fr 1fr}.bot-style-grid{grid-template-columns:1fr}.bot-style-grid .btn{text-align:center}}
@media(max-width:520px){.home-secondary-grid{grid-template-columns:1fr}.progress-controls{width:100%}.progress-controls select{width:100%}.progress-overlay-summary{grid-template-columns:1fr 1fr}.bot-arena-hero{align-items:flex-start}.bot-arena-avatar{font-size:3rem}.bot-arena-recommendation{grid-template-columns:1fr}.bot-rec-avatar{display:none}}

/* 0.9.5 quiet copyright treatment */
.dartdeck-home-footer{margin:18px 0 10px;padding:8px 0;text-align:center;color:var(--muted);font-size:.74rem;opacity:.75}.dartdeck-home-footer span{opacity:.8}

/* DartDeck 0.9.7 — Precision Sport: independent of the saved user accent */
:root { --radius:18px; --surface-raised:color-mix(in srgb,var(--panel) 87%,var(--text)); }
body {background:var(--bg);letter-spacing:-.012em;}
.app {max-width:1050px;padding:24px 20px 110px;}
.card {box-shadow:none;border:1px solid color-mix(in srgb,var(--text) 10%,var(--panel));background:var(--panel);border-radius:19px;}
.card h2,.card h3{letter-spacing:-.025em;}
.card.click:hover{transform:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent);}
.btn {display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:650;min-height:42px;}
.btn.primary {box-shadow:0 3px 12px color-mix(in srgb,var(--accent) 20%,transparent)}
.ui-icon {display:inline-block;flex:none;vertical-align:middle;}
.sr-only {position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap;}
.sport-topbar {position:relative;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;margin:0 0 22px;padding:4px 0 16px;border-bottom:1px solid var(--line)}
.brand-button {background:none;border:0;color:var(--text);padding:0;text-align:left;cursor:pointer;}
.brand-icon {width:47px;height:47px;border-radius:12px;box-shadow:none;}
.brand-word{display:flex;flex-direction:column;gap:3px;}
.brand-word strong{font-size:1.32rem;font-weight:900;letter-spacing:-.05em;font-style:italic;}
.brand-word small{font-size:.57rem;letter-spacing:.18em;color:var(--muted);font-weight:650;}
.header-actions {display:flex;align-items:center;gap:8px;min-width:0;}
.current-player-slot {min-width:0;max-width:170px;}
.player-switch-label{display:block;position:relative;min-width:0;}
.player-switch-label select{max-width:162px;width:auto;min-width:94px;border-radius:999px;font-size:.82rem;font-weight:650;padding:9px 30px 9px 13px;background:var(--panel);color:var(--text);appearance:auto;}
.player-switch {background:var(--panel);border:1px solid var(--line);border-radius:999px;color:var(--text);padding:9px 12px;white-space:nowrap;display:flex;align-items:center;gap:5px;}
.icon-button{width:43px;height:43px;border-radius:13px;border:1px solid var(--line);color:var(--muted);display:grid;place-items:center;background:var(--panel);}
.bottom-nav{position:fixed;z-index:150;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,850px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:3px;background:color-mix(in srgb,var(--bg) 94%,var(--panel));border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;padding:8px max(6px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));backdrop-filter:blur(18px);box-shadow:0 -12px 32px #0003;}
.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px 0;min-height:52px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-size:.68rem;font-weight:650;min-width:0;}
.bottom-nav button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.bottom-nav button.active{color:var(--accent-2);background:color-mix(in srgb,var(--accent) 12%,var(--bg));}
.bottom-nav button:focus-visible,.brand-button:focus-visible,.icon-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.gameplay-active .bottom-nav,.gameplay-active .sport-topbar {display:none!important;}
.sport-page-heading{margin:3px 0 21px;align-items:center;}
.sport-page-heading h2{font-size:clamp(1.85rem,5vw,2.45rem);font-weight:850;line-height:1.12;margin:0;letter-spacing:-.045em;}
.eyebrow{letter-spacing:.13em;font-size:.7rem;}
.home-welcome{margin:12px 2px 22px;}
.home-welcome h2{margin:6px 0;font-size:clamp(1.8rem,5vw,2.5rem);line-height:1.15;letter-spacing:-.05em;}
.home-welcome p{margin:0;}
.hero-action{width:100%;display:flex;align-items:center;text-align:left;gap:16px;padding:24px;color:var(--accent-contrast);background:linear-gradient(120deg,var(--accent),color-mix(in srgb,var(--accent) 65%,#392064));border:none;}
.hero-action-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:17px;color:inherit;background:color-mix(in srgb,var(--accent-contrast) 13%,transparent);}
.hero-action span:nth-child(2){display:grid;gap:5px;flex:1;}
.hero-action strong{font-size:1.6rem;letter-spacing:-.035em;}
.hero-action small{font-size:.85rem;opacity:.85;}
.home-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0;}
.feature-action{display:flex;flex-direction:column;align-items:flex-start;gap:11px;min-width:0;text-align:left;padding:22px;color:var(--text);}
.feature-action>.ui-icon{color:var(--accent-2);}
.feature-action strong{font-size:1.18rem;}
.feature-action small{color:var(--muted);font-size:.81rem;line-height:1.5;}
.focus-card{width:100%;position:relative;text-align:left;color:var(--text);display:block;margin:12px 0;min-height:100px;padding-right:50px;}
.focus-card span{display:flex;align-items:center;gap:10px;}
.focus-card span .ui-icon{color:var(--accent-2);}
.focus-card p{margin:10px 0 0;line-height:1.45;}
.focus-card>.ui-icon:last-child{position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--muted);}
.home-form{display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;width:100%;color:var(--text);margin:12px 0;}
.home-form>span{display:grid;gap:7px;}.home-form small{display:block;color:var(--muted)}
.form-stat{text-align:right;}.form-stat strong{font-size:1.7rem;color:var(--accent-2)}
.dartdeck-home-footer{color:var(--muted);font-size:.72rem;text-align:center;margin:28px 0;}
.sport-subtabs{display:flex;gap:5px;align-items:center;padding:5px;border:1px solid var(--line);background:var(--panel);border-radius:14px;margin:12px 0 23px;}
.sport-subtabs button{flex:1;min-width:0;border:0;background:transparent;color:var(--muted);padding:11px 7px;border-radius:10px;min-height:44px;font-weight:650;}
.sport-subtabs button.active{background:var(--accent);color:var(--accent-contrast);}
.performance-kpis,.record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0 20px;}
.performance-tile{min-width:0;padding:17px 12px;display:flex;flex-direction:column;gap:6px;border-radius:15px;background:var(--panel);border:1px solid var(--line);}
.performance-tile strong{font-size:clamp(1.15rem,4.3vw,1.9rem);line-height:1.1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;}
.performance-tile small{color:var(--muted);font-size:.71rem;}
.performance-tile em{font-size:.74rem;font-style:normal;color:var(--muted);}
.performance-tile em.positive{color:#92d5a3;}.performance-tile em.negative{color:#efa3a3;}
.status-tag{font-size:.75rem;border-radius:999px;padding:7px 10px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent-2);}
.insight-panel{display:flex;align-items:flex-start;gap:15px;margin:14px 0;}
.insight-icon{padding:12px;border-radius:14px;background:color-mix(in srgb,var(--accent) 16%,var(--panel));color:var(--accent-2);}
.insight-panel h3{margin:5px 0 6px;}
.insight-panel p{margin:0 0 14px;line-height:1.45;}
.activity-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);}
.activity-item:last-child{border-bottom:0;}
.activity-item strong,.activity-item small{display:block;}.activity-item small{color:var(--muted);margin-top:3px;}
.activity-item time{font-size:.72rem;color:var(--muted);white-space:nowrap;}
.activity-type{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:var(--accent-2);background:var(--panel-2);}
.player-grid,.play-game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:17px;}
.community-player{display:flex;align-items:center;gap:12px;text-align:left;color:var(--text);}.community-player strong{flex:1;}
.play-game-grid button{display:flex;flex-direction:column;gap:11px;align-items:flex-start;color:var(--text);text-align:left;min-height:132px;}
.play-game-grid button>.ui-icon{color:var(--accent-2)}.play-game-grid button small{color:var(--muted);}
[data-train-section][hidden]{display:none!important;}
.training-centre-hero{border:0;background:transparent;padding:0;margin:5px 0 18px;}.training-centre-hero h2{font-size:1.2rem;}.training-centre-mark{color:var(--accent-2);}
.personal-coach-card{border-color:color-mix(in srgb,var(--accent) 40%,var(--panel));}
.bot-arena-avatar,.bot-rec-avatar,.coach-mark{color:var(--accent-2);}
/* Avoid any theme-dependent fixed green on clickable controls. */
.multis button.active,.killer-badge.on,.double-choice input:checked+span,.hit-count-grid button.primary{color:var(--accent-contrast);}
@media(max-width:700px){
 .app,.native-mobile .app{padding: max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) calc(93px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));}
 .sport-topbar{flex-direction:row;align-items:center;}
 .brand-word strong{font-size:1.05rem;}.brand-word small{font-size:.45rem;letter-spacing:.1em;}
 .brand-icon{width:40px;height:40px;}
 .header-actions{gap:5px;}.player-switch-label select{max-width:121px;font-size:.78rem;min-width:76px;padding:8px 22px 8px 8px;}
 .icon-button{width:39px;height:39px;}
 .home-feature-grid{gap:9px;}.feature-action{padding:17px 14px;}
 .performance-tile{padding:14px 9px;}
 .sport-page-heading{margin-top:10px;}
 .bottom-nav{border-radius:0;}.bottom-nav button{font-size:.61rem;}
}
@media(max-width:355px){.brand-word small{display:none}.brand-word strong{font-size:.9rem}.player-switch-label select{max-width:99px;}}
@media(min-width:900px){.bottom-nav{max-width:670px;border-radius:20px 20px 0 0;}}
@media(prefers-reduced-motion:reduce){.card.click{transition:none}html{scroll-behavior:auto}}

/* 0.9.7.2 — Precision Sport refinements */
:root { --accent-contrast:#ffffff; }
button[data-manage-player] { width:100%;text-align:left;color:var(--text);cursor:pointer; }
.player-editor .actions { justify-content:flex-start; }
.player-directory-card .player-directory-copy { flex:1; }
:root[data-font-style="sport"] h1,:root[data-font-style="sport"] h2,:root[data-font-style="sport"] h3,
:root[data-font-style="sport"] .brand-word,:root[data-font-style="sport"] .player-score .score,
:root[data-font-style="sport"] .sample-score {font-family:"sans-serif-condensed","Arial Narrow",sans-serif;font-stretch:condensed;letter-spacing:.015em;}
:root[data-font-style="technical"] h1,:root[data-font-style="technical"] h2,:root[data-font-style="technical"] h3,
:root[data-font-style="technical"] .player-score .score {font-family:"sans-serif-black",Impact,sans-serif;font-weight:900;letter-spacing:.025em;}
:root[data-font-style="geometric"] h1,:root[data-font-style="geometric"] h2,:root[data-font-style="geometric"] h3 {font-family:"Century Gothic","Trebuchet MS",sans-serif;letter-spacing:.055em;}
:root[data-font-style="rounded"] h1,:root[data-font-style="rounded"] h2,:root[data-font-style="rounded"] h3 {letter-spacing:.01em;}
.icon-button svg { width:24px;height:24px; }

/* 0.9.7.2: performance clarity and accessible font presets */
@font-face{font-family:"Inter";src:url("./fonts/Inter-Regular.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:"Michroma";src:url("./fonts/Michroma-Regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("./fonts/BarlowCondensed-Regular.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Rajdhani";src:url("./fonts/Rajdhani-Regular.woff2") format("woff2");font-display:swap}
:root[data-font-style="precision"] h1,:root[data-font-style="precision"] h2,:root[data-font-style="precision"] h3,
:root[data-font-style="precision"] .brand-word,:root[data-font-style="precision"] .sample-score,
:root[data-font-style="michroma"] h1,:root[data-font-style="michroma"] h2,:root[data-font-style="michroma"] h3,
:root[data-font-style="michroma"] .brand-word,:root[data-font-style="michroma"] .sample-score{font-family:"Michroma","Arial Black",sans-serif;letter-spacing:.01em;font-weight:400}
:root[data-font-style="inter"] h1,:root[data-font-style="inter"] h2,:root[data-font-style="inter"] h3{font-family:"Inter",system-ui,sans-serif;letter-spacing:-.03em}
:root[data-font-style="sport"] h1,:root[data-font-style="sport"] h2,:root[data-font-style="sport"] h3{font-family:"Barlow Condensed","Arial Narrow",sans-serif}
:root[data-font-style="technical"] h1,:root[data-font-style="technical"] h2,:root[data-font-style="technical"] h3{font-family:"Rajdhani",sans-serif}
.recent-form-keys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:-7px 0 15px}.recent-label{font-size:.72rem;color:var(--muted);line-height:1.35}
.lifetime-records{margin-bottom:14px}.scoring-totals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.scoring-totals-grid>div{background:var(--panel-2);border-radius:14px;display:grid;justify-items:center;gap:3px;padding:18px 5px}.scoring-totals-grid strong{font-size:clamp(1.6rem,5vw,2.6rem);color:var(--accent-2);font-variant-numeric:tabular-nums}.scoring-totals-grid small{color:var(--muted);text-align:center}.score-totals{margin-bottom:16px}.score-totals .small-note{margin:12px 0 0}
.single-trend-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 3px}.single-trend-heading>div{display:grid;gap:4px}.single-trend-heading strong{font-size:1.8rem}.single-trend-heading small{color:var(--muted);font-size:.78rem}.single-trend-heading>div:last-child{text-align:right}.coach-context{font-size:.84rem;color:var(--muted);margin-top:7px;line-height:1.5}
@media(max-width:440px){.recent-form-keys{grid-template-columns:1fr;gap:4px}.single-trend-heading strong{font-size:1.4rem}}

/* 0.9.8 theme, icon, share and typography */
.settings-cog-img{width:25px;height:25px;object-fit:contain;filter:invert(1)}
.light-theme .settings-cog-img{filter:none}
.accent-picker{display:flex;gap:9px;flex-wrap:wrap;align-items:stretch}
.accent-preset{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:88px;max-width:118px;min-height:69px;padding:8px 5px;border-radius:12px;border:2px solid var(--line);background:var(--panel-2);color:var(--text);font-size:.7rem}
.accent-preset.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.accent-swatch-dot{background:var(--swatch);border-radius:50%;width:27px;height:27px;border:1px solid #ffffff55}
.accent-preset span:last-child{line-height:1.1;text-align:center}
.progress-share{justify-content:flex-end;margin:0 0 12px}
.personal-coach-head p{display:none}
/* Michroma is the consistent DartDeck typeface. Text can wrap freely on narrow phones. */
:root,:root[data-font-style]{--font-family:"Michroma","Inter",system-ui,sans-serif}
:root[data-font-style] h1,:root[data-font-style] h2,:root[data-font-style] h3,:root[data-font-style] .brand-word,:root[data-font-style] .sample-score{font-family:"Michroma","Inter",system-ui,sans-serif;font-weight:400;letter-spacing:0}
button,.nav button,select,input{overflow-wrap:anywhere}
@media(max-width:440px){.accent-preset{min-width:75px;max-width:98px}.brand-word strong{font-size:.86rem}h2{overflow-wrap:anywhere}}

/* v0.9.8.1 — typography hierarchy, compact scoring and accessible backup */
:root,:root[data-font-style]{--font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif}
body,p,small,button,input,textarea,select,label,summary,li,table,.muted,.game-help,.coach-context,.insight-panel p,.focus-card p{font-family:"Inter",system-ui,sans-serif;letter-spacing:normal}
h1,h2,h3,h4,.brand-word,.sample-score,.player-score .score,.target-big,.performance-tile strong,.scoring-totals-grid strong,.quick-total,.bot-visit-score{font-family:"Michroma","Inter",system-ui,sans-serif;font-weight:400;letter-spacing:0}
h1,h2,h3,h4{overflow-wrap:break-word;line-height:1.28}
/* Michroma scores and headings stay sporty; explanatory copy and controls stay readable. */
.friendly-backup .data-intro{display:flex;align-items:flex-start;gap:13px}
.friendly-backup .data-intro h3{margin:1px 0 6px}
.data-shield{display:grid;place-items:center;color:var(--accent-2);border-radius:12px;padding:9px;background:var(--panel-2)}
.friendly-backup .backup-primary{border-radius:14px;padding:15px;background:var(--panel-2);margin:14px 0}
.friendly-backup .backup-primary h3{margin:0 0 7px}
.friendly-backup .backup-primary p{line-height:1.5}
.simple-backup-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}
.simple-backup-actions>.btn,.simple-backup-actions>.file-btn{min-height:48px;text-align:center;display:flex;align-items:center;justify-content:center}
.advanced-recovery{margin-top:14px;padding:12px 14px;border-radius:12px;border:1px solid var(--line)}
.advanced-recovery summary{cursor:pointer;font-weight:650;min-height:28px;color:var(--text)}
.advanced-recovery .data-actions{justify-content:flex-start}
.x01-gameplay .x01-title{margin:0 0 5px}
.x01-gameplay .x01-title h2{font-size:clamp(1rem,4vw,1.35rem)}
.x01-gameplay .x01-title>.muted{font-size:.75rem}
.x01-gameplay .scoreboard{gap:6px}
.x01-gameplay .player-score{padding:9px 11px;border-radius:12px}
.x01-gameplay .player-score .name{font-family:"Inter",system-ui,sans-serif;font-size:.84rem}
.x01-gameplay .player-score .score,body.dartboard-enabled.gameplay-active.x01-gameplay .player-score .score,.native-mobile.gameplay-active.x01-gameplay .player-score .score{font-size:clamp(2.35rem,8.4vw,4.1rem);margin:5px 0;line-height:1.06;letter-spacing:0}
.x01-gameplay .player-score .meta{font-size:.73rem;gap:4px}
.x01-gameplay .checkout{padding:7px 10px;margin:6px 0;font-size:.86rem}
.x01-gameplay .x01-entry-pane{padding:10px 12px}
.x01-gameplay .game-status{margin:1px 0 4px;font-size:.85rem}
.x01-gameplay .quick-total,body.dartboard-enabled.gameplay-active.x01-gameplay .quick-total,.native-mobile.gameplay-active.x01-gameplay .quick-total{font-size:1.65rem;min-height:1.8rem;line-height:1.2}
.x01-gameplay .keypad{margin:6px auto;gap:5px}
.x01-gameplay .keypad button,body.dartboard-enabled.gameplay-active.x01-gameplay .keypad button,.native-mobile.gameplay-active.x01-gameplay .keypad button{min-height:44px;font-size:1.12rem;border-radius:9px}
.x01-gameplay .actions{margin-top:6px;gap:6px}
.x01-gameplay .btn.big{padding:10px 12px;font-size:.92rem;min-height:44px}
.x01-gameplay .x01-secondary-actions .btn{padding:7px 9px;min-height:42px;font-size:.76rem}
.x01-gameplay .x01-entry-pane .dartboard button{min-height:44px}
.x01-gameplay .multis{margin:5px 0;gap:5px}
.x01-gameplay .visit-darts{min-height:34px}
.x01-gameplay .bot-avatar{font-size:2.4rem}
.x01-gameplay .bot-turn{min-height:125px}
@media(max-width:400px){.x01-gameplay .player-score{padding:8px}.x01-gameplay .player-score .score{font-size:2.2rem}.x01-gameplay .x01-secondary-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.x01-gameplay .x01-secondary-actions .btn{overflow-wrap:normal;font-size:.68rem}.simple-backup-actions{grid-template-columns:1fr}}
@media(max-height:770px) and (max-width:700px){.x01-gameplay .player-score .score{font-size:2.1rem!important}.x01-gameplay .checkout{margin:3px 0}.x01-gameplay .keypad button{min-height:44px!important}.x01-gameplay .keypad{gap:4px;margin:4px auto}}

.restore-selected{width:100%;min-height:48px;margin-top:8px}

/* v0.9.8.2 — recover comfortable scoring rhythm, without overflowing short phones. */
.sync-explanation{padding:11px 12px;margin:10px 0;border-radius:10px;background:var(--panel-2);border:1px solid var(--line);color:var(--text);line-height:1.5;font-size:.88rem}
.x01-gameplay .scoreboard{gap:9px}
.x01-gameplay .player-score{padding:clamp(11px,1.8vh,15px);border-radius:15px}
.x01-gameplay .player-score .score,body.dartboard-enabled.gameplay-active.x01-gameplay .player-score .score,.native-mobile.gameplay-active.x01-gameplay .player-score .score{font-size:clamp(2.55rem,9vw,4.8rem);margin:7px 0;line-height:1.08}
.x01-gameplay .player-score .meta{font-size:.8rem}
.x01-gameplay .checkout{padding:9px 12px;margin:8px 0;font-size:.9rem}
.x01-gameplay .x01-entry-pane{padding:clamp(12px,2vh,17px)}
.x01-gameplay .game-status{margin:4px 0 8px;font-size:.92rem}
.x01-gameplay .quick-total,body.dartboard-enabled.gameplay-active.x01-gameplay .quick-total,.native-mobile.gameplay-active.x01-gameplay .quick-total{font-size:clamp(1.8rem,5.3vw,2.35rem);min-height:2rem}
.x01-gameplay .keypad{margin:9px auto;gap:7px}
.x01-gameplay .keypad button,body.dartboard-enabled.gameplay-active.x01-gameplay .keypad button,.native-mobile.gameplay-active.x01-gameplay .keypad button{min-height:clamp(46px,6.2vh,55px);font-size:1.16rem;border-radius:11px}
.x01-gameplay .actions{margin-top:8px;gap:8px}
.x01-gameplay .btn.big{padding:11px 13px;font-size:1rem;min-height:46px}
.x01-gameplay .x01-secondary-actions .btn{padding:9px 10px;min-height:44px;font-size:.79rem}
.x01-gameplay .visit-darts{min-height:37px}
.x01-gameplay .bot-turn{min-height:clamp(145px,22vh,205px)}
/* On shorter devices, collapse spacing only, without shrinking interactive targets. */
@media(max-height:770px) and (max-width:700px){
 .x01-gameplay .player-score{padding:10px}
 .x01-gameplay .player-score .score{font-size:clamp(2.3rem,8vw,3.3rem)!important;margin:5px 0}
 .x01-gameplay .checkout{padding:7px 9px;margin:5px 0}
 .x01-gameplay .x01-entry-pane{padding:10px 11px}
 .x01-gameplay .keypad{margin:5px auto;gap:5px}
 .x01-gameplay .keypad button{min-height:46px!important}
 .x01-gameplay .bot-turn{min-height:135px}
}


/* v0.9.8.3 — Halve-It and Shanghai four-player responsive gameplay only. */
.round-game { --round-gap:clamp(8px,1.35vh,13px); display:flex; flex-direction:column; gap:var(--round-gap); }
.round-game > .section-title { margin:0; align-items:center; gap:8px; min-width:0; }
.round-game > .section-title h2 { margin:0; font-size:clamp(1.15rem,3.7vw,1.55rem); }
.round-game > .section-title .muted { font-size:.8rem; text-align:right; overflow-wrap:anywhere; }
.round-game > .target-focus { margin:0; min-height:0; padding:clamp(8px,1.25vh,13px); gap:2px; }
.round-game > .target-focus span { font-family:Inter,system-ui,sans-serif; font-size:.7rem; }
.round-game > .target-focus strong, .native-mobile.gameplay-active .round-game > .target-focus strong {font-size:clamp(2.8rem,10.5vw,4.6rem);line-height:1.04;}
.round-game > .scoreboard { margin:0; gap:9px; }
.round-game > .scoreboard .player-score { min-width:0; padding:11px 12px; border-radius:13px; }
.round-game > .scoreboard .player-score .name {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Inter,system-ui,sans-serif;font-size:.85rem;line-height:1.2;}
.round-game > .scoreboard .player-score .score, .native-mobile.gameplay-active .round-game > .scoreboard .player-score .score, body.dartboard-enabled.gameplay-active .round-game > .scoreboard .player-score .score {font-size:clamp(2rem,7vw,3rem);margin:6px 0 2px;line-height:1.08;letter-spacing:0;}
.round-game > .scoreboard .player-score .meta { font-family:Inter,system-ui,sans-serif; font-size:.7rem; }
.round-game > .round-game-controls {padding:clamp(10px,1.6vh,15px);margin:0;}
.round-game-rules {margin:0 0 8px;font-size:.83rem;line-height:1.45;color:var(--muted);}
.round-game-rules summary {color:var(--accent-2);cursor:pointer;font-weight:650;}
.round-game-rules p {margin:7px 0 0;}
.round-game .sdt-grid { gap:8px; margin-top:7px; }
.round-game .sdt-grid button { min-height:70px; padding:8px 5px; gap:2px; }
.round-game .sdt-grid button strong { font-size:1.65rem;line-height:1; }
.round-game .sdt-grid button span {font-family:Inter,system-ui,sans-serif;font-size:.75rem;}
.round-game .visit-darts { min-height:27px; font-size:.83rem; }
.round-game .quick-score-label {font-size:.8rem;margin-top:0;}
.round-game .quick-total {font-size:1.8rem;min-height:1.9rem;line-height:1.12;}
.round-game .keypad {margin:7px auto;gap:6px;}
.round-game .keypad button {min-height:46px;border-radius:10px;}
.round-game .actions {margin-top:8px;}
.round-game .actions .btn.big {min-height:46px;padding:10px 14px;}
.round-game--multi > .scoreboard {grid-template-columns:repeat(2,minmax(0,1fr));}
.round-game--multi > .scoreboard .player-score {padding:9px 11px;}
.round-game--multi > .scoreboard .player-score .score,.native-mobile.gameplay-active .round-game--multi > .scoreboard .player-score .score {font-size:clamp(1.85rem,6vw,2.65rem);margin:4px 0 1px;}
.round-game--multi > .scoreboard .player-score .meta {display:none;}
@media (max-width:700px) {
  .round-game {--round-gap:clamp(7px,1.1vh,11px);}
  .round-game > .scoreboard {grid-template-columns:repeat(2,minmax(0,1fr));}
  .round-game .sdt-grid {grid-template-columns:repeat(4,minmax(0,1fr));}
  .round-game .sdt-grid button {min-height:62px;padding:7px 2px;}
  .round-game .sdt-grid button strong {font-size:1.48rem;}
  .round-game .sdt-grid button span {font-size:.65rem;}
}
@media (max-width:350px) {
  .round-game .sdt-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .round-game .sdt-grid button {min-height:50px;}
  .round-game > .section-title .muted {font-size:.72rem;}
}
@media (max-height:740px) and (max-width:700px) {
  .round-game {--round-gap:5px;}
  .round-game > .target-focus {padding:6px;}
  .round-game > .target-focus strong, .native-mobile.gameplay-active .round-game > .target-focus strong {font-size:2.65rem;}
  .round-game > .scoreboard .player-score {padding:7px 9px;}
  .round-game > .scoreboard .player-score .score {font-size:1.8rem;margin:3px 0 1px;}
  .round-game .keypad button {min-height:44px;}
  .round-game .round-game-controls {padding:8px 10px;}
}

@media (max-width:700px) { .round-game--solo > .scoreboard {grid-template-columns:minmax(0,1fr);} }
