/* Tent Booking Manager - modern customer booking form */
.tbm-wrap{max-width:1040px;margin:32px auto;padding:0;background:#fff;border:1px solid #e7e9ee;border-radius:18px;box-shadow:0 14px 45px rgba(15,23,42,.08);overflow:hidden;color:#172033}
.tbm-form-header{padding:30px 34px 24px;background:linear-gradient(135deg,#f8fbff 0%,#fff 65%);border-bottom:1px solid #edf0f5}
.tbm-eyebrow{display:inline-block;margin-bottom:8px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#4763e6}
.tbm-form-header h2{margin:0;font-size:30px;line-height:1.2;color:#111827}
.tbm-form-header p{margin:8px 0 0;color:#667085;font-size:14px}
#tbm-form{padding:28px 34px 34px}
.tbm-section{padding:0;margin:0 0 28px}
.tbm-section-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}
.tbm-section-title h3{margin:0;font-size:18px;line-height:1.25;color:#172033}
.tbm-section-title p{margin:4px 0 0;font-size:13px;color:#667085}
.tbm-step{width:30px;height:30px;flex:0 0 30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#eef2ff;color:#4056d6;font-size:13px;font-weight:800}
.tbm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.tbm-booking-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.tbm-field-wide{grid-column:span 2}
.tbm-field-full{grid-column:1/-1}
.tbm-field label{display:block;margin:0 0 7px;font-size:13px;font-weight:700;color:#344054}
.tbm-field label span{color:#d92d20}
.tbm-wrap input,.tbm-wrap select,.tbm-wrap textarea{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid #d9dde7;border-radius:9px;background:#fff;color:#172033;font-size:14px;line-height:1.4;outline:none;transition:border-color .18s,box-shadow .18s,background .18s}
.tbm-wrap input:hover,.tbm-wrap select:hover,.tbm-wrap textarea:hover{border-color:#b8bfcc}
.tbm-wrap input:focus,.tbm-wrap select:focus,.tbm-wrap textarea:focus{border-color:#5369e8;box-shadow:0 0 0 3px rgba(83,105,232,.12)}
.tbm-wrap input:required:invalid:not(:placeholder-shown),.tbm-wrap select:required:invalid,.tbm-wrap textarea:required:invalid{border-color:#e3a1a1}
.tbm-wrap textarea{resize:vertical;min-height:92px}
.tbm-calendar-card{padding:22px;border:1px solid #e7e9ee;border-radius:14px;background:#fbfcfe;margin-bottom:28px}
.tbm-calendar{margin:0 auto;border:1px solid #e2e6ee;padding:18px;border-radius:12px;background:#fff;max-width:650px;box-shadow:0 5px 18px rgba(15,23,42,.04)}
.tbm-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.tbm-calendar-header strong{font-size:15px;color:#172033}
.tbm-calendar-nav{border:1px solid #d9dde7;background:#fff;color:#344054;border-radius:8px;font-size:22px;line-height:30px;width:38px;height:38px;cursor:pointer;transition:.18s}
.tbm-calendar-nav:hover{background:#f4f6fb;border-color:#bdc4d1}
.tbm-calendar-weekdays,.tbm-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;text-align:center}
.tbm-calendar-weekdays{font-size:11px;font-weight:800;color:#667085;margin-bottom:7px;text-transform:uppercase}
.tbm-calendar-days p{grid-column:1/-1;color:#667085;margin:18px 0;font-size:13px}
.tbm-day{border:1px solid transparent;border-radius:8px;aspect-ratio:1;background:#e9f8ed;color:#15703a;cursor:pointer;font-weight:700;min-height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.1;transition:transform .12s,box-shadow .12s}
.tbm-day:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px rgba(15,23,42,.08)}
.tbm-day.tbm-limited{background:#fff5cc;color:#795b00}
.tbm-day.tbm-booked{background:#fde5e5;color:#b42318;text-decoration:line-through;cursor:not-allowed}
.tbm-day.tbm-selected{outline:3px solid #5369e8;outline-offset:-3px}
.tbm-day.tbm-in-range{box-shadow:inset 0 0 0 2px #5369e8}
.tbm-day small{font-size:10px;font-weight:700;opacity:.85;text-decoration:none}
.tbm-calendar-empty{aspect-ratio:1}
.tbm-calendar-legend{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-size:11px;margin-top:16px;color:#667085}
.tbm-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.tbm-dot.tbm-available{background:#a9e6b9}.tbm-dot.tbm-limited{background:#f5d66f}.tbm-dot.tbm-booked{background:#f2aaaa}
.tbm-customer{padding-top:25px;border-top:1px solid #edf0f5}
.tbm-login-warning{padding:12px 14px;background:#fff8e6;border:1px solid #f5df9a;margin-bottom:18px;border-radius:9px;color:#694b00;font-size:13px}
.tbm-message{margin:14px 0;font-size:13px;font-weight:700;color:#475467}
#tbm_availability{min-height:20px}
.tbm-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:26px;padding:18px 20px;border:1px solid #e1e5ed;border-radius:12px;background:#f8f9fc}
.tbm-summary>div{display:flex;flex-direction:column;gap:4px}
.tbm-summary span{font-size:12px;color:#667085;font-weight:600}
.tbm-summary strong{font-size:22px;color:#111827}
.tbm-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 22px;border:0;border-radius:9px;background:#405de6;color:#fff;cursor:pointer;font-weight:800;font-size:14px;box-shadow:0 7px 18px rgba(64,93,230,.22);transition:transform .15s,background .15s,box-shadow .15s}
.tbm-button:hover{background:#304bd1;transform:translateY(-1px);box-shadow:0 9px 22px rgba(64,93,230,.27)}
.tbm-button:active{transform:translateY(0)}
@media(max-width:850px){.tbm-booking-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tbm-field-wide{grid-column:span 2}}
@media(max-width:700px){.tbm-wrap{margin:18px 10px;border-radius:14px}.tbm-form-header,#tbm-form{padding-left:20px;padding-right:20px}.tbm-grid,.tbm-booking-grid{grid-template-columns:1fr}.tbm-field-wide,.tbm-field-full{grid-column:auto}.tbm-calendar-card{padding:16px}.tbm-day{min-height:50px}.tbm-summary{align-items:stretch;flex-direction:column}.tbm-button{width:100%}}
