/* ============================================
   ESTILOS MÓVIL PARA FORMULARIOS
   Archivo separado para garantizar carga
   ============================================ */

@media screen and (max-width: 768px) {
    /* Contenedor principal - evitar desbordamiento */
    .main-content {
        padding: 8px !important;
        overflow-x: hidden !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Reset contenedores */
    .form-container,
    #directoryForm,
    .form-panel,
    .unified-panel,
    .form-panel.unified-panel,
    .directory-form-container {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }

    /* Formulario directorio específico */
    #directoryForm {
        padding: 10px !important;
    }

    #directoryForm * {
        box-sizing: border-box !important;
        max-width: 100% !important;
    }

    /* Header del módulo */
    .module-header {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
        padding: 12px !important;
    }

    .module-header h2 {
        font-size: 1.1rem !important;
        text-align: center !important;
        margin: 0 !important;
    }

    .module-header .btn {
        width: 100% !important;
        justify-content: center !important;
        padding: 12px !important;
    }

    /* Paneles */
    .form-panel.unified-panel,
    .unified-panel {
        border-radius: 0 !important;
    }

    .panel-header {
        padding: 14px 12px !important;
        text-align: center !important;
    }

    .panel-header h3 {
        font-size: 0.9rem !important;
        justify-content: center !important;
        flex-wrap: wrap !important;
    }

    .panel-content {
        padding: 12px !important;
    }

    /* Secciones */
    .form-section-unified {
        padding: 10px 0 !important;
    }

    .section-header {
        margin-bottom: 15px !important;
    }

    .section-header h4 {
        font-size: 0.85rem !important;
        text-align: center !important;
        justify-content: center !important;
    }

    /* Filas de formulario - VERTICAL */
    .form-row-flex {
        display: flex !important;
        flex-direction: column !important;
        gap: 15px !important;
    }

    .form-row-flex > div,
    .form-row-flex .fg-expand,
    .form-row-flex .fg-narrow,
    .form-row-flex .fg-narrow-md,
    .form-row-flex .fg-reside {
        width: 100% !important;
        flex: none !important;
        max-width: 100% !important;
        min-width: 100% !important;
    }

    /* Grid de formulario */
    .form-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 15px !important;
    }

    .form-column {
        width: 100% !important;
    }

    /* Grupos de input */
    .input-group-modern {
        width: 100% !important;
        margin-bottom: 0 !important;
    }

    /* Clases fg-* que pueden tener anchos fijos */
    .fg-expand,
    .fg-narrow,
    .fg-narrow-md,
    .fg-reside,
    .fg-small,
    .fg-medium,
    .fg-large,
    [class*="fg-"] {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }

    /* Panel content con padding controlado */
    .unified-panel .panel-content,
    .form-panel .panel-content {
        padding: 12px !important;
        overflow-x: hidden !important;
    }

    /* Secciones del formulario */
    .form-section-unified {
        width: 100% !important;
        overflow-x: hidden !important;
    }

    /* Labels */
    .label-modern {
        font-size: 14px !important;
        font-weight: 600 !important;
        margin-bottom: 8px !important;
        color: #374151 !important;
    }

    /* INPUTS - Tamaño táctil */
    .input-modern,
    .select-modern,
    .textarea-modern,
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="number"],
    input[type="password"],
    input[type="date"],
    select,
    textarea {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        min-height: 50px !important;
        padding: 14px 12px !important;
        font-size: 16px !important;
        border: 2px solid #e5e7eb !important;
        border-radius: 10px !important;
        background: #f9fafb !important;
        box-sizing: border-box !important;
        -webkit-appearance: none !important;
        appearance: none !important;
    }

    /* Inputs dentro de form-row-flex */
    .form-row-flex input,
    .form-row-flex select,
    .form-row-flex textarea {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .input-modern:focus,
    .select-modern:focus,
    .textarea-modern:focus,
    input:focus,
    select:focus,
    textarea:focus {
        border-color: #3b82f6 !important;
        background: white !important;
        outline: none !important;
        box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1) !important;
    }

    /* Select con flecha */
    .select-modern,
    select {
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important;
        background-position: right 12px center !important;
        background-repeat: no-repeat !important;
        background-size: 20px !important;
        padding-right: 40px !important;
    }

    /* Textarea */
    .textarea-modern,
    textarea {
        min-height: 100px !important;
        resize: vertical !important;
    }

    /* Botones de acción del formulario */
    .form-actions {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        padding: 16px 12px !important;
        background: white !important;
        border-top: 1px solid #e5e7eb !important;
        margin-top: 20px !important;
        position: sticky !important;
        bottom: 0 !important;
        z-index: 100 !important;
    }

    .form-actions button,
    .form-actions .btn {
        width: 100% !important;
        min-height: 50px !important;
        font-size: 16px !important;
        font-weight: 600 !important;
        border-radius: 10px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
    }

    .btn-primary {
        background: #3b82f6 !important;
        color: white !important;
        border: none !important;
    }

    .btn-secondary {
        background: #f3f4f6 !important;
        color: #374151 !important;
        border: 1px solid #d1d5db !important;
    }

    /* Toggle de residencia */
    .residence-toggle {
        flex-direction: column !important;
        gap: 10px !important;
    }

    .toggle-option {
        width: 100% !important;
    }

    .toggle-option .option-content {
        padding: 14px !important;
        justify-content: center !important;
    }

    /* Contacto de emergencia */
    .emergency-contact-row {
        flex-direction: column !important;
        gap: 15px !important;
    }

    .emergency-contact-row .input-group-modern {
        width: 100% !important;
        margin-right: 0 !important;
    }

    /* Vehículos */
    .vehicle-inputs {
        flex-direction: column !important;
        gap: 15px !important;
    }

    /* Apartamentos */
    .apartments-grid-radio {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 10px !important;
    }

    .apartment-radio-item {
        flex: 0 0 calc(25% - 8px) !important;
        min-width: 70px !important;
    }

    .apartment-radio-content {
        padding: 10px 8px !important;
        min-height: 44px !important;
    }

    /* Sección de edificios */
    .building-section {
        padding: 12px !important;
        margin-bottom: 12px !important;
        border-radius: 10px !important;
    }

    .building-header-radio {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
    }

    /* Status options */
    .status-options {
        flex-direction: column !important;
        gap: 10px !important;
    }

    .status-option {
        width: 100% !important;
    }

    .status-label {
        width: 100% !important;
        justify-content: center !important;
        padding: 12px !important;
    }
}

/* Móvil pequeño */
@media screen and (max-width: 480px) {
    .apartment-radio-item {
        flex: 0 0 calc(33.33% - 8px) !important;
    }

    .panel-content {
        padding: 10px !important;
    }

    .input-modern,
    .select-modern,
    input,
    select {
        min-height: 48px !important;
        padding: 12px 10px !important;
    }
}
