/* --- Стили для V12.2 ("Premium UI" + Mobile Modal Center Fix) --- */

/* --- 1. Общие переменные --- */
:root {
    --ps-primary-color: #4f46e5; /* Indigo 600 */
    --ps-primary-hover: #4338ca; /* Indigo 700 */
    --ps-primary-light: #e0e7ff; /* Indigo 100 */
    --ps-success-color: #10b981; /* Emerald 500 */
    --ps-danger-color: #ef4444; /* Red 500 */
    --ps-text-color: #1f2937; /* Gray 800 */
    --ps-text-secondary: #4b5563; /* Gray 600 */
    --ps-text-muted: #9ca3af; /* Gray 400 */
    --ps-border-color: #e5e7eb; /* Gray 200 */
    --ps-border-light: #f3f4f6; /* Gray 100 */
    --ps-light-bg: #f9fafb; /* Gray 50 */
    --ps-white: #ffffff;
    --ps-border-radius-lg: 12px;
    --ps-border-radius-md: 8px;
    --ps-border-radius-sm: 6px;
    --ps-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.06);
    --ps-shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.1);
    --ps-card-padding-y: 16px;
    --ps-card-padding-x: 20px;
    --ps-font-family: inherit;
}

/* --- 2. Основной контейнер --- */
.schedule-editor-container {
    max-width: 750px; margin: 2rem auto; background: var(--ps-white);
    border: 1px solid var(--ps-border-color); border-radius: var(--ps-border-radius-lg);
    box-shadow: var(--ps-shadow-md); overflow: hidden; font-family: var(--ps-font-family);
}
#ps-schedule { display: grid; gap: 0; }

/* --- 3. Иконки SVG --- */
.ps-icon { width: 1.1em; height: 1.1em; stroke-width: 2; vertical-align: -0.175em; display: inline-block; }

/* --- 4. Карточка дня --- */
.ps-day-card { border-bottom: 1px solid var(--ps-border-color); transition: background-color 0.3s ease; }
.ps-day-card:last-child { border-bottom: none; }
.ps-day-card.ps-day-disabled { background-color: var(--ps-light-bg); opacity: 0.7; }
.ps-day-card.ps-day-disabled .ps-day-header { cursor: pointer; }

/* --- 5. Шапка карточки --- */
.ps-day-header { display: flex; justify-content: space-between; align-items: center; padding: var(--ps-card-padding-y) var(--ps-card-padding-x); cursor: pointer; }
.ps-day-header h3 { margin: 0; font-size: 1rem; font-weight: 600; color: var(--ps-text-color); letter-spacing: -0.2px; }

/* --- 6. Toggle-свитч (iOS) --- */
.ps-toggle { position: relative; display: inline-block; width: 44px; height: 26px; flex-shrink: 0; }
.ps-toggle input { opacity: 0; width: 0; height: 0; }
.ps-toggle .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #e9e9eb; transition: 0.4s; border-radius: 34px; }
.ps-toggle .slider:before { position: absolute; content: ""; height: 22px; width: 22px; left: 2px; bottom: 2px; background-color: white; transition: 0.4s; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
.ps-toggle input:checked + .slider { background-color: var(--ps-success-color); }
.ps-toggle input:checked + .slider:before { transform: translateX(18px); }

/* --- 7. Контент (таблица, футер) --- */
.ps-card-content { display: none; padding: 0 var(--ps-card-padding-x) var(--ps-card-padding-y) var(--ps-card-padding-x); }
.ps-table-wrap { margin-top: 8px; }
.ps-periods { width: 100%; border-collapse: collapse; }
.ps-periods tr { border-bottom: 1px solid var(--ps-border-light); }
.ps-periods tr:last-child { border-bottom: none; }
.ps-periods td { padding: 10px 0; vertical-align: middle; border: none !important; }
.ps-periods td:first-child { width: 100%; padding-right: 10px; }
.ps-periods td:last-child { width: auto; white-space: nowrap; }

/* Отображение сохраненного времени */
.ps-period-text { font-weight: 500; font-size: 0.95rem; color: var(--ps-text-color); letter-spacing: 0.2px; padding-left: 4px; display: flex; align-items: center; }
.ps-period-text .ps-edit-sep { color: var(--ps-text-muted); font-weight: 400; font-size: 1rem; margin: 0 6px; }

/* --- 8. Плейсхолдер (пустой день) --- */
.ps-empty-placeholder { display: none; padding: 20px; text-align: center; background: none; border: none; border-radius: var(--ps-border-radius-md); color: var(--ps-text-muted); margin: 5px 0; }
.ps-empty-placeholder span { font-weight: 500; color: var(--ps-text-color); display: block; font-size: 0.9rem; }
.ps-empty-placeholder p { font-size: 0.8rem; margin: 2px 0 0 0; }

/* --- 9. Режим Редактирования --- */
td.ps-edit-cell { display: flex; align-items: center; gap: 8px; padding: 8px 0 !important; width: 100%; }
td.ps-edit-cell .ps-time-picker { flex-grow: 1; flex-basis: 0; }
span.ps-edit-sep { color: var(--ps-text-muted); font-weight: 400; font-size: 1rem; }

/* --- 10. Кастомный Селектор Времени --- */
.ps-time-picker { position: relative; }
.ps-time-input { display: flex; justify-content: space-between; align-items: center; padding: 8px 10px; background: var(--ps-light-bg); border: 1.5px solid transparent; border-radius: var(--ps-border-radius-md); cursor: pointer; transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s; }
.ps-time-input:hover { background-color: #f0f1f3; }
.ps-time-picker.is-open .ps-time-input, .ps-time-input:focus-within { background-color: var(--ps-white); border-color: var(--ps-primary-color); box-shadow: 0 0 0 3px var(--ps-primary-light); outline: none; }
.ps-time-input .time-text { font-size: 0.95rem; font-weight: 500; color: var(--ps-text-color); letter-spacing: 0.2px; }
.ps-time-input .ps-icon-clock { color: var(--ps-text-muted); stroke-width: 1.8; font-size: 0.9rem; }
.ps-time-dropdown { display: none; position: absolute; top: calc(100% + 4px); left: 0; width: 100%; max-height: 200px; overflow-y: auto; background: var(--ps-white); border: 1px solid rgba(0,0,0,0.08); border-radius: var(--ps-border-radius-md); box-shadow: var(--ps-shadow-lg); z-index: 100; }
.ps-time-picker.is-open .ps-time-dropdown { display: block; }
.ps-time-dropdown ul { list-style: none; padding: 5px; margin: 0; }
.ps-time-dropdown li.time-option { padding: 7px 10px; font-size: 0.9rem; font-weight: 500; border-radius: calc(var(--ps-border-radius-md) - 3px); cursor: pointer; transition: background-color 0.1s, color 0.1s; }
.ps-time-dropdown li.time-option:hover { background-color: var(--ps-light-bg); color: var(--ps-text-color); }
.ps-time-dropdown li.time-option.is-selected { background-color: var(--ps-primary-color); color: var(--ps-white); }
.ps-time-dropdown li.time-option.is-disabled { background-color: transparent; color: #cbd5e1; cursor: not-allowed; opacity: 0.8; }
.ps-time-dropdown li.time-option.is-disabled:hover { background-color: transparent; }
.ps-time-dropdown::-webkit-scrollbar { width: 5px; }
.ps-time-dropdown::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }

/* --- 11. Кнопки действий (Edit/Delete/Save/Cancel) --- */
.ps-action-cell { width: 70px; white-space: nowrap; text-align: right; padding-right: 0; vertical-align: middle; position: relative; }
.ps-action-cell-inner { display: inline-flex; align-items: center; gap: 4px; }
.ps-btn-icon { background: transparent; border: none; cursor: pointer; font-size: 0.95rem; padding: 4px; opacity: 0.6; border-radius: 50%; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; transition: opacity 0.2s, background-color 0.2s; color: var(--ps-text-muted); }
.ps-btn-icon:hover { opacity: 1; background-color: #e5e7eb; color: var(--ps-text-secondary); }
.ps-btn-icon .ps-icon-trash:hover { color: var(--ps-danger-color); background-color: #fee2e2; }
.ps-btn-icon .ps-icon-edit:hover { color: var(--ps-primary-color); background-color: var(--ps-primary-light); }
.ps-btn-icon .ps-icon-check { color: var(--ps-success-color); font-size: 1.1rem; stroke-width: 2.5; }
.ps-btn-icon .ps-icon-x { color: var(--ps-text-secondary); font-size: 1.1rem; stroke-width: 2.5; }

/* --- 12. Футер карточки (кнопки) --- */
.ps-day-footer { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; padding-top: 15px; border-top: 1px solid var(--ps-border-light); margin-top: 10px; }
.ps-footer-actions-left { display: flex; gap: 10px; flex-wrap: wrap; }
.ps-footer-actions-right { flex-shrink: 0; }
.ps-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-weight: 600; font-size: 0.85rem; padding: 8px 14px; border: 1.5px solid transparent; border-radius: var(--ps-border-radius-md); cursor: pointer; transition: all 0.2s ease; letter-spacing: 0.2px; }
.ps-btn .ps-icon { font-size: 1em; }
.ps-btn:disabled { opacity: 0.7; cursor: not-allowed; }
.ps-btn.ps-btn-primary { background-color: var(--ps-primary-color); border-color: var(--ps-primary-color); color: var(--ps-white); }
.ps-btn.ps-btn-primary:hover { background-color: var(--ps-primary-hover); border-color: var(--ps-primary-hover); }
.ps-btn.ps-btn-primary:focus { box-shadow: 0 0 0 3px var(--ps-primary-light); outline: none; }
.ps-btn.ps-btn-secondary { background-color: var(--ps-white); border-color: var(--ps-border-color); color: var(--ps-text-secondary); }
.ps-btn.ps-btn-secondary:hover { background-color: var(--ps-light-bg); border-color: #adb5bd; color: var(--ps-text-color); }
.ps-btn.ps-btn-secondary:focus { box-shadow: 0 0 0 3px #f1f3f5; outline: none; }
.ps-day-footer .ps-clear-all { font-size: 1rem; }

/* --- 13. Кнопка "Save Schedule" --- */
.ps-actions { margin-top: 0; text-align: right; padding: 14px var(--ps-card-padding-x); background: var(--ps-light-bg); border-top: 1px solid var(--ps-border-color); border-bottom-left-radius: var(--ps-border-radius-lg); border-bottom-right-radius: var(--ps-border-radius-lg); }
.ps-btn-save-all { font-size: 0.9rem; padding: 10px 20px; border-radius: var(--ps-border-radius-md); font-weight: 700; }
.ps-btn-save-all.is-saved { background-color: var(--ps-success-color); border-color: var(--ps-success-color); }
.ps-btn-save-all.is-error { background-color: var(--ps-danger-color); border-color: var(--ps-danger-color); }

/* --- 14. Модальное окно "Copy to..." (Центрирование через Transform) --- */
.ps-modal-overlay {
    position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(17, 24, 39, 0.6); backdrop-filter: blur(4px);
    z-index: 10000;
    opacity: 0; visibility: hidden; transition: opacity 0.25s ease, visibility 0s linear 0.25s;
    display: none; /* Изначально скрыто */
}
.ps-modal-overlay[style*="display: block"] {
    opacity: 1; visibility: visible; transition: opacity 0.25s ease, visibility 0s linear 0s;
}
.ps-modal {
    position: fixed; top: 50%; left: 50%;
    transform: translate(-50%, -50%) scale(0.98);
    background: var(--ps-white); border-radius: var(--ps-border-radius-lg); box-shadow: var(--ps-shadow-lg);
    max-width: 460px; width: calc(100% - 32px); display: flex; flex-direction: column;
    max-height: calc(100vh - 40px); overflow: hidden;
    opacity: 0; transition: transform 0.25s ease, opacity 0.25s ease;
}
.ps-modal-overlay[style*="display: block"] .ps-modal {
    transform: translate(-50%, -50%) scale(1); opacity: 1;
}
.ps-modal-header { padding: 16px 20px; border-bottom: 1px solid var(--ps-border-light); display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; }
.ps-modal-header h4 { margin: 0; font-size: 1.05rem; font-weight: 600; color: #1f2340; }
.ps-modal-close { background: none; border: none; font-size: 1.5rem; cursor: pointer; color: #6b7280; padding: 5px; line-height: 1; }
.ps-modal-close:hover { color: var(--ps-accent-hover); }
.ps-modal-body { padding: 20px; overflow-y: auto; flex-grow: 1; }
.ps-copy-controls { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.ps-copy-controls .ps-btn { padding: 5px 10px !important; font-size: 0.85rem !important; font-weight: 500; }
#ps-copy-checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ps-copy-label { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1.5px solid var(--ps-border-light); border-radius: var(--ps-border-radius-md); cursor: pointer; transition: background 0.2s, border-color 0.2s; }
.ps-copy-label:hover { background: var(--ps-light-bg); border-color: var(--ps-border-color); }
.ps-copy-label span { font-weight: 500; font-size: 0.9rem; color: var(--ps-text-secondary); }
.ps-copy-label input[type="checkbox"] {padding: 0; width: 18px; height: 18px; flex-shrink: 0; cursor: pointer; border-radius: 4px; border: 1.5px solid var(--ps-border-color); appearance: none; -webkit-appearance: none; transition: background-color 0.2s, border-color 0.2s; }
.ps-copy-label input[type="checkbox"]:checked { background-color: var(--ps-primary-color); border-color: var(--ps-primary-color); background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); background-size: 100% 100%; background-position: center; background-repeat: no-repeat; }
.ps-modal-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--ps-border-light); background: var(--ps-light-bg); border-bottom-left-radius: var(--ps-border-radius-lg); border-bottom-right-radius: var(--ps-border-radius-lg); flex-shrink: 0; }

/* --- 15. Сообщение об ошибке --- */
.ps-card-error { display: none; color: #991b1b; background-color: #fee2e2; border: 1px solid #fecaca; border-radius: var(--ps-border-radius-md); padding: 10px 15px; margin-top: 15px; font-size: 0.9rem; font-weight: 500; }

/* --- 16. Адаптивность --- */
@media (max-width: 767px) {
    .schedule-editor-container { border: none; box-shadow: none; background: none; margin: 0.5rem 0; }
    .ps-day-card { background: var(--ps-white); border: 1px solid var(--ps-border-color); box-shadow: 0 2px 8px rgba(0,0,0,0.05); border-radius: var(--ps-border-radius-md); margin-bottom: 1rem; }
    .ps-day-header { padding: 14px 16px; }
    .ps-card-content { padding: 0 16px 16px 16px; }
    .ps-periods td { padding: 10px 0px; }
    .ps-action-cell { width: 65px; gap: 2px; }
    .ps-btn-icon { width: 26px; height: 26px; font-size: 0.9rem; }
    td.ps-edit-cell { flex-direction: column; align-items: stretch; gap: 8px; }
    span.ps-edit-sep { transform: rotate(90deg); margin: -4px 0; align-self: center; }
    .ps-day-footer { flex-direction: column; align-items: stretch; }
    .ps-footer-actions-left { order: 1; flex-direction: column; }
    .ps-footer-actions-right { order: 2; text-align: center; margin-top: 5px; }
    .ps-actions { padding: 15px; position: sticky; bottom: 0; background: var(--ps-white); border-top: 1px solid var(--ps-border-color); box-shadow: 0 -4px 12px rgba(0,0,0,0.05); margin-top: 0; border-radius: 0; }
    .ps-btn-save-all { width: 100%; }
    #ps-copy-checklist { grid-template-columns: 1fr; }
    /* **ИСПРАВЛЕНИЕ V12.2: Убираем margin у модалки на мобильных** */
    .ps-modal {
        max-width: calc(100vw - 30px);
        /* margin: 1rem; <-- УДАЛЕНО */
    }
    .ps-time-input .time-text, .ps-time-dropdown li.time-option { font-size: 0.9rem; }
}

/* --- Стили из твоего блока (возможно, для других модалок/элементов) --- */
/* Оставляем их, но без .nice-select */
.custom-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 9999; }
.custom-modal.active { display: flex !important; align-items: center; justify-content: center; }
.custom-modal__container { max-width: 500px; width: 90%; }
.custom-modal__content { background: #fff; border-radius: 8px; overflow: hidden; }

#csc-cards-container { display: flex; flex-wrap: wrap; margin-top: 2rem; }
.my_profile__visa { flex: 1 1 calc(50% - 1.5rem); min-width: 320px; background: #fff5f5; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); padding: 1.5rem; transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; justify-content: space-between; }
.my_profile__visa:hover { transform: translateY(-4px); box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.my_profile__visa-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.my_profile__visa-header h5 { font-size: 1.25rem; color: #2d0353; margin: 0; }
.my_profile__visa-header .action-buttons { display: flex; gap: 0.5rem; }
.my_profile__visa-number { margin-bottom: 1rem; }
.my_profile__visa-number span { display: block; }
.my_profile__visa-number span:first-child { font-weight: 500; color: #333; }
.my_profile__visa-number span:last-child { color: #666; }
.csc-set-primary { align-self: flex-start; padding: 0.5rem 1rem; border-radius: 6px; font-size: 0.875rem; transition: all .2s; }
.csc-set-primary.btn-outline-primary { background: transparent; border: 1px solid #3182ce; color: #3182ce; }
.csc-set-primary.btn-outline-primary:hover { background: #3182ce; color: #fff; }
.csc-set-primary.btn-primary { background: #3182ce; border: none; color: #fff; }
.csc-edit, .csc-delete { background: none; border: none; cursor: pointer; font-size: 1.2rem; color: #555; transition: color .2s; }
.csc-edit:hover { color: #2d0353; }
.csc-delete:hover { color: #e53e3e; }
@media (max-width: 576px) { .my_profile__visa { flex: 1 1 100%; min-width: auto; } }

.custom-modal { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(34, 33, 61, 0.07); z-index: 9999; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.custom-modal__content { background: #fff; border-radius: 22px; box-shadow: 0 10px 40px 0 rgba(47, 43, 61, 0.12); padding: 40px 32px 32px 32px; max-width: 410px; width: 100%; position: relative; animation: modalFadeIn .22s; }
@keyframes modalFadeIn { 0% {transform: scale(.97) translateY(60px); opacity:0;} 100% {transform: scale(1) translateY(0); opacity:1;} }
.custom-modal__close { position: absolute; top: 18px; right: 20px; background: none; border: none; font-size: 2rem; color: #241c35; cursor: pointer; transition: color .2s; line-height: 1; }
.custom-modal__close:hover { color: #FF6B41; }
.custom-modal__title { font-family: inherit; font-size: 2rem; font-weight: 800; color: #241c35; margin-bottom: 20px; letter-spacing: -0.5px; }
.custom-modal__label { display: block; font-weight: 700; color: #241c35; margin-bottom: 0.6em; font-size: 1.08em; }
.custom-modal__stars-list { display: flex; gap: 7px; margin-bottom: 14px; }
.custom-modal__stars-list .review-star { font-size: 2.2rem; color: #FF8857; opacity: 0.6; cursor: pointer; transition: color .12s, opacity .13s; }
.custom-modal__stars-list .review-star.selected, .custom-modal__stars-list .review-star:hover, .custom-modal__stars-list .review-star.selected ~ .review-star { color: #FF8857; opacity: 1; }
.custom-modal__textarea { width: 100%; border: 1.5px solid #e9e5e9; border-radius: 13px; padding: 14px; font-size: 1em; color: #2b2347; resize: vertical; background: #faf9fb; transition: border-color .16s; min-height: 90px; }
.custom-modal__textarea:focus { border-color: #FF8857; outline: none; }
.custom-modal__submit { width: 100%; margin-top: 14px; background: #241c35; color: #fff; font-weight: 800; border: none; border-radius: 16px; padding: 13px 0; font-size: 1.08em; cursor: pointer; transition: background .19s; letter-spacing: 0.2px; }
.custom-modal__submit:hover { background: #3e2b58; }
.custom-modal__success { color: #12b67c; font-size: 1.1em; text-align: center; margin-top: 22px; font-weight: 700; letter-spacing: 0.2px; }
.wpsec_captcha_wrapper { display: none; }