.taildesk-admin-calendar__filters {
    margin: 16px 0;
    padding: 12px;
    border: 1px solid #dcdcde;
    background: #fff;
}

.taildesk-admin-calendar__service-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 8px 0 12px;
}

.taildesk-admin-calendar__nav {
    margin: 12px 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 640px;
}

.taildesk-admin-calendar.is-loading .taildesk-admin-calendar__nav-link {
    pointer-events: none;
    opacity: 0.65;
}

.taildesk-admin-calendar__content.is-loading {
    opacity: 0.72;
}

.taildesk-admin-calendar__panel {
    border: 1px solid #dcdcde;
    border-radius: 6px;
    background: #fff;
    padding: 10px 12px;
}

.taildesk-admin-calendar__panel p,
.taildesk-admin-calendar__panel ul {
    margin: 0;
}

.taildesk-admin-calendar__panel--warning {
    border-color: #f0b849;
    background: #fffbf2;
    margin: 0 0 10px;
}

.taildesk-admin-calendar__panel--warning ul {
    margin-left: 18px;
}

.taildesk-admin-calendar__panel--error {
    border-color: #d63638;
    background: #fff7f7;
}

.taildesk-admin-calendar-grid {
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #fff;
    padding: 12px;
}

.taildesk-admin-calendar-grid__weekdays {
    list-style: none;
    margin: 0 0 8px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}

.taildesk-admin-calendar-grid__weekdays li {
    font-size: 12px;
    font-weight: 600;
    color: #50575e;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.taildesk-admin-calendar-grid__days {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}

.taildesk-admin-calendar-grid__day {
    border: 1px solid #dcdcde;
    border-radius: 6px;
    min-height: 180px;
    padding: 8px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.taildesk-admin-calendar-grid__day.is-empty {
    background: #f6f7f7;
    border-style: dashed;
}

.taildesk-admin-calendar-grid__day-header {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 36px;
}

.taildesk-admin-calendar-grid__day-number {
    font-weight: 700;
    color: #1d2327;
    line-height: 1.1;
}

.taildesk-admin-calendar-grid__date {
    font-size: 11px;
    color: #646970;
}

.taildesk-admin-calendar-grid__service-rows {
    display: grid;
    gap: 4px;
}

.taildesk-admin-calendar-grid__service-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 3px;
    border: 1px solid #dcdcde;
    border-radius: 4px;
    padding: 4px 6px;
}

.taildesk-admin-calendar-grid__service-name {
    font-size: 12px;
    font-weight: 600;
    color: #1d2327;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.taildesk-admin-calendar-grid__service-state {
    font-size: 11px;
    font-weight: 600;
}

.taildesk-admin-calendar-grid__service-meta {
    font-size: 11px;
    color: #50575e;
}

.taildesk-admin-calendar-grid__service-google {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    font-size: 10px;
    font-weight: 600;
    color: #1f4f99;
    background: #e9f1ff;
    border: 1px solid #c7dcff;
    border-radius: 3px;
    padding: 1px 5px;
}

.taildesk-admin-calendar-grid__service-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.taildesk-admin-calendar-grid__bookings-link {
    font-size: 11px;
    text-decoration: none;
}

.taildesk-admin-calendar-grid__bookings-link:hover,
.taildesk-admin-calendar-grid__bookings-link:focus {
    text-decoration: underline;
}

.taildesk-admin-calendar-grid__add-link {
    line-height: 1.3;
    min-height: 22px;
    padding: 0 8px;
}

.taildesk-admin-calendar-grid__service-row.is-available {
    background: #f7fcf8;
    border-color: #b8e3c7;
}

.taildesk-admin-calendar-grid__service-row.is-available .taildesk-admin-calendar-grid__service-state {
    color: #0f5132;
}

.taildesk-admin-calendar-grid__service-row.is-limited {
    background: #fffbf2;
    border-color: #f5deb2;
}

.taildesk-admin-calendar-grid__service-row.is-limited .taildesk-admin-calendar-grid__service-state {
    color: #8a5a00;
}

.taildesk-admin-calendar-grid__service-row.is-full {
    background: #fff7f7;
    border-color: #f2c6cb;
}

.taildesk-admin-calendar-grid__service-row.is-full .taildesk-admin-calendar-grid__service-state {
    color: #7a1c22;
}

.taildesk-admin-calendar-summary {
    margin-top: 14px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #fff;
    padding: 12px;
}

.taildesk-admin-calendar-summary__title {
    margin: 0 0 8px;
    font-size: 14px;
}

.taildesk-admin-calendar-summary__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.taildesk-admin-calendar-summary__item {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    border: 1px solid #dcdcde;
    border-radius: 6px;
    padding: 8px 10px;
    background: #f6f7f7;
}

.taildesk-admin-calendar-summary__service {
    font-weight: 600;
    color: #1d2327;
}

.taildesk-admin-calendar-summary__value {
    color: #2c3338;
    white-space: nowrap;
}

@media (max-width: 782px) {
    .taildesk-admin-calendar__service-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .taildesk-admin-calendar-summary__list {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .taildesk-admin-calendar-grid__weekdays,
    .taildesk-admin-calendar-grid__days {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
