/* Workshop scheduling: compact controls, readable blocks, consistent touch targets. */
.workshop-admin-page { max-width:1600px; width:calc(100% - 2rem); margin-inline:auto; padding:1rem; }
.workshop-admin-page > .ribbon { margin-bottom:.7rem; }
.booking-calendar-shell { --fc-border-color:#e3e6e9; --fc-today-bg-color:#fff8e5; --fc-neutral-bg-color:#f6f7f9; color:#172433; }
.booking-calendar-toolbar,.booking-date-nav,.booking-view-switch,.booking-calendar-filters { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.booking-calendar-toolbar { justify-content:space-between; padding:.8rem 0; }
.booking-date-nav h2 { font-size:1.15rem; margin:0 .7rem; letter-spacing:normal; }
.booking-calendar-shell button { min-height:40px; padding:.45rem .8rem; border:1px solid #d7dce2; border-radius:.55rem; background:#fff; color:#203047; cursor:pointer; font:inherit; }
.booking-calendar-shell button:hover { background:#edf2f7; }
.booking-calendar-shell button.is-selected { background:#203b50; color:#fff; border-color:#203b50; }
.booking-calendar-shell button:focus-visible,.booking-calendar-shell a:focus-visible { outline:3px solid #b36b00; outline-offset:2px; }
.booking-calendar-filters { padding:.2rem 0 1rem; gap:1rem; font-size:.9rem; }
.booking-calendar-filters label { display:flex;align-items:center;gap:.5rem; }
.booking-calendar-filters select { border:1px solid #cbd5df;border-radius:.4rem;padding:.5rem;background:#fff;max-width:230px; }
.booking-check input,.booking-team-choices input { width:18px; height:18px; accent-color:#203b50; }
.booking-status-legend { margin-left:auto;display:flex;align-items:center;gap:.4rem;color:#425466; }
.booking-status-legend i { width:.65rem;height:.65rem;border-radius:50%;display:inline-block; }
.booking-status-legend .requested { background:#a45e00; }.booking-status-legend .confirmed { background:#176649; }
.booking-calendar-host { background:#fff;border-radius:.6rem;overflow:hidden; }
.booking-calendar-host .fc-timegrid-slot { height:2.25rem; }
.booking-calendar-host .fc-timegrid-axis-cushion,.booking-calendar-host .fc-timegrid-slot-label-cushion {font-size:.8rem;}
.booking-calendar-host .fc-col-header-cell-cushion { padding:.6rem .1rem; color:#24384a;font-size:.85rem;text-decoration:none; }
.booking-calendar-host .fc-event { border-radius:5px;box-shadow:none;cursor:pointer; }
.booking-calendar-host .fc-event-main { padding:3px 5px; }
.booking-calendar-host .fc-event-time { font-weight:700;font-size:.75rem; }
.booking-calendar-host .fc-event-title { font-weight:500;font-size:.8rem;line-height:1.25; }
.booking-calendar-host .booking-event-confirmed {background:#e0f0e9;border:1px solid #a9cebd;border-left:4px solid #176649;}
.booking-calendar-host .booking-event-confirmed .fc-event-main {color:#153c2d;}
.booking-calendar-host .booking-event-requested {background:#fff0d6;border:1px solid #e3bc79;border-left:4px solid #a45e00;}
.booking-calendar-host .booking-event-requested .fc-event-main {color:#63400b;}
.booking-calendar-host .booking-event-completed {background:#eef0f3;border-color:#ccd2da;}
.booking-calendar-host .booking-event-completed .fc-event-main {color:#465568;}
.booking-calendar-host .fc-bg-event {opacity:.35;}
.booking-calendar-host .fc-daygrid-event {white-space:normal;}
.booking-inline-message {padding:.75rem 1rem;background:#fff2d6;border:1px solid #e6c583;border-radius:.5rem;color:#593900;}
.booking-staff-plan,.booking-team-settings {margin-top:1rem;border-top:1px solid #dbe1e7;padding-top:.8rem;font-size:.9rem;}
.booking-staff-plan summary,.booking-team-settings summary {cursor:pointer;font-weight:700;min-height:32px;}
.booking-staff-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;max-height:280px;overflow:auto;padding:.6rem 0;}
.booking-staff-grid>div {background:#f3f6f8;padding:.75rem;border-radius:.5rem;}
.booking-staff-grid p {font-size:.85rem;line-height:1.5;}
.booking-team-choices {display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0;}
.booking-team-choices label {display:flex;align-items:center;gap:.5rem;}
.workshop-modal {display:flex;flex-direction:column;max-height:90dvh;overflow:auto;}
.workshop-modal-header {position:sticky;top:-1px;background:#fff;z-index:3;padding-bottom:.8rem;}
.workshop-modal-header h2 {font-size:1.5rem;}
.workshop-modal-actions {position:sticky;bottom:-1px;background:#fff;padding:1rem 0 .4rem;border-top:1px solid #e3e6e9;z-index:3;}
.workshop-popup-form input,.workshop-popup-form select {min-height:40px;padding:.45rem .65rem;}
.booking-order-status {display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:1rem 0;padding:.7rem;background:#f1f5f8;}
.booking-order-status p {flex-basis:100%;}
@media(max-width:700px){
 .workshop-admin-page {width:calc(100% - 1rem);padding:.6rem;}
 .booking-date-nav {width:100%;}.booking-date-nav h2 {font-size:1rem;margin:.25rem 0;flex-basis:100%;order:2;}
 .booking-view-switch {width:100%;}.booking-view-switch button {flex:1;padding:.45rem .2rem;}
 .booking-calendar-filters {gap:.6rem;}.booking-status-legend {margin-left:0;}
 .booking-calendar-host {overflow-x:auto;}.booking-calendar-host .fc-timeGridWeek-view {min-width:760px;}
 .booking-calendar-host .fc-timegrid-slot {height:2.5rem;}
 .workshop-modal {padding:1rem;max-height:94dvh;width:calc(100% - 1rem);}
 .workshop-popup-form {grid-template-columns:1fr 1fr;gap:.65rem;}.workshop-popup-form label {font-size:.85rem;min-width:0;}
}
.customer-booking-layout {min-height:100dvh;background:#f2f5f7;color:#203047;font-family:system-ui,sans-serif;}
.customer-booking-layout>header,.customer-booking-layout>footer {max-width:960px;margin:auto;padding:1.2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.customer-booking-layout>header a {color:#203047;text-decoration:none;font-size:.95rem;}
.booking-brand {display:flex;gap:.6rem;align-items:center;}.booking-brand img {width:42px;height:42px;object-fit:contain;}
.customer-booking-layout>main {padding:1rem;}.customer-booking-layout>footer {font-size:.8rem;color:#536579;flex-wrap:wrap;}
.customer-booking-card {max-width:780px;margin:0 auto;background:#fff;border:1px solid #e0e7ed;border-radius:20px;padding:2rem;box-shadow:0 10px 35px #17243308;}
.customer-booking-card h1 {font:750 clamp(1.8rem,4vw,2.6rem)/1.15 system-ui,sans-serif;letter-spacing:-.04em;margin:.5rem 0 1rem;}
.customer-booking-card h2 {font:700 1.25rem/1.4 system-ui,sans-serif;margin:1.3rem 0;}.customer-booking-card p {line-height:1.6;}
.booking-eyebrow {font-size:.75rem;letter-spacing:.13em;font-weight:750;color:#5f7487;margin:0;}
.booking-steps {display:flex;list-style:none;padding:0;gap:.6rem;margin:1.5rem 0 2rem;}.booking-steps li {flex:1;border-bottom:3px solid #e0e7ed;padding:.6rem 0;font-size:.85rem;color:#65758a;}.booking-steps li.active {color:#135c45;border-color:#135c45;font-weight:700;}
.customer-booking-card button,.booking-primary {border:1px solid #cdd7e0;border-radius:9px;padding:.8rem 1.1rem;background:#fff;color:#203047;cursor:pointer;font:600 .95rem/1.3 system-ui;min-height:46px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;}
.customer-booking-card button:disabled {opacity:.45;cursor:not-allowed;}.customer-booking-card button.selected {border-color:#176649;background:#edf8f3;box-shadow:inset 0 0 0 1px #176649;}
.customer-booking-card .booking-primary {background:#176649;color:#fff;border-color:#176649;}.customer-booking-card button:focus-visible,.customer-booking-card a:focus-visible {outline:3px solid #dfab42;outline-offset:3px;}
.booking-reasons {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;}.booking-reasons button {display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:1.2rem;gap:.7rem;}.booking-reasons span {font-size:.85rem;font-weight:400;color:#536579;}.booking-reasons b {float:right;}
.booking-step-actions {display:flex;justify-content:space-between;gap:.7rem;flex-wrap:wrap;margin-top:1.5rem;}.booking-step-actions>:only-child {margin-left:auto;}
.booking-field {display:flex;flex-direction:column;gap:.45rem;font-size:.9rem;font-weight:600;}.booking-field input,.booking-field textarea {box-sizing:border-box;width:100%;min-height:46px;border:1px solid #cdd7e0;border-radius:8px;padding:.75rem;font:400 1rem system-ui;color:#203047;background:#fff;}
.booking-slots {display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0;}.booking-slots button {min-width:78px;}
.booking-help {font-size:.85rem;color:#586d7d;}.booking-summary {background:#edf5f1;border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.45rem;margin:1rem 0;}
.booking-contact-grid {display:grid;grid-template-columns:1fr 1fr;gap:1rem;}.booking-success-icon {display:inline-flex;background:#ddefe4;color:#135c45;border-radius:50%;width:50px;height:50px;align-items:center;justify-content:center;font-size:1.5rem;}.booking-success {margin-top:2rem;}
.booking-honeypot {position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}
@media(max-width:600px){.customer-booking-card {padding:1.25rem;border-radius:14px;}.booking-contact-grid,.booking-reasons {grid-template-columns:1fr;}.booking-steps {gap:.5rem;}.booking-steps li {font-size:.75rem;}.booking-step-actions {position:sticky;bottom:0;padding:.8rem 0;background:#fff;}.booking-step-actions button {flex:1;}.customer-booking-layout>header {padding:.9rem 1rem;}}
section.panel.admin-table-panel.workshop-admin-page {max-width:1600px;width:calc(100% - 2rem);}
.workshop-admin-page>.ribbon {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:.5rem;gap:.7rem;}
.workshop-admin-page>.ribbon .ribbon-group-title {display:none;}
.workshop-admin-page>.ribbon .ribbon-body,.workshop-admin-page>.ribbon .ribbon-group {padding:0;margin:0;border:0;}
@media(max-width:700px){section.panel.admin-table-panel.workshop-admin-page {width:calc(100% - 1rem);} .workshop-admin-page>.ribbon .ribbon-body {width:100%;}.workshop-admin-page>.ribbon .ribbon-action {min-height:40px;}}
.booking-calendar-host .fc-timegrid-event .fc-event-title {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:2.5em;}
.booking-calendar-host .fc-timegrid-event-short .fc-event-title {-webkit-line-clamp:1;max-height:1.25em;}
.booking-form-fieldset {border:0;padding:0;margin:0;min-width:0;}
.booking-calendar-shell button.primary-action {background:#203b50;color:#fff;-webkit-text-fill-color:#fff;border-color:#203b50;}
.booking-calendar-host .fc-bg-event {opacity:1;}
.booking-calendar-host .fc-bg-event .fc-event-title {color:#41586c;font-style:normal;font-size:.8rem;}
