/* "My registrations" panel (live/js/openplay-my-registrations.js).
   Shared by the account page (/account) and the dedicated page (/events/my).
   Moved out of SouthEnd_OpenPlay_Account.html so both pages read one copy.
   The .reg-chip rules are the status chips SEPartnerState.chipHtml() emits. */
.my-reg-panel{margin:16px 0 4px;}
.my-reg__inner{display:flex;flex-direction:column;gap:10px;}
.my-reg__title{font-family:'Oswald',sans-serif;font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green,#1a6b3a);margin:8px 0 2px;}
.my-reg__card{background:#fff;border:1px solid #d9e3d6;border-radius:10px;padding:12px 14px;text-align:left;box-shadow:0 1px 3px rgba(0,0,0,.05);}
.my-reg__card--waitlist{padding:0;display:flex;align-items:stretch;overflow:hidden;}
.my-reg__body{flex:1;min-width:0;padding:12px 14px;}
.my-reg__facts{margin-top:8px;display:flex;flex-direction:column;gap:2px;}
.my-reg__fact{font-size:13px;color:#3f4b3d;line-height:1.4;}
.my-reg__fact--maps a{color:#1a6b3a;font-weight:700;text-decoration:underline;text-underline-offset:2px;}
.my-reg__waitlist{flex:0 0 36%;min-width:96px;max-width:180px;background:#b71c1c;color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;font-size:clamp(15px,4.4vw,26px);letter-spacing:.08em;text-transform:uppercase;padding:16px 10px;line-height:1.1;}
.my-reg__card--invite{border-color:#1a6b3a;background:#f2f8f4;}
.my-reg__top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;}
.my-reg__event{font-weight:700;font-size:15px;color:#11241a;}
.my-reg__chips{display:inline-flex;gap:6px;flex-wrap:wrap;}
.my-reg__division{font-size:13px;color:#3f4b3d;margin-top:2px;}
.my-reg__partner{font-size:13px;color:#52604f;margin-top:4px;}
/* TS13: the team name is the card title; the one-line names row sits beneath. */
.my-reg__team{font-size:15px;font-weight:700;color:#11241a;margin-top:6px;}
.my-reg__team + .my-reg__names{margin-top:2px;}
/* ONE line: captain & partner (TS10b). A partner who left / declined / expired
   stays on the line, muted and struck; a pending invite is muted; a missing
   partner reads as its chip. */
.my-reg__names{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;}
.my-reg__captain{font-weight:700;color:#11241a;}
/* PC3a: the invite row's captain is a real button that opens the shared profile card.
   Same ink as .my-reg__captain, underlined. Vertical padding gives a 44px-tall hit area;
   the matching negative margin hands the extra height back so the row keeps its geometry. */
.my-reg__name{font:inherit;font-weight:700;color:#11241a;background:none;border:0;cursor:pointer;text-align:left;
  display:inline-flex;align-items:center;padding:11px 0;margin:-11px 0;min-height:44px;box-sizing:border-box;
  text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(26,107,58,.45);}
.my-reg__name:focus-visible{outline:none;box-shadow:var(--focus-ring,0 0 0 3px rgba(26,107,58,.35));border-radius:4px;text-decoration-color:currentColor;}
@media (hover: hover) and (pointer: fine) {
  .my-reg__name:hover{color:var(--green,#1a6b3a);text-decoration-color:currentColor;}
}
.my-reg__amp{color:#8a958a;}
.my-reg__partner-name--plain{font-weight:700;color:#11241a;}
.my-reg__partner-name--pending{color:#52604f;}
.my-reg__partner-name--gone{color:#8a958a;text-decoration:line-through;}
.my-reg__partner-name--missing{color:#8a4b00;font-style:italic;}
.my-reg__partner-contact{color:#8a958a;}
.my-reg__tag{color:#52604f;}
/* In-page confirm: the action row becomes the question + Yes / Cancel. */
.my-reg__twostep{width:100%;border:1px solid #d0b3b0;border-radius:8px;padding:10px 12px;background:#fff8f7;}
.my-reg__twostep-lead{margin:0 0 6px;font-size:13px;color:#52604f;}
.my-reg__twostep-q{margin:0 0 8px;font-size:14px;font-weight:700;color:#11241a;}
.my-reg__twostep-acts{display:flex;gap:8px;flex-wrap:wrap;}
.my-reg__acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
/* Action errors render on the card, never in a native alert. Hidden while empty. */
.my-reg__status{margin:8px 0 0;font-size:13px;font-weight:600;color:#8c2b22;}
.my-reg__status:empty{display:none;}
.my-reg__btn{font:inherit;font-size:13px;font-weight:700;border-radius:7px;padding:8px 14px;cursor:pointer;border:1px solid #cdd8ca;background:#fff;color:#11241a;}
.my-reg__btn--go{background:#1a6b3a;border-color:#1a6b3a;color:#fff;}
.my-reg__btn--danger{border-color:#d0b3b0;color:#8c2b22;}
.my-reg__btn:disabled{opacity:.5;cursor:not-allowed;}
/* TS26a: pay the owed amount from the card (PayPal), or the no-link fallback. */
.my-reg__pay{margin-top:10px;}
.my-reg__btn--pay{background:#ffc439;border-color:#e5a800;color:#11241a;text-decoration:none;display:inline-block;}
@media (hover: hover) and (pointer: fine) {
  .my-reg__btn--pay:hover{background:#f5b800;}
}
.my-reg__paynote{margin:10px 0 0;font-size:13px;font-weight:600;color:#8c2b22;}
/* Return route (/events/my?event=<id>): highlight the exact card once. */
.my-reg__card--focus{animation:myRegFocus 2.4s ease-out 1;}
@keyframes myRegFocus{0%,55%{box-shadow:0 0 0 3px rgba(26,107,58,.55);border-color:#1a6b3a;}100%{box-shadow:0 1px 3px rgba(0,0,0,.05);border-color:#d9e3d6;}}
/* Captain's re-share affordance (TS22): one Share button, or the outlet row where there is no share sheet. */
.my-reg__share a.my-reg__btn{text-decoration:none;display:inline-block;}
.my-reg__outlets-note{font-size:12px;color:#8a958a;line-height:1.5;margin:6px 0 0;}
.my-reg__status{font-size:12px;color:#52604f;margin:6px 0 0;word-break:break-word;}
.my-reg__status:empty{display:none;}
/* TP6 partner picker (live/js/events-solo-picker.js). ONE control, mounted both
   inside the solo's own card here and on the registration confirmation screen
   (which loads this stylesheet for exactly these rules) — so it must not depend
   on anything .my-reg__* around it. The dropdown is the house .se-input /
   .se-input--select geometry (44px minimum tap target, 16px type on phones) from
   south-end-components.css. Everything wraps rather than scrolling sideways, so a
   375px phone never gets a horizontal scrollbar. No :hover rule here (D11). */
.my-reg__solo{margin-top:10px;}
.se-solo{margin-top:10px;text-align:left;}
.se-solo__acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;align-items:center;}
.se-solo__acts:first-child{margin-top:0;}
.se-solo__btn{font:inherit;font-size:14px;font-weight:700;border-radius:7px;padding:11px 16px;min-height:44px;
  cursor:pointer;border:1px solid #cdd8ca;background:#fff;color:#11241a;}
.se-solo__btn--go{background:#1a6b3a;border-color:#1a6b3a;color:#fff;}
.se-solo__btn:disabled{opacity:.5;cursor:not-allowed;}
.se-solo__panel{margin-top:10px;border:1px solid #d9e3d6;border-radius:8px;padding:10px 12px;background:#f7faf7;}
.se-solo__label{display:block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:#52604f;margin:0 0 6px;}
.se-solo__select{width:100%;box-sizing:border-box;max-width:100%;}
/* The chosen player, as a tappable chip: a <select> option cannot open the
   shared profile card, so the name is repeated here as a real button. */
.se-solo__chosen{margin-top:10px;}
.se-solo__chip{font:inherit;font-size:15px;font-weight:700;color:#11241a;background:#fff;cursor:pointer;
  border:1px solid #cdd8ca;border-radius:99px;padding:10px 16px;min-height:44px;max-width:100%;
  display:inline-flex;align-items:center;overflow-wrap:anywhere;text-align:left;
  text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(26,107,58,.45);}
.se-solo__chip:focus-visible{outline:none;box-shadow:var(--focus-ring,0 0 0 3px rgba(26,107,58,.35));}
.se-solo__note{font-size:13px;font-weight:700;color:#52604f;}
.se-solo__empty{margin:0;font-size:13px;color:#52604f;}
.se-solo__error{margin:0;font-size:13px;font-weight:600;color:#8c2b22;}
.se-solo__status{margin:8px 0 0;font-size:13px;font-weight:600;color:#8c2b22;}
.se-solo__status:empty{display:none;}
.my-reg__btn--mini{font-size:12px;padding:7px 12px;}
/* Invites the solo has out, on their own card, each with a Cancel. */
.my-reg__outgoing{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:6px;font-size:13px;color:#52604f;}
/* Honest empty state: shown when the member has no entries and no invites. */
.my-reg__empty{background:#fff;border:1px dashed #cdd8ca;border-radius:10px;padding:18px 16px;text-align:center;font-size:14px;color:#52604f;}
.my-reg__empty a{color:var(--green,#1a6b3a);font-weight:700;text-decoration:none;}
@media (hover: hover) and (pointer: fine) {
  .my-reg__empty a:hover{text-decoration:underline;}
}
/* "See all" link beside the account-page panel. */
.my-reg__seeall{display:inline-block;margin:4px 0 8px;font-size:13px;font-weight:700;color:var(--green,#1a6b3a);text-decoration:none;}
@media (hover: hover) and (pointer: fine) {
  .my-reg__seeall:hover{text-decoration:underline;}
}
.reg-chip{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:99px;background:#eef2ec;color:#3f4b3d;}
.reg-chip--confirmed{background:#e6f5eb;color:#1a6b3a;}
.reg-chip--awaiting{background:#fff3d9;color:#8a6d00;}
.reg-chip--pending{background:#fdeede;color:#8a4b00;}
.reg-chip--waitlist{background:#fff3d9;color:#8a6d00;}
.reg-chip--withdrawn{background:#f1eeee;color:#6b6b6b;}
.reg-chip--paid{background:#e6f5eb;color:#1a6b3a;}
.reg-chip--waived{background:#e8eefb;color:#274690;}
.reg-chip--owes{background:#fde7e5;color:#8c2b22;}
.reg-chip--free{background:#eef2ec;color:#3f4b3d;}
