@font-face{font-family:Club;src:local('Segoe UI')}*{box-sizing:border-box}html{color-scheme:dark;font-size:16px;--bg:#101820;--panel:#18232d;--line:#34434f;--text:#f0eee7;--muted:#bcc6cb;--gold:#dec083;--green:#8bd6b2;--red:#ed9b93;--board-red:#b93636;--board-green:#16714e;--sisal:#ecdfbd}body{margin:0;background:var(--bg);color:var(--text);font-family:Club,system-ui,sans-serif;line-height:1.6}body.large{font-size:1.18rem}body.xl{font-size:1.35rem}body.contrast{--bg:#000;--panel:#080808;--line:#fff;--text:#fff;--muted:#fff;--gold:#ffe58a}body.hdr{--board-red:color(display-p3 .74 .16 .13);--board-green:color(display-p3 .06 .45 .28)}a{color:inherit;text-underline-offset:5px}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:.65rem 1rem;background:#23313c;color:var(--text);font-weight:650;min-height:46px}button:hover{border-color:var(--gold);background:#2c3c48}button:disabled{cursor:default;opacity:.55}button.primary,.primary{background:var(--gold);color:#141b20;border-color:var(--gold)}button.primary:hover{background:#f0d49e}button.quiet{background:transparent}button.danger{color:var(--red)}button.small{font-size:.86em;padding:.4rem .65rem;min-height:40px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9fe6ff;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,4vw,3.3rem);line-height:1.15;letter-spacing:-.04em;margin-bottom:18px}h2{font-size:1.35em;line-height:1.3}h3{font-size:1.05em}p:last-child{margin-bottom:0}small,.muted{color:var(--muted)}.eyebrow{font-size:.76em;letter-spacing:.2em;color:var(--gold);font-weight:800;text-transform:uppercase;margin-bottom:14px}.site-header{max-width:1580px;margin:auto;display:flex;align-items:center;gap:24px;padding:24px 36px;border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px;font-size:1.3rem;font-weight:850;text-decoration:none;letter-spacing:.08em;line-height:1.2}.brand-mark{font-size:2.5rem;color:var(--gold)}.brand-light{font-weight:350}.brand small{display:block;font-size:.51rem;letter-spacing:.25em;margin-top:6px;color:var(--gold)}nav{display:flex;align-items:center;gap:24px;margin-left:auto}nav a{text-decoration:none;font-size:.9em}nav a:hover{color:var(--gold)}main{max-width:1510px;margin:auto;padding:44px 36px 60px;min-height:78vh}main:focus{outline:none}.site-footer{padding:22px 36px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:.8em}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}.page-heading p{max-width:680px;color:var(--muted)}.heading-actions{display:flex;gap:10px;flex-wrap:wrap}.rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.room-card{border:1px solid var(--line);background:var(--panel);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}.room-art{height:150px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 70% 70%,#376151,transparent 65%),linear-gradient(130deg,#26332e,#101c21)}.room-art::after{content:'◎';position:absolute;font-size:230px;line-height:1;color:#d6b67560;right:30px;top:-42px;transform:rotate(-18deg)}.room-art.kroeg{background:radial-gradient(ellipse at 70% 70%,#71513a,transparent 65%),#231b18}.room-art.competitie{background:radial-gradient(ellipse at 70% 70%,#3c4f73,transparent 65%),#121d2c}.room-art.oefen{background:radial-gradient(ellipse at 70% 70%,#625b35,transparent 65%),#252719}.room-number{position:absolute;left:22px;top:18px;color:#eee9dd;font-size:.75em;letter-spacing:.2em}.room-info{padding:24px}.room-info h2{font-size:1.65em;margin-bottom:8px}.room-info p{color:var(--muted)}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:24px}.pill{border:1px solid var(--line);border-radius:99px;padding:4px 10px;font-size:.75em;white-space:nowrap;color:var(--muted)}.online-dot::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:8px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px}.lobby-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}.tables{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dart-table{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:20px;position:relative}.dart-table h3{margin:0}.table-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.mini-board{width:74px;height:74px;margin:14px auto;background:repeating-conic-gradient(from -9deg,#d5c8a8 0 18deg,#131b1e 18deg 36deg);border:9px solid #080e12;border-radius:50%;box-shadow:0 0 0 1px #46545a;position:relative}.mini-board::after{content:'';position:absolute;inset:12px;border:4px solid #9a5144;border-radius:50%}.seats{display:flex;flex-direction:column;gap:5px;min-height:80px;margin:15px 0;font-size:.88em}.seat{overflow-wrap:anywhere}.table-actions{display:flex;flex-wrap:wrap;gap:8px}.table-actions button{flex:1}.sidebar h2{display:flex;align-items:center;justify-content:space-between}.player{display:flex;justify-content:space-between;align-items:center;gap:6px;border-bottom:1px solid var(--line);padding:12px 0}.player button{padding:3px 0;min-height:36px;border:0;background:none;text-align:left}.bronze{color:#e4aa85}.silver{color:#d5dee5}.gold{color:#f3d077}.platinum{color:#8cdfce}.diamond{color:#c8b6ff}.chat-panel{margin-top:22px}.chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.chat-head h2{margin-bottom:10px}.chat-log{height:205px;overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:12px 0}.chat-message{margin:0;padding:5px 0;font-size:.92em;overflow-wrap:anywhere}.chat-message time{color:var(--muted);font-size:.78em;margin-right:8px}.chat-message button{min-height:30px;padding:0 6px;font-size:.75em;background:transparent;margin-left:8px}.chat-compose{display:flex;gap:10px;align-items:end}.chat-compose label{flex:1}.chat-compose input{width:100%}.stack{display:flex;flex-direction:column;gap:16px}.stack label{display:flex;flex-direction:column;gap:6px}.stack label.check{flex-direction:row;align-items:center}.check input{width:20px;height:20px;flex:none}input,select,textarea{background:#0c151c;border:1px solid #586974;border-radius:6px;padding:.7rem;color:var(--text);min-width:0;max-width:100%}textarea{min-height:100px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.auth-layout{display:grid;grid-template-columns:1fr 440px;gap:70px;align-items:center;max-width:1100px;margin:28px auto}.auth-story h1{font-size:clamp(3rem,5vw,5rem)}.auth-story .intro{font-size:1.18em;color:var(--muted);max-width:480px}.auth-art{width:180px;height:180px;border-radius:50%;border:16px solid #080e12;background:repeating-conic-gradient(from -9deg,#d5c8a8 0 18deg,#17201e 18deg 36deg);margin-top:35px;box-shadow:0 0 0 1px #4b5a60;position:relative}.auth-art::after{content:'';position:absolute;inset:35px;border-radius:50%;border:9px solid #8a5146}.tabs{display:flex;gap:8px;margin-bottom:20px}.tabs button{flex:1}.error{color:#ffb3aa;background:#422321;border:1px solid #af5f55;padding:12px;border-radius:6px;margin:12px 0}.success{color:var(--green);padding:10px 0}.empty{color:var(--muted);padding:28px 8px}.loading{color:var(--gold);padding:30px}.table-page{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px}.cabinet{background:radial-gradient(ellipse at center,#503324,#2e2019 80%);border:1px solid #73513b;border-radius:15px;padding:26px;box-shadow:inset 0 0 90px #0008}.game-heading{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.game-heading h2{margin:0;font-size:1.1em}.board-row{display:grid;grid-template-columns:150px minmax(220px,1fr) 150px;align-items:center;gap:20px}.chalkboard{background:linear-gradient(135deg,#18211f,#0b1211);border:2px solid #675d43;border-radius:8px;padding:14px;text-align:center;min-height:190px;box-shadow:0 4px 12px #0006}.chalkboard.active{border-color:#edcf8b;box-shadow:0 0 0 2px #edcf8b50}.chalkboard h3{font-size:.85em;margin-bottom:6px;overflow-wrap:anywhere}.big-score{font-size:3rem;font-weight:800;line-height:1.4;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.board-wrap{position:relative;max-width:420px;width:100%;margin:auto}.dartboard{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 14px #0007)}.board-pins{position:absolute;inset:0;pointer-events:none}.pin{position:absolute;width:10px;height:10px;background:#ffe5a2;border:2px solid white;border-radius:50%;transform:translate(-50%,-50%)}.control-deck{margin-top:24px;display:flex;gap:32px;align-items:center;justify-content:space-around;flex-wrap:wrap;background:#101820d9;border-radius:10px;padding:26px}.round-controller{position:relative;width:170px;height:170px;margin:20px;border:4px solid #64727a;border-radius:50%;background:radial-gradient(circle at 40% 30%,#33434b,#10191f 75%);box-shadow:inset 0 2px 8px #ffffff20,0 8px 18px #0008;flex:none}.round-controller::before{content:'';position:absolute;left:49.7%;top:0;width:1px;height:100%;background:#77848d50}.round-controller::after{content:'';position:absolute;top:49.7%;left:0;height:1px;width:100%;background:#77848d50}.aim-button{position:absolute;inset:14px;border-radius:50%;z-index:2;background:radial-gradient(circle at 40% 25%,#e3c88f,#997333);color:#141b20;border:2px solid #f1d9a2;box-shadow:inset 0 2px 4px #fff5,0 4px 9px #0007;font-size:.92em;padding:10px;line-height:1.3}.aim-button:disabled{opacity:.65}.meter-horizontal{position:absolute;left:-2px;right:-2px;top:-24px;height:12px;background:#070e13;border:1px solid #63757e;border-radius:8px}.meter-vertical{position:absolute;top:-2px;bottom:-2px;right:-24px;width:12px;background:#070e13;border:1px solid #63757e;border-radius:8px}.meter-marker-x{position:absolute;width:8px;height:20px;background:#ffe099;top:-5px;left:50%;transform:translateX(-50%);border-radius:3px;box-shadow:0 0 7px #ffe09980}.meter-marker-y{position:absolute;height:8px;width:20px;background:#8fe1ea;left:-5px;top:50%;transform:translateY(-50%);border-radius:3px;box-shadow:0 0 7px #8fe1ea80}.meter-horizontal::after{content:'';position:absolute;left:50%;height:100%;border-left:1px solid white}.meter-vertical::after{content:'';position:absolute;top:25.7%;width:100%;border-top:2px solid var(--gold)}.dart-slots{display:flex;gap:10px;margin-top:10px}.dart-slot{width:50px;border:1px solid #697a83;border-radius:6px;text-align:center;padding:8px;color:var(--gold)}.dart-slot.used{background:#384941}.timer{font-size:1.4em;font-variant-numeric:tabular-nums}.advice{margin-top:18px;padding:12px;border:1px solid #ffffff30;border-radius:6px;color:#efe4ca;font-size:.9em}.game-log{height:180px;overflow:auto;font-size:.85em;color:var(--muted);margin-top:15px}.game-log p{margin:0 0 8px}.watch-banner{color:var(--gold);border:1px solid var(--gold);padding:12px;border-radius:8px;margin-bottom:16px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:24px 0}.stat-box{background:var(--panel);border:1px solid var(--line);padding:22px;border-radius:10px}.stat-number{font-size:2.2em;font-weight:750;font-variant-numeric:tabular-nums}.rank-table{width:100%;border-collapse:collapse;background:var(--panel)}.rank-table th,.rank-table td{padding:14px;text-align:left;border-bottom:1px solid var(--line)}.table-scroll{overflow:auto}.profile-select{max-width:360px;margin:20px 0}.invite-box{border:1px solid var(--gold);padding:16px;border-radius:10px;margin:14px 0}.inbox-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:15px 0}dialog{color:var(--text);background:var(--panel);border:1px solid #71808a;border-radius:16px;padding:26px;max-width:640px;width:calc(100% - 28px);max-height:90dvh;overflow:auto;box-shadow:0 30px 90px #0009}dialog::backdrop{background:#02080dd9}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.dialog-head h2{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:#fff;color:#000;padding:12px}.skip:focus{top:10px}#connection{background:#573628;color:#ffe1ba;padding:12px;text-align:center}.report{border-bottom:1px solid var(--line);padding:20px 0}.report blockquote{border-left:3px solid var(--gold);padding-left:15px;overflow-wrap:anywhere}.subtle-divider{height:1px;background:var(--line);margin:24px 0}[hidden]{display:none!important}.no-motion *{scroll-behavior:auto!important;animation:none!important;transition:none!important}@media(max-width:1180px){.tables{grid-template-columns:repeat(2,minmax(0,1fr))}.table-page{grid-template-columns:1fr}.table-page>.sidebar{display:block}.board-row{grid-template-columns:130px minmax(200px,1fr) 130px}}@media(max-width:780px){.site-header{padding:18px;gap:12px}.brand{font-size:1rem}nav{order:3;width:100%;gap:18px;overflow:auto}.site-header>button{margin-left:auto;font-size:.82em}main{padding:28px 18px 40px}.page-heading{align-items:start;flex-direction:column}.rooms{grid-template-columns:1fr}.lobby-layout{grid-template-columns:1fr}.sidebar{order:2}.auth-layout{grid-template-columns:1fr;gap:24px;margin:0}.auth-story h1{font-size:3rem}.auth-art{display:none}.board-row{grid-template-columns:1fr 1fr;gap:14px}.board-wrap{grid-column:1/-1;grid-row:1}.chalkboard{min-height:130px}.big-score{font-size:2.6rem}.cabinet{padding:16px}.control-deck{gap:12px;padding:20px 12px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer{padding:20px;gap:12px;flex-direction:column}.room-art{height:120px}.form-row{grid-template-columns:1fr}}@media(max-width:420px){.tables{grid-template-columns:1fr}.chat-compose{flex-direction:column;align-items:stretch}.stat-grid{gap:10px}.stat-box{padding:14px}.brand small{display:none}}

.auth-note{margin-top:16px}.turn-readout{font-size:.9em;color:var(--gold)}
.card-bottom{flex-wrap:wrap}.board-row>*{min-width:0}.cabinet{min-width:0}.check input{accent-color:var(--gold)}

#audioNotice,#startupError{padding:1rem;background:#542b20;color:#fff;border-bottom:2px solid #fbbf24}
/* Patch v1.0.2.1: brighter materials and adaptive wide-gamut colour. */
html{--bg:#101e2b;--panel:#1b3040;--line:#496274;--text:#f4f7fa;--muted:#c0d0dc;--gold:#f4ce88;--green:#80efbc;--red:#ffb0a9;--board-red:#d32d41;--board-green:#068b63;--board-black:#101916;--sisal:#f0dfb9}
body{background:radial-gradient(ellipse at 15% 0,#24475e55,transparent 55%),linear-gradient(150deg,var(--bg),#0a151f)}.panel,.room-card,.dart-table{box-shadow:0 12px 30px #0002,inset 0 1px #ffffff0b}.cabinet{background:linear-gradient(130deg,#80552e33,transparent 35%),repeating-linear-gradient(92deg,#3a2c2119 0 2px,#c5a66d0a 2px 5px),linear-gradient(160deg,#263e49,#142630);border-color:#9f805e;box-shadow:0 20px 55px #0006,inset 0 1px #f8e2b633}.dartboard{filter:drop-shadow(0 12px 16px #0009)}.dartboard path{stroke:#bdc5bd;stroke-width:.8}.chalkboard{background:radial-gradient(ellipse at 45% 10%,#334838,#0d1c16);box-shadow:inset 0 0 18px #0008,0 5px 12px #0005;border-color:#b68a54}.big-score{color:#f8f5df;text-shadow:0 1px 2px #ffffff25}.pin{box-shadow:0 0 3px #000}.board-wrap{isolation:isolate}.flying-dart{position:absolute;width:36%;height:auto;z-index:8;pointer-events:none;filter:drop-shadow(3px 10px 4px #0008);transform-origin:98.333% 50%}.flying-dart svg{width:100%;display:block}.last-impact{position:absolute;width:12px;height:12px;transform:translate(-50%,-50%);border:2px solid #fff6ca;border-radius:50%;box-shadow:0 0 0 3px #e8a84588,0 0 12px #ffc45c;z-index:6;pointer-events:none}.owner-wide .form-row{align-items:end}.owner-grid details summary{cursor:pointer;padding:8px}.tabs a[aria-current=page]{border-bottom:3px solid var(--gold);padding-bottom:6px}.owner-grid .panel h3 a:focus-visible{outline:3px solid #a8e9ff;outline-offset:5px}.board-wrap:has(.flying-dart) .last-impact{visibility:hidden}
@supports (color:color(display-p3 1 0 0)){body.wide-p3{--board-red:color(display-p3 .85 .13 .20);--board-green:color(display-p3 .03 .61 .37);--gold:color(display-p3 .96 .81 .48);--green:color(display-p3 .37 .93 .64);--sisal:color(display-p3 .95 .88 .72)}}
@supports (color:color(rec2020 1 0 0)){body.wide-rec2020{--board-red:color(rec2020 .76 .19 .23);--board-green:color(rec2020 .17 .56 .34);--gold:color(rec2020 .90 .80 .47)}}
body.hdr-capable .cabinet{box-shadow:0 20px 55px #0006,inset 0 1px #ffe9bc66,0 0 28px #f8cb641c}body.hdr-capable .aim-button{box-shadow:0 0 30px #e5bd5c33}
body.contrast{--bg:#000;--panel:#080808;--line:#fff;--text:#fff;--muted:#fff;--gold:#ffe58a;--board-red:#de3545;--board-green:#008b61;background:#000}body.contrast .panel,body.contrast .cabinet,body.contrast .chalkboard{box-shadow:none}body.no-motion .flying-dart{display:none}@media(prefers-reduced-motion:reduce){.flying-dart{display:none}.last-impact{transition:none}}@media(forced-colors:active){.last-impact{border-color:Highlight;box-shadow:none}.flying-dart{display:none}}
.board-3d{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.has-3d>.dartboard{opacity:0}.has-3d>.board-pins,.has-3d>.last-impact,.has-3d>.flying-dart{visibility:hidden}.landed-dart{position:absolute;width:22%;height:auto;transform:translate(-98.333%,-50%) rotate(-25deg) scale(.72);transform-origin:98.333% 50%;filter:drop-shadow(2px 4px 2px #0009);pointer-events:none;z-index:4}.landed-dart svg{display:block;width:100%;height:auto}.landed-dart.large{width:30%}.landed-dart.team-1{transform:translate(-98.333%,-50%) rotate(-18deg) scale(.72)}body.contrast .landed-dart svg path:first-child{fill:#fff;stroke:#000;stroke-width:2}body.contrast .landed-dart.team-1 svg path:first-child{fill:#ffff00}

.aim-button[aria-disabled="true"]{opacity:.65;cursor:default}.legal-page{max-width:1000px;margin:auto}.legal-page p,.legal-page li{line-height:1.7}.legal-page .panel{margin:20px 0}.legal-page nav{display:block}.legal-page textarea{white-space:pre-wrap}
/* v1.0.4 — club cabinet, with chat beside the board. */
:root{--board-red:#df1734;--board-green:#008958;--board-black:#101311;--sisal:#f4e5bf}
.cabinet{background:radial-gradient(ellipse at 50% 25%,#294653 0%,#172c39 64%,#13232f 100%);border:1px solid #71828a;box-shadow:inset 0 1px 0 #ffffff22,0 18px 50px #0005}
.table-page{grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);align-items:start;gap:1.25rem}
.table-page>.sidebar{min-width:0;display:flex;flex-direction:column;gap:.65rem}
.table-page>.sidebar>.chat-panel{margin:0;max-height:530px}
.table-page>.sidebar .chat-log{min-height:210px;max-height:340px}
.table-page #matchPlayers{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.table-page #matchPlayers p{margin:0;padding:.7rem;border:1px solid var(--line);border-radius:9px;background:#101e2b}
.table-page .game-log{max-height:130px}
.board-wrap{isolation:isolate;filter:drop-shadow(0 10px 12px #0007)}
.dartboard{filter:contrast(1.05) saturate(1.1)}
.chalkboard{border-color:#8a7958;box-shadow:inset 0 0 20px #0004}
.chalkboard.active{border-color:var(--gold);box-shadow:0 0 15px #f4ce8833,inset 0 0 20px #0004}
.aim-dot{position:absolute;z-index:9;pointer-events:none;width:7px;height:7px;border-radius:50%;background:#fff;outline:1px solid #090d0c;box-shadow:0 0 0 2px #ffd05099;transform:translate(-50%,-50%)}
.aim-dot[hidden]{display:none}
.visual-aim .meter-horizontal,.visual-aim .meter-vertical{display:none!important}
.visual-aim .round-controller{background:none}
.double-guide{display:block;max-width:440px;margin-top:1rem}
.double-guide select{width:100%}
.site-header .brand{white-space:nowrap}.brand #clubName{font-size:clamp(1rem,2vw,1.55rem)}
@media(min-width:1181px){.table-page .board-row{grid-template-columns:minmax(70px,.24fr) minmax(0,1fr) minmax(70px,.24fr)}.table-page .big-score{font-size:clamp(2rem,4vw,4rem)}.table-page .control-deck{padding:.9rem}.table-page>.sidebar>h3{margin-bottom:0}}
@media(max-width:1000px){.table-page{grid-template-columns:1fr}.table-page>.sidebar>.chat-panel{max-height:none}.board-row{max-width:760px;margin:auto}}
@media(max-width:480px){.table-page #matchPlayers{grid-template-columns:1fr}.table-page .board-row{grid-template-columns:1fr 1fr}.table-page .board-wrap{grid-column:1/-1;grid-row:1}.table-page .chalkboard{padding:.6rem}.table-page .control-deck{gap:.8rem;flex-wrap:wrap}.table-page .big-score{font-size:2.5rem}.aim-dot{width:6px;height:6px}}
@media(prefers-reduced-motion:reduce){.aim-dot{transition:none}}
@media(min-width:1181px){.table-page .cabinet{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:.8rem}.table-page .cabinet> :not(.board-row):not(.control-deck){grid-column:1/-1}.table-page .board-row{grid-column:1;grid-row:2;display:grid;grid-template-columns:1fr 1fr;width:100%;gap:.6rem;align-content:start}.table-page .board-wrap{grid-column:1/-1;grid-row:1;width:100%}.table-page .chalkboard{padding:.65rem}.table-page .chalkboard h3{font-size:.85rem;margin:.1rem}.table-page .big-score{font-size:2.5rem;line-height:1.2}.table-page .control-deck{grid-column:2;grid-row:2;display:flex;flex-direction:column;justify-content:space-evenly;align-items:center;padding:.6rem}.table-page .round-controller{transform:scale(.85);transform-origin:center}.table-page .control-deck>div{text-align:center}}
@media(max-width:780px){.visual-aim .round-controller{position:fixed;right:12px;bottom:14px;width:100px;height:100px;z-index:25;border-radius:50%;background:#101e2bf2;box-shadow:0 4px 18px #0009}.visual-aim .round-controller .aim-button{width:86px;height:86px;font-size:.85rem}.visual-aim .control-deck{min-height:90px}}
.aim-button:hover,.aim-button:active{background:radial-gradient(circle at 40% 25%,#f4d89d,#b48b42);color:#101820;border-color:#ffe4af}
/* v1.0.5 — community, chat tabs and statistics cards */
.chat-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:.6rem 0}.chat-tabs [role=tab]{flex:1;padding:.5rem}.chat-tabs [aria-selected=true]{background:var(--gold);color:#101820;border-color:var(--gold)}
.player-chat-link{background:transparent;border:0;color:inherit;padding:.2rem .1rem;min-height:32px;text-decoration:underline;text-underline-offset:3px;text-align:left}.player-chat-link:hover{color:var(--gold);background:#ffffff0c}
.room-rankings{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .7rem;margin:.6rem 0;font-size:.78rem}.room-rankings>div{display:flex;gap:.35rem;justify-content:space-between;border-bottom:1px solid #ffffff18}.room-rankings dt,.room-rankings dd{margin:0}.room-rankings dt{overflow-wrap:anywhere}.room-rankings dd{font-weight:700;white-space:nowrap}
#players{max-height:75vh;overflow:auto}.lobby-layout .player>div{min-width:0;width:100%}.player-card .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.player-card .stat-box{padding:.7rem}.player-card .stat-number{font-size:1.4rem;overflow-wrap:anywhere}
.player-identity{display:flex;align-items:center;gap:1rem}.player-avatar{display:inline-grid;place-items:center;border-radius:50%;width:64px;height:64px;flex-shrink:0;background:radial-gradient(circle at 30% 20%,#36566a,#10212d);border:2px solid var(--gold);color:var(--gold);font-size:1.4rem;font-weight:800}.badge-list{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0}.badge-list li{padding:.4rem .7rem;border:1px solid var(--gold);border-radius:18px;background:#f4ce8812;color:var(--gold)}
.game-info{display:grid;grid-template-columns:1fr 1.5fr;gap:.4rem}.game-info dt{font-weight:700}.game-info dd{margin:0;overflow-wrap:anywhere}.table-open{color:#94e0b3}.table-busy{color:#ffb5ad}.table-private{color:var(--gold)}#spectatorList{display:flex;flex-wrap:wrap;gap:.4rem}
@media(max-width:480px){.room-rankings{grid-template-columns:1fr 1fr}.player-card .stat-grid{grid-template-columns:1fr 1fr}.game-info{grid-template-columns:1fr}.player-card .stat-number{font-size:1.15rem}}
.vip-tier-1{border-color:#7ccdf5;box-shadow:0 0 12px #7ccdf544}.vip-tier-2{width:84px;height:84px;border:3px solid #ffdb75;box-shadow:0 0 18px #ffd45566}.player-avatar{position:relative}.player-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.membership-symbol{position:absolute;right:-6px;bottom:-6px;color:var(--gold);background:#10212d;border-radius:50%;font-size:1.1rem;width:28px;height:28px;display:grid;place-items:center}.vip-tier-1 .membership-symbol{color:#7ccdf5}.emote-buttons{display:flex;gap:.35rem}.emote-buttons button{padding:.25rem .6rem;min-height:32px}.vip-emote{display:inline-block;color:var(--gold);font-size:1.5em;font-weight:900;animation:vip-celebrate 1s ease-in-out 2}@keyframes vip-celebrate{50%{transform:translateY(-3px) scale(1.15)}}@media(prefers-reduced-motion:reduce){.vip-emote{animation:none}}
.vip-name{color:#7ccdf5;font-size:.78em;font-weight:800;white-space:nowrap}.supervip-name{color:#ffdb75;font-size:.78em;font-weight:800;white-space:nowrap}
.lobby-layout .player{align-items:flex-start}.lobby-layout .player>span{align-self:flex-start;padding-top:.3rem;flex-shrink:0}

.player-mode .check{display:flex;align-items:center;gap:.7rem;min-height:48px;padding:.75rem;border:1px solid var(--line);border-radius:10px;cursor:pointer}.player-mode input[type=radio]{width:1.2em;height:1.2em;flex:0 0 auto;accent-color:var(--gold)}.player-mode .check:focus-within{outline:2px solid var(--gold);outline-offset:2px}.player-mode .check:has(input:checked){border-color:var(--gold);background:#ffd36b12}

body.game-expanded>.site-header,body.game-expanded>.site-footer{display:none}body.game-expanded main{max-width:none;width:100%;min-height:100dvh;padding:16px}html:fullscreen main,html:-webkit-full-screen main{max-width:none;width:100%}

.match-player-stats{font-size:.85rem;margin:.4rem 0 1.2rem}.match-player-stats>div{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.2rem 0;border-bottom:1px solid var(--line)}.match-player-stats dt{overflow-wrap:anywhere}.match-player-stats dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}

.table-page #matchPlayers{display:block}#matchPlayers>.match-player{min-width:0;padding:.6rem 0}#matchPlayers>.match-player>p{margin:0}.match-player+.match-player{border-top:1px solid var(--line)}

.brand-logo{width:84px;height:55px;object-fit:contain}.auth-logo{display:block;width:min(100%,540px);height:auto;border-radius:16px}.visit-darts{display:flex;gap:.3rem;margin-top:.7rem}.visit-dart{flex:1;padding:.35rem;border:1px solid var(--gold);border-radius:5px;font-size:.9rem}.visit-dart.unavailable{opacity:.35}.visit-total{font-size:.9rem;margin-top:.3rem}.quick-chat{display:flex;flex-wrap:wrap;gap:.3rem;margin:.6rem 0}.quick-chat button{font-size:.8rem;padding:.35rem;min-height:40px}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:.3rem;max-height:45vh;overflow:auto}.emoji-grid button{font-size:1.4rem}.table-system{font-weight:700;color:var(--gold)}.final-players{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.victory-banner{border:2px solid var(--gold);margin-top:1rem}.clock-warning{color:#ffb3b3;outline:3px solid #c22}.timer{border-radius:50%;border:5px solid var(--gold);padding:1rem;background:conic-gradient(#ffd36b22 var(--clock,100%),transparent 0)}.board-wrap{transition:transform .35s}.board-wrap.match-dart{transform:scale(1.035)}.board-wrap.camera-oche{transform:perspective(700px) rotateX(8deg) scale(.94)}body.no-motion .board-wrap{transition:none;transform:none}.bracket li{padding:.7rem;border-left:3px solid var(--gold);margin-bottom:.5rem}#legInfo{margin:.8rem 0;font-size:.9rem}.board-wrap.bust-flash{outline:3px solid var(--red)}

.dart-trail{filter:drop-shadow(-14px 12px 5px #29c9ff99)}.bouncing-dart{filter:drop-shadow(0 0 4px #fff)}

.pulling-dart{animation:dart-pull .24s forwards;pointer-events:none}@keyframes dart-pull{to{transform:translate(-80%,100%) scale(2);opacity:0}}body.no-motion .pulling-dart{display:none}

/* Native selects and fieldsets must shrink with narrow dialogs. */
label,fieldset,.form-row>*{min-width:0}fieldset{min-inline-size:0;max-width:100%}legend{max-width:100%;white-space:normal;overflow-wrap:anywhere}select,.profile-select{min-width:0;max-width:100%}dialog .stack,dialog .stack label{min-width:0;max-width:100%}dialog select,dialog input:not([type=checkbox]):not([type=radio]),dialog textarea{width:100%;min-width:0;max-width:100%}.emoji-choice{display:flex;min-width:0;flex-direction:column}.emoji-choice button{min-width:0;padding:.3rem}

/* v1.1.1 shop, media and viewer reactions */
.shop-categories{display:flex;flex-wrap:wrap;gap:.5rem}.shop-preview{height:220px;display:grid;place-items:center;perspective:500px;overflow:hidden}.shop-dart-preview{width:220px;height:18px;border-radius:7px;background:linear-gradient(90deg,var(--item-color) 0 28%,#87939e 28% 60%,#d8e3e8 60% 90%,transparent 90%);transform:rotate(-18deg);border-right:35px solid #bac6cc}.shop-dart-preview span,.shop-board-preview span{display:block;margin-top:70px;color:var(--text,#fff);text-align:center}.shop-board-preview{width:140px;height:140px;border:16px solid var(--item-color);border-radius:50%;background:repeating-conic-gradient(#141914 0 18deg,#eadbb2 18deg 36deg);box-shadow:0 0 12px var(--item-color)}.shop-preview:focus-within .shop-dart-preview,.shop-preview:hover .shop-dart-preview{transform:rotate(12deg) rotateY(25deg);transition:transform .5s}.media-videos{display:flex;flex-wrap:wrap;gap:.5rem}.media-videos video{width:min(100%,280px);max-height:180px;border-radius:10px}.media-videos audio{height:0;width:0}.floating-emote{position:absolute;bottom:0;left:45%;font-size:3rem;z-index:9;pointer-events:none;animation:viewer-emote 2.6s ease-out forwards}.shop-match-dim{box-shadow:0 0 0 16px #040914aa,0 0 35px #fff4}@keyframes viewer-emote{from{transform:translateY(0);opacity:1}to{transform:translateY(-260px) rotate(12deg);opacity:0}}@media(prefers-reduced-motion:reduce){.floating-emote{animation:none}.shop-preview *{transition:none!important}}#shopItems{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.6rem}

.shop-model-stage{width:210px;height:210px;flex:none;transform-style:preserve-3d}.shop-preview{display:flex;justify-content:center;flex-wrap:wrap;height:auto;min-height:240px}.shop-preview input[type=range]{width:85%}.shop-model-stage canvas{max-width:100%}


.modern-auth .password-reveal{justify-self:end;padding:.35rem .8rem;font-size:.9rem}.auth-progress:empty{display:none}.auth-progress{border-left:3px solid var(--gold);padding:.6rem .9rem;background:#ffffff08}.auth-layout>.panel{border-top:3px solid var(--gold);box-shadow:0 18px 55px #0004}.modern-auth[aria-busy=true]{cursor:progress}

.owner-overview{background:linear-gradient(130deg,#1a3340,#192b32 55%,#25332d);border-top:3px solid var(--gold)}.owner-quick-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}.owner-quick-actions a{display:inline-block;border:1px solid var(--line);border-radius:8px;padding:.6rem .9rem;background:#10182099}.owner-overview .stat-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}[data-settings-card][hidden]{display:none}

.moderator-player{padding:1rem 0;border-top:1px solid var(--line)}.moderator-player form{display:flex;flex-wrap:wrap;align-items:end;gap:.6rem;margin:.5rem 0}.moderator-player h3{margin-bottom:.25rem}

.training-favorite{display:inline-flex;gap:.25rem;margin:.25rem}.intro-steps>li{margin-bottom:1.25rem}#trainingPage{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:1rem}

.diagnostic-description{white-space:pre-wrap}#diagnosticPreview,pre{max-width:100%;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}

.dart-slots{width:100%;max-width:248px;gap:4px}.dart-slot{flex:1 1 0;min-width:0;max-width:76px;width:auto;padding:4px}.dart-slot svg{width:100%;height:28px;vertical-align:middle}.dart-slot:not(.used){min-width:0}.table-page .control-deck>div:first-child{max-width:100%;min-width:0}.board-wrap.shop-led .dartboard{filter:drop-shadow(0 0 7px #e8f8ff66)}


.table-page .control-deck{flex-wrap:nowrap}.table-page .control-deck .round-controller{margin:20px 0}


@media(max-width:1180px){.table-page .control-deck{flex-wrap:wrap}.table-page .control-deck>div:first-child{width:100%;max-width:248px;flex-shrink:0}}


.owner-grid.system-status-root{grid-template-columns:minmax(0,1fr);min-width:0}.system-status-root .game-info{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
