.simpbire-size-allocation { border:1px solid #ccd7df; padding:16px; margin:20px 0; min-width:0; }
.simpbire-size-allocation legend { font-weight:600; }
.simpbire-allocation-row { display:grid; grid-template-columns:minmax(0,1fr) 100px; gap:10px; padding:12px 0; border-bottom:1px solid #ddd; overflow-wrap:anywhere; }
.simpbire-allocation-row > label { display:flex; align-items:flex-start; gap:8px; }
.simpbire-allocation-row small { display:block; }
.simpbire-allocation-row input[type=number] { width:100%; box-sizing:border-box; }
.simpbire-allocation-row .simpbire-row-error { grid-column:1 / -1; margin:0; color:#a3221a; }
.simpbire-allocation-row.is-invalid { border-left:3px solid #a3221a; padding-left:8px; }
.simpbire-booking-status { overflow-wrap:anywhere; }
.simpbire-booking-status [role=alert] { color:#a3221a; }
[data-simpbire-booking] [hidden] { display:none !important; }
[data-simpbire-booking] details { border:1px solid #ccd7df; padding:12px; margin:20px 0; }
[data-simpbire-booking] summary { cursor:pointer; font-weight:600; overflow-wrap:anywhere; }
[data-simpbire-booking] input:focus-visible, [data-simpbire-booking] button:focus-visible, [data-simpbire-booking] summary:focus-visible { outline:3px solid #2271b1; outline-offset:3px; }
[data-simpbire-booking] .card-bici { display:flex; flex-direction:column; gap:8px; width:100%; min-width:0; box-sizing:border-box; overflow-wrap:anywhere; cursor:pointer; font:inherit; color:inherit; text-decoration:none; background:#fff; border:1px solid #ccc; border-radius:6px; padding:10px; }
[data-simpbire-booking] .card-bici .info-bici { display:flex; flex-direction:column; gap:6px; margin:0; }
[data-simpbire-booking] .card-bici[aria-disabled=true] { cursor:not-allowed; opacity:.65; }
[data-simpbire-booking] .card-bici.selezionata { border-color:#0073aa; box-shadow:0 0 0 2px #0073aa55; }
[data-simpbire-booking] .card-bici:focus-visible, [data-simpbire-booking] .simpbire-edit-target:focus { outline:3px solid #2271b1; outline-offset:3px; }
[data-simpbire-booking] .simpbire-card-selected { align-self:center; color:#005f8d; font-size:.85em; font-weight:600; }
[data-simpbire-booking] .simpbire-catalog-intro { margin:0 0 12px; line-height:1.5; }
[data-simpbire-booking] .simpbire-size-allocation .simpbire-size-choice { display:flex; align-items:flex-start; gap:12px; width:auto; max-width:none; min-width:0; margin:0; cursor:pointer; }
[data-simpbire-booking] .simpbire-size-choice > input[type=checkbox] { flex:0 0 auto; width:auto; margin:3px 0 0; }
[data-simpbire-booking] .simpbire-size-choice > span { min-width:0; }
[data-simpbire-booking] .info-bici-testo { white-space:normal; overflow-wrap:anywhere; }
.simpbire-split-layout { max-width:1440px; }
#form-noleggio-frontend.simpbire-split-layout .simpbire-split-layout__grid { align-items:start; }
.simpbire-split-layout__col { min-width:0; }
#form-noleggio-frontend.simpbire-split-layout .simpbire-split-layout__bike-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr)); gap:14px; }
.simpbire-split-layout__booking-period, .simpbire-split-layout__booking-customer { min-width:0; }
@media(min-width:801px) { #form-noleggio-frontend.simpbire-split-layout .simpbire-split-layout__grid { display:grid; grid-template-columns:minmax(260px,325px) minmax(0,1fr); gap:24px; } }
@media(max-width:800px) { #form-noleggio-frontend.simpbire-split-layout .simpbire-split-layout__grid { display:block; } .simpbire-split-layout__col:empty { display:none; } }
@media(max-width:375px) { .simpbire-allocation-row { grid-template-columns:minmax(0,1fr) 82px; } }

.simpbire-split-layout__col--right { container-type:inline-size; }
@container(min-width:762px) { #form-noleggio-frontend.simpbire-split-layout .simpbire-split-layout__bike-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }

#form-noleggio-frontend.simpbire-split-layout { max-width:1440px; }

[data-simpbire-booking] #lista-accessori { container-type:inline-size; }
[data-simpbire-booking] #lista-accessori .simpbire-allocation-row.simpbire-accessory-row { display:grid; grid-template-columns:44px minmax(0,1fr) minmax(max-content,var(--simpbire-quantity-width)); column-gap:8px; align-items:start; justify-content:normal; min-width:0; }
[data-simpbire-booking] #lista-accessori .simpbire-accessory-choice { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; width:44px; min-height:44px; max-width:none; margin:0; cursor:pointer; }
[data-simpbire-booking] #lista-accessori .simpbire-accessory-choice img { display:block; width:40px; height:40px; object-fit:cover; flex:none; }
[data-simpbire-booking] #lista-accessori .simpbire-accessory-choice input[type=checkbox] { width:18px; height:18px; margin:0; flex:none; }
[data-simpbire-booking] #lista-accessori .simpbire-accessory-description { display:block; min-width:0; width:auto; max-width:none; min-height:44px; margin:0; cursor:pointer; line-height:1.4; text-align:left; }
[data-simpbire-booking] #lista-accessori .simpbire-accessory-description small { margin-top:4px; line-height:1.4; }
[data-simpbire-booking] #lista-accessori .simpbire-accessory-quantity { min-width:max-content; text-align:left; }
[data-simpbire-booking] #lista-accessori .simpbire-accessory-quantity > label { display:block; width:auto; max-width:none; margin:0 0 4px; font-size:14px; line-height:1.4; white-space:nowrap; overflow-wrap:normal; word-break:normal; }

@container (max-width:17em) {
    [data-simpbire-booking] #lista-accessori .simpbire-allocation-row.simpbire-accessory-row { grid-template-columns:44px minmax(0,1fr); }
    [data-simpbire-booking] #lista-accessori .simpbire-accessory-quantity { grid-column:1 / -1; justify-self:end; width:max-content; }
}
[data-simpbire-booking] #lista-accessori .simpbire-accessory-choice:focus-within { outline:3px solid #2271b1; outline-offset:3px; }
[data-simpbire-booking] #lista-accessori .simpbire-accessory-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }

[data-simpbire-booking] .simpbire-booking-summary { background:#f6f9fb; border:1px solid #d8e3eb; border-radius:6px; padding:18px; margin:20px 0; box-sizing:border-box; overflow-wrap:anywhere; }
[data-simpbire-booking] .simpbire-booking-summary h3, [data-simpbire-booking] .simpbire-booking-summary > p { margin:0 0 12px; }
[data-simpbire-booking] .simpbire-booking-summary p { margin:6px 0; line-height:1.45; text-align:left; }
[data-simpbire-booking] .simpbire-summary-model { font-weight:700; }
[data-simpbire-booking] .simpbire-summary-period, [data-simpbire-booking] .simpbire-summary-payment, [data-simpbire-booking] .simpbire-summary-pending { color:#536472; }
[data-simpbire-booking] .simpbire-summary-composition { font-weight:600; color:#005f8d; }
[data-simpbire-booking] .simpbire-summary-amounts { margin:12px 0; }
[data-simpbire-booking] .simpbire-summary-amounts > div { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:6px 0; }
[data-simpbire-booking] .simpbire-summary-amounts dt { min-width:0; text-align:left; }
[data-simpbire-booking] .simpbire-summary-amounts dd { margin:0; text-align:right; flex-shrink:0; font-variant-numeric:tabular-nums; }
[data-simpbire-booking] .simpbire-summary-amounts .simpbire-summary-total { border-top:1px solid #d8e3eb; padding-top:10px; margin-top:10px; font-size:20px; font-weight:700; }
[data-simpbire-booking] .simpbire-summary-edit { margin-top:10px; padding:6px 10px; border:1px solid #aabac6; border-radius:4px; background:#fff; color:#005f8d; font:inherit; cursor:pointer; }

/* Message semantics remain distinct from availability/loading status. */
[data-simpbire-booking] .messaggio-prenotazione,
[data-simpbire-booking] #messaggio-prenotazione.messaggio-prenotazione,
[data-simpbire-booking] #disponibilita-feedback.messaggio-prenotazione,
[data-simpbire-booking] .messaggio-prenotazione p,
[data-simpbire-booking] [data-booking-message],
[data-simpbire-booking] .simpbire-row-error,
[data-simpbire-booking] .description,
[data-simpbire-booking] .simpbire-custom-price-notice,
.simpbire-bike-single .sbr-mini-cal__meaning,
.simpbire-booking-notice, .simpbire-booking-notice p { text-align:left; overflow-wrap:anywhere; }
[data-simpbire-booking] #messaggio-prenotazione.success,
[data-simpbire-booking] [data-booking-message].success,
.simpbire-booking-notice.notice-success { background:#e6f9ea; color:#245c28; border:1px solid #a5d6a7; border-radius:6px; padding:14px 18px; box-sizing:border-box; }
[data-simpbire-booking] #messaggio-prenotazione.success a,
[data-simpbire-booking] [data-booking-message].success a { color:#005f8d; text-decoration:underline; }
[data-simpbire-booking="admin"] .simpbire-admin-summary { max-width:600px; text-align:left; }

/* Centered booking column: 400px accessory content + its 26px padding/border. */
#form-noleggio-frontend.simpbire-layout-centered { --simpbire-centered-column-width:426px; }
#form-noleggio-frontend.simpbire-layout-centered form[data-simpbire-booking] > :is(.form-field,.simpbire-size-allocation,#sezione-accessori,#riepilogo-costo,.simpbire-booking-status,#messaggio-prenotazione) {
    width:100%; max-width:var(--simpbire-centered-column-width); min-width:0; min-inline-size:0; box-sizing:border-box; margin-left:auto; margin-right:auto; text-align:left;
}
#form-noleggio-frontend.simpbire-layout-centered .form-field > :is(input[type=text],input[type=email],input[type=number],select,textarea),
#form-noleggio-frontend.simpbire-layout-centered .form-field > label { width:100%; max-width:none; min-width:0; box-sizing:border-box; text-align:left; }
#form-noleggio-frontend.simpbire-layout-centered .simpbire-size-allocation legend { max-width:100%; box-sizing:border-box; white-space:normal; overflow-wrap:anywhere; text-align:left; }
#form-noleggio-frontend.simpbire-layout-centered #riepilogo-costo h3,
#form-noleggio-frontend.simpbire-layout-centered #sezione-accessori summary { text-align:left; }
@media(max-width:767px) {
    /* Preserve the previous accessory outer width while bringing every edge inside the wrapper. */
    #form-noleggio-frontend.simpbire-layout-centered { padding-left:7px; padding-right:7px; }
}

/* Only booking size/accessory quantities share this presentation; other numbers remain unchanged. */
[data-simpbire-booking] { --simpbire-quantity-width:max(92px,calc(var(--simpbire-quantity-digits,1) * 9px + 36px)); }
[data-simpbire-booking] .simpbire-size-allocation { container-type:inline-size; }
[data-simpbire-booking] .simpbire-size-allocation-row { grid-template-columns:minmax(0,1fr) var(--simpbire-quantity-width); }
[data-simpbire-booking] .simpbire-quantity-wrap { min-width:0; }
[data-simpbire-booking] .simpbire-quantity-wrap > label { display:block; width:auto; max-width:none; margin:0 0 4px; font-size:14px; line-height:1.4; text-align:left; }
[data-simpbire-booking] .simpbire-quantity-label { white-space:nowrap; }
[data-simpbire-booking] .simpbire-size-allocation input.simpbire-quantity-control,
[data-simpbire-booking] #lista-accessori input.simpbire-quantity-control { display:block; width:var(--simpbire-quantity-width); min-width:92px; max-width:100%; height:44px; min-height:44px; max-height:44px; margin:0; padding:6px; border:1px solid #aabac6; border-radius:4px; box-sizing:border-box; font:400 14px/1.4 system-ui,sans-serif; font-variant-numeric:tabular-nums; color:#1d2327; background:#fff; }
[data-simpbire-booking] .simpbire-size-allocation input.simpbire-quantity-control:disabled,
[data-simpbire-booking] #lista-accessori input.simpbire-quantity-control:disabled { color:#646970; background:#f0f0f1; opacity:1; }
[data-simpbire-booking] .simpbire-quantity-control:focus-visible { outline:3px solid #2271b1; outline-offset:3px; }

@container(max-width:17em) {
    [data-simpbire-booking] .simpbire-size-allocation-row { grid-template-columns:minmax(0,1fr); }
    [data-simpbire-booking] .simpbire-size-allocation-row .simpbire-quantity-wrap { justify-self:end; width:var(--simpbire-quantity-width); }
}

/* The full translated legacy availability label, only after a verified zero result. */
[data-simpbire-booking="client"] .simpbire-availability-zero {
    color: #a61b1b !important;
    background-color: #fff !important;
}
