/**
 * Accommodation Registration Component Styles
 * Используем более специфичные селекторы для переопределения стилей шаблона
 */

/* Основной контейнер с высокой специфичностью */
body .com-accommodationregister.registration {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px 0;
}

body .com-accommodationregister .intro-text {
    margin-bottom: 30px !important;
    padding: 20px !important;
    background-color: #f8f9fa !important;
    border-radius: 8px !important;
}

/* Fieldset с повышенной специфичностью */
body .accommodation-register-form fieldset {
    border: 1px solid #e0e0e0 !important;
    border-radius: 8px !important;
    padding: 25px !important;
    margin-bottom: 25px !important;
    background-color: #f9f9f9 !important;
}

body .accommodation-register-form legend {
    font-size: 1.3em !important;
    font-weight: 600 !important;
    color: #333 !important;
    padding: 0 15px !important;
    width: auto !important;
    border: none !important;
    margin-bottom: 20px !important;
    float: none !important;
}

/* Control groups */
body .accommodation-register-form .control-group {
    margin-bottom: 20px !important;
}

body .accommodation-register-form .control-label {
    font-weight: 500 !important;
    margin-bottom: 8px !important;
    display: block !important;
}

body .accommodation-register-form .control-label label {
    display: inline-block !important;
    margin-bottom: 5px !important;
    color: #555 !important;
}

body .accommodation-register-form .control-label .star {
    color: #d9534f !important;
    margin-left: 3px !important;
}

/* Поля ввода с высокой специфичностью */
body .accommodation-register-form input[type="text"],
body .accommodation-register-form input[type="email"],
body .accommodation-register-form input[type="tel"],
body .accommodation-register-form input[type="url"],
body .accommodation-register-form input[type="password"],
body .accommodation-register-form select {
    width: 100% !important;
    padding: 10px 15px !important;
    padding-right: 45px !important; /* Место для кнопки показа пароля */
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    transition: border-color 0.3s, box-shadow 0.3s !important;
    background-color: #fff !important;
}

/* Контейнер для пароля с кнопкой */
body .accommodation-register-form .password-field-wrapper {
    position: relative !important;
}

body .accommodation-register-form .password-toggle {
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: none !important;
    border: none !important;
    color: #666 !important;
    cursor: pointer !important;
    padding: 5px !important;
    font-size: 18px !important;
    z-index: 10 !important;
}

body .accommodation-register-form .password-toggle:hover {
    color: #333 !important;
}

body .accommodation-register-form input:focus,
body .accommodation-register-form select:focus {
    border-color: #66afe9 !important;
    outline: 0 !important;
    box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25) !important;
}

body .accommodation-register-form input.invalid,
body .accommodation-register-form input.error {
    border-color: #d9534f !important;
    background-color: #fef5f5 !important;
}

/* Help blocks */
body .accommodation-register-form .help-block,
body .accommodation-register-form .form-control-feedback {
    font-size: 13px !important;
    color: #737373 !important;
    margin-top: 5px !important;
}

body .accommodation-register-form .invalid-feedback {
    color: #d9534f !important;
    font-size: 13px !important;
    margin-top: 5px !important;
    display: block !important;
}

/* Terms container с высокой специфичностью */
body .accommodation-register-form .terms-container {
    background-color: #f8f9fa !important;
    padding: 20px !important;
    border-radius: 8px !important;
    border: 1px solid #dee2e6 !important;
    margin-top: 20px !important;
}

body .accommodation-register-form .terms-container .control-group {
    margin-bottom: 15px !important;
}

/* Terms summary */
body .accommodation-register-form .terms-summary {
    margin-bottom: 15px !important;
    padding: 15px !important;
    background-color: #e3f2fd !important;
    border: 1px solid #90caf9 !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
}

body .accommodation-register-form .terms-summary h4 {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    font-size: 16px !important;
    color: #1976d2 !important;
}

/* Terms links */
body .accommodation-register-form .terms-links {
    margin-top: 10px !important;
    font-size: 14px !important;
}

body .accommodation-register-form .terms-links a {
    color: #337ab7 !important;
    text-decoration: none !important;
    transition: color 0.3s !important;
}

body .accommodation-register-form .terms-links a:hover {
    color: #23527c !important;
    text-decoration: underline !important;
}

body .accommodation-register-form .terms-links .separator {
    margin: 0 10px !important;
    color: #ccc !important;
}

/* Checkbox styling - ВАЖНО для отображения чекбокса */
body .accommodation-register-form input[type="checkbox"] {
    width: auto !important;
    height: auto !important;
    margin-right: 8px !important;
    vertical-align: middle !important;
    position: relative !important;
    opacity: 1 !important;
    visibility: visible !important;
}

body .accommodation-register-form .checkbox label,
body .accommodation-register-form label.checkbox {
    display: inline-block !important;
    font-weight: normal !important;
    margin-bottom: 0 !important;
    padding-left: 0 !important;
}

/* Availability indicators */
body .username-availability,
body .email-availability {
    margin-top: 5px !important;
    font-size: 13px !important;
    min-height: 20px !important;
}

body .username-availability .text-success,
body .email-availability .text-success {
    color: #5cb85c !important;
}

body .username-availability .text-danger,
body .email-availability .text-danger {
    color: #d9534f !important;
}

/* Form actions */
body .accommodation-register-form .form-actions {
    margin-top: 30px !important;
    text-align: center !important;
}

body .accommodation-register-form .btn-primary {
    background-color: #007bff !important;
    border-color: #007bff !important;
    color: white !important;
    padding: 12px 40px !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    border-radius: 5px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 2px 4px rgba(0,123,255,.25) !important;
}

body .accommodation-register-form .btn-primary:hover {
    background-color: #0056b3 !important;
    border-color: #0056b3 !important;
    box-shadow: 0 4px 8px rgba(0,123,255,.35) !important;
    transform: translateY(-1px) !important;
}

body .accommodation-register-form .btn-primary:disabled {
    opacity: 0.65 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

/* Message container */
body .message-container {
    margin-top: 20px !important;
    border-radius: 4px !important;
}

body .message-container.alert-success {
    background-color: #d4edda !important;
    border-color: #c3e6cb !important;
    color: #155724 !important;
}

body .message-container.alert-danger,
body .message-container.alert-error {
    background-color: #f8d7da !important;
    border-color: #f5c6cb !important;
    color: #721c24 !important;
}

/* Captcha container */
body .accommodation-register-form .captcha-container {
    margin-top: 20px !important;
    padding: 15px !important;
    background-color: #f8f9fa !important;
    border-radius: 4px !important;
}

/* Modal styling */
body .modal-body iframe {
    border: none !important;
    min-height: 500px !important;
}

/* Loading spinner */
body .spinner-border {
    display: inline-block !important;
    width: 1rem !important;
    height: 1rem !important;
    vertical-align: text-bottom !important;
    border: 0.15em solid currentColor !important;
    border-right-color: transparent !important;
    border-radius: 50% !important;
    animation: spinner-border .75s linear infinite !important;
}

@keyframes spinner-border {
    to { transform: rotate(360deg); }
}

/* Responsive */
@media (max-width: 768px) {
    body .com-accommodationregister {
        padding: 10px !important;
    }
    
    body .accommodation-register-form fieldset {
        padding: 15px !important;
    }
    
    body .accommodation-register-form .row {
        margin: 0 !important;
    }
    
    body .accommodation-register-form .row .col-md-6 {
        padding: 0 !important;
    }
}
/* Добавьте в файл media/css/accommodationregister.css */

/* ИСПРАВЛЕНО: Стили для полей пароля с кнопкой показа */
body .accommodation-register-form .password-group {
    position: relative !important;
    display: flex !important;
    width: 100% !important;
}

body .accommodation-register-form input[type="password"],
body .accommodation-register-form input[type="text"].password-field {
    padding-right: 45px !important;
}

/* Фикс для input-group в Joomla 5 */
body .accommodation-register-form .input-group {
    position: relative !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    width: 100% !important;
}

body .accommodation-register-form .input-group > input {
    position: relative !important;
    flex: 1 1 auto !important;
    width: 1% !important;
    min-width: 0 !important;
}

body .accommodation-register-form .input-group-append,
body .accommodation-register-form .input-group-text {
    display: flex !important;
    align-items: center !important;
    padding: 0.375rem 0.75rem !important;
    margin-left: -1px !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    color: #495057 !important;
    text-align: center !important;
    white-space: nowrap !important;
    background-color: #e9ecef !important;
    border: 1px solid #ced4da !important;
    border-radius: 0 0.25rem 0.25rem 0 !important;
}

body .accommodation-register-form .input-group > input:first-child {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

/* Убираем лишние отступы */
body .accommodation-register-form .control-group {
    max-width: 100% !important;
}

/* Адаптивность для мобильных */
@media (max-width: 768px) {
    body .accommodation-register-form input[type="password"],
    body .accommodation-register-form input[type="text"],
    body .accommodation-register-form input[type="email"],
    body .accommodation-register-form input[type="tel"],
    body .accommodation-register-form select {
        font-size: 16px !important; /* Предотвращает зум на iOS */
    }
}
/* Стили для админ-панели */
.com-accommodationregister .filter-search-bar {
    margin-bottom: 20px;
    padding: 15px;
    background-color: #f8f9fa;
    border-radius: 4px;
}

.com-accommodationregister .table th a {
    color: #495057;
    text-decoration: none;
}

.com-accommodationregister .table th a:hover {
    color: #007bff;
}

.com-accommodationregister .table th a:after {
    content: "\f0dc";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 5px;
    opacity: 0.3;
}

.com-accommodationregister .table th a.active:after {
    opacity: 1;
}

.com-accommodationregister .table th a.active.asc:after {
    content: "\f0de";
}

.com-accommodationregister .table th a.active.desc:after {
    content: "\f0dd";
}
/* Стили для админ-панели */
.com-accommodationregister .filter-search-bar {
    margin-bottom: 20px;
    padding: 15px;
    background-color: #f8f9fa;
    border-radius: 4px;
}

.com-accommodationregister .table th a {
    color: #495057;
    text-decoration: none;
}

.com-accommodationregister .table th a:hover {
    color: #007bff;
}

.com-accommodationregister .table th a:after {
    content: "\f0dc";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 5px;
    opacity: 0.3;
}

.com-accommodationregister .table th a.active:after {
    opacity: 1;
}

.com-accommodationregister .table th a.active.asc:after {
    content: "\f0de";
}

.com-accommodationregister .table th a.active.desc:after {
    content: "\f0dd";
}

/* Стили для ссылок на объекты */
.com-accommodationregister .table td a {
    color: #007bff;
    text-decoration: none;
}

.com-accommodationregister .table td a:hover {
    text-decoration: underline;
}
