:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;color:#f6faf7;background:#101915;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 75% 100%,#263a30,transparent 75%);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer;border:0;color:inherit}button:disabled{cursor:default;opacity:.4}button:focus-visible,input:focus-visible,svg:focus-visible{outline:3px solid #bde0dc;outline-offset:3px}.display,h1,h2,.nav button,.score,.stat strong{font-family:Impact,'Arial Narrow',sans-serif;font-weight:400;letter-spacing:-.5px}h1{font-size:29px;text-align:center;margin:22px 0}h2{font-size:24px;margin:0 0 20px}.shell{display:grid;grid-template-columns:242px 1fr;min-height:100vh}.sidebar{background:#213129;padding:26px 12px;border-right:1px solid #2e3a32}.profile{text-align:center;padding-bottom:28px}.avatar{display:inline-grid;place-items:center;background:#c0e1dc;color:#10221a;border-radius:50%;width:66px;height:66px;font-size:37px;font-weight:900}.profile p{font-family:Impact,'Arial Narrow',sans-serif;font-size:23px}.nav{display:grid;gap:6px}.nav button{text-align:left;background:#131f19;border-radius:15px;padding:16px;font-size:24px}.nav button.active{background:#31473b;border-left:4px solid #ff5735}.side-note{color:#a5b5aa;font-size:13px;line-height:1.6;margin:32px 14px}.setup{max-width:640px;margin:0 auto;padding:0 20px 35px}.panel{background:#203027;border-radius:18px;padding:20px;margin-bottom:10px}.players-inputs{display:flex;gap:12px}.field{display:grid;gap:9px;flex:1;min-width:0;font-size:13px;color:#d0dfd5}input,select{width:100%;background:#101b15;border:1px solid #3b5042;border-radius:10px;padding:14px;color:white}.settings-grid{display:grid;grid-template-columns:1fr 62px 1fr;background:#0e1812;border-radius:15px;overflow:hidden;margin-bottom:14px}.setting-cell{padding:24px 10px;text-align:center;background:#293c30;font-size:14px;font-weight:bold}.stepper{background:#ff9c19;display:grid;grid-template-rows:30px 1fr 30px;text-align:center;color:#15251a}.stepper button{background:none;color:inherit;font-size:20px}.stepper strong{align-self:center;font-size:26px}.choices{display:flex;background:#0d1711;border-radius:14px;overflow:hidden;margin:12px 0}.choices>*{flex:1;text-align:center;padding:22px 5px;font-size:13px;font-weight:bold}.selected{background:#2b3d31;border-radius:13px}.locked{color:#acb9af}.rule-note{font-size:12px;color:#b7c8bd;margin:20px 0 0;line-height:1.6}.primary{background:#ff5735;width:100%;padding:17px;border-radius:30px;font-weight:bold;margin-top:12px}.secondary{background:#2a4032;padding:13px 18px;border-radius:12px}.online-tabs{display:flex;gap:10px;margin:14px 0}.online-tabs button{flex:1}.online-explain{font-size:14px;color:#bdd0c2;line-height:1.6}.match{padding:0 18px 18px;min-height:100vh}.match-header{display:flex;justify-content:space-between;align-items:center;height:76px}.match-header h1{margin:0}.icon-button{background:transparent;font-size:25px;padding:8px}.match-grid{display:grid;grid-template-columns:minmax(235px,19%) minmax(430px,1fr) minmax(240px,31%);gap:18px;height:calc(100vh - 94px);min-height:600px}.scorecards{display:flex;flex-direction:column;overflow:hidden;border-radius:19px}.player-card{background:#ff9e19;color:#14281c;padding:22px;flex:1;min-height:270px;position:relative}.player-card.active{background:#ff5735}.player-name{display:flex;align-items:center;gap:14px;font-size:23px;font-weight:bold;color:#ffe9cf}.active .player-name{color:white}.player-name .avatar{width:55px;height:55px;font-size:30px;flex-shrink:0}.player-name span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-line{display:flex;align-items:end;justify-content:space-between;margin:14px 0 23px}.score{font-size:clamp(76px,6.4vw,120px);line-height:1;color:white}.leg-count{background:#122b20;color:white;border-radius:7px;font-size:25px;padding:3px 10px}.stat{display:flex;justify-content:space-between;align-items:center;font-size:clamp(15px,1.3vw,23px);font-weight:bold;line-height:1.4}.stat strong{font-size:clamp(23px,2.1vw,38px);color:white}.turn-title{font-size:25px;color:#ff5735;margin:16px 4px}.throwbar{display:flex;background:#fff;color:#15231b;border-radius:45px;overflow:hidden;padding:8px;height:76px;align-items:stretch}.throw-icon{display:grid;place-items:center;width:40px;font-size:24px}.dart-slot{flex:1;background:white;color:#17271c;border-right:1px solid #e4e6e5;display:grid;place-content:center;text-align:center;padding:0}.dart-slot strong{font-family:Impact,'Arial Narrow',sans-serif;font-size:29px;font-weight:400}.dart-slot small{font-size:12px}.submit{border-radius:40px;padding:0 27px;background:#22cb7c;color:#0b2316;font-weight:bold}.board-wrap{position:relative;text-align:center;max-width:850px;margin:8px auto 0}.board-wrap svg{width:100%;max-height:calc(100vh - 255px);min-height:340px;touch-action:manipulation;user-select:none}.board-tools{display:flex;justify-content:space-between;margin:10px 10px -16px;position:relative;z-index:1}.board-tools button{background:transparent;font-size:20px}.board-hint{color:#9db3a4;font-size:12px;text-align:center;margin:0}.history-panel{margin-top:58px;border-radius:18px;overflow:auto;background:linear-gradient(90deg,transparent 50%,#213329 50%)}.history-header,.history-row{display:grid;grid-template-columns:1fr 50px 1fr;text-align:center;align-items:center;border-bottom:1px solid #35453a;padding:17px 8px}.history-header{font-size:12px;color:#b7c9bc;position:sticky;top:0;background:#19291f}.history-row strong{font-family:Impact,'Arial Narrow',sans-serif;font-size:29px;font-weight:400}.history-row small{display:block;font:12px Arial;color:#a9bcaf;margin-top:4px}.round-number{background:#ff5735;padding:8px 3px;border-radius:2px;font-size:14px}.empty-history{text-align:center;color:#a4b8ab;font-size:13px;padding:35px 20px;line-height:1.7}.room-banner{display:flex;align-items:center;gap:12px;font-size:13px;color:#bdd2c4}.room-banner button{font-size:12px}.camera-button{position:fixed;right:20px;bottom:20px;background:#ff9d18;border-radius:14px;padding:12px;z-index:4}.video-panel{position:fixed;right:20px;bottom:78px;width:300px;background:#243b2c;padding:12px;border-radius:15px;z-index:5;box-shadow:0 10px 50px #0008}.video-panel video{width:100%;max-height:180px;background:#0b160f;border-radius:9px;object-fit:cover}.video-panel p{font-size:12px;margin:8px 0}.video-actions{display:flex;gap:6px}.video-actions button{flex:1;font-size:12px}.status{font-size:12px;color:#bdd0c1;margin-top:12px}.winner{position:fixed;inset:0;background:#08130dcc;display:grid;place-items:center;z-index:10}.winner .panel{text-align:center;max-width:450px;padding:45px}.winner h2{font-size:40px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#d1e6da;color:#15251b;padding:14px 23px;border-radius:12px;z-index:30;display:none;max-width:90vw}.mobile-brand{display:none}@media(min-width:1500px){.player-card{padding:24px}.board-wrap svg{max-height:calc(100vh - 250px)}}@media(max-width:1100px){.match-grid{grid-template-columns:220px 1fr}.history-panel{grid-column:1/-1;margin-top:0;max-height:280px}.match-grid{height:auto}.board-wrap svg{max-height:690px}.sidebar{width:190px}.shell{grid-template-columns:190px 1fr}}@media(max-width:650px){.shell{display:block}.sidebar{width:100%;padding:12px}.profile,.side-note{display:none}.nav{display:flex}.nav button{flex:1;font-size:19px;padding:13px}.setup{padding:0 12px 25px}.players-inputs{flex-direction:column}.match{padding:0 10px 12px}.match-header{height:65px}.match-header h1{font-size:22px}.match-grid{display:flex;flex-direction:column;gap:8px}.scorecards{flex-direction:row;gap:7px;border-radius:0}.player-card{border-radius:13px;min-height:0;padding:12px;min-width:0}.player-name{font-size:14px;gap:7px}.player-name .avatar{height:30px;width:30px;font-size:19px}.score{font-size:65px}.score-line{margin:12px 0}.leg-count{font-size:18px}.stat{font-size:11px}.stat strong{font-size:19px}.turn-title{font-size:21px;margin:12px 0}.throwbar{height:63px}.submit{padding:0 18px}.board-wrap svg{min-height:0;max-height:none}.board-tools{margin:6px 4px -12px}.history-panel{max-height:260px}.room-banner{font-size:11px;gap:5px}.room-banner .secondary{padding:9px}.video-panel{width:260px}.history-header{padding:12px}.panel{padding:17px}}
/* Supplied full-board artwork and hold-to-aim interaction. */
.board-wrap svg{touch-action:none;cursor:crosshair;overflow:hidden;display:block;margin:0 auto}
.board-wrap svg [data-number]{cursor:crosshair}
.board-wrap svg.aiming [data-number]{opacity:.5}
.board-wrap svg.aiming .aim-selected{opacity:1;filter:url(#glow)}
.board-wrap svg.aiming .aim-selected>*{stroke:#ffd335!important;stroke-width:5!important;paint-order:stroke fill}
.board-wrap svg [data-number]:focus-visible>*{stroke:#ffe277;stroke-width:6}
.board-wrap svg #dart-markers,.board-wrap svg #aim-cursor{pointer-events:none}
.board-wrap svg{width:min(100%,calc(100vh - 255px));height:auto;min-height:0;max-height:none;aspect-ratio:1}
@media(max-width:1100px){.board-wrap svg{width:100%;max-width:690px}}
@media(max-width:650px){.board-wrap svg{width:100%;max-width:none}}
/* Match setup follows the supplied reference. */
.setup{max-width:796px}.game-settings{padding:20px 18px 18px;border-radius:19px;background:linear-gradient(110deg,#111d16,#22372b)}
.game-settings h2{margin:0 0 17px;font-size:27px}.match-options{display:grid;grid-template-columns:1fr 56px 1fr;background:#0e1712;border-radius:17px;overflow:hidden;margin-bottom:18px;height:136px}.option-column{display:grid;grid-template-rows:1fr 1fr}.option-column button{background:transparent;font-size:15px;font-weight:700;border-radius:15px}.option-column button.selected{background:#273c30}.match-options .stepper{border-radius:18px;grid-template-rows:38px 1fr 38px}.match-options .stepper strong{font-family:Impact,'Arial Narrow',sans-serif;font-size:30px;color:white;font-weight:400}.match-options .stepper button{font-size:26px;font-weight:400}.game-settings .choices{margin:0 0 17px;border-radius:16px;background:#0e1712;min-height:68px}.game-settings .choices>*{border:0;background:transparent;border-radius:15px;font-size:15px;padding:20px 5px;min-width:0}.game-settings .choices>.selected{background:#273c30}.game-settings .score-options{min-height:76px}.score-options [data-custom]{display:flex;flex-direction:column;justify-content:center;gap:6px}.score-options small{font-size:13px;font-weight:400}.game-settings button:hover:not(.selected){background:#253b2c}.toggle-row{display:flex;justify-content:space-between;align-items:center;min-height:36px;font-size:14px;font-weight:600}.toggle-row label{cursor:pointer}.toggle-row input{appearance:none;flex-shrink:0;width:40px;height:22px;border:0;border-radius:15px;background:#cce6e2;padding:0;position:relative;cursor:pointer}.toggle-row input:before{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#13271c;transition:transform .15s}.toggle-row input:checked{background:#22cd7f}.toggle-row input:checked:before{transform:translateX(18px)}.help-dot{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#ff9c18;color:#17251b;margin-left:4px;font-size:12px}.custom-score-label{display:grid;gap:8px;margin:-6px 0 17px;font-size:13px}.custom-score-label[hidden]{display:none}.setup>.primary{margin-top:16px;font-size:17px;padding:20px}
@media(max-width:650px){.game-settings{padding:18px 12px}.game-settings .choices>*{font-size:12px}.match-options{grid-template-columns:1fr 50px 1fr;height:126px}.option-column button{font-size:14px}}
/* Finish suggestions sit directly beneath the remaining score. */
.checkout-route{min-height:31px;margin:0 0 9px;display:flex;align-items:center;justify-content:center;gap:20px;border-radius:4px;color:white;font-size:23px;font-weight:800;line-height:1.15}
.checkout-route.has-route{background:#102b20;padding:3px 8px}.score-line{margin-bottom:8px}
.player-card{min-height:0;min-width:0;flex:1 1 0;padding:clamp(12px,2vh,24px);display:flex;flex-direction:column;justify-content:center}
.player-card .player-name{flex-shrink:0}.player-card .stat{line-height:1.2;gap:8px;min-height:0;font-size:clamp(13px,1.9vh,23px)}
.player-card .stat strong{font-size:clamp(22px,3.5vh,38px);line-height:1.15;white-space:nowrap}
.player-card .score{font-size:clamp(65px,10.5vh,120px)}.scorecards{min-height:0;align-self:stretch}
@media(min-width:1101px){.match-grid{height:calc(100dvh - 94px);min-height:570px}.player-card .player-name{font-size:clamp(17px,2.5vh,25px)}.player-card .avatar{width:clamp(38px,6vh,60px);height:clamp(38px,6vh,60px)}.player-card .score-line{margin-top:12px}.player-card .checkout-route{min-height:29px;font-size:clamp(18px,2.6vh,25px);margin-bottom:8px}}
@media(min-width:1101px) and (max-height:760px){.player-card{padding:12px 16px}.player-card .score{font-size:70px}.player-card .score-line{margin-top:8px}.player-card .checkout-route{min-height:24px;margin-bottom:5px}.player-card .stat strong{font-size:24px}.player-card .stat{font-size:14px}}
@media(max-width:1100px) and (min-width:651px){.player-card{min-height:310px}.scorecards{align-self:auto}}
@media(max-width:650px){.player-card{padding:12px;justify-content:flex-start}.player-card .score{font-size:62px}.player-card .stat{font-size:11px}.player-card .stat strong{font-size:18px}.checkout-route{min-height:24px;gap:10px;font-size:16px;margin-bottom:6px}.score-line{margin-bottom:5px}}
.player-card{container-type:inline-size}.player-card .checkout-route{gap:clamp(6px,5cqw,20px);font-size:clamp(16px,8cqw,25px)}.checkout-route span{white-space:nowrap}
.set-leg-count{display:inline-flex;flex-direction:column;flex-shrink:0;align-self:flex-end;border-radius:7px;overflow:hidden;font-size:25px;font-weight:700;line-height:1.15;text-align:center}
.set-leg-count>span{display:block;min-width:38px;padding:4px 8px}.sets-count{background:#122b20;color:white}.current-legs-count{background:white;color:#101915}
@media(max-width:650px){.set-leg-count{font-size:18px}.set-leg-count>span{min-width:30px;padding:3px 7px}}
.setup-sound{display:flex;justify-content:flex-end;margin-top:-12px}.sound-toggle{font-size:20px;flex-shrink:0}.match-header h1{flex:1}.match-header{gap:10px}
.video-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:bold;margin-bottom:8px;gap:8px}.video-heading button{font-size:12px;padding:7px 10px}
.camera-preview{display:block;position:relative;width:100%;padding:0;background:#0b160f;border-radius:9px;overflow:hidden}.camera-preview video{display:block;pointer-events:none}.camera-zoom-icon{position:absolute;bottom:7px;right:7px;background:#10251dcc;color:white;border-radius:5px;padding:3px 7px;font-size:18px}.camera-preview:hover .camera-zoom-icon{background:#ff5735}
.video-panel.expanded{position:static;width:100%;max-width:none;margin:0 0 12px;box-shadow:none;display:flex;flex-direction:column;background:#243b2c}.expanded .camera-feed.featured{order:1}.expanded .camera-feed:not(.featured){order:2}.expanded .video-actions{order:3;margin-top:10px}.expanded .camera-feed.featured video{height:clamp(220px,42vh,460px);max-height:none;object-fit:contain}.expanded .camera-feed:not(.featured) .camera-preview{width:120px}.expanded .camera-feed:not(.featured) video{height:80px;object-fit:contain}.camera-expanded .history-panel{margin-top:16px;max-height:calc(100dvh - 110px)}
@media(min-width:1000px){.camera-expanded .match-grid{display:grid;grid-template-columns:minmax(190px,19%) minmax(350px,1fr) minmax(300px,31%)}.camera-expanded .history-panel{grid-column:auto}.camera-expanded .board-wrap svg{width:min(100%,calc(100dvh - 255px))}}
@media(max-width:999px){.camera-expanded .history-panel{max-height:none;overflow:visible}.video-panel.expanded .camera-feed.featured video{height:300px;max-height:45vh}.video-panel.expanded{margin-bottom:14px}}
.phone-link-box{padding:10px;background:#10241a;border-radius:10px;margin:10px 0;order:3}.phone-link-box input{padding:10px;font-size:12px}.phone-link-box button{margin-top:8px;font-size:12px;padding:9px 12px}.phone-link-box small{font-size:11px;color:#a9c0b1}.video-panel .video-actions{flex-wrap:wrap}.phone-page{max-width:620px;padding:22px 16px;margin:0 auto}.phone-top{display:flex;align-items:center;gap:15px;margin-bottom:20px}.phone-top h1{font-size:25px;margin:0;text-align:left}.phone-top p{color:#b4c9ba;font-size:13px;margin:7px 0}.phone-preview{position:relative;border-radius:18px;overflow:hidden;background:#07130c;margin-bottom:15px}.phone-preview video{display:block;width:100%;height:min(52dvh,470px);object-fit:contain}.phone-preview>span{display:block;padding:12px 15px;font-size:13px;color:#cde7d5;background:#233b2b}.phone-page .field{margin-bottom:15px}.phone-range{display:grid;gap:8px;margin:16px 0}.phone-range>span{display:flex;justify-content:space-between;font-size:14px}.phone-range input{accent-color:#ff9c18;padding:0;height:28px}.phone-page #phone-stop{width:100%;margin-top:12px}.phone-page .rule-note{margin-top:15px}.phone-page select{font-size:16px}
.phone-preview canvas{display:block;width:100%;height:min(52dvh,470px);object-fit:contain}.phone-preview canvas[hidden]{display:none}.phone-preview video.rotation-source{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.phone-rotation{margin:16px 0}.phone-rotation>span{font-size:14px}.phone-rotation .choices{margin:9px 0}.phone-rotation button{background:transparent;color:white}.phone-rotation button.selected{background:#304c3a}
.phone-qr{width:min(100%,260px);margin:10px auto;padding:10px;background:white;border-radius:10px;line-height:0}.phone-qr svg{display:block;width:100%;height:auto;aspect-ratio:1}.phone-link-box details{margin:12px 0;font-size:12px}.phone-link-box summary{cursor:pointer;color:#c4ddce}.video-panel{max-height:calc(100dvh - 110px);overflow:auto}
.social-backdrop{position:fixed;inset:0;background:#05100bbf;display:grid;place-items:center;padding:20px;z-index:50}.social-modal{width:min(520px,100%);max-height:90dvh;overflow:auto;padding:24px;border-radius:20px;background:#20372a;box-shadow:0 20px 80px #0008}.social-modal header{display:flex;justify-content:space-between;align-items:center}.social-modal header h2{margin:0}.social-modal form{display:grid;gap:12px;margin:20px 0}.social-modal h3{font-size:16px;margin:25px 0 10px}.social-modal .primary{margin-top:0}.social-account{font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.social-account button{margin-left:auto;padding:8px 12px;font-size:12px}.social-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid #3b5143}.social-row small{display:block;font-size:12px;color:#b4cabc;margin-top:5px}.social-row>div:last-child{display:flex;gap:6px;align-items:center}.social-row .secondary{font-size:12px;padding:10px}.invite-play{background:#ff5735}.social-remove{background:transparent;color:#afc7b8;padding:8px}.social-trigger{font-size:13px;white-space:nowrap}.match-header .social-trigger{order:5;padding:10px 12px}.nav .social-trigger{font-family:Arial,sans-serif;font-size:18px}#social-error{color:#ffbda2;font-size:13px}@media(max-width:650px){.match-header{height:auto;min-height:65px;flex-wrap:wrap;padding:8px 0}.match-header .social-trigger{font-size:11px;padding:8px}.social-modal{padding:18px}.nav .social-trigger{font-size:14px}}
.video-panel.expanded .phone-link-box{order:0}
.phone-paired-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0 12px;font-size:11px;color:#bcddc7}.phone-paired-bar button{font-size:11px;padding:7px 9px}
