.sbc-wrap {
    --sbc-page-margin: 15px;
    --sbc-border: #cfd6df;
    --sbc-free: #f7f8fa;
    --sbc-green: #cfeedd;
    --sbc-green-border: #4a9c62;
    --sbc-blue: #d8e8ff;
    --sbc-blue-border: #4f7fbc;
    --sbc-red: #ffd8d6;
    --sbc-red-border: #c3433b;
    --sbc-lesson: rgb(200, 100, 255);
    color: #1f2933;
    font-family: inherit;
    max-width: none;
    width: calc(100vw - (var(--sbc-page-margin) * 2));
    margin-left: calc(50% - 50vw + var(--sbc-page-margin));
    margin-right: calc(50% - 50vw + var(--sbc-page-margin));
    box-sizing: border-box;
}

.sbc-toolbar {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin: 16px 0;
}

.sbc-top-login-note {
    background: #f8fafc;
    border: 1px solid var(--sbc-border);
    border-radius: 6px;
    color: #475467;
    font-size: 14px;
    margin: 12px 0;
    padding: 10px 12px;
}

.sbc-view-switch {
    display: flex;
    justify-content: flex-end;
    margin: 12px 0;
}

.sbc-smartphone-link {
    font-weight: 700;
}

.sbc-day-picker {
    background: #f8fafc;
    border: 1px solid var(--sbc-border);
    border-radius: 6px;
    margin: 12px 0;
    padding: 10px 12px;
}

.sbc-day-picker form {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sbc-day-picker label {
    display: grid;
    font-size: 13px;
    gap: 4px;
}

.sbc-day-picker input[type="date"] {
    min-height: 36px;
    min-width: 170px;
}

.sbc-day-picker button {
    min-height: 36px;
}

.sbc-calendar-scroll-day {
    overflow-x: auto;
}

.sbc-calendar-day {
    min-width: 320px;
    width: 100%;
}

.sbc-calendar-day th,
.sbc-calendar-day td {
    min-width: 120px;
}

.sbc-title {
    display: grid;
    gap: 2px;
    text-align: center;
}

.sbc-title span {
    color: #667085;
    font-size: 13px;
}

.sbc-nav {
    border: 1px solid var(--sbc-border);
    border-radius: 6px;
    color: #1f2933;
    padding: 8px 10px;
    text-decoration: none;
    white-space: nowrap;
}

.sbc-nav:hover,
.sbc-nav:focus {
    background: #eef2f6;
}

.sbc-calendar-scroll {
    border: 1px solid var(--sbc-border);
    overflow-x: auto;
    width: 100%;
}

.sbc-calendar {
    border-collapse: collapse;
    table-layout: fixed;
    width: max-content;
}

.sbc-calendar th,
.sbc-calendar td {
    border: 1px solid var(--sbc-border);
    box-sizing: border-box;
    font-size: 12px;
    height: 42px;
    min-width: 92px;
    padding: 4px;
    text-align: center;
    vertical-align: middle;
}

.sbc-calendar .sbc-day-start {
    border-left-width: 3px !important;
}

.sbc-calendar .sbc-day-end {
    border-right-width: 3px !important;
}

.sbc-calendar thead th {
    background: #eef2f6;
    font-weight: 700;
    position: sticky;
    top: 0;
    z-index: 2;
}

.sbc-band-row th {
    background: #dfe7f0;
    color: #344054;
    font-size: 13px;
    font-weight: 700;
    height: 34px;
    letter-spacing: 0;
    text-align: left;
}

.sbc-repeat-head th {
    background: #eef2f6;
    color: #344054;
    font-weight: 700;
    height: 32px;
}

.sbc-time-head,
.sbc-time-cell {
    left: 0;
    min-width: 64px !important;
    position: sticky;
    z-index: 3;
}

.sbc-time-head,
.sbc-time-cell {
    background: #eef2f6;
}

.sbc-day-head {
    min-width: 184px !important;
}

.sbc-room-head.sbc-room-green {
    color: #267043;
}

.sbc-room-head.sbc-room-blue {
    color: #315f9f;
}

.sbc-slot {
    line-height: 1.2;
}

.sbc-slot-free {
    background: var(--sbc-free);
}

.sbc-slot-green {
    background: var(--sbc-green);
    border-color: var(--sbc-green-border) !important;
}

.sbc-slot-blue {
    background: var(--sbc-blue);
    border-color: var(--sbc-blue-border) !important;
}

.sbc-slot-red {
    background: var(--sbc-red);
    border-color: var(--sbc-red-border) !important;
}

.sbc-slot-lesson .sbc-slot-label {
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: var(--sbc-lesson);
    text-decoration-thickness: 4px;
    text-underline-offset: 3px;
}

.sbc-slot-label {
    display: block;
    overflow-wrap: anywhere;
}

.sbc-slot-detail span {
    display: block;
}

.sbc-cell-action {
    border: 1px solid #9aa4b2;
    border-radius: 4px;
    cursor: pointer;
    display: inline-block;
    font-size: 11px;
    line-height: 1;
    margin: 3px 2px 0;
    padding: 4px 6px;
}

.sbc-book {
    background: #ffffff;
}

.sbc-red {
    background: #fff5f5;
    border-color: var(--sbc-red-border);
    color: #9b2620;
}

.sbc-cancel {
    background: #ffffff;
    color: #475467;
}

.sbc-cell-action:disabled {
    cursor: wait;
    opacity: 0.55;
}

.sbc-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin: 12px 0;
}

.sbc-legend span {
    align-items: center;
    display: inline-flex;
    font-size: 13px;
    gap: 6px;
}

.sbc-dot {
    border: 1px solid var(--sbc-border);
    border-radius: 50%;
    display: inline-block;
    height: 12px;
    width: 12px;
}

.sbc-dot-free {
    background: var(--sbc-free);
}

.sbc-dot-green {
    background: var(--sbc-green);
    border-color: var(--sbc-green-border);
}

.sbc-dot-blue {
    background: var(--sbc-blue);
    border-color: var(--sbc-blue-border);
}

.sbc-dot-red {
    background: var(--sbc-red);
    border-color: var(--sbc-red-border);
}

.sbc-dot-lesson {
    background: var(--sbc-lesson);
    border-color: #d39e00;
}

.sbc-account {
    border: 1px solid var(--sbc-border);
    border-radius: 8px;
    margin: 12px 0;
    padding: 12px;
}

.sbc-account-standalone {
    max-width: 720px;
}

.sbc-account h3 {
    margin: 0 0 8px;
}

.sbc-proxy-booking {
    align-items: center;
    background: #f8fafc;
    border: 1px solid var(--sbc-border);
    border-radius: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin: 12px 0;
    padding: 10px 12px;
}

.sbc-proxy-booking select {
    min-width: 280px;
}

.sbc-booking-mode #sbc-booking-duration {
    min-width: 120px;
}

.sbc-booking-mode label,
.sbc-export-form label {
    display: grid;
    gap: 4px;
}

.sbc-admin-range {
    align-items: end;
    background: #f8fafc;
    border: 1px solid var(--sbc-border);
    border-radius: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin: 12px 0;
    padding: 10px 12px;
}

.sbc-admin-range > strong,
.sbc-admin-range > span {
    width: 100%;
}

.sbc-admin-range label {
    display: grid;
    font-weight: 600;
    gap: 4px;
}

.sbc-admin-range input,
.sbc-admin-range select {
    min-height: 36px;
    min-width: 190px;
}

.sbc-admin-range-action {
    min-height: 36px;
}

.sbc-admin-range-red {
    background: #fff5f5;
    border-color: var(--sbc-red-border);
    color: #9b2620;
}

.sbc-admin-range > span {
    color: #667085;
    font-size: 13px;
}

.sbc-account-management {
    border-collapse: collapse;
    font-size: 13px;
}

.sbc-account-management th,
.sbc-account-management td {
    border: 1px solid var(--sbc-border, #cfd6df);
    font-size: 13px;
    vertical-align: top;
}

.sbc-account-edit-form {
    display: grid;
    gap: 6px;
    max-width: 320px;
}

.sbc-account-edit-form label {
    display: grid;
    gap: 3px;
}

.sbc-account-edit-form input,
.sbc-account-edit-form select {
    font-size: 13px;
    max-width: 260px;
}

.sbc-account-management .button,
.sbc-account-management .description {
    font-size: 13px;
}

.sbc-export-form {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    margin: 12px 0;
}

.sbc-export-form select,
.sbc-export-form input {
    min-width: 180px;
}

.sbc-proxy-booking span {
    color: #667085;
    font-size: 13px;
}

.sbc-account-row {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.sbc-login-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sbc-register-form,
.sbc-inline-form {
    display: grid;
    gap: 8px;
}

.sbc-register-form label {
    display: grid;
    gap: 4px;
}

.sbc-register-form input {
    max-width: 320px;
}

.sbc-password-visibility,
.sbc-register-form .sbc-password-visibility {
    align-items: center;
    display: inline-flex;
    font-size: 13px;
    gap: 6px;
    margin: 4px 0;
    width: fit-content;
}

.sbc-password-visibility input[type="checkbox"],
.sbc-register-form .sbc-password-visibility input[type="checkbox"] {
    margin: 0;
    width: auto;
}

.sbc-help {
    color: #667085;
    font-size: 13px;
    margin: 0;
}

.sbc-alert {
    border-radius: 6px;
    margin: 10px 0;
    padding: 10px 12px;
}

.sbc-alert-success {
    background: #ecfdf3;
    border: 1px solid #76c893;
}

.sbc-alert-error {
    background: #fff1f0;
    border: 1px solid #ff9a94;
}

.sbc-alert-warning {
    background: #fff8db;
    border: 1px solid #e6c65c;
}

@media (max-width: 760px) {
    .sbc-toolbar,
    .sbc-account-row {
        align-items: stretch;
        flex-direction: column;
    }

    .sbc-title {
        text-align: left;
    }

    .sbc-login-grid {
        grid-template-columns: 1fr;
    }

    .sbc-proxy-booking {
        align-items: stretch;
        display: grid;
    }

    .sbc-proxy-booking label,
    .sbc-proxy-booking select {
        box-sizing: border-box;
        min-width: 0;
        width: 100%;
    }

    .sbc-view-switch {
        justify-content: stretch;
    }

    .sbc-view-switch .sbc-nav {
        text-align: center;
        width: 100%;
    }

    .sbc-day-picker form {
        align-items: stretch;
        display: grid;
    }

    .sbc-day-picker input[type="date"],
    .sbc-day-picker button,
    .sbc-day-picker .sbc-nav {
        box-sizing: border-box;
        text-align: center;
        width: 100%;
    }

    .sbc-admin-range {
        align-items: stretch;
        display: grid;
    }

    .sbc-admin-range input,
    .sbc-admin-range select,
    .sbc-admin-range-action {
        box-sizing: border-box;
        width: 100%;
    }
}
