.fb-booking,.fb-admin{--fb-border:#dbe3e9;--fb-teal:#087c79;color:#22313b;line-height:1.55;max-width:1200px;margin:auto}.fb-booking{padding:20px 8px}.fb-booking h1{font-size:clamp(24px,3vw,34px);margin:0 0 16px}.fb-admin h2{font-size:21px}.fb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;width:100%}.fb-wide{grid-column:1/-1}.fb-grid label,.fb-form>label,.fb-actions>label{display:flex;flex-direction:column;gap:5px;font-weight:500;min-width:0}.fb-booking input:not([type=checkbox]),.fb-booking select,.fb-booking textarea,.fb-admin input:not([type=checkbox]),.fb-admin select,.fb-admin textarea{box-sizing:border-box;width:100%;min-height:40px;padding:8px 10px;border:1px solid #b9c8d2;border-radius:6px;background:#fff;color:#22313b;font:inherit;max-width:100%}.fb-booking textarea,.fb-admin textarea{resize:vertical}.fb-booking input:focus,.fb-booking select:focus,.fb-admin input:focus,.fb-admin select:focus{outline:2px solid #10a7a0;outline-offset:2px}.fb-booking fieldset{border:1px solid var(--fb-border);border-radius:7px;padding:14px}.fb-booking legend{font-size:16px;width:auto}.fb-classes{display:grid;gap:8px}.fb-classes label,.fb-check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}.fb-check input,.fb-classes input{width:18px;height:18px;flex:none}.fb-form>label,.fb-form>button{margin-top:20px}.fb-card{background:#fff;border:1px solid var(--fb-border);border-radius:8px;padding:16px;margin:12px 0}.fb-card summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.fb-card summary:before{content:"▸";color:var(--fb-teal)}.fb-card[open]>summary:before{content:"▾"}.fb-card small{margin-left:auto;color:#657780}.fb-row,.fb-actions,.fb-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.fb-tabs{margin:0 0 20px}.fb-actions{margin:10px 0}.fb-actions>label{flex:1 1 160px}.fb-actions select{width:auto;max-width:100%}.fb-grow{flex:1}.fb-time{font-size:22px;min-width:74px}.fb-status{display:inline-block;font-size:12px;border-radius:5px;padding:3px 8px;white-space:normal}.fb-pending{color:#805200;background:#fff0c1}.fb-confirmed{color:#194e93;background:#e6efff}.fb-free,.fb-success{color:#146149;background:#e4f6ec}.fb-completed{color:#5b6470;background:#e9edf0}.fb-cancelled{color:#a02a35;background:#ffe9ed}.fb-muted{color:#667780;font-size:14px}.fb-alert{padding:14px;border-radius:6px;margin:12px 0}.fb-error{color:#9c2731;background:#fff0f2;border:1px solid #f3bcc4}.fb-details{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:8px 16px;border-top:1px solid var(--fb-border);padding-top:14px;margin-top:14px}.fb-details dd{margin:0;overflow-wrap:anywhere;white-space:normal}.fb-details dt{font-weight:500;color:#62717b}.fb-calendar-wrap{overflow:auto}.fb-calendar{width:100%;border-collapse:collapse;table-layout:fixed;min-width:560px}.fb-calendar th{padding:12px;background:#eef4f5}.fb-calendar td{border:1px solid var(--fb-border);vertical-align:top;height:140px}.fb-calendar td>a{display:flex;flex-direction:column;gap:4px;padding:8px;text-decoration:none;color:inherit;min-height:140px}.fb-calendar strong{font-size:20px}.fb-calendar .fb-status{font-size:12px}.fb-calendar .fb-today{outline:2px solid var(--fb-teal);outline-offset:-2px}.fb-outside{opacity:.4}.fb-slot{border-bottom:1px solid var(--fb-border);padding:12px 0}.fb-slot details{margin:8px 0}.fb-honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.fb-booking .btn{padding:10px 18px;border-radius:6px}.fb-booking .btn-primary{background:var(--fb-teal);border-color:var(--fb-teal);color:#fff}.fb-count{display:inline-block;background:#eef4f5;border-radius:20px;padding:2px 12px}.fb-admin .admin-table td{vertical-align:middle}.fb-admin .admin-card{margin-bottom:20px}.fb-admin form .fb-grid{flex-basis:100%}.fb-admin [hidden]{display:none!important}@media(max-width:650px){.fb-grid{grid-template-columns:1fr}.fb-details{grid-template-columns:1fr;gap:2px}.fb-details dd{margin-bottom:10px}.fb-row{align-items:flex-start}.fb-tabs .btn{padding:8px;font-size:13px}.fb-card{padding:12px}.fb-card small{margin:0}.fb-actions>select{width:100%}}
/* Public registration: two logical columns, full-width appointment details. */
.fb-booking{box-sizing:border-box;width:100%;max-width:1600px;padding:24px 16px}
.fb-booking .fb-registration-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.fb-booking .fb-registration-section{min-width:0}
.fb-booking .fb-registration-section h2{font-size:clamp(20px,2vw,26px);line-height:1.3;margin:8px 0 20px}
.fb-booking .fb-fields-stack{grid-template-columns:minmax(0,1fr);gap:16px}
.fb-booking .fb-fields-stack>label{grid-column:1/-1}
.fb-booking .fb-appointment-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--fb-border)}
.fb-booking .fb-appointment-section>label{display:flex;flex-direction:column;gap:6px;margin:18px 0}
.fb-booking .fb-appointment-section>.btn{margin-top:16px}
.fb-booking .fb-required-mark{color:#c62937;font-weight:700}
.fb-booking [hidden]{display:none!important}
.fb-booking input:required:invalid,.fb-booking textarea:required:invalid,.fb-booking select:required:invalid,.fb-booking [aria-invalid=true]{border-color:#ce3443;background-color:#fff8f8}
.fb-booking [data-fb-required-group]:not(:has(input:checked)){border-color:#ce3443;background:#fff8f8}
.fb-booking .fb-check:has(input:required:invalid){color:#b32230}
.fb-booking input[type=checkbox]{accent-color:var(--fb-teal)}
.fb-booking .fb-registration-section label{overflow-wrap:anywhere}
@media(max-width:767px){.fb-booking{padding:20px 8px}.fb-booking .fb-registration-columns{grid-template-columns:minmax(0,1fr);gap:28px}.fb-booking .fb-appointment-section{margin-top:28px}.fb-booking .fb-registration-section h2{margin-bottom:16px}.fb-booking .fb-appointment-section>.btn{width:100%}.fb-booking .fb-classes label{align-items:flex-start}}
