.sres-form.sres-compact { max-width: 720px; }
.sres-success{padding:10px;background:#f0fff4;border-left:4px solid #46b450;margin:1em 0}
.sres-error{padding:10px;background:#fff3f3;border-left:4px solid #dc3232;margin:1em 0}

.sres-form-grid{
    display:grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.sres-field label{
    display:block;
    font-weight:600;
    margin-bottom:6px;
}

.sres-field input[type="text"],
.sres-field input[type="email"],
.sres-field textarea{
    width:100%;
    max-width: 100%;
}

.sres-row-2{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:10px;
}

.sres-date-row{
    display:flex;
    gap:8px;
    align-items:center;
}
.sres-date-row input{ flex:1; }

.sres-help{ display:block; margin-top:6px; font-size:12px; opacity:.75; }

.sres-check{
    display:flex;
    gap:10px;
    align-items:flex-start;
    font-weight: 500;
}
.sres-check input{ margin-top: 3px; }

.sres-actions{ margin-top: 6px; }

.sres-invalid{ outline:2px solid #dc3232; outline-offset:2px; }

/* ===== Kalender ===== */
.sres-legend { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 12px; font-size:12px; align-items:center; }
.sres-legend .badge { display:inline-block; padding:2px 6px; border-radius:4px; border:1px solid #ddd; }
.badge-free{background:#e8f5e9}
.badge-reserved{background:#fff5d6}
.badge-booked{background:#ffd9de}
.badge-blocked{background:#eceff1}

.sres-year-nav{ display:flex; gap:10px; align-items:center; margin:6px 0 10px; }

.sres-grid { display:grid; gap:12px; }
.sres-grid.cols-2 { grid-template-columns:repeat(2,1fr); }
.sres-grid.cols-3 { grid-template-columns:repeat(3,1fr); }
.sres-grid.cols-4 { grid-template-columns:repeat(4,1fr); }

.sres-cal { border:1px solid #eee; border-radius:10px; padding:10px; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.03); }
.sres-cal .head { font-weight:600; margin-bottom:8px; text-align:center; }

.sres-cal .mini .wk-labels { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; font-size:11px; opacity:.7; margin-bottom:4px; }
.sres-cal .mini .cells { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }

.sres-cal .mini .cell{
    position:relative;
    aspect-ratio: 1/1;
    border-radius:6px;
    background:#fafafa;
    overflow:hidden;
}

.sres-cal .mini .cell .n{
    position:absolute;
    top:4px; left:6px;
    font-size:11px;
    opacity:.85;
    z-index: 3;
}

/* Full-day colors */
.sres-cal .mini .cell.free    { background:#f0fff4 !important; }
.sres-cal .mini .cell.reserved{ background:#fff5d6 !important; }
.sres-cal .mini .cell.booked  { background:#ffd9de !important; }
.sres-cal .mini .cell.blocked { background:#eceff1 !important; }

.sres-cal .mini .cell.empty { background:transparent !important; border:0; }

/* Split cells with deterministic triangles */
.sres-cal .mini .cell.split { background:transparent !important; }

.sres-cal .mini .cell.split::before{
    content:"";
    position:absolute; inset:0;
    background: var(--sres-am, #f0fff4);
    clip-path: polygon(0 0, 100% 0, 0 100%); /* top-left */
    z-index:1;
}
.sres-cal .mini .cell.split::after{
    content:"";
    position:absolute; inset:0;
    background: var(--sres-pm, #f0fff4);
    clip-path: polygon(100% 0, 100% 100%, 0 100%); /* bottom-right */
    z-index:1;
}

/* AM vars */
.sres-cal .mini .cell.split.am-free     { --sres-am:#f0fff4; }
.sres-cal .mini .cell.split.am-reserved { --sres-am:#fff5d6; }
.sres-cal .mini .cell.split.am-booked   { --sres-am:#ffd9de; }
.sres-cal .mini .cell.split.am-blocked  { --sres-am:#eceff1; }

/* PM vars */
.sres-cal .mini .cell.split.pm-free     { --sres-pm:#f0fff4; }
.sres-cal .mini .cell.split.pm-reserved { --sres-pm:#fff5d6; }
.sres-cal .mini .cell.split.pm-booked   { --sres-pm:#ffd9de; }
.sres-cal .mini .cell.split.pm-blocked  { --sres-pm:#eceff1; }

/* Diagonal overlay line bottom-left -> top-right */
.sres-cal .mini .cell .sres-diag{
    position:absolute; inset:0;
    pointer-events:none;
    background: linear-gradient(
            135deg,
            transparent 49%,
            rgba(0,0,0,.35) 50%,
            transparent 51%
    );
    opacity:.35;
    mix-blend-mode:multiply;
    z-index:2;
}

/* ===== Air Datepicker Busy Styling ===== */
.air-datepicker{
    font-size: 13px;
}

.air-datepicker-cell.sres-busy{
    opacity: .45;
    cursor: not-allowed;
}

.air-datepicker-cell.sres-busy-booked{
    background: #ffd9de;
}
.air-datepicker-cell.sres-busy-reserved{
    background: #fff5d6;
}
.air-datepicker-cell.sres-busy-blocked{
    background: #eceff1;
}

/* ===== Responsive: Kalender nicht mikroskopisch ===== */
@media (max-width: 980px){
    .sres-grid.cols-4{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 760px){
    .sres-grid.cols-4,
    .sres-grid.cols-3{ grid-template-columns:repeat(2,1fr); }

    .sres-row-2{ grid-template-columns: 1fr; }
    .sres-date-row{ flex-direction: column; align-items: stretch; }
}
@media (max-width: 420px){
    .sres-grid.cols-2,
    .sres-grid.cols-3,
    .sres-grid.cols-4{ grid-template-columns: 1fr; }

    .sres-cal{ padding:12px; }
    .sres-cal .mini .cells{ gap:5px; }
    .sres-cal .mini .cell{ border-radius:8px; }
}

/* AirDatepicker: unsere Busy Klassen sichtbar machen */
.air-datepicker-cell.sres-busy.reserved { background: #fff5d6; }
.air-datepicker-cell.sres-busy.booked   { background: #ffd9de; }
.air-datepicker-cell.sres-busy.blocked  { background: #eceff1; }

.air-datepicker-cell.-disabled- { opacity: .45; cursor: not-allowed; }
