.zielnik-form{width:min(100%,900px);max-width:900px;margin:0 auto;padding:clamp(16px,3vw,28px);border:1px solid #ddd;border-radius:12px;background:#fff;box-sizing:border-box;overflow:hidden}.zielnik-form,.zielnik-form *{box-sizing:border-box}.zielnik-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;width:100%;min-width:0}.zielnik-form label{display:flex;min-width:0;max-width:100%;flex-direction:column;gap:6px;font-weight:600}.zielnik-form input:not([type="checkbox"]),.zielnik-form select,.zielnik-form textarea{display:block;width:100%;min-width:0;max-width:100%;padding:11px 12px;border:1px solid #bbb;border-radius:6px;background:#fff;font:inherit;line-height:1.35}.zielnik-form input[type="date"],.zielnik-form input[type="number"],.zielnik-form input[type="tel"],.zielnik-form input[type="email"],.zielnik-form input[type="text"],.zielnik-form select{inline-size:100%;min-inline-size:0}.zielnik-form textarea{resize:vertical;min-height:110px}.zielnik-form .full{grid-column:1/-1}.zielnik-form .consent{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:9px;font-weight:400;line-height:1.45;min-width:0}.zielnik-form .consent input{width:18px;height:18px;min-width:18px;margin:2px 0 0}.zielnik-form .consent span{min-width:0;overflow-wrap:anywhere}.zielnik-form .marketing-consent{padding-top:4px}.zielnik-form button{max-width:100%;margin-top:18px;padding:12px 20px;border:0;border-radius:6px;cursor:pointer;font-weight:700}.zielnik-info{font-size:.92rem;overflow-wrap:anywhere}.zielnik-notice{max-width:900px;padding:14px 16px;margin:0 0 16px;border-radius:6px;box-sizing:border-box}.zielnik-notice.success{background:#e9f7ee}.zielnik-notice.error{background:#fdecec}
.zielnik-calendar-wrap{max-width:1100px}.zielnik-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}.zielnik-room-calendar{margin:0 0 28px}.zielnik-room-calendar h3{margin:0 0 10px}.zielnik-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(70px,1fr));border-left:1px solid #bbb;border-top:1px solid #bbb}.zielnik-cal-head,.zielnik-cal-day{min-height:92px;border-right:1px solid #bbb;border-bottom:1px solid #bbb;padding:5px;box-sizing:border-box}.zielnik-cal-head{min-height:auto;text-align:center;font-weight:700;background:#f3f3f3}.zielnik-cal-day{position:relative;background:#fff;overflow:hidden}.zielnik-day-number{position:relative;z-index:3;display:block;font-weight:700;margin-bottom:5px}.zielnik-day-bookings{display:flex;flex-direction:column;gap:3px}.zielnik-room-lane{position:relative;height:22px;min-height:22px}.zielnik-booking-segment{position:absolute;inset:0;padding:2px 6px;box-sizing:border-box;background:var(--room-color);color:#fff;font-size:11px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:1}.zielnik-booking-segment.arrival{left:42%;right:-5px;border-radius:999px 0 0 999px;padding-left:9px}.zielnik-booking-segment.departure{left:-5px;right:42%;border-radius:0 999px 999px 0;padding-left:9px}.zielnik-booking-segment.full{left:-5px;right:-5px;border-radius:0}.zielnik-booking-segment.arrival.simultaneous{left:50%;right:-5px}.zielnik-booking-segment.departure.simultaneous{left:-5px;right:50%}.zielnik-room-code{font-size:9px;opacity:.9;margin-right:4px}.zielnik-guest-name{font-weight:700}.zielnik-calendar-legend{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-size:.9rem}.legend-shape{display:inline-block;width:34px;height:18px;border:1px solid #777;background:#777}.legend-shape.full{border-radius:0}.legend-shape.arrival{border-radius:999px 0 0 999px}.legend-shape.departure{border-radius:0 999px 999px 0}.zielnik-room-color-legend{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:6px}.zielnik-room-color-legend span{display:inline-flex;align-items:center;gap:6px}.zielnik-room-color-legend i{width:18px;height:18px;border:1px solid #777;border-radius:3px}
@media(max-width:1024px){.zielnik-form{width:calc(100vw - 40px);max-width:860px;position:relative;left:50%;transform:translateX(-50%);padding:20px}.zielnik-notice{width:calc(100vw - 40px);max-width:860px;position:relative;left:50%;transform:translateX(-50%)}.zielnik-grid{gap:14px 16px}}
@media(max-width:760px){.zielnik-form{width:calc(100vw - 20px);max-width:none;padding:14px 12px;border-radius:10px}.zielnik-notice{width:calc(100vw - 20px);max-width:none}.zielnik-grid{grid-template-columns:minmax(0,1fr);gap:12px}.zielnik-form .full{grid-column:auto}.zielnik-form label{width:100%;min-width:0}.zielnik-form input:not([type="checkbox"]),.zielnik-form select,.zielnik-form textarea{width:100%;max-width:100%;min-width:0;padding:10px;font-size:16px}.zielnik-form input[type="date"]{-webkit-appearance:none;appearance:none}.zielnik-form button{width:100%;padding:12px 14px}.zielnik-form .cf-turnstile{max-width:100%;overflow:visible;transform-origin:left top}@media(max-width:360px){.zielnik-form .cf-turnstile{transform:scale(.86);width:116.3%;margin-bottom:-9px}}@media(max-width:330px){.zielnik-form .cf-turnstile{transform:scale(.78);width:128.3%;margin-bottom:-17px}}.zielnik-calendar-grid{grid-template-columns:repeat(7,minmax(42px,1fr));font-size:12px}.zielnik-cal-head,.zielnik-cal-day{min-height:72px;padding:3px}.zielnik-calendar-nav{font-size:.9rem}.zielnik-room-lane{height:18px;min-height:18px}.zielnik-booking-segment{line-height:14px;padding:2px 3px}.zielnik-room-code{display:none}}
@media(max-width:420px){.zielnik-form{width:calc(100vw - 12px);padding:12px 10px}.zielnik-notice{width:calc(100vw - 12px)}}

/* Zielnik 1.17.14: frontendowy kalendarz zgodny wizualnie z aplikacją Android.
   Wyłącznie stan zajętości i nazwy pokoi — bez danych osobowych i kontaktowych. */
.zielnik-calendar-grid{overflow:hidden;border-radius:4px}
.zielnik-cal-head{min-height:34px;display:flex;align-items:center;justify-content:center}
.zielnik-cal-day{min-height:76px;padding:4px}
.zielnik-day-number{min-height:26px;line-height:26px;margin-bottom:0}
.zielnik-day-bookings{gap:0}
.zielnik-room-lane{height:22px;min-height:22px}
.zielnik-booking-segment{height:18px;line-height:18px;top:2px;bottom:auto;padding:0 4px}
.zielnik-booking-segment.arrival{left:50%;right:0;border-radius:999px 0 0 999px}
.zielnik-booking-segment.departure{left:0;right:50%;border-radius:0 999px 999px 0}
.zielnik-booking-segment.full{left:0;right:0;border-radius:0}
.zielnik-booking-segment.arrival.simultaneous{left:calc(50% + 6px);right:0}
.zielnik-booking-segment.departure.simultaneous{left:0;right:calc(50% + 6px)}
.zielnik-booking-label{font-size:10px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){
    .zielnik-cal-day{min-height:68px}
    .zielnik-room-lane{height:20px;min-height:20px}
    .zielnik-booking-segment{height:16px;line-height:16px}
    .zielnik-booking-label{font-size:9px}
}


/* Zielnik 1.17.17: ciągłe paski rezerwacji pomiędzy kolejnymi dniami. */
.zielnik-cal-day {
    overflow: visible !important;
}
.zielnik-day-bookings {
    margin-left: -4px !important;
    margin-right: -4px !important;
    width: calc(100% + 8px) !important;
    gap: 0 !important;
}
.zielnik-room-lane {
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
}
.zielnik-booking-segment {
    margin: 0 !important;
    box-sizing: border-box !important;
}
.zielnik-booking-segment.full {
    left: 0 !important;
    right: 0 !important;
    border-radius: 0 !important;
}
.zielnik-booking-segment.arrival {
    left: 50% !important;
    right: 0 !important;
    border-radius: 999px 0 0 999px !important;
}
.zielnik-booking-segment.departure {
    left: 0 !important;
    right: 50% !important;
    border-radius: 0 999px 999px 0 !important;
}
.zielnik-booking-segment.arrival.simultaneous {
    left: calc(50% + 6px) !important;
    right: 0 !important;
}
.zielnik-booking-segment.departure.simultaneous {
    left: 0 !important;
    right: calc(50% + 6px) !important;
}

/* Zielnik 1.17.35: walidacja publicznego formularza bez czyszczenia pól. */
.zielnik-form input.zielnik-field-invalid,
.zielnik-form select.zielnik-field-invalid,
.zielnik-form textarea.zielnik-field-invalid{
    border-color:#d63638 !important;
    box-shadow:0 0 0 1px #d63638 !important;
    outline:none;
}
.zielnik-form .consent.zielnik-field-invalid{
    border:1px solid #d63638;
    border-radius:6px;
    padding:8px;
}
.zielnik-form .consent.zielnik-field-invalid input[type="checkbox"]{
    outline:2px solid #d63638;
    outline-offset:1px;
}
