.mbc21{--accent:#166534;max-width:1160px;margin:32px auto;font-family:Inter,system-ui,sans-serif;color:#172019}.mbc21 *{box-sizing:border-box}.card{background:#fff;border:1px solid #e4e9e5;border-radius:24px;box-shadow:0 22px 60px rgba(0,0,0,.08);overflow:hidden}.card header{padding:30px 34px;border-bottom:1px solid #edf0ed}.card header span{font-size:11px;letter-spacing:.15em;font-weight:900;color:var(--accent)}.card h2{font-size:30px;margin:5px 0 8px}.card header p{margin:0;color:#69746c}.layout{display:grid;grid-template-columns:1.15fr .85fr}.layout>section{padding:30px 34px}.formbox{background:#f7f9f7;border-left:1px solid #edf0ed}.calhead{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;margin-bottom:18px}.calhead strong{text-align:center}.calhead button{height:40px;border:1px solid #dde3de;background:#fff;border-radius:11px;font-size:24px}.week,.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.week b{text-align:center;font-size:10px;color:#89928c;padding-bottom:7px}.day{min-height:70px;border:1px solid #e1e6e2;background:#fff;border-radius:12px;cursor:pointer}.day b,.day small{display:block}.day small{font-size:9px;margin-top:5px;color:#718077}.day.partial{background:#fff8df;border-color:#e9cf72}.day.full,.day:disabled{background:#f0f2f1;color:#a6aca8;cursor:not-allowed}.day.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.day.selected small{color:#eaf4ed}.day.blocked{opacity:.5}.chosen{margin-top:17px;padding:12px;background:#f5f7f5;border-radius:11px;font-size:12px}.types{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.types input{position:absolute;opacity:0}.types span{display:flex;flex-direction:column;text-align:center;padding:11px 5px;border:1px solid #dce2dd;background:#fff;border-radius:11px;cursor:pointer}.types input:checked+span{border:2px solid var(--accent);padding:10px 4px;background:#f0f8f2}.types small{font-size:9px}.field{display:block;font-size:12px;font-weight:700;margin:14px 0}.field input,.field textarea{display:block;width:100%;margin-top:6px;border:1px solid #dbe1dc!important;border-radius:11px!important;padding:12px!important;background:#fff!important}.submit{width:100%;padding:14px;border:0;border-radius:11px;background:var(--accent);color:#fff;font-weight:800;margin-top:12px}.bad,.good{padding:11px;border-radius:9px;margin-top:10px;font-size:12px}.bad{background:#fee2e2;color:#991b1b}.good{background:#dcfce7;color:#166534}@media(max-width:800px){.layout{grid-template-columns:1fr}.formbox{border-left:0;border-top:1px solid #edf0ed}.layout>section,.card header{padding:22px}.day{min-height:54px}.day small{display:none}}
.human-check{display:flex;align-items:center;gap:10px;margin:14px 0;padding:12px 14px;background:#fff;border:1px solid #dbe1dc;border-radius:11px;font-size:13px;font-weight:700}.human-check input{width:18px;height:18px;accent-color:var(--accent)}

/* Symon Booking System V2.2 branding */
.symon-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.symon-mark{display:inline-flex!important;width:42px;height:42px;align-items:center;justify-content:center;border-radius:11px;background:#1677ff;color:#fff!important;font-size:25px!important;font-weight:900;letter-spacing:-1px;box-shadow:0 8px 22px rgba(22,119,255,.25)}
.symon-word{display:inline-block!important;color:#1677ff!important;font-size:25px!important;font-weight:900!important;letter-spacing:.08em!important}
.symon-credit{text-align:center;padding:13px 18px 17px;color:#87909a;font-size:11px;border-top:1px solid #edf0ed}
.symon-hp{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.human-check{display:flex;align-items:center;gap:9px;margin:14px 0;font-weight:700;font-size:13px}
.human-check input{width:18px;height:18px;accent-color:#1677ff}

/* Symon V2.4 configurable booking-state colours */
.mbc21 .day:not(.past):not(.booked):not(.full):not(.am-booked):not(.pm-booked),
.mbc21 .cal-day:not(.past):not(.booked):not(.full):not(.am-booked):not(.pm-booked){background:var(--available)!important}
.mbc21 .day.am-booked,.mbc21 .cal-day.am-booked,.mbc21 [data-status="am"],.mbc21 [data-status="morning"]{background:var(--morning)!important}
.mbc21 .day.pm-booked,.mbc21 .cal-day.pm-booked,.mbc21 [data-status="pm"],.mbc21 [data-status="afternoon"]{background:var(--afternoon)!important}
.mbc21 .day.booked,.mbc21 .day.full,.mbc21 .cal-day.booked,.mbc21 .cal-day.full,.mbc21 [data-status="booked"],.mbc21 [data-status="full"]{background:var(--booked)!important}

/* Symon V2.4.1 frontend availability palette */
.mbc21 .day:not(.full):not(.am-booked):not(.pm-booked):not(:disabled){background:var(--available)!important}
.mbc21 .day.am-booked{background:var(--morning)!important}
.mbc21 .day.pm-booked{background:var(--afternoon)!important}
.mbc21 .day.full{background:var(--booked)!important}
.mbc21 .symon-colour-key{display:flex;flex-wrap:wrap;gap:10px 18px;margin:12px 0 16px;padding:12px 14px;border:1px solid #e4e7ec;border-radius:10px;background:#fff;font-size:13px}
.mbc21 .symon-colour-key span{display:inline-flex;align-items:center;gap:7px}
.mbc21 .symon-colour-key i{display:inline-block;width:16px;height:16px;border-radius:4px;border:1px solid rgba(0,0,0,.15)}

/* V2.4.2 */
.mbc21[data-symon-version="2.4.2"] .symon-colour-key{display:flex!important}

/* Symon V2.5 */
.mbc21 .day.pending{background:var(--pending)!important;cursor:not-allowed;opacity:1}

/* V2.6.1 pending visibility fix */
.mbc21 .day.pending,.mbc21 .day[data-status="pending"]{background-color:var(--pending)!important;opacity:1!important;color:#222!important}

/* Symon V2.6.7 month navigation arrows */
.mbc21 #prev,.mbc21 #next{
 font-size:24px!important;
 font-weight:700!important;
 line-height:1!important;
 color:var(--accent)!important;
 text-indent:0!important;
 overflow:visible!important;
 display:inline-flex!important;
 align-items:center!important;
 justify-content:center!important;
 min-width:42px!important;
 min-height:38px!important;
}

/* Symon V2.6.8 responsive/mobile layout */
.mbc21{width:calc(100% - 24px);max-width:1160px}
.mbc21 .card{width:100%}
.mbc21 button,.mbc21 input,.mbc21 textarea{max-width:100%}
@media(max-width:800px){
 .mbc21{width:calc(100% - 16px);margin:12px auto;font-size:15px}
 .mbc21 .card{border-radius:16px}
 .mbc21 .card header{padding:18px 16px}
 .mbc21 .card h2{font-size:24px;line-height:1.15}
 .mbc21 .symon-brand{margin-bottom:10px}
 .mbc21 .symon-mark{width:36px;height:36px;font-size:21px!important}
 .mbc21 .symon-word{font-size:21px!important}
 .mbc21 .layout{display:block}
 .mbc21 .layout>section{padding:18px 14px}
 .mbc21 .formbox{border-left:0;border-top:1px solid #edf0ed}
 .mbc21 .calhead{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px}
 .mbc21 .calhead strong{font-size:16px;white-space:nowrap}
 .mbc21 #prev,.mbc21 #next{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important}
 .mbc21 .week,.mbc21 .cal{gap:4px}
 .mbc21 .week b{font-size:9px}
 .mbc21 .day{min-width:0;min-height:48px;padding:4px 1px;border-radius:8px;font-size:13px}
 .mbc21 .day small{display:none}
 .mbc21 .symon-colour-key{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;font-size:11px}
 .mbc21 .symon-colour-key span{min-width:0}
 .mbc21 .types{grid-template-columns:1fr;gap:8px}
 .mbc21 .types span{min-height:54px;justify-content:center}
 .mbc21 .field{margin:12px 0}
 .mbc21 .field input,.mbc21 .field textarea{font-size:16px!important;padding:13px!important}
 .mbc21 .human-check{min-height:48px}
 .mbc21 .submit{min-height:50px;font-size:16px}
 .mbc21 .chosen{overflow-wrap:anywhere}
 .symon-credit{padding-left:12px;padding-right:12px}
}
@media(max-width:420px){
 .mbc21{width:calc(100% - 10px);margin:8px auto}
 .mbc21 .card header{padding:16px 12px}
 .mbc21 .layout>section{padding:16px 10px}
 .mbc21 .card h2{font-size:21px}
 .mbc21 .calhead{grid-template-columns:40px minmax(0,1fr) 40px}
 .mbc21 #prev,.mbc21 #next{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important}
 .mbc21 .week,.mbc21 .cal{gap:3px}
 .mbc21 .day{min-height:44px;font-size:12px}
 .mbc21 .symon-colour-key{grid-template-columns:1fr 1fr;font-size:10px;gap:7px}
}

/* Symon V2.6.9 iPhone/mobile visibility fixes */
@media(max-width:800px){
 .mbc21,.mbc21 .card,.mbc21 .layout,.mbc21 .layout>section{box-sizing:border-box!important;max-width:100%!important;overflow:visible!important}
 .mbc21 .calhead{display:grid!important;width:100%!important;grid-template-columns:48px minmax(0,1fr) 48px!important;align-items:center!important}
 .mbc21 #prev,.mbc21 #next{
   display:flex!important;visibility:visible!important;opacity:1!important;
   position:relative!important;inset:auto!important;float:none!important;
   width:48px!important;min-width:48px!important;max-width:48px!important;
   height:46px!important;min-height:46px!important;margin:0!important;padding:0!important;
   font-size:0!important;color:var(--accent)!important;background:#fff!important;
   border:1px solid #d9e2ec!important;border-radius:10px!important;
 }
 .mbc21 #prev::before{content:"\2190"!important;font-size:27px!important;line-height:1!important;color:var(--accent)!important}
 .mbc21 #next::before{content:"\2192"!important;font-size:27px!important;line-height:1!important;color:var(--accent)!important}
 .mbc21 .types{display:grid!important;grid-template-columns:1fr!important;width:100%!important;overflow:visible!important}
 .mbc21 .types label,.mbc21 .types span{display:flex!important;visibility:visible!important;opacity:1!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important}
 .mbc21 .types label:nth-child(3),.mbc21 .types label:last-child{display:flex!important}
}
@media(max-width:430px){
 .mbc21{width:calc(100% - 8px)!important}
 .mbc21 .layout>section{padding-left:8px!important;padding-right:8px!important}
 .mbc21 .calhead{grid-template-columns:46px minmax(0,1fr) 46px!important}
 .mbc21 #prev,.mbc21 #next{width:46px!important;min-width:46px!important;max-width:46px!important}
}

/* Symon V2.7.1: iOS/Safari booking form visibility repair */
@media(max-width:800px){
 .mbc21 .layout{
   display:flex!important;
   flex-direction:column!important;
   width:100%!important;
   height:auto!important;
   min-height:0!important;
   max-height:none!important;
   overflow:visible!important;
 }
 .mbc21 .layout>section,
 .mbc21 .formbox{
   display:block!important;
   position:static!important;
   float:none!important;
   clear:both!important;
   width:100%!important;
   min-width:0!important;
   max-width:100%!important;
   height:auto!important;
   min-height:0!important;
   max-height:none!important;
   overflow:visible!important;
   visibility:visible!important;
   opacity:1!important;
   transform:none!important;
   box-sizing:border-box!important;
 }
 .mbc21 .formbox{order:2!important;padding:18px 14px 24px!important}
 .mbc21 .formbox form,
 .mbc21 .formbox .field,
 .mbc21 .formbox .human-check,
 .mbc21 .formbox .submit{
   display:block!important;
   visibility:visible!important;
   opacity:1!important;
   position:static!important;
   float:none!important;
   transform:none!important;
   width:100%!important;
   max-width:100%!important;
   box-sizing:border-box!important;
 }
 .mbc21 .formbox .human-check{display:flex!important}
 .mbc21 .formbox input[type="text"],
 .mbc21 .formbox input[type="email"],
 .mbc21 .formbox textarea{
   display:block!important;
   visibility:visible!important;
   opacity:1!important;
   width:100%!important;
   max-width:100%!important;
   min-height:46px!important;
   box-sizing:border-box!important;
   -webkit-appearance:none!important;
   appearance:none!important;
 }
 .mbc21 .formbox textarea{min-height:100px!important}
 .mbc21 .formbox .submit{
   min-height:52px!important;
   margin:14px 0 4px!important;
   -webkit-appearance:none!important;
   appearance:none!important;
 }
 .mbc21 .formbox .human-check input[type="checkbox"]{
   display:inline-block!important;
   visibility:visible!important;
   opacity:1!important;
   position:static!important;
   width:22px!important;
   min-width:22px!important;
   height:22px!important;
   margin:0 10px 0 0!important;
   -webkit-appearance:checkbox!important;
   appearance:auto!important;
 }
}

/* V2.7.2 title controls */
.mbc21 .card h2{font-size:var(--title-size,30px)!important;color:var(--title-colour,#1f2937)!important}
