/* Shared lobby / on-course group controls. No gameplay selectors are overridden. */
.mp-lobby,.mp-dialog,#mpPlaybar{--mp-ink:#edf0d8;--mp-muted:#b4c7af;--mp-line:#bed09c32;--mp-accent:#c6d69a;color:var(--mp-ink);font-family:inherit}
.mp-lobby{background:linear-gradient(140deg,#1c3d2f,#102b23);border:1px solid var(--mp-line);border-radius:20px;padding:26px;margin:0 0 38px;box-shadow:0 15px 40px #03180f26}
.mp-lobby [hidden],.mp-dialog [hidden],#mpPlaybar [hidden]{display:none!important}
.mp-lobby-heading,.mp-section-heading,.mp-self,.mp-player-row,.mp-invite-row{display:flex;align-items:center;gap:14px}
.mp-lobby-heading,.mp-section-heading{justify-content:space-between}.mp-lobby-heading{margin-bottom:20px}.mp-lobby-heading h2{margin:6px 0 0;font-size:28px}.mp-section-heading{margin:23px 0 10px}.mp-lobby h3{font-size:15px;margin:0;font-weight:650;letter-spacing:0}.mp-connection,.mp-count,.mp-badge{font-size:11px;white-space:nowrap;background:#bed09c18;border:1px solid var(--mp-line);border-radius:20px;padding:6px 10px}.mp-connection{color:#cee8b8}.mp-connection.is-offline{color:#f4c28f}.mp-count{margin-left:5px;padding:2px 7px}.mp-list-hint{font-size:11px;color:var(--mp-muted)}
.mp-self{padding:15px 17px;border:1px solid var(--mp-line);border-radius:13px;background:#071d1633}.mp-self>.mp-button{margin-left:auto}.mp-presence-dot{width:10px;height:10px;flex:none;border-radius:50%;background:#718176;box-shadow:0 0 0 5px #71817615}.mp-presence-dot.is-live{background:#bce38e;box-shadow:0 0 0 5px #bce38e15}.mp-player-label{min-width:0;flex:1}.mp-player-label strong,.mp-player-name{display:block;font-size:14px;overflow-wrap:anywhere}.mp-player-label small{display:block;color:var(--mp-muted);font-size:11px;margin-top:4px;line-height:1.4}.mp-help{font-size:12px;line-height:1.65;color:var(--mp-muted);margin:12px 0 0}.mp-privacy{font-size:11px;line-height:1.5;color:#98ae91;margin:7px 0 0}.mp-list{padding:0;margin:0;list-style:none;display:grid;gap:8px}.mp-player-row,.mp-invite-row{padding:12px 14px;border-radius:12px;border:1px solid var(--mp-line);background:#a4be8610;min-width:0}.mp-avatar{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;background:#c6d69a22;color:#dfe9c5;font-size:15px;font-weight:650}.mp-empty{list-style:none;margin:0;border:1px dashed var(--mp-line);border-radius:12px;padding:18px;color:var(--mp-muted);font-size:12px;line-height:1.6}.mp-button,.mp-text-button,#mpPlaybar button,#mpPlaybar a{appearance:none;cursor:pointer;font:inherit;min-height:44px;border-radius:10px;text-decoration:none}.mp-button{font-size:12px;font-weight:650;padding:11px 16px;background:var(--mp-accent,#c6d69a);color:#183226;border:1px solid transparent;line-height:1.4}.mp-button.mp-secondary{background:#254533;color:#edf0d8;border-color:#bed09c45}.mp-button:hover:not(:disabled){filter:brightness(1.08)}.mp-button:disabled{opacity:.5;cursor:default}.mp-button:focus-visible,.mp-text-button:focus-visible,#mpPlaybar a:focus-visible,#mpPlaybar button:focus-visible{outline:3px solid #9fe3ed;outline-offset:3px}.mp-text-button{font-size:11px;padding:8px 0 8px 12px;color:#d7dfb7;background:transparent;border:none;text-decoration:underline;text-underline-offset:4px}.mp-actions{display:flex;gap:7px;flex-wrap:wrap}.mp-group,.mp-invitations{margin-top:20px;padding-top:1px;border-top:1px solid var(--mp-line)}.mp-invitations>h3{margin:20px 0 12px}.mp-members{list-style:none;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap}.mp-member{display:flex;align-items:center;gap:7px;border:1px solid var(--mp-line);border-radius:10px;padding:10px 12px;font-size:12px;max-width:100%;overflow-wrap:anywhere}.mp-member small{color:#b4c7af;font-size:10px}.mp-member-color{height:9px;width:9px;flex:none;border-radius:50%;background:#c6d69a}.mp-group>.mp-button{margin-top:12px}.mp-notice{font-size:12px;line-height:1.6;margin:12px 0 0;color:#c7dfa9}.mp-notice:empty{display:none}.mp-notice.is-error{color:#ffc79e}.mp-course-start{width:100%;margin-top:18px;display:block;min-height:46px}.mp-course-note{font-size:10px;line-height:1.5;text-align:center;color:#a3b89a;margin:8px 0 0}.mp-dialog{width:min(470px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;background:#153329;border:1px solid #bed09c55;border-radius:20px;padding:28px;box-shadow:0 25px 100px #0008}.mp-dialog::backdrop{background:#02140eb8;backdrop-filter:blur(5px)}.mp-dialog h2{font-size:28px;line-height:1.15;margin:12px 0 15px}.mp-dialog p{color:var(--mp-muted);font-size:13px;line-height:1.7}.mp-resume-choices{display:grid;gap:9px;margin:22px 0 10px}.mp-dialog>.mp-button{width:100%}
#mpPlaybar{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;padding:11px 22px;background:#0b231c;border-bottom:1px solid var(--mp-line);position:relative;z-index:6;font-size:12px;line-height:1.5}#mpTurn{font-size:13px;color:#e5efca}#mpClock{font-variant-numeric:tabular-nums;color:#d6c78c;font-weight:700}#mpMembers{display:flex;flex-wrap:wrap;gap:5px 10px;align-items:center;min-width:0}#mpMembers>span{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:6px;background:#ffffff08;overflow-wrap:anywhere}#mpNotice{flex-basis:100%;margin:0;color:#d1bda0;font-size:11px}#mpNotice:empty{display:none}#mpPlaybar button,#mpPlaybar a{font-size:11px;color:#edf0d8;background:#254533;border:1px solid var(--mp-line);padding:9px 12px;display:inline-flex;align-items:center;justify-content:center}#mpPlaybar button:disabled{opacity:.5;cursor:default}#mpPlaybar a{background:transparent;margin-left:auto}
@media(min-width:900px){.mp-lobby>.mp-list{grid-template-columns:repeat(2,minmax(0,1fr))}.mp-lobby>.mp-list>.mp-empty{grid-column:1/-1}}
@media(max-width:600px){.mp-lobby{padding:19px 16px;margin-bottom:28px;border-radius:16px}.mp-lobby-heading h2{font-size:25px}.mp-lobby-heading{gap:9px}.mp-self{padding:12px;gap:11px}.mp-self .mp-button{padding:10px 11px;font-size:11px}.mp-player-row,.mp-invite-row{padding:10px;gap:10px}.mp-list-hint{font-size:9px}.mp-invite-row{flex-wrap:wrap}.mp-invite-row>.mp-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.mp-dialog{padding:23px}.mp-member{padding:8px 10px}.mp-section-heading{gap:8px}.mp-lobby h3{font-size:13px}.mp-avatar{width:30px;height:30px}.mp-player-label strong,.mp-player-name{font-size:13px}#mpPlaybar{padding:9px 12px;gap:7px 9px}#mpMembers{width:100%;order:2}#mpNotice{order:3}#mpPlaybar a{margin-left:0}#mpPlaybar #mpTurn{flex:1}#mpPlaybar button,#mpPlaybar a{min-height:44px}#mpPlaybar #mpMembers{font-size:10px}}

/* A grouped player never launches an old local-only course route. */
.mp-group-active .course .play-link,.mp-group-active .course .round-link{display:none}

/* Fade in only. Movement hides immediately and never intercepts a shot. */
.mp-idle-warning{position:absolute;z-index:7;top:46%;left:50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 40px);padding:22px 30px;text-align:center;background:#102b23f2;color:#f4edcc;border:1px solid #edcb8e99;border-radius:16px;box-shadow:0 12px 38px #071b1666;pointer-events:none;user-select:none;opacity:0;visibility:hidden;transition:none}
.mp-idle-warning.is-visible{opacity:1;visibility:visible;transition:opacity .45s ease-in}
.mp-idle-warning strong,.mp-idle-warning span,.mp-idle-warning small{display:block}
.mp-idle-warning strong{font-size:clamp(26px,4vw,36px);font-weight:750;line-height:1.2}
.mp-idle-warning span{margin-top:9px;font-size:14px;font-variant-numeric:tabular-nums;color:#edcb8e}
.mp-idle-warning small{margin-top:12px;font-size:11px;color:#b4c7af}
@media(prefers-reduced-motion:reduce){.mp-idle-warning.is-visible{transition:none}}

/* Persistent turn state stays in the existing reserved HUD lane. Only the
   explicit replay-exit action accepts input; neither cue starts a throw. */
.course-overlay-play #mpTurnOverlay{display:flex;flex-direction:column;gap:3px;white-space:normal;text-align:center;border-width:2px;padding:7px 12px;line-height:1.15}
.course-overlay-play #mpTurnOverlay[hidden],.course-overlay-play #mpTurnOverlay [hidden],.course-overlay-play #mpTurnAnnouncement[hidden]{display:none!important}
#mpTurnOverlay .mp-turn-heading{display:flex;justify-content:center;align-items:center;gap:10px;max-width:100%;min-width:0}
#mpTurnOverlay #mpTurn{font-size:inherit;line-height:1.15;letter-spacing:.055em;overflow-wrap:anywhere;color:inherit}
#mpTurnOverlay .mp-turn-detail{display:block;font-size:10px;font-weight:500;line-height:1.3;max-width:100%;overflow-wrap:anywhere;color:inherit;opacity:.85}
.course-overlay-play #mpTurnOverlay[data-turn-state="your-turn"]{background:#eff2bff5;border-color:#fff9d6;color:#183a27;box-shadow:0 0 0 2px #345b3ba6,0 5px 20px #071b164d}
.course-overlay-play #mpTurnOverlay[data-turn-state="your-turn"][data-urgency="soon"]{background:#f6dfa7f5;border-color:#ffe8b4;color:#473915}
.course-overlay-play #mpTurnOverlay[data-turn-state="your-turn"][data-urgency="urgent"]{background:#ffd49af5;border-color:#ffedc4;color:#4b2e15}
.course-overlay-play #mpTurnOverlay[data-turn-state="watching"]{background:#102b23ec;border-color:#b9cdae8c;color:#e5eddb}
#mpTakeTurn{pointer-events:auto;touch-action:manipulation;min-height:44px;width:100%;margin:3px 0 0;padding:7px 10px;font-size:12px;font-weight:750;line-height:1.2;background:#173e2d;color:#fff3c5;border:1px solid #355e3f;border-radius:7px}
#mpTakeTurn:focus-visible{outline:3px solid #184fb1;outline-offset:3px}
#mpTakeTurn:hover{background:#275638}
.course-overlay-play #mpTurnAnnouncement{position:absolute;z-index:7;top:34%;left:50%;transform:translate(-50%,-50%);width:max-content;max-width:min(360px,calc(100% - 40px));padding:18px 24px;text-align:center;background:#f1f0c9f5;color:#173c2b;border:2px solid #fff5c9;border-radius:16px;box-shadow:0 8px 32px #0b281b66;pointer-events:none;user-select:none;animation:mp-turn-appear .18s ease-out both}
#mpTurnAnnouncement strong{display:block;font-size:clamp(27px,4vw,40px);font-weight:850;letter-spacing:.075em;line-height:1.1}
#mpTurnAnnouncement span{display:block;max-width:270px;margin:8px auto 0;font-size:12px;line-height:1.4}
@keyframes mp-turn-appear{from{opacity:0}to{opacity:1}}
@media(max-width:720px){.course-overlay-play #mpTurnOverlay{padding:5px;gap:2px}.course-overlay-play #mpTurnOverlay .mp-turn-heading{gap:4px;flex-wrap:wrap}.course-overlay-play #mpTurnOverlay .mp-turn-detail{font-size:9px}#mpTakeTurn{font-size:10px;padding:5px 4px}.course-overlay-play #mpTurnAnnouncement{top:36%;max-width:calc(100% - 32px);padding:15px 20px}}
/* Mobile play already reserves a full-width strip below its own top bar. */
.mobile-course #mpTurnOverlay{top:calc(var(--mobile-top) + 4px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);width:max-content;min-height:36px;padding:6px 13px;border-radius:12px;font-size:14px}
.mobile-course #mpTurnOverlay .mp-turn-heading{flex-wrap:nowrap;gap:10px}
.mobile-course #mpTurnOverlay .mp-turn-detail{font-size:10px}
.mobile-course #mpTurnOverlay #mpTakeTurn{font-size:12px}
.mobile-course #mpTurnAnnouncement{top:calc(var(--mobile-top) + env(safe-area-inset-top,0px) + 175px);max-width:calc(100% - 32px)}
@media(max-height:560px) and (orientation:landscape){.course-overlay-play #mpTurnAnnouncement{top:35%;padding:12px 17px}.course-overlay-play #mpTurnAnnouncement strong{font-size:27px}.course-overlay-play #mpTurnAnnouncement span{font-size:11px}.mobile-course #mpTurnAnnouncement{top:calc(var(--mobile-top) + env(safe-area-inset-top,0px) + 132px)}}
@media(prefers-reduced-motion:reduce){.course-overlay-play #mpTurnAnnouncement{animation:none;transition:none}}
/* Keep the phone's throw-stage hint below the persistent status; flight hints
   are redundant while the turn status already identifies the watched shot. */
.mobile-course:has(#mpTurnOverlay:not([hidden])) .mobile-phase-cue{top:calc(var(--mobile-top) + 82px + env(safe-area-inset-top,0px))}
.mobile-course:has(#mpTurnOverlay[data-turn-state="busy"]) .mobile-phase-cue,.mobile-course:has(#mpTurnOverlay[data-turn-state="watching"]) .mobile-phase-cue,.mobile-course:has(#mpTakeTurn:not([hidden])) .mobile-phase-cue{display:none}
