/* Cloud Putt's little toy world. Intentionally scoped away from real scoring. */
.ps-queue-card .cloud-putt-launch { width: 100%; display: flex; align-items: center; gap: 12px; margin: 20px 0 4px; padding: 14px; text-align: left; border: 1px solid #e8dfef; border-radius: 16px; background: linear-gradient(115deg,#fbf1ec,#eeeafa 75%,#e7f1f8); color: #514766; box-shadow: none; }
.cloud-putt-launch-copy { flex: 1; min-width: 0; }
.cloud-putt-launch-copy strong { display: block; font-size: 13px; font-weight: 650; }
.cloud-putt-launch-copy > span { display: block; margin-top: 4px; font-size: 11px; line-height: 1.5; font-weight: 400; color: #71617e; }
.cloud-putt-launch-arrow { font-size: 22px; }
.cloud-putt-launch-cloud { display: block; position: relative; flex-shrink: 0; width: 44px; height: 34px; border-radius: 45%; background: linear-gradient(145deg,#fff 20%,#ece8f6 75%,#d5cee4); box-shadow: 0 4px 5px #68518214; }
.cloud-putt-launch-cloud i { position: absolute; width: 26px; height: 26px; left: 9px; top: -6px; border-radius: 50%; background: linear-gradient(120deg,#fff,#f4f0f9); }
.cloud-putt-launch-cloud b { position: absolute; left: 12px; top: 6px; font-size: 12px; letter-spacing: 5px; font-weight: 500; color: #706580; }
#cloud-putt-setup-slot, #cloud-putt-hole-slot { width: 100%; max-width: 640px; margin-inline: auto; }
.cloud-putt-invite { margin: 20px auto; width: 100%; overflow: hidden; border: 1px solid #ddd1e6; border-radius: 22px; background: linear-gradient(130deg,#fff6ef,#f0eafa 60%,#e8f3f6); color: #655174; text-align: left; font-family: var(--primary-font,system-ui,sans-serif); box-shadow: 0 8px 28px #5544660b; }
#cloud-putt-invite[hidden] { display: none !important; }
.cloud-putt-invite-sky { height: 75px; }
#cloud-putt-invite-canvas { display: block; width: 100%; height: 100%; pointer-events: none; }
.cloud-putt-invite-copy { padding: 0 20px 18px; }
.cloud-putt-invite-eyebrow { display: block; font-size: 8px; font-weight: 650; letter-spacing: .16em; color: #92799f; }
#cloud-putt-invite-title { margin: 5px 0 8px; font-size: 19px; font-weight: 700; line-height: 1.25; letter-spacing: -.035em; color: #655174; }
#cloud-putt-invite-description { margin: 0; font-size: 12px; line-height: 1.6; color: #796884; max-width: 60ch; }
.cloud-putt-invite-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
#cloud-putt-invite button { min-height: 44px; border: 0; border-radius: 12px; padding: 11px 16px; font-family: inherit; font-size: 12px; line-height: 1.4; font-weight: 600; box-shadow: none; cursor: pointer; }
#cloud-putt-invite-play { background: #79608f; color: #fff; }
#cloud-putt-invite-play:hover { background: #665079; }
#cloud-putt-invite-dismiss { background: transparent; color: #72617e; }
.cloud-putt-invite-copy small { display: block; margin-top: 10px; color: #87738e; font-size: 10px; line-height: 1.5; }
#cloud-putt-invite button:focus-visible { outline: 3px solid #82669b; outline-offset: 2px; }
body.dark-mode .cloud-putt-invite { border-color: #62516f; background: linear-gradient(130deg,#403449,#343b50); }
body.dark-mode #cloud-putt-invite-title { color: #f0e6f6; }
body.dark-mode #cloud-putt-invite-description, body.dark-mode #cloud-putt-invite-dismiss, body.dark-mode .cloud-putt-invite-eyebrow, body.dark-mode .cloud-putt-invite-copy small { color: #cfc0d9; }
#cloud-putt-dialog { padding: max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom)); background: #24223a99; backdrop-filter: blur(8px); }
#cloud-putt-dialog *, #cloud-putt-dialog *::before { box-sizing: border-box; }
.cloud-putt-shell { width: 100%; max-width: 460px; max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px); display: flex; flex-direction: column; overflow: hidden; border-radius: 28px; color: #514766; background: linear-gradient(170deg,#fff6ef 0%,#f2eaf6 44%,#e4edf6 100%); border: 1px solid #ffffffaa; box-shadow: 0 28px 80px #27223e30; font-family: var(--primary-font,system-ui,sans-serif); }
#cloud-putt-dialog [hidden] { display: none !important; }
.cloud-putt-queue-strip { flex-shrink: 0; padding: 12px 20px; border-bottom: 1px solid #d8cee455; background: #fffcf9b3; }
.cloud-putt-queue-strip > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cloud-putt-queue-strip strong { font-size: 12px; font-weight: 650; color: #514766; }
#cloud-putt-position { display: inline-block; min-width: 28px; text-align: right; font-variant-numeric: tabular-nums; }
.cloud-putt-queue-strip p { margin: 4px 0 0; color: #736d82; font-size: 10px; line-height: 1.5; }
#cloud-putt-dialog .ps-queue-status { font-size: 11px; color: #736d82; }
.cloud-putt-header { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 20px 18px 12px; }
.cloud-putt-header > div { text-align: center; }
.cloud-putt-header p { margin: 0 0 5px; font-size: 8px; font-weight: 650; letter-spacing: .18em; color: #958297; }
#cloud-putt-title { margin: 0; font-size: 29px; font-weight: 750; line-height: 1.05; letter-spacing: -.065em; color: #554766; }
#cloud-putt-title span { color: #d697a9; }
#cloud-putt-dialog button { min-height: 44px; border: 1px solid transparent; border-radius: 13px; box-shadow: none; cursor: pointer; font-family: inherit; font-size: 12px; line-height: 1.4; font-weight: 600; color: #675573; background: #fffcfa8c; }
#cloud-putt-dialog button:hover:not(:disabled) { background: #fffcfa; }
#cloud-putt-dialog button:disabled { cursor: default; opacity: .5; }
#cloud-putt-back { width: 44px; font-size: 23px !important; }
#cloud-putt-pause { min-width: 58px; padding: 10px; }
.cloud-putt-content { overflow-y: auto; min-height: 0; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #d6c8df transparent; }
.cloud-putt-score-row { display: flex; align-items: center; justify-content: space-between; margin: 6px 25px 0; }
#cloud-putt-hole { font-size: 10px; color: #8d7d97; letter-spacing: .015em; }
#cloud-putt-hole-name { font-size: 14px; line-height: 1.5; font-weight: 600; color: #65516f; margin: 3px 0 0; }
.cloud-putt-hole-hint { margin: 6px 25px 0; color: #796884; font-size: 11px; line-height: 1.5; }
.cloud-putt-route { display: flex; align-items: center; justify-content: space-between; gap: 3px; list-style: none; margin: 12px 25px 0; padding: 0; }
.cloud-putt-route li { display: grid; place-items: center; width: 24px; height: 24px; flex-shrink: 0; border: 1px solid #a995b350; border-radius: 50%; color: #7d698a; font-size: 10px; font-variant-numeric: tabular-nums; }
.cloud-putt-route li[data-complete="true"] { background: #d4e9df; border-color: #a5c9b8; color: #47675c; }
.cloud-putt-route li[aria-current="step"] { background: #79608f; border-color: #79608f; color: #fff; box-shadow: 0 0 0 3px #ffffffa0; }
.cloud-putt-stroke-chip { display: flex; align-items: center; gap: 7px; padding: 8px 12px; border: 1px solid #ffffffa6; background: #ffffff40; border-radius: 13px; font-size: 10px; color: #8b7b94; }
.cloud-putt-stroke-chip strong { font-size: 16px; color: #685274; font-weight: 600; font-variant-numeric: tabular-nums; }
.cloud-putt-stage { position: relative; width: 100%; aspect-ratio: 4 / 5; max-height: min(440px,calc(100dvh - 390px)); min-height: 250px; }
.cloud-putt-player-row { display: flex; align-items: center; gap: 8px; margin: 12px 25px 0; padding-top: 10px; border-top: 1px solid #a995b329; font-size: 11px; color: #73617e; }
#cloud-putt-player-dot { width: 8px; height: 8px; flex-shrink: 0; border-radius: 50%; background: #9a80b2; }
#cloud-putt-player-name { min-width: 0; flex: 1; overflow-wrap: anywhere; font-size: 12px; }
#cloud-putt-player-count { flex-shrink: 0; font-size: 10px; }
.cloud-putt-handoff { position: absolute; inset: 0; display: grid; place-items: center; padding: 22px; background: #f0e9f533; }
.cloud-putt-handoff > div { width: 100%; max-width: 290px; border: 1px solid #ffffff; border-radius: 24px; padding: 24px 20px; text-align: center; background: #fffaf9f2; box-shadow: 0 12px 40px #68518222; backdrop-filter: blur(8px); }
.cloud-putt-handoff h3 { margin: 8px 0; font-size: 24px; font-weight: 700; letter-spacing: -.04em; line-height: 1.2; color: #655174; overflow-wrap: anywhere; }
.cloud-putt-handoff p { margin: 0; font-size: 11px; line-height: 1.6; color: #796983; }
.cloud-putt-leaderboard { margin: 4px 0 6px; border-top: 1px solid #a995b329; border-bottom: 1px solid #a995b329; }
.cloud-putt-leaderboard > summary { display: flex; align-items: center; justify-content: space-between; min-height: 44px; padding: 12px 2px; font-size: 11px; font-weight: 600; cursor: pointer; color: #72617e; list-style: none; }
.cloud-putt-leaderboard > summary::-webkit-details-marker { display: none; }
.cloud-putt-leaderboard table { width: 100%; table-layout: fixed; border-collapse: collapse; color: #655174; font-size: 11px; }
.cloud-putt-leaderboard caption { text-align: left; font-size: 10px; color: #87738e; padding-bottom: 8px; }
.cloud-putt-leaderboard th, .cloud-putt-leaderboard td { padding: 9px 3px; text-align: center; border-bottom: 1px solid #a995b322; font-variant-numeric: tabular-nums; }
.cloud-putt-leaderboard th:first-child { width: 45%; text-align: left; overflow-wrap: anywhere; }
.cloud-putt-leaderboard tbody th { font-weight: 500; }
.cloud-putt-leaderboard tbody td { vertical-align: top; padding-top: 24px; }
.cloud-putt-history > summary { min-height: 44px; padding: 12px 0; cursor: pointer; }
.cloud-putt-history ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px; list-style: none; margin: 0 0 6px; padding: 0; }
.cloud-putt-history li { border-radius: 6px; padding: 5px 3px; background: #ffffff65; text-align: center; font-size: 10px; }
.cloud-putt-rank { display: inline-block; min-width: 18px; margin-right: 4px; color: #8e779e; font-size: 10px; }
.cloud-putt-leaderboard tr[data-current="true"] { background: #ffffff60; }
#cloud-putt-results-note { font-size: 10px; line-height: 1.5; color: #87738e; margin: 10px 0 12px; }
#cloud-putt-canvas { display: block; width: 100%; height: 100%; touch-action: none; user-select: none; -webkit-user-select: none; cursor: grab; }
#cloud-putt-canvas:active { cursor: grabbing; }
.cloud-putt-pause-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px; text-align: center; background: #f0e9f5c9; backdrop-filter: blur(6px); }
.cloud-putt-pause-overlay > span { font-size: 23px; letter-spacing: -.04em; font-weight: 700; color: #695474; }
.cloud-putt-pause-overlay p { font-size: 12px; line-height: 1.6; color: #7d6c86; margin: 10px 0; }
.cloud-putt-pause-overlay small { font-size: 11px; color: #7d6c86; }
.cloud-putt-footer { padding: 0 22px 14px; }
.cloud-putt-power-track { height: 4px; width: 72px; margin: 0 auto 12px; border-radius: 4px; overflow: hidden; background: #d7cfe2; }
#cloud-putt-power-fill { display: block; width: 72%; height: 100%; border-radius: inherit; background: #9a80b2; }
#cloud-putt-feedback { margin: 0; min-height: 36px; text-align: center; font-size: 12px; line-height: 1.5; color: #72657f; }
#cloud-putt-dialog .cloud-putt-main-button { width: 100%; background: #79608f; color: #fff; padding: 12px 16px; margin-top: 10px; }
#cloud-putt-dialog .cloud-putt-main-button:hover:not(:disabled) { background: #665079; }
#cloud-putt-tap-controls > summary { min-height: 44px; padding: 12px; text-align: center; font-size: 11px; font-weight: 600; cursor: pointer; color: #72617e; }
.cloud-putt-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding-top: 4px; }
.cloud-putt-inputs label { display: block; font-size: 11px; font-weight: 600; color: #766181; }
.cloud-putt-inputs output { float: right; font-weight: 400; }
#cloud-putt-dialog input[type="range"] { display: block; width: 100%; height: 44px; padding: 0; accent-color: #8b6c9f; background: transparent; box-shadow: none; }
.cloud-putt-bottom { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 4px; }
.cloud-putt-bottom > span { font-size: 9px; color: #8b7c94; }
#cloud-putt-reset { background: transparent !important; white-space: nowrap; padding: 8px; font-size: 10px !important; }
#cloud-putt-dialog :is(button,input,summary):focus-visible { outline: 3px solid #82669b; outline-offset: 2px; }
body.dark-mode .cloud-putt-launch { border-color: #54475f; background: linear-gradient(115deg,#403449,#34394e); color: #f0e6f6; }
body.dark-mode .cloud-putt-launch-copy > span { color: #c6b8d1; }
body.dark-mode .cloud-putt-shell { background: linear-gradient(170deg,#362e47,#34344f 45%,#26384a); border-color: #615875; }
body.dark-mode .cloud-putt-queue-strip { background: #272538a6; border-color: #64557155; }
body.dark-mode #cloud-putt-title, body.dark-mode .cloud-putt-queue-strip strong, body.dark-mode #cloud-putt-hole-name, body.dark-mode .cloud-putt-stroke-chip strong { color: #f2e6f5; }
body.dark-mode #cloud-putt-dialog .ps-queue-status, body.dark-mode .cloud-putt-queue-strip p, body.dark-mode .cloud-putt-header p, body.dark-mode #cloud-putt-hole, body.dark-mode #cloud-putt-feedback, body.dark-mode #cloud-putt-tap-controls > summary, body.dark-mode .cloud-putt-inputs label, body.dark-mode .cloud-putt-bottom > span { color: #c4b6d1; }
body.dark-mode #cloud-putt-dialog button { background: #ffffff10; color: #e4d5ef; }
body.dark-mode #cloud-putt-dialog button:hover:not(:disabled) { background: #ffffff20; }
body.dark-mode .cloud-putt-stroke-chip { border-color: #ffffff12; background: #ffffff08; color: #c4b6d1; }
body.dark-mode .cloud-putt-pause-overlay { background: #302c45e0; }
body.dark-mode .cloud-putt-pause-overlay :is(span,p,small) { color: #dfd1e9; }
body.dark-mode .cloud-putt-player-row, body.dark-mode .cloud-putt-leaderboard > summary, body.dark-mode .cloud-putt-leaderboard table { color: #e4d5ef; }
body.dark-mode .cloud-putt-leaderboard caption, body.dark-mode #cloud-putt-results-note, body.dark-mode .cloud-putt-rank { color: #c4b6d1; }
body.dark-mode .cloud-putt-leaderboard tr[data-current="true"] { background: #ffffff0a; }
body.dark-mode .cloud-putt-handoff { background: #302c4533; }
body.dark-mode .cloud-putt-handoff > div { background: #39324bea; border-color: #71627d; }
body.dark-mode .cloud-putt-handoff :is(h3,p) { color: #f1e3f5; }
body.dark-mode .cloud-putt-hole-hint, body.dark-mode .cloud-putt-route li { color: #cfc0d9; }
body.dark-mode .cloud-putt-route li[data-complete="true"] { background: #3c5b54; border-color: #658c7c; color: #d6f1e3; }
body.dark-mode .cloud-putt-route li[aria-current="step"] { background: #ad8bc2; color: #271d34; box-shadow: 0 0 0 3px #ffffff15; }
body.dark-mode .cloud-putt-history li { background: #ffffff0a; }
@media (max-width: 480px) { .cloud-putt-shell { border-radius: 23px; } .cloud-putt-header { padding-top: 15px; } }
@media (max-height: 650px) { .cloud-putt-header { padding-top: 10px; padding-bottom: 8px; } #cloud-putt-title { font-size: 25px; } .cloud-putt-queue-strip { padding-top: 8px; padding-bottom: 8px; } }
@media (prefers-reduced-motion: reduce) { #cloud-putt-dialog *, .cloud-putt-launch * { animation: none !important; transition: none !important; } }
