/* Front-end styles for McEwing Pool Reservations */

.mpr-wrap{max-width:980px;margin:0 auto;}

.mpr-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;flex-wrap:wrap;}
.mpr-cal-title{font-weight:700;font-size:1.25rem;line-height:1.2;}
.mpr-cal-nav{display:inline-block;padding:8px 10px;border:1px solid #ddd;border-radius:6px;text-decoration:none;background:#fff;}
.mpr-cal-nav:focus,.mpr-cal-nav:hover{outline:none;border-color:#999;}

.mpr-month-jump{margin:10px 0 18px;}
.mpr-month-jump form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.mpr-month-jump input[type="month"]{padding:8px;border:1px solid #ddd;border-radius:6px;}
.mpr-month-jump button{padding:8px 12px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;}

.mpr-notice{padding:10px 12px;border-radius:8px;margin:10px 0;}
.mpr-notice-success{border:1px solid #cfe7cf;background:#f0fbf0;}
.mpr-notice-error{border:1px solid #f1c2c2;background:#fff1f1;}

.mpr-calendar{width:100%;border-collapse:collapse;table-layout:fixed;}
.mpr-calendar th{padding:10px 6px;text-align:center;font-weight:700;border-bottom:1px solid #ddd;}
.mpr-calendar td{border:1px solid #eee;vertical-align:top;padding:0;}
.mpr-empty{background:#fafafa;}
.mpr-day-link{display:block;padding:8px;min-height:92px;text-decoration:none;color:inherit;}
.mpr-day-num{font-weight:700;}
.mpr-today .mpr-day-link{box-shadow:inset 0 0 0 2px #222;}
.mpr-selected .mpr-day-link{box-shadow:inset 0 0 0 3px #555;}
.mpr-closed .mpr-day-link{opacity:0.7;}
.mpr-badge{display:inline-block;margin-top:8px;padding:4px 8px;border-radius:999px;font-size:12px;border:1px solid #ddd;}
.mpr-badge-closed{border-color:#d99;background:#fff1f1;}
.mpr-counts{margin-top:8px;font-size:12px;line-height:1.2;color:#333;}

.mpr-panel{border:1px solid #eee;border-radius:10px;padding:14px;background:#fff;}
.mpr-panel h3{margin:0 0 10px;font-size:1.1rem;}
.mpr-panel input[type="text"],
.mpr-panel input[type="email"],
.mpr-panel input[type="password"],
.mpr-panel input[type="number"],
.mpr-panel textarea{width:100%;max-width:100%;padding:10px;border:1px solid #ddd;border-radius:8px;box-sizing:border-box;}
.mpr-panel textarea{resize:vertical;}
.mpr-panel button[type="submit"], .mpr-button{padding:10px 14px;border:1px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;}
.mpr-panel button[type="submit"]:hover, .mpr-button:hover{border-color:#999;}

 /* Modal */
.mpr-modal{display:none;position:fixed;inset:0;z-index:99999;}
.mpr-modal.is-open{display:block;}
.mpr-modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,0.55);}
.mpr-modal__dialog{position:relative;margin:6vh auto 0;background:#fff;border-radius:12px;width:min(640px, 94vw);max-height:88vh;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,0.35);}
.mpr-modal__close{position:absolute;top:10px;right:10px;width:38px;height:38px;border-radius:999px;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:22px;line-height:1;}
.mpr-modal__body{padding:16px 16px 18px;max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}

@media (max-width: 680px){
  .mpr-calendar-header{align-items:flex-start;}
  .mpr-cal-title{width:100%;font-size:1.1rem;}
  .mpr-cal-nav{padding:8px 10px;}
  .mpr-calendar th{padding:8px 2px;font-size:12px;}
  .mpr-day-link{min-height:64px;padding:6px;}
  .mpr-counts{display:none;} /* cleaner mobile calendar */
  .mpr-modal__dialog{margin:3vh auto 0;max-height:92vh;}
  .mpr-modal__body{max-height:92vh;padding:14px;}
}

@media (max-width: 420px){
  .mpr-month-jump form{gap:8px;}
  .mpr-month-jump label{width:100%;}
  .mpr-month-jump input[type="month"]{width:100%;}
  .mpr-month-jump button{width:100%;}
}


body.mpr-modal-open{overflow:hidden;}


/* Mobile-first list view */
.mpr-calendar-mobile { display: none; }

@media (max-width: 720px) {
  .mpr-calendar-desktop { display: none; }
  .mpr-calendar-mobile { display: block; margin-top: 12px; }
  .mpr-mobile-day { margin: 0 0 10px 0; }
  .mpr-mobile-day-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #ddd;
    border-radius: 10px;
    text-decoration: none;
  }
  .mpr-mobile-day-dow { font-weight: 600; min-width: 42px; }
  .mpr-mobile-day-date { flex: 1; }
  .mpr-mobile-day-status { font-weight: 600; }
  .mpr-mobile-day.mpr-closed .mpr-mobile-day-link { opacity: 0.6; }
}

/* Ensure modal is usable on small screens */
@media (max-width: 720px) {
  .mpr-modal__dialog { width: calc(100% - 24px); max-height: 92vh; }
  .mpr-modal__body { max-height: 72vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
  .mpr-form-row { display: block; }
  .mpr-form-row label { display: block; margin-bottom: 6px; }
  .mpr-form-row input, .mpr-form-row select { width: 100%; }
  .mpr-form-actions { display: block; }
  .mpr-form-actions button { width: 100%; }
}
