.ews-access-wrap,.ews-wrap{font-family:inherit}
.ews-access-wrap{display:flex;justify-content:center;padding:30px 15px}
.ews-access-box{
    width:100%;max-width:420px;background:#fff;border:1px solid #e6e6e6;
    border-radius:14px;padding:24px;box-shadow:0 10px 30px rgba(0,0,0,.06)
}
.ews-access-box h3{margin-top:0}
.ews-access-box input{
    width:100%;box-sizing:border-box;min-height:44px;padding:9px 11px;margin-bottom:10px
}
.ews-access-box button{
    min-height:42px;padding:8px 18px;border:0;border-radius:7px;
    background:#222;color:#fff;cursor:pointer
}
.ews-access-message{margin-top:10px;color:#a40000}

.ews-wrap{
    --ews-border:#e6e6e6;
    --ews-soft:#f7f7f7;
    --ews-text:#222;
    color:var(--ews-text);
}
.ews-title{text-align:center;font-size:22px;font-weight:700;margin-bottom:18px}
.ews-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ews-grid{
    width:100%;min-width:760px;border-collapse:separate;border-spacing:0;
    table-layout:fixed;background:#fff;border:1px solid var(--ews-border);
    border-radius:12px;overflow:hidden
}
.ews-grid th,.ews-grid td{
    border-right:1px solid var(--ews-border);border-bottom:1px solid var(--ews-border);
    padding:8px;text-align:center;vertical-align:middle
}
.ews-grid tr:last-child th,.ews-grid tr:last-child td{border-bottom:0}
.ews-grid th:last-child,.ews-grid td:last-child{border-right:0}
.ews-grid thead th,.ews-time-head,.ews-time{background:var(--ews-soft);font-weight:700}
.ews-time-head,.ews-time{width:80px}
.ews-slot{
    width:100%;min-height:56px;border:0;border-radius:9px;padding:8px;
    font:inherit;line-height:1.25
}
button.ews-slot-available,button.ews-slot-booked{
    cursor:pointer;transition:transform .12s ease,box-shadow .12s ease
}
button.ews-slot-available{background:#f5f5f5}
button.ews-slot-booked{background:#ececec}
button.ews-slot-available:hover,button.ews-slot-booked:hover{
    transform:translateY(-1px);box-shadow:0 3px 12px rgba(0,0,0,.08)
}
.ews-plus{display:block;font-size:21px;font-weight:700;line-height:1;margin-bottom:4px}
.ews-name{font-weight:700;word-break:break-word}
.ews-modal{
    position:fixed;inset:0;z-index:999999;display:none;align-items:center;
    justify-content:center;padding:20px
}
.ews-modal.is-open{display:flex}
.ews-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.ews-modal-dialog{
    position:relative;z-index:2;width:100%;max-width:420px;background:#fff;
    border-radius:14px;padding:26px;box-shadow:0 20px 60px rgba(0,0,0,.24)
}
.ews-modal-dialog h3{margin:0 0 10px}
.ews-selected-slot{margin-bottom:12px;font-weight:700}
.ews-release-name{margin-bottom:18px}
.ews-modal-dialog label{display:block;margin:14px 0 6px;font-weight:600}
.ews-modal-dialog input{width:100%;min-height:44px;box-sizing:border-box;padding:9px 11px}
.ews-help{margin-top:6px;font-size:12px;opacity:.7}
.ews-modal-close{
    position:absolute;top:10px;right:12px;border:0;background:transparent;
    font-size:28px;cursor:pointer
}
.ews-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.ews-modal-actions button{min-height:42px;padding:8px 16px;border-radius:7px;cursor:pointer}
.ews-cancel{border:1px solid #ddd;background:#fff}
.ews-submit,.ews-release-submit{border:1px solid #222;background:#222;color:#fff}
.ews-message{min-height:20px;margin-top:12px;font-size:14px}
.ews-message.is-error{color:#a40000}
.ews-message.is-success{color:#146c2e}
@media(max-width:767px){.ews-grid{min-width:680px}}


/* v1.6 Responsive mobile layout */
.ews-mobile-list {
    display: none;
}

@media (max-width: 767px) {
    .ews-scroll {
        display: none;
    }

    .ews-mobile-list {
        display: block;
    }

    .ews-title {
        font-size: 24px;
        margin-bottom: 16px;
    }

    .ews-mobile-day {
        background: #fff;
        border: 1px solid var(--ews-border);
        border-radius: 14px;
        overflow: hidden;
        margin-bottom: 18px;
        box-shadow: 0 2px 10px rgba(0,0,0,.04);
    }

    .ews-mobile-day-title {
        margin: 0;
        padding: 14px 16px;
        background: var(--ews-soft);
        font-size: 20px;
        line-height: 1.2;
        text-align: center;
        border-bottom: 1px solid var(--ews-border);
    }

    .ews-mobile-row {
        display: grid;
        grid-template-columns: 76px minmax(0, 1fr);
        gap: 10px;
        align-items: stretch;
        padding: 8px 10px;
        border-bottom: 1px solid var(--ews-border);
    }

    .ews-mobile-row:last-child {
        border-bottom: 0;
    }

    .ews-mobile-time {
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 17px;
        font-weight: 700;
        background: #fafafa;
        border-radius: 9px;
        min-height: 54px;
    }

    .ews-mobile-action {
        min-width: 0;
    }

    .ews-mobile-action .ews-slot {
        width: 100%;
        min-height: 54px;
        padding: 8px 12px;
        font-size: 16px;
        border-radius: 9px;
    }

    .ews-mobile-action .ews-name {
        font-size: 20px;
        line-height: 1.15;
        font-weight: 700;
    }

    .ews-mobile-action .ews-plus {
        font-size: 20px;
        margin-bottom: 2px;
    }
}
