/*
 * Playmaker Scheduler Hub – Front-end UI
 * Keep styling lightweight and theme-agnostic.
 */

.pmsh-schedule{width:100%;}
.pmsh-muted{opacity:.72;}
.pmsh-empty{padding:10px 0;}

/* Toolbar */
.pmsh-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0 16px;}
.pmsh-toolbar__left,.pmsh-toolbar__right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.pmsh-label{font-weight:600;}

.pmsh-nav{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.12);border-radius:10px;text-decoration:none;line-height:1;}
.pmsh-nav:hover{background:rgba(0,0,0,.04);}

.pmsh-toggle{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border:1px solid rgba(0,0,0,.12);border-radius:999px;text-decoration:none;font-size:14px;white-space:nowrap;}
.pmsh-toggle:hover{background:rgba(0,0,0,.04);}
.pmsh-toggle.is-active{background:#111;color:#fff;border-color:#111;}

/* Layout switches */
.pmsh-gridwrap{display:block;}
.pmsh-listwrap{display:none;}

@media (max-width: 900px){
  .pmsh-gridwrap{display:none;}
  .pmsh-listwrap{display:block;}
}

/* Week grid */
.pmsh-week{display:grid;grid-template-columns:repeat(var(--pmsh-week-cols,7),minmax(0,1fr));gap:14px;}

.pmsh-week__day{border:1px solid rgba(0,0,0,.10);border-radius:16px;background:#fff;overflow:hidden;min-width:0;}
.pmsh-week__head{padding:10px 12px;border-bottom:1px solid rgba(0,0,0,.06);font-weight:700;font-size:14px;background:rgba(0,0,0,.02);}
.pmsh-week__day .pmsh-empty{padding:12px;}

/*
  Desktop week view columns can get narrow depending on the theme/container width.
  In that case, keep the session card readable by stacking the action button
  under the time/coach info (prevents the button from visually "cutting" the time range).
*/
.pmsh-week__day .pmsh-session{flex-direction:column;align-items:stretch;gap:8px;}
.pmsh-week__day .pmsh-session__actions{justify-content:flex-end;}
.pmsh-week__day .pmsh-session__actions .pm-btn{width:100%;justify-content:center;}

/* Month grid */
.pmsh-cal{width:100%;}
.pmsh-cal__head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:10px;}
.pmsh-cal__dow{font-weight:700;font-size:13px;opacity:.8;padding:6px 8px;}
.pmsh-cal__body{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;}
.pmsh-cal__cell{border:1px solid rgba(0,0,0,.10);border-radius:14px;background:#fff;min-height:110px;padding:10px;overflow:hidden;}
.pmsh-cal__cell.is-out{opacity:.55;}
.pmsh-cal__date{font-weight:700;font-size:13px;margin-bottom:8px;}

/* Session blocks */
.pmsh-session{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;border:1px solid rgba(0,0,0,.10);border-radius:14px;background:rgba(0,0,0,.02);padding:10px 12px;margin:10px 12px;}
.pmsh-session__main{min-width:0;}
.pmsh-session__time{font-weight:800;font-size:13px;}
.pmsh-session__coach{font-size:13px;margin-top:2px;}
.pmsh-session__badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}

.pmsh-pill{display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1;padding:4px 9px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:#fff;white-space:nowrap;}

.pmsh-session--private{background:rgba(59,130,246,.06);}
.pmsh-session--private .pmsh-pill--type{border-color:rgba(59,130,246,.45);}

.pmsh-session--group{background:rgba(16,185,129,.07);}
.pmsh-session--group .pmsh-pill--type{border-color:rgba(16,185,129,.45);}

.pmsh-session--block{background:rgba(0,0,0,.04);}
.pmsh-session--block .pmsh-pill--type{border-color:rgba(0,0,0,.18);}

.pmsh-session.is-disabled{opacity:.60;}

.pmsh-session__actions{display:flex;align-items:center;gap:8px;}

/* Month chips */
.pmsh-chip{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;border:1px solid rgba(0,0,0,.10);text-decoration:none;background:rgba(0,0,0,.02);font-size:12px;margin-bottom:6px;}
.pmsh-chip:hover{background:rgba(0,0,0,.04);}
.pmsh-chip__meta{opacity:.75;}

.pmsh-chip--private{background:rgba(59,130,246,.06);}
.pmsh-chip--group{background:rgba(16,185,129,.07);}
.pmsh-chip--block{background:rgba(0,0,0,.04);}

/* List view (mobile) */
.pmsh-listday{border:1px solid rgba(0,0,0,.10);border-radius:16px;background:#fff;overflow:hidden;margin-bottom:14px;}
.pmsh-listday__head{padding:10px 12px;border-bottom:1px solid rgba(0,0,0,.06);font-weight:800;background:rgba(0,0,0,.02);}
.pmsh-listday .pmsh-session{margin:10px 12px;}

/* Booking form */
.pmsh-book{margin-top:14px;}
.pmsh-form{margin-top:12px;}
.pmsh-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
@media (max-width: 800px){
  .pmsh-grid{grid-template-columns:1fr;}
}

.pmsh-field label{display:block;margin-bottom:6px;}
.pmsh-field input[type="text"],
.pmsh-field select{width:100%;max-width:100%;padding:10px 12px;border:1px solid rgba(0,0,0,.16);border-radius:12px;background:#fff;}

.pmsh-amount{font-weight:900;font-size:18px;}

.pmsh-waiver{margin-top:12px;border:1px solid rgba(0,0,0,.10);border-radius:14px;background:rgba(0,0,0,.02);padding:12px;}
.pmsh-waiver__text{max-height:220px;overflow:auto;border:1px solid rgba(0,0,0,.10);border-radius:12px;background:#fff;padding:10px;}
.pmsh-waiver__text pre{white-space:pre-wrap;margin:0;font-size:12px;}
.pmsh-waiver__check{display:flex;gap:8px;align-items:flex-start;margin-top:10px;}

/* Buttons (fallback if theme doesn't provide) */
.pm-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border-radius:12px;border:1px solid rgba(0,0,0,.18);text-decoration:none;background:#fff;cursor:pointer;font-weight:700;}
.pm-btn:hover{background:rgba(0,0,0,.04);}
.pm-btn--primary{background:#111;color:#fff;border-color:#111;}
.pm-btn--primary:hover{background:#000;}
.pm-btn--small{padding:7px 10px;border-radius:10px;font-size:13px;}

/* Notices */
.pmsh-notice{border:1px solid rgba(0,0,0,.10);border-radius:14px;padding:12px;background:rgba(0,0,0,.02);}
.pmsh-success{border:1px solid rgba(16,185,129,.35);background:rgba(16,185,129,.07);border-radius:14px;padding:12px;margin-top:12px;}

/* Coach decision landing */
.pmsh-coach-decision{max-width:760px;margin:30px auto;padding:0 16px;}
.pmsh-coach-decision .pmsh-card{border:1px solid rgba(0,0,0,.10);border-radius:16px;background:#fff;padding:16px;}


/* Booked player names */
.pmsh-session__players{margin-top:8px;font-size:12px;line-height:1.35;max-width:100%;}

/* Open sessions (first booking chooses private/shared) */
.pmsh-session--open {
  background: #ffffff;
  border: 1px solid #e5e7eb;
}
.pmsh-pill--type.pmsh-pill--open {
  border-color: #cbd5e1;
  color: #334155;
}
.pmsh-chip--open {
  border-color: #cbd5e1;
  color: #334155;
}

/* Booking form style chooser */
.pmsh-style {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.pmsh-style label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* Player manager (multi-child support) */
.pmsh-player-manager{margin-top:18px;}
.pmsh-player-card{margin-top:12px;}
.pmsh-player-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.pmsh-player-card__meta{margin-top:6px;font-size:13px;}
.pmsh-details{margin-top:10px;}
.pmsh-details > summary{list-style:none;}
.pmsh-details > summary::-webkit-details-marker{display:none;}
.pmsh-details > summary.pm-btn{display:inline-flex;}
.pmsh-inline{display:inline;}

/* Status pill (e.g., Closed) */
.pmsh-pill--status{background:#fff;border-color:#e5e7eb;color:#475569;}

/* Player chips (booked players list) */
.pmsh-playerchips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.pmsh-playerchip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;max-width:100%;}
.pmsh-avatar{width:20px;height:20px;border-radius:50%;object-fit:cover;flex:none;}
.pmsh-avatar--placeholder{display:inline-flex;align-items:center;justify-content:center;background:#e5e7eb;color:#111827;font-weight:600;font-size:11px;}
.pmsh-playerchip__label{font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;}

/* Player profile avatar (My Account) */
.pmsh-player-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;background:#f1f5f9;border:1px solid #e5e7eb;flex:none;display:inline-flex;align-items:center;justify-content:center;}
.pmsh-player-avatar__img{width:100%;height:100%;object-fit:cover;display:block;}
.pmsh-player-avatar__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#0f172a;}
