/**
 * Registration Form Styles — ca-form-registration.css
 *
 * Стили формы регистрации [ca_form_registration].
 * Общие стили форм (fl-field, fieldset-inline, agree-card, toggle, модалка)
 * находятся в ca-form-base.css.
 *
 * CSS-переменные --color-primary, --color-primary-rgb, --color-primary-25
 * задаются глобально на :root через modules/core/color-schemes.php.
 *
 * Зависимость: assets/css/ca-form-base.css (общие стили форм).
 *
 * @version 2.7.0
 * @date    2026-02-18
 */

/* ================================================================
 * 1. ЗАГОЛОВКИ БЛОКОВ ФОРМЫ (.fr-block)
 * ================================================================ */
.fr-block h3 { font-size: 22px !important; line-height: 28px !important; margin-bottom: 25px !important; padding-bottom: 15px !important; display: block !important; border-bottom: 1px solid #f3f4f5; }
.fr-block { margin-bottom: 50px; }
.section-hint { font-size: 14px; line-height: 1.6; color: #888; margin: 0 0 18px 0; font-weight: 400; letter-spacing: 0.01em; }
.section-hint-sub { font-size: 12px; line-height: 18px; opacity: .5; font-weight: 300; }

/* ================================================================
 * 2. КАРТОЧКИ ТИПА УЧАСТИЯ — доп. стили тарифов
 * ================================================================ */
/* Список фич в карточке тарифа */
.tariff-features { list-style: none !important; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid #eee; font-size: 13px; line-height: 18px; color: #666; }
.tariff-features li { list-style: none !important; margin-bottom: 8px; padding-left: 0; font-size: 13px; color: #666; }
.fieldset-inline label.checked .tariff-features li { color: #444; }

/* ================================================================
 * 3. СЕТКИ И КОНТЕЙНЕРЫ ФОРМЫ
 * ================================================================ */
.lichnie-dannie-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin-bottom: 15px; }
.soglashenie-grid { display: flex; gap: 15px; margin-bottom: 15px; }
.ca-form input,
.ca-form select { width: 100%; padding: .55rem .7rem; border: 1px solid #ccc; border-radius: 6px; font-size: 15px; transition: border .15s; box-shadow: none; box-sizing: border-box; }
.ca-form input.locked-field { background: #f6f6f6; color: #777; }
.ca-form label > span { vertical-align: middle; }
/* Две колонки формы регистрации */
.form-registration-container { display: flex; gap: 40px; margin-top: 0; }
.form-registration-leftbody,
.form-registration-rightbody {}

/* ================================================================
 * 4. FLOATING-LABEL — ПЕРЕОПРЕДЕЛЕНИЯ ДЛЯ РЕГИСТРАЦИИ
 *    Базовые .fl-field стили — в ca-form-base.css
 * ================================================================ */
/* Grid override — use .fl-field instead of label */
.lichnie-dannie-grid .fl-field { margin-bottom: 0; }
/* Keep old label+input style for ticket-slot grids */
.lichnie-dannie-grid input { border: 0 !important; border-bottom: 2px solid #ccc !important; border-radius: 0 !important; padding: 2% 8% !important; font-weight: 500 !important; font-family: 'Font' !important; background: transparent !important; box-shadow: 0 0 0 !important; }
.lichnie-dannie-grid input:focus { border-bottom: 2px solid var(--color-primary) !important; color: #000 !important; }
/* Override: .fl-field input gets floating-label styles instead of generic */
.lichnie-dannie-grid .fl-field input { padding: 22px 32px 8px 2px !important; font-size: 15px !important; }

/* ================================================================
 * 5. КОЛИЧЕСТВО БИЛЕТОВ И ТУМБЛЕР
 *    Базовые .toggle-label / .toggle-switch — в ca-form-base.css
 * ================================================================ */
.colvo-biletov { font-size: 14px !important; line-height: 22px !important; font-weight: 500; color: #555; display: flex; align-items: center; gap: 0; margin: 0; padding: 14px 0; border-top: 1px solid #eee; }
.colvo-biletov .colvo-label { font-size: 13px; color: #888; font-weight: 400; }
.tariff-calculation { text-align: left; color: #000; opacity: 1; padding: 10px 0 0; }
.tariff-calculation > div { margin: 4px 0; }

/* ================================================================
 * 8. КНОПКИ КОЛИЧЕСТВА (.qty-wrap, .btn-qty)
 *    Единая версия (дедупликация из ca_form_registration.php)
 * ================================================================ */
#ca-form-registration .btn-qty { background: #fff; color: #444; border: 1.5px solid #d0d0d0; width: 30px; height: 30px; border-radius: 50%; cursor: pointer; font-size: 16px; line-height: 1; transition: border-color .15s ease, background .15s ease; display: inline-flex; align-items: center; justify-content: center; padding: 0; flex-shrink: 0; box-shadow: 0 1px 3px rgba(0,0,0,.06); font-weight: 400; margin: 0; -webkit-appearance: none; -moz-appearance: none; appearance: none; user-select: none; -webkit-user-select: none; -moz-user-select: none; vertical-align: middle; }
#ca-form-registration .btn-qty:hover { border-color: var(--color-primary); color: var(--color-primary); background: #fafafa; }
#ca-form-registration .btn-qty:active { background: #f0f0f0; }
.qty-wrap { display: inline-flex; align-items: center; gap: 6px; margin-left: 10px; }
.qty-wrap input,
#ca-form-registration .qty-wrap input[type="text"] { opacity: 1 !important; position: static !important; width: 32px !important; height: auto !important; text-align: center; font-size: 17px; font-weight: 700; border: none !important; background: transparent !important; padding: 0 !important; margin: 0; color: #222; }

/* ================================================================
 * 9. ПРОМОКОД
 * ================================================================ */
.promo-code-block { margin-bottom: 40px; }
.promo-code-input-wrapper { display: flex; gap: 10px; margin-bottom: 15px; align-items: stretch; }
.promo-code-input-wrapper input { flex: 1; border: 2px solid #e0e0e0 !important; border-radius: 8px !important; padding: 12px 16px !important; font-size: 16px !important; font-weight: 500 !important; transition: border-color 0.3s; background: #fff !important; }
.promo-code-input-wrapper input:focus { border-color: var(--color-primary) !important; outline: none; }
.btn-apply-promo { background: var(--color-primary); color: white; border: none; padding: 12px 32px; font-size: 16px; font-weight: 600; border-radius: 8px; cursor: pointer; transition: all 0.3s ease; white-space: nowrap; }
.btn-apply-promo:hover { opacity: 0.9; transform: translateY(-2px); }
.btn-apply-promo:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
.promo-code-message { padding: 12px 16px; border-radius: 8px; font-size: 14px; font-weight: 500; margin-bottom: 10px; display: none; }
.promo-code-message.success { background: #e8f5e9; color: #2e7d32; border: 1px solid #81c784; display: block; }
.promo-code-message.error { background: #ffebee; color: #c62828; border: 1px solid #e57373; display: block; }
.promo-code-message.warning { background: #fff3e0; color: #e65100; border: 1px solid #ffb74d; display: block; white-space: pre-line; }
.btn-remove-promo { background: transparent; color: #d32f2f; border: 2px solid #d32f2f; padding: 10px 24px; font-size: 14px; font-weight: 600; border-radius: 8px; cursor: pointer; transition: all 0.3s ease; }
.btn-remove-promo:hover { background: #d32f2f; color: white; }
.promo-discount-row { color: #2e7d32; font-weight: 600; font-size: 0.95em; padding-left: 1em; margin-top: 5px; }

/* ================================================================
 * 10. PRICE STRIP — БИЛЕТНЫЕ КАРТОЧКИ
 * ================================================================ */
.price-strip { display: flex; overflow-x: auto; gap: 20px; margin: 1.2rem 0 1.5rem; padding: 6px 4px 14px; scroll-snap-type: x mandatory; }
.price-strip::-webkit-scrollbar { height: 4px; }
.price-strip::-webkit-scrollbar-thumb { background: #ccc; border-radius: 4px; }
/* Билетная карточка */
.p-ticket { flex: 0 0 46%; scroll-snap-align: start; display: flex; border-radius: 16px; overflow: visible; position: relative; background: #f7f7f8; box-shadow: 0 2px 8px rgba(0,0,0,.06); transition: all .25s; }
.p-ticket.dim { opacity: .6; }
.p-ticket.dim:hover { opacity: .85; }
.p-ticket.current { opacity: 1; box-shadow: none; }
/* Основное тело билета */
.p-ticket-body { flex: 1; padding: 35px 40px; min-width: 0; position: relative; background: #fff; border-radius: 16px 0 0 16px; }
.p-ticket.current .p-ticket-body { background: #fff; }
/* Шапка: месяц + год */
.p-ticket-header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px dashed #e0e0e0; }
.p-ticket.current .p-ticket-header { border-bottom-color: var(--color-primary-25); }
.p-ticket-month { font-size: 20px; font-weight: 800; color: #111; letter-spacing: -.3px; }
.p-ticket.current .p-ticket-month { color: var(--color-primary); }
.p-ticket.dim .p-ticket-month { color: #888; }
.p-ticket-year { font-size: 14px; font-weight: 500; color: #aaa; }
/* Цены */
.p-ticket-prices { display: flex; flex-direction: column; gap: 10px; }
.p-ticket-price-row { display: flex; justify-content: space-between; align-items: baseline; }
.p-ticket-tariff { font-size: 13px; color: #999; font-weight: 400; text-transform: uppercase; letter-spacing: .4px; }
.p-ticket-amount { font-size: 22px; font-weight: 800; color: #111; letter-spacing: -.5px; }
.p-ticket-amount small { font-size: 14px; font-weight: 500; color: #888; }
.p-ticket.dim .p-ticket-amount { color: #777; }
/* Выгода / рост цены */
.p-box-savings { margin-top: 14px; padding: 7px 12px; background: #e8f5e9; color: #2e7d32; border-radius: 6px; font-size: 12px; font-weight: 700; text-align: center; }
.p-box-increase { margin-top: 14px; padding: 7px 12px; background: #fff3e0; color: #e65100; border-radius: 6px; font-size: 12px; font-weight: 700; text-align: center; }

/* === Стаб (отрывная часть) === */
.p-ticket-stub { width: 88px; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 16px 10px; position: relative; background: #f2f3f5; border-radius: 0 16px 16px 0; border-left: 2px dashed #ddd; }
.p-ticket.current .p-ticket-stub { background: var(--color-primary); border-left-color: rgba(255,255,255,.3); }
/* Нотчи (полукруглые вырезы) */
.p-ticket-stub::before,
.p-ticket-stub::after { content: ''; position: absolute; left: -9px; width: 16px; height: 16px; border-radius: 50%; background: #fff; }
.p-ticket-stub::before { top: -8px; }
.p-ticket-stub::after  { bottom: -8px; }
.p-ticket-stub .p-box-days { margin: 0; font-size: 11px; color: rgba(255,255,255,.85); font-weight: 600; text-align: center; line-height: 1.3; }
.p-ticket-stub .p-box-days .p-box-days-num { display: block; font-size: 32px; font-weight: 900; color: #fff; line-height: 1; margin-bottom: 3px; }
.p-ticket-stub-label { font-size: 10px; text-transform: uppercase; letter-spacing: .5px; color: #aaa; font-weight: 600; margin-bottom: 3px; }
.p-ticket.current .p-ticket-stub-label { color: rgba(255,255,255,.7); }
.p-ticket-stub-value { font-size: 30px; font-weight: 900; color: #555; line-height: 1; }
.p-ticket.current .p-ticket-stub-value { color: #fff; }
.p-ticket-stub-unit { font-size: 11px; color: #aaa; font-weight: 500; margin-top: 3px; }
.p-ticket.current .p-ticket-stub-unit { color: rgba(255,255,255,.75); }

/* ================================================================
 * 11. EXTRA-CHECK (доп. чекбокс Да/Нет)
 * ================================================================ */
span#extra-check-text { margin-right: 35px; }
.extra-check-label .da { margin-right: 5px; padding: 5px 20px; background: #fff; border-radius: 4px; border: 2px solid #ccc; opacity: .3; transition: all .15s ease-out !important; }
.extra-check-label .net { margin-right: 5px; padding: 5px 20px; background: #fff; border-radius: 4px; border: 2px solid #ccc; transition: all .15s ease-out !important; }
.extra-check-label.checked .net { opacity: .3; }
.extra-check-label.checked .da { opacity: 1; border: 2px solid; border-color: var(--color-primary) !important; }
.extra-check-label { width: 100%; background: #f3f4f5; display: block; border: 2px solid #e0e0e0; border-radius: 10px; padding: 1rem; margin: 35px 0 15px; font-weight: 400; transition: .15s; cursor: pointer; box-sizing: border-box; }
.extra-check-label.checked { border-color: var(--color-primary); background: #fff; }
.extra-check-label input { opacity: 0; width: 0; height: 0; position: absolute; }
.extra-block { margin-top: 1rem; }

/* ================================================================
 * 12. КНОПКА ОТПРАВКИ И РЕЖИМЫ
 *     Единая версия submit (дедупликация)
 * ================================================================ */
#ca-form-registration button[type="submit"] { background: var(--color-primary); color: white; border: none; padding: 14px 40px; font-size: 18px; font-weight: 600; border-radius: 8px; cursor: pointer; margin-top: 1rem; transition: background-color .2s; }
#ca-form-registration button[type="submit"]:hover:not(:disabled) { opacity: 0.9; transform: translateY(-2px); }
#ca-form-registration button[type="submit"]:disabled { opacity: .5; cursor: not-allowed; }
.mode-btns { margin: 1.4rem 0; display: flex; gap: 1rem; flex-wrap: wrap; }
.mode { padding: .6rem 1.4rem; border: none; border-radius: 6px; font-weight: 600; cursor: pointer; background: #0052cc; color: #fff; }
.mode.alt { background: #666; }
.mode:hover { opacity: .93; }
.uchastniki { margin-top: 1.4rem; }
.p-group { margin: 1rem 0; padding: 1rem; border: 1px solid #eee; border-radius: 8px; }
.p-group h4 { margin: .25rem 0 .75rem; font-size: .95rem; }
.total { font-weight: 700; font-size: 1.2rem; margin: 1.4rem 0 .4rem; }
.breakdown div { margin: .25rem 0; }
.breakdown .discount-row { color: #d32f2f; font-size: 0.9em; padding-left: 1em; }
.form-message { margin-top: 1rem; font-weight: 500; }
.form-message.success { color: #0f9d58; }
.form-message.error { color: #d32f2f; }
/* legacy p-box styles removed — now using .p-ticket */
.price-strip { /* see ticket styles above */ }

/* ================================================================
 * 13. УЧАСТНИКИ / СТРОКИ ДАННЫХ (.p-row)
 * ================================================================ */
#ca-form-registration .p-row { border: 1px solid #ddd; padding: 12px; margin-bottom: 12px; border-radius: 6px; background: #f9f9f9; display: flex; gap: 15px; }
#ca-form-registration .p-row.locked-row { background: #e8f5e9; border-color: #4caf50; }
#ca-form-registration .p-row-left { flex: 0 0 35%; display: flex; flex-direction: column; gap: 10px; }
#ca-form-registration .p-row-right { flex: 1; min-width: 0; }
#ca-form-registration .p-row-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
#ca-form-registration .p-row-title { font-weight: 600; font-size: 14px; color: #555; }
#ca-form-registration .p-row .lichnie-dannie-grid { gap: 8px; }
#ca-form-registration .p-row .lichnie-dannie-grid input { padding: 8px 10px; font-size: 14px; }

/* ================================================================
 * 14. КНОПКИ УЧАСТНИКОВ
 * ================================================================ */
#ca-form-registration .btn-add-participant { background: var(--color-primary); color: white; border: none; padding: 12px 28px; font-size: 16px; font-weight: 600; border-radius: 6px; cursor: pointer; margin-top: 15px; }
#ca-form-registration .btn-add-participant:hover:not(:disabled) { opacity: 0.9; transform: translateY(-1px); }
#ca-form-registration .btn-add-participant:disabled { opacity: 0.5; cursor: not-allowed; }
#ca-form-registration .btn-remove-participant { background: var(--color-primary); color: white; border: none; padding: 6px 12px; font-size: 13px; border-radius: 4px; cursor: pointer; }
#ca-form-registration .btn-remove-participant:hover { opacity: 0.9; }
#ca-form-registration .tickets-info-text { font-size: 15px; line-height: 24px; color: #333; margin-bottom: 10px; }

/* ================================================================
 * 15. ТАРИФНЫЙ ТУМБЛЕР УЧАСТНИКА (.p-tariff-toggle)
 * ================================================================ */
#ca-form-registration .p-tariff-toggle { padding: 10px; background: #fff; border: 1px solid #ddd; border-radius: 4px; }
#ca-form-registration .p-tariff-toggle.required { border-color: var(--color-primary); background: #fff8f8; }
#ca-form-registration .p-tariff-toggle-label { font-size: 13px; color: #666; margin-bottom: 8px; display: block; font-weight: 500; }
#ca-form-registration .p-tariff-toggle .toggle-label { padding: 8px 0 !important; margin: 5px 0 !important; }
#ca-form-registration .p-tariff-toggle .toggle-label.disabled { opacity: 0.5; cursor: not-allowed; }
#ca-form-registration .p-tariff-toggle .toggle-label.disabled .toggle-switch { background: #e0e0e0 !important; }

/* ================================================================
 * 16. EMAIL CHECK MESSAGES
 * ================================================================ */
#ca-form-registration .email-check-message { margin-top: 8px; padding: 10px 12px; border-radius: 6px; font-size: 13px; line-height: 1.5; display: none; animation: slideDown 0.3s ease; }
#ca-form-registration .email-check-message.checking { display: block; background: #e3f2fd; color: #1976d2; border: 1px solid #90caf9; }
#ca-form-registration .email-check-message.success { display: block; background: #e8f5e9; color: #2e7d32; border: 1px solid #81c784; }
#ca-form-registration .email-check-message.error { display: block; background: #ffebee; color: #c62828; border: 1px solid #e57373; }
#ca-form-registration .email-check-message.warning { display: block; background: #fff3e0; color: #e65100; border: 1px solid #ffb74d; }
#ca-form-registration .email-check-message a { color: inherit; font-weight: 700; text-decoration: underline; }
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ================================================================
 * 17. БЛОКИРОВКА ТАРИФОВ
 * ================================================================ */
/* --- Заглушка выбора типа участия --- */
.participant-type-gate { position: relative; overflow: hidden; max-height: 320px; }
.participant-type-gate-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255,255,255,0.95); z-index: 10; display: flex; align-items: center; justify-content: center; cursor: not-allowed; border-radius: 8px; }
.participant-type-gate-message { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 28px 40px; background: #fff; border-radius: 16px; font-size: 15px; color: #666; text-align: center; max-width: 480px; box-shadow: 0 4px 24px rgba(0,0,0,.08); }
.participant-type-gate-message .lock-icon { font-size: 32px; }
.participant-type-gate-message .lock-paragraph { font-size: 16px; line-height: 1.7; color: #555; margin: 0; font-weight: 400; }
.participant-type-gate.unlocked { overflow: visible; max-height: none; }
.participant-type-gate.unlocked .participant-type-gate-overlay { display: none; }
#ca-form-registration .tariff-selection-block { position: relative; }
#ca-form-registration .tariff-locked-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255,255,255,0.95); z-index: 10; display: flex; align-items: center; justify-content: center; border-radius: 8px; cursor: not-allowed; }
#ca-form-registration .tariff-locked-message { display: flex; flex-direction: column; align-items: center; gap: 0; padding: 30px 40px; background: #fff; border-radius: 16px; font-size: 15px; color: #666; text-align: center; max-width: 520px; box-shadow: 0 4px 24px rgba(0,0,0,.08); }
#ca-form-registration .tariff-locked-message .lock-paragraph { font-size: 16px; line-height: 1.7; color: #555; margin: 0; font-weight: 400; }
#ca-form-registration .tariff-locked-message .lock-link { color: var(--color-primary); font-weight: 600; cursor: pointer; text-decoration: none; border-bottom: 1.5px dashed var(--color-primary); padding-bottom: 1px; transition: border-color .15s, color .15s; }
#ca-form-registration .tariff-locked-message .lock-link:hover { color: #111; border-bottom-color: #111; }
/* Hide promo, total and submit when tariff is locked */
#ca-form-registration.fields-locked .promo-code-block { display: none; }
#ca-form-registration.fields-locked .total { display: none; }
#ca-form-registration.fields-locked #submit-btn { display: none !important; }

/* ================================================================
 * 18. ГРУППЫ БИЛЕТОВ (офлайн / онлайн)
 * ================================================================ */
#ca-form-registration .tickets-group { background: #f9f9f9; border: 1px solid #e0e0e0; border-radius: 10px; padding: 20px; margin-bottom: 20px; }
#ca-form-registration .tickets-group.offline-group { border-left: 4px solid #4caf50; }
#ca-form-registration .tickets-group.online-group  { border-left: 4px solid #2196f3; }
#ca-form-registration .tickets-group-header h4 { margin: 0 0 15px; font-size: 17px; font-weight: 600; color: #333; display: flex; align-items: center; gap: 8px; }
#ca-form-registration .group-icon { font-size: 20px; }
#ca-form-registration .count-badge { background: var(--color-primary); color: white; padding: 2px 10px; border-radius: 12px; font-size: 13px; font-weight: 500; margin-left: auto; }
#ca-form-registration .slots-container { display: flex; flex-direction: column; gap: 12px; }

/* ================================================================
 * 19. СЛОТЫ БИЛЕТОВ
 * ================================================================ */
#ca-form-registration .ticket-slot { background: white; border: 1px solid #ddd; border-radius: 8px; padding: 15px; transition: all 0.2s ease; }
#ca-form-registration .ticket-slot:hover { border-color: #aaa; }
#ca-form-registration .ticket-slot.empty-slot { background: #fafafa; border-style: dashed; }
#ca-form-registration .ticket-slot.filled-slot { background: #fff; }
#ca-form-registration .ticket-slot.registrar-slot { background: #e8f5e9; border-color: #4caf50; }
/* Пустой слот */
#ca-form-registration .empty-slot-content { display: flex; align-items: center; justify-content: space-between; gap: 15px; flex-wrap: wrap; }
#ca-form-registration .empty-slot-text { color: #888; font-size: 14px; font-style: italic; }
#ca-form-registration .btn-add-participant-slot { background: var(--color-primary); color: white; border: none; padding: 8px 16px; font-size: 13px; font-weight: 500; border-radius: 5px; cursor: pointer; transition: all 0.2s ease; }
#ca-form-registration .btn-add-participant-slot:hover { opacity: 0.9; transform: translateY(-1px); }
/* Заполненный слот — шапка */
#ca-form-registration .filled-slot-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
#ca-form-registration .slot-number { font-weight: 600; font-size: 14px; color: #555; }
#ca-form-registration .slot-registrar-badge { background: #4caf50; color: white; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 500; margin-left: 8px; }
#ca-form-registration .slot-actions { display: flex; gap: 10px; align-items: center; }
#ca-form-registration .btn-delete-slot { background: none; border: none; color: #999; font-size: 12px; cursor: pointer; padding: 4px 8px; transition: all 0.2s ease; }
#ca-form-registration .btn-delete-slot:hover { color: #f44336; }
#ca-form-registration .btn-clear-slot { background: none; border: none; color: #888; font-size: 12px; cursor: pointer; padding: 4px 8px; transition: all 0.2s ease; }
#ca-form-registration .btn-clear-slot:hover { color: var(--color-primary); }
#ca-form-registration .btn-fill-test-slot { background: #fff3e0; border: none; color: #e65100; font-size: 11px; cursor: pointer; padding: 3px 8px; border-radius: 4px; transition: all 0.2s ease; }
#ca-form-registration .btn-fill-test-slot:hover { background: #ffe0b2; }
/* Поля участника в одну строку */
#ca-form-registration .participant-fields-row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }
#ca-form-registration .participant-fields-row input { padding: 10px; font-size: 14px; border: 1px solid #ddd; border-radius: 5px; width: 100%; box-sizing: border-box; }
#ca-form-registration .participant-fields-row input:focus { border-color: var(--color-primary); outline: none; }

/* ================================================================
 * 20. КНОПКИ ДОБАВЛЕНИЯ И ЗАПОЛНЕНИЯ БИЛЕТОВ
 * ================================================================ */
#ca-form-registration .btn-add-ticket { background: transparent; border: 2px dashed #ccc; color: #888; padding: 12px 20px; font-size: 14px; font-weight: 500; border-radius: 6px; cursor: pointer; margin-top: 15px; width: 100%; transition: all 0.2s ease; }
#ca-form-registration .btn-add-ticket:hover { border-color: var(--color-primary); color: var(--color-primary); background: rgba(var(--color-primary-rgb), .05); }
/* Кнопки заполнения слота регистратором */
#ca-form-registration .registrar-slot-buttons { display: flex; gap: 12px; flex-wrap: wrap; }
#ca-form-registration .btn-fill-slot { background: white; border: 2px solid #ddd; color: #555; padding: 12px 20px; font-size: 14px; font-weight: 500; border-radius: 6px; cursor: pointer; transition: all 0.2s ease; display: flex; align-items: center; gap: 8px; }
#ca-form-registration .btn-fill-slot:hover { border-color: var(--color-primary); color: var(--color-primary); }
#ca-form-registration .btn-fill-slot.btn-fill-offline:hover { border-color: #4caf50; color: #4caf50; }
#ca-form-registration .btn-fill-slot.btn-fill-online:hover { border-color: #2196f3; color: #2196f3; }
#ca-form-registration .btn-fill-slot:disabled { opacity: 0.5; cursor: not-allowed; }
#ca-form-registration .registrar-slot-message { padding: 10px; background: #fff3e0; border: 1px solid #ffb74d; border-radius: 6px; color: #e65100; font-size: 13px; }

/* ================================================================
 * 21. СВОДКА И ПРЕДУПРЕЖДЕНИЯ
 * ================================================================ */
#ca-form-registration .tickets-summary { padding: 15px; background: #e3f2fd; border-radius: 8px; margin-bottom: 15px; }
#ca-form-registration .tickets-summary-row { display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 5px; }
#ca-form-registration .tickets-summary-row:last-child { margin-bottom: 0; padding-top: 10px; border-top: 1px solid rgba(0,0,0,0.1); font-weight: 600; }
/* Сообщение о минимуме билетов */
#ca-form-registration .min-tickets-warning { background: #fff3e0; border: 1px solid #ffb74d; color: #e65100; padding: 12px 15px; border-radius: 6px; font-size: 13px; margin-top: 15px; display: none; }
#ca-form-registration .min-tickets-warning.show { display: block; animation: shake 0.3s ease; }
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}
/* Причина блокировки кнопки отправки */
#ca-form-registration .submit-block-reason { background: #ffebee; border: 1px solid #e57373; color: #c62828; padding: 12px 15px; border-radius: 6px; font-size: 13px; margin-top: 10px; display: none; }
#ca-form-registration .submit-block-reason.show { display: block; }

/* ================================================================
 * 22. СТАТУС EMAIL УЧАСТНИКА
 * ================================================================ */
#ca-form-registration .participant-email-status { margin-top: 8px; padding: 8px 12px; border-radius: 5px; font-size: 12px; line-height: 1.4; }
#ca-form-registration .participant-email-status.checking { background: #e3f2fd; color: #1976d2; border: 1px solid #90caf9; }
#ca-form-registration .participant-email-status.registered { background: #e8f5e9; color: #2e7d32; border: 1px solid #81c784; }
#ca-form-registration .participant-email-status.available { background: #fff3e0; color: #e65100; border: 1px solid #ffb74d; }
#ca-form-registration .participant-email-status.invalid { background: #f5f5f5; color: #757575; border: 1px solid #e0e0e0; }

/* ================================================================
 * 23. ТЕСТОВЫЕ ДАННЫЕ (временные, для отладки)
 * ================================================================ */
#ca-form-registration .test-data-buttons,
.form-registration-rightbody .test-data-buttons { margin-top: 15px; padding: 15px; background: #fff8e1; border: 1px dashed #ffc107; border-radius: 8px; }
#ca-form-registration .test-data-buttons-title,
.form-registration-rightbody .test-data-buttons-title { font-size: 12px; color: #f57c00; margin-bottom: 10px; font-weight: 500; }
#ca-form-registration .btn-test-data,
.form-registration-rightbody .btn-test-data { background: #ff9800; color: white; border: none; padding: 8px 16px; font-size: 13px; border-radius: 5px; cursor: pointer; margin-right: 10px; margin-bottom: 5px; }
#ca-form-registration .btn-test-data:hover,
.form-registration-rightbody .btn-test-data:hover { background: #f57c00; }

/* ================================================================
 * 24. БЛОК АВТОРИЗАЦИИ
 * ================================================================ */
.auth-info-block { margin-bottom: 30px; }
.auth-info-message { display: flex; align-items: center; gap: 20px; padding: 20px 25px; border-radius: 12px; border: 2px solid; background: #fff; }
.auth-info-message.logged-in { border-color: #4caf50; background-color: #f1f8f4; }
.auth-info-message.not-logged-in { border-color: #2196f3; background-color: #e3f2fd; }
.auth-info-message .auth-content { flex: 1; }
.auth-info-message .auth-content > span { display: block; font-size: 16px; font-weight: 600; margin-bottom: 5px; color: #333; }
.auth-info-message .auth-content p { margin: 0; font-size: 14px; color: #666; line-height: 1.5; }
.auth-info-message .btn-logout,
.auth-info-message .btn-login { padding: 10px 24px; border-radius: 8px; text-decoration: none; font-weight: 600; font-size: 14px; transition: all 0.2s ease; white-space: nowrap; border: 2px solid; }
.auth-info-message .btn-logout { background: #fff; color: #f44336; border-color: #f44336; }
.auth-info-message .btn-logout:hover { background: #f44336; color: #fff; }
.auth-info-message .btn-login { background: #2196f3; color: #fff; border-color: #2196f3; }
.auth-info-message .btn-login:hover { background: #1976d2; border-color: #1976d2; }

/* ================================================================
 * 19. АДАПТИВНЫЕ СТИЛИ РЕГИСТРАЦИИ
 *     Базовые (модалка, fl-field, form-row) — в ca-form-base.css
 * ================================================================ */

/* --- Floating labels grid + соглашения (768px) --- */
@media (max-width: 768px) {
.soglashenie-grid { flex-direction: column; }
.lichnie-dannie-grid .fl-field input { padding: 20px 28px 6px 2px !important; font-size: 14px !important; }
/* Авторизация */
.auth-info-message { flex-direction: column; text-align: center; gap: 15px; }
.auth-info-message .btn-logout,
.auth-info-message .btn-login { width: 100%; text-align: center; }
/* Participant fields */
#ca-form-registration .participant-fields-row { grid-template-columns: repeat(2, 1fr); }
}
/* --- Билетные карточки и grid (640px) --- */
@media (max-width: 640px) { .p-ticket { flex: 0 0 300px; } .p-ticket-amount { font-size: 19px; } .p-ticket-stub { width: 72px; } .p-ticket-stub-value { font-size: 24px; } .grid2 { grid-template-columns: 1fr !important; } .p-ticket { flex: 0 0 auto; width: 100%; } }
/* --- Participant fields (1200px) --- */
@media (max-width: 1200px) { #ca-form-registration .participant-fields-row { grid-template-columns: repeat(4, 1fr); }
}
/* --- Минимальные экраны (480px) --- */
@media (max-width: 480px) { #ca-form-registration .participant-fields-row { grid-template-columns: 1fr; }
}
