/* Daylight shuffleboard club. The board, scores and next action have distinct lanes. */
:root{color-scheme:light;--bg:#f1e8d8;--panel:#fff9ee;--ink:#3e382e;--muted:#6d695e;--gold:#976021;--gold-deep:#805021;--blue:#2868aa;--coral:#b84d39;--line:#cfc2a9}
*{-webkit-tap-highlight-color:transparent}
.app-shell{background:var(--bg)}
.arena::before,.arena::after{display:none}
.topbar{background:#fff9eef0;border-color:#d6c9b1}
.brand-type span{color:#ac582f}.brand-mark{filter:none}
.wallet{background:#e9dfc9;border-color:#ccb78e;color:#775224}
.icon-button{color:#615745;border-color:#d2c3a6;background:#fff9ed;min-width:44px;min-height:44px}
.bottom-bar{background:#e8ddc8;color:#5d6155;border-color:#d2c3a6}
.nav-button.active,.segmented .selected{color:#8d491f;background:#ebd6b5}
.primary-button{background:#ba633c;color:#fffaf1;border-color:#a25230;box-shadow:0 3px 0 #8f452b}
.secondary-button,.mode-button{background:#fff9ed;color:#514733;border:1px solid #cdbc9d;box-shadow:0 2px 0 #d2c3a7}
.home-description,.mode-caption,.mode-button small,.home-note,.home-difficulty,.table-tag,.page-heading p,.shop-hint{color:#625e53}
.home-title{color:#3e382e}.home-title span{color:#a95330}
.modal-backdrop{background:#574d384d;backdrop-filter:blur(5px)}
.modal-card{background:#fff9ef;color:#3e382e;border:1px solid #d7c7ab;box-shadow:0 20px 65px #69513033}
.modal-card p,.setting-row small,.settings-rules p,.save-note{color:#696051}
.toggle{background:#d7cdbb}.toggle:checked{background:#b4663e}.toggle:checked::before{background:#fff8ed}
.destination,.opponent-card,.shop-card,.table-product,.tour-pass,.masters-card,.club-run-card{background:#fff9ed;color:#3e382e;border-color:#d2c4a9;box-shadow:0 3px 0 #d7c9af}
.destination p,.destination small,.opponent-card p,.product-info p,.tour-pass p,.masters-card p{color:#6d6353}
.rival-window{background:#efdfcc;border-color:#dbbba0}.matchup-vs{color:#996237}
.result-scoreboard,.result-scoreboard>div{background:#f0e7d6;color:#3e382e}
.segmented{background:#e3d8c2;border-color:#cabc9e}
.segmented button{color:#615848;min-height:44px}
.segmented button.selected{background:#fff9ed;color:#4b4030;box-shadow:0 2px 0 #c7b799}
.shop-card-top,.opponent-card-top,.shop-wallet span,.shortfall{color:#6d6353}
.buy-button.is-equipped{color:#fffaf1;background:#9b642d}
.toast{background:#fff8e9;color:#4c483b;border-color:#c9b48b}
.key{color:#685f4b;background:#e8dfcf;border-color:#ccbea1}
.game-ui .score-card{opacity:1;border-top:3px solid #2771b2;padding-top:10px}
.game-ui .score-card.cpu{border-color:#bd583d}
.game-ui .player-label,.game-ui .player-subtitle,.game-ui .score-unit,.game-ui .turn-badge,.game-ui .card-divider,.game-ui .opponent-avatar,.game-ui .opponent-quote,.game-ui .remaining{display:none}
.game-ui .score-card .player-name{font-size:20px;color:#42515a;margin:0}
.game-ui .score-card.cpu .player-name{color:#7e483c}
.game-ui .score-line{margin-top:6px}
.game-ui .score-card.player .score-number{color:#2868aa}
.game-ui .score-card.cpu .score-number{color:#ac4c37}
.game-ui .score-number{font-size:44px;line-height:1}
.game-ui .puck-rack{display:flex;gap:5px;margin:10px 0 0;flex-wrap:wrap}
.game-ui .puck-rack .rack-puck{width:15px;height:10px;background:#4a8cca;box-shadow:0 2px 0 #2868aa}
.game-ui .score-card.cpu .rack-puck{background:#db8166;box-shadow:0 2px 0 #a34c38}
.game-ui .rack-puck.used{opacity:.22}
.game-ui .instruction{background:#fff9ee;color:#3e382e;border:1px solid #c6b799;border-left:3px solid #397cac;border-radius:8px;box-shadow:none}
.game-ui .instruction[data-turn="player"] strong{color:#2868aa}
.game-ui .instruction[data-turn="cpu"] strong{color:#9c4635}
.game-ui .instruction small{color:#615a4c}
.game-ui .instruction.danger{background:#ffeddc;border-color:#bc613e}
.game-ui .instruction.danger strong{color:#a2412b}
.game-ui .instruction .icon{animation:none;color:#397cac}
.game-ui .pause-button{background:#fff8eb;color:#625039;border-color:#cdbb9a;min-height:44px}
/* Fit the label and keyboard shortcut even in a tall desktop window. */
#app .game-ui .play-controls{width:max-content;max-width:calc(100% - 24px)}
#app .game-ui .pause-button{display:inline-flex;width:auto;min-width:94px;gap:8px;padding:10px 12px;white-space:nowrap}
#app .game-ui .pause-button .icon{flex:0 0 18px;width:18px;height:18px}
#app .game-ui .pause-button .key{flex:none;margin:0}
@media(hover:none) and (pointer:coarse){#app .game-ui .pause-button .key{display:none}}
.game-ui .match-label{color:#6c5c43;text-transform:none;letter-spacing:0;font-size:13px}
.turn-clock{background:#e9ddc5;color:#685634;border-color:#c9b694}
.guide-focus{display:none}
.guide-ring{width:42px;height:30px;left:-21px;top:-15px;border-color:#2868aa;box-shadow:none;animation:none}
.guide-arrow{background:#2868aa66}.guide-arrow::after{border-color:#2868aa}
.guide-chevrons i{width:10px;height:10px;border-color:#2868aa;border-width:2px}
.guide-release{border-color:#2868aa;width:22px;height:16px;left:-11px;top:calc(var(--pull) - 8px);border-width:2px}
.guide-gesture{filter:none}.first-shot-guide.coaching .guide-focus{display:none}
/* Portrait: scores and one cue above the table; the full pull lane stays clear. */
@media(max-aspect-ratio:7/5){
 .home-panel{background:linear-gradient(0deg,var(--bg) 0%,var(--bg) 78%,transparent 100%)}
 .app-shell[data-view="play"] .topbar{height:48px;min-height:48px;padding-inline:14px}
 .app-shell[data-view="play"] .bottom-bar{display:none}
 .app-shell[data-view="play"] .wallet{padding:6px 12px;font-size:13px}
 .app-shell[data-view="play"] .brand-type{font-size:14px}
 .app-shell[data-view="play"] .brand-mark{width:30px;height:30px}
 .app-shell[data-view="play"] .icon-button{width:44px;height:44px;min-width:44px}
 .game-ui .match-top{top:5px;left:12px;right:12px;text-align:center}
 .game-ui .match-label{font-size:12px}
 .game-ui .turn-clock{position:absolute;top:28px;left:calc(50% - 22px);margin:0;min-width:44px;font-size:12px}
 .game-ui .score-card{top:30px;width:calc(50% - 44px);padding-top:7px;display:grid;grid-template-columns:1fr auto;gap:4px}
 .game-ui .score-card.player{left:16px}.game-ui .score-card.cpu{right:16px}
 .game-ui .score-card .player-name{font-size:16px;align-self:center;margin:0}
 .game-ui .score-line{grid-column:2;grid-row:1;margin:0}.game-ui .score-number{font-size:30px}
 .game-ui .puck-rack{grid-column:1 / -1;margin:0;gap:4px}
 .game-ui .puck-rack .rack-puck{width:13px;height:8px}
 .game-ui .instruction{left:16px;right:16px;top:88px;bottom:auto;width:auto;max-width:none;min-height:38px;padding:7px 10px;gap:8px;display:flex;align-items:center}
 .game-ui .instruction>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
 .game-ui .instruction strong{font-size:12px;line-height:1.3;letter-spacing:0}
 .game-ui .instruction small{font-size:12px;line-height:1.3}
 .game-ui .instruction .icon{width:19px;height:19px}
 .game-ui .play-controls{right:12px;bottom:10px;width:94px}
 .game-ui .pause-button{font-size:13px;padding:8px;min-height:44px}
 .toast.game-toast{top:92px;max-width:calc(100% - 32px);font-size:13px}
}
@media(min-aspect-ratio:7/5){
 #app.landscape-fit .game-ui .score-card{top:70px}
 #app.landscape-fit .game-ui .instruction{border-color:#c9b99e;border-left-color:#397cac}
 #app.landscape-fit .game-ui .match-top{width:170px}
 #app.landscape-fit .app-shell[data-view="play"] .topbar{height:48px;min-height:48px}
}

.arena canvas:focus{outline:none}
#app .game-ui .score-card :is(.player-label,.player-subtitle,.score-unit,.turn-badge,.card-divider,.opponent-avatar,.opponent-quote,.remaining){display:none}
@media(max-aspect-ratio:7/5){
 .game-ui .instruction>div{display:block}
 .game-ui .instruction strong{display:none}
 .game-ui .instruction small{display:block}
 .game-ui .instruction[data-turn="cpu"] strong{display:block}
 .game-ui .instruction[data-turn="cpu"] small{display:none}
}
/* Turn time belongs to the action cue, outside both score cards. */
#app .game-ui .instruction{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center}
#app .game-ui .instruction>div{min-width:0}
#app .game-ui .instruction .turn-clock{position:static;left:auto;top:auto;transform:none;margin:0;min-width:38px;padding:3px 6px;font-size:12px;white-space:nowrap;align-self:center}
#app .game-ui .instruction .turn-clock[hidden]{display:none}
#app .game-ui .instruction .results-again{grid-column:1 / -1}
.reward-ad{width:100%;min-height:48px;background:#e8ead7;border-color:#a9b58b;color:#42583c;gap:8px}
.reward-ad span{display:block}.reward-ad small{display:block;font-size:11px;font-weight:500;line-height:1.4;letter-spacing:0}
.reward-doubled{color:#3f653b;font-size:13px;font-weight:700;text-align:center;padding:6px}
#app .quick-result .reward-ad{margin:0;min-height:46px;padding:6px 12px;font-size:14px}
@media(max-height:420px){
 #app .quick-result:has(.reward-ad){grid-template-columns:1fr 1fr;gap:5px 8px}
 #app .quick-result:has(.reward-ad)>*{grid-column:1 / -1}
 #app .quick-result:has(.reward-ad)>.run-progress{display:none}
 #app .quick-result:has(.reward-ad)>.reward-ad{grid-column:1;grid-row:6}
 #app .quick-result:has(.reward-ad)>[data-action="run-again"]{grid-column:2;grid-row:6;min-height:46px;font-size:12px}
}
