/* Mansio calendar frontend styles (moved out of templates/calendar-template.php).
   Rules for iCal-connected calendars are scoped with .rooms-has-ical. */
.rooms-calendar-events {
    max-width: 100%;
    margin: 0;
    font-family: var(--rhc-font-family, inherit);
    font-size: var(--rhc-font-size, inherit);
    box-sizing: border-box;
    container-type: inline-size;
}
/* Layout principale: sempre colonna */
.rooms-calendar-main-panel {
    background: var(--rhc-bg, #fff);
    border-radius: 8px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
    border: none;
}
.rooms-panel-outline--border .rooms-calendar-main-panel {
    box-shadow: none;
    border: 2px solid var(--rhc-accent, #007cba);
}
.rooms-panel-outline--none .rooms-calendar-main-panel {
    box-shadow: none;
    border: none;
}
/* Navigazione */
.rooms-calendar-navigation {
    display: flex; align-items: center;
    justify-content: space-between;
    margin-bottom: 16px; padding: 0 4px;
}
.rooms-nav-btn {
    background: none;
    border: 1px solid transparent;
    font-size: 1.1em;
    color: var(--rhc-text-muted, #666);
    cursor: pointer;
    padding: 4px 12px;
    border-radius: 6px;
    transition: background .15s;
    line-height: 1.6;
}
.rooms-nav-btn:hover {
    background: var(--rhc-surface, #f0f0f0);
    border-color: var(--rhc-accent, #007cba);
    color: var(--rhc-text, #333);
}
.rooms-nav-btn.is-disabled,
.rooms-nav-btn:disabled {
    opacity: .35;
    cursor: not-allowed;
}
.rooms-nav-btn.is-disabled:hover,
.rooms-nav-btn:disabled:hover {
    background: none;
    border-color: transparent;
}
.rooms-current-month {
    font-size: 1.05em; font-weight: 600;
    color: var(--rhc-text, #222); letter-spacing: .02em;
}
/* Griglia */
.rooms-calendar-days-header {
    display: grid; grid-template-columns: repeat(7,1fr);
    gap: 2px; margin-bottom: 6px;
}
.rooms-calendar-day-header {
    padding: 8px 4px; text-align: center;
    font-weight: 600; font-size: .7em;
    background: var(--rhc-days-header-bg, #fff);
    border-radius: 4px; text-transform: uppercase; letter-spacing: .05em;
}
.rooms-calendar-day-header.weekend { color: #e53935; }
.rooms-calendar-days {
    display: grid; grid-template-columns: repeat(7,1fr); gap: 2px;
}
/* Celle */
.rooms-calendar-day {
    min-height: 44px;
    padding: 6px 4px 4px;
    background: var(--rhc-bg, #fff);
    border: 1px solid var(--rhc-border, #e5e7eb);
    border-radius: 6px;
    position: relative;
    cursor: pointer;
    transition: all .15s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    user-select: none;
    gap: 2px;
}
.rooms-calendar-day:hover {
    border-color: var(--rhc-accent, #007cba);
    background: var(--rhc-surface, #f5f5f5);
    transform: scale(1.03);
    z-index: 1;
}
.rooms-calendar-day.empty {
    background: transparent; border: none;
    cursor: default; pointer-events: none;
}
.rooms-calendar-day.today:not(.booked-airbnb):not(.booked-booking):not(.booked-other):not(.booked-manual) {
    outline: 2px solid var(--rhc-accent, #007cba);
    outline-offset: -2px;
}
.rooms-calendar-day.has-holiday {
    background: color-mix(in srgb, var(--rhc-holiday, #ff9800) 12%, var(--rhc-bg, #fff));
    border-color: var(--rhc-holiday, #ff9800);
}
.rooms-calendar-day.has-holiday::after {
    content: '\2605';
    display: block;
    font-size: .55em;
    line-height: 1;
    color: var(--rhc-accent, #007cba);
    text-align: center;
    margin-top: 2px;
}
.rooms-calendar-day-number {
    font-weight: 600; font-size: .85em;
    color: var(--rhc-text, #222); line-height: 1;
}
.rooms-calendar-day-price {
    font-size: .6em;
    color: var(--rhc-text-muted, #555);
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    background: color-mix(in srgb, var(--rhc-accent, #007cba) 10%, transparent);
    padding: 1px 4px;
    border-radius: 3px;
}
/* Selezione range */
.rooms-calendar-day.sel-start,
.rooms-calendar-day.sel-end {
    background: var(--rhc-accent, #007cba) !important;
    border-color: var(--rhc-accent, #007cba) !important;
    transform: scale(1.05);
    z-index: 2;
}
.rooms-calendar-day.sel-start .rooms-calendar-day-number,
.rooms-calendar-day.sel-end   .rooms-calendar-day-number,
.rooms-calendar-day.sel-start .rooms-calendar-day-price,
.rooms-calendar-day.sel-end   .rooms-calendar-day-price {
    color: #fff !important; background: transparent !important;
}
.rooms-calendar-day.in-range {
    background: color-mix(in srgb, var(--rhc-accent, #007cba) 18%, var(--rhc-bg, #fff)) !important;
    border-color: color-mix(in srgb, var(--rhc-accent, #007cba) 40%, transparent) !important;
}
.rooms-calendar-day.in-range .rooms-calendar-day-number { color: var(--rhc-accent, #007cba) !important; }
/* Disponibilità iCal */
/* Disponibilita iCal */
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day:not(.empty) {
    background: var(--rhc-day-available-bg, #e8f5e9); border-color: #a5d6a7;
}
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day:not(.empty) .rooms-calendar-day-number { color: #2E7D32; }
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day:not(.empty) .rooms-calendar-day-price  {
    color: #1B5E20; background: rgba(76,175,80,.15);
}
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day:not(.empty):hover {
    background: #c8e6c9; border-color: #81c784;
}
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.today:not(.booked-airbnb):not(.booked-booking):not(.booked-other):not(.booked-manual) {
    background: var(--rhc-day-today-bg, #b9f6ca) !important; border-color: var(--rhc-day-today-border, #2E7D32) !important;
    outline: 2px solid var(--rhc-day-today-border, #1B5E20); outline-offset: -2px;
}
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-airbnb,
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-booking,
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-other {
    background: var(--rhc-day-booked-bg, #EF5350) !important; border-color: var(--rhc-day-booked-border, #C62828) !important;
    cursor: default !important; pointer-events: none;
}
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-airbnb  .rooms-calendar-day-number,
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-booking .rooms-calendar-day-number,
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-other   .rooms-calendar-day-number { color: #fff !important; }
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-airbnb  .rooms-calendar-day-price,
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-booking .rooms-calendar-day-price,
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-other   .rooms-calendar-day-price  { display: none; }
/* Bloccato manualmente */
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-manual {
    background: var(--rhc-day-manual-bg, #b91c1c) !important; border-color: var(--rhc-day-manual-border, #991b1b) !important;
    cursor: not-allowed !important; pointer-events: none;
}
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-manual .rooms-calendar-day-number { color: #fff !important; }
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.booked-manual .rooms-calendar-day-price  { display: none; }
/* selezione override verde */
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.sel-start,
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.sel-end {
    background: var(--rhc-accent, #007cba) !important;
    border-color: var(--rhc-accent, #007cba) !important;
}
.rooms-holiday-calendar.rooms-has-ical .rooms-calendar-day.in-range {
    background:   color-mix(in srgb, var(--rhc-accent, #007cba) 25%, #e8f5e9) !important;
    border-color: color-mix(in srgb, var(--rhc-accent, #007cba) 50%, transparent) !important;
}
/* Pannello festività */
.rooms-calendar-events-panel {
    background: var(--rhc-surface, #f8f9fa);
    border-radius: 8px; padding: 20px;
    transition: background .2s;
}
.rooms-calendar-events-panel.is-open {
    background: var(--rhc-panel-open-bg, var(--rhc-surface, #f8f9fa));
}
/* Toggle header festività */
.rooms-events-label {
    display: flex; justify-content: space-between; align-items: center;
    font-size: .82em; font-weight: 700;
    text-transform: uppercase; letter-spacing: .07em;
    color: var(--rhc-text-muted, #888);
    margin: 0; padding: 4px 2px;
    cursor: pointer; user-select: none;
    border-radius: 4px;
    transition: color .15s;
}
.rooms-events-label:hover         { color: var(--rhc-accent, #007cba); outline: none; }
.rooms-events-label:focus-visible  { color: var(--rhc-accent, #007cba); outline: 2px solid var(--rhc-accent, #007cba); outline-offset: 3px; }
.rooms-events-label:focus:not(:focus-visible) { outline: none; }
.rooms-events-toggle-left  { display: flex; align-items: center; gap: 6px; }
.rooms-events-toggle-right { display: flex; align-items: center; gap: 8px; }
.rooms-events-icon         { font-size: 1.1em; }
.rooms-events-count-badge  {
    background: var(--rhc-border, #e5e7eb);
    color: var(--rhc-text-muted, #666);
    border-radius: 12px; padding: 4px 16px;
    font-size: .75em; font-weight: 600;
    letter-spacing: 0;
    transition: background .15s, color .15s;
}
.rooms-events-label:hover .rooms-events-count-badge,
.rooms-calendar-events-panel.is-open .rooms-events-count-badge {
    background: color-mix(in srgb, var(--rhc-accent, #007cba) 12%, transparent);
    color: var(--rhc-accent, #007cba);
}
.rooms-events-chevron {
    display: inline-block; font-size: .75em;
    transition: transform .22s ease;
    color: var(--rhc-text-muted, #aaa);
}
.rooms-calendar-events-panel.is-open .rooms-events-chevron { transform: rotate(180deg); }
/* Corpo festività — nascosto di default, visibile solo con .is-open */
.rooms-events-content {
    display: none; flex-direction: column; gap: 10px;
    margin-top: 14px;
}
.rooms-calendar-events-panel.is-open .rooms-events-content {
    display: flex;
}
.rooms-event-item {
    padding: 14px 16px;
    background: var(--rhc-bg, #fff);
    border-radius: 6px; border: 1px solid var(--rhc-border, #e5e7eb);
}
.rooms-event-title { font-size: 1em; font-weight: 600; color: var(--rhc-text, #222); margin: 0 0 6px; }
.rooms-event-description { font-size: .82em; color: var(--rhc-text-muted, #666); line-height: 1.5; margin: 0 0 10px; }
.rooms-event-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rooms-event-date  { font-size: .72em; color: var(--rhc-text-muted, #999); font-weight: 500; }
.rooms-event-type  {
    font-size: .65em; padding: 2px 7px; border-radius: 10px;
    text-transform: uppercase; font-weight: 700; letter-spacing: .04em;
}
.rooms-event-type.national {
    background: color-mix(in srgb, var(--rhc-accent, #007cba) 15%, transparent);
    color: var(--rhc-accent, #1976d2);
}
.rooms-event-type.religious { background: #f3e5f5; color: #7b1fa2; }
.rooms-event-type.cultural  { background: #e8f5e8; color: #388e3c; }
/* Pannello prenotazione */
.rooms-booking-panel {
    display: none;
    background: var(--rhc-booking-panel-bg, var(--rhc-bg, #fff));
    border-radius: 8px; padding: 18px 0;
}
.rooms-booking-panel.visible   { display: block; animation: rhcSlideDown .24s ease both; }
.rooms-booking-panel.is-hiding { display: block; animation: rhcSlideUp   .18s ease both; }
.rooms-booking-header {
    display: flex; flex-direction: row; gap: 8px;
    margin-bottom: 18px;
}
.rooms-booking-dates {
    display: block;
    font-size: 1rem; font-weight: 400;
    color: var(--rhc-text, #222);
}
.rooms-booking-date-row { display: block; }
.rooms-booking-date-row + .rooms-booking-date-row { margin-top: 2px; }
.rooms-booking-dates span { color: var(--rhc-accent, #007cba); font-weight: 500; }
.rooms-booking-clear {
    display: block; align-self: flex-start;
    margin-left: auto;
    background: none; border: 1px solid var(--rhc-border, #ccc);
    color: var(--rhc-text-muted, #666); font-size: .75em;
    padding: 4px 10px; border-radius: 5px; cursor: pointer;
    transition: all .15s; white-space: nowrap;
}
.rooms-booking-clear:hover { border-color: #e53935; color: #e53935; }
.rooms-booking-breakdown {
    background: var(--rhc-surface, #f8f9fa);
    border-radius: 6px; padding: 12px 14px;
    margin-bottom: 12px;
    font-size: .85em;
    display: flex; flex-direction: column; gap: 5px;
}
.rooms-booking-row {
    display: flex; justify-content: space-between;
    color: var(--rhc-text, #333);
}
.rooms-booking-row.total {
    border-top: 1px solid var(--rhc-border, #ddd);
    padding-top: 6px; margin-top: 2px;
    font-weight: 700; font-size: 1.05em;
    color: var(--rhc-accent, #007cba);
}
.rooms-cancellation-switch-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 0 2px;
    margin-top: 6px;
    border-top: 1px solid var(--rhc-border, #ddd);
    cursor: pointer;
    user-select: none;
}
.rooms-cancellation-switch-label {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.rooms-cancellation-switch-label strong {
    font-size: .85em;
    color: var(--rhc-text, #333);
}
.rooms-cancellation-switch-hint {
    font-size: .74em;
    color: var(--rhc-text-muted, #888);
    line-height: 1.35;
}
.rooms-cancellation-switch-row.active .rooms-pet-switch {
    background: var(--rhc-accent, #007cba);
}
.rooms-cancellation-switch-row.active .rooms-pet-switch::after {
    transform: translateX(16px);
}
/* Riga condivisa: selettore ospiti + toggle animali, affiancati */
.rooms-guest-pet-row {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
}
.rooms-guest-pet-row .rooms-guest-selector,
.rooms-guest-pet-row .rooms-pet-toggle {
    flex: 1;
    min-width: 0;
}
/* Selettore ospiti */
.rooms-guest-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--rhc-surface, #fff);
}
.rooms-guest-label {
    font-size: .85em;
    font-weight: 600;
    color: var(--rhc-text, #333);
    display: flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}
.rooms-guest-select {
    flex-shrink: 0;
    padding: 5px 8px;
    border: 2px solid var(--rhc-border, #ddd);
    border-radius: 6px;
    background: var(--rhc-bg, #fff);
    color: var(--rhc-text, #333);
    font-size: .85em;
    font-weight: 600;
    cursor: pointer;
}
.rooms-guest-select:hover,
.rooms-guest-select:focus {
    border-color: var(--rhc-accent, #007cba);
    outline: none;
}
/* Toggle animali domestici */
.rooms-pet-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border-radius: 8px;
    height: 100%;
    box-sizing: border-box;
    cursor: pointer;
    transition: all .15s;
    background: var(--rhc-surface, #fff);
    user-select: none;
}
.rooms-pet-row:hover {
    border-color: var(--rhc-accent, #007cba);
}
.rooms-pet-row.active {
    border-color: var(--rhc-accent, #007cba);
    background: color-mix(in srgb, var(--rhc-accent, #007cba) 8%, var(--rhc-surface, #fff));
}
.rooms-pet-label {
    font-size: .85em;
    font-weight: 600;
    color: var(--rhc-text, #333);
    display: flex;
    align-items: center;
    gap: 6px;
}
.rooms-pet-price {
    font-size: .78em;
    color: var(--rhc-text-muted, #888);
    font-weight: 500;
}
/* Switch pill */
.rooms-pet-switch {
    width: 36px;
    height: 20px;
    border-radius: 10px;
    background: var(--rhc-border, #ccc);
    position: relative;
    transition: background .35s ease;
    flex-shrink: 0;
}
.rooms-pet-switch::after {
    content: '';
    position: absolute;
    top: 2px; left: 2px;
    width: 16px; height: 16px;
    border-radius: 50%;
    background: #fff;
    transition: transform .35s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.rooms-pet-row.active .rooms-pet-switch {
    background: var(--rhc-accent, #007cba);
}
.rooms-pet-row.active .rooms-pet-switch::after {
    transform: translateX(16px);
}
/* Transfer aeroporto (pickup / drop-off) */
.rooms-transfer-row {
    border-radius: 8px;
    margin-bottom: 10px;
    background: var(--rhc-surface, #f6f5f3);
    transition: border-color .15s;
}
.rooms-transfer-row.active {
    border-color: var(--rhc-accent, #007cba);
}
.rooms-transfer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    cursor: pointer;
    user-select: none;
}
.rooms-transfer-label {
    font-size: .85em;
    font-weight: 600;
    color: var(--rhc-text, #333);
    display: flex;
    align-items: center;
    gap: 6px;
}
.rooms-transfer-price {
    font-size: .78em;
    color: var(--rhc-text-muted, #888);
    font-weight: 500;
}
.rooms-transfer-row.active .rooms-pet-switch {
    background: var(--rhc-accent, #007cba);
}
.rooms-transfer-row.active .rooms-pet-switch::after {
    transform: translateX(16px);
}
.rooms-transfer-time {
    padding: 0 12px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.rooms-transfer-time label {
    font-size: .78em;
    color: var(--rhc-text-muted, #888);
}
.rooms-transfer-time-select {
    padding: 5px 8px;
    border: 2px solid var(--rhc-border, #ddd);
    border-radius: 6px;
    background: var(--rhc-bg, #fff);
    color: var(--rhc-text, #333);
    font-size: .85em;
    font-weight: 600;
    cursor: pointer;
}
.rooms-transfer-time-select:hover,
.rooms-transfer-time-select:focus {
    border-color: var(--rhc-accent, #007cba);
    outline: none;
}
.rooms-booking-cta {
    display: block; width: 100%; padding: 0 22px; height: 52px;
    background: var(--rhc-accent, #007cba); color: #fff;
    border: none; border-radius: 6px; font-size: .95em;
    font-weight: 700; cursor: pointer; text-align: center;
    transition: opacity .15s;
}
.rooms-booking-cta:hover {
    opacity: .88;
}
/* Form contatto */
.rooms-contact-form {
    display: none;
    background: var(--rhc-bg, #fff);
    border: 2px solid var(--rhc-accent, #007cba);
    border-radius: 8px; padding: 12px;
}
.rooms-contact-form.visible   { display: block; animation: rhcSlideDown .24s ease both; }
.rooms-contact-form.is-hiding { display: block; animation: rhcSlideUp   .18s ease both; }
@keyframes rhcSlideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes rhcSlideUp {
    from { opacity: 1; transform: translateY(0); }
    to   { opacity: 0; transform: translateY(-10px); }
}
.rooms-contact-header {
    display: flex; align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}
.rooms-contact-title {
    font-weight: 700; font-size: 1em;
    color: var(--rhc-text, #222);
}
.rooms-contact-close {
    background: none; border: 1px solid var(--rhc-border, #ccc);
    color: var(--rhc-text-muted, #666); font-size: .75em;
    padding: 4px 10px; border-radius: 5px; cursor: pointer;
    transition: all .15s;
}
.rooms-contact-close:hover { border-color: #e53935; color: #e53935; }
.rooms-contact-fields { display: flex; flex-direction: column; gap: 14px; }
.rooms-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
@container (max-width: 480px) {
    .rooms-field-row { grid-template-columns: 1fr; }
}
.rooms-field-group { display: flex; flex-direction: column; gap: 4px; }
.rooms-field-label {
    font-size: .78em; font-weight: 600;
    color: var(--rhc-text-muted, #555);
    text-transform: uppercase; letter-spacing: .03em;
}
.rooms-field-input {
    padding: 9px 12px;
    border: 1.5px solid var(--rhc-border, #ddd);
    border-radius: 6px;
    background: var(--rhc-field-bg, #f0f0f0);
    color: var(--rhc-text, #222);
    font-size: .92em;
    transition: border-color .15s, box-shadow .15s, background .15s;
    width: 100%; box-sizing: border-box;
    height: 52px;
}
.rooms-field-input:focus {
    outline: none;
    border-color: var(--rhc-accent, #007cba);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rhc-accent, #007cba) 15%, transparent);
    background: var(--rhc-field-focus-bg, var(--rhc-bg, #fff));
}
.rhc-cpicker { position: relative; width: 100%; }
.rhc-cpicker-trigger {
    width: 100%; padding: 9px 24px; border: 0; border-radius: 50px;
    background: var(--rhc-field-bg, var(--rhc-surface, #f8f9fa));
    color: var(--rhc-text, #222); font-size: .92em; font-family: inherit;
    cursor: pointer; display: flex; align-items: center; gap: 8px;
    text-align: left; box-sizing: border-box; height: 52px;
    transition: outline .15s;
}
.rhc-cpicker-trigger:focus {
    outline: 2px solid var(--rhc-accent, #007cba); outline-offset: 2px;
}
.rhc-cpicker-trigger:hover {
    background: var(--primarybtnhoverbg, var(--rhc-surface, #eef0f2)) !important;
    color: var(--rhc-text, #222) !important;
    border-color: transparent !important;
}
.rhc-cpicker-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rhc-cpicker-arrow { color: #888; flex-shrink: 0; transition: transform .2s; }
.rhc-cpicker-trigger[aria-expanded="true"] .rhc-cpicker-arrow { transform: rotate(180deg); }
.rhc-cpicker-dropdown {
    position: absolute; top: 100%; left: 0; right: 0; z-index: 9999;
    background: var(--rhc-bg, #fff); border: 1px solid var(--rhc-accent, #007cba);
    border-top: none; border-radius: 0 0 12px 12px;
    box-shadow: 0 6px 20px rgba(0,0,0,.12); overflow: hidden;
}
.rhc-cpicker-dropdown[hidden] { display: none; }
.rhc-cpicker-search-wrap { padding: 8px 10px; border-bottom: 1px solid #eee; }
.rhc-cpicker-search {
    width: 100%; padding: 7px 14px; border: 1px solid #ddd; border-radius: 50px;
    font-size: .88em; background: #fff; color: inherit; box-sizing: border-box;
}
.rhc-cpicker-search:focus { outline: none; border-color: var(--rhc-accent, #007cba); }
.rhc-cpicker-detect {
    display: flex; align-items: center; gap: 6px; width: 100%;
    padding: 8px 10px; border: none; border-bottom: 1px solid #eee;
    background: transparent; color: var(--rhc-accent, #007cba);
    font-size: .84em; font-weight: 600; cursor: pointer; text-align: left;
}
.rhc-cpicker-detect:hover { background: rgba(0,0,0,.03); }
.rhc-cpicker-detect:disabled { opacity: .6; cursor: default; }
.rhc-cpicker-list {
    list-style: none; margin: 0; padding: 4px 0;
    max-height: 200px; overflow-y: auto; overscroll-behavior: contain;
}
.rhc-cpicker-option {
    display: flex; align-items: center; gap: 8px; padding: 5px 14px;
    cursor: pointer; font-size: .9em; transition: background .1s;
}
.rhc-cpicker-option:hover { background: color-mix(in srgb, var(--rhc-accent, #007cba) 20%, transparent); }
.rhc-cpicker-option--selected { background: color-mix(in srgb, var(--rhc-accent, #007cba) 12%, transparent); font-weight: 600; }
.rhc-cpicker-option--empty { color: #888; font-style: italic; }
.rhc-cpicker-option--hidden { display: none; }
.rooms-contact-divider {
    height: 1px;
    background: var(--rhc-border, #e0e0e0);
    margin: 2px 0;
}
.rooms-contact-submit {
    display: block; width: 100%; padding: 0 22px; height: 52px;
    background: var(--rhc-accent, #007cba); color: #fff;
    border: none; border-radius: 6px; font-size: .95em;
    font-weight: 700; cursor: pointer; text-align: center;
    transition: opacity .15s; margin-top: 4px;
}
.rooms-contact-submit:hover { opacity: .88; }
.rooms-field-input.rooms-field-error {
    border-color: #e53935;
    box-shadow: 0 0 0 3px rgba(229,57,53,.15);
}
.rooms-contact-msg {
    display: block;
    font-size: .85em;
    margin-top: 6px;
    color: #e53935;
}
/* Pannello pagamento */
.rooms-payment-panel {
    display: none;
    background: var(--rhc-payment-panel-bg, var(--rhc-bg, #fff));
    border: 2px solid var(--rhc-payment-panel-border, var(--rhc-accent, #007cba));
    border-radius: 8px; padding: 10px 0;
}
.rooms-payment-panel.visible   { display: block; animation: rhcSlideDown .24s ease both; }
.rooms-payment-panel.is-hiding { display: block; animation: rhcSlideUp   .18s ease both; }
.rooms-payment-header {
    display: flex; align-items: center;
    justify-content: space-between;
    padding: 0 18px;
    margin-bottom: 18px;
}
.rooms-payment-title {
    font-weight: 700; font-size: 1em;
    color: var(--rhc-text, #222);
}
.rooms-payment-close {
    background: none; border: 1px solid var(--rhc-border, #ccc);
    color: var(--rhc-text-muted, #666); font-size: .75em;
    padding: 4px 10px; border-radius: 5px; cursor: pointer;
    transition: all .15s;
}
.rooms-payment-close:hover { border-color: #e53935; color: #e53935; }
.rooms-payment-methods {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}
@container (max-width: 320px) {
    .rooms-payment-methods { grid-template-columns: repeat(2, 1fr); }
}
.rooms-payment-method {
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 6px;
    padding: 16px 10px;
    border: 2px solid var(--rhc-border, #ddd);
    border-radius: 10px;
    background: var(--rhc-bg, #fff);
    color: var(--rhc-text, #333);
    cursor: pointer;
    transition: all .18s;
    text-align: center;
    line-height: 1.3;
}
.rooms-payment-method:hover {
    border-color: var(--rhc-accent, #007cba);
    background: color-mix(in srgb, var(--rhc-accent, #007cba) 5%, var(--rhc-bg, #fff));
    color: var(--rhc-text, #333);
}
.rooms-payment-method.active {
    border-color: var(--rhc-accent, #007cba);
    background: color-mix(in srgb, var(--rhc-accent, #007cba) 10%, var(--rhc-bg, #fff));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rhc-accent, #007cba) 20%, transparent);
    color: var(--rhc-text, #333);
}
.rooms-pm-icon { font-size: 1.6em; line-height: 1; }
.rooms-pm-label { font-size: .82em; font-weight: 600; color: var(--rhc-text, #333); }
.rooms-pm-label small { font-weight: 400; color: var(--rhc-text-muted, #888); }
.rooms-payment-method--btc:hover {
    border-color: #f7931a;
    background: color-mix(in srgb, #f7931a 5%, var(--rhc-bg, #fff));
    color: var(--rhc-text, #333);
}
.rooms-payment-method--btc.active {
    border-color: #f7931a;
    background: color-mix(in srgb, #f7931a 10%, var(--rhc-bg, #fff));
    box-shadow: 0 0 0 3px color-mix(in srgb, #f7931a 20%, transparent);
    color: var(--rhc-text, #333);
}
.rooms-btcpay-link {
    display: inline-block;
    margin-top: 12px;
    padding: 9px 18px;
    background: #f7931a;
    color: #fff;
    border-radius: 6px;
    font-weight: 700;
    font-size: .9em;
    text-decoration: none;
    transition: opacity .15s;
}
.rooms-btcpay-link:hover { opacity: .85; color: #fff; }
.rooms-payment-confirm {
    display: block; width: 100%; padding: 0 22px; height: 52px;
    background: var(--rhc-accent, #007cba); color: #fff;
    border: none; border-radius: 6px; font-size: .95em;
    font-weight: 700; cursor: pointer; text-align: center;
    transition: opacity .15s;
}
.rooms-payment-confirm:disabled {
    opacity: .4; cursor: not-allowed;
}
.rooms-payment-confirm:not(:disabled):hover { opacity: .88; }
/* Step pagamento */
.rooms-pay-step { display: none; padding: 0 18px; }
.rooms-pay-step.active { display: block; }
/* Pulsante Continua (selezione metodo) */
.rooms-payment-continue {
    display: block; width: 100%; padding: 0 22px; height: 52px; margin-top: 14px;
    background: var(--rhc-accent, #007cba); color: #fff;
    border: none; border-radius: 6px; font-size: .95em;
    font-weight: 700; cursor: pointer; text-align: center;
    transition: opacity .15s;
}
.rooms-payment-continue:disabled { opacity: .4; cursor: not-allowed; }
.rooms-payment-continue:not(:disabled):hover { opacity: .88; }
/* Back + Confirm row */
.rooms-pay-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
}
.rooms-pay-back {
    background: #393939;
    color: #fff;
    border: 1px solid #393939;
    padding: 0 16px;
    height: 52px;
    border-radius: 6px;
    font-size: .85em;
    font-weight: 600; cursor: pointer; display: inline-flex;
    align-items: center; gap: 4px;
    flex-shrink: 0;
    transition: opacity .15s;
}
.rooms-pay-back:hover { background: #171717; }
.rooms-pay-actions .rooms-payment-confirm {
    flex: 1;
    width: auto;
    margin-top: 0;
}
/* Detail box */
.rooms-pay-detail-box {
    background: var(--rhc-surface, #f8f9fa);
    border: 1.5px solid var(--rhc-border, #ddd);
    border-radius: 8px; padding: 16px;
    margin-bottom: 14px;
}
.rooms-pay-detail-title {
    font-weight: 700; font-size: 1em;
    color: var(--rhc-text, #222);
    margin-bottom: 12px;
}
.rooms-pay-detail-amount {
    font-size: 1.4em; font-weight: 800;
    color: var(--rhc-accent, #007cba);
    margin-bottom: 12px;
}
.rooms-pay-detail-rows {
    display: flex; flex-direction: column; gap: 7px;
    margin-bottom: 12px;
}
.rooms-pay-row {
    display: flex; justify-content: space-between;
    align-items: flex-start; gap: 12px;
    font-size: .85em; color: var(--rhc-text, #333);
    border-bottom: 1px dashed var(--rhc-border, #e8e8e8);
    padding-bottom: 5px;
}
.rooms-pay-row:last-child { border-bottom: none; padding-bottom: 0; }
.rooms-pay-row span { color: var(--rhc-text-muted, #777); white-space: nowrap; }
.rooms-pay-mono {
    font-family: 'Courier New', monospace;
    font-size: .95em; letter-spacing: .02em;
    word-break: break-all; text-align: right;
}
.rooms-pay-note {
    font-size: .8em; color: var(--rhc-text-muted, #777);
    margin: 0; line-height: 1.5;
}
.rooms-pay-card-link {
    display: inline-block; margin-top: 10px;
    color: var(--rhc-accent, #007cba); font-weight: 700;
    font-size: .9em; text-decoration: none;
}
.rooms-pay-card-link:hover { text-decoration: underline; }
/* Responsive */
@media (max-width: 600px) {
    .rooms-calendar-main-panel { padding: 14px; gap: 16px; }
    .rooms-calendar-day        { min-height: 46px; }
    .rooms-calendar-day-number { font-size: .78em; }
    .rooms-calendar-day-price  { font-size: .56em; }
}
@media (max-width: 380px) {
    .rooms-calendar-day { min-height: 36px; padding: 4px 2px; }
}
