.sat-public{
    --sat-available:#DDD5C8;
    --sat-booked:#252B27;
    --sat-unavailable:#FFFFFF;
    --sat-border:#e6e2dc;
    width:100%;
    font-family:inherit;
}

.sat-public-header{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    margin:0 0 18px;
}

.sat-date-picker{
    text-align:center;
    position:relative;
}

.sat-public-date{
    display:block;
    width:auto;
    min-width:190px;
    min-height:44px;
    padding:8px 12px;
    border:1px solid #000 !important;
    border-radius:0;
    background:#fff !important;
    color:#252B27 !important;
    font:inherit;
    font-size:16px;
    font-weight:600;
    line-height:1.2;
    cursor:pointer;
    box-shadow:none !important;
    appearance:auto;
    -webkit-appearance:auto;
}

.sat-public-date:hover,
.sat-public-date:focus{
    border-color:#000 !important;
    background:#fff !important;
    color:#252B27 !important;
    outline:none;
    box-shadow:none !important;
}

.sat-date-nav,
.sat-date-nav:hover,
.sat-date-nav:focus,
.sat-date-nav:active{
    border:0 !important;
    background:transparent !important;
    background-color:transparent !important;
    box-shadow:none !important;
    color:#252B27 !important;
}

.sat-date-nav{
    font-size:34px;
    line-height:1;
    width:42px;
    height:42px;
    cursor:pointer;
    padding:0 !important;
    min-width:0;
}

.sat-date-nav:hover{opacity:.65}

.sat-public-legend{
    display:flex;
    justify-content:center;
    gap:18px;
    align-items:center;
    flex-wrap:wrap;
    margin:12px 0 18px;
    font-size:13px;
}

.sat-public-legend span{
    display:inline-flex;
    align-items:center;
    gap:7px;
}

.sat-public-dot{
    width:14px;
    height:14px;
    display:inline-block;
    border:1px solid #ddd;
    border-radius:2px;
}

.sat-public-dot.available{background:var(--sat-available)}
.sat-public-dot.booked{background:var(--sat-booked)}
.sat-public-dot.unavailable{background:#fff}

.sat-public-scroll{
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    border:1px solid var(--sat-border);
    width:100%;
}

.sat-public-grid{
    border-collapse:separate;
    border-spacing:0;
    min-width:max-content;
    width:max-content;
    background:#fff;
}

.sat-public-grid th,
.sat-public-grid td{
    border-right:1px solid var(--sat-border);
    border-bottom:1px solid var(--sat-border);
    text-align:center;
    padding:0;
}

.sat-public-grid thead th{
    background:#faf9f7;
    font-size:12px;
    font-weight:600;
    padding:13px 9px;
    white-space:nowrap;
    min-width:76px;
}

.sat-public-grid .sat-public-sticky{
    position:sticky;
    left:0;
    z-index:3;
    background:#fff;
}

.sat-public-grid thead .sat-public-sticky{
    z-index:5;
    background:#faf9f7;
}

.sat-public-grid tbody th.sat-public-sticky{
    text-align:left;
    padding:0 16px;
    min-width:150px;
    white-space:nowrap;
    font-size:14px;
    font-weight:600;
}

.sat-public-grid tbody td{
    width:76px;
    min-width:76px;
    height:52px;
    vertical-align:middle;
}

.sat-public-available{
    background:var(--sat-available);
    color:#000;
}

.sat-public-booked{
    background:var(--sat-booked);
    color:#fff;
}

.sat-public-unavailable{
    background:var(--sat-unavailable);
}

.sat-cell-time{
    display:block;
    padding:0 4px;
    font-size:11px;
    font-weight:600;
    line-height:1.2;
    white-space:nowrap;
}

.sat-is-loading .sat-public-grid{
    opacity:.5;
    transition:opacity .15s ease;
}

.sat-date-nav:disabled,
.sat-public-date:disabled{
    opacity:.45;
    cursor:wait;
}

@media(max-width:600px){
    .sat-public-date{
        min-width:165px;
        min-height:42px;
        font-size:14px;
        padding:7px 9px;
    }

    .sat-public-grid thead th{
        min-width:68px;
        padding:11px 7px;
    }

    .sat-public-grid tbody td{
        width:68px;
        min-width:68px;
        height:48px;
    }

    .sat-public-grid tbody th.sat-public-sticky{
        min-width:125px;
        padding:0 12px;
        font-size:13px;
    }

    .sat-public-header{
        gap:6px;
    }

    .sat-cell-time{
        font-size:10px;
    }
}


/* Compact schedule layout - v1.1.3 */
.sat-public-grid thead th{
    font-size:11px;
    padding:8px 6px;
    min-width:70px;
    height:38px;
    box-sizing:border-box;
}
.sat-public-grid tbody th.sat-public-sticky{
    padding:0 12px;
    min-width:140px;
    height:42px;
    font-size:13px;
    line-height:1.1;
    box-sizing:border-box;
}
.sat-public-grid tbody td{
    width:70px;
    min-width:70px;
    height:42px;
    box-sizing:border-box;
}
.sat-cell-time{
    padding:0 3px;
    font-size:10px;
    line-height:1.1;
}
@media(max-width:600px){
    .sat-public-grid thead th{
        min-width:64px;
        height:36px;
        padding:7px 5px;
        font-size:10px;
    }
    .sat-public-grid tbody td{
        width:64px;
        min-width:64px;
        height:40px;
    }
    .sat-public-grid tbody th.sat-public-sticky{
        min-width:115px;
        height:40px;
        padding:0 10px;
        font-size:12px;
    }
    .sat-cell-time{font-size:9px}
}
