.auth-page{min-height:100dvh;display:grid;place-items:center;padding:25px;background:linear-gradient(#100d0dd9,#100d0de8),url('assets/casino-hall.png') center/cover fixed}.auth-card{width:min(480px,100%);padding:36px;background:#211913;border:1px solid #967440;border-radius:7px;box-shadow:0 20px 70px #0008}.auth-card h1{font:38px/1.2 var(--serif);letter-spacing:0;margin:25px 0 15px}.auth-card p{color:var(--muted);font-size:13px;line-height:1.7;margin:15px 0}.auth-card .eyebrow{margin-top:28px}.auth-card .field{margin:18px 0}.auth-card .button{margin-top:12px}.auth-card #auth-error{color:#dfaaa0;min-height:22px}.online-master-bar{display:flex;gap:22px;align-items:center;padding:10px 4%;background:#312519;border-bottom:1px solid #705535;color:#c3ac82;font-size:11px;flex-wrap:wrap}.online-master-bar span{margin-right:auto}.online-master-bar a,.online-master-bar button{color:var(--gold)}#online-block::backdrop{background:#000c}#online-block h2{font-size:27px}#online-block{margin:auto;color:#d8c9ac}.accounts-page{max-width:1100px;margin:40px auto;padding:0 22px}.accounts-page h1{font:40px var(--serif);letter-spacing:0;margin:25px 0}.accounts-page>p{color:var(--muted);font-size:13px;margin:15px 0}.account-row{display:flex;gap:20px;align-items:center;flex-wrap:wrap;border:1px solid #675032;background:#241c14;padding:18px;margin:12px 0}.account-row>div{flex:1;min-width:140px}.account-row span,.account-row small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.account-row form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.account-row input{max-width:240px}.account-row .button{font-size:11px;padding:9px 12px}.accounts-page>.auth-card{margin:30px 0}.online-player-header{display:flex;gap:15px;align-items:center;flex-wrap:wrap;padding:20px 5%;border-bottom:1px solid var(--line);background:#211a14}.online-player-header .brand{margin-right:auto}.online-player-header a,.online-player-header button{font-size:12px;color:var(--gold)}.player-shell{max-width:1250px;padding:30px 22px;margin:auto}.player-welcome{display:flex;justify-content:space-between;gap:20px;align-items:center}.player-welcome h1{font:34px var(--serif);margin:0;letter-spacing:0}.player-wallet{color:var(--gold);font:28px var(--serif)}.player-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.player-tabs button{border:1px solid #725838;border-radius:4px;padding:10px 15px;font-size:12px;color:#cbb287}.player-tabs button.selected{background:#b18b4933;border-color:#c9a267}.player-table{border:1px solid #695036;background:#211913;border-radius:5px;padding:26px;min-height:420px}.player-table h2{font:31px var(--serif);color:var(--gold-bright);margin-bottom:15px}.player-table p{font-size:13px;color:var(--muted);line-height:1.7}.player-table .game-actions{justify-content:flex-start}.player-table .field{max-width:280px}.player-table .playing-card{display:inline-block;margin:7px}.player-pending{padding:12px 16px;border-left:2px solid #b0894b;background:#84632d14;margin:15px 0;font-size:13px}.player-result{color:#e9ce95;font-size:19px;min-height:36px;margin:16px 0;line-height:1.7}.player-stats{display:flex;gap:14px;flex-wrap:wrap;margin:18px 0}.player-stats>span{padding:9px 13px;border:1px solid #665035;color:#cdbb98;font-size:12px}.player-roulette{width:min(290px,65vw);aspect-ratio:1;border-radius:50%;border:10px solid #b18b50;position:relative;margin:20px auto;box-shadow:0 0 0 5px #382718,0 10px 40px #0008}.player-roulette>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46%;height:46%;border-radius:50%;background:#33241a;border:3px solid #bf9b5f;display:grid;place-items:center;font:42px var(--serif);color:var(--gold-bright)}.player-roulette i{position:absolute;left:calc(50% - 8px);top:-21px;color:#ffefb9;font-style:normal}.player-arena{max-width:820px;margin:18px auto}.player-arena .arena-board{aspect-ratio:1}.player-arena .arena-surface{background-image:url('assets/arena.png')}.player-arena .arena-token{cursor:default}.player-arena .arena-token.own-token{cursor:grab;outline:2px solid #fff0a8;outline-offset:3px}.player-blind{min-height:350px;background:radial-gradient(ellipse,#322139,#120f18);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:35px;margin:15px 0}.player-blind span{font-size:80px;color:#a384bd}.player-dice{display:flex;gap:15px;margin:25px 0}.player-dice span{font-size:75px;color:#e3c790}.player-table .farkle-dice{margin-left:0}.player-table .cups-table{max-width:500px;margin:45px auto}.player-status{font-size:11px;color:#b6a582;margin-top:18px}.player-cup-result .cup{transform:translateY(-50px)}@media(max-width:650px){.auth-card{padding:25px}.auth-card h1{font-size:30px}.player-shell{padding:20px 12px}.player-table{padding:18px 12px}.player-tabs{gap:5px}.player-tabs button{font-size:10px;padding:9px}.player-welcome h1{font-size:27px}.online-player-header{padding:14px}.online-player-header .brand{font-size:21px}.player-table .playing-card{width:64px;height:94px}.account-row{gap:12px}.player-table .cups-table{height:190px}.player-table .cup{width:70px;height:105px}.player-table .cup-slot{height:170px}}
.player-arena .arena-token:disabled{opacity:1}.player-arena .course-marker{display:grid;place-items:center;pointer-events:none}
/* Personal controls and the shared, read-only table. */
.player-hall .online-master-bar .player-wallet,.player-hall .table-wallet{display:flex;flex-direction:column;gap:2px;padding:8px 16px;border:1px solid #a27d43;border-radius:5px;background:linear-gradient(120deg,#564025,#2b2218);color:var(--gold-bright);margin:0;font-family:var(--sans);flex-shrink:0}
.player-wallet small,.table-wallet>span{font:9px/1.4 var(--sans);letter-spacing:1.2px;color:#dac59f}
.player-wallet strong,.table-wallet strong{font:600 24px/1.2 var(--serif);font-variant-numeric:tabular-nums;white-space:nowrap}
.player-hall .table-wallet{padding:7px 14px;min-width:125px}.player-hall .dialog-header-actions{gap:12px}
.player-hall .your-seat{display:flex;flex-direction:column;gap:5px;margin:18px 0}.your-seat strong{font-size:16px;font-weight:500;overflow-wrap:anywhere}
.player-hall .own-wager{padding:16px;border:1px solid #9c7a43;border-radius:5px;background:#bc914d0b;margin:18px 0}
.own-wager>.eyebrow{display:block;margin-bottom:10px}.own-wager .field{margin:0 0 12px}.own-wager .field>span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.own-wager .field input,.own-wager .field select{width:100%;min-width:0}.own-wager .game-actions{justify-content:flex-start;gap:8px;margin:10px 0}.own-wager .game-actions .button{padding:9px 12px;font-size:11px;flex:1;gap:8px}
.own-wager .wager-status{font-size:11px;line-height:1.6;color:#d5bd90;margin-top:10px}.own-wager .round-bet-controls{grid-template-columns:minmax(0,1fr) 85px}
.other-wagers{margin-top:24px}.other-wagers h4{font-size:11px;color:var(--muted);font-weight:500;margin:0 0 8px}
.peer-wager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #ffffff0c}.peer-wager>div{min-width:0}.peer-wager b{font-size:12px;font-weight:500;overflow-wrap:anywhere}.peer-wager small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.peer-wager>strong{font-size:14px;font-weight:500;color:#d8bd8a;white-space:nowrap;font-variant-numeric:tabular-nums}
.goal-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted);margin:18px 0}.goal-summary strong{color:var(--gold);white-space:nowrap}
.farkle-view-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:18px;gap:4px}.farkle-view-tabs button{flex:1;font-size:11px;line-height:1.5;padding:11px 7px;color:var(--muted);border-bottom:2px solid transparent}.farkle-view-tabs button[aria-selected=true]{border-color:var(--gold);color:var(--gold-bright);background:#b18b4910}
#farkle-side-panel{min-height:300px}#farkle-side-panel .rule-row{font-size:11px;gap:12px}#farkle-side-panel .rule-row strong{white-space:nowrap}#farkle-side-panel>p{margin-top:14px;font-size:11px;line-height:1.8}
@media(max-width:650px){.player-hall .dialog-header{align-items:flex-start;flex-wrap:wrap;gap:12px}.player-hall .dialog-header>div:first-child{flex:1 1 100%}.player-hall .dialog-header-actions{width:100%;justify-content:space-between;gap:8px}.player-hall .dialog-header-actions .button{padding:8px 10px;font-size:11px}.player-hall .table-wallet{min-width:115px}.table-wallet strong{font-size:22px}.player-hall .online-master-bar .player-wallet{margin-left:auto;padding:7px 13px}.player-wallet strong{font-size:22px}.player-hall .own-wager{padding:14px}}
.player-hall .player-button:disabled{opacity:1;cursor:default}.player-hall .online-master-bar #player-chips{margin-right:0;color:var(--gold-bright)}.player-hall .online-master-bar #player-name{font-weight:500}.player-hall #artifact-purchase-note{color:var(--gold)}
.player-hall .player-arena{max-width:none;margin:0}.player-hall .arena-round-tabs button:disabled{opacity:1;cursor:default}.player-station-label{display:flex;align-items:center;gap:8px;font-size:11px;text-align:left;flex:1;padding:5px 0}.player-station-label>span{display:grid;place-items:center;width:23px;height:23px;border:1px solid #91703f;border-radius:50%;color:var(--gold);flex-shrink:0}.player-hall .arena-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;font-size:10px;color:var(--muted)}
.player-hall .own-entry{border-color:#ac874d;background:#b08a4810}.player-hall .participant-bet.own-entry{padding:9px;border:1px solid #ac874d;border-radius:4px}.player-hall .round-bet-controls input,.player-hall .round-bet-controls select,.player-hall .participant-bet input[type=number]{min-width:0;width:100%;color:var(--text);background:#16120f;border:1px solid #685032;border-radius:3px}.player-hall .round-bet-controls :disabled,.player-hall .participant-bet :disabled{opacity:.65}.player-hall .round-bet-actions{flex-wrap:wrap}.player-hall .round-bet-actions>span{flex-basis:100%}.player-hall .game-sidebar>.button{margin-top:14px}.player-hall .arena-board-wrap>.result-box{min-height:0}
@media(max-width:450px){.player-hall .round-controls{left:auto;bottom:75px}.player-hall .arena-tools{flex-wrap:wrap}.player-hall .online-master-bar{gap:12px}.player-hall .online-master-bar #player-status{flex-basis:100%;margin:0}}
.d20-dock{position:fixed;left:18px;bottom:18px;z-index:2000;color:var(--text);font:13px/1.5 var(--sans);text-align:left;max-width:calc(100vw - 36px)}
.d20-toggle{display:flex;gap:15px;align-items:center;max-width:100%;min-height:48px;padding:10px 17px;border:1px solid #b18b50;border-radius:6px;background:#2b2119;box-shadow:0 5px 25px #0009;color:var(--gold-bright)}
.d20-toggle strong{white-space:nowrap;font-size:18px}.d20-toggle small{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.d20-panel{width:min(365px,calc(100vw - 36px));max-height:calc(100dvh - 100px);overflow:auto;margin-bottom:10px;padding:20px;background:#211913;border:1px solid #967440;border-radius:7px;box-shadow:0 10px 50px #000b}
.d20-panel>header{display:flex;justify-content:space-between;align-items:center;gap:15px}.d20-panel h2{font:28px/1.2 var(--serif);color:var(--gold-bright);margin:3px 0 12px}.d20-panel .d20-help{font-size:11px;line-height:1.6;color:var(--muted);margin:8px 0}.d20-panel .field{display:block;margin:15px 0 10px}.d20-panel .field span{display:block;font-size:11px;margin-bottom:5px}.d20-panel input{width:100%;min-width:0;padding:9px;border:1px solid #725838;border-radius:3px;background:#15110f;color:var(--text)}
#d20-result{font-size:19px;color:var(--gold-bright);margin-top:12px}#d20-error{font-size:12px;color:#e9a69d;margin-top:8px}#d20-history{list-style:none;padding:0;margin:10px 0 0;max-height:240px;overflow:auto;overscroll-behavior:contain}#d20-history li{display:flex;align-items:center;gap:12px;border-top:1px solid #69503666;padding:10px 2px}#d20-history li>div{min-width:0;overflow-wrap:anywhere}#d20-history b{font-weight:500}#d20-history span,#d20-history time{display:block;color:var(--muted);font-size:11px}.d20-value{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);background:#664c2f;color:#f3dfb2;font-size:20px}.d20-value.critical{background:#335947}.d20-value.fumble{background:#743b40}.d20-empty{color:var(--muted);font-size:12px}
body:has(.d20-dock){padding-bottom:75px}@media(max-width:650px){.d20-dock{left:10px;bottom:10px;max-width:calc(100vw - 20px)}.d20-panel{width:min(365px,calc(100vw - 20px))}.d20-toggle small{max-width:140px}.d20-dock .button{font-size:12px}.d20-panel{padding:16px}}
.session-change-dialog{margin:auto;color:var(--text);max-height:90dvh;overflow:auto}.session-change-dialog::backdrop{background:#080706eb}.session-change-dialog h2{font:29px/1.2 var(--serif)}.session-change-dialog .d20-dock,.session-change-dialog .music-dock{display:none}
