/* Frontend UI (mobile-first) */
.wcrs-card{border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:14px;margin:14px 0;background:#fff;box-sizing:border-box;}
.wcrs-card *{box-sizing:border-box;}

.wcrs-card__header{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin-bottom:10px;}
.wcrs-title{font-size:16px;font-weight:800;line-height:1.2;}
.wcrs-sub{font-size:13px;opacity:.75;margin-top:2px;}
.wcrs-badge{font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:rgba(0,0,0,.03);white-space:nowrap;}
.wcrs-badge--ok{background:rgba(0,128,0,.08);border-color:rgba(0,128,0,.25)}
.wcrs-badge--bad{background:rgba(220,0,0,.06);border-color:rgba(220,0,0,.25)}

.wcrs-grid{display:grid;grid-template-columns:1fr;gap:10px;}
@media (min-width:680px){.wcrs-grid{grid-template-columns:1fr 1fr}.wcrs-field--full{grid-column:1 / -1}}

.wcrs-field{display:flex;flex-direction:column;gap:6px;}
.wcrs-label,.wcrs-field>span{font-weight:700;font-size:13px;}
.wcrs-field input[type="date"],.wcrs-field input[type="number"]{width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(0,0,0,.16);font-size:14px;}

.wcrs-summary{padding:10px 12px;border-radius:10px;border:1px dashed rgba(0,0,0,.18);background:rgba(0,0,0,.02);font-size:13px;line-height:1.35;}
.wcrs-summary strong{font-weight:800;}
.wcrs-help{margin-top:10px;font-size:12px;opacity:.8;}
.wcrs-price-suffix{font-size:12px;opacity:.7;font-weight:600;}

/* Calendar (frontend) */
.wcrs-cal{margin:12px 0 14px 0;}
.wcrs-cal__bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.wcrs-cal__title{font-weight:900;text-align:center;flex:1;font-size:18px;line-height:1.1;text-transform:lowercase;}
.wcrs-cal__nav{width:44px;height:42px;border-radius:12px;border:1px solid rgba(0,0,0,.12);background:#fff;font-weight:900;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
.wcrs-cal__nav:active{transform:scale(.98);}

.wcrs-cal__grid{border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:12px;background:rgba(0,0,0,.01);overflow:hidden;}
.wcrs-cal__head,.wcrs-cal__body{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;}
.wcrs-cal__cell{width:100%;min-height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:900;border:1px solid rgba(0,0,0,.10);background:#fff;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
@supports (aspect-ratio: 1 / 1){.wcrs-cal__cell{aspect-ratio:1 / 1;}}
.wcrs-cal__cell:focus{outline:2px solid rgba(0,0,0,.25);outline-offset:2px;}

.wcrs-cal__cell--head{border:none;background:transparent;font-weight:900;opacity:.65;min-height:auto;aspect-ratio:auto;}
.wcrs-cal__cell--empty{border:none;background:transparent;min-height:44px;}

.wcrs-cal__cell--bad{background:#ffe5e5;border-color:#f2a5a5;color:#8a0000;cursor:not-allowed;opacity:.95;}
.wcrs-cal__cell--reserved{background:#fff3d6;border-color:#f2c36a;color:#6b4a00;cursor:not-allowed;opacity:.98;}
.wcrs-cal__cell--ok{cursor:pointer;}
.wcrs-cal__cell--ok:active{transform:scale(.98);}
.wcrs-cal__cell--selected{border-color:rgba(0,0,0,.85);box-shadow:0 0 0 2px rgba(0,0,0,.08) inset;}
.wcrs-cal__cell--today{position:relative;}
.wcrs-cal__cell--today::after{content:'';position:absolute;bottom:7px;width:6px;height:6px;border-radius:999px;background:rgba(0,0,0,.35);}

.wcrs-cal__legend{font-size:12px;opacity:.85;margin-top:10px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.wcrs-cal__dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle;}
.wcrs-cal__dot--ok{background:#fff;border:1px solid rgba(0,0,0,.2);}
.wcrs-cal__dot--bad{background:#ffe5e5;border:1px solid #f2a5a5;}
.wcrs-cal__dot--reserved{background:#fff3d6;border:1px solid #f2c36a;}
.wcrs-cal__err{padding:10px;font-size:13px;opacity:.85;}

/* Extra small screens: tighter spacing, still tappable */
@media (max-width:420px){
  .wcrs-card{padding:12px;}
  .wcrs-cal__grid{padding:10px;}
  .wcrs-cal__head,.wcrs-cal__body{gap:6px;}
  .wcrs-cal__cell{border-radius:12px;min-height:40px;font-size:14px;}
  .wcrs-cal__nav{width:40px;height:40px;border-radius:12px;}
  .wcrs-cal__title{font-size:17px;}
}

@media (min-width:680px){
  .wcrs-cal__title{font-size:20px;}
  .wcrs-cal__grid{padding:14px;}
  .wcrs-cal__head,.wcrs-cal__body{gap:10px;}
}

/* Calendar responsive tweaks */
.wcrs-cal__grid{box-sizing:border-box;}
.wcrs-cal__nav{min-width:44px;}
.wcrs-cal__cell{touch-action:manipulation;}

/* Extra small screens: tighter spacing so it fits nicely */
@media (max-width: 420px){
  .wcrs-card{padding:12px;border-radius:14px;}
  .wcrs-cal__bar{gap:8px;}
  .wcrs-cal__title{font-size:16px;}
  .wcrs-cal__nav{width:40px;height:40px;border-radius:12px;}
  .wcrs-cal__grid{padding:10px;border-radius:16px;}
  .wcrs-cal__head,.wcrs-cal__body{gap:6px;}
  .wcrs-cal__cell{min-height:40px;border-radius:12px;font-size:14px;}
  .wcrs-cal__cell--empty{min-height:40px;}
  .wcrs-cal__legend{gap:10px;font-size:12px;}
}

@media (min-width: 680px){
  .wcrs-cal__title{font-size:20px;}
  .wcrs-cal__grid{padding:14px;}
  .wcrs-cal__head,.wcrs-cal__body{gap:10px;}
}

/* Calendar responsive tweaks */
.wcrs-cal__grid{box-sizing:border-box;}
.wcrs-cal__nav{min-width:44px;}
.wcrs-cal__cell{touch-action:manipulation;}

/* Extra small screens: tighter spacing so it fits nicely */
@media (max-width: 420px){
  .wcrs-card{padding:12px;border-radius:12px;}
  .wcrs-cal__bar{gap:8px;}
  .wcrs-cal__title{font-size:16px;}
  .wcrs-cal__nav{width:40px;height:40px;border-radius:12px;}
  .wcrs-cal__grid{padding:10px;border-radius:14px;}
  .wcrs-cal__head,.wcrs-cal__body{gap:6px;}
  .wcrs-cal__cell{border-radius:12px;min-height:38px;font-size:14px;}
  .wcrs-cal__cell--head{font-size:12px;}
  .wcrs-cal__legend{gap:10px;font-size:12px;}
}

/* Medium screens: a bit more breathing room */
@media (min-width: 680px){
  .wcrs-title{font-size:18px;}
  .wcrs-cal__title{font-size:20px;}
  .wcrs-cal__head,.wcrs-cal__body{gap:10px;}
  .wcrs-cal__grid{padding:14px;}
}


/* Hard mobile containment: prevent overflow in narrow layouts */
.wcrs-card{width:100%;max-width:100%;overflow:hidden;}
.wcrs-cal{max-width:100%;}
.wcrs-cal__bar{max-width:100%;}
.wcrs-cal__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wcrs-cal__grid{width:100%;max-width:100%;}

/* Ultra small devices */
@media (max-width:360px){
  .wcrs-cal__grid{padding:8px;border-radius:14px;}
  .wcrs-cal__head,.wcrs-cal__body{gap:5px;}
  .wcrs-cal__nav{width:36px;height:36px;border-radius:10px;}
  .wcrs-cal__title{font-size:16px;}
  .wcrs-cal__cell{min-height:36px;border-radius:11px;font-size:13px;}
}



/* Soft-hold timer in cart/checkout */
.wcrs-hold-line{margin-top:6px;}
.wcrs-hold-timer{display:inline-block;padding:4px 8px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:rgba(0,0,0,.03);font-weight:800;font-size:12px;}
.wcrs-hold-expired .wcrs-hold-timer{opacity:.7;}


/* v2.5.8 mobile calendar fixes */
.wcrs-cal__bar{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:8px;}
.wcrs-cal__title{display:block;min-width:0;margin:0;text-align:center;font-size:clamp(16px,4.8vw,22px);line-height:1.15;padding:0 2px;}
.wcrs-cal__grid{padding:10px;}
.wcrs-cal__head,.wcrs-cal__body{gap:6px;}
.wcrs-cal__cell{min-width:0;min-height:42px;font-size:clamp(13px,4vw,18px);}
.wcrs-cal__cell--head{font-size:clamp(11px,3.4vw,14px);}
@media (max-width:480px){
  .wcrs-card{padding:12px;}
  .wcrs-cal__bar{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px;}
  .wcrs-cal__nav{width:38px;height:38px;min-width:38px;border-radius:10px;}
  .wcrs-cal__grid{padding:8px;border-radius:14px;}
  .wcrs-cal__head,.wcrs-cal__body{gap:4px;}
  .wcrs-cal__cell{min-height:36px;border-radius:10px;padding:0;font-size:13px;}
  .wcrs-cal__cell--empty{min-height:36px;}
  .wcrs-cal__legend{gap:8px;font-size:11px;}
}
@media (max-width:360px){
  .wcrs-card{padding:10px;}
  .wcrs-cal__bar{grid-template-columns:34px minmax(0,1fr) 34px;}
  .wcrs-cal__nav{width:34px;height:34px;min-width:34px;border-radius:9px;font-size:14px;}
  .wcrs-cal__grid{padding:6px;}
  .wcrs-cal__head,.wcrs-cal__body{gap:3px;}
  .wcrs-cal__cell{min-height:32px;border-radius:9px;font-size:12px;}
  .wcrs-cal__cell--empty{min-height:32px;}
}


/* v2.5.9 hard mobile fixes */
.wcrs-cal__head,.wcrs-cal__body{grid-template-columns:repeat(7,minmax(0,1fr)) !important;}
.wcrs-cal__head > *, .wcrs-cal__body > *{min-width:0 !important; max-width:100% !important;}
.wcrs-cal__cell{appearance:none;-webkit-appearance:none;width:100% !important;max-width:100% !important;min-width:0 !important;margin:0 !important;line-height:1 !important;white-space:nowrap;overflow:hidden;}
.wcrs-cal__cell--empty,.wcrs-cal__cell--head{width:100% !important;max-width:100% !important;min-width:0 !important;}
.wcrs-cal__nav{display:inline-flex;align-items:center;justify-content:center;color:inherit;font-size:16px;line-height:1;padding:0 !important;flex:0 0 auto;}
.wcrs-cal__grid{overflow:hidden;}
@media (max-width:480px){
  .wcrs-card .wcrs-cal{overflow:hidden;}
  .wcrs-card .wcrs-cal__grid{padding:8px !important;}
  .wcrs-card .wcrs-cal__head,.wcrs-card .wcrs-cal__body{gap:4px !important;}
  .wcrs-card .wcrs-cal__cell{height:0;min-height:0;padding-bottom:100%;position:relative;border-radius:10px !important;font-size:13px !important;}
  .wcrs-card .wcrs-cal__cell > *{pointer-events:none;}
  .wcrs-card .wcrs-cal__cell::before{content:attr(data-day);display:none;}
  .wcrs-card .wcrs-cal__cell{display:flex;align-items:center;justify-content:center;}
  .wcrs-card .wcrs-cal__cell--head,.wcrs-card .wcrs-cal__cell--empty{height:auto;padding-bottom:0;position:static;}
}
@media (max-width:380px){
  .wcrs-card .wcrs-cal__bar{grid-template-columns:32px minmax(0,1fr) 32px !important;}
  .wcrs-card .wcrs-cal__nav{width:32px !important;height:32px !important;min-width:32px !important;font-size:14px !important;}
  .wcrs-card .wcrs-cal__grid{padding:6px !important;}
  .wcrs-card .wcrs-cal__head,.wcrs-card .wcrs-cal__body{gap:3px !important;}
  .wcrs-card .wcrs-cal__cell{font-size:12px !important;border-radius:8px !important;}
}
