:root{color-scheme:dark;--bg:#06152e;--panel:#0d2850;--panel2:#153b70;--line:#35629a;--muted:#bdd3f2;--ink:#f5f9ff;--lime:#44cfff;--orange:#44cfff;--red:#ff9991;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);min-height:100dvh}button,input,select{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--panel2);min-height:48px;padding:12px 18px;font-weight:650;transition:background .15s,transform .1s}button:hover{background:#23528b}button:active{transform:scale(.97)}button:disabled{cursor:default;opacity:.38;transform:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--lime);outline-offset:4px}input{border:1px solid var(--line);background:#091f43;color:var(--ink);border-radius:10px;padding:14px;min-width:0}h1,h2,h3,p{margin:0}h1{font-size:clamp(36px,4.8vw,62px);font-weight:780;letter-spacing:-2.5px;line-height:1.08}h2{letter-spacing:-.8px;font-size:26px}p{line-height:1.6;color:var(--muted)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1440px;margin:auto;padding:24px 40px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:var(--ink);font-size:25px;font-weight:850;letter-spacing:-1px}.brand-icon{font-size:47px;font-weight:400;color:var(--lime);line-height:1}.brand-light{font-weight:400;margin-left:4px}.brand small{display:block;font-size:8px;letter-spacing:2.1px;margin-top:5px;color:var(--muted)}.top-actions{display:flex;gap:12px;align-items:center}#save-status{font-size:11px;color:var(--muted);max-width:220px;text-align:right;line-height:1.5}.subtle,.icon-button{background:transparent}.icon-button{font-size:25px;padding:4px 14px}main{max-width:1360px;margin:auto;padding:38px 40px 26px}footer{max-width:1360px;display:flex;justify-content:space-between;align-items:center;margin:0 auto;padding:16px 40px 24px;color:var(--muted);font-size:10px;letter-spacing:1.7px}footer b{color:var(--lime);margin:0 10px}footer button{background:none;border:none;color:var(--muted);font-size:12px;font-weight:400;padding:8px;letter-spacing:0}.eyebrow{text-transform:uppercase;letter-spacing:2.8px;font-size:10px;font-weight:700;color:var(--lime);margin-bottom:14px}.hero{display:flex;align-items:center;justify-content:space-between;margin-bottom:36px;gap:24px}.hero h1 em{font-style:normal;color:var(--lime)}.hero p{margin-top:15px;font-size:14px}.hero-badge{display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:100px;padding:17px 24px;background:var(--panel)}.hero-badge strong{font-size:33px;color:var(--lime)}.hero-badge span{font-size:12px;color:var(--muted);line-height:1.6}.setup-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:24px}.panel{border:1px solid var(--line);border-radius:20px;background:var(--panel);padding:28px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:10px}.section-heading h2{font-size:20px}.step{color:var(--lime);font-size:11px;letter-spacing:1px;margin-bottom:8px}.muted{color:var(--muted)}.small{font-size:12px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode{min-height:108px;text-align:left;position:relative;padding:18px;background:#0b2247;border:1px solid var(--line)}.mode strong{display:block;font-size:34px;letter-spacing:-1.5px}.mode span{font-size:11px;color:var(--muted);display:block;margin-top:5px}.mode.selected{background:var(--lime);border-color:var(--lime);color:var(--bg)}.mode.selected span{color:#053252}.mode.selected:after{content:'✓';position:absolute;right:16px;top:16px;font-size:16px}.mode[data-mode=cricket] strong{font-size:28px}.rules-choice{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:18px}.switch{display:flex;align-items:center;gap:10px;font-size:13px;cursor:pointer}.switch input{accent-color:var(--lime);width:20px;height:20px}.mode-description{font-size:12px;margin-top:16px;min-height:40px}.player-list{display:grid;gap:9px}.player-edit{display:flex;align-items:center;gap:12px}.avatar{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;font-size:12px;font-weight:700;border-radius:50%;color:var(--lime);background:#174f80}.player-edit:nth-child(2n) .avatar{color:#4ff0cf;background:#0e4b61}.player-edit:nth-child(3n) .avatar{color:#a5e5ff;background:#143b65}.player-edit input{flex:1;font-size:13px;font-weight:700;letter-spacing:.5px;min-height:45px}.player-edit button{min-height:45px;padding:8px 13px;font-size:20px;background:transparent}.add-player{width:100%;margin-top:12px;border-style:dashed;background:transparent;font-size:12px}.setup-bottom{margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.setup-bottom p{font-size:12px;max-width:370px}.primary{background:var(--lime);border-color:var(--lime);color:#031d37}.primary:hover{background:#82e3ff}.start-button{font-size:17px;min-width:260px;padding:19px 26px}.start-button span{float:right;margin-left:30px}.resume-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;background:#123c63;border:1px solid #4b94bb;border-radius:14px;margin-bottom:26px}.resume-banner p{font-size:12px}.resume-banner strong{font-size:14px}.game-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.game-title h1{font-size:32px;letter-spacing:-1px}.game-title h1 span{color:var(--lime)}.game-meta{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:11px;color:var(--muted)}.pill{border:1px solid var(--line);padding:5px 10px;border-radius:99px;letter-spacing:.5px;font-size:10px}.scoreboard{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:24px}.player-card{border:1px solid var(--line);border-radius:14px;padding:16px 15px;background:var(--panel);min-width:0;position:relative}.player-card.active{background:var(--lime);color:var(--bg);border-color:var(--lime)}.player-card.active .muted{color:#053252}.player-name{font-size:11px;font-weight:750;letter-spacing:.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-score{font-size:clamp(30px,3.8vw,49px);letter-spacing:-2px;font-weight:750;font-variant-numeric:tabular-nums;margin:8px 0 6px}.player-card .small{font-size:9px}.play-grid{display:grid;grid-template-columns:.9fr 1.2fr;gap:24px}.current-panel{display:flex;flex-direction:column;min-height:410px;position:relative;overflow:hidden}.current-panel:before{content:'';position:absolute;width:330px;height:330px;border:1px solid #35629a;border-radius:50%;right:-180px;top:85px;box-shadow:0 0 0 35px #35629a22,0 0 0 70px #35629a15;pointer-events:none}.turn-header{display:flex;align-items:center;justify-content:space-between}.turn-header h2{font-size:28px;position:relative}.turn-header .pill{color:var(--lime)}.giant-score{font-size:clamp(72px,9vw,116px);line-height:1.1;letter-spacing:-6px;font-weight:780;font-variant-numeric:tabular-nums;margin:12px 0 0;position:relative}.score-caption{font-size:12px;color:var(--muted);margin:4px 0 22px}.darts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:auto;position:relative}.dart-slot{border:1px dashed #467db0;background:#0b2247;border-radius:11px;text-align:center;padding:13px 5px;color:var(--muted)}.dart-slot.filled{border-style:solid;color:var(--ink)}.dart-slot strong{font-size:17px;display:block}.dart-slot small{font-size:9px;display:block;margin-bottom:7px;letter-spacing:1.2px;color:var(--muted)}.turn-total{display:flex;justify-content:space-between;font-size:12px;padding-top:17px;position:relative}.bust-label{color:var(--red);font-size:16px;font-weight:700;margin-top:8px}.keypad-panel{padding:24px}.keypad-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px}.keypad-head h2{font-size:17px}.multiplier{display:flex;gap:5px;background:#091f43;padding:4px;border-radius:10px}.multiplier button{min-height:38px;padding:7px 15px;font-size:12px;border:0;background:transparent;color:var(--muted)}.multiplier button.selected{background:var(--lime);color:var(--bg)}.number-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.number-grid button{font-size:23px;font-weight:650;padding:10px 2px;min-height:59px;font-variant-numeric:tabular-nums;border-color:#497ab5}.number-grid.cricket-keys{grid-template-columns:repeat(3,1fr)}.number-grid.cricket-keys button{min-height:70px}.special-keys{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-top:9px}.special-keys button{font-size:12px;min-height:53px;padding:8px}.special-keys button:first-child{color:var(--orange);border-color:#427ca8}.special-keys button:nth-child(2){color:var(--lime);border-color:#4e83a8}.action-row{display:flex;gap:12px;margin-top:20px}.action-row button{flex:1;font-size:13px}.next-button{min-height:53px}.recent{margin-top:24px;border-top:1px solid var(--line);padding-top:20px;display:flex;gap:20px;align-items:start}.recent h3{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;flex:0 0 110px;padding-top:9px}.recent-list{display:flex;gap:10px;flex-wrap:wrap}.recent-item{font-size:11px;border:1px solid var(--line);padding:9px 12px;border-radius:8px;color:var(--muted)}.recent-item strong{color:var(--ink);margin-right:8px}.recent-item b{margin-left:8px;color:var(--lime)}.cricket-board{overflow-x:auto;border:1px solid var(--line);border-radius:15px;margin-bottom:24px;background:var(--panel)}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th,td{text-align:center;border-bottom:1px solid #35629a80;padding:10px 8px;font-size:17px}th{font-size:10px;letter-spacing:.4px;color:var(--muted);padding:14px 8px}td.field-col{color:var(--lime);font-size:13px;font-weight:700}td.current-col,th.current-col{background:#4ff0cf10;color:var(--lime)}td.closed{color:#4ff0cf}tr:last-child td{border-bottom:0}.victory{border:1px solid #319ebe;background:linear-gradient(120deg,#124665,var(--panel));border-radius:20px;padding:30px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.victory h2{font-size:32px;color:var(--lime);margin:8px 0}.victory p{font-size:13px}.victory .actions{display:flex;gap:10px;flex-wrap:wrap}dialog{border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--ink);padding:28px;width:min(640px,calc(100vw - 32px));max-height:85dvh;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#030c1cd9;backdrop-filter:blur(4px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.modal-heading h2{font-size:22px}.modal-heading button{font-size:22px;min-height:44px;padding:4px 14px;background:transparent}.modal-copy p{margin:12px 0;font-size:14px}.saved-match{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}.saved-match strong{font-size:14px}.saved-match p{font-size:11px;margin-top:5px;max-width:350px}.saved-match button{font-size:12px;white-space:nowrap}.dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.dialog-actions button{font-size:12px}#toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);padding:14px 23px;border:1px solid #49a9d1;border-radius:12px;background:#104b78;box-shadow:0 10px 50px #0006;max-width:90vw;font-size:13px;z-index:10;display:none}#toast.visible{display:block}.empty-state{padding:30px 0;text-align:center}.error{color:var(--red)}
@media(min-width:1400px){main{padding-top:44px}.number-grid button{min-height:68px}}
@media(max-width:1000px){main{padding:26px 24px}.topbar{padding:20px 24px}.panel{padding:22px}.scoreboard{gap:7px}.player-card{padding:13px 10px}.play-grid{gap:18px}.keypad-panel{padding:20px}.hero-badge{display:none}.setup-grid{gap:18px}.hero{margin-bottom:26px}.number-grid button{min-height:56px}.top-actions{gap:8px}footer{padding:14px 24px}}
@media(max-width:740px){.topbar{padding:17px 18px}.brand{font-size:21px}.brand-icon{font-size:38px}.brand small{font-size:6px}.top-actions .subtle{font-size:11px;padding:8px 10px;min-height:42px}#save-status{display:none}.icon-button{display:none}main{padding:24px 18px}.setup-grid{grid-template-columns:1fr}.hero h1{font-size:44px}.hero p{font-size:12px}.setup-bottom{flex-direction:column;align-items:stretch}.start-button{width:100%}.setup-bottom p{text-align:center;max-width:none}.panel{padding:22px}.scoreboard{grid-template-columns:repeat(3,1fr);gap:8px}.player-score{font-size:35px;margin:4px 0}.player-card{padding:11px 13px}.play-grid{grid-template-columns:1fr}.current-panel{min-height:260px}.giant-score{font-size:76px;margin:5px 0;letter-spacing:-4px}.score-caption{margin-bottom:14px}.darts{margin-top:12px}.game-title h1{font-size:27px}.game-title>button{font-size:11px;padding:10px}.number-grid button{min-height:58px}.victory{display:block;padding:24px}.victory .actions{margin-top:20px}.recent{display:block}.recent h3{margin-bottom:13px}.cricket-board th{font-size:8px;padding:12px 4px}.cricket-board td{padding:8px 4px}.resume-banner{padding:16px;align-items:start}.resume-banner button{font-size:12px;white-space:nowrap}footer{padding:12px 18px;font-size:8px;letter-spacing:.6px}.rules-choice{gap:10px}.keypad-head{flex-wrap:wrap}.saved-match{align-items:start}.saved-match p{max-width:190px}.saved-match button{font-size:11px;padding:10px}.player-name{font-size:10px}.player-edit input{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.current-panel .cricket-board{margin:16px 0;position:relative}.current-panel .cricket-board th{font-size:8px;padding:9px 4px}.current-panel .cricket-board td{padding:5px 4px;font-size:18px}.current-panel .cricket-board td.field-col{font-size:11px}
@media(min-width:900px) and (max-height:950px){body[data-view=game] .topbar{padding-top:12px;padding-bottom:12px}body[data-view=game] main{padding-top:18px;padding-bottom:12px}body[data-view=game] .game-title{margin-bottom:14px}body[data-view=game] .game-title .eyebrow{margin-bottom:6px}body[data-view=game] .game-title h1{font-size:26px}body[data-view=game] .scoreboard{margin-bottom:16px}body[data-view=game] .player-card{padding:12px 14px}body[data-view=game] .player-score{font-size:36px;margin:4px 0}body[data-view=game] .panel{padding:20px}body[data-view=game] .current-panel{min-height:340px}body[data-view=game] .number-grid button{min-height:45px;font-size:21px;padding:7px}body[data-view=game] .special-keys button{min-height:44px}body[data-view=game] .keypad-head{margin-bottom:12px}body[data-view=game] .action-row{margin-top:12px}body[data-view=game] .next-button{min-height:46px}body[data-view=game] .giant-score{font-size:92px}body[data-view=game] .recent{margin-top:16px;padding-top:10px}body[data-view=game] .recent-list{max-height:42px;overflow-y:auto}body[data-view=game] footer{padding-top:0;padding-bottom:10px}body[data-view=game] .current-panel .cricket-board{margin:8px 0}body[data-view=game] .current-panel .cricket-board td{padding:3px 4px}body[data-view=game] .current-panel .darts{gap:8px}body[data-view=game] .dart-slot{padding:9px 4px}body[data-view=game] .current-panel .turn-total{padding-top:10px}}

.brand-icon,.eyebrow,.step{color:#4ff0cf}.hero h1 em{color:#44cfff}.bull-panel{max-width:850px;margin:auto}.bull-panel h2{font-size:32px;margin-bottom:18px}.bull-panel p{margin:16px 0}.bull-keys button{min-height:90px;font-size:20px}.bull-keys button[data-bull="25"]{background:#17633c}.bull-keys button[data-bull="50"]{background:#44cfff;color:#111}.bull-panel #undo-bull{margin-top:20px}.bull-panel #start-match{margin:15px 0;display:block}@media(max-width:600px){.bull-keys button{font-size:14px;padding:10px}.bull-panel h2{font-size:26px}}

.remaining-darts{display:flex;justify-content:center;gap:8px;height:48px;margin:4px 0 0}.remaining-dart{width:88px;height:48px;flex:0 1 88px}.remaining-dart.used{visibility:hidden}@media(min-width:760px) and (max-height:850px){.remaining-darts{height:36px;margin:0}.remaining-dart{height:36px;width:72px}}

.player-announcement[open]{position:fixed;inset:0;box-sizing:border-box;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#06152e;color:#44cfff;overflow:hidden}.player-announcement::backdrop{background:#06152e}.announcement-continue{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7vh;padding:24px;border:0;border-radius:0;background:#06152e;color:#44cfff}.announcement-continue:hover{background:#123966}.announcement-continue:active{transform:none}.announcement-label{color:#4ff0cf;font-size:clamp(16px,3vw,36px);letter-spacing:.2em}.announcement-name{display:block;width:100%;font-weight:900;line-height:1.1;letter-spacing:-.035em;white-space:nowrap;text-align:center}.announcement-hint{color:#f5f9ff;font-size:clamp(12px,2vw,22px);letter-spacing:.08em}

#sound-toggle{font-size:12px;padding:8px 12px;white-space:nowrap}@media(max-width:600px){.topbar{flex-wrap:wrap}.top-actions{flex-wrap:wrap;gap:8px}#sound-toggle{min-height:40px}}

.cricket-scoring{display:flex;gap:10px;flex-wrap:wrap}.cricket-scoring button{flex:1}.turn-total strong{text-align:right}

/* Cricket: give the marks board the left half and keep points beside the keypad. */
#app.cricket-game{max-width:1600px}
.cricket-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;align-items:start}
.cricket-controls{min-width:0;display:grid;gap:16px}
body[data-view=game] .cricket-controls .scoreboard{margin:0;grid-template-columns:repeat(3,minmax(0,1fr))}
body[data-view=game] .cricket-controls .scoreboard.two-players{grid-template-columns:repeat(2,minmax(0,1fr))}
body[data-view=game] .cricket-controls .player-name{font-size:clamp(17px,1.8vw,26px);white-space:normal;overflow-wrap:anywhere;letter-spacing:0;line-height:1.15}
body[data-view=game] .cricket-controls .player-score{font-size:clamp(36px,4vw,60px);line-height:1.05;margin:8px 0}
body[data-view=game] .cricket-controls .player-card .small{font-size:11px}
body[data-view=game] .cricket-layout .current-panel{padding:20px;min-width:0}
.cricket-layout .current-panel:before{display:none}
.cricket-layout .turn-header h2{font-size:clamp(32px,3.3vw,48px);overflow-wrap:anywhere;line-height:1.1}
.cricket-layout .turn-header{gap:10px}.cricket-layout .turn-header>div{min-width:0}
body[data-view=game] .cricket-layout .current-panel .cricket-board{margin:16px 0 8px;border-radius:12px}
.cricket-layout .cricket-board table{table-layout:fixed}
body[data-view=game] .cricket-layout .current-panel .cricket-board th{font-size:clamp(18px,1.9vw,28px);padding:12px 6px;font-weight:800;color:var(--ink);overflow-wrap:anywhere;letter-spacing:0}
body[data-view=game] .cricket-layout .current-panel .cricket-board th.field-col{width:22%;font-size:17px}
body[data-view=game] .cricket-layout .current-panel .cricket-board td{font-size:clamp(32px,3.3vw,46px);padding:4px 6px;line-height:1.1;height:46px}
body[data-view=game] .cricket-layout .current-panel .cricket-board td.field-col{font-size:clamp(22px,2.2vw,32px);font-weight:800;color:var(--ink)}
.cricket-layout .cricket-board td.closed{color:#4ff0cf}
.cricket-layout .cricket-board .current-col{background:#44cfff16}
body[data-view=game] .cricket-layout .current-panel .cricket-board th.current-col{color:var(--orange)}
.cricket-layout .cricket-board th+th,.cricket-layout .cricket-board td+td{border-left:1px solid var(--line)}
body[data-view=game] .cricket-layout .remaining-darts{height:30px;margin:0 0 8px}.cricket-layout .remaining-dart{height:30px}
body[data-view=game] .cricket-layout .dart-slot{padding:8px 4px}.cricket-layout .dart-slot strong{font-size:22px}
body[data-view=game] .cricket-layout .turn-total{font-size:14px;gap:12px;padding-top:12px}
.cricket-layout .keypad-head h2{font-size:21px}
.cricket-layout.many-players .cricket-board table{min-width:620px}
body[data-view=game] .cricket-layout.many-players .current-panel .cricket-board th{font-size:17px}
body[data-view=game] .cricket-layout.many-players .current-panel .cricket-board th.field-col{width:64px}
@media(min-width:741px) and (max-height:850px){
 body[data-view=game] .cricket-layout .current-panel .cricket-board td{height:39px;font-size:32px;padding:2px 5px}
 body[data-view=game] .cricket-layout .current-panel .cricket-board th{padding:9px 5px}
 body[data-view=game] .cricket-layout .current-panel{padding:16px}
 .cricket-layout .turn-header .eyebrow{margin-bottom:8px}
}
@media(max-width:740px){
 .cricket-layout{grid-template-columns:minmax(0,1fr)}
 .cricket-layout .turn-header h2{font-size:34px}
 body[data-view=game] .cricket-controls .player-name{font-size:18px}
 body[data-view=game] .cricket-controls .player-card{padding:12px 10px}
 body[data-view=game] .cricket-controls .player-score{font-size:42px}
 body[data-view=game] .cricket-layout .current-panel .cricket-board th{font-size:19px}
}

.cricket-layout.many-players .cricket-board th.field-col,.cricket-layout.many-players .cricket-board td.field-col{position:sticky;left:0;background:var(--panel);z-index:1}

.opening-choice{margin-top:16px;line-height:1.5}.opening-status{font-size:12px;color:var(--orange);margin:0 0 8px}
.cricket-layout.many-players .cricket-board table{min-width:0}
.cricket-turn-details{padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.cricket-turn-details .remaining-darts{height:24px;margin:0}.cricket-turn-details .remaining-dart{height:24px}
body[data-view=game] .cricket-turn-details .dart-slot{padding:6px 2px}.cricket-turn-details .dart-slot small{margin-bottom:3px}
@media(min-width:741px){
 body:has(#app.cricket-game) .topbar{height:56px;padding:6px 16px;max-width:none}
 body:has(#app.cricket-game) .brand{font-size:20px}body:has(#app.cricket-game) .brand-icon{font-size:32px}
 body:has(#app.cricket-game) .brand small,body:has(#app.cricket-game) #save-status,body:has(#app.cricket-game) footer,#app.cricket-game .recent{display:none}
 body[data-view=game] #app.cricket-game{max-width:none;height:calc(100dvh - 56px);padding:8px 12px;display:flex;flex-direction:column;gap:8px}
 body[data-view=game] #app.cricket-game .game-title{margin:0;min-height:50px}.cricket-game .game-title .eyebrow{display:none}
 .cricket-game .game-title h1{font-size:24px}.cricket-game .game-meta{margin-top:4px}
 .cricket-layout{flex:1;min-height:0;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:12px;align-items:stretch}
 body[data-view=game] .cricket-layout .current-panel{min-height:0;padding:12px}
 .cricket-layout .turn-header .eyebrow{font-size:10px;margin-bottom:4px}
 .cricket-layout .turn-header h2{font-size:clamp(30px,3.8vw,54px)}
 body[data-view=game] .cricket-layout .current-panel .cricket-board{flex:1;min-height:0;margin:10px 0 0;overflow:visible}
 .cricket-layout .cricket-board table{height:100%;width:100%;min-width:0;table-layout:fixed}
 body[data-view=game] .cricket-layout .current-panel .cricket-board th{height:48px;font-size:clamp(20px,2.4vw,36px);padding:6px 3px;line-height:1.1}
 body[data-view=game] .cricket-layout .current-panel .cricket-board th.field-col{width:16%;font-size:18px}
 body[data-view=game] .cricket-layout .current-panel .cricket-board td{height:auto;padding:0 3px;font-size:clamp(38px,6vh,66px);line-height:1}
 body[data-view=game] .cricket-layout .current-panel .cricket-board td.field-col{font-size:clamp(28px,4.6vh,48px)}
 body[data-view=game] .cricket-layout.many-players .current-panel .cricket-board th{font-size:clamp(14px,1.6vw,24px)}
 body[data-view=game] .cricket-layout.many-players .current-panel .cricket-board th.field-col{width:12%}
 .cricket-controls{gap:8px;grid-template-rows:auto minmax(0,1fr) auto}
 body[data-view=game] .cricket-controls .player-card{padding:8px}
 body[data-view=game] .cricket-controls .player-name{font-size:clamp(15px,1.65vw,24px)}
 body[data-view=game] .cricket-controls .player-score{font-size:clamp(28px,4.6vh,46px);margin:4px 0}
 body[data-view=game] .cricket-controls .player-card .small{display:none}
 body[data-view=game] .cricket-controls .keypad-panel{padding:12px;display:flex;flex-direction:column;justify-content:center;min-height:0}
 .cricket-controls .keypad-head{flex-wrap:wrap;gap:6px}.cricket-layout .keypad-head h2{font-size:18px}
 .cricket-controls .number-grid{flex:1;grid-auto-rows:1fr;max-height:180px}
 body[data-view=game] .cricket-controls .number-grid button{min-height:42px;font-size:26px;padding:5px}
 body[data-view=game] .cricket-controls .special-keys button{min-height:42px;font-size:11px}
 body[data-view=game] .cricket-controls .action-row{margin-top:8px;gap:6px}
 body[data-view=game] .cricket-controls .action-row button{padding:8px;min-height:44px}
 .cricket-turn-details .turn-total{font-size:12px;padding-top:8px;gap:8px}
}
@media(min-width:741px) and (orientation:portrait){
 .cricket-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}
 .cricket-controls{grid-template-columns:1fr 1.35fr;grid-template-rows:auto auto;align-items:start}
 .cricket-controls .keypad-panel{grid-column:2;grid-row:1/3;height:100%}
 .cricket-turn-details{grid-column:1;grid-row:2}
 body[data-view=game] .cricket-layout .current-panel .cricket-board td{font-size:44px}
}
@media(max-width:740px){
 .cricket-layout.many-players .cricket-board table{min-width:0}
 body[data-view=game] .cricket-layout.many-players .current-panel .cricket-board th{font-size:11px;overflow-wrap:anywhere}
 body[data-view=game] .cricket-layout.many-players .current-panel .cricket-board th.field-col{width:40px}
 body[data-view=game] .cricket-layout .current-panel .cricket-board td{font-size:28px}
}

.leg-choice{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:18px;font-size:14px}.leg-choice select{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--ink);max-width:100%}.leg-score{font-size:14px;margin:6px 0}.leg-score strong{font-size:24px}

/* MÓZG HALA-inspired navy, blue and turquoise; visible copy in capitals. */
body{text-transform:uppercase;font-size:16px}input,button,select,option{text-transform:uppercase}
:root{--bg:#06152e;--panel:#0d2850;--panel2:#153b70;--line:#35629a;--muted:#bdd3f2;--ink:#f5f9ff;--lime:#44cfff;--orange:#44cfff}
.brand-icon,.eyebrow,.step{color:#4ff0cf}.primary,.mode.selected,.player-card.active{background:#44cfff;color:#031d37;border-color:#78e4ff}
.mode.selected span,.player-card.active .muted{color:#12354e}.primary:hover{background:#85e5ff}
.turn-header .pill{font-size:13px}.eyebrow,.step{font-size:12px}.game-meta,.pill,.small{font-size:13px}
.player-name{font-size:18px}.player-card .small{font-size:12px}.turn-header h2{font-size:36px}
.keypad-head h2{font-size:22px}.multiplier button{font-size:18px;min-height:44px}.action-row button{font-size:16px}
.special-keys button{font-size:15px}.dart-slot strong{font-size:24px}.dart-slot small{font-size:12px}
.mode-description,.setup-bottom p,.hero p{font-size:15px}.switch,.player-edit input,.add-player{font-size:16px}
.mode span{font-size:13px}.mode strong{font-size:38px}.player-name{white-space:normal;overflow-wrap:anywhere}
.saved-match strong,.modal-copy p{font-size:16px}.saved-match p{font-size:13px}
#sound-toggle{font-size:14px}.cricket-layout .cricket-board td.closed{color:#4ff0cf}
.announcement-continue,.player-announcement[open],.player-announcement::backdrop{background:#06152e;color:#44cfff}
.announcement-label{color:#4ff0cf}.announcement-hint{color:#f5f9ff}
.bull-keys button[data-bull="25"]{background:#145f9b;color:white}.bull-keys button[data-bull="50"]{background:#44cfff;color:#031d37}
@media(min-width:741px){
 body[data-view=game] .cricket-layout .turn-total{font-size:13px}
 .cricket-layout .keypad-head h2{font-size:18px}.cricket-controls .multiplier button{font-size:17px;padding:8px 12px}
 body[data-view=game] .cricket-controls .special-keys button{font-size:13px}
 body[data-view=game] .cricket-controls .action-row button{font-size:14px}
 .cricket-controls .opening-status{font-size:12px;line-height:1.25}
}
@media(max-width:740px){.top-actions{gap:6px}.top-actions .subtle,#sound-toggle{font-size:12px}.keypad-head h2{font-size:20px}.player-name{font-size:16px}.player-edit input{font-size:16px}}
body[data-view=game] .cricket-layout.many-players .current-panel .cricket-board tr:last-child td.field-col{font-size:22px}
@media(min-width:741px){body[data-view=game] .cricket-layout.many-players .current-panel .cricket-board th{font-size:clamp(16px,1.6vw,24px)}}
@media(max-width:740px){body[data-view=game] .cricket-layout.many-players .current-panel .cricket-board tr:last-child td.field-col{font-size:14px}}

/* Use the entire playing screen; no empty six-column strip in two-player X01. */
@media(min-width:741px){
 body:has(#app.x01-game) .topbar{height:56px;padding:6px 16px;max-width:none}
 body:has(#app.x01-game) .brand{font-size:20px}body:has(#app.x01-game) .brand-icon{font-size:32px}
 body:has(#app.x01-game) .brand small,body:has(#app.x01-game) #save-status,body:has(#app.x01-game) footer,#app.x01-game .recent{display:none}
 body[data-view=game] #app.x01-game{max-width:none;width:100%;height:calc(100dvh - 56px);padding:8px 12px;display:flex;flex-direction:column;gap:10px}
 body[data-view=game] #app.x01-game .game-title{margin:0;min-height:46px}.x01-game .game-title .eyebrow{display:none}
 body[data-view=game] #app.x01-game .game-title h1{font-size:28px}.x01-game .game-meta{margin-top:4px}
 body[data-view=game] #app.x01-game .scoreboard{grid-template-columns:repeat(var(--players),minmax(0,1fr));gap:10px;margin:0}
 body[data-view=game] #app.x01-game .player-card{padding:10px 16px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px}
 body[data-view=game] #app.x01-game .player-name{font-size:clamp(22px,2.2vw,40px);line-height:1.1}
 body[data-view=game] #app.x01-game .player-score{grid-column:2;grid-row:1/4;font-size:clamp(48px,8vh,96px);line-height:1;margin:0;letter-spacing:-2px}
 body[data-view=game] #app.x01-game .leg-score{margin:0;font-size:17px}.x01-game .leg-score strong{font-size:26px}
 body[data-view=game] #app.x01-game .player-card .small{font-size:12px}
 body[data-view=game] #app.x01-game .play-grid{flex:1;min-height:0;grid-template-columns:minmax(0,.95fr) minmax(0,1.2fr);gap:14px}
 body[data-view=game] #app.x01-game .panel{padding:clamp(12px,1.5vw,24px);min-height:0}
 body[data-view=game] #app.x01-game .turn-header h2{font-size:clamp(32px,4vw,66px);line-height:1.1}
 .x01-game .turn-header .eyebrow{margin-bottom:6px;font-size:13px}
 body[data-view=game] #app.x01-game .giant-score{font-size:clamp(112px,22vh,290px);line-height:1.05;margin:auto 0 0;letter-spacing:-6px}
 body[data-view=game] #app.x01-game .score-caption{font-size:16px;margin:0 0 auto}
 body[data-view=game] #app.x01-game .remaining-darts{height:clamp(30px,5vh,60px);margin:4px 0}.x01-game .remaining-dart{height:100%;width:100px;flex-basis:100px}
 body[data-view=game] #app.x01-game .darts{margin-top:4px}
 body[data-view=game] #app.x01-game .dart-slot{padding:8px 4px}.x01-game .dart-slot strong{font-size:clamp(24px,3vh,40px)}
 body[data-view=game] #app.x01-game .turn-total{font-size:15px;padding-top:8px;gap:8px}
 body[data-view=game] #app.x01-game .keypad-panel{display:flex;flex-direction:column}
 body[data-view=game] #app.x01-game .keypad-head{margin-bottom:12px;gap:8px}.x01-game .keypad-head h2{font-size:clamp(18px,2vw,30px)}
 .x01-game .multiplier button{font-size:clamp(20px,2.3vw,32px);min-height:48px;padding:8px 16px}
 body[data-view=game] #app.x01-game .number-grid{flex:1;min-height:0;grid-template-rows:repeat(4,minmax(0,1fr));gap:8px}
 body[data-view=game] #app.x01-game .number-grid button{min-height:44px;padding:4px;font-size:clamp(32px,4.5vh,64px);font-weight:800}
 body[data-view=game] #app.x01-game .special-keys button{min-height:clamp(48px,6vh,74px);font-size:clamp(16px,1.7vw,26px)}
 body[data-view=game] #app.x01-game .action-row{margin-top:10px}.x01-game .action-row button{min-height:clamp(48px,6.5vh,78px);font-size:clamp(17px,1.7vw,27px)}
 body[data-view=game] #app.x01-game .scoreboard:has(.player-card:nth-child(4)) .player-card{display:block;padding:8px 10px}
 body[data-view=game] #app.x01-game .scoreboard:has(.player-card:nth-child(4)) .player-name{font-size:clamp(16px,1.6vw,26px)}
 body[data-view=game] #app.x01-game .scoreboard:has(.player-card:nth-child(4)) .player-score{font-size:clamp(36px,6vh,64px);margin:4px 0}
 body[data-view=game] #app.x01-game .scoreboard:has(.player-card:nth-child(4)) .player-card .small{display:none}
}
@media(min-width:741px) and (orientation:portrait){
 body[data-view=game] #app.x01-game .play-grid{grid-template-columns:1fr;grid-template-rows:minmax(0,.8fr) minmax(0,1.2fr)}
 body[data-view=game] #app.x01-game .current-panel{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px}
 .x01-game .turn-header{grid-column:1/3}
 body[data-view=game] #app.x01-game .giant-score{font-size:clamp(100px,15vh,200px);grid-column:1;grid-row:2/5;margin:auto 0}
 body[data-view=game] #app.x01-game .score-caption{display:none}
 .x01-game .remaining-darts,.x01-game .darts{grid-column:2}
 .x01-game .turn-total{grid-column:1/3}
}
@media(max-width:740px){body[data-view=game] #app.x01-game .scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-view=game] #app.x01-game .player-name{font-size:21px}body[data-view=game] #app.x01-game .player-score{font-size:48px}}
.score-and-checkout{flex:1;display:flex;align-items:center;min-height:0}.score-value{min-width:0;width:100%;container-type:inline-size}.score-and-checkout.has-checkout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px}
.checkout-panel{position:relative;border:0;border-radius:0;background:transparent;padding:12px;min-width:0}
.checkout-heading{font-size:15px;font-weight:850;color:#ffa447;line-height:1.2}.checkout-rule{font-size:11px;color:var(--muted);margin-top:6px}
.checkout-route{list-style:none;padding:0;margin:10px 0;display:grid;gap:6px}.checkout-route li{font-size:clamp(25px,2.6vw,48px);font-weight:850;color:#ffa447;line-height:1.1}
.checkout-route li+li:before{content:'↓ ';font-size:.55em;color:#ffa447}.checkout-unavailable{font-weight:800;font-size:18px;line-height:1.35;margin:12px 0;color:var(--ink)}
.checkout-legend{font-size:10px;line-height:1.45;margin-top:8px;color:var(--muted)}#speak-checkout{font-size:12px;padding:8px 5px;min-height:40px;width:100%}
body[data-view=game] #app.x01-game .score-and-checkout .giant-score{margin:0}
body[data-view=game] #app.x01-game .score-and-checkout .score-caption{margin:0}
body[data-view=game] #app.x01-game .score-and-checkout.has-checkout .giant-score{font-size:min(18vh,48cqw,240px);letter-spacing:-4px}
@media(min-width:741px) and (orientation:portrait){body[data-view=game] #app.x01-game .score-and-checkout{grid-column:1/3;grid-row:2/5}.x01-game .score-and-checkout.has-checkout{grid-template-columns:1fr 1fr}.x01-game:has(.has-checkout) .current-panel{display:flex!important}.x01-game .checkout-panel{padding:8px}.x01-game .checkout-route{display:flex;gap:10px}.x01-game .checkout-route li+li:before{content:'→ '}.x01-game .checkout-legend{display:none}.x01-game .checkout-route li{font-size:28px}}
@media(max-width:740px){.score-and-checkout{margin:12px 0}.checkout-panel{padding:10px}.checkout-heading{font-size:12px}.checkout-unavailable{font-size:15px}.checkout-route li{font-size:26px}body[data-view=game] #app.x01-game .score-and-checkout.has-checkout .giant-score{font-size:72px}.checkout-legend{font-size:9px}}
@media(min-width:741px) and (orientation:portrait){body[data-view=game] #app.x01-game .score-and-checkout.has-checkout .giant-score{font-size:min(10vh,36cqw,140px);line-height:1}body[data-view=game] #app.x01-game .score-and-checkout.has-checkout .score-caption{font-size:12px}}
/* Signal that the completed turn is ready to hand over. */
@keyframes next-player-pulse{
  0%,100%{filter:brightness(1);box-shadow:0 0 0 0 rgba(79,240,207,0)}
  50%{filter:brightness(1.25);box-shadow:0 0 0 4px rgba(79,240,207,.55),0 0 24px rgba(68,207,255,.65)}
}
#next.next-button:not(:disabled){animation:next-player-pulse 1.4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){#next.next-button:not(:disabled){animation:none;box-shadow:0 0 0 3px #4ff0cf}}

/* Entry modes and short solo practice. */
.entry-modes{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:28px}.entry-mode{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:22px;padding:34px;min-height:290px;background:var(--panel)}.entry-mode strong{font-size:clamp(36px,5vw,64px);letter-spacing:-2px}.entry-mode>span:not(.eyebrow){font-size:18px;line-height:1.6;font-weight:400;color:var(--muted)}.entry-mode b{margin-top:auto;color:#ffa447}.entry-mode .eyebrow{margin:0}.training-form{display:flex;align-items:end;gap:20px;margin:28px 0;flex-wrap:wrap}.training-form label{display:grid;gap:10px}.training-form select{min-height:52px;background:var(--panel2);color:var(--ink);border:1px solid var(--line);padding:12px;border-radius:10px}.training-history{margin-top:24px}.training-target{color:#ffa447}.training-clock{font-size:clamp(32px,5vw,60px);font-variant-numeric:tabular-nums;white-space:nowrap}.training-stats{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin:24px 0;font-size:18px}.training-stats strong{font-size:32px;color:var(--lime)}.training-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.training-last{margin-top:20px}.training-result>button{margin-top:24px}body[data-view=training] main{max-width:1200px}body[data-view=training] .number-grid{grid-template-columns:repeat(5,1fr)}body[data-view=training] .number-grid button{min-height:58px}
@media(max-width:740px){.entry-modes{grid-template-columns:1fr}.entry-mode{min-height:230px;padding:24px}.training-form{align-items:stretch;flex-direction:column}.training-clock{font-size:32px}.training-stats{gap:16px}.training-actions button{flex:1 1 44%}}

/* Active Cricket score counter, following the current player. */
body[data-view=game] #app.cricket-game .player-card.active{background:#ffa447;border-color:#ffc781;color:#241407}
body[data-view=game] #app.cricket-game .player-card.active .muted{color:#482b12}

.training-coach{margin:24px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.training-coach .switch{font-size:18px;font-weight:700}.training-coach p{margin-top:8px}.training-coach input{flex-shrink:0}.training-coach-advice{padding:18px;border-left:4px solid #ffa447;background:var(--panel2);font-size:18px;line-height:1.6;margin-bottom:16px}

.training-ai{margin:18px 0}.training-ai>p{margin:10px 0}.training-ai #coach-response{margin-top:16px}

/* JDC: target readable at the oche; score uses a separate visual hierarchy. */
.jdc-entry{display:flex;align-items:center;justify-content:space-between;gap:24px}
.jdc-title .training-target{font-size:clamp(64px,9vw,120px);white-space:nowrap}
.jdc-score{font-size:clamp(36px,6vw,72px);text-align:right}.jdc-score small{display:block;font-size:16px;font-weight:500}
.jdc-progress{width:100%;height:12px;accent-color:#ffa447;margin:0 0 20px}
.jdc-phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.jdc-phases>div{border:1px solid var(--line,#34404c);padding:18px;border-radius:16px}.jdc-phases strong{font-size:30px}.jdc-phases h2{font-size:20px}
@media(max-width:700px){.jdc-entry{align-items:stretch;flex-direction:column}.jdc-phases{grid-template-columns:1fr}.jdc-title{align-items:flex-start}.jdc-title h1{font-size:28px}.jdc-title .training-target{display:block;font-size:64px}}
.player-doubles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}.player-doubles>div{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line,#34404c);border-radius:12px;padding:16px}.player-doubles b{color:#ffa447;font-size:24px}
.game-rules{margin-top:20px;border-top:1px solid var(--line,#34404c);padding-top:16px;text-align:left}.game-rules summary{cursor:pointer;font-weight:700;min-height:44px;padding:10px 0;color:#ffa447}.game-rules summary:focus-visible{outline:2px solid #ffa447;outline-offset:4px}.game-rules ol{padding-left:24px;line-height:1.6}.game-rules li+li{margin-top:10px}
.return-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}.return-options>div{border:1px solid var(--line,#34404c);border-radius:16px;padding:20px;display:flex;flex-direction:column}.return-options p{flex:1}.return-plan .training-stats{flex-wrap:wrap}@media(max-width:900px){.return-options{grid-template-columns:1fr}}
.shanghai-insights{display:grid;gap:12px;margin-top:18px}.shanghai-insights>div{display:grid;grid-template-columns:32px minmax(80px,1fr) minmax(200px,2fr);gap:12px;align-items:center}.shanghai-insights progress{width:100%;accent-color:#ffa447}.shanghai-insights span{font-size:14px}@media(max-width:700px){.shanghai-insights>div{grid-template-columns:32px 1fr}.shanghai-insights span{grid-column:2}}

/* Direct target entry for JDC: one action per dart. */
.jdc-quick-hits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}
.jdc-quick-hits button{display:flex;flex-direction:column;align-items:center;gap:10px;min-height:160px;padding:20px 10px}
.jdc-quick-hits button strong{font-size:64px;line-height:1;color:var(--orange,#ff9b3d)}
.jdc-quick-hits button span{font-size:clamp(14px,1.6vw,22px);font-weight:800}
.jdc-quick-hits button small{font-size:16px}
#jdc-other{margin:18px 0}#jdc-other summary{cursor:pointer;font-size:20px;padding:14px 0}#jdc-other .multiplier{margin:12px 0}
@media(max-width:600px){.jdc-quick-hits{gap:8px}.jdc-quick-hits button{min-height:130px;padding:16px 5px}.jdc-quick-hits button strong{font-size:44px}.jdc-quick-hits button small{font-size:12px}}
.jdc-counters{display:flex;gap:22px;align-items:center}.jdc-counters>strong{font-size:32px}.jdc-counters small{display:block;font-size:13px;max-width:180px}
.jdc-title .training-target{color:#ffa344;font-size:clamp(30px,5vw,86px)}
.jdc-levels{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin:20px 0}.jdc-levels>div{border:2px solid #435575;border-radius:12px;padding:12px 5px;text-align:center;opacity:.6}.jdc-levels small{display:block}.jdc-levels .active{border-color:var(--level-color);color:var(--level-color);opacity:1;box-shadow:0 0 15px color-mix(in srgb,var(--level-color),transparent 70%)}.jdc-levels p{grid-column:1/-1}
.jdc-draft{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.jdc-draft span{border:1px solid #6781a8;border-radius:8px;padding:12px}
.jdc-quick-hits button.selected{background:#a84c00;border:3px solid #ffb45c;color:white}
.jdc-celebration{background:#9b4600;border:2px solid #ffb257;padding:22px;border-radius:16px;text-align:center;margin:16px 0}.jdc-celebration strong{display:block;font-size:clamp(28px,4vw,60px)}.jdc-celebration span{display:block;font-size:22px}.jdc-celebration.shanghai{animation:jdc-pop .45s ease-out;background:#734400;border-color:#ffe078;color:#fff3bb}
@keyframes jdc-pop{from{transform:scale(.95)}to{transform:scale(1)}}
.jdc-comparison{overflow-x:auto;margin:24px 0}.jdc-comparison table{width:100%;border-collapse:collapse}.jdc-comparison th,.jdc-comparison td{text-align:left;padding:12px;border-bottom:1px solid #567094}.jdc-comparison thead{color:#ffb257}
@media(max-width:800px){.jdc-levels{grid-template-columns:repeat(4,minmax(0,1fr))}.jdc-title{flex-wrap:wrap}.jdc-counters{width:100%;justify-content:space-between}.jdc-quick-hits strong{font-size:36px}}
@media(prefers-reduced-motion:reduce){.jdc-celebration.shanghai{animation:none}}
.jdc-draft .filled{background:#9b4600;border:2px solid #ffbd72;color:white;font-size:22px}.jdc-draft b{font-size:22px}.jdc-quick-hits button small{letter-spacing:2px}.jdc-comparison td{min-width:90px}.jdc-comparison summary{cursor:pointer}
.jdc-draft button{flex:1;display:flex;flex-direction:column;gap:8px;min-height:80px}.jdc-draft button.miss-selected{background:#9b382c;border-color:#ff9c78;color:white}
.jdc-last-round{display:flex;align-items:center;justify-content:space-between;gap:20px}.jdc-last-round>span:first-child{flex:1}.jdc-dart-icons{display:flex;gap:12px;flex-shrink:0}.jdc-dart-icon{display:flex;align-items:center;flex-direction:column;color:#39c9fa;text-align:center;width:62px}.jdc-dart-icon svg{width:44px;height:60px}.jdc-dart-icon b{font-size:14px}@media(max-width:600px){.jdc-last-round{flex-wrap:wrap}.jdc-dart-icons{margin-left:auto}}
.jdc-duel-scores{display:grid;grid-template-columns:1fr 1fr;gap:16px}.jdc-duel-scores>div{display:flex;flex-direction:column;gap:8px;border:2px solid var(--line);border-radius:16px;padding:20px}.jdc-duel-scores .active{border-color:#39c9fa;background:#173b64}.jdc-duel-scores strong{font-size:28px}.jdc-duel-scores b{font-size:36px;color:#39c9fa}.training-form [hidden]{display:none}
/* JDC: controls stay in one compact area beside the board. */
.jdc-playing .jdc-title{margin:12px 0;gap:16px}.jdc-playing .jdc-title h1{margin:4px 0;font-size:26px}.jdc-playing .jdc-title .training-target{font-size:54px}.jdc-playing .jdc-title p{margin:4px 0}.jdc-playing .panel{padding:18px}.jdc-playing .keypad-head h2{font-size:20px;margin:0}.jdc-playing .jdc-quick-hits{margin:12px 0}.jdc-playing .jdc-quick-hits button{min-height:120px;padding:12px;gap:6px}.jdc-playing .jdc-quick-hits button strong{font-size:48px}.jdc-playing .jdc-draft{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.jdc-playing .jdc-draft button{min-height:68px;padding:10px;font-size:17px}.jdc-playing .jdc-draft button span{padding:0;border:0;font-size:14px}.jdc-playing .jdc-help{font-size:14px;margin:8px 0}.jdc-playing #jdc-other{margin:4px 0}.jdc-playing #jdc-other summary{font-size:14px;padding:8px 0}.jdc-playing .jdc-controls{position:sticky;bottom:0;background:#102b50;padding:10px 0;margin-top:6px;z-index:5}.jdc-playing .jdc-controls button{min-height:52px;padding:12px;font-size:15px}.jdc-playing .jdc-controls #jdc-confirm{order:-2;flex:1 1 220px;font-size:20px}.jdc-playing .jdc-controls #jdc-miss{order:-1}.jdc-playing .jdc-celebration{padding:8px;margin:8px 0;min-height:0}.jdc-playing .jdc-celebration strong{font-size:26px}.jdc-playing .jdc-duel{margin:8px 0;padding:12px}.jdc-playing .jdc-duel h2{font-size:24px;margin:4px 0}.jdc-playing .jdc-duel p,.jdc-playing .jdc-duel .eyebrow{display:none}.jdc-playing .jdc-duel-scores>div{padding:8px;flex-direction:row;align-items:center;flex-wrap:wrap}.jdc-playing .jdc-duel-scores strong{font-size:20px}.jdc-playing .jdc-duel-scores b{font-size:26px}.jdc-extra>summary{padding:14px;cursor:pointer}.jdc-playing .jdc-quick-hits button:disabled{opacity:1}.jdc-playing .jdc-quick-hits button:disabled:not(.selected){opacity:.5}
.jdc-playing .jdc-celebration{height:54px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:12px}.jdc-playing .jdc-ready{visibility:hidden}.jdc-playing .jdc-celebration span{font-size:14px}
.cy-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0}.cy-heading h1{font-size:44px;margin:4px 0}.cy-heading p{margin:4px 0;font-size:20px}.cy-names{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.cy-names label{display:grid;gap:8px}.cy-names input{min-width:0;width:100%}.cy-scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:16px}.cy-scores article{border:2px solid var(--line);border-radius:14px;display:flex;flex-direction:column;gap:6px;padding:12px}.cy-scores .active{border-color:#3cd5ff;background:#153b63}.cy-scores b{font-size:28px;color:#3cd5ff}.cy-scores strong{overflow-wrap:anywhere}.cy-controls{padding:18px}.cy-turn{display:flex;justify-content:space-between;align-items:center;gap:12px}.cy-turn h2{font-size:32px;margin:4px 0}.cy-darts{display:flex;align-items:center;gap:6px;color:#3cd5ff}.cy-darts svg{height:48px;width:25px}.cy-darts .used{visibility:hidden}.cy-hit-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0}.cy-hit-buttons button{min-height:90px;font-size:22px}.cy-hit-buttons small{display:block;font-size:14px;margin-top:10px}.cy-fields{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:12px}.cy-fields button{min-height:48px;font-size:24px;padding:8px}.cy-fields button:disabled{opacity:.65}.cy-fields .closed{background:#164539;color:#7fdab1;text-decoration:line-through}.cy-fields .current{border:3px solid #ffb45c;opacity:1!important;color:#ffb45c}.cy-last{min-height:30px;color:#ffbd72}.cy-history{overflow:auto;margin-top:16px}.cy-history summary{padding:14px;cursor:pointer}.cy-history table{width:100%;border-collapse:collapse}.cy-history th,.cy-history td{padding:12px;text-align:left;border-bottom:1px solid var(--line)}@media(max-width:740px){.cy-names{grid-template-columns:1fr 1fr}.cy-heading h1{font-size:32px}.cy-hit-buttons{grid-template-columns:1fr 1fr}.cy-fields{grid-template-columns:repeat(7,1fr)}.cy-fields button{font-size:18px;padding:6px}.cy-turn h2{font-size:24px}}

/* Checkout beside each player's remaining score, including waiting players. */
body[data-view=game] #app.x01-game .player-score{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.player-checkout{display:flex;flex-direction:column;gap:5px;max-width:190px;font-size:clamp(14px,1.35vw,23px);line-height:1.25;letter-spacing:0;color:#4ff0cf;white-space:normal}
.player-checkout-title{font-size:10px;line-height:1.3;letter-spacing:.5px;color:#bacfe5}
.player-card.active .player-checkout,.player-card.active .player-checkout-title{color:#052d48}

/* Clearly distinguish a missed dart from the scoring buttons. */
.special-keys button[data-special="0"]{background:#ff9f32;color:#251300;border-color:#ffc477;font-weight:800}
.special-keys button[data-special="0"]:hover:not(:disabled){background:#ffb85c}

/* Miss is a primary, frequent action: a full-width touch target. */
body[data-view=game] .special-keys{grid-template-columns:repeat(2,minmax(0,1fr))}
body[data-view=game] .special-keys button[data-special="0"]{grid-column:1/-1;min-height:76px;font-size:clamp(22px,2vw,30px);padding:16px 20px}
body[data-view=game] #app.x01-game .special-keys button[data-special="0"]{min-height:76px;font-size:clamp(22px,2vw,30px)}

/* Muted green lane stays readable across the full active-player column. */
body[data-view=game] .cricket-layout .current-panel .cricket-board .current-col{background:#294f43;color:#f3f8f2;box-shadow:inset 3px 0 #91b59c,inset -3px 0 #91b59c}
body[data-view=game] .cricket-layout .current-panel .cricket-board th.current-col{background:#385f4c;color:#fff7dc;border-top:3px solid #91b59c}
body[data-view=game] .cricket-layout .current-panel .cricket-board td.current-col.closed{color:#c5efb9}
body[data-view=game] .cricket-layout .current-panel .cricket-board tr:last-child td.current-col{border-bottom:3px solid #91b59c}

/* Large high-contrast pointer with its hotspot at the arrow tip. */
@media(pointer:fine){body,body *{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2248%22%20height%3D%2260%22%20viewBox%3D%220%200%2048%2060%22%3E%3Cpath%20d%3D%22M5%203%20L5%2045%20L16%2035%20L25%2055%20L34%2051%20L25%2031%20L41%2029%20Z%22%20fill%3D%22%23ffad42%22%20stroke%3D%22%2307152b%22%20stroke-width%3D%223%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M8%2010%20L8%2036%22%20stroke%3D%22%23fff4d1%22%20stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E") 5 3,auto}input,textarea{cursor:text}button:disabled{cursor:not-allowed}}

.player-fireworks{position:fixed;inset:0;pointer-events:none;z-index:1000;overflow:hidden;display:grid;place-items:center}
.player-fireworks strong{background:#09213bea;color:#ffe6a0;border:2px solid #ffc369;border-radius:20px;padding:20px 35px;font-size:clamp(32px,6vw,80px);text-align:center;box-shadow:0 8px 35px #0005}
.player-fireworks i{position:absolute;left:var(--x);top:var(--y);width:9px;height:18px;border-radius:5px;background:var(--c);animation:party-burst 2.5s ease-out forwards}
@keyframes party-burst{from{transform:translate(0,0) rotate(0);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(280deg);opacity:0}}
@media(prefers-reduced-motion:reduce){.player-fireworks i{display:none}}

/* Visible release identifier and most frequently recorded field. */
.brand{flex-wrap:wrap}
.brand .app-version{flex-basis:100%;margin:0;font-size:11px;letter-spacing:.5px;color:#f4c58c;line-height:1.3}
body[data-view=game] .number-grid button.most-used-field,body[data-view=game] .special-keys button.most-used-field{background:#ff9f32;color:#251300;border-color:#ffc477}
body[data-view=game] button.most-used-field:hover:not(:disabled){background:#ffb85c}

/* Green multiplier controls; the selected value remains easy to distinguish. */
body[data-view=game] .multiplier button{background:#254d3a;color:#eaf7e8;border:1px solid #78a886}
body[data-view=game] .multiplier button:hover:not(:disabled){background:#376b4c}
body[data-view=game] .multiplier button.selected{background:#91cf89;color:#102b19;border:2px solid #d4f2c8;box-shadow:inset 0 -3px 0 #417344}

/* One subdued identity colour per player, shared by card, name and board lane. */
body[data-view=game] #app .scoreboard .player-card.player-coloured{background:var(--player-muted);color:#f4f7fb;border-color:var(--player-accent);border-top:5px solid var(--player-accent)}
body[data-view=game] #app .scoreboard .player-card.player-coloured .player-name{color:var(--player-accent)}
body[data-view=game] #app .scoreboard .player-card.player-colour-active{background:var(--player-active);box-shadow:inset 0 0 0 3px var(--player-accent)}
body[data-view=game] #app .player-card.player-colour-active .muted,body[data-view=game] #app .player-card.player-colour-active .player-checkout,body[data-view=game] #app .player-card.player-colour-active .player-checkout-title{color:#f4f7fb}
body[data-view=game] #app .turn-header.player-coloured{background:var(--player-active);border-left:7px solid var(--player-accent);border-radius:10px;padding:10px 14px;margin-bottom:10px}
body[data-view=game] #app .turn-header.player-coloured h2,body[data-view=game] #app .turn-header.player-coloured .eyebrow,body[data-view=game] #app .turn-header.player-coloured .pill{color:var(--player-accent)}
body[data-view=game] #app .cricket-board tr .player-coloured{background:var(--player-muted);color:var(--player-accent)}
body[data-view=game] #app .cricket-board tr .player-colour-active{background:var(--player-active);color:#f4f7fb;box-shadow:inset 3px 0 var(--player-accent),inset -3px 0 var(--player-accent)}
body[data-view=game] #app .cricket-board tr th.player-colour-active{background:var(--player-accent);color:#102338;border-top:3px solid var(--player-accent)}
body[data-view=game] #app .cricket-board tr td.player-colour-active.closed{color:var(--player-accent)}
body[data-view=game] #app .cricket-board tr:last-child td.player-colour-active{border-bottom:3px solid var(--player-accent)}

/* Player dashboard: local profiles and real recorded results. */
.game-icon{width:36px;height:36px;object-fit:contain;filter:invert(1);flex:none;vertical-align:middle}
.jdc-entry h2{display:flex;align-items:center;gap:14px}.entry-mode>.game-icon{margin-bottom:12px}
.profile-picker-name{display:flex;align-items:center;gap:14px}
.player-dashboard{display:grid;grid-template-columns:270px minmax(0,1fr);gap:24px;align-items:start}
.profile-identity{border:1px solid var(--line);background:#0a2041;border-radius:20px;padding:28px;display:flex;flex-direction:column;gap:20px;overflow-wrap:anywhere}
.profile-avatar{background:#173b66;border-radius:18px;min-height:170px;display:grid;place-items:center}.profile-avatar .game-icon{width:106px;height:106px;opacity:.9}
.profile-identity h1{font-size:36px;letter-spacing:-1px;line-height:1.15}.profile-identity .eyebrow{margin:0;line-height:1.6}.profile-identity p{font-size:13px}
.profile-local{border-top:1px solid var(--line);padding-top:20px}.profile-local strong{display:block;font-size:13px;margin-bottom:8px;color:#8edcff}
.profile-main{display:grid;gap:20px;min-width:0}.profile-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.profile-heading h2{font-size:32px}.profile-heading .eyebrow{display:block;margin-bottom:8px}
.profile-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.profile-kpis article{background:#102d53;border:1px solid var(--line);border-radius:16px;padding:22px 18px;display:flex;flex-direction:column;gap:14px;min-width:0}.profile-kpis strong{font-size:38px;line-height:1.1;font-variant-numeric:tabular-nums;color:#fff}.profile-kpis article:last-child strong{color:#ffc080}.profile-kpis span{font-size:12px;line-height:1.5;color:var(--muted)}
.profile-activity,.profile-games,.profile-multiplier{border:1px solid var(--line);border-radius:18px;padding:24px;background:#0a2041}.profile-activity>div{display:flex;align-items:center;gap:12px;margin-bottom:10px}.profile-activity p{font-size:14px}.profile-activity .game-icon{width:24px;height:24px}
.profile-game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-game{display:flex;align-items:center;gap:14px;text-align:left;min-width:0;background:#122f55;padding:16px;border-radius:14px}.profile-game:hover{background:#1d4473;border-color:#82d8ff}.game-icon-box{display:grid;place-items:center;width:54px;height:60px;border-radius:12px;background:#315e7d;flex:none}.game-jdc{background:#765721}.game-cricket{background:#226452}.game-cyferki{background:#4c4385}.game-mnoznik{background:#85492c}.game-sector-20{background:#215d70}.profile-game-copy{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.profile-game-copy strong{font-size:18px;overflow-wrap:anywhere}.profile-game small{display:block;font-size:11px;color:#c5d8ee;line-height:1.4;font-weight:400}.profile-game-result{color:#8de2ff;font-size:19px;white-space:nowrap;text-align:right}.profile-game-result small{font-size:10px;margin-top:6px}.profile-multiplier h2{font-size:22px;margin-bottom:16px}
.profile-details{margin-top:28px;border:1px solid var(--line);border-radius:16px;padding:20px}.profile-details>summary{cursor:pointer;font-size:18px;font-weight:700;padding:4px;min-height:44px}.profile-details>.panel{margin-top:20px}.top-actions{flex-wrap:wrap}#player-panel-button{border-color:#82d8ff;color:#a9eaff}
@media(max-width:1100px){.player-dashboard{grid-template-columns:220px minmax(0,1fr);gap:18px}.profile-identity{padding:20px}.profile-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-game-grid{grid-template-columns:1fr}.profile-kpis strong{font-size:32px}.topbar{padding:20px;gap:16px}.top-actions{gap:8px}.profile-game-result{font-size:18px}}
@media(max-width:650px){.player-dashboard{grid-template-columns:1fr}.profile-identity{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px}.profile-avatar{min-height:76px;grid-row:span 2}.profile-avatar .game-icon{width:48px;height:48px}.profile-identity h1{font-size:28px}.profile-identity>p,.profile-local,.profile-identity>button{grid-column:1/-1}.profile-heading{flex-wrap:wrap}.profile-activity,.profile-games,.profile-multiplier{padding:18px}.profile-games .section-heading{flex-wrap:wrap}.profile-game{padding:12px;gap:10px}.game-icon-box{width:44px;height:52px}.profile-game-copy strong{font-size:16px}.profile-kpis article{padding:18px}.profile-kpis strong{font-size:30px}.profile-multiplier .saved-match{flex-wrap:wrap}.profile-details{padding:12px}}
[data-legacy-form] label{display:grid;gap:8px;margin:16px 0}[data-legacy-players] select,[data-legacy-match]{width:100%;min-height:48px}#link-legacy{margin:10px}dialog{max-width:min(680px,94vw)}
body[data-view=game] #player-panel-button{display:none}
.player-account{position:relative}.player-menu-toggle{display:flex;gap:10px;align-items:center;border-radius:30px;border-color:#44cfff;max-width:210px}.player-menu-toggle .game-icon{width:28px;height:28px}.player-menu-toggle span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-menu-links{position:absolute;right:0;top:calc(100% + 10px);z-index:90;width:270px;max-width:90vw;background:#091d38;border:1px solid #3e709b;box-shadow:0 12px 32px #0009;border-radius:14px;padding:14px}.player-menu-links[hidden]{display:none}.player-menu-links p{color:#fff;font-weight:800;overflow-wrap:anywhere}.player-menu-links small{display:block;margin:6px 0 12px;color:#aac3df}.player-menu-links button{display:block;width:100%;text-align:left;border:0;border-radius:6px;background:none;border-top:1px solid #29435e;font-size:14px}.player-menu-links button:hover{background:#173a60}.profile-editor label{display:grid;gap:7px;margin:15px 0}.profile-editor select{min-height:48px}.profile-editor{width:560px}.profile-editor input{width:100%}body[data-view=game] .player-account{display:none}
@media(max-width:650px){.player-menu-toggle{max-width:170px}.player-menu-links{position:fixed;right:12px;top:140px;max-height:calc(100dvh - 155px);overflow-y:auto}}
.profile-subnav{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:24px}.profile-subnav button{background:transparent}.profile-subnav button:first-child{color:#8de2ff;border-color:#44cfff}.profile-form{border:1px solid var(--line);border-radius:18px;background:#0a2041;padding:24px;display:grid;gap:20px}.profile-form h2,.profile-chart h2{font-size:24px;margin-bottom:10px}.profile-form p,.profile-chart p{font-size:13px}.profile-form .profile-kpis strong{font-size:28px}.activity-bars{display:flex;gap:8px;margin-top:20px;height:80px;align-items:flex-end}.activity-day{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;gap:8px}.activity-day meter{width:100%;height:20px}.activity-day span{font-size:12px;color:#bdd3f2}.activity-axis{display:flex;justify-content:space-between;margin:12px 0;color:#bdd3f2;font-size:11px}.profile-identity .profile-local{margin-top:0}
.profile-history{border:1px solid var(--line);border-radius:18px;padding:24px;background:#0a2041}.profile-history h2{margin-bottom:10px;font-size:24px}.profile-history p{font-size:13px}.profile-history .saved-match{gap:16px}.profile-history .saved-match>span{font-size:12px;color:#8de2ff}
@media(max-width:650px){.profile-history{padding:18px}.profile-history .saved-match{flex-wrap:wrap}.profile-subnav button{flex:1;white-space:nowrap}.profile-form{padding:18px}}
/* Composition: player card beside a compact statistics grid. */
@media(min-width:1101px){.player-dashboard{grid-template-columns:300px minmax(0,1fr)}.profile-avatar{min-height:240px}.profile-avatar .game-icon{width:150px;height:150px}.profile-main>.profile-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
.profile-main>.profile-kpis article{min-height:120px}.profile-main>.profile-kpis article:nth-child(3) strong{color:#ffb564}.profile-main>.profile-kpis article:nth-child(5) strong{color:#4ce1c4}.profile-info-title{font-size:15px;letter-spacing:1px;padding-top:16px;border-top:1px solid var(--line)}.activity-plot{display:block;width:100%;height:110px;margin-top:18px}.profile-chart{padding-bottom:16px}.profile-form .eyebrow{color:#ffb564}.profile-form .profile-kpis article:first-child{border-color:#8c6936;background:#332c23}.profile-form .profile-kpis article:first-child strong{color:#ffb564}
.profile-photo{display:block;width:100%;height:240px;object-fit:cover;border-radius:18px}.player-menu-toggle .has-photo{filter:none;object-fit:cover;border-radius:50%}.profile-editor input[type=checkbox]{width:auto}.profile-editor label:has(input[type=checkbox]){display:flex;align-items:center}
@media(max-width:650px){.profile-photo{height:76px}.profile-avatar{overflow:hidden}}

/* X01 match setup — DART PARTY */
.x01-setup-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:12px 0 32px}.x01-setup-heading h1{font-size:clamp(36px,5vw,64px);line-height:1.05;margin:14px 0}.x01-setup-heading p{color:var(--muted);max-width:560px}.x01-emblem{width:175px;aspect-ratio:1;border:1px solid var(--lime);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 15px #44cfff08,inset 0 0 45px #44cfff18;flex-shrink:0}.x01-emblem strong{font-size:64px;line-height:1.1;color:var(--lime)}.x01-emblem span{font-size:10px;letter-spacing:2px}.x01-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;align-items:start}.x01-settings,.x01-match-brief{display:grid;gap:20px;min-width:0}.x01-setup h2{margin:8px 0 20px}.x01-variants{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.x01-variants button{display:flex;flex-direction:column;align-items:flex-start;padding:18px;gap:8px;min-width:0}.x01-variants strong{font-size:38px}.x01-variants span{font-size:12px;text-align:left}.x01-variants .selected{border-color:var(--lime);background:#44cfff20;color:var(--lime)}.x01-finish{padding-top:20px;border-top:1px solid var(--line)}.x01-finish p{color:var(--muted);font-size:14px;line-height:1.6}.x01-ticket{border-top:3px solid var(--lime);background:linear-gradient(135deg,#12375d,var(--panel))}.x01-ticket dl{margin:0 0 20px}.x01-ticket dl div{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px}.x01-ticket dt{color:var(--muted)}.x01-ticket dd{margin:0;text-align:right;font-weight:700}.x01-ticket .start-button{width:100%;min-height:64px;font-size:18px;margin-top:14px}.x01-save-note{font-size:11px;color:var(--muted);text-align:center;line-height:1.6}.x01-rule-card p{font-size:14px;line-height:1.65;color:var(--muted)}.x01-rule-card h2{font-size:32px;color:var(--lime)}.x01-other-games{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:24px 0}.x01-other-games span{color:var(--muted);margin-right:auto;font-size:13px}.x01-setup .player-edit input{min-width:0}.x01-setup .player-edit{min-width:0}
@media(max-width:700px){.x01-layout{grid-template-columns:1fr}.x01-emblem{width:100px}.x01-emblem strong{font-size:40px}.x01-emblem span{font-size:7px;letter-spacing:1px}.x01-setup-heading{gap:14px}.x01-setup-heading h1{font-size:34px}.x01-variants{gap:8px}.x01-variants button{padding:12px 8px}.x01-variants strong{font-size:30px}.x01-variants span{font-size:10px}.x01-ticket dl div{font-size:12px}.x01-other-games span{width:100%}}

/* Home library */
.dp-home{--home-accent:#44cfff}.home-nav{display:flex;gap:24px;margin-bottom:22px}.home-nav a{color:var(--muted);text-decoration:none;padding:10px 0;font-weight:700;font-size:13px}.home-nav a:hover{color:var(--lime)}.home-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1.5fr 1fr;align-items:center;gap:16px;padding:48px;border:1px solid #35629a;border-radius:28px;background:radial-gradient(ellipse at 85% 35%,#17619660,transparent 60%),linear-gradient(130deg,#102b50,#06152e)}.home-hero h1{font-size:clamp(35px,4.5vw,66px);line-height:1.08;letter-spacing:-2px;margin:20px 0}.home-hero h1 em{color:var(--lime);font-style:normal}.home-hero p{font-size:16px;line-height:1.7;max-width:540px;color:var(--muted)}.home-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.home-hero-note{font-size:10px;color:var(--muted);margin-top:24px;line-height:1.8}.home-hero-note span{padding:0 8px;color:var(--lime)}.home-logo{min-width:0;aspect-ratio:1;display:grid;place-items:center}.home-logo img{width:100%;height:auto;clip-path:circle(36% at 50% 50.5%);transform:scale(1.35);filter:drop-shadow(0 12px 30px #0005)}.home-section{margin-top:44px;scroll-margin-top:24px}.home-section-title{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:22px}.home-section-title h2,.home-how h2{font-size:30px;margin:10px 0 0}.home-section-title>span{font-size:12px}.home-game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.home-game{padding:0;overflow:hidden;text-align:left;display:flex;flex-direction:column;border-radius:20px;transition:transform .2s,border-color .2s;background:#0d2850}.home-game:hover{transform:translateY(-4px);border-color:var(--lime)}.home-game-art{position:relative;display:flex;width:100%;min-height:150px;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 75% 45%,#44cfff30,transparent 55%),repeating-radial-gradient(circle at 75% 45%,transparent 0 25px,#44cfff18 26px 27px),#0a203e}.home-game-art b{position:relative;font-size:64px;letter-spacing:-3px;color:#dff8ff}.home-game-art .game-icon{position:absolute!important;right:14px;width:90px!important;height:90px!important;opacity:.15}.home-game-1 .home-game-art{filter:hue-rotate(25deg)}.home-game-2 .home-game-art{filter:hue-rotate(65deg)}.home-game-3 .home-game-art{filter:hue-rotate(125deg)}.home-game-4 .home-game-art{filter:hue-rotate(175deg)}.home-game-5 .home-game-art{filter:hue-rotate(220deg)}.home-game-info{display:grid;gap:12px;padding:22px}.home-game-info small{font-size:10px;letter-spacing:2px;color:var(--lime)}.home-game-info strong{font-size:21px}.home-game-info>span{font-size:12px;line-height:1.6;color:var(--muted);font-weight:400}.home-game-go{font-size:12px;margin-top:8px}.home-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}.home-feature{position:relative;padding:32px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(120deg,#153b70,#0a203e);scroll-margin-top:24px;overflow:hidden}.home-feature>.game-icon{position:absolute;right:28px;top:25px;opacity:.18;width:60px;height:60px}.home-feature h2{font-size:28px;margin:24px 0 16px;max-width:90%;overflow-wrap:anywhere}.home-feature p{font-size:14px;line-height:1.7;color:var(--muted);max-width:450px}.home-feature button{margin-top:16px}.home-profile{background:linear-gradient(130deg,#102b50,#152640)}.home-profile small{display:block;color:var(--muted);font-size:10px;margin-top:16px}.home-how{margin-top:40px;padding:28px 0;display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line)}.home-how ol{list-style:none;display:flex;gap:24px;padding:0}.home-how li{display:grid;gap:12px;max-width:160px;font-size:12px;line-height:1.5}.home-how li b{color:var(--lime);font-size:24px}.home-footer{display:flex;justify-content:space-between;gap:20px;padding:28px 0 12px;color:var(--muted);font-size:11px;border-top:1px solid var(--line)}.dp-home>.resume-banner{margin-top:24px}.dp-home .resume-banner p{overflow-wrap:anywhere}
@media(max-width:1000px){.home-hero{padding:32px}.home-game-grid{gap:14px}.home-game-info{padding:16px}.home-game-info strong{font-size:18px}.home-how{align-items:start;flex-direction:column}}
@media(max-width:650px){.home-hero{grid-template-columns:1fr;padding:24px}.home-hero h1{font-size:38px}.home-logo{position:absolute;width:100px;right:18px;top:18px;opacity:.22;pointer-events:none}.home-hero-copy{position:relative;z-index:1}.home-hero .eyebrow{max-width:220px}.home-game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.home-game-art{min-height:110px}.home-game-art b{font-size:40px}.home-game-info{padding:14px;gap:10px}.home-game-info strong{font-size:16px}.home-game-info>span{font-size:11px}.home-feature-grid{grid-template-columns:1fr}.home-section-title{align-items:start;flex-direction:column}.home-section-title h2{font-size:26px}.home-feature{padding:24px}.home-how ol{gap:16px}.home-how li{font-size:10px}.home-footer{flex-direction:column;gap:8px}.home-nav{gap:22px}.home-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){.home-game{transition:none}}

/* GRAJ: searchable local game library */
.play-library .home-nav{align-items:center;flex-wrap:wrap}.play-library .home-nav>span{color:var(--lime);font-weight:800;margin-right:auto}.library-hero{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center;border:1px solid var(--line);border-radius:24px;padding:40px;background:radial-gradient(ellipse at 90% 80%,#13548280,transparent 65%),#0c2446}.library-hero h1{font-size:clamp(40px,5vw,64px);line-height:1.05;margin:20px 0;letter-spacing:-2px}.library-hero h1 em{font-style:normal;color:var(--lime)}.library-hero p{max-width:560px;line-height:1.7;color:var(--muted)}.library-poster{aspect-ratio:1;display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px solid #44cfff70;border-radius:24px;transform:rotate(3deg);background:repeating-radial-gradient(circle at center,transparent 0 35px,#44cfff16 36px 37px),linear-gradient(145deg,#1e5381,#07182d);box-shadow:0 24px 50px #0004;text-align:center}.library-poster>b{font-size:clamp(80px,12vw,160px);line-height:1.1;color:var(--lime)}.library-poster>span,.library-poster>small{font-size:10px;letter-spacing:2px;color:var(--muted)}.library-poster>strong{font-size:26px;line-height:1.2;margin:12px 0 24px}.library-browse{display:flex;align-items:center;color:var(--ink);font-size:13px;padding:14px;text-decoration:none;border:1px solid var(--line);border-radius:12px}.library-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:32px 0}.library-shortcuts>div{padding:24px;border:1px solid var(--line);border-radius:18px;background:#0b2341}.library-shortcuts h2{font-size:21px}.library-shortcuts p{font-size:12px;line-height:1.6}.library-shortcut{margin:0 8px 8px 0;font-size:12px}.library-controls{display:flex;align-items:end;flex-wrap:wrap;gap:18px;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.library-controls label{display:grid;gap:8px;flex:1 1 230px;font-size:12px}.library-controls input{width:100%;min-width:0}.library-filters{display:flex;flex-wrap:wrap;gap:8px}.library-filters button{font-size:12px}.library-filters [aria-pressed=true]{background:var(--lime);color:var(--bg);border-color:var(--lime)}#library-count,.library-note{color:var(--muted);font-size:12px;line-height:1.7;margin:20px 0}.library-card{position:relative;min-width:0}.library-card>.home-game{width:100%;height:100%}.library-card .home-game-info{flex:1}.library-card .home-game-go{align-self:end}.library-favorite{position:absolute;right:12px;top:12px;z-index:2;border-radius:50%;width:48px;height:48px;padding:0;font-size:26px;background:#081a32;line-height:1}.library-favorite[aria-pressed=true]{color:#ffcf65;border-color:#ffcf65}.library-empty{grid-column:1/-1;padding:36px;border:1px dashed var(--line);border-radius:16px;text-align:center}.library-note{margin-top:32px}#library-catalog{scroll-margin-top:20px}.play-library>.resume-banner{margin-top:24px}.play-library .resume-banner p{overflow-wrap:anywhere}
@media(max-width:700px){.library-hero{grid-template-columns:1fr;padding:24px;gap:24px}.library-poster{display:none}.library-shortcuts{grid-template-columns:1fr;gap:16px}.library-controls{padding:16px}.library-filters{gap:6px}.library-filters button{font-size:11px;padding:10px}.play-library .home-game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-favorite{right:8px;top:8px}.play-library .home-nav{gap:10px}.play-library .home-nav button{font-size:11px}.play-library .home-nav>span{font-size:12px}}
