/* Game alerts: card button, repeat hint, strip above the board and the sign-up sheet. */
/* Card row (design H5): sits directly above the card actions; both are pinned to the card bottom so rows line up. */
.pny-alert-row{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:16px}
.event-card:has(.pny-alert-row) .card-actions{margin-top:0;padding-top:8px}
.pny-alert-tag{display:inline-flex;align-items:center;gap:5px;min-width:0;padding:3px 10px 3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--forest);font-size:12px;font-weight:700;line-height:1.4;white-space:nowrap}
.pny-alert-tag svg{flex:none}
.pny-alert-link-button{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-left:auto;padding:0 2px;border:0;background:transparent;color:var(--forest);font:600 13px/1 var(--sans);text-decoration:underline;text-underline-offset:3px;white-space:nowrap;cursor:pointer}
.pny-alert-link-button svg{flex:none}
.pny-alert-strip{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 12px;padding:10px 10px 10px 14px;border:0;border-radius:14px;background:var(--mint);color:var(--navy);font-family:var(--sans);text-align:left;cursor:pointer}
.pny-alert-strip>svg{flex:none;color:var(--forest)}
.pny-alert-strip-copy{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.pny-alert-strip-copy strong{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.pny-alert-strip-copy span{font-size:12px;color:var(--muted)}
.pny-alert-strip-cta{flex:none;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:10px;background:var(--forest);color:var(--lime);font-size:13px;font-weight:600}
/* The board styles every button:hover; these keep alert controls on their own colours. */
@media(hover:hover){button.pny-alert-link-button:hover{background:transparent;color:#123d48}button.pny-alert-strip:not(:disabled):hover{background:#e3ece6;color:var(--navy)}.pny-alert-strip:hover .pny-alert-strip-cta{background:#123d48}
.pny-alert-dialog button.pny-alert-close:hover{background:#e3ece6;color:var(--navy)}.pny-alert-dialog button.pny-alert-option-head:hover{background:transparent;color:var(--navy)}.pny-alert-dialog button.pny-alert-toggle:hover{background:var(--mint);color:var(--navy)}.pny-alert-dialog button.pny-alert-toggle[aria-pressed=true]:hover{background:#123d48;color:var(--lime)}.pny-alert-dialog button.pny-alert-submit:not(:disabled):hover{background:#123d48;color:var(--lime)}.pny-alert-dialog button.pny-alert-link:hover{background:transparent;color:var(--forest)}}
.pny-alert-link-button:focus-visible,.pny-alert-strip:focus-visible,.pny-alert-dialog button:focus-visible,.pny-alert-dialog input:focus-visible{outline:2px solid var(--forest);outline-offset:2px}

.pny-alert-dialog{width:min(100%,440px);max-width:100%;max-height:min(92dvh,860px);margin:auto;padding:0;border:0;border-radius:28px;background:var(--surface);color:var(--navy);font:14px/1.5 var(--sans);box-shadow:0 18px 60px rgba(24,59,68,.28);overflow:auto}
.pny-alert-dialog::backdrop{background:rgba(24,59,68,.45)}
.pny-alert-sheet{display:flex;flex-direction:column;gap:16px;padding:24px 20px}
.pny-alert-handle{display:none}
.pny-alert-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.pny-alert-dialog h2{margin:0;font-size:24px;font-weight:600;letter-spacing:-.5px;line-height:1.2}
.pny-alert-lead{margin:6px 0 0;font-size:14px;color:var(--muted)}
.pny-alert-lead strong{color:var(--navy);font-weight:600;overflow-wrap:anywhere}
.pny-alert-close{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--mint);color:var(--navy);cursor:pointer}
.pny-alert-options{display:flex;flex-direction:column;gap:10px}
.pny-alert-option{display:flex;flex-direction:column;gap:12px;padding:14px;border:2px solid var(--line);border-radius:16px;background:var(--surface)}
.pny-alert-option.is-selected{border-color:var(--forest);background:#f6f9ee}
.pny-alert-option-head{display:flex;align-items:flex-start;gap:12px;width:100%;padding:0;border:0;background:transparent;color:var(--navy);font:inherit;text-align:left;cursor:pointer}
.pny-alert-glyph{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--mint);color:var(--forest)}
.pny-alert-glyph.is-lime{background:var(--lime)}
.pny-alert-option-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pny-alert-option-title{font-size:16px;font-weight:600;line-height:1.3}
.pny-alert-option-text{font-size:13px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.pny-alert-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pny-alert-chip{padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:12px;font-weight:600}
.pny-alert-radio{flex:none;width:22px;height:22px;box-sizing:border-box;border:2px solid #9badab;border-radius:50%;background:var(--surface)}
.pny-alert-option.is-selected .pny-alert-radio{border-color:var(--forest);background:var(--forest);box-shadow:inset 0 0 0 4px var(--surface)}
.pny-alert-when{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--line)}
.pny-alert-when-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pny-alert-when-label{font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.pny-alert-when-hint{font-size:12px;color:var(--muted);white-space:nowrap}
.pny-alert-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.pny-alert-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.pny-alert-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:44px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--navy);font:700 13px/1.25 var(--sans);cursor:pointer}
.pny-alert-days .pny-alert-toggle{border-radius:999px}
.pny-alert-toggle[aria-pressed=true]{border-color:var(--forest);background:var(--forest);color:var(--lime)}
.pny-alert-toggle-name{font-weight:600}
.pny-alert-toggle-range{font-size:11px;font-weight:400;font-variant-numeric:tabular-nums}
.pny-alert-form{display:flex;flex-direction:column;gap:12px;margin:0}
.pny-alert-field{display:flex;flex-direction:column;gap:6px}
.pny-alert-field label{font-size:13px;font-weight:600}
.pny-alert-field input{width:100%;min-height:52px;box-sizing:border-box;padding:0 16px;border:1px solid #9badab;border-radius:14px;background:var(--paper);color:var(--navy);font:16px/1.4 var(--sans)}
.pny-alert-error{margin:0;font-size:13px;font-weight:600;color:#8a3b2a}
.pny-alert-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:0 16px;border:0;border-radius:14px;background:var(--forest);color:var(--lime);font:600 16px/1 var(--sans);cursor:pointer}
.pny-alert-submit:disabled{opacity:.7;cursor:progress}
.pny-alert-fine{margin:0;font-size:12px;color:var(--muted);text-align:center}
.pny-alert-link{min-height:44px;border:0;background:transparent;color:var(--navy);font:600 14px/1 var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.pny-alert-sent{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:8px;text-align:center}
.pny-alert-sent-icon{display:grid;place-items:center;width:72px;height:72px;margin-bottom:8px;border-radius:50%;background:var(--lime);color:var(--forest)}
.pny-alert-sent .pny-alert-lead{max-width:300px}
.pny-alert-summary{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:16px}
.pny-alert-summary-copy{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.pny-alert-summary-copy strong{font-size:15px;font-weight:600;overflow-wrap:anywhere}
.pny-alert-summary-copy span{font-size:13px;color:var(--muted)}
.pny-alert-pending{flex:none;padding:4px 10px;border-radius:999px;background:var(--mint);color:var(--muted);font-size:12px;font-weight:600}
@media(max-width:600px){
  .pny-alert-dialog{width:100%;margin:auto 0 0;border-radius:28px 28px 0 0;max-height:94dvh}
  .pny-alert-sheet{padding:10px 20px calc(24px + env(safe-area-inset-bottom))}
  .pny-alert-handle{display:block;align-self:center;width:40px;height:4px;border-radius:999px;background:var(--line)}
}
@media(prefers-reduced-motion:no-preference){.pny-alert-dialog[open]{animation:pny-alert-in .18s ease-out}@keyframes pny-alert-in{from{opacity:0;transform:translateY(16px)}}}
/* Secondary "This exact game, if it repeats": same card, quieter so "New games like this" stays the lead. */
.pny-alert-option.is-quiet{padding:10px 14px;border-width:1.5px;border-style:dashed}
.pny-alert-option.is-quiet.is-selected{border-style:solid}
.pny-alert-option.is-quiet .pny-alert-glyph{transform:scale(.85);transform-origin:left top}
.pny-alert-option.is-quiet .pny-alert-option-title{font-size:14px}
